BLE MESH(四)安全概述

  • 一、安全的重要性
  • 二、蓝牙MESH网络的安全性是强制性的
  • 三、蓝牙MESH网络安全基础
  • 四、关注点和安全密钥分离
  • 五、区域隔离
  • 六、节点移除、密钥刷新和垃圾桶攻击
  • 七、隐私
  • 八、重放攻击
  • 九、密码学工具箱
  • 十、AES-CMAC
  • 十一、AES-CCM
  • 十二、SALT Generation
  • 十三、其他安全功能
  • 向前!

一、安全的重要性

与物联网 (IoT) 相关的讨论最多的问题之一是安全性。从农业到医院,从住宅智能家居到商业智能建筑,从发电站到交通管理系统,物联网系统和技术将触及我们生活的世界的许多地方。物联网系统中的安全漏洞可能会带来灾难性的后果。

蓝牙®MESH网络从头开始设计,将安全性作为第一要务。在本文中,您将大致了解关键的安全功能和解决的安全问题。该系列的其他文章将更详细地研究蓝牙MESH网络安全的各个方面。

二、蓝牙MESH网络的安全性是强制性的

蓝牙®BLE (LE) GATT 设备可以实施蓝牙核心规范中定义的一系列安全措施。

产品设计人员有责任决定需要哪些安全措施,并且可以决定完全不采用任何可用的安全功能。

换句话说,BLE蓝牙 GATT 中的安全性是可选的。如果我们谈论的是单个设备的安全性及其与另一台设备的连接,那么这很有意义,前提是产品设计人员正确执行了他们的风险评估。但是,蓝牙MESH网络中的安全性不仅仅涉及单个设备或对等设备之间的连接的安全性。它涉及整个设备网络和网络中各种设备组的安全性。

因此,蓝牙MESH网络的安全性是强制性的。

三、蓝牙MESH网络安全基础

以下基本安全声明适用于所有蓝牙MESH网络:

方法 说明
加密和认证 所有蓝牙MESH网络消息都经过加密和验证。
关注点分离 网络安全、应用程序安全和设备安全是独立解决的。请参阅下面的关注点分离。
区域隔离 蓝牙MESH网络可以划分为子网,每个子网在密码上是不同的,并且彼此安全。
按键刷新 在蓝牙MESH网络的生命周期内,可以通过密钥刷新程序更改安全密钥。
消息混淆 消息混淆使跟踪网络内发送的消息变得困难,因此,提供了一种隐私机制,使跟踪节点变得困难。
重放攻击保护 蓝牙MESH网络安全保护网络免受重放攻击。
垃圾桶攻击防护 节点可以安全地从网络中删除,以防止垃圾箱攻击。
安全设备配置 将设备添加到蓝牙MESH网络以成为节点的过程是一个安全的过程。

四、关注点和安全密钥分离

蓝牙®MESH网络安全的核心是三种类型的安全密钥。这些密钥为蓝牙MESH网络的不同方面提供了安全性,并实现了蓝牙MESH网络安全性的关键功能,称为关注点分离。

考虑充当继电器的MESH灯。作为中继,它可能会发现自己处理与建筑物的蓝牙MESH门窗安全系统相关的消息。灯没有访问和处理这些消息细节的业务,但它确实需要将它们中继到其他节点。

为了处理这种潜在的利益冲突,蓝牙MESH网络使用称为AppKeys的不同安全密钥来保护网络层的消息,而这些密钥用于保护与特定应用程序(例如照明、物理安全、加热等)相关的数据。

蓝牙MESH网络中的所有节点都拥有一个或多个网络密钥(NetKey),每个网络密钥对应一个子网,该子网可能是主要子网。它拥有使节点成为网络成员的网络密钥。网络加密密钥和隐私密钥直接从 NetKey 派生而来。

拥有 NetKey 允许节点解密和验证网络层,以便可以执行网络功能,例如中继。它不允许解密应用程序数据。

每个节点还有一个唯一的安全密钥,称为设备密钥或 DevKey。DevKey 用于节点的供应和配置。

五、区域隔离

拥有主NetKey定义了蓝牙®MESH网络的成员资格并授予其访问权限。但也可以将网络划分为不同的子网,每个子网都有自己的子网密钥。这意味着只有拥有给定子网密钥的设备才能与属于该子网成员的其他设备通信。也可以临时创建和分配子网密钥。一个很好的例子是将不同酒店房间中的节点彼此隔离。

六、节点移除、密钥刷新和垃圾桶攻击

如上所述,节点包含各种蓝牙®MESH网络安全密钥。如果节点出现故障并需要处理,或者如果所有者决定将节点出售给另一个所有者,则重要的是不能使用该设备及其包含的密钥来对该节点的网络发起攻击.

蓝牙MESH网络可确保安全处理设备
定义了从网络中删除节点的过程。该provisioner应用程序用于节点添加到拒绝列表,然后一键刷新程序被启动。

