0. 准备知识

0.1 加密,认证与证书[1]

在网络中,A给B发消息,如果信息明文传输,那么很容易被窃取、被篡改;

使用了对称加密算法,则A和B之间可以通过密文传输,那么没有密钥将无法获取明文;

但是有个问题,密钥如何传输?传输密钥的过程仍然可能让第三方C获取,那么加密的信息就相当于明文传输了(C有密钥,可以破解)。

于是有了非对称加密,即公钥加密,私钥解密。A把自己的公钥公开,但是只有A自己的私钥才能解密,只要私钥不泄露,就只有自己能够解密;同样,B也有自己的私钥和公钥。

但是又有个问题,所有获取到A公钥的人都可以发信息给A,C可以冒充B给A发消息。如何证明信息是B发送的呢?这里涉及到签名,即B用自己的私钥加密一段信息发送给A,那么A可以用B的公钥解密,证明信息来源是B。

然而,如果B在给A发送公钥的时候就被C截取篡改并把自己的公钥冒充成B的发送给A,那么A就会认为C给自己发的公钥才是B的。所以现在需要证明B的公钥来自B,引入可信任第三方D。D负责给B的公钥做个证书,这个证书根据公钥和B的信息,用D的私钥加密得到个签名,再附上B的公钥和B的一些信息。D把证书发给A,A用D的公钥验证证书来源是D,同时这个证书中的公钥确实是来源于B。由于D的公钥也是通过证书发给A的,所以A需要安装B的证书和D的证书。

小结:为了保障A和B之间的安全通信,1. A和B需要向D申请一个证书,这个证书包含自己的公钥信息,并用D的私钥签名。2. A给B发A的证书,B给A发B的证书,D给A和B发D的证书(包含D的公钥)。这样A一来,和B可以保证自己的公钥来自自己,同时用对方的公钥加密信息,用自己的私钥解密信息。

1. 什么是WAPI

WAPI(Wlan Authentication and Privacy Infrastructure)是我国一个关于无线局域网的国家标准。

1.1 802.11、WAPI和Wi-Fi的关系

802.11和WAPI是标准,Wi-Fi联盟则是根据802.11协议对产品进行认证。我们常说的Wi-Fi网络其实就遵循802.11协议的无线局域网络。而WAPI网络自然就是遵循WAPI协议的无线局域网络了。

2. WAPI加密流程

2.1 一些定义

ASU:Authenticator Service Unit,认证服务单元,独立于AP和STA而存在,类似对应于802.11的AAA?,用于互相认证。

ASE:Authenticator Service Entity,可以认为是在ASU中干活的。

AE:Authenticator Entity,认证实体,可以认为就是AP,认证操作必须通过AE来完成

ASUE:Authenticator SUpplicant Entity,可以认为就是STA/Client

以上,大致捋一下,带E的都是实际干活的人,不带E的可以理解为是一个办公室。因此,在AP中干活的是AE,在STA中干活的是ASUE,在ASU中干活的是ASE。其中,ASUE用于请求认证,AE用于认证,ASE帮助AP中的AE和STA中的ASUE互相认证。

受控端口:认证关联后获取的访问局域网的路口

非受控端口:在认证关联之前,留的一个小门用于传输认证关联数据。

WAI:WLAN authentication infrastructure,认证/鉴别/auth的基本操作

WPI:WLAN privacy infrastructure,加密、数据保护的基本操作

2.2 接入步骤

这里将接入WAPI网络过程分为关联过程、证书鉴别以及密钥派生三个步骤。

如图1,WAPI的关联过程和802.11没啥区别(兼容),首先互相发现,然后auth,再是assoc。在关联过程期间,受控端口关闭,意思就是不能上网。

Fig.1 WAPI关联步骤[2]

在关联过程中,双方交换WAI鉴别和密钥管理的方式。WAPI定义了两种方式,分别为基于PSK、基于证书的方式。其区别在于BK(base key,可以理解为802.11中的PMK)是如何产生的。基于PSK的方式,BK由PSK导出;基于证书的方式,BK由证书鉴别过程导出。在BK导出后,通过密钥协商得到单播、组播密钥(802.11的RSNA定义的4-way handshake,这里是3+2-way handshake)。

1. 基于PSK的密钥派生方式

如图2, 基于PSK的方式中,BK由PSK直接得到,之后通过三次握手交换所需的信息,导出会话的单播密钥。随后导出组播密钥,这之后受控端口打开,进行DHCP获取IP地址后就可以上网了。

FIg.2 单播密钥协商[2]

Fig.3 组播密钥协商[2]

2. 基于证书的密钥派生方式

基于证书的方式和基于PSK的方式区别在于BK的导出。基于证书的方式在单播密钥协商过程之前需要进行证书鉴别(如图4),证书鉴别过程除了对STA和AP的认证之外,还互相交换所需的信息用于派生BK。STA中安装ASUE证书和ASU证书,AP中安装AE证书和ASU证书。ASU即可信第三方。STA和AP都经过ASU认证才可以互相连接,这也是WAPI的一个优点——互相认证。WAPI中的证书只是用于身份认证,实际加密中并没有使用到证书中的公钥。

Fig. 4 证书鉴别过程[2]

2.3 加密

WAPI中数据加密采用的算法是SMS4算法,这里不对算法进行叙述,简单理解可以认为也是类似AES的块加密算法,可以参考文献[3]了解。

3. 小结

