2020-10-24

嵌入式安全

1.安全的重要性
(1)为什么安全如此的重要br> 对于嵌入式系统正越来越频繁地遭到黑客入侵。
(2)如今为何需要安全性br> 1) 设备需要联 ,比如现在工业4.0的设备,设备连接云
2) 安全攻击和黑客入侵频率的增加
3) 保护你的IP(知识产权),应用。
(3)嵌入式系统应用中的安全需求br> 1) 机密性、隐私
确保任何意外实体都无法读取保存的数据或传输的 文。

2020-10-24
  1. 安全的基本概念,算法和实现方式
    (1)嵌入式安全意味着将安全算法和非安全应用结合起来,构建一个完整的解决方案。
    1) 机密性:通过加密(包括对称和非对称的加密算法)解决机密性的问题
    2) 完整性:通过哈希算法(MD5、SHA-1、SHA-256)和对称的加密算法来解决完整性问题;
    3) 身份验证:通过数字签名来解决身份验证的问题。
    (2)基本算法
    哈希运算:哈希运算所采用的是一种强大的不可逆数学变换;不同长度的 文通过哈
    希运算后一般产生相同长度(比如32字节)的摘要。哈希运算不仅可以验证 文还可以用于检查 文的完整性。
    大的哈希运算的特性:
    算摘要谓可容易实现
    法重新生成原始 文
    法在不改变摘要的前提下修改 文
    法找到具有相同摘要的不同 文
    出称为“ 文摘要”,长度固定
    HA256输出32字节摘要,这与输入的大小无关
    使用哈希运算进行验证时,结果称为
    AC = 文验证代码
    IC = 文完整性代码

对称密钥加解密:所谓的对称密钥,就是加密密钥和解密密钥相同。由于通信双方的密钥相同,因此密钥的保存非常关键。

密钥分配很简单
个密钥可公开共享,我们称其为“公钥”
一个密钥以极其私密的方式保存,我们称其为“私钥”
密钥的安全性和私密性对系统的安全至关重要
公钥基础架构(即PKI)中,每个元素都有自己的密钥对
钥对绝对不能共享
个元素都具有惟一身份是安全的基础

非对称算法:所谓的非对称,指的是两个数学上相关的密钥,一个密钥可以公开共享,称为公钥,另一个密钥以及其私密的方式保存,称为私钥,一般使用时,我们使用公钥加密,私钥来解密。我们可以使用使用非对称算法来验证身份,一般使用私钥产生数字签名,使用公钥进行验证,即验证身份的合法性。
数字签名

它不是对质询的加密响应
名是一种复杂的数学函数,它利用私钥、随机质询和一个惟一随机数来创建结果
到的数字签名只能使用签名者的公钥进行验证
验证不是解密
证是另一种复杂的数学函数,其惟一目的在于确定发送者的私钥是否用于创建该数字签名
证函数的结果为“是/否”结果

证书:证书用于确保实体是真实可靠的。通信双方在通信之前,必须要建立一个信任链,以便彼此共享共同的信任锚或信任根,信任锚通常是OEM,但也可以使证书颁发机构(CA)
(3)证书的签名和结构
证书内容
本和序列
法ID
发者
效期
始日期/截止日期

题公钥信息
钥算法
题公钥
书签名算法
字签名
发者惟一标识符(可选)
题惟一标识符(可选)
展(可选)

使用加密安全随机数发生器同样重要
们需要与承诺可从嵌入式系统操作中获得高熵随机数的不法供应商作斗争

实现强安全性需要什么条件br> 高熵随机数发生器
熵”是一种严重的无序状态,是随机性的基础
以信任的不可变真实代码区域
于存储机密信息和关键加密基元的硬件强制持久安全区域
过防篡改保护实现
大的加密方法和可靠的信任链
演示文稿中采用了椭圆曲线加密(ECC)方法,这是现行标准
于ECC的密钥长度较短且安全级别相同,因此正在逐渐取代RSA
CC-256位= RSA-3072位
虑周全的生态系统和基础架构

