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

    你可能感兴趣的文章
    oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)
    查看>>
    Oracle11G基本操作
    查看>>
    Oracle11g服务详细介绍及哪些服务是必须开启的?
    查看>>
    Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
    查看>>
    oracle12安装软件后安装数据库,然后需要自己配置监听
    查看>>
    Oracle——08PL/SQL简介,基本程序结构和语句
    查看>>
    Oracle——distinct的用法
    查看>>
    Oracle、MySQL、SQL Server架构大对比
    查看>>
    oracle下的OVER(PARTITION BY)函数介绍
    查看>>
    Oracle中DATE数据相减问题
    查看>>
    Oracle中merge into的使用
    查看>>
    oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
    查看>>
    oracle中sql的case语句运用--根据不同条件去排序!
    查看>>
    Oracle中Transate函数的使用
    查看>>
    oracle中关于日期问题的汇总!
    查看>>
    Oracle中常用的语句
    查看>>
    Oracle中序列的操作以及使用前对序列的初始化
    查看>>
    oracle中新建用户和赋予权限
    查看>>
    Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
    查看>>
    Oracle中的rownum 和rowid的用法和区别
    查看>>