概述
传送门
IoT产品安全基线
IoT产品安全基线(一)硬件安全
前言
IoT设备与嵌入式设备一个大的区别是IoT设备自有Internet属性,通常IoT设备分为云、管、端三部分。管道即为通讯。因此,通信是IoT系统架构的重要组成部分,是万物互联的基础。
如上图,IoT设备和设别、设备与网关、网关与云等通信技术的安全性是我们基线需要重点关注的,欢迎交流QQqun:205988195
1、通用通信安全
1.1 完整性校验
基线要求
通讯管道中的数据传输应进行完整性校验。对管理数据,鉴别信息,敏感信息,业务数据,控制命令等重要数据的传输做完整性保护,可综合使用校验码,消息摘要,数字签名等。防止攻击者对数据的篡改,进行非法越权与控制。
1.2 通信信道加密
基线要求
应对IoT系统中的通讯信道进行加密,并在会话结束时及时关闭会话。通信信道包括:设备与设备,设备与网关,设备与云服务,网关与云服务之间的连接管道。
1.3 密匙硬编码
基线要求
设备不应将用于传输加密或鉴权的密钥硬编码在程序代码中,应采用一机一密(PSK)或通过 PSK 密钥导出等方式生成密钥。
知识库
PSK(pre-shared key)即预共享密钥。参与通讯双方事先分享的(预共享密钥),也可能是在通讯过程中透过密钥合意协议(key-agreement protocol),由双方共同建立的,例如使用公开密钥加密或是用对称密钥加密。
1.4 通信双向认证
基线要求
通信时应在数据传输之前进行双向认证,验证设备与服务器双方真实身份是否合法,检查控制权限是否与身份匹配,以防止越权(水平越权和垂直越权)或非授权控制。
知识库
- 水平越权
获取同级别权限的用户的资源。 - 垂直越权
获取更高级别权限用户的资源。
1.5 重放攻击
基线要求
通讯方案中应防止攻击者通过嗅探或网络抓包等方式截获通信数据进行重放攻击,以达到攻击目的。防重放方案可使用滚动码、计数器或者时间戳校验等机制,当请求操作验证合法后,设备才执行该操作指令。
知识库
参考方案
- 时间戳校验
在通讯数据中加入时间戳,宜将时间戳和其他参数数据一起进行数字签名或对时间戳进行加密,设置时间戳的有效时间。当服务端收到通讯数据后,进行时间戳的有效性判断,校验通过则执行,否则拒绝通讯的请求。 - nonce
nonce表示仅一次有效的随机字符串,每次通讯请求时,该参数保证重复。服务端将每次通讯请求中的nonce参数保存在一个集合中。在收到请求时,首先判断nonce参数是否合法,其次判断nonce参数是否已经在集合中,如果存在则为非法重放通讯请求。 - 计时器
在通讯请求中加入一个计数器,为防止攻击模拟计数器,可对计数器进行加密处理。当服务端接收到通讯请求时,先对计数器进行研判。
1.6 非授权自定义通信协议
基线要求
设备使用的通信协议应经过安全评估,不应使用非授权通信协议,以防止非授权协议存在安全漏洞或后门影响设备通信安全。
2 以太网
2.1通讯信道加密
基线要求
应使用HTTPS通讯协议,避免使用HTTP,MQTT等明文传输协议而导致信息泄露或被篡改的风险。
知识库
2.2 敏感信息传输加密
基线要求
设备在传输敏感信息时在使用HTTPS传输协议之上,应使用安全的加密算法对敏感信息进行额外的加密。以避免抓包类工具截获敏感信息明文信息。
2.3 HTTPS证书校验
在使用HTTPS协议通讯时,应进行严格的双向证书校验,不能忽略检查。
- linux
应严格验证服务端证书合法性,不应使用参数跳过证书验证或忽略证书验证错误
命令 | 参数 |
---|---|
curl | 不应使用 -k 参数 |
wget | 不应使用 --no-check-certificate 参数 |
libcurl | 应将 CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST 设置为 True |
- Android
应使用 SSL 加密通信服务应严格校验服务端和客户端证书,不应信任任意证书,不应忽略异常事件(如 return 空或者 null);如需自定义 SSLx509 TrustManager,重写 checkServerTrusted 方法,方法内必须严格判断服务端的证书校验,以防止通信内容被劫持导致通信数据泄漏或被篡改。
3 低功耗蓝牙(BLE)
BLE ( Bluetooth Low Energy )即低功耗蓝牙,也就是我们经常说的蓝牙4.0。和传统蓝牙类似,是一种近距离进行设备间无线连接和通讯的协议,传输距离达 100 米。Google在android 4.3(API Level 18)的android版本中引入了低功耗蓝牙BLE核心API。
3.1 蓝牙匹对与绑定
基线要求
有物理按键的蓝牙设备应通过物理按键进行绑定确认或开启绑定窗口,以避免设备重复绑定或在用户不知情的情况下被他人非法绑定的风险。
知识库
- 配对
配对是用来与连接设备,创建加密连接的过程。在蓝牙低功耗中,有两种主要的配对模型:LE Legacy和LE Secure Connection。
其过程包括:配对能力交换、设备认证、密钥(固定128bit)生成、连接加密以及机密信息分布等。配对的目的有三个:加密连接、认证设备、生成密钥。 - 绑定
绑定是存储密钥的过程,这里说的密钥是在配对过程生成的。绑定的目的是在以后的连接过程能迅速恢复加密。
3.2 蓝牙的广播安全
基线要求
蓝牙广播协(Beacon)议应做客制化的定义和加密。广播内容的接收方解析协议的代码需进行代码保护,防止协议逻辑被破解。
知识库
- Beacon
1、是建立在低功耗蓝牙协议基础上的一种广播协议,其工作方式是,配备有低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。
2、Beacon 会每隔一定的时间广播一个数据包到周围,作为独立的蓝牙主机(比如手机等)在执行扫描动作时,会间隔地接收到 Beacon 广播出来的数据包。 - Android Beancon协议保护
1、协议解密、解析程序放到natie层
2、java层代码混淆
3、Native层代码混淆加固。
3.3 蓝牙广播防追踪机制
基线要求
设备宜使用随机蓝牙 MAC 地址,并对蓝牙广播内容进行加密;
如需通过 beacon 信标广播可识别身份的信息,应定时变换设备蓝牙 MAC 地址,以防止他人通过部署足够多的探测设备对广播内容进行析,并跟踪设备的移动轨迹
3.4 蓝牙控制指令合法性校验
基线要求
对于支持蓝牙的设备,应每次登录协商会话密钥,设备与控制应用间应使用会话密钥加密传输控制指令。
3.5 蓝牙 mesh 协议安全
基线要求
蓝牙 mesh 设备应使用安全的通信协议与 mesh 设备、网关及手机进行双向认证,对传输的敏感数据使用会话密钥加密。
知识库
Mesh网状网络是一项独立研发的网络技术,它能够将蓝牙设备作为信号中继站,将数据覆盖到非常大的物理区域,兼容蓝牙4和5系列的协议。传统的蓝牙连接是通过一台设备到另一台设备的「配对」实现的,建立「一对一」或「一对多」的微型网络关系。而Mesh网络能够使设备实现「多对多」的关系。
3.6 蓝牙协议版本安全
基线要求
低功耗蓝牙 BLE 设备(如鼠标、音箱)采用蓝牙链接层加密时应使用4.2 及以上低功耗蓝牙协议版本,以防止设备在绑定阶段泄露蓝牙连接层密钥 (LTK),从而导致隐私泄露或设备伪造的风险。
知识库
自1999年第一个蓝牙版本诞生,蓝牙技术已经发展了20余年,版本从蓝牙V1.0到蓝牙V5.3。
与安全相关版本:
- 蓝牙4.0
4.0以后的蓝牙版本属于低功耗蓝牙。
实现极致的低功耗;低成本、低时延,可实现3ms的低延迟,还有AES-128加密,在保证性能的前提下实现较高的安全性。设备可多连,理论上能够实现100米的距离传输。 - 蓝牙4.1
实现通过IPV6协议连接到网络,提升用户入网便捷性和使用体验;
AES加密技术:通过硬件加密技术让我们获得更加安全的连接。 - 蓝牙4.2
通过6LoWPAN接入互联网,提升数据传输速率;传输速率提升,安全性加强。
蓝牙4.2的安全性较4.0有所提升,如果没有得到用户许可,蓝牙信号将无法尝试连接和追踪用户设备,并且无法进行智能定位。
3.7 蓝牙敏感信息通信
基线要求
设备在使用 BLE 与控制应用(安卓)通信时,应对敏感信息内容本身进行应用层加密,以防止用户使用 BLE 将手机与其他智能设备配对进行数据传输时,手机上的所有应用都可以访问这两个设备间传输的数据。
最后
以上就是土豪路灯为你收集整理的IoT产品安全基线(二)通讯安全传送门前言1、通用通信安全2 以太网3 低功耗蓝牙(BLE)的全部内容,希望文章能够帮你解决IoT产品安全基线(二)通讯安全传送门前言1、通用通信安全2 以太网3 低功耗蓝牙(BLE)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复