1WPA_SUPPLICANT(8)                                            WPA_SUPPLICANT(8)
2
3
4

NAME

6       wpa_supplicant  - Wi-Fi Protected Access client and IEEE 802.1X suppli‐
7       cant
8

SYNOPSIS

10       wpa_supplicant [ -BddfhKLqqtuvW ] [ -iifname ]  [  -cconfig  file  ]  [
11       -Ddriver ] [ -PPID_file ] [ -foutput file ]
12
13

OVERVIEW

15       Wireless  networks do not require physical access to the network equip‐
16       ment in the same way as wired networks. This makes it easier for  unau‐
17       thorized users to passively monitor a network and capture all transmit‐
18       ted frames.  In addition, unauthorized use of the network is much  eas‐
19       ier. In many cases, this can happen even without user's explicit knowl‐
20       edge since the wireless LAN adapter may have been configured  to  auto‐
21       matically join any available network.
22
23       Link-layer  encryption  can  be used to provide a layer of security for
24       wireless networks. The original wireless  LAN  standard,  IEEE  802.11,
25       included a simple encryption mechanism, WEP. However, that proved to be
26       flawed in many areas and network protected with WEP cannot be  consider
27       secure.  IEEE  802.1X authentication and frequently changed dynamic WEP
28       keys can be used to improve the network security,  but  even  that  has
29       inherited  security  issues due to the use of WEP for encryption. Wi-Fi
30       Protected Access and IEEE 802.11i amendment to the wireless  LAN  stan‐
31       dard  introduce a much improvement mechanism for securing wireless net‐
32       works. IEEE 802.11i enabled networks that are  using  CCMP  (encryption
33       mechanism  based  on strong cryptographic algorithm AES) can finally be
34       called secure used for applications which require efficient  protection
35       against unauthorized access.
36
37       wpa_supplicant  is  an  implementation of the WPA Supplicant component,
38       i.e., the part that runs in the client stations. It implements WPA  key
39       negotiation  with  a  WPA  Authenticator  and  EAP  authentication with
40       Authentication Server. In addition, it controls the  roaming  and  IEEE
41       802.11 authentication/association of the wireless LAN driver.
42
43       wpa_supplicant  is  designed  to be a "daemon" program that runs in the
44       background and acts as the backend component controlling  the  wireless
45       connection.  wpa_supplicant  supports separate frontend programs and an
46       example text-based frontend, wpa_cli, is included with wpa_supplicant.
47
48       Before wpa_supplicant can do its work, the network  interface  must  be
49       available.   That  means  that  the physical device must be present and
50       enabled, and the driver for the device must be loaded. The daemon  will
51       exit immediately if the device is not already available.
52
53       After  wpa_supplicant  has  configured the network device, higher level
54       configuration such as DHCP may proceed.  There are a variety of ways to
55       integrate  wpa_supplicant into a machine's networking scripts, a few of
56       which are described in sections below.
57
58       The following steps are used when associating with an AP using WPA:
59
60       · wpa_supplicant requests the kernel driver to scan neighboring BSSes
61
62       · wpa_supplicant selects a BSS based on its configuration
63
64       · wpa_supplicant requests the kernel driver to associate with the  cho‐
65         sen BSS
66
67       · If WPA-EAP: integrated IEEE 802.1X Supplicant completes EAP authenti‐
68         cation with the authentication server (proxied by  the  Authenticator
69         in the AP)
70
71       · If WPA-EAP: master key is received from the IEEE 802.1X Supplicant
72
73       · If WPA-PSK: wpa_supplicant uses PSK as the master session key
74
75       · wpa_supplicant  completes WPA 4-Way Handshake and Group Key Handshake
76         with the Authenticator (AP)
77
78       · wpa_supplicant configures encryption keys for unicast and broadcast
79
80       · normal data packets can be transmitted and received
81

SUPPORTED FEATURES

