Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >玩转「Wi-Fi」系列之wpa_supplicant 目录介绍(八)

玩转「Wi-Fi」系列之wpa_supplicant 目录介绍(八)

作者头像
程序手艺人
发布于 2019-02-21 09:57:50
发布于 2019-02-21 09:57:50
4.8K0
举报
文章被收录于专栏:程序手艺人程序手艺人

之后的文章基本都是wpa_supplicant源码分析的介绍, wpa_supplicant 一个庞大的开源项目, 最新版本的为2016-10-V2.6。据目前来开,WiFi相关应用层的操作基本都是wpa_supplicant 的封装,包括Android 。初步统计一下,wpa_supplicant 源文件个数 552个, 20万行代码。 分析起来工作量巨大,这条路非常难走,请读者做好准备。

wpa_supplicant 的源码目录介绍

├── ap       // hostapd 相关功能         ├── common    // 通用函数  ├── crypto     // 各种加密功能 ├── drivers // 对接底层驱动,包括 wext 和nl80211 ├── eap_common // eap 相关 ├── eapol_auth ├── eapol_supp ├── eap_peer ├── eap_server ├── fst // fst 模块 ├── l2_packet // 链路层的访问封装 ├── p2p // WiFi P2P协议, ├── pae // ieeee802 协议 ├── radius // RADIUS:Remote Authentication Dial In User Service 消息处理 ├── rsn_supp // RSN协议, Robust Secure Network,强健安全网络),即通常所说的WPA2安全模式,是WPA 的第二个版本 ├── tls // tls 协议 ├── utils // 包括 RFC1341编解码, 通用的辅助函数, 双链表, UUID, debug, epool └── wps // wps 功能的实现

主要文件详解

核心功能

通用功能

wpa_supplicant 使用通用的帮助函数,其中一些与hostapd共享,文件如下:

加密功能

  • md5.cmd5.h MD5(如果包含TLS的支持则用加密库替换)HMAC-MD5(用于消息真实性验证的密钥校验和)
  • rc4.c和rc4.h RC4(广播/默认密钥加密)
  • sha1.csh1.h SHA-1(如果包含TLS的支持则用加密库替换) HMAC-SHA-1(用于消息真实性验证的密钥校验和) PRF-SHA-1(伪随机(密钥/随机数生成)函数) PBKDF2-SHA-1(ASCII共享密码)T-PRF (for EAP-FAST) TLS-PRF (RFC 2246)
  • sha256.c sha256.h SHA-256(如果包含TLS的支持则用加密库替换)
  • aes-wrap.c, aes_wrap.h aes.c AES(如果包含TLS的支持则用加密库替换)采用128位KEY的AES密钥包装算法 RFC3394(广播/默认密钥加密) One-Key CBC MAC (OMAC1)哈希AES-128,AES-128 CTR模式加密, AES-128 EAX模式加密/解密,AES-128 CBC
  • crypto.h加密库封装的定义
  • crypto_openssl.clibcrypto的封装函数 (OpenSSL)
  • crypto_internal.c 内部加密实现的封装函数
  • crypto_gnutls.c libgcrypt的封装函数(used by GnuTLS)
  • ms_funcs.c ms_funcs.h MSCHAPV2 和 LEAP 参考函数
  • tls.h TLS库封装的定义
  • tls_none.c不包括TLS功能的情况下,TLS库封装的虚拟实现
  • tls_openssl.c 用于openssl的TLS库封装器
  • tls_internal.c 用于内部TLS实现的TLS库
  • tls_gnutls.c 用于GnuTLS的TLS库封装器

TLS 库

配置

控制界面

wpa_supplicant有一个控制界面可以用来获取状态信息和管理来自外部程序的操作.一个命令行界面的例子(wpa_cli)和GUI(wpa_gui)的接口包含在wpa_supplicant分发中

EAP peer

EAPOL supplicant

Windows 端口

