36、IoT安全技术详解

IoT安全技术详解

1. 物理与硬件安全

1.1 信任根(Root of Trust)

信任根是硬件安全的第一层,它是一个经过硬件验证的启动过程,确保第一个可执行操作码从不可变源开始。这是启动过程的锚点,后续从BIOS到操作系统再到应用程序的整个系统启动都依赖于此。信任根可抵御rootkit攻击,其启动过程各阶段相互验证,构建信任链。

信任根有不同的启动方式:
- 从ROM或不可写内存启动,存储镜像和根密钥。
- 使用一次性可编程内存(通过熔丝位)存储根密钥。
- 从受保护的内存区域启动,将代码加载到受保护的内存存储中。

支持信任根的处理器架构独特,英特尔和ARM提供了相关支持:
- ARM TrustZone :ARM为SOC制造商提供安全硅IP块,提供硬件信任根和其他安全服务。它将硬件分为安全和非安全“世界”,运行专门为安全设计的可信操作系统,与非安全世界有明确接口。可用于管理系统密钥、信用卡交易和数字版权管理等,适用于A“应用”和M“微控制器”CPU,这种安全CPU、可信操作系统和信任根的组合称为可信执行环境(TEE)。
- Intel Boot Guard :这是一种基于硬件的机制,提供经过验证的启动,通过加密验证初始启动块或使用测量过程进行验证。制造商需生成2048位密钥来验证初始块,密钥分为公私两部分,公钥在制造时通过编程“熔断”熔丝位刻印,私钥用于生成后续启动阶段验证部分的签名。

1.2 密钥管理与可信平台模块

公钥和私钥对确保系统安全至关重要,需要妥善管理。可信平台模块(TPM)是一种流行的硬件密钥安全机制,其规范由可信计算组织编写,是ISO和IEC标准,当前规范是2016年9月发布的TPM 2.0,销售给国防部的计算机资产需要TPM 1.2。

TPM是一个离散的硬件组件,制造时会烧录一个秘密RSA密钥。它通常用于保存、保护和管理其他密钥,用于磁盘加密、信任根启动、验证硬件(和软件)真实性以及密码管理等服务。还能创建“已知良好”配置下软硬件的哈希值,用于运行时验证篡改情况,此外还支持SHA - 1和SHA - 256哈希、AES加密块、非对称加密和随机数生成等服务。Broadcom、Nation Semiconductor和Texas Instruments等厂商生产TPM设备。

1.3 处理器与内存空间安全

有两种主要技术可防范缓冲区溢出和栈溢出类型的恶意软件注入:
- 非执行内存 :硬件启用的功能,操作系统用它将内存区域标记为不可执行。目的是仅将经过验证的合法代码所在区域映射为可执行操作的可寻址内存区域。若通过栈溢出攻击植入恶意软件,栈会被标记为不可执行,强制指令指针在该区域执行会导致机器异常。非可执行内存使用NX位(英特尔用XD位,ARM用XN位)通过转换后备缓冲区将区域映射为不可执行,大多数操作系统如Linux、Windows和一些RTOS都支持此功能。
- 地址空间布局随机化(ASLR) :虽更多是操作系统对虚拟内存空间的处理方式,但也很重要。该技术针对缓冲区溢出和返回至libc攻击,这些攻击依赖攻击者了解内存布局并强制调用某些良性代码和库。如果每次启动时内存空间随机化,调用这些库就会变得困难。Linux通过PAX和Exec Shield补丁提供ASLR功能,微软也为堆、栈和进程块提供保护。

1.4 存储安全

物联网设备通常在边缘节点或路由器/网关上有持久存储,智能雾节点也需要某种持久存储。设备上的数据安全对于防止恶意软件部署和保护设备被盗时的数据至关重要。大多数大容量存储设备(如闪存模块和旋转磁盘)都有具备加密和安全技术的型号。

FIPS 140 - 2(联邦信息处理标准)是一项政府法规,详细规定了管理或存储敏感数据的IT设备的加密和安全要求,不仅规定技术要求,还定义政策和程序,有以下几个合规级别:
| 级别 | 描述 |
| ---- | ---- |
| 1级 | 仅软件加密,安全性有限。 |
| 2级 | 需要基于角色的身份验证,能使用防篡改封条检测物理篡改。 |
| 3级 | 包括物理防篡改功能,设备被篡改时会擦除关键安全参数,包括加密保护和密钥管理,以及基于身份的身份验证。 |
| 4级 | 为在物理无保护环境中工作的产品提供高级防篡改保护。 |

