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

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

看代码

    private fun getCurrentWifi() {mScanResult.clear()//获取当前扫描出的热点val scanResult = wifiManager.scanResultsmScanResult.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则用于消息完整性运算。

TKIP

TemporalKeyIntegrityProtocol,临时秘钥完整性协议,是一种用于IEEE 802.11无线网络标准中的替代性安全协议。TKIP协议由美国电气电子工程师协会(IEEE)802.11i任务组和Wi-Fi联盟设计用于在不需要升级硬件的基础上替代有线等效加密(WEP)协议。

ESS

这里需要一起先普及几个概念

  • IBSS 独立基本服务集
  • BSS 基本服务集
  • ESS 扩展服务集
  • BSSID AP MAC地址
  • ESSID 无线网络名称

服务集(Service Set)是无线局域网中的一个术语,用于描述802.11无线网络的构成单位(一组互相有联系的无线设备),使用服务集标识符(SSID)作为识别,可以分为独立基本服务集(IBSS),基本服务集(BSS)和扩展服务集(ESS)三类。其中IBSS属于对等拓扑模式(又称Ad-Hoc模式、无线随意网络),而BSS和ESS属于基础架构模式。这些拓扑是原始的802.11规范中定义的,其他如网桥、中继器等则是属于特定厂商的扩展或者WDS的拓扑模式。

ESS包括多个BSS。而手机等设备在同一个ESS中的不同BSS之间的切换过程称之为漫游。

WPS

Wi-Fi Protected Setup,WIFI保护设置,是由Wifi联盟组织实施的认证项目,其主要目的是用来简化无线网络的安全加密配置。

常见的有华为路由器的hilink设备,当用户在手机端选择WPS连接后,靠近路由器,路由器会出现闪烁,此时点击路由器上的按键,就可以直接完成wifi的连接。

Android WIFI认证方式相关推荐

  1. Android WIFI认证的流程

    一.背景介绍   当用户打开wifi,扫描完成之后,当用户点击AP列表中一项并输入正确的密码后,就可以开始AP的连接过程了.点击连接到最终连接成功,这个过程中具体流程是如何实现的,这篇文章,将介绍一下 ...

  2. Android Wifi认证(Portal)代码解析DNS并使用Socket发送Http请求完成认证

    最近在一能开启多网络上网的Android系统中遇到连接认证WIFI问题,通过http://connectivitycheck.gstatic.com/generate_204不能完成认证. 可能原因为 ...

  3. 安卓或者IOS不自动跳出WiFi登录页怎么办的方法(wifi认证页面打不开)

    换新iPhone连接不上学校的无线WiFi了应该怎么办.我就和大家分享了这样一篇文章. 首先是遇到的问题,连接学校的WiFi之后没有弹出认证/登录页面. 目前能够遇到的大部分WiFi网络连接认证方式大 ...

  4. android http协议添加Authorization认证方式

      今天,简单讲讲android里如何使用http请求时在头部添加Authorization认证方式. 其实也很简单,之前需要做一个功能,在android去使用http访问设备,但是每次的访问 ...

  5. 微信wifi认证的实现方式和功能——时讯wifi认证

    微信wifi认证用户操作流程 简单的讲(无技术实现),通过微信连wifi的流程(手机端): 用户连上无密码的热点,请求一个链接 路由器返回个用户一个portal页面. 用户在portal页点击微信连W ...

  6. Android中wifi认证的实现

    WiFi需要登录的情况(WiFi重定向) 检测wifi是否需要portal验证 公共场所wifi验证 关于wifi portal认证–为浏览器添加wifi认证功能 Android中wifi的扫描机制 ...

  7. android 获取wifi的加密类型,Android WIFI开发:获取wifi列表,连接指定wifi,获取wifi加密方式,监听wifi网络变化等...

    下面是 Android 开发中 WiFi 的常用配置,如:获取当前 WiFi ,扫描 WiFi 获取列表,连接指定 WiFi ,监听网络变化等等. 下面是效果图: GitHub 下载地址:https: ...

  8. Android Wifi --自动连接指定SSID(各种加密方式均可)

    Android Wifi API参考网站这里写链接内容 1.开始先加入wifi权限 <uses-permission android:name="android.permission. ...

  9. Android Wi-Fi EAP-TLS/EAP-PEAP/EAP-TTLS(扩展认证协议)简介

    1 扩展认证协议 英语: Extensible Authentication Protocol ,縮寫為 EAP,是一个在[无线网络][0]或點對點連線中普遍使用的认证框架.它被定义在RFC 3748 ...

最新文章

  1. SkFlattenable /Registrar/
  2. 无损压缩算法历史——熵编码是最早出现的,后来才有Lzx这些压缩算法
  3. 使用Hexo搭建博客,备份至GitHub过程(基于网上资料的实践操作)
  4. Chromium下载各类版本(pyppeteer爬虫)
  5. Error:Comments are not permitted in JSON
  6. 一个迷失了本性的聊天软件,初衷不在,何其悲伤
  7. baseurl php,html base URL是什么?html base详细解析汇总
  8. 山石网科-Hillstone-SC-***(SSL-***)之配置终结篇
  9. 网上交易安全-使用JAVA调用U盾进行客户认证
  10. HHL论文第二弹(基本过程)
  11. 后台拼接字符串加双引号
  12. win10计算机导航栏怎么删除,如何自定义导航栏?win10资源管理器导航栏删除多余选项的操作方法...
  13. 如何选择羽毛球?(ZT)
  14. 十二时辰手把手教你入门Spring
  15. 传记-《成为米歇尔·奥巴马》书中的精髓:米歇尔·奥巴马是怎样克服种族歧视、冲破阶层天花板,成为美国首位非洲裔第一夫人的。
  16. 关于R语言和社交网络分析的几篇文章
  17. 用计算机来模拟二维生命,用并行计算机模拟二维氢团簇的光电离
  18. 金山毒霸让我失望 (转)
  19. DDNS 学习 (一)
  20. 《人月神话》-外科手术队伍

热门文章

  1. 腾讯2018秋招笔试真题——安排机器
  2. MyCat:第八章:MyCAT In Action中文版
  3. 多种消息提醒系统的设计模式、实现方案(附功能截图+表结构)
  4. java中的消息提示框
  5. Fiddler模拟网络波动_xing2516_新浪博客
  6. Javascript Yielding Processes 定时器数组分块技术
  7. java求矩阵的逆矩阵_Java逆矩阵计算
  8. PDF转换器 将各种文件格式与PDF来回转换
  9. 启动定时器t0的工作指令是_80c51单片机定时器t0工作于方式1定时时间1ms当晶振为6mhz时求计数初值为多少...
  10. Java B组蓝桥杯第十届国赛:大胖子走迷宫