IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android WIFI认证方式 -> 正文阅读

[移动开发]Android WIFI认证方式

在Android中,我们如果想知道周围的WIFI热点,以及这些认证方式怎么办?

答案是我们可以用WifiManager.getScanResults来获取当前扫描出的热点
用ScanResult.capabilities来获取认证方式等。

看代码

    private fun getCurrentWifi() {
        mScanResult.clear()
        //获取当前扫描出的热点
        val scanResult = wifiManager.scanResults
        mScanResult.addAll(scanResult)

        val stringBuilder = StringBuilder()
        mScanResult.forEach {
            stringBuilder.append(it.SSID)
                .append(" ")
                .append(it.BSSID)
                .append(it.capabilities) //热点的认证方式
                .append("\n")
        }
        binding.tvWifiList.text = stringBuilder.toString()
        logcat(stringBuilder.toString())
        ToastManager.showToast("获取完毕 个数为:" + mScanResult.size)
    }

Google官方对capabilities的描述是

Describes the authentication, key management, and encryption schemes supported by the access point.
描述该热点的认证、秘钥管理和加密方案

如上述代码,我们看下打印的结果

imlog   : THEMERCURY 04:d7:a5:c4:73:70[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ESS]
imlog   : DoDoDo 42:e0:d0:35:27:8b[WPA2-PSK-CCMP][ESS][WPS]
imlog   : DoDoDo 42:e0:d0:35:27:8f[WPA2-PSK-CCMP][ESS][WPS]
imlog   :  92:53:c3:da:45:b4[ESS]
imlog   : Wi-Fi6 8c:53:c3:da:45:b4[WPA2-PSK-CCMP+TKIP][WPA-PSK-CCMP+TKIP][ESS][WPS]
imlog   : CMCC-e2ax 00:cf:c0:b5:8e:e8[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ESS][WPS]
imlog   :  74:60:fa:86:b4:31[WPA2-PSK-CCMP][ESS]
imlog   : ChinaNet-401 68:a0:3e:4a:91:d0[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS][WPS]
imlog   : ChinaNet-3Ger e8:84:c6:c2:f1:40[WPA2-PSK-CCMP+TKIP][WPA-PSK-CCMP+TKIP][ESS][WPS]
imlog   : TP-LINK_AA62 e4:d3:32:e3:aa:62[WPA2-PSK-CCMP][WPA-PSK-CCMP][ESS][WPS]
imlog   : CMCC-yytA d0:59:19:b8:18:fa[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ESS]
imlog   :  04:d7:a5:c4:73:75[ESS]
imlog   : THEMERCURY 04:d7:a5:c4:73:73[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ESS]
imlog   : CMCC-uGUG 80:c7:c5:43:a1:b7[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]
imlog   : TP-LINK_702 9c:21:6a:35:da:48[WPA2-PSK-CCMP][WPA-PSK-CCMP][ESS][WPS]
imlog   : Xiaomi_0 88:c3:97:c8:23:b0[WPA2-PSK+SAE-CCMP][ESS][WPS]
imlog   : ChinaNet-Zf2m ec:f8:eb:4c:54:f9[WPA-PSK-CCMP+TKIP][ESS]
imlog   : WATER b8:08:d7:4e:8f:70[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS][WPS]

通过上面的日志我们可以看到,capabilities的内容是类似于 [WPA2-PSK-CCMP][ESS][WPS] 的字符串,看到这个之后,是不是感觉
在这里插入图片描述

我们这篇文章就来介绍capabilities的各个字段到底是什么

简单讲,capabilities的格式是 [认证标准+秘钥管理+加密方案]

1. WEP(Wired Equivalent Privacy) 有线等效保护

这是一种早期使用的加密认证方式,现在已经弃用。简单先回顾一下它的历史。

它是802.11b标准里定义了一种用于无线局域网(WLAN)的安全性协议,它被有线LAN具有同等级别的安全性(所以翻译是有线等效保护,哈哈)。但是,有线LAN依赖物理上的连接啊,所以天然比WLAN安全。

WEP的认证方式分为两种

  • open system authentication 开放式系统认证:顾名思义,没有认证,随便连接。
  • shared key authentication 共有键认证:认证一共有四个步骤,如下
  1. 客户端向接入端发送认证请求
  2. 接入点返回一个明文
  3. 客户端利用预存的秘钥对明文加密,再次向接入点发出认证请求
  4. 接入点数据包进行解密,比较明文,并决定是否接受请求。

这个认证真是粗糙啊。

好了,知道他被废弃了就行了,下面看取代他的WPA。

2. WPA(Wi-Fi Protected Access)

WPA可以被分为WPA、WPA2、WPA3三个标准。人们在发现WEP的几个严重弱点后,推出了WPA,WPA已经实现了绝大部分IEEE 802.11i标准,它可以用在几乎所有的无线网卡上。随后,Wi-Fi联盟推出了WPA2,WPA2与WPA的主要区别是,WPA2使用了更加安全的加密技术AES, 在2018年1月,Wi-Fi联盟需要发行包含众多安全性改进的WPA3。

WPA也可以分为家用的WPA-PSK(Pre-Shared Key)与企业用的WPA-Enterprise版本。

2.1 WPA-PSK

为了堵塞WEP的漏洞而发展的加密技术,WPA-PSK为每个客户端分配唯一的秘钥而工作,但是仍然需要每个客户端使用密码以便登录系统。

下面简单介绍下WPA-PSK的认证方式

在这里插入图片描述

  1. 无线AP定期发送beacon数据包,使无线终端更新自己的无线网络列表
  2. 无线终端在每个信道1-13广播Probe Request
  3. 每个信道的AP回应,Probe Response,包含ESSID及RSN信息
  4. 无线终端给目标AP发送AUTH包。AUTH认证类型有两种,0为开放式,1为共享式(WPA/WPA2必须是共享式)
  5. AP回应AUTH包
  6. 无线终端给AP发送关联请求包association request
  7. AP给无线终端发送关联响应包association response
  8. EAPOL四次握手进行认证
  9. 完成认证后可以上网

四次握手协议如下
在这里插入图片描述

2.2 WPA-Enterprise

需要有另一台存储无线使用者账户数据的RADIUS(Remote Authentication Dial-In User Service)服务器,当客户端连接入AP时,AP会要求使用者输入账号密码,或是自动向客户端索取数字凭证,然后向RADIUS服务器确认使用者的身份。而用来加密无线封包的加密秘钥Key,也是在认证的过程中自动产生的,并且每一次联机说产生的秘钥(Session Key)都不同,因此非常难破解。

用用户名和密码登录网络后,每个客户端自动得到一个唯一的秘钥,秘钥很长并且每隔一段时间就会被更新,这样WIFI监听者就不能获取足够的数据包来解码秘钥。

一旦应用了WPA-Enterprise,不像WPA-PSK那样,客户端将不会知道密码。这样,外部的人就不能通过他们共享网络资源。WPA-Enterprise还可以节约你大量时间:你无需花费大量的时间去人工更新客户的密码。、

CCMP

Counter CBC-MAC Protocol,计数器模式密码块链消息完整码协议。CCMP主要是两个算法所组合而成的,分别是CTR model及CBC-MAC mode。CTR mode为加密算法,CBC-MAC则用于消息完整性运算。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:08:59  更:2022-02-04 11:10:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:04:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码