标签:
注:这篇文章不谈技术
查看了一下《hostapd wpa_supplicant madwifi详细分析》系列文章,断断续续更新到现在,发现中间的持续时间都快要两年了。记得那时候刚毕业到公司,组长叫我看项目的无线部分代码,自己稀里糊涂的看了一个月,组长问我:
vap是怎么创建的?sta和AP是怎么建立连接的?wds是怎么工作的?WPS中PIN和PUSHBUTTON的区别是什么?我们DUT中几种加密方式是怎么实现的?hostapd是用来干什么的?
这些问题把我问的瞠目结舌,十分羞愧,感觉自己花了一个多月学的东西对他们来说简直就是鸡毛蒜皮。后来就下定决心开始从hostapd深入学习,一边将自己的想法总结。
虽然上面那些问题早就弄清楚了,但是却因为各种原因被打断,没能及时的更新出来。更重要的是越深入发现后面越是有更多的东西需要补充,越会发现自己的描述漏洞太多,越不敢轻易的下笔,以免带来什么误导。
后来跟着做思科的项目,负责captive portal的功能,一弄就是两个月,无心顾右,接着自己负责netgear extender项目,忙前忙后,整整九个月,小菜鸟总会因为各种问题弄的焦头烂额,会因为想不出解决办法而心烦意乱,那段时间,加班简直就是家常便饭,如果哪天没加班了心里却会感觉空落落的,现在想想那时还真任性!
这个系列的第一篇文章就是《hostapd是干嘛的?》,其实那时候回答得不好,作为完结篇,这里再回答一下:
hostapd是一个应用程序,作为一个工作在应用层的进程,它能完成什么样的工作,很大程度取决于内核和驱动,而hostapd是和无线相关的进程,所以它对wifi driver的依赖更加的紧密。如果要问hostapd是干嘛的,主要是基于wifi driver来问,不同的无线芯片厂商有不同的实现,有提供不同的wifi driver,所以对需要hostapd来补充相应功能的wifi driver来说,hostapd是实现无线局域网的左膀右臂,比如QCA;但是对于不需要hostapd提供服务,驱动能够封装相应功能的wifi driver来说,hostapd却没大用处。比如MTK。
hostapd几乎可以完成其他无线工具能够完成的无线配置工作,比如iwconfig,iwpriv, wlanconfig, iwlist等工具能完成的工作,hostapd它也可以完成。
hostapd也可以完成无线工具不能完成的工作,包括wpa/wpa2加密,radius加密,WPS,PIN等功能。
所以在应用层,wifi这一块往往只要一个hostapd进程就够了,特别是对于STA接口,比如手机,往往只要一个wpa_supplicant进程就可以完成大多数wifi工作了。因此hostapd不仅能够在应用层完成无线接口的配置,获取无线接口的信息,而且能够实现相应接口的加密功能。
前面一系列文章虽然介绍了hostapd和wpa_supplicant的一些东西,其实并不是很全面,大多数都只是一个概要,并不深入,当然了,对于一个应用程序想要深入到哪里去似乎也不太现实,除非进一步了解driver以及无线网络协议。后面应该不会再写这个系列的文章了,但是会对前面的文章进行维护,进行充实,同时也会维护一个hostapd.git仓库,对其中的一些代码进行注释,有兴趣的同学可以到这里clone查看 git@code.csdn.net:lee244868149/hostapd.git。
前面那些文章,主要资料都是来自网络搜索(有冒犯原作者的地方还望指出,会及时修正)以及RFC,个人推荐多参考官方标准文档,毕竟通过别人整理的,都有可能存在差错,别人的书籍或者文章应该用来帮助我们更好的理解RFC,最终还是要回到RFC找最初的依据。下面是相关的RFC:
802.1X-2004.pdf
IEEE Std 802.1X-2010.pdf
rfc4137.State-Machines-for-Extensible-Authentication-Protocol-(EAP)-Peer-and-Authenticator.pdf
802.11-2012.pdf
Wi-Fi_Simple_Configuration_Technical_Specification_v2.0.5.pdf
wpa_supplicant-devel.pdf
IEEE Std 802.1AR-2009 IEEE Standard for Local and metropolitan area networks—Secure Device Identity.pdf
hostapd wpa_supplicant madwifi详细分析(十四)——完结篇
标签:
原文地址:http://blog.csdn.net/lee244868149/article/details/52143095