在设计安全性时,操作环境需要确定所需的健壮程度。安全体系结构不仅必须包括目标设备,还必须包括整个系统内的所有端点和用户。尽管有序列号,MAC地址,白名单和黑名单-这些设计并非万无一失。大多数嵌入式黑客都是通过监视网络流量以逆向工程命令,然后从其他地方重放相同或修改的版本来实现的。
在物联网世界中,除非另有证明,否则每个人都是陌生人。即使是专用网络,也容易遭受数据泄露的侵害,并且与互联网一样脆弱。如果没有安全的网络,则必须对所有远程端点进行身份验证,然后才能信任命令和数据。从人到计算机的过渡,一个秘密词的等价物是关键。使用秘密密钥的设计在较小的环境中可能是可行的,但是随着设备数量的增加,保护这些密钥的复杂性和成本也随之增加。如果秘密密钥是由于单个设备的泄露而暴露的,那么环境中的所有其他系统都容易受到攻击,无法将陌生人与受信任的系统区分开。
用户名和密码有助于动态生成唯一的私钥,这些私钥可按需输入,而无需存储在非易失性存储器中,从而降低了泄露风险。尽管这在某些环境中可行,但许多产品没有用户的概念,必须在开机时立即安全地运行。这些环境需要两个端点之间的共享密钥来进行身份验证和加密。但是密钥如何进入系统?在军事环境中,称为密钥填充设备的特殊手持计算机用于物理加载秘密密钥。系统设计有“填充端口”以接受密钥,因此它们永远不会暴露。密钥填充设备和密钥管理系统会在分发期间保护密钥,直到安全地将其存储在设备的安全范围内为止。
公钥加密通过为每个端点提供一个唯一的非对称密钥对来用于加密和身份验证,简化了共享密钥的复杂性。最佳实践安全性永远不要对两者使用相同的密钥。如果端点受到威胁并暴露了私钥,则该漏洞仅限于该系统。
非对称加密允许端点安全地通信,而无需预共享密钥。但是,设备如何知道它是否在安全地与正确的端点通信?证书用于防止在交换公共密钥期间进行中间人攻击,并证明远程端点的身份。在最基本的形式中,证书由元数据组成,包括名称,序列号,有效期数据等。通过来自证书颁发机构(CA)的数字签名绑定到公钥。使用相互身份验证,设备将永远不会尝试处理传入的命令,除非来自有效来源。公司物联网服务也受到保护,因为它们也只响应经过适当认证的设备。
当两个系统交换证书时,如果公钥都由同一CA进行数字签名,则可以信任公钥。由于两个系统都信任CA,因此可以在不损害私钥的前提下将信任扩展到远程系统。身份验证和信任后,软件可以读取证书以确定要采取的措施或要使用的系统功能。这允许根据技术人员的培训水平,在有限的时间内触发设备进入调试模式。
证书管理
存在几种证书生成和管理设计,以帮助嵌入式系统开发人员将数字身份整合到他们的产品中。IEEE 802.1ar规范越来越多地用于嵌入式产品,例如网络和工业控制系统。802.1ar解决了单个iDevID和多个LDevID证书的管理和使用。iDevID证书也称为“出生证书”-用于标识系统,板或组件的制造商。这通常是系统上的第一个证书,并且在制造过程中生成。LDevID的用途因环境而异。例如,在一种产品中,可以创建LDevID证书来保护客户资料和数据。在另一个示例中,可以将板出售给多个集成商,每个人都希望从竞争中脱颖而出。电路板制造商希望推出安全的软件更新并收集远程信息处理,但集成商希望保护其知识产权。可以为每个集成商生成LDevID证书,以便他们可以在自己的本地区域内安全地进行通信并保护其数据而不会受到损害。
将证书合并到嵌入式设计中时,开发人员和制造商必须考虑以下因素:
将根CA证书编程到不可变的内存中-防止攻击者将其替换为其他东西
越来越多的产品开发人员正在构建自己的公钥基础结构(PKI),并在组装线上生成证书,私钥可以保留在每个设备中,并且生产不受Internet中断的影响。由INTEGRITY Security Services开发的设备生命周期管理(DLM)系统可保护公司的CA密钥免受IT网络的攻击,该IT网络易受远程和第三方生产站点数据泄露的影响,从而生成高可用性证书。DLM支持希望合并针对其设计和供应链量身定制的证书的开发人员,而无需构建和支持自己的PKI。
身份验证讨论中最重要的考虑因素是,如果我们不信任自己,我们如何才能信任他人?不幸的是,这不是一个哲学问题。如果系统软件遭到破坏,则信任链从一开始就被破坏,无法保证任何事情。被黑客入侵的软件可以跳过验证,接受任何证书以及修改邮件内容。如果密钥没有得到适当的保护,则可能会受到威胁,并且无法通过操纵命令和数据来攻击其他设备。可以打开后门以收集和发送数据,从而使任何安全性设计和身份验证方案毫无意义。
在嵌入式系统可以信任自己对远程端点进行身份验证之前,它必须检查软件是否已被修改。这是通过称为安全启动的过程来完成的,该过程在执行之前先对系统软件进行验证。每次开机时,安全启动都会在允许其执行之前检查每个软件层的真实性。这样可以确保软件没有被破坏并且来自有效来源。除非证明可信任,否则组件永远不会执行。
哈希和校验和仅验证软件的完整性,而不能验证其真实性。只要攻击者随代码一起修改哈希,恶意软件仍然可以执行而不会被检测到。身份验证来自使用非对称密钥对哈希进行数字签名。公司的安全基础结构保护私钥,并对发布软件进行数字签名。相应的公钥在制造过程中被编程到设备中,并在验证过程中使用。现在,如果攻击者同时更改了代码和哈希,那么他们就无法在没有相应的私钥重新生成数字签名的情况下更新数字签名。INTEGRITY Security Services与各行各业的公司合作,以部署安全的启动解决方案,包括数字签名基础架构,
当今联网的物联网产品的安全架构必须解决比以往更多的未知数。随着每台新设备添加到网络中,都会带来额外的未知威胁和冲突风险,从而导致支持和开发成本。通过身份验证控制仅与受信任端点的通信,可以减轻这些未知数。从硬件开始验证软件,然后再进行远程扩展,保留了信任链。