博客
关于我
BLE安全机制从入门到放弃
阅读量:263 次
发布时间:2019-03-01

本文共 1474 字,大约阅读时间需要 4 分钟。

蓝牙低能耗(BLE)安全机制从入门到深入理解

作为一个刚入行的工程师,我对蓝牙低能耗(BLE)安全机制的了解最初是零,但通过深入研究,我逐渐掌握了BLE 4.0和BLE 4.2的核心安全机制。以下是我在学习过程中的思考和总结。

一、信息安全基础

在深入研究BLE安全机制之前,我首先回顾了信息安全的基础知识。信息安全面临的主要威胁包括窃听篡改伪装。为了应对这些威胁,信息安全需要具备机密性一致性认证性

密码技术概述
  • 对称密码:使用相同的密钥进行加密和解密,适用于防止窃听,但需解决密钥配送问题。
  • Diffie-Hellman密钥交换算法:通过数学难题协商共享密钥,解决对称密码的密钥配送问题。
  • 椭圆曲线Diffie-Hellman密钥交换算法(ECDH):利用椭圆曲线加密,提升密钥安全性。
  • 消息认证码(MAC):用于信息一致性和身份认证,防止篡改和伪装。
  • 认证加密(CCM):结合加密和认证技术,提供更强的安全性。
  • 二、BLE安全机制入门

    BLE设备在通信过程中分为主机角色(Master)和从机角色(Slave)。通信过程经历连接配对明文传输密文传输等阶段。

    BLE通信阶段
  • 连接阶段:主机发起连接,设备进入扫描或广播状态。
  • 配对阶段:通过配对码(TK)生成会话密钥(sessionKey)和随机数(IV),用于CCM认证加密。
  • 明文传输阶段:使用CCM加密数据包。
  • 密文传输阶段:使用生成的密钥加密数据包。
  • 绑定阶段:通过长期密钥(LTK)优化后续通信。
  • BLE安全机制的关键点
    • 配对码(TK):用于加密和认证,需妥善管理以防泄露。
    • CCM(计数器与CBC-MAC):结合加密和认证,保障数据完整性和来源认证。
    • 配对阶段:输出临时密钥(STK)和长期密钥(LTK),提升后续通信安全性。

    三、BLE 4.0安全机制详解

    BLE 4.0的安全机制
  • 配对阶段:使用STK生成sessionKey和IV,用于CCM认证加密。
  • 绑定阶段:从机发送LTK给主机,优化后续通信。
  • 动态配对码:通过Passkey模式,确保配对码的安全性。
  • BLE 4.0的安全漏洞
    • 静态配对码容易被破解,需谨慎管理。
    • 配对阶段的STK和LTK易被窃听,需加强保护。

    四、BLE 4.2安全机制的改进

    为了解决BLE 4.0的安全漏洞,BLE 4.2引入了动态配对码和ECDH算法。

    BLE 4.2的改进措施
  • 动态配对码:每次配对生成不同的配对码,增强安全性。
  • ECDH算法:通过椭圆曲线加密,增强密钥的安全性。
  • 直接生成LTK:减少对STK的依赖,提升安全性。
  • BLE 4.2的优势
    • 动态配对码避免了静态配对码的安全问题。
    • ECDH加密确保了配对阶段的安全性。
    • 直接生成LTK减少了窃听风险。

    五、实际应用中的注意事项

  • 密钥管理:妥善管理配对码和长期密钥,防止泄露。
  • 认证强度:确保认证密钥的安全性,避免逆向推算。
  • 协议版本选择:根据实际需求选择适合的协议版本(如BLE 4.2)。
  • 六、总结与展望

    通过对BLE 4.0和BLE 4.2的学习,我认识到信息安全是多层次的,需要结合密码技术和协议规范来保障数据传输的安全。未来,我计划深入研究BLE的核心规范和实际应用案例,以提升我的专业能力。

    参考资料

  • 《图解密码技术》
  • BLE配对过程详解
  • BLE核心规范
  • Hash算法总结
  • 穷举法破解BLE的TK值
  • 本文作者:Jayden Huang

    本文链接:https://jaydenh215.github.io/2019/05/14/BLE安全机制从入门到放弃/

    转载地址:http://bpex.baihongyu.com/

    你可能感兴趣的文章
    UML- 配置图(部署图)
    查看>>
    oracle 切割字符串加引号_使用Clean() 去掉由函数自动生成的字符串中的双引号...
    查看>>
    Oracle 创建 DBLink 的方法
    查看>>
    oracle 创建job
    查看>>
    oracle 创建一个用户,只能访问指定的对象
    查看>>
    oracle 创建双向备份,Materialized View 物化视图实现 Oracle 表双向同步
    查看>>
    oracle 创建字段自增长——两种实现方式汇总
    查看>>
    Oracle 升级10.2.0.5.4 OPatch 报错Patch 12419392 Optional component(s) missing 解决方法
    查看>>
    oracle 去重
    查看>>
    oracle 可传输的表空间:rman
    查看>>
    Oracle 启动监听命令
    查看>>
    Oracle 启动阶段 OPEN
    查看>>
    Oracle 在Drop表时的Cascade Constraints
    查看>>
    Oracle 在Sqlplus 执行sql脚本文件。
    查看>>
    Oracle 如何处理CLOB字段
    查看>>
    oracle 学习
    查看>>
    oracle 定义双重循环例子
    查看>>
    ORACLE 客户端工具连接oracle 12504
    查看>>
    Oracle 客户端连接时报ORA-01019错误总结
    查看>>
    oracle 导出sql数据库表结构,使用sql developer 导出Oracle数据库中的表结构
    查看>>