密钥刷新程序发布网络中的所有节点,除了拒绝列表成员的节点、新的网络密钥、应用程序密钥和所有相关的派生数据。换句话说,构成网络和应用程序安全基础的整套安全密钥被替换。

因此,从网络中删除并包含旧 NetKey 和旧 AppKey 集的节点不再是网络成员,不会构成威胁。

七、隐私

从 NetKey 派生的隐私密钥用于混淆网络 PDU 标头值,例如源地址。混淆确保不能使用随意的、被动的窃听来跟踪节点和使用它们的人。它还使基于流量分析的攻击变得困难。

八、重放攻击

在网络安全中,重放攻击是一种窃听者拦截并捕获一个或多个消息并在以后简单地重新传输它们的技术,其目的是欺骗接收者执行攻击设备未授权执行的操作。一个常见的例子是汽车的无钥匙进入系统被攻击者攻破,攻击者拦截了车主和汽车之间的身份验证序列,然后重播这些消息以进入汽车并窃取汽车。

蓝牙®MESH网络通过使用称为序列号(SEQ) 和 IV 索引的两个网络 PDU 字段来防止重放攻击。元素每次发布消息时都会增加 SEQ 值。从包含小于或等于最后一个有效消息的 SEQ 值的元素接收消息的节点将丢弃它,因为它可能与重放攻击有关。类似地,IV 索引是与 SEQ 一起考虑的单独字段。来自给定元素的消息中的 IV 索引值必须始终等于或大于来自该元素的最后一个有效消息。

九、密码学工具箱

蓝牙MESH网络的大多数安全功能都依赖于行业标准的加密算法和程序。本系列的其他与安全相关的文章中将引用它们,但我们将在这里解释最重要的那些。

蓝牙MESH网络堆栈中使用了两个关键安全功能:AES-CMAC 和 AES-CCM。这些是基本的加密和认证功能,用于密钥生成的所有其他功能都基于它们。

十、AES-CMAC

基于密码的消息认证代码 (CMAC) 是一种算法,可以为任何可变长度的输入生成固定长度的 128 位消息认证值。使用AES-CMAC算法生成消息认证码MAC的公式写为:

MAC = AES-CMAC k (m)

AES-CMAC 的输入是:

k – 128 位密钥。 m – 要验证的可变长度数据。

AES-CMAC 具有出色的错误检测能力。其他技术,包括校验和的验证或错误检测代码的使用,可能只检测数据的意外修改。AES-CMAC 旨在检测故意、未经授权的数据修改以及意外修改。如果您有兴趣了解有关此功能的更多信息,请参阅定义它的RFC4493。

十一、AES-CCM

AES-CCM 是一种通用的、经过身份验证的加密算法,旨在与加密块密码一起使用。在蓝牙MESH网络规范中,AES-CCM 在所有情况下都用作基本的加密和认证功能。其使用公式如下:

密文,MIC = AES-CCM k (n,m,a)

AES-CCM 有四个输入:

k – 128 位密钥。
n – 104 位随机数。
m – 要加密和认证的可变长度数据。
a – 要验证但未加密的可变长度数据,也称为附加数据。此输入参数的长度可能为零字节。

AES-CCM 有两个输出:

密文——加密后的可变长度数据。

MIC – m 和 a 的消息完整性检查值。

图 1 显示了一个纯文本有效载荷,它可能来自蓝牙®MESH网络层或上层传输层,由 AES-CCM 使用输入加密密钥、随机数和明文有效载荷进行处理。输出加密的有效载荷和 MIC。

图 1 – 用于数据包有效负载加密和身份验证的 AES-CCM。

十二、SALT Generation

蓝牙®MESH网络安全定义了称为 s1的SALT生成函数,该函数使用 AES-CMAC 函数。如上所述,AES-CMAC 有两个输入参数:k 和 m。但是,当用于 SALT 生成时,只有输入参数 m 会发生变化。k 始终设置为 128 位值:0x0000 0000 0000 0000 0000 0000 0000 0000,在蓝牙MESH网络规范中称为零。
图 2 – SALT 生成函数。

SALT 生成函数的输入是:

          m – 一个非零长度的八位字节数组或 ASCII 编码的字符串。

输出是一个 128 位的 MAC 值,s1 公式写为:

s1(m) = AES-CMAC zero(m)

十三、其他安全功能

在蓝牙MESH网络规范第 3.8.2 节“安全工具箱”中,您将找到定义的其他安全功能,例如各种密钥派生功能。它们都是基于 AES-CMAC 和 SALT 生成函数 s1(SALT 生成函数也是基于 AES-CMAC)。

向前!

安全性是蓝牙的一个重要问题,这个话题将在我们关于蓝牙MESH网络的系列中反复出现。阅读本文后,您应该对主要的蓝牙®MESH网络安全功能和一些涉及的底层加密技术有很好的了解。当我们在以后的文章中介绍该主题时,您现在可以更深入地研究蓝牙MESH网络安全。
BLE MESH组网(一)简介
BLE MESH组网(二)友谊功能和设备管理
BLE MESH组网(三)普通BLE如何添加到网络
BLE MESH组网(四)安全概述
BLE MESH组网(五)配置BLE MESH
BLE MESH组网(六)配置BLE MESH

