WPS协议阅读之第四章

4 Core Architecture

WPS协议阅读之第四章_第1张图片

4.1 Components and Interfaces

WPS由三个逻辑单元组成:RegistrarAPEnrolleeRegistrar可以内置在一个AP中,称为standaloneAP。通常一个WLAN网络的建立是分布进行的,首先打开一个AP(这个AP连接到交换机等网络设备),然后添加一个Enrollee或者Registrar设备到这个网络,这是通过运行Registration Protocol完成的,如果新加的设备上Registrar,则以后的设备可作为Enrolless使用该Registrar加入网络,WPS定义了新的WPSIE,这些IE包含在beacons,probe requests,probe response中,这些IE表明设备是否支持WPS操作。

4.2 Registration Protocol

RP协议完成以下目的:

排除无线连接问题

定义了用out-of-band信息完成EnrolleeRegistrar相互间的识别,使能认证配置功能

为设备建立某种角色(APRegistrarEnrollee);

安全地将WLAN配置信息从Registrar传递到Enrollee

建立EMSK(Extended Master Session Key)

RP协议可以单独地运行在in-bandout-of-band或者两者的结合,这样可以灵活的利用out-of-band通信机制。

RP协议的运行分为两个阶段,第一阶段称为discovery阶段,用于在RegistrarEnrollee之间交换描述信息,discovery阶段是必须的。

STA Erollee可以通过下面中断一种方法运行discovery:

1.      在扫描阶段发出包含WPS IEprobe request帧到APAP回复包含WPS IEprobe response,可用于选择registrarAP

STA enrollee可决定是否连接到AP,并发送M1开始RP协议,如果Registrar还没有准备好接受STAenrollee的连接,则registrar会回复M2Dsta enrollee继续发现可用的registrar

2.      如果AP作为enrollee,则由registrar发起discovery阶段

无线external registrar发送包含WPS IEprobe requestWPS IE中的request type设为Registrar或者WLAN ManagerRegistrarAP回复probe response

有线external registrarUPnPdiscovery机制发现AP

discovery阶段,Enrollee可以与多个AP或者Registrar交换信息。

第二阶段为enrollment,这个阶段将完成预认证的过程

RP协议分步同步运行,停止运行于M2,M2D或者M8

M2D---表示registrar还未准备好与enrollee的认证,但是会向enrollee提供registrar的描述信息

M2---在用NFCout-of-band方式通信时,第一阶段和第二阶段结合为一个阶段,只需要一个回合的信息交互,不需要M2以后的交互

M8---三个回合信息交互的结束,第二阶段的三个回合保证在Enrollee device password基础上交互完成EnrolleeRegistar的双向认证,WLAN的认证信息通过M8传递给Enrollee

其他遇到error或者超时的情况下RP协议的运行也可能被停止。

4.3 Security Overview

设备厂商有可选择不同的安全策略,这里有主要两种WPS操作:in-band 配置,out-of-band配置。

in-band配置中,Diffie-Hellman密码被应用,其来自device passworddevice passwordErrollee获得并通过输入栏(或者NFC)键入Registrar

4.3.1 In-band Configuration

WPS in-band RP协议的设计目的是抵御窃听工具和暴力破解。如果Registar认为一个Enrollee的攻击者合法,且发现攻击者并不知道密码。Registrar的这种对攻击者的错误认知发生在还未向暴力破解者暴露足够多信息之前。但是,如果Registrar用相同的PIN码与一个攻击者的Enrollee运行了多次RP协议,攻击者可以利用线下离线暴力攻击发现PIN码,并重新运行RP协议获得网络设置。为了处理这个弱点,如果发出M6PIN认证或通信发生错误,Registrar必须警告用户且不能再使用原来PIN码,提示用户使用Enrollee产生的新的PIN码,新的PIN码应该与旧的PIN码不同,如果用一个32字节以上的随机强密码替换PIN码,这样的密码才可以勉强多次使用,而在PBC method中却没有PIN码重用的问题。

Device Password

支持WPS的设备必须能提供一个随机独立的Device Password(PIN),虽然有可能并允许两个设备产生相同的Password,多个设备还是应该避免故意产生相同的Device passwordDevice password也不能以设备的其他身份特性产生,如MAC地址或序列号等。

Headless Devices

headless device没有显示,WPS应用在这些设备上要求提供一个8个数字的PIN码,这个PIN码可以贴在设备上,在生产过程中配置。

PIN码作为device passwordWPS中最基本的安全等级,因为8个数字的PIN中将会有一位用于checksumPIN包含约23位的熵,固定值的PIN码可以重用,易受攻击。WPS协议允许用户重新定义默认的devicepassword,这样可以使有安全顾虑的用户提高网络的安全性。

WLAN中,headless device的代表设备就是AP本身,每次RP运行时,AP作为registrarenrollee产生一个临时的变化PIN,如果一个固定PIN码被使用,AP在多次与Registrar认证失败后进入lock-down状态,在lock-down状态下,AP会拒绝运行RP协议,这样会避免攻击者作为registrar窃取APPIN码,在AP lock-down状态下,允许添加EnroleeWLAN,但不能使用APPIN添加registrar,需要用户干预退出lock-down状态,例如用AP的管理页面或者重新开关电源。

除了PIN methodheadless device也可以实现PBC methodPBC的熵为0位,只能避免被动窃听攻击,PBC method只是用在Registrar 不支持PIN码,有一定的安全风险。

Devices with Display

如果Enrollee设备支持display configuration methodEnrollee在每次运行RP协议的时候都会产生一个4个或者8个数字的PIN码,并在显示设备上显示该PIN码,这种方法有两点明显的优点:首先,因为PIN码只使用一次,可以防止暴力破解;其次,每次动态产生密码也要比生产的时候配置容易。

4.3.2 PIN values的规则和要求

两类设备对PIN码的要求不同:

a.      Headless device必须使用8个数字的PIN码,PIN码贴在设备的上面,PIN码的最后一个数字作为前七个数字的checksum

b.      带显示设备的即可以用4个数字的PIN码,也可以用8个数字的PIN码,与headless device一样,8个数字PIN码的最后一个数字作为checksum4个数字的PIN码则没有checksum

如果一个设备能动态产生PIN码,且设备上贴有PIN码,建议使用动态产生的PIN码,建议手动输入的device password8个数字的PIN码,这个长度虽然不能为健全认证提供大量熵池,但在RP协议中可以防范对PIN码的字典攻击。

PIN的值应当随机产生,不能来自于那些可能被攻击者获得的信息,例如in-band中设备的序列号和MAC地址等。如果一个设备有多个PIN,每一个PIN码必须独立且加密,例如一个NFC设备可能有一个PIN码还有一个device password,它的PIN码和device password必须不同且彼此不相关。

Registrar可以提前配置Enrollee PINUUID-E的一组值作为packagedsolution的一部分,Registrar也可以只存储PIN值,PIN码在Registrar中保留的时间不确定,Registrar会在PIN 认证失败后使PIN无效。存储在Registrar中的PIN码需加密保护且对外接口不可读。

 

你可能感兴趣的:(WPS)