ti cc3000 wifi芯片具有特殊的智能配置模式,此功能允许对wifi访问详细信息进行初始配置。
cc3000 Wiki页面提供了有关该过程如何工作的一些详细信息,
- 芯片进入智能配置“监听”模式
- 智能手机上的应用程序发送带有接入点设置的“ UDP”数据包
- 芯片捕获该数据并自行配置
我知道数据包捕获和wifi嗅探,但是芯片如何“解密”原始数据包以获取任何信息呢?我在路由器上将wpa2-personal与AES一起使用。
ti cc3000 wifi芯片具有特殊的智能配置模式,此功能允许对wifi访问详细信息进行初始配置。
cc3000 Wiki页面提供了有关该过程如何工作的一些详细信息,
我知道数据包捕获和wifi嗅探,但是芯片如何“解密”原始数据包以获取任何信息呢?我在路由器上将wpa2-personal与AES一起使用。
Answers:
正如@Colin提到的,TI 现在用于将网络SSID和密钥短语从设置应用程序传递到支持CC3000的设备的方案称为Smart Config。
Smart Config必须将信息(网络SSID和密钥短语)从安全的wifi网络传送到尚未启用解密功能的支持CC3000的设备。
最初,CC3000未连接到网络(但可以监视流量),因此Smart Config应用程序无法将其信息直接发送到设备。而是将UDP数据包发送到网络上的另一台现有计算机-wifi接入点(AP)。AP对接收它们不感兴趣无关紧要,重要的是数据包在网络上可见。
CC3000可以监视无法解密的流量,甚至无法确定给定的加密数据包是否包含UDP数据。那么,如何挑选UDP数据包或对其进行任何有用的处理呢?
基本上,Smart Config不会以其发送的数据包的内容而是以其长度来编码其信息。Wifi加密会影响数据包的长度,但会以一致的方式进行,即它会在每个数据包的大小上增加L个额外的字节,其中L是一个常数。
Smart Config应用程序将SSID和密钥短语编码为UDP数据包序列的数据包长度。CC3000可以查看加密的数据包及其大小。
在许多环境中,CC3000将能够看到来自多个附近网络的流量,因此如何发现相关流量?即使加密后,仍然可以看到数据包的源和目标的MAC地址,因此可以通过这种方式对流量进行分组。除了Smart Config尝试发送的主要信息外,它还会定期发送重复的数据包长度模式,因此CC3000按所述方式对流量进行分组,然后在给定流量中找到这些模式时,便会寻找此类模式然后重点关注源和目标对以恢复主要信息。
显然还有更多的东西,例如,即使CC3000找到了与AP和运行Smart Config应用程序的机器相对应的源对和目标对,它又如何过滤来自Smart Config数据包之间的其他不相关流量的Smart Config数据包。 AP和机器?我已经在一系列博客文章中写下了所有这些。
技术上最详细的内容涵盖了Smart Config的核心-它如何编码SSID和密钥短语并传输它们,以便CC3000可以接收它们:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-transmitting-ssid.html
然后,我发了一篇技术性较差的文章,更多地是关于为什么您应该始终在Smart Config中使用AES密钥的观点:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-aes.html
中间有一个技术性要点简要地描述了如何使用CC3000期望的必要的AES转换在Java中配置密码。
最后是布丁的证明-我编写了一个应用程序来模拟CC3000与Smart Config相关的行为,即,它可以恢复任何Smart Config应用程序传输的SSID和密钥短语,而无需能够解密相关的网络流量。您可以在此处找到下载源和所有详细信息的位置:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-keyphrase.html
这应该使人们能够测试一个人编写的任何Smart Config应用程序的行为,即,可以看到CC3000将能够从该应用程序传输的数据中重构出什么。
我也有一些其他有关Smart Config / CC3000的帖子:
http://depletionregion.blogspot.ch/search/label/CC3000
对于某些背景信息,在TI论坛上与CC3000有关的通读这些线程也可能很有趣。
第一个介绍Smart Config本身:
http://e2e.ti.com/support/low_power_rf/f/851/t/253463.aspx
在mDNS上,一种是Smart Config应用程序检测到启用CC3000的设备已加入网络的机制:
http://e2e.ti.com/support/low_power_rf/f/851/p/290584/1020839.aspx
在这两个线程中,一些初始消息似乎并不那么相关,但是也混入了一些有趣的信息。但是也有很多不准确的信息,所以不要假设所有信息都是正确的,即使是从TI员工或从我这里获得的信息(我最终学到了很多东西,但都是从一些错误的假设/信念开始的)。
专利已被提及过几次,但是我找不到任何证据表明该技术正在申请或授予专利。
注意:如对此答案的注释以及其他答案中所述,以下答案并不反映当前的程序。将此留作历史记录。
似乎CC3000实际上正在所有wifi通道上侦听(“混杂模式”)AP探测请求,所探测(和伪造)的AP的SSID包含CC3000配置其自身以连接到“ true”所需的信息通过它将连接到Internet的AP。
经过一番搜索之后,我发现了该设备首次配置的描述,应该可以清楚地了解一下:
http://processors.wiki.ti.com/index.php/CC3000_First_Time_Configuration
最有趣的一点:
需要将用于执行首次配置的设备(例如手机或平板电脑)配置为使用特制SSID连接到AP。该SSID包括我们希望CC3000连接的SSID的名称,以及有关安全选项的信息,例如安全类型和密钥。
查看此页面以获取信息。
AP不参与此过程。CC3000正在侦听来自手机或其他设备的UDP数据包。双方均使用AES加密此通信。手机会在这些数据包中发送有关路由器WPA2密钥的信息。CC3000知道手机使用的AES密钥,对数据进行解码并连接到路由器。
@Greg Sadetsky的答案(描述“首次配置”)很好地总结了基本过程。但是在TI论坛上的讨论中发现,CC3000更改了执行此自动配置的过程。新过程称为“ smartconfig”,而不是“首次配置”,并且TI显然正在准备该技术的专利申请。似乎使用了类似的方案,在该方案中发送了特殊的Wi-Fi“探针”请求,该请求巧妙地编码了CC3000的网络凭据。
如果选择不对自动配置使用AES加密密钥,则smartconfig算法将使用一种未公开的方法来混淆接入点SSID和安全密钥。这并不是天生的安全,因为如果有人通过逆向工程或其他方式学习混淆算法,则无线网络的安全性将受到损害。提交专利申请后,这是公共领域的知识,您必须在CC3000自动配置模式下使用AES加密密钥才能确保安全。
根据德州仪器(Texas Instruments)对2012-2013年专利申请的审查,截至2013年9月,该专利申请尚未提交(Google专利搜索链接:德州仪器(Texas Instruments),按最新提交日期排序)。