BLE MESH组网(四)安全概述相关推荐

  1. BLE MESH组网(一)简介和基本概念

    BLE MESH组网(一) BLE MESH简介 BLE MESH来源 BLE MESH用处 BLE MESH的通讯方式 管理洪水 市场内蓝牙设备支持 安全性 BLE MESH协议栈模型 BLE ME ...

  2. BLE MESH组网(七)真机配置

    BLE MESH(三) 一.在nRF5 SDK中为Mesh示例配置承载器 二.可用示例 三.要开始使用nRF Mesh移动应用程序评估示例,请完成以下三个配置阶段: 四.配置步骤 第一步:nRF Me ...

  3. BLE MESH组网(二)友谊功能和设备管理

    BLE MESH组网(二) Friendship功能 一.概述 1.Friendship是什么 2.Friend和LPN 3.Friend参数 4.好友建立 Friendship消息 安全 友谊终止 ...

  4. BLE MESH组网(五)配置BLE MESH

    BLE MESH(五)配置BLE MESH 前言 概述 配置协议 供应程序 信标 邀请 交换公钥 前言 2017 年 5 月,全球最臭名昭著的勒索软件 WannaCry 在全球范围内积极攻击计算机,劫 ...

  5. BLE MESH组网(六)配置BLE MESH

    BLE MESH(五)配置BLE MESH 前言 验证 输出OOB 输入对象 静态 OOB 或无 OOB 检查确认值 确认值检查 配置数据的分布 开发MESH 前言 在本文的第1 部分中,介绍了配置承 ...

  6. 安信可PB系列蓝牙模组 APP Ble Mesh组网教程

    文章目录 一.前言 二.硬件准备 三.软件准备 四.AT指令集 五.APP组网示例 六.数据通信 一.前言 本文以PB-02开发板为例,介绍PB系列蓝牙模组通过安卓"PHY Mesh&quo ...

  7. 安信可TB蓝牙模组系列 APP Ble Mesh组网教程

    文章目录 一.前言 二.硬件准备 三.软件准备 四.AT指令集 五.APP 组网示例 六.数据通信 一.前言 本文以TB-02开发板为例,介绍TB系列蓝牙模组通过安卓"TelinkSigMe ...

  8. BLE Mesh(1)—— 简述

    要说清楚 BLE Mesh 首先需要回答几个问题: 1.mesh 是什么? 2.mesh 用来干嘛? 3.mesh 在 BLE 中的位置? BLE 作为蓝牙发展中的后续产物,现目前支持的应用场景非常有 ...

  9. android ble mesh,Android 蓝牙Mesh组网代码详解

    文章目录前言Mesh组网基本理解扫描设备组网meshAddress添加与重连UUID连接登录修改信息控制与接收设备数据总结 前言 上面的几篇文章都是在说Android网络编程方面的内容,我本来就有打算 ...

最新文章

  1. 我在美团的这两年,想和你分享
  2. celldex包使用
  3. 计算机主机组装的过程,电脑主机组装需要怎样的操作流程简单至极?
  4. unity, 什么时候用静态类,什么时候用单例
  5. jmeter中文_JMeter安装配置
  6. 平时少用到的sql query
  7. linux shell 常用基本语法
  8. java 模块化osgi_OSGi简介–模块化Java
  9. 通过opencv的函数进行图片修复:cv2.inpaint()
  10. 工信部:2019年全国继续加大网络提速降费力度
  11. 用JS创建一个XML文件
  12. 云计算学习笔记003---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
  13. 毕设题目:Matlab故障分析
  14. 浅谈JS各种宽高(clientHeight、scrollHeight、offsetHeight等)
  15. 遥感原理与应用总结——第一章:遥感原理的基本概念
  16. Python中的装饰器及@用法详解
  17. php验证码点击刷新,php点击可刷新验证码
  18. 微信获取粉丝信息php,1.2 微信粉丝用户及粉丝标签管理
  19. 【Go语言实战】(4) 简简单单的几十行代码实现 TCP 通信
  20. 命令行quser logoff

热门文章

  1. PCB邮票孔的作用及详细设计指南
  2. 微信小程序开通流量主,流量主收入却是个坑
  3. 【刷题笔记】CG第二周
  4. 数据结构 - 主席树
  5. 经常用电脑,要注意脸部保养
  6. 用MATLAB实现转子的故障诊断,单盘转子故障诊断报告(附matlab程序).doc
  7. linux syscore suspend/resume方法
  8. 12月9日科技资讯|苹果三星手机被诉辐射超标;淘集集启动破产清算;Apache Flink 1.9.1 发布 |
  9. 局域网内打印机打印只能打印一页或是几页的解决办法
  10. 2015年1月9日XX大学XX学院考试题