博客
关于我
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/

    你可能感兴趣的文章
    org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
    查看>>
    org.tinygroup.serviceprocessor-服务处理器
    查看>>
    org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
    查看>>
    org/hibernate/validator/internal/engine
    查看>>
    SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
    查看>>
    ORM sqlachemy学习
    查看>>
    Ormlite数据库
    查看>>
    orm总结
    查看>>
    os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
    查看>>
    os.system 在 Python 中不起作用
    查看>>
    OS2ATC2017:阿里研究员林昊畅谈操作系统创新与挑战
    查看>>
    OSCACHE介绍
    查看>>
    SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
    查看>>
    OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
    查看>>
    SQL--mysql索引
    查看>>
    OSChina 周四乱弹 ——程序员为啥要买苹果手机啊?
    查看>>
    OSChina 技术周刊第十期,每周技术抢先看!
    查看>>
    OSError: no library called “cairo-2“ was foundno library called “cairo“ was foundno library called
    查看>>
    Osgi环境配置
    查看>>
    OSG中找到特定节点的方法(转)
    查看>>