目录
[1 硬件模块](#1 硬件模块)
[1.1 Wifi射频模](#1.1 Wifi射频模)
[1.2 电源管理模块](#1.2 电源管理模块)
[2 软件与协议栈](#2 软件与协议栈)
[2.1 系统服务层](#2.1 系统服务层)
[2.2 认证与协议处理](#2.2 认证与协议处理)
[3 连接流程](#3 连接流程)
[3.1 开启WiFi与扫描](#3.1 开启WiFi与扫描)
[3.2 选择网络与认证](#3.2 选择网络与认证)
[3.3 连接与IP分配](#3.3 连接与IP分配)
[4 特殊连接方式](#4 特殊连接方式)
[4.1 WPS快速连接](#4.1 WPS快速连接)
[4.2 热点模式(AP模式)](#4.2 热点模式(AP模式))
[4.3 UDP广播搜索](#4.3 UDP广播搜索)
[5 WiFi高级认证流程](#5 WiFi高级认证流程)
[5.1 认证流程](#5.1 认证流程)
[5.2 Android端配置参数详解](#5.2 Android端配置参数详解)
[5.3 不同的EAP方法对比](#5.3 不同的EAP方法对比)
[5.3.1 基于证书的认证方法](#5.3.1 基于证书的认证方法)
[5.3.2 基于SIM卡的移动网络方法](#5.3.2 基于SIM卡的移动网络方法)
[5.3.3 其他认证方法](#5.3.3 其他认证方法)
1 硬件模块
1.1 Wifi射频模
手机主板集成WiFi模块,包含天线、发射器和接收器,负责无线信号收发
模块通常位于手机主板顶部或边缘,靠近天线位置以优化信号接收,例如iPhone的WiFi模块位于上部,安卓手机多位于主板中部
模块支持IEEE 802.11b/g/n协议栈,覆盖2.4GHz或5GHz频段,通过无线信道与路由器通信
1.2 电源管理模块
控制WiFi模块的供电,通过GPIO和SDIO接口与CPU通信,确保模块在激活时正常工作,空闲时降低功耗
2 软件与协议栈
2.1 系统服务层
WifiService
:由Android系统启动,负责管理WiFi的开启/关闭、扫描热点、保存网络配置等核心功能
WifiMonitor
:监听底层事件(如扫描结果、连接状态变化),并通知上层应用
WifiManager
:提供API供应用调用,例如扫描网络列表、连接指定SSID
2.2 认证与协议处理
wpa_supplicant
:开源程序处理WIFi协议栈,包括扫描可用网络、执行WPA/WPA2认证、管理连接过程(如握手、密钥交换)
TCP/IP协议栈:内置在模块中,实现数据包的路由和互联网访问
3 连接流程
3.1 开启WiFi与扫描
用户通过系统界面启动WiFi,系统调用WifiService
发送扫描指令
WiFi模块进入扫描模式,通过天线接收附近AP广播的Beacon帧,获取SSID、信号强度、加密类型等信息
扫描结果通过WifiMonitor
反馈至系统,用户界面显示可用网络列表
3.2 选择网络与认证
用户选择目标网络后,系统检查是否为已保存网络:
-
若是,自动调用
wpa_supplicant
发起连接 -
若首次连接,需输入密码或通过二维码扫描配置参数
对于隐藏网络(未广播SSID),需手动输入SSID和密码才能加入
3.3 连接与IP分配
wpa_supplicant
根据配置发起连接请求,与路由器完成四次握手(针对WPA2-PSK)或802.1X认证(企业网络)
连接成功后,路由器通过DHCP为手机分配IP地址,完成TCP/IP协议栈初始化
状态栏显示WiFi图标,系统自动保存网络信息供下次连接
4 特殊连接方式
4.1 WPS快速连接
支持WPS的路由器可通过物理按钮或PIN码快速配对,无需输入密码
4.2 热点模式(AP模式)
手机可切换为热点(如loT设备配置时),其他设备通过搜索SSID并输入密码连接
4.3 UDP广播搜索
在智能家居场景中,手机通过UDP广播发送探测包(如"Are You AirM2MIOT Smart Device?"),接收设备响应后建立连接
关键模块交互示例
扫描阶段:
WifiManager
->WifiService
->wpa_supplicant
-> WiFi驱动 -> 射频模块连接阶段:用户输入密码 ->
WifiService
配置参数 ->wpa_supplicant
发起认证 -> 驱动处理数据包 -> 路由器响应
5 WiFi高级认证流程
在需要高安全性的企业、教育机构或政府网络中,WiFi连接往往采用802.1X企业认证,其核心是EAP(扩展身份验证协议)框架
`应用层| EAP-PEAP{包含MSCHAPv2)``传输层|TLS 1.2/1.3{加密隧道)``网络层|802.1X{端口控制协议)``数据链路层|802.11(WiFi帧)`
5.1 认证流程
阶段1:PEAP TLS隧道建立
1.协议协商
客户端扫描到目标SSID(如 eduroam或Govwifi)后,触发EAP协商
客户端发送EAP-Response/Identity,声明支持PEAP方法
2.服务器身份验证
服务器返回包含X.509证书的EAP-Request/PEAP Start客户端验证证书合法性:
-
检查证书颁发机构(CA)是否受信任(若配置为"Use system certificates"则依赖系统预装CA)
-
验证证书主题(Subject)与域名(如wifi.tdsb.on.ca)是否匹配
3.TLS握手
客户端生成随机数并与服务器交换,通过Diffie-Hellman密钥交换建立对称加密密钥
最终形成端到端加密的TLS隧道,后续所有通信均在此隧道内进行
阶段2:MSCHAPv2内部认证
1.用户凭证交换
客户端在TLS隧道内发送明文用户名(ldentity)
服务器生成16字节随机**质询(Challenge)**并发送至客户端
2.三次握手验证
`Step 1:客户端计算响应``-使用密码哈希(NT-Hash)对质询进行加密 -> 生成24宇节响应(Response)``Step 2:双向验证``-客户端发送Response,同时生成服务器验证值(Peer-Challenge)``-服务器验证Response有效性,并返回成功确认`
注:MSCHAPv2通过双向验证防止中间人攻击,区别于单向验证的I旧版MSCHAP
3.密钥派生
双方基于共享密钥生成动态会话密钥(PMK),用于后续数据加密(如AES-CCMP)
5.2 Android端配置参数详解
|---------|----------|---------------------------------------------|
| 参数项 | 推荐配置 | 技术解释 |
| EAP方法 | PEAP | 创建TLS隧道保护认证过程,支持服务器证书验证 |
| 阶段2身份验证 | MSCHAPv2 | 在TLS隧道内进行基于密码的强认证,支持双向验证 |
| CA证书 | 不验证/系统证书 | 企业网络常跳过CA验证以简化部署(安全风险需权衡) |
| 匿名身份 | 留空 | 避免暴露真实用户名(若网络要求匿名ID需填写特定值,如anonyous@domain) |
| 身份 | 用户名(如工号) | 对应RADIUS服务器中的用户标识,需与后端数据库匹配 |
| 密码 | 网络密码 | 需满足复杂度策略(如大小写+数字),避免使用弱口令 |
示例配置:
`ЕAP Method: PЕAР``Phase 2 Authentication: MSCHAPv2``CA Certificate: Do not validate``Identity: employee123``Password:******`
5.3 不同的EAP方法对比
5.3.1 基于证书的认证方法
1.EAP-TLS(Transport Layer Security)
采用双向证书认证,客户端和服务端均需提供X.509数字证书,通过TLS协议建立加密隧道,密钥派生基于证书中的公钥-私钥对
-
最高安全性:支持双向认证,抗中间人攻击,密钥不可被离线破解
-
标准化程度高:广泛兼容WPA2/WPA3-Enterprise网络
部署复杂:需维护PKI(公钥基础设施),客户端证书管理成本高
资源消耗大:移动设备处理证书签名可能影响性能
适用场景:金融机构、政府网络等高安全需求环境
2.PEAP(Protected EAP)
建立单向TLS隧道(仅验证服务器证书),内部嵌套其他认证方法(如MSCHAPv2)完成用户认证
-
简化客户端部署:仅需服务器证书,用户使用账号密码即可接入
-
兼容性强:支持Windows AD域集成,适合企业办公网络
单向认证风险:若客户端不验证服务器证书,可能遭受钓鱼热点攻击
依赖内部方法安全性:若嵌套弱协议(如EAP-MSCHAPv2),隧道可能被爆破
适用场景:教育机构、企业WiFi的大规模部署
3.EAP-TTLS(Tunneled TLS)
类似PEAP,但允许更灵活的内部认证方法(如PAP、CHAP),支持客户端匿名ID
-
灵活认证策略:可集成LDAP、RADIUS等多种后端认证源
-
隐私保护:匿名ID避免暴露真实用户名
配置复杂度高:需协调隧道内外两层认证参数
历史漏洞:早期版本存在会话恢复漏洞(如CVE-2007-3283)
适用场景:需兼容传统认证系统的混合网络
5.3.2 基于SIM卡的移动网络方法
1.EAP-SIM(GSM SIM Authentication)
利用GSM SIM卡的Ki密钥和三元组(RAND/SRES/Kc)进行认证,适用于2G/3G网络
-
无缝移动网络集成:运营商无需额外配置,直接复用蜂窝认证体系
-
用户体验便捷:自动认证无需输入密码
安全强低:GSM加密易被破解(如A5/1算法漏洞),仅支持单向认证
依赖旧技术:不适用于5G或非GSM网络
适用场景:公共WiFi与蜂窝网络的无缝切换
2.EAP-AKA(UMTS Authentication and Key Agreement)
基于3G USIM卡的AKA协议,使用128位加密算法(如Milenage)生成五元组(RAND/AUTN/XRES/CK/IK)
-
增强安全性:支持双向认证,密钥不可复用,抗重放攻击
-
兼容5G演进:作为EAP-AKA'的基础,支持向5G平滑过渡
计算开销大:USIM需执行多次AES运算,影响低端设备性能
硬件依赖:需专用USIM卡,无法用于普通SIM设备
适用场景:3G/4G移动网络与WiFi的融合接入
3.EAP-AKA'(Enhanced AKA for 5G)
在EAP-AKA基础上引入SHA-256哈希算法和密钥分离机制,支持跨网络(3GPP与非3GPP)互操作
-
前向保密支持:通过RFC 9048草案实现PFS(Perfect Forward Secrecy),防止历史数据解密
-
算法升级:弃用SHA-1,减少碰撞攻击风险
部署成本高:需升级USIM卡和AAA服务器
兼容性局限:旧设备不支持新算法
适用场景:5G NSA/SA网络、物联网设备安全接入
5.3.3 其他认证方法
1.EAP-PWD(Password)
基于共享密码的零知识证明(如Dragonfly协议),无需证书或SIM卡
-
部署简单:仅需预共享密码,适合小型网络
-
抗字典攻击:密码哈希加盐存储,防止彩虹表破解
安全性较低:依赖密码强度,易受社会工程攻击
标准化不足:实现差异可能导致互通性问题
适用场景:临时网络或资源受限的loT设备
2.EAP-LEAP(Lightweight EAP)
思科专有协议,使用动态WEP密钥和MS-CHAPv1认证
- 兼容旧设备:支持早期无WPA硬件的终端
严重漏洞:MS_CHAPV1易被破解,WEP加密已淘汰
厂商锁定:仅限思科设备使用
适用场景:已淘汰,仅存于历史遗留系统
|-----------|----------|----------|-----------|-----------|---------------|---------------|
| EAP方法 | 认证方式 | 安全等级 | 部署复杂度 | 典型场景 | 核心优势 | 主要缺陷 |
| EAP-TLS | 双向证书 | 5星 | 高 | 金融/政府网络 | 抗中间人攻击,最高安全性 | 需PKI支持,管理成本高 |
| PEAP | 服务器证书+密码 | 4星 | 中 | 企业WiFi | 平衡安全与易用性 | 依赖内部方法,单向认证风险 |
| EAP-TTLS | 服务器证书+多种 | 4星 | 高 | 混和认证系统 | 灵活支持多种后端认证 | 配置复杂,历史漏洞 |
| EAP-SIM | GSM SIM卡 | 2星 | 低 | 公共WiFi漫游 | 无缝移动网络集成 | 加密强度低,仅限GSM |
| EAP-AKA | USIM卡 | 4星 | 中 | 3G/4G融合网络 | 双向认证,抗重放攻击 | 硬件依赖,计算开销大 |
| EAP-AKA' | 增强USIM卡 | 5星 | 高 | 5G/物联网 | 支持前向保密,跨网络互操作 | 需升级硬件,成本高 |
| EAP-PWD | 共享密码 | 2星 | 低 | 小型网络/IoT | 无需证书或SIM卡 | 密码强度依赖,易受社工攻击 |
选型建议:
-
高安全场景:优先选择EAP-TLS或EAP-AKA',确保端到端加密与证书双向验证
-
企业级WiFi:PEAP+MSCHAPv2或EAP-TTLS,平衡安全性与管理便捷性
-
移动运营商:EAP-AKA或EAP-AKA',实现蜂窝与WiFi的统一认证
-
低成本部署:EAP-PWD适用于资源受限环境,但需强制密码策略