测试程序

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年12月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
wpa_supplicant 框架
Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示:
用户7557625
2020/07/28
1.8K0
wpa_supplicant 框架
wpa_supplicant详解
WPA是WiFi Protected Access的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。 wpa_supplicant是一个开源项目,已经被移植到Linux,Windows以及很多嵌入式系统上。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。 wpa_supplicant是一个 独立运行的 守护进程,其核心是一个消息循环,在消息循环中处理WPA状态机、控制命令、驱动事件、配置信息等。 经过编译后 的 wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant 和 wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用 wpa_cli来搜索、设置、和连接网络。 Android使用一个修改版wpa_supplicant作为daemon来控制WIFI,它是一个安全中间件,代码位于external/wpa_supplicant,为各种无线网卡提供统一的安全机制,wpa_supplicant是通过socket与hardware/libhardware_legacy/wifi/wifi.c通信,如下图所示:
用户7557625
2021/01/18
3.2K0
玩转「Wi-Fi」系列之wpa_supplicant - main分析(十)
分析函数可知wpa_supplicant_init函数的主要功能是初始化wpa_global以及相关资源,包括注册EAP,事件循环,回调函数处理
程序手艺人
2019/02/21
2K0
wpa_supplicant 的配置说明文件 wpa_supplicant.conf
通过从客户端认证中退出,windows下的认证储存可以被使用,并且私人密匙可以通过以下格式配置: cert://substring_to_match hash://certificate_thumbprint_in_hex
iOSDevLog
2020/06/11
10K0
玩转「Wi-Fi」系列之wpa_supplicant 介绍(七)
wpa_supplicant是Linux BSD, Mac OSX和Windows的WPA的服务,支持WPA和WPA2(IEEE 802.11i/RSN),它适用于台式机/笔记本和嵌入式系统,Supplicant是在客户端站中使用的IEEE 802.1X/WPA组件,它使用WPA身份验证器实现秘钥协商,并控制漫游和IEEEE802.11认证/关联的WLAN驱动程序
程序手艺人
2019/02/21
3.9K0
wpa_supplicant.conf 配置文件解析(二)
上一篇链接:https://blog.csdn.net/qq_43804080/article/details/100739897
用户7557625
2020/07/15
4.8K0
wpa_supplicant.conf 配置文件解析(一)
WPA,是Wi-Fi Protected Access,Wi-Fi安全访问的简称。wpa_supplicant是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的。
用户7557625
2020/07/15
3.3K0
玩转「Wi-Fi」系列之wpa_supplicant - main分析(九)
其中比较主要的是-c参数, 指定启动配置文件。配置文件的模板路径为 wpa_supplicant/wpa_supplicant.conf, 官网有对该文件参数的详细描述 。
程序手艺人
2019/02/20
3.9K0
wpa_supplicant 常用操作
wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序. 可以通过wpa_cli来进行WIFI的配置与连接,前提要保证wpa_supplicant正常启动
程序手艺人
2019/02/21
3.4K0
wpa_supplicant的log中四次握手分析
wpa_supplicant的log中四次握手分析 wlan的状态变化: log不全,截取的部分。用的9.0代码。 06-04 16:23:30.248 I/wpa_supplicant(
用户7557625
2020/07/15
1.4K0
wpa_supplicant的log中四次握手分析
深入理解Wi-Fi P2P
本章主要内容: 介绍Wi-Fi P2P相关知识; 介绍Android中WifiP2pService、wpa_supplicant的相关代码。 7.1 概述 承接第6章介绍的WSC,本章将继续介绍Wi-Fi Alliance(Wi-Fi联盟)推出的另外一项重要技术规范Wi-Fi P2P。该规范的商品名为Wi-Fi Direct,它支持多个Wi-Fi设备在没有AP的情况下相互连接。 在Android平台的Wi-Fi相关模块中,P2P的功能点主要集中在: Android Framework中的WifiP2pSe
李海彬
2018/03/23
5.9K0
玩转「Wi-Fi」系列之应用程序(五)
Linux 下的常用网络应用程序有很多, 核心基本都是wpa_supplicant的封装。这里主要分类介绍:
程序手艺人
2019/02/20
2.1K0
wpa_supplicant状态机
wpa_supplicant状态机 像WAPI、EAP之类在关联之前也会进行认证。
用户7557625
2021/01/20
1.6K0
wpa_supplicant状态机
你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告
近日,Wi-Fi加密协议被曝光存在重大安全漏洞,用于保护Wi-Fi网络安全的WPA2 安全加密协议已被黑客破解。这种被称作“Krack”(密钥重装攻击)攻击意味着用户连接的绝大多数Wi-Fi已经不安全了,包括家中的路由器Wi-Fi,都存在被盗号的风险。攻击者可通过此漏洞获取万能密钥来访问WPA2网络,从而窃听用户的通讯信息。
全栈程序员站长
2022/08/22
1.6K0
你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告
脆弱的Wi-Fi保护设置(WPS)
Author:颖奇L'Amore Blog:www.gem-love.com
Y1ng
2022/10/31
3.4K0
脆弱的Wi-Fi保护设置(WPS)
wpa_supplicant工具移植
就移植来说,wpa_supplicant的移植和ssh十分类似,wpa_supplicant需要openssl和libnl库,所以我们需要先准备好openssl和libnl库,openssl的移植在前面的文章嵌入式Linux开发板移植SSH中也介绍过一次,这里的openssl库的移植和前面完全一样。我们先准备好源码:
知否知否应是绿肥红瘦
2025/02/19
1930
wpa_supplicant工具移植
题目1-安卓手机文件分析取证(Wi-Fi名称)
找到wpa_supplicant.conf配置文件,记录着WIFI的信息,找到ssid
tea9
2022/09/08
6150
题目1-安卓手机文件分析取证(Wi-Fi名称)
Wi-Fi 总结
Wired Equivalency Protection,一种Wi-Fi连接的安全标准,类似的安全标准还包括下面的WPA,WPA2。它可以使用64/128bit的ASCII/HEX(0-9,A-F)的Password,它的密钥是由Password和一个IV(初始化向量)组成,加密算法是stream cipher RC4,并使用 CRC-32校验和确保完整性。加密解密过程如下:AP发送的数据包(包括IV和加密过的数据)–>无线客户端收到此数据包–>提取其中的IV,用于和本地的Password形成密钥–>解密数据包。它有两种鉴权方式:Open System, Shared Key.
iOSDevLog
2020/06/09
2.1K0
Wi-Fi 总结
wpa_supplicant_V2.6 版本编译问题
具体的编译步骤已经在玩转「Wi-Fi」系列之wpa_supplicant 介绍(七)描述过,这里针对编译过程中遇到的错误做总结
程序手艺人
2019/02/21
1.6K0
WiFi网络WPA2 KRACK漏洞分析报告「建议收藏」
安全研究员Mathy Vanhoef发现的WPA2协议的KRA(Key Reinstallation Attacks)漏洞,利用WPA2协议标准加密密钥生成机制上的设计缺陷,四次握手协商加密密钥过程中第三个消息报文可被篡改重放,导致在用密钥被重新安装。
全栈程序员站长
2022/06/28
9320
WiFi网络WPA2 KRACK漏洞分析报告「建议收藏」
相关推荐
wpa_supplicant 框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档