除加密外,还需考虑存储介质退役或处置时的安全问题。从旧存储系统中恢复内容相对容易,有相关标准规定如何安全擦除介质内容,如NIST特殊出版物800 - 88用于安全擦除。

1.5 物理安全

物联网设备的抗篡改和物理安全尤为重要,很多情况下,物联网设备位于偏远地区,缺乏本地设备的防护措施。攻击者若能接触到设备,就可能利用各种工具破解系统。

侧信道攻击包括功率分析、定时攻击、缓存攻击、电磁场发射和扫描链攻击等。侧信道攻击的共同点是将受影响的设备作为测试对象,在受控环境中进行观察和测量。以下是几种常见侧信道攻击的方法及特点:
| 攻击方法 | 描述 |
| ---- | ---- |
| 定时攻击 | 试图利用算法执行时间的微小差异,如测量密码解码算法的时间并观察提前退出情况,攻击者还可观察缓存使用情况来了解算法特征。 |
| 简单功率分析(SPA) | 类似于定时攻击,但测量算法和操作码行为导致的动态功率或电流的大幅变化,公钥特别容易受到攻击。分析需要的跟踪数据较少,但跟踪数据需要高精度。 |
| 差分功率分析(DPA) | 测量动态功率,能观察到SPA中无法直接观察到的微小变化。通过向系统注入随机输入(如不同的随机密钥),攻击者可进行数千次跟踪以构建依赖于数据的集合。例如攻击AES算法时,根据要破解的位(0或1)的值构建两组跟踪数据,对两组数据求平均值并绘制差异图,以显示随机输入对输出的影响。 |

针对这些攻击的防范措施包括:
- 修改加密函数以减少密钥的使用,使用基于实际密钥哈希的短期会话密钥。
- 对于定时攻击,随机插入不干扰原始算法的函数,使用不同的随机操作码创建复杂的工作函数。
- 移除依赖密钥的条件分支。
- 对于功率攻击,尽可能减少泄漏,限制每个密钥的操作数量,减少攻击者的工作集。
- 向电源线引入噪声,使用可变定时操作或偏斜时钟。
- 更改独立操作的顺序,减少S盒计算周围的相关性。

其他硬件考虑因素包括:
- 防止访问调试端口和通道,在最严格的情况下,应移除PCA上的串口和JTAG端口的头,并熔断熔丝位以防止调试访问。
- ASIC通常使用球栅阵列(BGA)焊盘连接到PCA,应使用高性能粘合剂和耐热胶水包围封装,若被篡改可能造成不可修复的损坏。

2. 密码学

2.1 加密类型

加密和保密是物联网部署的绝对要求,用于确保通信安全、保护固件和进行身份验证。加密一般有三种形式:
- 对称密钥加密 :加密和解密密钥相同,RC5、DES、3DES和AES都属于对称密钥加密。
- 公钥加密 :加密密钥公开,任何人都可使用它加密数据,只有接收方有私钥用于解密消息,也称为非对称加密。非对称密码学用于管理数据保密、验证参与者身份和强制不可抵赖性,常见的互联网加密和消息协议如椭圆曲线、PGP、RSA、TLS和S/MIME都属于公钥加密。
- 密码哈希 :将任意大小的数据映射为位串(称为摘要),哈希函数是“单向”的,只能通过尝试所有可能的输入组合来重现输出哈希,无法反向运行。MD5、SHA1、SHA2和SHA3都是单向哈希,通常用于编码数字签名,如签名的固件镜像、消息认证码(MAC)或身份验证。加密短消息(如密码)时,输入可能太小无法有效创建合理的哈希,此时可附加盐或非私有字符串到密码以增加熵,盐是一种密钥派生函数(KDF)。

2.2 对称密码学

在加密中,明文指未加密的输入,输出称为密文。加密标准是高级加密标准(AES),它取代了20世纪70年代的旧DES算法,是FIPS规范和ISO/IEC 18033 - 3标准的一部分,在全球广泛使用。AES算法使用128、192或256位的固定块,大于位宽的消息将被分割成多个块。AES加密有四个基本操作阶段,以下是通用AES - 128加密的伪代码:

// Psuedo code for an AES-128 Cipher
// in: 128 bits (plaintext)
// out: 128 bits (ciphertext)
// w: 44 words, 32 bits each (expanded key)
state = in
w=KeyExpansion(key) //Key Expansion phase (effectively encrypts key itself)
AddRoundKey(state, w[0, Nb-1]) //Initial Round
for round = 1 step 1 to Nr–1 //128 bit= 10 rounds, 192 bit = 12 rounds, 256 bit = 14 rounds
    SubBytes(state)   //Provide non-linearity in the cipher
    ShiftRows(state)  //Avoids columns being encrypted independently which can weaken the algorithm
    MixColumns(state) //Transforms each column and adds diffusion to the cipher
    AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) //Generates a subkey an combines it with state.
