嵌入式系统安全、测试、问题跟踪及可靠性保障全解析
1. 嵌入式系统安全概述
嵌入式系统开发者必须重视安全问题,因为系统很可能会受到攻击。安全涵盖了多个方面,不同应用领域的嵌入式系统对这些方面的侧重点有所不同。
1.1 安全的各个方面
- 保密性(Secrecy) :防止他人获取信息。在网络通信中主要通过加密实现,在嵌入式系统中还涉及攻击者能否通过物理访问设备进行逆向工程来恢复秘密信息。
- 认证(Authentication) :确保只有授权实体能够操作系统。对于用户界面,经典做法是使用密码作为登录系统的一部分;对于网络,可以通过特定的加密方式或安全消息认证码来实现。
- 完整性(Integrity) :确保数据或系统未被篡改。对于网络消息和内存内容,可以通过与安全认证码对比数据来发现篡改情况。加密有时有帮助,但数据完整性检查很重要,以确保加密消息未被破坏。
- 隐私(Privacy) :确保用户数据不被泄露。与保密性不同,很多情况下希望将数据透露给可信方,但不将数据与用户关联起来。例如,汽车制造商可能想收集汽车的典型行驶速度数据,但不收集特定个人的驾驶习惯信息。隐私的概念因文化和国家历史而异。
- 可用性(Availability) :确保系统提供的服务在受到攻击时仍能可用。联网系统可能遭受拒绝服务攻击,在提供安全服务的嵌入式系统中,拒绝服务攻击可能导致不安全情况。相关攻击还包括耗尽电池供电系统的电