在现代社会中,嵌入式设备已经无处不在,从我们日常生活中的智能家居,到工业控制、医疗设备等各个行业,嵌入式设备的应用层出不穷。
那么,嵌入式设备的功能安全和信息安全究竟有什么不同,又如何保证它们在实际应用中的实现呢?

什么是功能安全?
功能安全主要侧重于确保设备在遭遇故障或异常情况下仍能以安全的方式运行,防止对环境和人员造成危害。它注重的是系统的容错能力与安全防护,通常通过冗余设计、故障检测与自恢复机制来实现。
在一些关键领域,如汽车、工业控制和医疗设备,功能安全至关重要。例如,在汽车领域,如果车载嵌入式系统发生故障,可能会导致制动系统失效,造成严重的交通事故。

功能安全其实比较好理解,功能安全的核心在于确保系统在预期的运行环境中,即使遇到故障也能保持安全状态或进入安全的失效模式。这不仅涉及到硬件的设计,还包括软件的开发、测试和验证。为了实现功能安全,工程师们需要进行全面的风险评估,识别潜在的危险场景,并采取相应的措施来降低风险,确保系统的可靠性和安全性。
什么是信息安全
与功能安全关注设备在发生故障时如何确保系统的正确性不同,信息安全则侧重于保护设备在操作过程中处理的数据,防止数据泄露、篡改和非法访问。信息安全不仅关系到数据的保密性,还涉及数据的完整性和可用性。
在嵌入式设备中,信息安全是特别重要的,因为这些设备往往需要连接到网络,容易成为黑客攻击的目标。例如,智能家居设备可能会泄露用户的私人信息,工业控制设备可能被黑客入侵,导致生产线停运或设备损坏。

时事分享: 2015年,某款汽车发生了一起信息安全漏洞召回事件,标志着汽车信息安全的一个重要转折点。两名白帽黑客通过无线通信成功连接到该车的车联网系统,进而攻破了与车联网系统连接的CAN总线网络,获得了向该系统发送指令的权限。
这使他们能够控制汽车的发动机、变速箱、刹车和转向等关键系统。由于此次入侵并未通过OBD等物理接口进行,而是通过无线连接进行的,这一事件引发了社会对汽车信息安全的广泛关注。
心血漏洞事件还原
心血漏洞于 2014 年 4 月首次向公众披露,号称本世纪最严重的安全漏洞事件,涉及全球三分之二的网站。事情的起因在于被各大网站广泛使用的开源网络通信加密协议 OpenSSL。
其原理是当使用基于 OpenSSL 通信的双方建立安全连接后,客户端需要不断的发送心跳信息(如固定长度的字符串)到服务器,服务器接收后返回该固定长度的字符串, 从而确认服务器是可用的。
客户端向服务器发送的心跳信息包含了数据长度和待传输数据信息,理论上服务器端 OpenSSL 应该回传与该数据长度一致的信息。然而由于 OpenSSL 代码的缺陷(漏洞),客户端可以从服务器获取远超其权限内容的数据信息,其中有可能就包含如信用卡账号和密码等敏感信息。
我们用一段简化程序(注1)来模拟这个过程,在以下程序中代码 1 处构建了客户端发送的心跳信息,但是数据长度信息(100)大于实际有效数据(4,即'data'),代码 2 处和 OpenSSL 协议类似使用 memcpy 函数将与数据长度信息一致的数据写入回传数据包中。

程序运行结果如下,我们看到回传的数据包含了心跳包数据之外的信息,成为安全漏洞的来源。

来源:MATLAB 版权归原作者所有,如有侵权,请联系删除。
常见的功能安全与信息安全规范
在现代工业和信息技术领域,功能安全与信息安全变得至关重要。为了确保系统和设备的安全性和可靠性,国际上制定了一系列规范和标准。
功能安全规范
功能安全主要关注系统或设备在发生故障时仍能保持安全状态的能力。常见的功能安全规范包括:
- ISO 26262:针对汽车行业的功能安全标准,涵盖了从概念设计到生产、操作、服务和退役的整个生命周期。
- IEC 61508:适用于电气/电子/可编程电子安全相关系统的国际标准,定义了安全完整性等级(SIL),并提供了系统生命周期内的安全要求。
- EN 50126/8/9:针对铁路应用的功能安全标准,涵盖了铁路信号、控制和通信系统的设计、实施和验证。
信息安全规范
信息安全则侧重于保护信息的机密性、完整性和可用性。常见的信息安全规范包括:
- ISO/IEC 27001:国际信息安全管理体系标准,提供了建立、实施、维护和持续改进信息安全管理体系的要求。
- ISO/IEC 27002:为ISO/IEC 27001提供了具体的信息安全控制措施和指南,帮助组织选择适当的安全控制措施。
- GDPR(通用数据保护条例):欧盟制定的数据保护法规,旨在保护个人数据的隐私和安全,适用于所有处理欧盟居民个人数据的组织。
- NIST SP 800系列:美国国家标准与技术研究院发布的安全标准和指南,涵盖了信息安全的多个方面,如风险管理、加密技术等。
这些规范和标准为不同行业的功能安全和信息安全提供了指导,确保系统和设备在设计、开发、部署和运行过程中能够满足相应的安全要求。
软件工程师必看
在嵌入式系统的开发中,功能安全和信息安全是密切相关的,需要从设计阶段就考虑到。应确保安全性融入系统的整体设计,遵循行业标准,进行全面的风险评估。
功能安全要求对系统进行冗余设计、故障检测和自恢复机制,而信息安全则需要加密、认证和身份验证等措施来保护数据的机密性和完整性。在开发过程中,要进行充分的安全性验证和测试,包括功能安全的验证和信息安全的渗透测试,及时发现和修复潜在的漏洞。

与此同时,安全设计需要平衡性能与安全性,避免因过度安全措施导致系统性能受损。此外,随着新技术和攻击方式的出现,保持对安全领域的关注并及时更新防护策略是至关重要的。团队成员也应定期接受培训,确保对安全设计有充分的理解,进行有效的协作,确保设计的安全性贯穿整个系统生命周期。