end for
SubBytes(state)    //Final round and cleanup.
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state

AES密钥长度可以是128、192或256位,一般来说,密钥长度越大保护越好,密钥大小与加密或解密一个块所需的CPU周期数成正比:128位需要10个周期,192位需要12个周期,256位需要14个周期。

2.3 块密码操作模式

块密码是基于对称密钥对单个数据块进行操作的加密算法,现代密码基于Claude Shannon 1949年关于乘积密码的工作。密码操作模式是使用块密码的算法,描述如何重复应用密码来转换由多个块组成的大量数据。大多数现代密码还需要初始化向量(IV)以确保即使输入相同的明文也能产生不同的密文。常见的操作模式有:
- 电子密码本(ECB) :这是AES加密最基本的形式,可与其他模式结合构建更高级的安全机制。数据被分成块,每个块单独加密,相同的块会产生相同的密文,安全性相对较弱。
- 密码块链接(CBC) :明文消息在加密前与前一个密文进行异或操作。
- 密码反馈链接(CFB) :类似于CBC,但形成密文流,前一个密文的输出作为当前密文生成的输入。由于依赖前一个块密码,CFB不能并行处理。流密码允许传输中丢失一个块,后续块可以从损坏中恢复。
- 输出反馈链接(OFB) :类似于CFB,是一种流密码,但允许在加密前应用纠错码。
- 计数器(CTR) :将块密码转换为流密码,使用计数器,递增的计数器并行馈送每个块密码,实现快速执行。随机数和计数器连接在一起馈送块密码。
- 带消息认证码的CBC(CBC - MAC) :使用MAC(也称为标签或MIC)来验证消息并确认消息来自指定的发送者,MAC或MIC随后添加到消息中供接收者验证。

这些模式最初在20世纪70年代末和80年代初构建,由美国国家标准与技术研究院在FIPS 81中倡导作为DES模式。它们提供信息保密的加密,但不能防止修改或篡改。为实现这一点,需要数字签名,安全社区开发了CBC - MAC用于身份验证。直到AES - CCM等算法出现,才解决了将CBC - MAC与传统模式结合的难题,AES - CCM提供身份验证和保密功能。

2.4 AES - CCM模式

CCM代表计数器与CBC - MAC模式,是一种重要的加密模式,用于对数据进行签名和加密,广泛应用于Zigbee、蓝牙低功耗、TLS 1.2(密钥交换后)、IPSEC和802.11 Wi - Fi WPA2等协议。

AES - CCM使用双密码:CBC和CTR。AES - CTR(计数器模式)用于对流入的密文流进行一般解密,输入流包含加密的认证标签,AES - CTR会解密标签和有效负载数据,此阶段形成“预期标签”。AES - CBC阶段以AES - CTR输出的解密块和帧的原始头部为输入进行标记,数据被加密,但用于身份验证的唯一相关数据是计算出的标签。如果AES - CBC计算出的标签与AES - CTR的预期标签不同,则数据在传输过程中可能被篡改。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(加密数据流):::process --> B(AES-CTR解密):::process
    B --> C(生成预期标签):::process
    B --> D(解密有效负载数据):::process
    D --> E(AES-CBC加密):::process
    A --> F(原始头部):::process
    F --> E
    E --> G(计算标签):::process
    C --> H{标签比较}:::process
    G --> H
    H --> |相同| I(数据未篡改):::process
    H --> |不同| J(数据可能被篡改):::process

通过AES - CBC进行身份验证和AES - CTR进行解密,确保了消息的保密性和来源的真实性。

2.5 密码学应用总结

密码学在物联网安全中扮演着至关重要的角色,不同的加密类型和操作模式适用于不同的场景。以下是对上述密码学内容的应用总结:
| 加密类型/模式 | 特点 | 适用场景 |
| ---- | ---- | ---- |
| 对称密钥加密(如AES) | 加密和解密密钥相同,速度快 | 大量数据的加密传输,如物联网设备间的数据通信 |
| 公钥加密(如RSA) | 加密密钥公开,私钥解密,可实现身份验证和不可抵赖性 | 数字签名、密钥交换等场景,如设备注册和认证 |
| 密码哈希(如SHA系列) | 单向映射,用于数据完整性验证 | 验证固件镜像、消息认证码等 |
| ECB模式 | 简单,相同块加密结果相同 | 对安全性要求不高的场景 |
| CBC模式 | 引入前一个密文,增强安全性 | 通用的数据加密场景 |
| CFB模式 | 形成密文流,可处理数据丢失 | 实时数据传输场景 |
| OFB模式 | 可应用纠错码 | 对数据准确性要求较高的场景 |
| CTR模式 | 并行处理,速度快 | 对性能要求较高的场景 |
| CBC - MAC模式 | 提供消息认证 | 需要验证消息来源的场景 |
| AES - CCM模式 | 结合认证和保密功能 | 对安全性和认证要求都较高的物联网协议 |