83       Supported WPA/IEEE 802.11i features:
84
85       · WPA-PSK ("WPA-Personal")
86
87       · WPA with EAP (e.g., with RADIUS authentication  server)  ("WPA-Enter‐
88         prise")  Following authentication methods are supported with an inte‐
89         grate IEEE 802.1X Supplicant:
90
91         · EAP-TLS
92
93         · EAP-PEAP/MSCHAPv2 (both PEAPv0 and PEAPv1)
94
95         · EAP-PEAP/TLS (both PEAPv0 and PEAPv1)
96
97         · EAP-PEAP/GTC (both PEAPv0 and PEAPv1)
98
99         · EAP-PEAP/OTP (both PEAPv0 and PEAPv1)
100
101         · EAP-PEAP/MD5-Challenge (both PEAPv0 and PEAPv1)
102
103         · EAP-TTLS/EAP-MD5-Challenge
104
105         · EAP-TTLS/EAP-GTC
106
107         · EAP-TTLS/EAP-OTP
108
109         · EAP-TTLS/EAP-MSCHAPv2
110
111         · EAP-TTLS/EAP-TLS
112
113         · EAP-TTLS/MSCHAPv2
114
115         · EAP-TTLS/MSCHAP
116
117         · EAP-TTLS/PAP
118
119         · EAP-TTLS/CHAP
120
121         · EAP-SIM
122
123         · EAP-AKA
124
125         · EAP-PSK
126
127         · EAP-PAX
128
129         · LEAP (note: requires special  support  from  the  driver  for  IEEE
130           802.11 authentication)
131
132         · (following  methods  are  supported, but since they do not generate
133           keying material, they cannot be used with WPA or  IEEE  802.1X  WEP
134           keying)
135
136         · EAP-MD5-Challenge
137
138         · EAP-MSCHAPv2
139
140         · EAP-GTC
141
142         · EAP-OTP
143
144       · key management for CCMP, TKIP, WEP104, WEP40
145
146       · RSN/WPA2 (IEEE 802.11i)
147
148         · pre-authentication
149
150         · PMKSA caching
151

AVAILABLE DRIVERS

153       A  summary  of  available driver backends is below. Support for each of
154       the driver backends is chosen at wpa_supplicant  compile  time.  For  a
155       list  of  supported driver backends that may be used with the -D option
156       on your system, refer to the help output of wpa_supplicant (wpa_suppli‐
157       cant -h).
158
159       hostap (default)  Host  AP  driver  (Intersil Prism2/2.5/3).  (this can
160              also be used with Linuxant DriverLoader).
161
162       hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).
163
164       madwifi
165              MADWIFI 802.11 support (Atheros, etc.).
166
167       atmel  ATMEL AT76C5XXx (USB, PCMCIA).
168
169       wext   Linux wireless extensions (generic).
170
171       ndiswrapper
172              Linux ndiswrapper.
173
174       broadcom
175              Broadcom wl.o driver.
176
177       ipw    Intel ipw2100/2200 driver.
178
179       wired  wpa_supplicant wired Ethernet driver
180
181       roboswitch
182              wpa_supplicant Broadcom switch driver
183
184       bsd    BSD 802.11 support (Atheros, etc.).
185
186       ndis   Windows NDIS driver.
187

COMMAND LINE OPTIONS

189       Most command line options have global scope. Some are given per  inter‐
190       face, and are only valid if at least one -i option is specified, other‐
191       wise they're ignored. Option groups for different  interfaces  must  be
192       separated by -N option.
193
194       -b br_ifname
195              Optional bridge interface name. (Per interface)
196
197       -B     Run daemon in the background.
198
199       -c filename
200              Path to configuration file. (Per interface)
201
202       -C ctrl_interface
203              Path to ctrl_interface socket (Per interface. Only used if -c is
204              not).
205
206       -i ifname
207              Interface to listen on. Multiple instances of this option can be
208              present, one per interface, separated by -N option (see below).
209
210       -d     Increase debugging verbosity (-dd even more).
211
212       -D driver
213              Driver to use. (Per interface, see the available options below.)
214
215       -f output file
216              Log output to specified file instead of stdout.
217
218       -g global ctrl_interface
219              Path  to  global  ctrl_interface socket. If specified, interface
220              definitions may be omitted.
221
222       -K     Include keys (passwords, etc.) in debug output.
223
224       -t     Include timestamp in debug messages.
225
226       -h     Help.  Show a usage message.
227
228       -L     Show license (GPL and BSD).
229
230       -p     Driver parameters. (Per interface)
231
232       -P PID_file
233              Path to PID file.
234
235       -q     Decrease debugging verbosity (-qq even less).
236
237       -u     Enabled DBus control interface. If  enabled,  interface  defini‐
238              tions may be omitted.
239
240       -v     Show version.
241
242       -W     Wait for a control interface monitor before starting.
243
244       -N     Start describing new interface.
245

