概述
对于一些注重安全性的应用程序,Arm提供了安全计算平台。
本文介绍了一些与安全相关的概念,只是一篇入门指南,为后续介绍其他安全相关技术奠定了基础。
本文仅作概述性介绍,如果您想了解更多信息,可以参考此主题的其他书籍和指南。
当阅读完本文时,你可以:
- 定义机密性、完整性和真实性,并给出实际示例
- 了解攻击分为哪些类
- 掌握如何使用不同的技术来保护安全系统
安全意味着什么
当谈论安全时,我们使用术语“资产”代表想要保护的事物。例如,加密密钥通常被归类为资产,让我们考虑一下这些资产的属性。
当考虑安全时,我们需要问自己一些问题:
- 我想保护什么?
- 我想要保护的东西是什么?
- 我要保护不受到谁伤害?
- 保护的东西有什么价值?
机密性
机密性是指谁可以查看、访问或者使用资产。我们希望控制对资产的访问,并阻止非授权的访问。实现机密性最常见的机制就是加密和访问控制。
你手机上的数据就进行了机密性保护。许多智能手机都有加密的文件系统,这样当你手机丢失时,可以对手机上的数据进行保护。只有当用户身份通过验证后,用于解密文件系统的密钥才可用。这里,使用加密技术来保护文件系统中数据的机密性,使用访问控制来保护解密密钥的机密性。
完整性
完整性是指保护资产的准确和完整。完整性可保护资产免遭未经授权的修改或检测是否已修改。
例如考虑一台拥有升级服务器公钥的设备。这个公钥不需要保密,因此我们不关心其机密性。然而,我们需要保证密钥不被替换或者篡改。替换密钥将允许攻击者进行恶意更新,密钥损坏将导致系统无法安装正确的更新。这种损坏将使系统遭受已知的攻击。
真实性
真实性是验证资产是否如其所声称的那样。
还是以上面一台拥有升级服务器公钥的设备进行举例。当设备从升级服务器下载软件更新时,我们需要确保升级更新是真实的。软件提供商使用其私钥对更新进行签名,并且设备可以使用对应公钥来验证签名。通过保证存储的公钥的完整性,设备可以检验软件更新的真实性。如果攻击者尝试替换更新,我们可以检测到并阻止安装。
可用性
可用性意味着授权用户可以按照预期的方式访问和使用资产。
拒绝服务攻击是阻止可用性的常见方式。通常,拒绝服务攻击涉及向系统发送虚假请求或数据。例如,拒绝服务攻击可能会向网站发送大量请求,导致该网站变得繁忙而无法为真正的用户提供服务。
可用性是指保证即使受到攻击,用户仍然可以访问和使用资产。
攻击系统
在本指南和相关指南中,我们使用以下术语:
- 漏洞:系统潜在的错误或弱点
- 漏洞利用:利用漏洞发起攻击
- 攻击者:也称为敌人,试图破坏资产的人
- 威胁:资产正被攻击者利用漏洞攻击
攻击类型
我们将攻击分为三大类:
- 软件攻击:软件攻击不需要在物理上访问设备。例如软件攻击有:从应用商店进行恶意下载程序或带有恶意附件的电子邮件。软件攻击的目标包括全世界任何地方的设备。例如,由于发送电子邮件的成本非常低,攻击者可以向数百万收件人发送带有恶意附件的电子邮件。即使这些攻击中只有一小部分成功,这也是值得的。软件攻击要么是非特权攻击,要么是特权攻击。上面描述的恶意电子邮件是非特权攻击。非特权攻击从用户空间发起,并试图利用操作系统中的漏洞来访问它不应该访问的资产。在特权攻击中,特权实体攻击是具有相似特权的另一个实体。例如,在一个处理器上以特权运行的软件可能会尝试破坏系统的其他部分。
- 基本硬件攻击:基本硬件攻击需要对设备进行物理访问,有时只是暂时的。这种类型的攻击被称为基本攻击,因为它需要工具,例如 JTAG 探针或逻辑分析仪。基本的硬件攻击可能涉及软件。软件攻击和基本硬件攻击之间的重要区别在于,基本硬件攻击需要对设备进行物理访问。如果需要对设备进行物理访问,则潜在可以攻击的目标设备数量会大大减少,这也会改变威胁状况。注意这种类型的攻击有时称为棚屋攻击。顾名思义,对于这种类型的攻击,您只需要在 RadioShack 商店购买工具,而不需要特别专业的工具。另一个基本硬件攻击的例子是evil maid attack。想象一下,您将笔记本电脑落在酒店房间里,冒充酒店客房服务人员的人可能会进入你的房间,往电脑插入 USB 设备。
- 高级硬件攻击:与基本硬件攻击一样,高级硬件攻击中的攻击者也需要对受攻击的设备进行物理访问。基本硬件攻击和高级硬件攻击之间的区别在于执行攻击所需的设备水平、知识和时间。例如高级硬件攻击有:将设备置于电子显微镜下或旁路分析。旁路分析如使用精确时序或功耗来推断设备正在执行的操作。高级硬件攻击在金钱和时间方面代价高昂。这意味着高级硬件攻击需要比其他类型的攻击更加集中,并且攻击者通常无法攻击太多设备。
这些分类对于讨论攻击十分有用,但并不只有这些固定的分类,另外攻击者可能一次使用多种攻击类型。
不同的攻击者
除了资产和攻击之外,我们还应该考虑谁在攻击系统。
很容易将攻击者想象为在⿊暗的房间里敲笔记本电脑键盘的人。但就像对资产和攻击那样,我们可以对攻击者进行分类。
有些攻击者是第三方。例如上面我们在软件攻击中提到的恶意电子邮件附件。
在其他时候,我们会保护系统免受用户的破坏。例如,数字版权管理 (DRM) 目的是保护媒体不受用户破坏。
威胁模型
威胁模型是将迄今为止讨论的所有想法组合在一起:
- 我们希望保护哪些资产?其中哪些资产是我们希望保护的?
- 谁是攻击者?他们如何攻击系统?
我们的威胁模型还应该考虑攻击和攻击者的不同组合。这种分析至关重要,因为它决定了我们可能采用何种防御策略。
不同的安全解决方案
如果攻击者有足够的时间和金钱,任何安全性都可以被破坏,因此我们不应该追求完美的安全性设计。相反,我们用术语“价值”来描述安全要求:对资产 B 的攻击 A 至少需要 Y 天和 Z 美元。如果一套防御对策让攻击者花费太长时间或成本太高,那么这种防御就是成功的。在这种情况下,大多数攻击者会转向其他目标 。
这意味着我们需要平衡以下因素:
- 资产价值:资产对我们有什么价值,对潜在攻击者有什么价值?我们对资产不同方面的评价是否不同?例如,我们可能希望保护资产的机密性和完整性,但我们可能更看重机密性而不是完整性。
- 防御成本:通常有多种方法可以保护资产。选择哪个防御方法取决于威胁模型。 我们考虑受保护内容的价值、攻击的可能性以及防御成本。
- 实用性和可用性:密码是实用性和可用性问题的一个例子。建议用户使用长而复杂的密码,并为每个系统使用唯一的密码。尽管长、复杂且唯一的密码更安全,但许多用户记不住并且无法管理它们。这意味着解决方案必须平衡安全需求与用户需求。
下图展示了Arm 架构中的不同安全特性,这些特性可用于保护系统中的不同资产。
![ARM安全简介_第1张图片](http://img.e-com-net.com/image/info8/c176e944b0204650bcb76a114d1a596f.jpg)
图中展示了不同的保护等级以及防御成本等级。系统设计人员确定最适合使用哪种技术来保护相应资产。
本系列的其他指南将更详细地介绍这些技术。
相关信息
以下是与本指南中的材料相关的一些资源:
- Arm架构和参考手册:查找本指南相关的技术手册和文档
- Arm社区:提出开发问题
- Arm安全公告:查找有关安全威胁以及工程师的回应
- 平台安全架构指南:了解特定示例并展示如何进行威胁分析。智能锁就是一个很好的例子。
下一步
本指南对安全概念进行了概述性介绍。我们已经了解了安全基础知识,现在可以学习以下指南中相关的安全技术:
- TrustZone for Armv8-A:本指南介绍了 Arm TrustZone 技术。Arm TrustZone 技术通过 CPU 中内置的硬件强制隔离,提供了一种高效的全系统安全方法。
- Providing protection for complex software:本指南探讨了Arm架构针对软件攻击提供的保护方法,包括身份认证、分支目标识别和内存标记。该指南介绍了缓解Jump-Orientated Programming和Return-Orientated Programming攻击的特性。
欢迎关注“安全有理”微信公众号。
![安全有理](http://img.e-com-net.com/image/info8/4811209d04b24a0296118ef96bd73d44.jpg)