3. 物联网安全综合防护策略

3.1 分层防护架构

为了全面保障物联网系统的安全,需要构建分层防护架构。以下是一个典型的物联网安全分层防护架构:

graph LR
    classDef layer fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
    A(感知层):::layer --> B(网络层):::layer
    B --> C(平台层):::layer
    C --> D(应用层):::layer
    E(物理安全防护):::layer --> A
    F(通信安全防护):::layer --> B
    G(数据安全防护):::layer --> C
    H(应用安全防护):::layer --> D
  • 感知层 :主要包括物联网设备,如传感器、执行器等。这一层的安全防护重点是物理安全和设备认证,防止设备被物理攻击和非法接入。
  • 网络层 :负责物联网设备之间以及设备与平台之间的通信。通信安全是这一层的关键,需要采用加密协议和认证机制来保护数据传输的安全性。
  • 平台层 :作为物联网系统的核心,负责数据的存储、处理和管理。数据安全和访问控制是平台层的主要防护目标,确保数据的完整性、保密性和可用性。
  • 应用层 :为用户提供各种物联网应用服务。应用安全防护主要关注用户认证、授权和应用程序的安全性,防止恶意攻击和数据泄露。

3.2 安全策略制定

制定全面的安全策略是保障物联网安全的基础。以下是一些制定安全策略的关键步骤:
1. 风险评估 :对物联网系统进行全面的风险评估,识别可能存在的安全威胁和漏洞。
2. 安全目标设定 :根据风险评估结果,设定明确的安全目标,如保护数据安全、防止设备被攻击等。
3. 策略制定 :根据安全目标,制定具体的安全策略,包括访问控制策略、加密策略、应急响应策略等。
4. 策略实施 :将安全策略落实到物联网系统的各个层面,确保策略的有效执行。
5. 监控和评估 :定期对安全策略的执行情况进行监控和评估,及时发现问题并进行调整。

3.3 应急响应机制

建立完善的应急响应机制可以在物联网系统遭受攻击时迅速采取措施,减少损失。以下是应急响应机制的主要步骤:
1. 监测和预警 :通过安全监控系统实时监测物联网系统的运行状态,及时发现异常行为并发出预警。
2. 事件响应 :当发生安全事件时,迅速启动应急响应流程,对事件进行评估和分析。
3. 隔离和修复 :将受攻击的设备或系统进行隔离,防止攻击扩散,并及时修复漏洞。
4. 恢复和总结 :在攻击得到控制后,恢复系统的正常运行,并对事件进行总结和分析,吸取经验教训,完善安全策略。

4. 物联网安全未来发展趋势

4.1 人工智能与物联网安全融合

随着人工智能技术的发展,将人工智能与物联网安全相结合成为未来的一个重要趋势。人工智能可以用于实时监测物联网系统的安全状态,通过机器学习算法分析大量的安全数据,及时发现潜在的安全威胁。同时,人工智能还可以用于自动化应急响应,提高应对攻击的效率。

4.2 量子加密技术的应用

量子加密技术基于量子力学原理,具有无条件安全性。随着量子技术的不断进步,量子加密技术有望在物联网安全中得到广泛应用,为物联网通信提供更高的安全保障。

4.3 标准化和合规性要求提高

随着物联网市场的不断扩大,标准化和合规性要求将越来越高。各国政府和行业组织将制定更加严格的物联网安全标准和法规,要求物联网企业遵守相关规定,确保物联网系统的安全性和可靠性。

4.4 零信任架构的普及

零信任架构基于“默认不信任,始终验证”的原则,对任何试图访问物联网系统的用户、设备和应用都进行严格的身份验证和授权。随着物联网安全威胁的不断增加,零信任架构将在物联网领域得到更广泛的应用,提高物联网系统的整体安全性。

综上所述,物联网安全是一个复杂的系统工程,需要从物理与硬件安全、密码学、综合防护策略等多个方面进行全面考虑。同时,随着技术的不断发展,物联网安全也将面临新的挑战和机遇,需要不断探索和创新,以保障物联网系统的安全稳定运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值