无线技术概念
一、全向天线波形图
甜甜圈波形(中间密闭的游泳圈)
二、天线选择的误区
增益越高越好(并不是):
1、高功率
2、对周围环境的信号干扰
三、增益过高的全向天线会变成定向天线
四、定向天线
1、双四边形
2、定向发送信号
3、功率相同时,比全向天线传输距离更远
定向天线---八木天线 底下的金属挡板可以再次反射信号使得尽量集中在一个方向,又被称为“引向反射天线”
定向天线-------平面天线
定向天线-------扇形天线
常用于移动电话网络
三到四个扇形天线即可实现360覆盖
下面是90度扇形天线
120度扇形天线
定向天线-------网状天线
射束带宽更加集中,功率更大
第二大部分
liunx无线协议栈及其相关配置
802.11协议栈
一、leee80211
原先的协议栈为leee80211
iwconfig
iwlist
二、mac80211
现在的liunx和类unix的系统都使用mac80211
iw
以下是linux协议栈流程图:一般的无线调用过程是在用户空间执行的某些命令来调用内核的空间从而实现对无限设备控制
无线协议栈的命令操作
1、查看无线网卡
ifconfig
iwconfig
iw list
iwlist(和上面的不一样)
2、信道频率
iwlist wlan2 frequency(查询网卡支持的信道和信道的中间段频率)
iw list
无线网卡的AP扫描(需要有AP功能的无线网卡)
查看周围的无线AP 命令:iw dev wlan0 scan
802.11协议的RADIOTAP头
802.11帧发射和接收的事实标准,802.11依赖RADIOTAP完成通信过程
liunx系统在驱动和API中内建支持radiotap
802.11帧发射之前,网卡驱动在802.11头前面添加Radiotap头,反之当网卡接收到无限帧时,驱动通知MAC地址层,此帧头包含Radiotap头
Radiotap为802.11帧传递额外信息,厂家可自定义,因此头长度不固定
不破坏原始头结构,增加传递的信息
802.11协议
DU (DATA UNIT )即数据单元,传输信息的最小的数据集合
传递过程中逐层封装
SDU(Service Data Uint) /PDU (Protocol Data Uint)
MSDU->>MIC>>分帧>>添加IV>>加密>>添加MAC头部>>MPDU
MPDU/PSDU+物理头=PPDF>>RF发射
802.11的MAC头部
细分的说 研究最细致的帧控
帧控分为:
Protocol Version(bit):802.11协议版本,始终为0、1、2、3
Type(2bit):规定帧的具体用途(3种帧类型)
控制帧(1)
数据帧(2)
管理帧(0)
SubType(4bit)
每个类型对应多个子类型,协议规定不同类型/子类型的帧完成不同功能的操作
类型和子类型可以上网查找对应的表格
To Ds /From DS(1/1bits)
标识帧的传输方向,传向DS或者来自DS(目标系统);这两个字段的值决定着MAC头中的4个Address字段的不同定义,具体如下图
每个字段值的对应的4个address意义
0x00:出现IBSS环境中(可能是Management帧或者是Control帧类型的);或者是STSL(staion to staion link 或者称两个地址的直接连接 没有AP ),这种情况下通信不经过AP
0x01:表示Data帧从AP向STA传递
0x02:表示Data帧从STA向AP传递
0x03:表示两个AP间通信,这是典型的WDS(wireless Distribution System)环境下的AP通信,或者表示MESH(网状)环境下MP的通信;只有此时才会使用到Addresse4 字段
后续帧:
MAC头的MORE frag字段(字段):表示是否还有后续帧
值为1时表示还有后续分段,可能是Data或Mangement帧类型。只有单播接受地址的帧会被分段
Retry(1bit):重传
值为1表示重传帧,可能是Data或Management帧类型,接受端进程使用此值防止帧重复
Power Mgmt(1bit):活动模式(0)/省电模式(1)
STA处于省电模式时,向关联的AP发送该值为1的帧(AP从不使用此字段),省电模式下STA不接受数据,发送给它的DATA帧由AP暂时缓存
More Data(1bit)
当AP缓存了至少一个MSDU时,会向省电模式的STA发送该值为1的帧,表示有数据要传输给STA,接收到此帧的STA唤醒自己并且向AP发送PS-Poll帧取回由AP为其缓存的数据,也被用于AP有更多的广播/多播帧需要发送的情况
Protected Frame(1bit)
可能是Data或Management帧类型,表示MSDU是否被加密;也被用于PSK身份验证Frame#3帧数据载荷为空时,该字段值为0
Order(1bit)
在非Qos帧的情况下,值为1表示数据必须按严格顺序处理,通常为0
第一种类型 控制帧 control frame
控制帧是一些通知设备开始、停止传输或者链接失败等情况的短消息
以上是控制帧的子类型
ACK子类型
接收端正确接收数据之后向发送端返回ACK确认
每个单播帧需要ACK立刻确认 组播和广播帧不需要ACK确认
ACK尽快响应 直接由硬件完成,而非驱动层
T/S:1/13
PS-POLL帧
RF系统的放大器
1、主要耗电的组件
2、发射前放大信号,接收并放大还原信号
省电模式
关闭信号发射器节省电源耗电(几乎完全关闭)
PS-POLL
AID -------------Association ID
STA省电模式唤醒
数据发送至AP(AP缓存数据包)
通过Becan发送 TIM(traffic indication map) 其中包含AID
STA对比AID后唤醒网卡
STA发送PS-POLL帧,请求从AP缓存中取回数据
1、每个帧都需要ACK确认
2、ACK确认后AP从缓存中删除数据帧
3、传输过程中STA保持唤醒状态
4、传输结束后STA恢复省电状态
AP接收PS-POLL帧
1、立刻响应
2、延迟响应 (简单响应帧)
AID:关联ID
BSSID:STA正关联的AP地址
TA:发送此帧的STA地址
RTS/CTS数据帧
RTS/CTS时CSMA/CA方法的一种补充手段
降低冲突产生的可能性
正式通信之前通过请求应答机制,确信通信介质的可用性
并且锁定传输介质和预约通信时间
只有在传输长帧时使用,传输短帧不会使用 1、驱动接口提供阈值的自定义2、大于阈值的帧被称为长帧,反之称为短帧
传输过程如下(正常):一个原子周期
RTS/CTS的好处:避免在CMSA/CA方式下的隐藏节点冲突
有线网络介质访问方式:CMSA/CD
无线网络介质访问方式:CMSA/CA
RTS的结构:
CTS数据包:
MANAGEMENT FRAME
用于协商和控制STA和AP之间的关系
第一种帧
BECACON FRAMES
AP 发送的广播帧,通告无线网路的存在(BSSID ESSID)
发包频率:102.4ms(可变) 时间单位为1024microsecond
SSID网络名:隐藏AP 不发SSID广播
BEACON FRAMES
IBSSI STATUS
0:infratucture
1:ad-hoc
Privicy :如果标记为1则为wep/wpa加密 wpa加密的话位置也为1但是后续还有wpa的详细信息说明 wep则没有
ESSID:名称 长度
速率:802.11g(1-54MBIT) 可以通过抓下的包是从速率来判断是什么模式(802.11b 802.11g等)
信道:11
PROBE(探针) REQUEST FRAMES
用于STA扫描现有的AP
1、发现连接过的AP :直接向外界发送broadcast广播来查询
2、发现未连接过的AP : 当发现连接过的AP时,当SSID 和 速率相同时就可以直接连接上
包头不做研究 我们只做包体研究
SSID 和Supported Rates 和Extended Supported Rates 这三者的大小随着厂家的设定而不一样
下面看下一种
AUTHENTICATION FRAMES(身份认证的帧)
在STA发送probe 帧后如果要连接需要经过身份认证 这就需要身份认证的帧来完成(共享密钥或者密码等方式)
同样 包头不做研究 看一下包体
AUTHERNTICATION ALGORITHM身份认证类型
如果是:
0: 开放系统身份认证
1:共享密钥身份验证
注:身份认证有多个帧的交换过程组成
AUTHENTICATION SEQ
每次身份认证都过程seq唯一
seq范围:1-65535
CHALLENGE TEXT
只有共享密钥的方式才能有此字段
STATUS CODE:成功 / 失败
看下一种帧
ASSOCIATION /REASSOCIATION FRAMES 关联和重关联
身份认证成功后,STA执行相关操作,加入无线网
分为:
Association Request
Reassociation Request
Association Response
1、Association Request:
2、Reassociation Request
相比于上面的association 来说只多了一个source address,其余的相同
DISASSOCIATION/DEAUTHENTICATION
由AP发出(2个字节)
我们也是主要关心body部分 reason code (每一种断开都会有原因)
ATIM FRAMES
只在ad-hoc网络下使用
其作用类似于在AP下的通知帧 STA使用此帧通知接收者其有缓存的数据要发送
第三大类--------数据帧DATA FRAME
DATA FRAMES分为
1、传输用户数据 :DATA Frame 存在数据部分
2、空数据帧(只有包头):
1、NULL DATA FRAME
只包含MAC头和FCS
STA用于声明自己将要进入省电模式
理论联系实际:一个完整的链接
连接到无线网络
1、PROBE
STA 向所有信道发送PROBE帧,发现AP
AP应道RESPONSE
2、Authentication
STA向AP发送验证请求
发生认证过程(步骤多个而且可变)
AP响应STA的认证结果
Association
STA发送关联请求
AP响应关联请求
关联成功
WEP探测过程
在过程中使用WEP加密传输:
BEACON标识使用WEP加密
STA 发送普通的Probe帧
AP响应Probe response帧来声明其采用的WEP加密
WPA 加密过程
两个AP的BEACON包含的内容不同,但都声明采用了WPA加密:不同厂商对802.11标准的实现方式不同
包头包含WPA1字段信息
WAP1默认情况下使用 tkip的加密组件
WPA2默认情况下使用 ccmp的加密组件
WEP OPEN 认证过程
WEP OPEN 认证与open认证通信过程基本相同
正确认证后通信数据输入被WEP加密
如果认证时客户端输入错误密码
1、认证依然可以通过
2、AP将丢弃该STA的数据包:起始向量被错误的密钥解密后完整性被破坏 造成数据传输将失败
认证响应成功,身份验证成功
WEP PSK认证过程
1、STA发认证请求
2、AP随机返回随机CHALLENGE消息(128字节的随机数)
3、STA使用PSK加密Cha并发回给AP
4、AP使用PSK解密解密密文,获得Cha并且与原始的Cha对比,相同则验证成功,不同则验证失败
注:大部分无线驱动首先尝试open模式,如果不行的话尝试PSK模式
无论用什么加密架构,关联过程完全相同
1、STA向AP发送关联请求
2、AP向STA发送关联成功还是失败的结果
隐藏AP
1、STA关联包中必须包含目标AP
2、嗅探到此关联包,说明有AP存在
加密的具体过程
无线安全的根源
1、802.11基于无线电波发射信息
2、嗅探侦听是主要问题
3、加密机制是必须手段
Wired Equivalent Privacy(WEP)
802.11标准的一部分
发布后不久被发现存在漏洞
WI-FI Protected Access(WPA)取代WEP
WPA2(802.11i标准)
OPEN 无加密网络
1、无任何加密机制
2、所有的数据都可以被嗅探
3、STA和AP只协商拼参数即可连入网络
具体研究WEP加密
使用Rivest Cipher 4(RC4)算法加密流量内容,实现机密性
CRC32算法检测数据完整性
标准采用使用24位initialization vector(IV)(起始向量)
受美国加密技术的出口限制法律的要求
1、高于64bit的加密算法禁止出口
2、所以除了24bit IV之外真实的key只有40bit的版本被允许出口
3、出口限制法律撤销后实现了128bit 的WEP版本(使用相同的24bit IV)
RC4算法
RSA实验室研发的研发的对称加密流算法
1、实现简单
2、速度快
加密:对明文流和密钥流进行XOR计算(XOR:异或计算)
解密:对密文流和密钥流进行XOR计算
RC4算法key由两个过程生成:
1、合并IV和PSK,利用Key Scheduling Algorithm (KSA)算法生成初始状态表
2、Pseudo-Random Generation Algorithm(PRGA)算法生成最终密钥流
RC4:保证密钥流和明文流长度一致 进行异或运算(先“或”运算再“异(否)”运算)
RC4算法加密流程:
ICV:CRC32算法形成的加密值,用于保证完整性(只是这个包的CRC32加密)
key ID:密钥流的ID号 在发包过程中 加密信息流会被分段 这时密钥流也会被分段并被标记key ID,等到达解密端后解密端也会根据相同的算法计算出密钥流然后根据KEY ID来进行提取这一大段密钥流中的KEY ID 部分(据我猜测 KEY ID 应该被标记有多少位这样才能让解密端进行部分提取然后对这部分加密流进行部分解密,往后依次,最后拼接起来)
解密部分:
WPA安全系统
1、WI-FI Protected Access(WPA)
2、802.11i组为了提高无线安全,开发两个新的链路层加密协议:
Temporal Key Integrity Protocol(TKIP加密套件):WPA1(较之WEP可以动态改变密钥)
Counter Mode with CBC-MAC(CCMP加密套件):WPA2
WPA加密两种安全类型
WPA个人:使用预设共享密钥实现身份认证
WPA企业:使用802.1x和Radius服务器实现AAA(A:认证 A:授权 A:记账)
Radius:集中身份验证系统 可以通过这个集中服务器来实现对不同步服务器的身份认证
在企业中:从客户端到AP采用EAP协议(认证)
从AP到Radius采用Radius协议
WPA1加密
802.11i第三版草案
与WPA相比
1、都采用逐包进行密钥加密
2、128位的key和48位的初向量
3、RC4加密算法
4、帧计数器避免重放攻击
5、TKIP使用Mickhael算法进行完整性校验(MIC)而不是WEP采用的CRC32校验
6、兼容早期版本
WPA2加密
1、依据802.11i完全重新设计实现
2、也被称为Robust Security Network(RSN)
CCMP代替了TKIP
AES加密算法取代了RC4
不兼容早期版本硬件
WPA企业连接过程
1、协商安全协议
2、身份认证
3、密钥分发和验证
4、数据加密完整性
协商安全协议
PSK/802.1X
单播和组播/广播流量加密套件
TKIP/CCMP
STA通过probe获取无线网络信息
速率
加密
通道
名称
身份认证基于Extensible Authentication protocol(EAP)实现
1、EAP-TLS,需要客户端和服务器证书
2、EAP-TTLS
3、PEAP混合身份验证,只需要服务器证书
客户端选择身份认证方式
AP发送身份验证信息给Radius Server
Radius Server返回“Radius Accept”表示认证成功:其中包含Master key (MK)
AP通过EAP消息通知STA认证成功
详细了解密钥交换过程:
无线网络设计用于一组无线设备通信
关联到同一AP的设备共享无线信道
单播、广播、组播
安全特性要求不同
单播通信需要单独的密钥进行加密通信双方流量
pairwise key :对偶密钥(PTK)
组播通信需要任何信任区域内所有的成员共享的同一密钥
group key:组密钥(GTK)
PMK
安全上下文的顶级密钥
MK进行TLS-RPF加密得出PMK>>>PTK
基于服务密钥
1、由上层身份验证方法服务器生成
2、从服务器通过radius传给AP
3、从AP通过EAP消息传给所有STA
基于PSK的共享密钥
Essid+PSK+迭代次数4096-------------HASH计算得出(256位即32字节)
STA和AP分别计算得出PMK,并不在网络中传递交换
PTK的生成过程
1、HMAC-SHA1散列算法
2、RFC-X散列算法
可能使用上述的一种hash算法
hash加密生成四个128位的不同功能的key >>四个key组成位PTK(512位)
Data encr :加密数据的key
Data MIC:检验完整性的key
EAPOL Encr:EAPOL的加密key
EAPOL MIC:EAPOL的完整性校验key
注:PTK并不在两者之间传播,两边都生成PTK
密钥交换
四步握手过程生成PTK
AP发送Anonce给STA(STA的第一个随机数)
STA生成snoce计算出PTK(STA的第二个随机数)
Snonce加PTK的MIC(完整性校验值)发给AP
AP拿到Snonce计算出PTK
AP计算MIC与接收的MIC比对
MIC一致说明确定STA知道PMK
AP发GTK给STA
STA回复ACK并使用密钥加密
数据加密和传输
三种算法
Temporal Key integrity Protocol (TKIP)4
Counter Mode with CBC-MAC (CCMP) 5
Wireless Robust Authentication Protocol (WRAP)6