• 移动安全规范 — 1 -WIFI连接安全规范


    1. WIFI认证标准

    WEP:  Wired Equivalent Privacy(有线等效加密)

    作为 1997 年批准的原始 802.11 标准的一部分引入,它可能是最常用的 WiFi 安全协议。它的 10 位或 26 位十六进制数字(40 位或 104 位)的密钥非常容易识别。2004 年,两者WEP-40和WEP-104都被宣布弃用。有128-bit(最常见的)和256-bitWEP 变体,但随着计算能力的不断提高,攻击者能够利用许多安全漏洞。总而言之,这个协议已不能满足安全的需要

    WPA:  WiFi Protected Access   (Wi-Fi访问保护),
    是一种保护无线网络访问安全的技术标准,WPA是为了解决EAP的几个严重的弱点而产生的,
    通过128位密钥加上48位初向量和可以在使用中动态改变密钥的“临时密钥完整性协议”(TKIP),
    使用RC4加密、使用Michael消息验证码,避免针对EAP的密钥截取攻击和Replay Attack。

    WPA2:WPA的升级版
    采用CCMP计数器模式密码块链消息完整码协议,使用CBC-MAC替代Michael消息验证码,
    使用AES取代RC4加密算法。在身份认证和保证数据完整性上更安全。

    WPA3:WPA2的升级版

    2018 年 1 月,Wi-Fi 联盟宣布 WPA3 替代 WPA2。新标准128-bit在 WPA3-个人模式(WPA-PSK预共享密钥)或192-bitWPA3-企业(RADIUS 身份验证服务器)中使用加密。WPA3 将更难被攻击,因为它的现代密钥建立协议称为“同时验证相等”(SAE)或蜻蜓密钥交换。SAE 提高了初始密钥交换的安全性,并针对离线字典攻击提供了更好的保护

    2. WIFI加密方案

    1. /** Security type for an open network. */
    2. /*不加密直连*/
    3. public static final int SECURITY_TYPE_OPEN = 0;
    4. /** Security type for a WEP network. */
    5. /*比较老加密方式,已弃用*/
    6. public static final int SECURITY_TYPE_WEP = 1;
    7. /** Security type for a PSK network. */
    8. /*
    9. * 1.WPA预共享密钥(pre-shared key),需要指定 「preShareKey」,
    10. * 连接到网络的用户共享同一个密钥,多数运用到家庭和个人无线网络
    11. * 2. 包含WPA-PSK和WP2-PSK
    12. */
    13. public static final int SECURITY_TYPE_PSK = 2;
    14. /** Security type for an EAP network. */
    15. /*
    16. * WPA使用EAP 身份认证,通常与外部认证服务器一起使用
    17. * EAP 的类型,是一种企业验证的安全类型,EAP 全称叫 802.1X/EAP
    18. * 最常见EAP 验证类型包括 EAP-MD-5、EAP-TLS、EAP-LEAP、EAP-TTLS、EAP-Fast、EAP-PEAP
    19. */
    20. public static final int SECURITY_TYPE_EAP = 3;
    21. /** Security type for an SAE network. */
    22. /*
    23. * 1.SAE最早是802.11s中为mesh网络提出的基于password的认证和key生成协议[1],
    24. * 在WPA2-PSK中,PMK就是PSK,直接来源于密钥;
    25. * 2.而SAE则保证任何STA pair(AP-STA,nonAP-STA)在不同的session都有不同的PMK,
    26. * 使用SAE认证的个人无线网络通常称为WPA3-PSK/WPA3-Personal
    27. * 3. 详细介绍 https://blog.csdn.net/qq_23087099/article/details/113921261
    28. */
    29. public static final int SECURITY_TYPE_SAE = 4;
    30. /** Security type for an EAP Suite B network. */
    31. /*EAP网络的另一种加密形式*/
    32. public static final int SECURITY_TYPE_EAP_SUITE_B = 5;
    33. /** Security type for an OWE network. */
    34. /*未知,后续补充*/
    35. public static final int SECURITY_TYPE_OWE = 6;
    36. /** Security type for a WAPI PSK network. */
    37. /*我国自主研发并大力推行的无线网络WLAN安全标准*/
    38. public static final int SECURITY_TYPE_WAPI_PSK = 7;
    39. /** Security type for a WAPI Certificate network. */
    40. /*我国自主研发并大力推行的无线网络WLAN安全标准*/
    41. public static final int SECURITY_TYPE_WAPI_CERT = 8;

    3. 代码配置介绍

    以Android 系统为例子。

    • 配置wifi 加密类型

    可以使用 Settings/src/com/android/settings/wifi/WifiConfigController.java 的 setSecurityParams 进行设置。

    • 获取wifi加密类型

    可以使用frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiConfigManager.java的allowedKeyManagement 获取加密类型,你可以自己封装getSecurity 和getSecurityString方法使用。

    • wifi连接

    config对象里面就有我们应用输入的信息比如:wifi名称,wifi密码,加密形式,是否有静态ip,是否有代理设置

    1. protected void connect(WifiConfiguration config) {
    2. WifiManager wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
    3. wifiManager.connect(config, connectListener); //所有的数据都在config对象里面;connectListener 没啥作用,一般传null参数,不管密码是否正确都是回调success。
    4. }

    4. WIFI的安全认证 

    以PCI 安全认证为例子,讲述WIFI连接安全认证的一些明确定义的规范。

    禁止none和wep的连接方式,无论wifi的个人热点,手自动连接必须支持WPA2或WPA3 安全。

  • 相关阅读:
    【应用笔记】Sub-1G系列产品CW32W031单片机CAD应用参考
    Goby 漏洞发布|Honeywell PM43 loadfile.lp 文件命令执行漏洞(CVE-2023-3710)
    JS数组中every, some, filter, map方法
    whiteboard - 笔记
    EelasticSearch使用!!!
    《性能之巅》学习笔记
    高频科技亮相SEMl-e2024第六届深圳国际半导体展,以超纯工艺推动行业发展
    【深度学习实验】前馈神经网络(五):自定义线性模型:前向传播、反向传播算法(封装参数)
    [附源码]java毕业设计网上宠物商店
    关于linux 双网卡能上外网却ping 不通局域网的问题
  • 原文地址:https://blog.csdn.net/qincheng168/article/details/126366213