对802.11协议有个大概了解之后,其实对于WAPI还是比较容易理解的,大同小异。主要区别有:1、 临时会话密钥派生过程,802.11使用了4-way handshake,而WAPI是(3+2)-way handshake。2、WAPI通过证书鉴别实现了互相身份的验证(都持有可信第三方签名的证书);而802.11中,SAE过程在保证不泄露密钥的前提下,证明了互相都拥有密钥。3、加密算法,RSNA采用AES算法,而WAPI是SMS4算法。两者都是对称加密算法。

4. 参考资料

[1]https://segmentfault.com/a/1190000024523772

[2]宽带无线IP. 标准工作组[J]. WAPI 实施指南.

[3]https://www.cnblogs.com/ouyida3/p/10053862.html

学一点Wi-Fi:WAPI相关推荐

  1. 大学生学python到底有没有有-为什么我会想建议每个大学生都学一点编程?

    原标题:为什么我会想建议每个大学生都学一点编程? 一个今年上岸.成功录取到中山大学的同学,昨天疯狂轰炸我: 他没想到导师主动联系他,让他参加非常重要的课题研究. "当初抱着试一试的心态学的编 ...

  2. 人人都要学一点深度学习(1)- 为什么我们需要它

    人人都要学一点深度学习(1)- 为什么我们需要它 版权声明 本文由@leftnoteasy发布于 http://leftnoteasy.cnblogs.com, 如需全文转载或有其他问题请联系whee ...

  3. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 原文 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 感谢大家在上一篇 学一 ...

  4. wifi频率和zigbee干扰_浅谈ZigBee和Wi—Fi的共存和干扰

    龙源期刊网 http://www.qikan.com.cn 浅谈 ZigBee 和 Wi - Fi 的共存和干扰 作者:姜伟 朱凯 刘童 来源:<科技视界> 2013 年第 16 期 [摘 ...

  5. 串行异步通信_每天学一点/ 电工:PLC:串行通信

    每天学一点/ 电工案例:西门子PLC STEP7-SMARTPLC:串行通信 1. 并行通信与串行通信 并行通信以字节或字为单位传输数据,已很少使用.串行通信每次只传送二进制数的一位,最少需要两根线就 ...

  6. 比较802.11ac(Wi‑Fi 5)和802.11ax(Wi‑Fi 6)

    MIMO 802.11ac仅在下行模式下,支持多用户MIMO. 802.11ax不仅下行链路:也在上行链路支持MIMO功能,因此多个用户可以同时上传视频. 调制方法 802.11ax具有更高的调制方案 ...

  7. 学一点django基础

    学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...

  8. 【Arcgis每天学一点】从无人机航测的DSM上提取准确的高程点

    最近,想着要分享一些Arcgis软件的使用心得,但却一直无从入手,不知道写点什么.实际上在各大平台上已经有了大量的Arcgis教程,不管对于初学者,还是有点基础想要进阶的,都可以找到很多的学习资源. ...

  9. 学一点SQL注入基础

    文章目录 学一点SQL注入基础 思维导图 注入原理 MySQL三种注释 MySQL三种注入方式 联合查询注入 确定字段数 常规步骤 sqlmap的使用 跨库注入 MySQL注入获取最高权限-文件操作 ...

  10. 学一点Redis基础

    文章目录 学一点Redis基础 **Redis介绍** **安装** **配置文件详解** **数据类型** **字符串类型(string)** **==位图操作bitmap==** **列表数据类型 ...

最新文章

  1. 使用Python+OpenCV预测年龄与性别
  2. Java设计模式(装饰者模式-组合模式-外观模式-享元模式)
  3. 2018年这些UI设计趋势正在流行,跟上必拿高薪!
  4. 警告!你的隐私正在被上亿网友围观偷看!
  5. HP unix 常用管理命令
  6. Java中的ArrayList的初始容量和容量分配
  7. 竞赛推荐:openEuler 高校开发者大赛启动!
  8. [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習
  9. 【DFS笔记】对dfs(index,状态)一类问题的思考
  10. IT人的学习方法论-5 也谈IT的创新
  11. 佳能g2800加墨水后发生打印机错误5b00_备注!淳安县联想LJ4000D黑白激光打印机销售,县联想M7400Pro打印机长租...
  12. 微信小程序生成二维码方法接口集合
  13. NFT抢购合集工具(免费)
  14. linux cat命令什么意思
  15. 12306验证码识别初尝试(1)
  16. 【内存】ECC内存简介
  17. 人工智能驱动的智能制造(人工智能系列)
  18. Linux python + selenium 以 kiosk模式打开Chrome浏览器 并 支持下载文件时询问下载路径
  19. 图像的上采样(upsampling)与下采样(subsampled)
  20. 1617: Special Formation - 规律题

热门文章

  1. Cartopy 中的地图投影
  2. 小象机器学习(邹博老师)学习笔记
  3. “华为杯”第十八届中国研究生数学建模竞赛一等奖经验分享
  4. [RK3288][Android6.0] USB UVC 协议简结
  5. C# 线程安全的单例模式
  6. hitool java_Hitool打开出现failed to create the java virtual machine
  7. 数据结构课设之航空订票系统(Java)下载链接在文末
  8. javaEE学习笔记—————利用代理模式和过滤器增强对象功能完成敏感词汇过滤功能
  9. [全程建模]rose工具如何打开两个mdl文件问题
  10. 协议森林1——小喇叭开始广播:以太网与WiFi