对于电子系统的安全设计,听到较多的是软件安全,而对应硬件安全,知道的是IC烧录加密,防止他人恶意破解,以及其它的一些电气安全方面的情况。
为此我百度了下网络,主要有以下几点:
1、对芯片的安全设计,电路设置密钥/激活,对总线加锁/解锁方式,结合(物理不可克隆功能)PUF技术,比如有maxim的DS28E38芯片;
2、外设的安全,以RSA检验为基础;(这点描述有点不理解)
3、基于功能安全的硬件设计几点,a)硬件设计检查;b)考虑异常情况,短路/开路,过流/过压;c)自诊断相关输入;d)降低单点失效率;e)故障注入测试。
某网站上某公司招聘的《硬件安全工程师》
----------【
硬件安全工程师
职责:
1. 参与公司硬件产品架构的安全设计。
2. 参与公司硬件产品的安全渗透测试,包括代码审计、漏洞挖掘、提供修复建议等。
3. 参与IOT行业最新的安全漏洞的研究和跟踪。
要求:
1. 2年以上相关安全行业工作经验。
2. 有嵌入式开发或智能硬件安全分析相关项目经验,熟悉一种以上的嵌入式系统。
3. 熟悉硬件开发和调试流程
4. 熟悉WIFI、蓝牙、zigbee、串口安全知识。
5. 熟悉逆向工程,会使用IDA等逆向分析工具
6. 有固件分析和修改经验。
7. 从事iOT相关领域或者就职过知名安全产商等优先考虑。
】-----
某公司可以进行硬件安全检测并给出安全解决方案
下面我们来看看某款汽车产品的硬件安全设计
T-BOX产品安全设计分析
- 选择具有一定功能安全特性的汽车级主控MCU(R7F7010453AFP#AA2),满足ASIL B的认证等级,功能安全包括:时钟监测、窗口看门狗定时器、数据CRC校验,存储保护单元,系统寄存器保护,上电清零,片上核心电压监控及寄存器写保护等功能。
内部还有一个ICUS(Intelligent Cryptographic Unit “Slave”)智能加密单元,该ICUS模块由状态机、RAM、AESS和TRNG及外部的Data Flash组成,在硬件上实现AES-128位加密/解密和真实随机数发生器(TRNG)功能,同时为代码和数据真实性完整性提供了128位AES CMACs,另外具有安全启动功能,支持基于设备ID号的软件个性化设计。受保护的数据Flash存储器可用于存储设备ID号及安全密钥。基本上覆盖目前OEDM厂商99%的功能安全需求。
- 外加高安全等级的硬件加密模块
软件方面:身份鉴别(密钥管理,一车一密)、访问控制(防范通信端口的数据包被逆向分析破解,T-BOX内部数据逆向分析破解,外部通信接口进行隔离,防止非法终端接入、非法数据注入等)、安全审计(进行日志、数据等内容等待审计和安全检测)等方面考虑,可根据国家相关标准GB/T 30290.2-2013来做。
看看智能门锁的安全
智能门锁的安全
https://zhuanlan.zhihu.com/p/51622073
芯片未做加密保护,容易被拆解提取固件,拆下芯片通过调试器直接读取锁具固件
芯片固件存在逻辑算法漏洞,没有进行严格的代码审计,存在代码层的安全漏洞
对于固件更新,没有进行签名和完整性检验,可以对固件进行修改和重打包。空中升级固件,加密算法强度不够,抵御不了高阶的侧信道攻击。
单片机的固件提取
http://blog.nsfocus.net/firmware-extraction/
1、利用bootloader提取,串口 MCUISP软件,
2、利用硬件调试接口,例如JTAG,SWD,接口,
防止固件提取的方式,对于MCU内部Flash的情况,通过编程的方式,把flash区域设置为读保护状态;而外部Flash的固件基本上都可以读取。
对于外部Flash,可以用电路设计保护起来,设计在线检测电路,一旦发现Flash芯片的引脚出现断线,立即进行强电攻击,将Flash芯片破坏掉。
最后:
硬件安全注意方面:
- 硬件产品架构安全设计
- 代码审计、漏洞挖掘、提供修复建议
- 通信接口的安全
- 硬件固件提取、固件解包、固件二进制逆向
- IDA逆向分析工具