HSM 作用
包含两个部分:
- Security building blocks负责加密/解密的硬件操作;
- Logical building blocks负责与Application ECU交互数据以及软件的加密/解密操作;
HSM 最重要的作用是安全边界, 和trustzone的机制类似, 提供安全的物理隔离能力, 安全rom和安全ram 无法被外部cpu 访问, 即使外部cpu 环境被破解, 也能保证hsm 运行的内容无法被探知. 当前的hsm产品中大多是过了FIPS 140-2 level3 标准的.
密钥存储/派生/权限管控/交换机制处于hsm内部(授信环境), 密钥存于安全rom或安全ram中, 无法被外部拿到.
与 只有硬件安全ip 加 otp 方案的对比
- 该方案密钥即使可以通过otp 管控密钥无法被外界拿到, 但也存在无法灵活配置, 很难做到密钥派生/密钥交换类似的需求, 在main域或其他域上的密钥更换是非常频繁的, 频繁的更换密钥能够保证前向安全(即如果密钥被泄露, 那hack 监听到的以往的数据都会变得不再安全)和重放攻击等. 比如https中使用的ssl/tls 加密机制, 每次建立连接后都是使用的新的密钥
- 芯片的安全ip采用的算法往往是对外公开的, 没有秘密可言. 相当于说是这种方案其实只有硬解加速的作用, 一旦密钥被探知, 那整个安全链路系统是非常脆弱的.
- hsm上执行的程序, 中间过程会锁在安全rom 安全ram内, 这种hsm 上跑的软件上层的机制其实也是安全的. 而只有安全ip的方案, 无论是做驱动还是什么都可以被探知破解.
HSM在智能汽车中应用的场景
烧写固件/ota 升级时对固件的加密及认证, 即secureboot 安全链路; 加密保证了固件的知识产权, 而认证的作用是防篡改。 尤其是对控制网中网关等固件的防护尤为重要。hsm的加入使破解及篡改secureboot防护的安全链路下的固件变得异常困难。
现在智能汽车开始向多域集成式发展, 发往核心控制网(汽车控制相关的, 如发动机 踏板 转向)等的消息应该被安全加密认证, 如核心控制网与智能座舱域, 与娱乐系统域等的连接, 而网关作为消息中枢系统, 其上面的消息处理转发重打包的机制更是应该被进行安全的控制, 在这一层上hsm的作用是非常明显的。
hsm 的存在也使多个域都可以使用, 如果只是嵌入到一个域上, 如main域可能有类似trustzone的机制, 那其他域是无法利用的。
CAN FD 消息的防护
当前传统CAN消息因为只有crc 的校验, 一个消息只有8个字节, 传统的can 安全是非常脆弱的
博世在AutoSAR中补充了全称为Secure Onboard Communication(SecOC)的组件,为传统的CAN总线引入了一套通信认证的方法。SecOC的核心思想在于通信认证,但是不涉及报文加密。这一套通信认证的方案, 保证了报文不能被hack 伪造 重放, 这套方案其实是为CAN FD 准备的, 认证信息的强度和信息长度强相关,可传统CAN报文的负载8个字节,真要搭载SecOC,可以说是既得不到预想的信息安全强度,又牺牲了相当大的CAN通信能力。
使用hsm 来实现secoc, 保证认证MAC 所需的密钥, 新鲜度值(单调计数器) 在hsm内部, 黑产无法拿到, 加强了防护能力, 进一步保证了hack 即使破解了车厂自定义的 can fd报文, 也无法伪造重放注入can fd消息
如果不能使用canfd, 或者未实现secoc, 那核心控制网的安全防护会变得更加重要, 如果没有防护好, 一旦通过其他域或控制网本身的漏洞攻入控制系统, 在只有传统can网络下, 控制网会是不设防的状态.
附录: 车载CAN总线网络安全问题
车载CAN总线安全漏洞主要可归纳为以下几个方面:
(1)缺乏足够的安全保护。目前CAN总线缺乏必要的安全保护, 以确保信息的保密性、完整性、可用性、真实性和不可抵赖性。CAN总线上的消息可以被总线上任意节点读取, 并且没有任何消息认证码(MAC)或数字签名保护。
(2)弱认证。对ECU进行固件修改时使用口令(Password)等弱认证技术。
(3)CAN协议滥用。拒绝服务攻击(DoS)可以通过总线仲裁机制进行, 如果攻击者使用最高优先级发送数据, 那么其他ECU将无法使用总线。还有形成恶意的错误帧消息, 也可以使ECU从总线上断开。
(4)消息泄露。通过常规诊断接口, 如OBDⅡ 、K线或L线即可掌握车辆运行时的信息。随意使用OBD软件也存在潜在的安全隐患, OBD模块通常会存储访问控制ECU的指令。
目前OBD应用的安全风险尤其值得关注。OBDⅡ 的标准诊断接口中, CAN总线引脚定义非常明确, 黑客很容易找到切入车载CAN总线网络的入口。通常汽车制造商会通过登陆密钥、隐瞒接口、请求验证等方式严格限制OBD口写入命令, 但这些手段仍属于弱认证, 并不能保证网络信息的安全性。国内OBD应用和车联网方案近年来的发展超出预期, OBD应用的安全性也受到质疑。这些OBD应用的功能从可以实现自动升窗、落锁的简单功能, 到可以实时监测车辆信息, 分析后通过手机APP以图形化的形式展示给驾驶员, 甚至直接将车辆信息实时同步到云端存储。而OBD应用这种类型的第三方改装设备的安全性不能得到保障, 很容易出现软硬件漏洞。
攻击方式
针对车载CAN总线网络, 攻击者可以丢弃、修改和读取发送至总线上的信息, 在源节点和目标节点间进行欺骗攻击, 此外还可以进行洪泛、重放攻击。
(1)丢弃(Drop):可用性攻击。例如一个控制了车载总线中某个网关的入侵者可以删除或不转发某些消息, 致使ECU一些功能失效。
(2)修改(Modify):通过入侵或截断总线中某个网关, 可以修改从该网关转发的消息。
(3)读取(Read):任何连接到总线的节点都可以读取总线消息, 可以是一个独立的监听装置, 也可能是一个被入侵的节点。一旦有密钥或私人信息在总线上发出, 就会被入侵者读取。
(4)欺骗(Spoof):任何被入侵的节点都可以发送错误消息、诊断信息, 使总线上ECU对事件进行响应, 消耗ECU的处理器资源。
(5)洪泛(Flood):入侵者控制任意ECU即可向其所在网络发送高速率洪泛消息报文。
(6)重放(Replay):入侵者控制任意ECU, 任何被记录的消息和消息发起的事件, 均可以在任意时间重放到网络中。
应用困难
尽管研究人员在努力尝试保护汽车信息安全, 但是其中绝大多数方法并不能立刻应用到实际的车辆当中, 主要的障碍有以下几方面:
(1)认证机制推广阻力大。认证协议对CAN协议包格式进行了重新定义, 这意味着对几乎所有车辆底层系统进行修改, 而OEM对这种改变十分谨慎。并且大部分的研究显示, 对CAN总线通信进行加密后会产生延时, 从而无法满足原有总线的实时需求。
(2)使用CAN-FD(CAN with flexible data rate)协议进行安全认证的方法, CAN-FD比传统CAN协议拥有更高的传输速率, 更小的控制位开销, 并且每个数据帧可以携带最多64个字节的数据。虽然CAN-FD优势明显, 但是在OEM看来离实际商用的距离还远。
(3)认证协议适用的网络节点数量不能达到实际车辆应用要求。即使使用16位处理芯片、轻量32位MAC的加密协议, 其在CAN总线上实施的开销仍然巨大, 而实际车载CAN总线网络不论是节点的数量还是网络复杂度都远远超过实验场景。
(4)新协议在旧车型上的应用问题。由于汽车是一种耐用商品, 通常一辆汽车的寿命可以达到几十年, 这些车辆在出厂时可能没有信息安全方面的防护装置, 而在使用过程中, 新的总线协议也许无法应用于这些车辆。
附录 hsm 芯片抗物理攻击能力
针对芯片的安全攻击测试技术,主要包括主动与被动两类:
主动攻击测试:测试者对芯片的输入或运行环境进行控制,使安全芯片运行行为出现异常,在这种情况下,通过分析芯片工作的异常行为,获得芯片内的密钥等关键敏感信息。主动攻击常用故障注入的方式,包括电磁、激光、红外、高电压注入等测试方法。
被动攻击测试:测试者令芯片等密码设备大多数情况下按照其规范运行,甚至完全按照其规范运行。在这种情况下,通过观测芯片的物理特性(如执行时间、能量消耗等),测试者可能获得密钥等关键敏感信息。被动测试常用方式为侧信道攻击,包括分析芯片的时序、功率、电磁辐射等信号特征。
芯片的安全测试需要专业设备与专业人员,测试执行方式主要包括非侵入式、半侵入式和侵入式三类,详细情况见表格4:
分类 | 描述 | 特点 |
---|---|---|
非侵入式 | 使用通用型设备或者工具(如JTAG工具、存储芯片读取工具和逻辑分析仪等),设备价格低廉。需要人员遵照规范性流程测试,并具备基础芯片和电路知识。 | 测试对芯片不造成破坏,确保芯片防范非侵入式攻击,现实中受此类安全威胁概率最大。 |
半侵入式 | 使用专业设备(如研磨器、激光器等),设备价格中等,需要人员具备一定专业芯片设计知识。 | 测试可对芯片造成破坏,确保芯片防范半侵入式攻击,现实中受此类安全威胁概率较大。 |
侵入式 | 使用非常专业的芯片分析工具(如FIB、电镜等),设备价格高昂,对测试人员专业性要求最高 | 测试可对芯片造成不可逆转的破坏,确保芯片防范侵入式攻击,现实中受侵入式攻击的安全威胁概率较小。 |
表格4安全芯片安全测试方式