3.系统安全构件
1) 硬件可信根
所有安全系统都需要硬件可信根,其中包含2个属性:
固件验证(又称为安全引导,适用于所有系统)– 确保即将运行的软件为正确的软件。它涉及映像签名以及稍后启动时的过程映像验证。
可信身份(用于联 系统)–秘钥受防篡改保护和边信道攻击保护。
这是与可信链相关的私钥或共享秘钥,应具备根据相关认证标准测试的防篡改保护和边信道攻击保护。
2) 防伪
防止攻击者仿造一次性物品或复制附件
3) IP保护
防止攻击者窃取MCU固件或FPGA RTL中的IP。
价值在于系统代码内的知识产权(IP)。因此,需要在系统运行期间的任何时刻对已签名的代码进行验证。
原理与安全引导类似,但验证在运行时进行。
4) 安全更新
利用安全通信和安全引导机制来确保安全传送真实的映像。
对于联 系统-安全远程无线(OTA)更新
于非联 系统-本地更新(例如:U盘),前提是待更新的软件或固件安全地存储在相应的位置。
码/软件/映像签名和验证
全加载程序(执行更新的软件)需要对目标设备、文件或系统进行身份验证
5) 安全链接
对设备通信进行身份验证并选择性进行加密
主机和客户端所连隧道的加密/解密功能可确保安全通信,从而防止中间人攻击,即试图在通信隧道内拦截数据加以篡改。
在建立安全通信的过程中,存在一个密钥协议阶段。该阶段将请求必须加以保护的可信根,以便能够开始推送数据和避免出现冒用身份的客户端。
过IP 络的TCP或UDP实现TLS或DTLS层
太 、Wi-Fi6LowPan等
议栈可位于MCU/MPU或无线模块(例如WINC1500)中。
PGA SmartFusion2集成了Cortex-M3以处理通信
D)TLS凭证应位于防篡改的第三方经测试物理安全边界中,例如,JIL“高”等级安全元件或MCU/MPU上的等效安全元件(如果有)
他通信协议栈
luetooth、Zigbee、LoRa和其他802.15.4无线电等
终考虑真实性、保密性和完整性
记住:仅加密是不够的
6) 应用层安全
利用系统的加密功能进一步强化实现(访问权限)
安全性专门应用于应用层以防止未经授权的访问。
应用层安全是指保护OSI模型第7层应用免受恶意攻击的方法,这些恶意攻击可能暴露私人信息。
机制示例:
测到篡改时禁止密钥或固件操作
整性监视
户权限/访问授权
核分离
件防火墙
改宏

全代码预配置
像签名/验证
4. 安全引导
可信根可保证客户数据/引导文件免于加载到执行环境
全引导加载程序可确保设备的可信根
全引导可防止在设备中运行未经授权的应用程序
于经过加密和签名,因此允许加载可信的应用程序
过检查完整性并对其进行解密,允许执行可信的应用程序

安全引导加载程序加载经过加密和签名的应用程序
应用程序映像存储到外部NVM中之前,先进行加密和签名
用AES-CBC进行加密,实现机密性
用AES-CMAC或HASH+RSA进行签名,实现身份验证/完整性
密密钥存储在受保护的熔丝矩阵中
安全引导加载程序的原理
全引导加载程序执行经过加密和签名的应用程序
映像从外部NVM下载到嵌入式SRAM中
映像进行身份验证(HASH-RSA –AES-CMAC)
果通过身份验证,则解密嵌入式SRAM中的引导文件(AES-CBC)
止访问包含身份验证/加密密钥的熔丝
后,启动嵌入式SRAM中的映像

如果映像未通过身份验证,则根据客户设置,将检查下一个存储器或不执行任何操作,因为它可能是恶意的代码。
5. 物联 安全
选择在安全性方面值得信赖并且进行过试验的供应商使用经过验证的标准安全性架构和相关实践
提供惟一、可信、受保护且可验证的身份,从而确保身份验证安全(信任根)
加密通信(TLS1.2)
使用安全的OTA固件验证和安全引导。

将私钥与用户隔离
类是最难预测的安全风险
将私钥与软件隔离
丁发布后,会向攻击者暴露软件的弱点。为物联 硬件开发补丁往往需要几个月的时间,而这样会让攻击者有足够的时间入侵系统。
将密钥操作与制造阶段隔离
仅与供应链设备隔离,还应与供应链中的用户隔离。
将密钥与单片机隔离
勿将私钥存储在闪存中
2)创建带多个证书的设备身份
设备身份应惟一、可验证且可信加密密钥对一个私钥和一个数学上相关的公钥(一对一的关系)
身份的可信性依赖于在产品的使用寿命内保密的私钥以及保持安全的加密算法实现:
有遭受暴力攻击的可能
存在已知协议弱点
存在会导致密钥材料泄漏的边信道攻击

证书不是惟一的身份验证安全模型。客户只需使用基本公钥/私钥对即可对令牌进行签名,之后会对令牌进行验证(Google方案)

用于在联 设备的使用寿命内安全存储密钥材料。密钥绝不存在于设备之外
钥由器件使用满足NIST规范的“顶级”随机数发生器(RNG)生成,处于器件的安全边界内
有加密算法都在防篡改边界内执行
密钥与应用软件严格隔离
样一来,密钥、机密信息和原语便可与所有易受攻击的资源严格隔离

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月21日
下一篇 2020年9月21日

相关推荐