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  (can  be multiple drivers: nl80211,wext).  (Per
214              interface, see the available options below.)
215
216       -f output file
217              Log output to specified file instead of stdout.
218
219       -g global ctrl_interface
220              Path to global ctrl_interface socket.  If  specified,  interface
221              definitions may be omitted.
222
223       -K     Include keys (passwords, etc.) in debug output.
224
225       -t     Include timestamp in debug messages.
226
227       -h     Help.  Show a usage message.
228
229       -L     Show license (GPL and BSD).
230
231       -p     Driver parameters. (Per interface)
232
233       -P PID_file
234              Path to PID file.
235
236       -q     Decrease debugging verbosity (-qq even less).
237
238       -u     Enabled  DBus  control  interface. If enabled, interface defini‐
239              tions may be omitted.
240
241       -v     Show version.
242
243       -W     Wait for a control interface monitor before starting.
244
245       -N     Start describing new interface.
246

EXAMPLES

248       In most common cases, wpa_supplicant is started with:
249
250
251              wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0
252
253       This makes the process fork into background.
254
255       The easiest way to debug  problems,  and  to  get  debug  log  for  bug
256       reports,  is  to  start  wpa_supplicant  on  foreground  with debugging
257       enabled:
258
259
260              wpa_supplicant -c/etc/wpa_supplicant.conf -iwlan0 -d
261
262       If the specific driver wrapper is not known beforehand, it is  possible
263       to  specify  multiple  comma  separated  driver wrappers on the command
264       line. wpa_supplicant will use the first driver wrapper that is able  to
265       initialize the interface.
266
267
268              wpa_supplicant -Dnl80211,wext -c/etc/wpa_supplicant.conf -iwlan0
269
270       wpa_supplicant  can control multiple interfaces (radios) either by run‐
271       ning one process for each interface separately or by running  just  one
272       process  and  list  of options at command line. Each interface is sepa‐
273       rated with -N argument. As an example, following  command  would  start
274       wpa_supplicant for two interfaces:
275
276
277              wpa_supplicant \
278                   -c wpa1.conf -i wlan0 -D hostap -N \
279                   -c wpa2.conf -i ath0 -D madwifi
280

OS REQUIREMENTS

282       Current hardware/software requirements:
283
284       · Linux  kernel  2.4.x  or  2.6.x with Linux Wireless Extensions v15 or
285         newer
286
287       · FreeBSD 6-CURRENT
288
289       · Microsoft Windows with WinPcap (at least WinXP, may work  with  other
290         versions)
291

SUPPORTED DRIVERS

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

ARCHITECTURE

364       The wpa_supplicant system consists of the following components:
365
366       wpa_supplicant.conf
367              the configuration file describing all  networks  that  the  user
368              wants the computer to connect to.
369
370       wpa_supplicant
371              the program that directly interacts with the network interface.
372
373       wpa_cli
374              the  client  program that provides a high-level interface to the
375              functionality of the daemon.
376
377       wpa_passphrase
378              a utility needed to  construct  wpa_supplicant.conf  files  that
379              include encrypted passwords.
380

QUICK START

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

INTERFACE TO PCMCIA-CS/CARDMRG

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

SEE ALSO

435       wpa_background(8) wpa_supplicant.conf(5) wpa_cli(8) wpa_passphrase(8)
436
438       wpa_supplicant is copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>  and
439       contributors.  All Rights Reserved.
440
441       This  program  is  dual-licensed  under  both the GPL version 2 and BSD
442       license. Either license may be used at your option.
443
444
445
446                               07 September 2010             WPA_SUPPLICANT(8)
Impressum