历史上的今天
返回首页

历史上的今天

今天是:2026年02月28日(星期六)

正在发生

2023年02月28日 | 安全启动 - STM32安全启动应用

2023-02-28 来源:zhihu

安全启动实现了信任根。为了整体安全的需要,需要将信任传递到下一级。这个信任传递是通过加解密技术完成的。

在启动时,我们要至少保证下一级固件的完整可靠性。意味着,我们要使用认证技术,对用户固件进行验证。对用户固件进行验证可以使用哈希函数,也可以使用基于对称密钥的验证码 AES-GCM。

系统在安全启动前,需要保存已经烧录到 Flash 里的用户固件的哈希值。这个哈希值,通过前面所提到的 STM32 安全技术,保证它不会被内外攻击所改变。

系统在安全启动时,利用前面所构造的安全执行环境,对需要进一步执行的用户固件,进行一个哈希运算。哈希运算一般是采用 SHA256。

系统比较这两个值。如果计算出来的哈希值,与存储的哈希值相同,我们认为没有人对用户固件进行了改动。安全启动这时可以执行一个敏感信息的清理工作。如果有可能,可以将安全启动部分设置成不可访问,然后就放心大胆地跳转到用户固件去执行。

如果哈希值验证不通过,则系统直接重启。

对于 AES-GCM 来计算固件的验证码,也与算 SHA256 相同,都是对固件重新计算出一个值,然后与保存的值进行比较。


可重用的安全引擎

前面提到 STM32 SBSFU 将一些安全高度敏感的操作,包装在安全引擎里。这些安全高度敏感操作包括从安全引擎的初始化,从 Flash 中读取密钥、读写固件、进行加解密运算,像AES、ECDSA,还有从 Flash 中读些安全相关关的参数。

安全引擎是安全启动的核心可信代码,需要多项 STM32 平台的安全保护技术来综合保护,例如 Firewall 或者 MPU。安全引擎对外提供单一入口。在调用返回前,清理敏感信息。安全引擎也可以被用户固件调用。对用户固件来说,安全引擎是安全服务提供方。


安全启动在智能锁中的应用

对于某个特定的应用,只要资源不是受限制,那么安全启动的功能总是应该相似的。对于智能锁,我们可以直接应用 STM32 SBSFU。在编译 STM32 SBSFU 工程文件前,需要准备 python 环境。Python 环境是为了对密钥进行转化以及为固件更新所需要的对固件进行封装。


STM32 用户拿到 STM32 SBSFU 开发包时,一般会包含三个工程。

① 中间件 SE 安全引擎 Project:该工程是安全启动的核心可信代码,包括受信任的代码和密钥。密钥可以是对称密钥或者椭圆曲线 ECC 公钥。防火墙的调用门机制就是在该工程中实现。该工程输出的固件,会集成到安全启动与安全固件更新工程中去。

② 安全启动与安全固件更新 Project:该工程配置安全防护措施,集成安全引擎。该工程同时对外输出安全引擎的符号文件,供用户固件使用。

③ 用户固件工程Project:这是一个固件示例。

用户仅需要依次对这三个工程编译就可以了。在安全启动与安全固件手册更新有详细的一步一步操作说明。


前面提到 STM32 安全启动对外提供了受安全保护的安全引擎。用户程序的加解密操作,若需要比较高安全的服务,可以考虑使用安全引擎所提供的加解密服务。即使安全引擎中的服务不能满足需要,也可以考虑扩展安全引擎的功能。这个扩展不影响安全引擎的安全防护能力。


推荐阅读

史海拾趣

aconno公司的发展小趣事

在追求经济效益的同时,aconno公司也积极履行社会责任,致力于实现可持续发展。公司注重环保和节能,采用环保材料和工艺,减少生产过程中的污染排放。此外,aconno还积极参与社会公益事业,为弱势群体提供帮助和支持。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上便是关于aconno公司在电子行业中发展起来的5个相关故事。这些故事展示了aconno在创新、品质、市场、人才和社会责任等方面的努力和成就,为公司的长远发展奠定了坚实的基础。

CoolerMaster公司的发展小趣事

1992年,台北的一间出租屋内,林仁政凭借对电脑硬件的深厚理解与直觉,创立了讯凯国际股份有限公司,即现今广为人知的Cooler Master。初期,公司以生产个人电脑用散热器起家,目标明确——提供业界最好的散热方案。在没有资金、没有支持的情况下,林仁政独自完成了品牌的创建、日常事务的处理以及工作进程的管理。他的坚持与努力,使得Cooler Master逐渐在市场中站稳脚跟,开启了其在散热领域的传奇之旅。

Engineered Components Co公司的发展小趣事