EXAMPLES

247       In most common cases, wpa_supplicant is started with:
248
249
250              wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0
251
252       This makes the process fork into background.
253
254       The  easiest  way  to  debug  problems,  and  to  get debug log for bug
255       reports, is  to  start  wpa_supplicant  on  foreground  with  debugging
256       enabled:
257
258
259              wpa_supplicant -c/etc/wpa_supplicant.conf -iwlan0 -d
260
261       wpa_supplicant  can control multiple interfaces (radios) either by run‐
262       ning one process for each interface separately or by running  just  one
263       process  and  list  of options at command line. Each interface is sepa‐
264       rated with -N argument. As an example, following  command  would  start
265       wpa_supplicant for two interfaces:
266
267
268              wpa_supplicant \
269                   -c wpa1.conf -i wlan0 -D hostap -N \
270                   -c wpa2.conf -i ath0 -D madwifi
271

OS REQUIREMENTS

273       Current hardware/software requirements:
274
275       · Linux  kernel  2.4.x  or  2.6.x with Linux Wireless Extensions v15 or
276         newer
277
278       · FreeBSD 6-CURRENT
279
280       · Microsoft Windows with WinPcap (at least WinXP, may work  with  other
281         versions)
282

SUPPORTED DRIVERS

284       Host AP driver for Prism2/2.5/3 (development snapshot/v0.2.x)
285              (http://hostap.epitest.fi/)  Driver  needs  to be set in Managed
286              mode (iwconfig wlan0 mode managed).  Please  note  that  station
287              firmware version needs to be 1.7.0 or newer to work in WPA mode.
288
289       Linuxant DriverLoader
290              (http://www.linuxant.com/driverloader/) with Windows NDIS driver
291              for your wlan card supporting WPA.
292
293       Agere Systems Inc. Linux Driver
294              (http://www.agere.com/support/drivers/)  Please  note  that  the
295              driver  interface  file  (driver_hermes.c) and hardware specific
296              include files are not included in the  wpa_supplicant  distribu‐
297              tion. You will need to copy these from the source package of the
298              Agere driver.
299
300       madwifi driver for cards based on Atheros chip set (ar521x)
301              (http://sourceforge.net/projects/madwifi/) Please note that  you
302              will  need  to modify the wpa_supplicant .config file to use the
303              correct path for the madwifi driver root  directory  (CFLAGS  +=
304              -I../madwifi/wpa line in example defconfig).
305
306       ATMEL AT76C5XXx driver for USB and PCMCIA cards
307              (http://atmelwlandriver.sourceforge.net/).
308
309       Linux ndiswrapper
310              (http://ndiswrapper.sourceforge.net/) with Windows NDIS driver.
311
312       Broadcom wl.o driver
313              This  is  a  generic  Linux  driver  for Broadcom IEEE 802.11a/g
314              cards.  However, it is proprietary driver that is  not  publicly
315              available except for couple of exceptions, mainly Broadcom-based
316              APs/wireless routers that use Linux. The driver  binary  can  be
317              downloaded,      e.g.,     from     Linksys     support     site
318              (http://www.linksys.com/support/gpl.asp) for Linksys WRT54G. The
319              GPL  tarball includes cross-compiler and the needed header file,
320              wlioctl.h, for compiling wpa_supplicant.  This driver support in
321              wpa_supplicant is expected to work also with other devices based
322              on Broadcom driver (assuming the  driver  includes  client  mode
323              support).
324
325        Intel ipw2100 driver
326              (http://sourceforge.net/projects/ipw2100/)
327
328       Intel ipw2200 driver
329              (http://sourceforge.net/projects/ipw2200/)
330
331       Linux wireless extensions
332              In  theory,  any  driver that supports Linux wireless extensions
333              can be  used  with  IEEE  802.1X  (i.e.,  not  WPA)  when  using
334              ap_scan=0 option in configuration file.
335
336       Wired Ethernet drivers
337              Use ap_scan=0.
338
339       BSD net80211 layer (e.g., Atheros driver)
340              At the moment, this is for FreeBSD 6-CURRENT branch.
341
342       Windows NDIS
343              The   current   Windows   port   requires  WinPcap  (http://win
344              pcap.polito.it/).  See README-Windows.txt for more information.
345
346       wpa_supplicant was designed to be portable for  different  drivers  and
347       operating systems. Hopefully, support for more wlan cards and OSes will
348       be added in the future. See developer.txt for  more  information  about
349       the  design  of  wpa_supplicant  and porting to other drivers. One main
350       goal is to add full WPA/WPA2 support to Linux  wireless  extensions  to
351       allow  new  drivers  to  be  supported  without having to implement new
352       driver-specific interface code in wpa_supplicant.
353

ARCHITECTURE

355       The wpa_supplicant system consists of the following components:
356
357       wpa_supplicant.conf
358              the configuration file describing all  networks  that  the  user
359              wants the computer to connect to.
360
361       wpa_supplicant
362              the program that directly interacts with the network interface.
363
364       wpa_cli
365              the  client  program that provides a high-level interface to the
366              functionality of the daemon.
367
368       wpa_passphrase
369              a utility needed to  construct  wpa_supplicant.conf  files  that
370              include encrypted passwords.
371

QUICK START

373       First,  make a configuration file, e.g.  /etc/wpa_supplicant.conf, that
374       describes  the  networks  you  are  interested  in.   See   wpa_suppli‐
375       cant.conf(5) for details.
376
377       Once the configuration is ready, you can test whether the configuration
378       works by running wpa_supplicant with following command to start  it  on
379       foreground with debugging enabled:
380
381
382              wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -d
383
384
385       Assuming everything goes fine, you can start using following command to
386       start wpa_supplicant on background without debugging:
387
388
389              wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B
390
391
392       Please note that if you included more than one driver interface in  the
393       build  time  configuration  (.config),  you  may  need to specify which
394       interface to use by including -D<driver name>  option  on  the  command
395       line.
396

INTERFACE TO PCMCIA-CS/CARDMRG

398       For  example,  following small changes to pcmcia-cs scripts can be used
399       to enable WPA support:
400
401       Add MODE="Managed" and WPA="y"  to  the  network  scheme  in  /etc/pcm‐
402       cia/wireless.opts.
403
404       Add the following block to the end of start action handler in /etc/pcm‐
405       cia/wireless:
406
407
408              if [ "$WPA" = "y" -a -x /usr/local/bin/wpa_supplicant ]; then
409                  /usr/local/bin/wpa_supplicant -B -c/etc/wpa_supplicant.conf -i$DEVICE
410              fi
411
412
413       Add the following block to the end of stop action handler (may need  to
414       be separated from other actions) in /etc/pcmcia/wireless:
415
416
417              if [ "$WPA" = "y" -a -x /usr/local/bin/wpa_supplicant ]; then
418                  killall wpa_supplicant
419              fi
420
421
422       This  will  make  cardmgr start wpa_supplicant when the card is plugged
423       in.
424

SEE ALSO

426       wpa_background(8) wpa_supplicant.conf(5) wpa_cli(8) wpa_passphrase(8)
427
429       wpa_supplicant is copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>  and
430       contributors.  All Rights Reserved.
431
432       This  program  is  dual-licensed  under  both the GPL version 2 and BSD
433       license. Either license may be used at your option.
434
435
436
437                               15 February 2009              WPA_SUPPLICANT(8)
Impressum