嵌入式系统开发:安全、生命周期与启动流程详解
1. 安全考量
在嵌入式系统开发中,安全是至关重要的一环。规划远程更新时,需采用适合特定用例、安全要求和安全级别的程序。使用第三方库时,要跟踪其最新版本的开发情况,充分了解修复缺陷的影响,特别是标记为安全问题的缺陷。
软件加密
加密算法在合适的场景下应被使用,例如对本地存储的数据或在两个系统之间传输的数据进行加密,对网络上的远程参与者进行身份验证,或验证数据是否未被篡改且来自可信源。
好的加密应基于开放、透明的标准,根据荷兰密码学家奥古斯特·柯克霍夫(Auguste Kerckhoff)在 19 世纪提出的柯克霍夫原则,系统的安全性应仅依赖于密钥的安全性,而非秘密机制。过去,许多嵌入式系统采用了模糊安全的做法,试图通过走捷径来规避旧硬件架构上运行成熟加密原语所需资源不足的限制,但这并非好的实践。
如今,存在嵌入式加密库,能够在基于微控制器的系统中运行与 PC 和服务器相同的最新标准算法。一个完整的加密库通常提供三类算法的现成实现:
- 非对称加密(RSA、ECC) :基于一对相互关联的私钥和公钥。除了单向加密外,这些算法还提供其他机制,如验证签名和从两个密钥对派生辅助密钥,例如用于在不可信介质上通信的两个端点之间共享秘密。
- 对称加密(AES、ChaCha20) :主要用于双向加密,在两个方向上使用相同的预共享密钥。
- 哈希算法(SHA) :提供单射摘要计算,常用于验证数据是否未被篡改。
wolfCrypt 是一个为嵌入式系统
超级会员免费看
订阅专栏 解锁全文
1410

被折叠的 条评论
为什么被折叠?