在追求经济效益的同时,ECC也注重可持续发展和环保责任。他们积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。ECC还投入资金建设了废水处理设施和废气处理设备,确保生产过程中的废弃物得到有效处理。此外,ECC还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了ECC的社会责任感,也为公司的长期发展奠定了坚实的基础。

全鹏(CHAMPION)公司的发展小趣事

在2003年,全鹏公司成为巴西Coletek集团的一员,开始了其在南美洲市场的征程。起初,全鹏在巴西设立了提供系统组装所需机壳、键盘、鼠标、喇叭等配件的组装工厂,以满足当地市场的初步需求。随着业务的不断扩大,全鹏在2004年与当地市政府合作,规划并建设了一座总厂房面积达8000平方公尺的新工厂,配置了六条组装生产线和两条印刷生产线,以及一个发货仓库。这座新工厂迅速成为全鹏在巴西市场的发货中心,推动了全鹏在当地的业务增长。

高博(GBG)公司的发展小趣事

谷峰电子有限公司的故事始于1995年,当时公司在香港成立,标志着其半导体元器件研发与销售的起点。初期,面对激烈的市场竞争和技术挑战,谷峰团队凭借对半导体技术的深刻理解和对市场需求的敏锐洞察,逐步确立了以功率MOSFET为核心产品的战略方向。2000年,谷峰在深圳设立分公司,进一步扩大了其研发和销售网络,为公司的快速发展奠定了坚实基础。

General Electric Company公司的发展小趣事
根据应用需求设计合适的电路,注意电源滤波、信号隔离和保护措施等。

问答坊 | AI 解惑

大功率开关电源中功率MOSFET的驱动技术

功率MOSFET具有导通电阻低、负载电流大的优点,因而非常适合用作开关电源(switch-mode power supplies,SMPS)的整流组件,不过,在选用MOSFET时有一些注意事项。  功率MOSFET和双极型晶体管不同,它的栅极电容比较大,在导通之前要先对该电容充 ...…

查看全部问答>

LCD驱动的开发流程是怎么样的.从上层->内核->硬件是怎样一个过程,有哪位大虾帮一下.谢谢罗!!!!

LCD驱动的开发流程是怎么样的?从上层->内核->硬件是怎样一个过程,有哪位大虾帮一下.谢谢罗!!!!…

查看全部问答>

电脑声卡测试问题,求助大家

一台电脑出厂时候,需要进行耳机和麦克风测试:是否能正常输出声音与输入,现在想改进以前的测试方式,可否将耳机与麦的两者的接口直接用一跟线连接起形成一简单的工作回路测试(耳机与麦都是3pin脚),直接将耳机的输出信号当作麦克风的输入信号,并保存成 ...…

查看全部问答>

WinDbg 與 Virtual PC 聯合使用的問題

使用WinDbg與Virtual PC調試驅動程序時,如果讓Virtual PC停止全速運\行進行單步調試時,Virtual PC會占用100%的CPU資源,宿主電腦會運\行得很慢,請問這個有辦法解決嗎?…

查看全部问答>

调试stm32时经常出现"FlashDownloadFailed-"Cortex-M3"

MDK中出现 Error: Flash download failed-"Cortex-M3"的原因及解决办法 出现这处问题通常是MDK中的Flash的编程算法没有配置或没有配置正确, 在主菜单中打开Flash->Configure Falsh Tools配置窗口,切换到“Utilities"页。 按“S ...…

查看全部问答>

Zstack例程生成hex文件操作方法

这里以SerialApp例程为例,说明如何生成正确的hex文件,其他例程操作法类似。 …

查看全部问答>

编程问题··

用89C52用控制三个超声波测距,程序怎么弄??急····我有主程序,或者可以帮我改改···…

查看全部问答>

实现电压控制放大倍数问题

请教大家怎么才能用场效应管做运放的反馈电阻来实现电压控制放大倍数?…

查看全部问答>

多路输出变压器的变压比怎么计算

最近刚开始接触开关电源,发现反激式开关电源电路中的变压器经常是多路输出的,那么每一路的输出电压与出入电压比值是不是每一路副边线圈与原边的匝数比啊,反馈绕组是不是也一样啊,我也按照这种方法计算过,发现实际值和计算的不一样啊,这个问题 ...…

查看全部问答>

电阻科技名字解释

阻抗-科技名词定义 中文名称:阻抗 英文名称:impedance 定义:在正弦电流电路中,电路的端电压除以通过的电流。   在具有电阻、电感和电容的电路里,对交流电所起的阻碍作用叫做阻抗。阻抗常用Z表示,是一个复数,实部称为电 ...…

查看全部问答>