本文介绍了乐鑫自主研发的Simple-Pair技术,说明了使用方式并提供了示例解决方案。
Simple-Pair隶属于ESPIE的- -部分,用于两个设备间快速协商或交换Key (或其他信息,一般用于交换Key)。
Simple-Pair实现了数个步骤就能完成交换Key。目前,Simple-Pair 仅提供Station与AP间交换Key (限定16字节),最终需要交换的Key是从AP端发往Station端。为了保护最终的交换步骤,Simple-Pair 包含了一一个被称为TempKey的Key。这个Key - -般存在Station端,用户在Simple-Pair之前,需要通过某些手段让AP和Station双方设备都知晓这个TempKey。
Simple-Pair设计初衷是用于快速交换某些功能要使用的Key,能够使两个从未配对过的设备进行配对操作。在整个配对过程中,建议双方设备都暂时禁止休眠,以免无法正常收包。Simple-Pair需要交换的Key存放在AP端,经过配对端步骤之后,交换的Key将会从AP端发到Station端,此时双方设备已经完成了Simple-Pair的步骤。对应用层来说,配对的过程还未结束,必须使用交换完的Key进行一次尝试, 尝试成功方可认为Simple-Pair 是正确的。
在Simple-Pair的概念里,设备对应用层只有三个步骤: Set Peer Info, AP ANNOUNCE(STA SCAN)和START Negotiate。所有的状态都通过回调函数来实现。
用户需要向Simple-Pair来注册-个状态回调函数,在Simple-Pair运行的过程中,诸如配对完成、协商请求、超时、错误等等都会通过状态回调函数来指示。如AP端的状态回调函数传入状态指示有Station发来协商请求,则AP端需要决定是否同意请求;如状态回调函数传入错误的状态值,则需要根据状态值的不同做不同的处理(详细请见Demo程序)。
在进行配对协商之前,AP要进入Simple-Pair Announce模式,Station 则要进入Simple-Pair Scan模式。进入这些模式之后,Station 需要向AP发送IEEE802.11 Probe Request(即进行普通的扫描AP的操作),这样Station才知道哪些AP已经准备好SimplePair了; AP才知道哪些Station是准备好Simple-Pair 了。
Station在扫描到AP之后,需要从BSS_ INFO里选择已经准备好Simple-Pair的AP,设置好AP的MAC地址以及TempKey,然后发送STA Negotiate Start。
AP收到请求之后,需要(或联合手机)判断是否同意请求。若同意,先设置好Station的MAC地址、TempKey 和交换的Key,然后发送AP Negotiate Start;若不同意,设置好Station的MAC地址和TempKey,然后发送AP Negotiate Refuse。
Station收到AP Negotiate Start,则会进行协商步骤;若接收到Refuse,则通过状态回调函数告知应用层,应用层需要做相应的处理。
在协商完成之后,Station 端就获得了AP发送端交换的Key。此时Simple- Pair端步骤已经结束。但是应用层需要做-次验证,以确定交换Key是正确的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !