WPS: Document NFC use cases with password/config token
Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
bfc62fe133
commit
51ca03f470
6 changed files with 119 additions and 0 deletions
|
@ -66,6 +66,10 @@ CONFIG_WPS=y
|
|||
CONFIG_WPS2=y
|
||||
CONFIG_WPS_UPNP=y
|
||||
|
||||
Following parameter can be used to enable support for NFC config method:
|
||||
|
||||
CONFIG_WPS_NFC=y
|
||||
|
||||
|
||||
Following section shows an example runtime configuration
|
||||
(hostapd.conf) that enables WPS:
|
||||
|
@ -289,3 +293,48 @@ For example:
|
|||
|
||||
This can be used to update the externally stored AP configuration and
|
||||
then update hostapd configuration (followed by restarting of hostapd).
|
||||
|
||||
|
||||
WPS with NFC
|
||||
------------
|
||||
|
||||
WPS can be used with NFC-based configuration method. An NFC tag
|
||||
containing a password token from the Enrollee can be used to
|
||||
authenticate the connection instead of the PIN. In addition, an NFC tag
|
||||
with a configuration token can be used to transfer AP settings without
|
||||
going through the WPS protocol.
|
||||
|
||||
When the AP acts as an Enrollee, a local NFC tag with a password token
|
||||
can be used by touching the NFC interface of an external Registrar. The
|
||||
wps_nfc_token command is used to manage use of the NFC password token
|
||||
from the AP. "wps_nfc_token enable" enables the use of the AP's NFC
|
||||
password token (in place of AP PIN) and "wps_nfc_token disable" disables
|
||||
the NFC password token.
|
||||
|
||||
The NFC password token that is either pre-configured in the
|
||||
configuration file (wps_nfc_dev_pw_id, wps_nfc_dh_pubkey,
|
||||
wps_nfc_dh_privkey, wps_nfc_dev_pw) or generated dynamically with
|
||||
"wps_nfc_token <WPS|NDEF>" command. The nfc_pw_token tool from
|
||||
wpa_supplicant can be used to generate NFC password tokens during
|
||||
manufacturing (each AP needs to have its own random keys).
|
||||
|
||||
The "wps_nfc_config_token <WPS/NDEF>" command can be used to build an
|
||||
NFC configuration token. The output value from this command is a hexdump
|
||||
of the current AP configuration (WPS parameter requests this to include
|
||||
only the WPS attributes; NDEF parameter requests additional NDEF
|
||||
encapsulation to be included). This data needs to be written to an NFC
|
||||
tag with an external program. Once written, the NFC configuration token
|
||||
can be used to touch an NFC interface on a station to provision the
|
||||
credentials needed to access the network.
|
||||
|
||||
When the NFC device on the AP reads an NFC tag with a MIME media type
|
||||
"application/vnd.wfa.wsc", the NDEF message payload (with or without
|
||||
NDEF encapsulation) can be delivered to hostapd using the
|
||||
following hostapd_cli command:
|
||||
|
||||
wps_nfc_tag_read <hexdump of payload>
|
||||
|
||||
If the NFC tag contains a password token, the token is added to the
|
||||
internal Registrar. This allows station Enrollee from which the password
|
||||
token was received to run through WPS protocol to provision the
|
||||
credential.
|
||||
|
|
|
@ -108,6 +108,8 @@ CONFIG_EAP_TTLS=y
|
|||
#CONFIG_WPS2=y
|
||||
# Enable UPnP support for external WPS Registrars
|
||||
#CONFIG_WPS_UPNP=y
|
||||
# Enable WPS support with NFC config method
|
||||
#CONFIG_WPS_NFC=y
|
||||
|
||||
# EAP-IKEv2
|
||||
#CONFIG_EAP_IKEV2=y
|
||||
|
|
|
@ -1088,6 +1088,18 @@ own_ip_addr=127.0.0.1
|
|||
# set to ag to allow both RF bands to be advertized.
|
||||
#wps_rf_bands=ag
|
||||
|
||||
# NFC password token for WPS
|
||||
# These parameters can be used to configure a fixed NFC password token for the
|
||||
# AP. This can be generated, e.g., with nfc_pw_token from wpa_supplicant. When
|
||||
# these parameters are used, the AP is assumed to be deployed with a NFC tag
|
||||
# that includes the matching NFC password token (e.g., written based on the
|
||||
# NDEF record from nfc_pw_token).
|
||||
#
|
||||
#wps_nfc_dev_pw_id: Device Password ID (16..65535)
|
||||
#wps_nfc_dh_pubkey: Hexdump of DH Public Key
|
||||
#wps_nfc_dh_privkey: Hexdump of DH Private Key
|
||||
#wps_nfc_dev_pw: Hexdump of Device Password
|
||||
|
||||
##### Wi-Fi Direct (P2P) ######################################################
|
||||
|
||||
# Enable P2P Device management
|
||||
|
|
|
@ -67,6 +67,10 @@ will also need to add following line:
|
|||
|
||||
CONFIG_WPS_ER=y
|
||||
|
||||
Following parameter can be used to enable support for NFC config method:
|
||||
|
||||
CONFIG_WPS_NFC=y
|
||||
|
||||
|
||||
WPS needs the Universally Unique IDentifier (UUID; see RFC 4122) for
|
||||
the device. This is configured in the runtime configuration for
|
||||
|
@ -303,3 +307,41 @@ WPS-ER-AP-SETTINGS
|
|||
- WPS ER learned AP settings
|
||||
|
||||
WPS-ER-AP-SETTINGS uuid=fd91b4ec-e3fa-5891-a57d-8c59efeed1d2 ssid=test-wps auth_type=0x0020 encr_type=0x0008 key=12345678
|
||||
|
||||
|
||||
WPS with NFC
|
||||
------------
|
||||
|
||||
WPS can be used with NFC-based configuration method. An NFC tag
|
||||
containing a password token from the Enrollee can be used to
|
||||
authenticate the connection instead of the PIN. In addition, an NFC tag
|
||||
with a configuration token can be used to transfer AP settings without
|
||||
going through the WPS protocol.
|
||||
|
||||
When the station acts as an Enrollee, a local NFC tag with a password
|
||||
token can be used by touching the NFC interface of a Registrar.
|
||||
|
||||
"wps_nfc [BSSID]" command starts WPS protocol run with the local end as
|
||||
the Enrollee using the NFC password token that is either pre-configured
|
||||
in the configuration file (wps_nfc_dev_pw_id, wps_nfc_dh_pubkey,
|
||||
wps_nfc_dh_privkey, wps_nfc_dev_pw) or generated dynamically with
|
||||
"wps_nfc_token <WPS|NDEF>" command. The included nfc_pw_token tool
|
||||
(build with "make nfc_pw_token") can be used to generate NFC password
|
||||
tokens during manufacturing (each station needs to have its own random
|
||||
keys).
|
||||
|
||||
If the station includes NFC interface and reads an NFC tag with a MIME
|
||||
media type "application/vnd.wfa.wsc", the NDEF message payload (with or
|
||||
without NDEF encapsulation) can be delivered to wpa_supplicant using the
|
||||
following wpa_cli command:
|
||||
|
||||
wps_nfc_tag_read <hexdump of payload>
|
||||
|
||||
If the NFC tag contains a configuration token, the network is added to
|
||||
wpa_supplicant configuration. If the NFC tag contains a password token,
|
||||
the token is added to the WPS Registrar component. This information can
|
||||
then be used with wps_reg command (when the NFC password token was from
|
||||
an AP) using a special value "nfc-pw" in place of the PIN parameter. If
|
||||
the ER functionality has been started (wps_er_start), the NFC password
|
||||
token is used to enable enrollment of a new station (that was the source
|
||||
of the NFC password token).
|
||||
|
|
|
@ -204,6 +204,8 @@ CONFIG_EAP_LEAP=y
|
|||
# Disable credentials for an open network by default when acting as a WPS
|
||||
# registrar.
|
||||
#CONFIG_WPS_REG_DISABLE_OPEN=y
|
||||
# Enable WPS support with NFC config method
|
||||
#CONFIG_WPS_NFC=y
|
||||
|
||||
# EAP-IKEv2
|
||||
#CONFIG_EAP_IKEV2=y
|
||||
|
|
|
@ -218,6 +218,18 @@ fast_reauth=1
|
|||
# The vendor attribute contents to be added in M1 (hex string)
|
||||
#wps_vendor_ext_m1=000137100100020001
|
||||
|
||||
# NFC password token for WPS
|
||||
# These parameters can be used to configure a fixed NFC password token for the
|
||||
# station. This can be generated, e.g., with nfc_pw_token. When these
|
||||
# parameters are used, the station is assumed to be deployed with a NFC tag
|
||||
# that includes the matching NFC password token (e.g., written based on the
|
||||
# NDEF record from nfc_pw_token).
|
||||
#
|
||||
#wps_nfc_dev_pw_id: Device Password ID (16..65535)
|
||||
#wps_nfc_dh_pubkey: Hexdump of DH Public Key
|
||||
#wps_nfc_dh_privkey: Hexdump of DH Private Key
|
||||
#wps_nfc_dev_pw: Hexdump of Device Password
|
||||
|
||||
# Maximum number of BSS entries to keep in memory
|
||||
# Default: 200
|
||||
# This can be used to limit memory use on the BSS entries (cached scan
|
||||
|
|
Loading…
Reference in a new issue