remove @EAP_LDFLAGS@, no longer exists
[mech_eap.orig] / libeap / www / wpa_supplicant / index.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3   <head>
4     <title>Linux WPA Supplicant (IEEE 802.1X, WPA, WPA2, RSN, IEEE 802.11i)</title>
5     <meta name="description" content="WPA Supplicant for Linux, BSD, and Windows (IEEE 802.1X, WPA, WPA2, RSN, IEEE 802.11i)">
6     <meta name="keywords" content="WPA, WPA2, IEEE 802.11i, IEEE 802.1X, WPA Supplicant, wpa_supplicant, TKIP, CCMP, EAP-PEAP, EAP-TLS, EAP-TTLS, EAP-SIM, EAP-AKA, EAP-PSK, EAP-GTC, EAP-MSCHAPv2, EAP-MD5, EAP-FAST, EAP-PAX, EAP-IKEv2IEEE 802.1X Supplicant, IEEE 802.1aa, EAPOL, RSN, pre-authentication, PMKSA caching, BSD WPA Supplicant, FreeBSD WPA Supplicant, wireless, WinXP WPA Supplicant, EAP-TNC, TNCC, IF-IMC, IF-TNCCS, WPS">
7     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
8   </head>
9
10   <body>
11     <h2>Linux WPA/WPA2/IEEE 802.1X Supplicant</h2>
12
13 <p>wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, and
14 Windows with
15 support for WPA and WPA2 (IEEE 802.11i / RSN). It is suitable for both
16 desktop/laptop computers and embedded systems. Supplicant is the IEEE
17 802.1X/WPA component that is used in the client stations. It
18 implements key negotiation with a WPA Authenticator and it controls
19 the roaming and IEEE 802.11 authentication/association of the wlan
20 driver.</p>
21
22 <p>wpa_supplicant is designed to be a "daemon" program that runs in the
23 background and acts as the backend component controlling the wireless
24 connection. wpa_supplicant supports separate frontend programs and a
25 text-based frontend (wpa_cli) and a GUI (wpa_gui) are included with
26 wpa_supplicant.</p>
27
28 <p>wpa_supplicant uses a flexible build configuration that can be used
29 to select which features are included. This allows minimal code size
30 (from ca. 50 kB binary for WPA/WPA2-Personal and 130 kB binary for
31 WPA/WPA2-Enterprise without debugging code to 450 kB with most
32 features and full debugging support; these example sizes are from a
33 build for x86 target).</p>
34
35
36 <h4>Supported WPA/IEEE 802.11i features</h4>
37
38 <ul>
39 <li>WPA-PSK ("WPA-Personal")</li>
40 <li>WPA with EAP (e.g., with RADIUS authentication server) ("WPA-Enterprise")</li>
41 <li>key management for CCMP, TKIP, WEP104, WEP40</li>
42 <li>WPA and full IEEE 802.11i/RSN/WPA2</li>
43 <li>RSN: PMKSA caching, pre-authentication</li>
44 <li>IEEE 802.11r</li>
45 <li>IEEE 802.11w</li>
46 <li>Wi-Fi Protected Setup (WPS)</li>
47 </ul>
48
49 <h4>Supported EAP methods (IEEE 802.1X Supplicant)</h4>
50
51 <ul>
52 <li>EAP-TLS</li>
53 <li>EAP-PEAP/MSCHAPv2 (both PEAPv0 and PEAPv1)</li>
54 <li>EAP-PEAP/TLS (both PEAPv0 and PEAPv1)</li>
55 <li>EAP-PEAP/GTC (both PEAPv0 and PEAPv1)</li>
56 <li>EAP-PEAP/OTP (both PEAPv0 and PEAPv1)</li>
57 <li>EAP-PEAP/MD5-Challenge (both PEAPv0 and PEAPv1)</li>
58 <li>EAP-TTLS/EAP-MD5-Challenge</li>
59 <li>EAP-TTLS/EAP-GTC</li>
60 <li>EAP-TTLS/EAP-OTP</li>
61 <li>EAP-TTLS/EAP-MSCHAPv2</li>
62 <li>EAP-TTLS/EAP-TLS</li>
63 <li>EAP-TTLS/MSCHAPv2</li>
64 <li>EAP-TTLS/MSCHAP</li>
65 <li>EAP-TTLS/PAP</li>
66 <li>EAP-TTLS/CHAP</li>
67 <li>EAP-SIM</li>
68 <li>EAP-AKA</li>
69 <li>EAP-AKA'</li>
70 <li>EAP-PSK</li>
71 <li>EAP-FAST</li>
72 <li>EAP-PAX</li>
73 <li>EAP-SAKE</li>
74 <li>EAP-IKEv2</li>
75 <li>EAP-GPSK</li>
76 <li>LEAP (note: requires special support from the driver)</li>
77 </ul>
78
79 <p>Following methods are also supported, but since they do not generate keying
80 material, they cannot be used with WPA or IEEE 802.1X WEP keying.</p>
81
82 <ul>
83 <li>EAP-MD5-Challenge</li>
84 <li>EAP-MSCHAPv2</li>
85 <li>EAP-GTC</li>
86 <li>EAP-OTP</li>
87 <li>EAP-TNC (Trusted Network Connect; TNCC, IF-IMC, IF-T, IF-TNCCS)</li>
88 </ul>
89
90 <p>More information about EAP methods and interoperability testing is
91 available in <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/eap_testing.txt">eap_testing.txt</a>.</p>
92
93
94 <h4>Supported TLS/crypto libraries</h4>
95
96 <ul>
97 <li>OpenSSL (default)</li>
98 <li>GnuTLS</li>
99 </ul>
100
101 <h4>Internal TLS/crypto implementation (optional)</h4>
102
103 <ul>
104 <li>can be used in place of an external TLS/crypto library</li>
105 <li>TLSv1</li>
106 <li>X.509 certificate processing</li>
107 <li>PKCS #1</li>
108 <li>ASN.1</li>
109 <li>RSA</li>
110 <li>bignum</li>
111 <li>minimal size (ca. 50 kB binary, parts of which are already needed for WPA;
112   TLSv1/X.509/ASN.1/RSA/bignum parts are about 25 kB on x86)</li>
113 </ul>
114
115 <h4>Supported wireless cards/drivers</h4>
116
117 <ul>
118 <li>Linux drivers that support nl80211/cfg80211 (most new drivers)</li>
119 <li>Linux drivers that support Linux Wireless Extensions v19 or newer with
120 WPA/WPA2 extensions</li>
121 <li><a href="http://hostap.epitest.fi/">Host AP driver for Prism2/2.5/3</a> (WPA and WPA2)</li>
122 <li><a href="http://www.linuxant.com/driverloader/">Linuxant DriverLoader</a> with Windows NDIS driver supporting WPA/WPA2</li>
123 <li><a href="http://www.agere.com/support/drivers/">Agere Systems Inc. Linux Driver</a> (Hermes-I/Hermes-II chipset) (WPA, but not WPA2)</li>
124 <li><a href="http://sourceforge.net/projects/madwifi/">madwifi (Atheros ar521x)</a></li>
125 <li><a href="http://atmelwlandriver.sourceforge.net/">ATMEL AT76C5XXx</a></li>
126 <li><a href="http://ndiswrapper.sourceforge.net/">Linux ndiswrapper</a></li>
127 <li>Broadcom wl.o driver</li>
128 <li><a href="http://sourceforge.net/projects/ipw2100/">Intel ipw2100</a></li>
129 <li><a href="http://sourceforge.net/projects/ipw2200/">Intel ipw2200</a></li>
130 <li>Wired Ethernet drivers</li>
131 <li>BSD net80211 layer (e.g., Atheros driver) (FreeBSD 6-CURRENT and NetBSD current)</li>
132 <li>Windows NDIS drivers (Windows; at least XP and 2000, others not tested)</li>
133 </ul>
134
135 <p>wpa_supplicant was designed to be portable for different drivers and
136 operating systems. Hopefully, support for more wlan cards and OSes will be
137 added in the future. See <a href="devel/">developers' documentation</a>
138 for more information about the design of wpa_supplicant and porting to
139 other drivers.</p>
140
141 <h3><a name="download">Download</a></h3>
142
143 <p>
144 <b>wpa_supplicant</b><br>
145 Copyright (c) 2003-2010, Jouni Malinen &lt;j@w1.fi&gt;
146 and contributors.
147 </p>
148
149 <p>
150 This program is free software; you can redistribute it and/or modify
151 it under the terms of the GNU General Public License version 2 as
152 published by the Free Software Foundation. See
153 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=COPYING">COPYING</a>
154 for more details.
155 </p>
156
157 <p>Alternatively, this software may be distributed, used, and modified
158 under the terms of BSD license. See <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/README">README</a>
159 for more details.</p>
160
161 <p>
162 <b>Please see
163 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/README">README</a>
164 for the current documentation.</b><br>
165 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/README-Windows.txt">README-Windows.txt</a>
166 has some more information about the Windows port of wpa_supplicant.</p>
167
168
169 <ul>
170 <li><a href="../releases.html">Release graph</a></li>
171 <li>Latest stable release:
172 <ul>
173 <li><a href="../releases/wpa_supplicant-0.7.3.tar.gz">wpa_supplicant-0.7.3.tar.gz</a> (source code for all versions)</li>
174 <li><a href="../releases/wpa_supplicant-0.7.3.exe">wpa_supplicant-0.7.3.exe</a> (binary installer for Windows)</li>
175 <li><a href="../releases/wpa_supplicant-windows-bin-0.7.3.zip">wpa_supplicant-windows-bin-0.7.3.zip</a> (binaries for Windows)</li>
176 </ul>
177 <li>Previous stable release:
178 <ul>
179 <li><a href="../releases/wpa_supplicant-0.6.10.tar.gz">wpa_supplicant-0.6.10.tar.gz</a> (source code for all versions)</li>
180 <li><a href="../releases/wpa_supplicant-0.6.10.exe">wpa_supplicant-0.6.10.exe</a> (binary installer for Windows)</li>
181 <li><a href="../releases/wpa_supplicant-windows-bin-0.6.10.zip">wpa_supplicant-windows-bin-0.6.10.zip</a> (binaries for Windows)</li>
182 <li><a href="qt4/wpa_gui-qt433-windows-dll.zip">wpa_gui-qt433-windows-dll.zip</a> (Qt4 libraries from wpa_gui/Windows)</li>
183 </ul>
184 <!--
185 <li>Latest development release:
186 <ul>
187 <li><a href="../releases/wpa_supplicant-0.8.0.tar.gz">wpa_supplicant-0.8.0.tar.gz</a> (source code for all versions)</li>
188 <li><a href="../releases/wpa_supplicant-0.8.0.exe">wpa_supplicant-0.8.0.exe</a> (binary installer for Windows)</li>
189 <li><a href="../releases/wpa_supplicant-windows-bin-0.8.0.zip">wpa_supplicant-windows-bin-0.8.0.zip</a> (binaries for Windows)</li>
190 </ul>
191 -->
192 <li>ChangeLog:
193 <ul>
194 <li><a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/ChangeLog">development branch</a></li>
195 <li><a href="/gitweb/gitweb.cgi?p=hostap-07.git;a=blob_plain;f=wpa_supplicant/ChangeLog">stable branch</a></li>
196 <li><a href="/gitweb/gitweb.cgi?p=hostap-06.git;a=blob_plain;f=wpa_supplicant/ChangeLog">previous stable branch</a></li>
197 </ul>
198 <li><a href="../releases/">Old releases</a></li>
199 <li><a href="http://lists.shmoo.com/mailman/listinfo/hostap">Mailing list</a></li>
200 <li><a href="http://lists.shmoo.com/pipermail/hostap/">New mailing list archives</a></li>
201 <li><a href="/gitweb/gitweb.cgi">Web interface to GIT repository (0.6.x and newer)</a></li>
202 <li><a href="/cgi-bin/viewcvs.cgi/hostap/">Web interface to CVS repository (0.5.x and older)</a></li>
203 <li><a href="../releases/snapshots/">Snapshot releases from all active branches</a>
204 <li><a href="../cvs.html">GIT and read-only anonymous CVS access (pserver)</a></li>
205 <li><a href="../bugz/">Bug and feature request tracking</a></li>
206 <li><a href="devel/">Developers' documentation for wpa_supplicant 0.6.x</a></li>
207 <li><a href="wpa_gui.html">wpa_gui screenshots</a></li>
208 </ul>
209
210 <h3>WPA</h3>
211
212 <p>The original security mechanism of IEEE 802.11 standard was not
213 designed to be strong and has proven to be insufficient for most
214 networks that require some kind of security. Task group I (Security)
215 of <a href="http://www.ieee802.org/11/">IEEE 802.11 working group</a>
216 has worked to address the flaws of the base standard and in
217 practice completed its work in May 2004. The IEEE 802.11i amendment to
218 the IEEE 802.11 standard was approved in June 2004 and published in
219 July 2004.</p>
220
221 <p><a href="http://www.wi-fi.org/">Wi-Fi Alliance</a> used a draft
222 version of the IEEE 802.11i work (draft 3.0) to define a subset of the
223 security enhancements that can be implemented with existing wlan
224 hardware. This is called Wi-Fi Protected Access (WPA). This has
225 now become a mandatory component of interoperability testing and
226 certification done by Wi-Fi Alliance. Wi-Fi has
227 <a href="http://www.wi-fi.org/OpenSection/protected_access.asp">information
228 about WPA</a> at its web site.</p>
229
230 <p>IEEE 802.11 standard defined wired equivalent privacy (WEP) algorithm
231 for protecting wireless networks. WEP uses RC4 with 40-bit keys,
232 24-bit initialization vector (IV), and CRC32 to protect against packet
233 forgery. All these choices have proven to be insufficient: key space is
234 too small against current attacks, RC4 key scheduling is insufficient
235 (beginning of the pseudorandom stream should be skipped), IV space is
236 too small and IV reuse makes attacks easier, there is no replay
237 protection, and non-keyed authentication does not protect against bit
238 flipping packet data.</p>
239
240 <p>WPA is an intermediate solution for the security issues. It uses
241 Temporal Key Integrity Protocol (TKIP) to replace WEP. TKIP is a
242 compromise on strong security and possibility to use existing
243 hardware. It still uses RC4 for the encryption like WEP, but with
244 per-packet RC4 keys. In addition, it implements replay protection,
245 keyed packet authentication mechanism (Michael MIC).</p>
246
247 <p>Keys can be managed using two different mechanisms. WPA can either use
248 an external authentication server (e.g., RADIUS) and EAP just like
249 IEEE 802.1X is using or pre-shared keys without need for additional
250 servers. Wi-Fi calls these "WPA-Enterprise" and "WPA-Personal",
251 respectively. Both mechanisms will generate a master session key for
252 the Authenticator (AP) and Supplicant (client station).</p>
253
254 <p>WPA implements a new key handshake (4-Way Handshake and Group Key
255 Handshake) for generating and exchanging data encryption keys between
256 the Authenticator and Supplicant. This handshake is also used to
257 verify that both Authenticator and Supplicant know the master session
258 key. These handshakes are identical regardless of the selected key
259 management mechanism (only the method for generating master session
260 key changes).</p>
261
262
263 <h3>IEEE 802.11i / RSN / WPA2</h3>
264
265 <p>The design for parts of IEEE 802.11i that were not included in WPA
266 has finished (May 2004) and this amendment to IEEE 802.11 was approved
267 in June 2004. Wi-Fi Alliance is using the final IEEE 802.11i as a new
268 version of WPA called WPA2. This included, e.g., support for more
269 robust encryption algorithm (CCMP: AES in Counter mode with CBC-MAC)
270 to replace TKIP, optimizations for handoff (reduced number of messages
271 in initial key handshake, pre-authentication, and PMKSA caching).</p>
272
273 <h3>Using wpa_supplicant</h3>
274
275 <p>Following steps are used when associating with an AP using WPA:<p>
276 <ul>
277 <li>wpa_supplicant requests the kernel driver to scan neighboring BSSes</li>
278 <li>wpa_supplicant selects a BSS based on its configuration</li>
279 <li>wpa_supplicant requests the kernel driver to associate with the chosen
280   BSS</li>
281 <li>if WPA-EAP: integrated IEEE 802.1X Supplicant completes EAP
282   authentication with the authentication server (proxied by the
283   Authenticator in the AP)</li>
284 <li>If WPA-EAP: master key is received from the IEEE 802.1X Supplicant</li>
285 <li>If WPA-PSK: wpa_supplicant uses PSK as the master session key</li>
286 <li>wpa_supplicant completes WPA 4-Way Handshake and Group Key Handshake
287   with the Authenticator (AP). WPA2 has integrated the initial Group Key
288   Handshake into the 4-Way Handshake.</li>
289 <li>wpa_supplicant configures encryption keys for unicast and broadcast</li>
290 <li>normal data packets can be transmitted and received</li>
291 </ul>
292
293 <h4>Configuration file</h4>
294
295 <p>wpa_supplicant is configured using a text file that lists all accepted
296 networks and security policies, including pre-shared keys. See
297 example configuration file,
298 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf">wpa_supplicant.conf</a>,
299 for detailed information about the configuration format and supported
300 fields. In addition, simpler example configurations are available for
301 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/examples/plaintext.conf">plaintext</a>,
302 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/examples/wep.conf">static WEP</a>,
303 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/examples/ieee8021x.conf">IEEE 802.1X with dynamic WEP (EAP-PEAP/MSCHAPv2)</a>,
304 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/examples/wpa-psk-tkip.conf">WPA-PSK/TKIP</a>, and
305 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/examples/wpa2-eap-ccmp.conf">WPA2-EAP/CCMP (EAP-TLS)</a>.
306 In addition, wpa_supplicant can use OpenSSL engine to avoid need for
307 exposing private keys in the file system. This can be used for EAP-TLS
308 authentication with smartcards and TPM tokens.
309 <a href="/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/examples/openCryptoki.conf">Example configuration for using openCryptoki</a>
310 shows an example network block and related parameters for EAP-TLS
311 authentication using PKCS#11 TPM token.
312 </p>
313
314 <h3>Feedback, comments, mailing list</h3>
315
316 <p>
317 Any comments, reports on success/failure, ideas for further
318 improvement, feature requests, etc. are welcome at j@w1.fi.
319 Please note, that I often receive more email than I have time to answer.
320 Unfortunately, some messages may not get a reply, but I'll try to go
321 through my mail whenever time permits.
322 </p>
323
324 <p>Host AP mailing list can also be used for topics related to
325 wpa_supplicant. Since this list has a broader audience, your likelyhood
326 of getting responses is higher. This list is recommended for general
327 questions about wpa_supplicant and its development. In addition, I
328 will send release notes to it whenever a new version is available.
329 </p>
330
331 <p>
332 The mailing list information and web archive is at <a
333 href="http://lists.shmoo.com/mailman/listinfo/hostap">http://lists.shmoo.com/mailman/listinfo/hostap</a>.
334 Messages to hostap@shmoo.com will be delivered to the
335 subscribers. Please note, that due to large number of spam and virus
336 messages sent to the list address, the list is configured to accept
337 messages only from subscribed addresses. Messages from unsubscribed addresses
338 may be accepted manually, but their delivery will be delayed.
339 </p>
340
341 <p>
342 If you want to make sure your bug report of feature request does not
343 get lost, please report it through the bug tracking system as
344 <a href="../bugz/enter_bug.cgi">a new
345 bug/feature request</a>.
346 </p>
347
348     <hr>
349     <div>
350     <address><a href="mailto:j@w1.fi">Jouni Malinen</a></address>
351 <!-- Created: Sat May 22 21:41:58 PDT 2004 -->
352 <!-- hhmts start -->
353 Last modified: Tue Sep  7 19:42:20 EEST 2010
354 <!-- hhmts end -->
355     </div>
356   </body>
357 </html>