打印
[信息]

【STM32垂直应用挑战第1周】 信息安全学习

[复制链接]
416|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Liyj336|  楼主 | 2020-11-22 19:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
之前我在DIY的时候,确实没太注意安全这一方面,包括固件安全、数据传输安全、内存保护等都没有考虑到。数据传输方面也只关注数据是否正确。在这个物联网的大趋势下,设备之间信息安全传输越来越被人所关注。这一次学习STM32的信息安全,真的让我感觉嵌入式方面的信息安全尤为重要。
1、STM32Trust
ST在信息安全方面,提供STM32Trust这一套解决方案。
STM32Trust是一个集合了信息安全知识、生态系统和安全服务的综合的安全架构,基于多层次的安全策略,提供针对代码和执行保护在内的完整工具。
主要的包括的安全功能如下:
安全启动
安全升级
安全存储
系统隔离
安全生产
软件IP保护
密码学引擎
异常检测与处理
身份识别与认证

2、信息安全架构
STM32的信息安全架构分为四层。底层硬件层、密码学功能软件库、安全方案和安全服务和应用程序。
2.1  底层硬件
STM32 MCU底层硬件具备的安全特性能够覆盖存储访问保护、代码/系统隔离、启动入口限定、防篡改检测、密码学算法加速、身份识别等多方面的安全需求。
不同的MCU,所具备的信息安全特性有所区别。
主要的硬件安全特性包括:

身份识别:UID, OTP
存储访问保护/软件IP保护:RDP(读保护),WRP(写保护),PCROP(专有代码保护),OTFDEC(On-The-Fly Decryption实时解密模块)
代码/系统隔离:MPU,Firewall(防火墙),TrustZone,Secure User Memory(安全用户存储区)
启动入口限定:RDP2,BOOTLOCK(启动锁定)
防篡改检测:Anti-Tamper
密码学算法硬件:AES,HASH,PKA,TRNG
2.2 密码学功能软件库
密码学算法是信息安全中常用的工具,通常IoT设备中涉及的安全通信,身份认证等都离不开密码学算法,例如通过加解密算法保护信息机密性,通过HASH、MAC以及数字签名验证消息的完整性及其来源,利用随机数防止通信中的重放攻击等。
密码学往往过于复杂,STM32的生态系统提供了密码学算法库:X-CUBE-CRYPTOLIB,帮助用户快速实现基于密码学的安全应用。
需要注意的是,X-CUBE-CRYPTOLIB包含两种版本的算法库
(1) 基于纯软件实现的算法,支持所有STM32系统的MCU。
(2) 基于Crypto硬件加速的版本,仅支持带Crypto硬件单元的STM32系统MCU。
2.2.1 密码学基本原理
在信息通信过程中,如何确保信息安全不易被其他设备获取**,加密-解密是其中一个重要方式吧。
在加密-解密方式中分为三种:
对称性加解密机制。
非对称性加解密机制。
对称性加解密和非对称性加解密结合机制。
对称性加解密:
又称为对称密钥技术。该机制下,通信双方,A和B事先约好了一个共同的密钥。A把明文用该密钥加密后,发送给B。B拿到密文后,使用同样的密钥进行解密,得到A发送的明文。
该机制的优点是过程简单明了,并且算法的运算也很快。
缺点为:首先,A和B需要事先碰头,或者在一个安全的环境来约好这个密钥。通常对称加解密技术中采用的算法都是公开,保密的就是这个密钥。如果密码泄露,后面所有通信就不安全了。
另外,A和B通信要维护一个密钥,和C通信又要维护一个密钥,和N个人通信就要维护N个密钥。这实在是一项繁琐、不好管理的工作。
非对称性加解密:
加密和解密过程,使用的是不同的密钥。
每个人拥有一对自己的公钥和私钥。这个私钥了是需要保密的,只有自己知道。公钥是可以公开的,谁都可以拿到。A的公钥,B可以拿到,C也可以拿到,没有问题。 但是A发送信息到B前,先获取B的公钥,使用该公钥进行加密,加密后的密文只有B的私钥可以解密得到明文。
这种机制优点:每个人只需要维护好自己的那一对公丝密钥对,就可以和N个人安全的通信了。无需维护【对称密钥技术】里的N个密钥。
缺点:它运算复杂,效率不对前面的对称密钥技术。
对称性加解密和非对称性加解密结合:
在双方进行远程但是安全通信的应用中,对称密钥技术优点是运算快、效率高;非对称密钥技术是密钥易于管理和分发。我们可以取它们各自的优点。使用非对称加解密技术发送对称密钥;再使用对称加解密技术对大数据量的交互信息进行加解密,提高运算效率。
2.3 安全方案与安全服务
在物联网设备中,设备后期的软件升级都是通过远程升级的方式,怎么确保升级的固件是安全的,显得尤为重要。.
攻击物联网设备的一种常见方法就是利用固件更新的漏洞注入非法代码。因而,对于具有软件升级能力的设备,还需要确保每一次更新的过程依旧能够保证固件的可信性,也就是设备需要安全地进行固件升级。
安全固件升级需要考虑的因素包括
固件完整性和来源可靠性,确保固件来自可信的发布者且未经过篡改。
固件的保密性,防止在升级过程中固件内容被窃取。
固件版本防回滚,防止恶意的降级。
STM32在安全启动与安全固件方面,提供X-CUBE-SBSFU软件包。
该软件包提供的功能包括:
安全启动
安全固件更新
密钥管理功能
不同的校验和加密方式
注:X-CUBE-SBSFU已经支持的STM32系列芯片如下


信息安全的内容很丰富且很全面,还是需要一些时间来慢慢消化。我看到ST官网上有SBSFU的使用步骤,接下来我也尝试着把SBSFU固件使用到我的STML4板子上。



STM32密码学算法库用户手册.pdf

2.76 MB

X_CUBE_SBSFU安全启动和固件更新软件入门.pdf

7.2 MB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

39

帖子

0

粉丝