Security介绍

发布时间:2024年01月08日

提示

  • 该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考参考文档,以官网文档为准。
  • 该文档是学习Exception和TrustZone的基础。即该文档只是概念介绍,并没有深入讲解ARM中的Security

1. 什么是Security?

当我们谈到Security(安全,下文不再翻译)时,通常用“asset(资产)”一词来指代我们想要保护的东西。例如,一个加密密钥通常被归类为一个asset。让我们考虑一下我们可能想要保护的asset的属性。
当我们考虑到安全问题时,应该考虑到以下一些问题:

  • 我想保护什么东西?
  • 我想保护的那个东西是什么?
  • 我保护的是谁或什么东西?
  • 被保护的东西的价值怎样?

1.1 机密性(Confidentiality)

机密性意味着谁能够看到、访问或使用资产。我们希望控制对该资产的访问,并确保防止未经授权的访问。实现机密性的最常见的机制是密码学和访问控制。
例如,我们的智能手机的内容就提供了一个保密的例子。许多智能手机都有一个加密文件系统,这样如果你丢失时,就可以保护手机上的数据不被丢失。因为用于解密文件系统的加密密钥只有在用户对自己进行了身份验证后才可用。在本例中,密码学用于保护文件系统中的数据的机密性。访问控制用于保护读取文件系统所需的密钥的机密性。

1.2 完整性(Integrity)

完整性是指保护资产的准确性和完整性。完整性保护资产免受未经授权的修改,或检测是否发生了修改。
例如,一个包含更新服务器的公钥的设备。这个公钥不是一个秘密,所以我们可能不关心确保它的机密性。然而,我们确实需要确保密钥没有被替换或篡改。替换密钥将允许攻击者进行恶意更新。破坏密钥可能会阻止系统安装真正的更新。这种错误操作将使该系统容易受到已知的攻击。

1.3 真实性(Authenticity)

真实性是指验证一种资产就是它所声明的那样。
再次以使用包含更新服务器公钥的设备为例。当设备从更新服务器下载软件更新时,我们需要确保该更新是真实的。软件供应商使用其私钥签名更新,设备可以使用其公钥副本验证签名。通过确保存储的公钥的完整性,设备可以检查软件更新的真实性。如果攻击者试图替换更新,我们可以检测到这一点并阻止安装。

1.4 有效性(Availability)

有效性意味着授权用户可以按照预期使用的方式访问和使用该资产。
拒绝服务攻击是拒绝有效性的一种常见方法。通常,拒绝服务攻击涉及到用错误的请求或数据淹没系统。例如,一次拒绝服务攻击可能会向一个网站发送大量的请求,希望能使该网站如此繁忙,从而无法为其真正的用户提供服务。
有效性是确保即使受到攻击,用户仍然可以访问和使用资产。

2. 攻击系统

在本文中将使用以下术语:

  • Vulnerability(漏洞):在系统中潜在的bug或弱点
  • Exploit(利用漏洞):利用漏洞的特定攻击
  • Attacker(攻击者):也称为Adversary(对手),试图妥协的资产的一些人(原文:someone trying to compromise an asset,这句翻译体现不出来原文表达的意思)
  • Threat(威胁):一个攻击者、一个漏洞和一个或多个被攻击的资产的组合

2.1 攻击类型

攻击类型大致分为三类:

  • 软件攻击(Software attacks)
    软件攻击是指不需要物理访问设备的攻击。例如,从应用程序商店的恶意下载或带有恶意附件的电子邮件。软件攻击可以针对世界上任何地方的大量设备。例如,由于发送电子邮件的成本非常低,攻击者可以向数百万收件人发送带有恶意附件的收件邮件。即使这些攻击中只有一小部分成功了,但这次攻击也是值得的。软件攻击要么是非特权攻击,要么是特权攻击。我们在示例中描述的恶意电子邮件是一种非特权攻击。从用户空间启动一个非特权攻击,并试图利用操作系统中的一个漏洞来访问它不应该无法访问的资产。在特权攻击中,一个特权实体攻击另一个具有类似特权的实体。例如,在一个处理器上以特权身份运行的系统中的软件可能会试图破坏系统的另一部分。
  • 基础硬件攻击(Basic hardware attacks)
    一个基础硬件攻击需要对设备进行物理访问,有时只是暂时的。这种类型的攻击被称为基础攻击,因为它需要一些很容易获取的工具,例如,JTAG探针或逻辑分析器。一个基础的硬件攻击可能涉及到软件元素。软件攻击和基础硬件攻击之间的重要区别在于,基础硬件攻击需要对设备进行物理访问。如果需要对设备进行物理访问或接近,潜在目标设备的数量会大大减少。减少目标的数量会显著地改变威胁的概况。注意:这种类型的攻击有时被称为棚屋攻击(shack attack)。这个名字表明,对于这种类型的攻击,你只需要那些可以在无线电小屋商店买到的工具,而不需要专业的工具。一个基础的硬件攻击的一个例子是一个evil maid attck。想象一下,你把笔记本电脑放在一个酒店房间里了。一个伪装成酒店客房服务员的人可以利用进入你房间的机会插入一个USB设备。
  • 高级硬件攻击(Advanced hardware attacks)
    与基础硬件攻击一样,高级硬件攻击中的攻击者需要对被攻击的设备进行物理访问。基础硬件攻击和高级硬件攻击之间的区别在于执行攻击所需的设备级别、知识和时间。高级硬件攻击的例子包括将设备置于电子显微镜下,或侧通道分析。侧通道分析包括技术,如使用精确定时或功耗来推断设备正在做的事情。就金钱和时间而言,高级硬件攻击是昂贵的。这意味着高级硬件攻击需要比其他类型的攻击更加集中,而攻击者通常不能针对同样多的设备。这些类别对于讨论有关攻击的内容很有用,但并不是固定的类别。
    攻击者使用攻击类型的组合,或者攻击可能包含来自多个类别的元素。

2.2 不同攻击者

除了资产和攻击之外,我们还应该考虑是谁在攻击这个系统。
很容易想象攻击者是一个在黑暗的房间里敲击笔记本电脑的键盘。但就像我们对资产和攻击的处理一样,我们可以对攻击者进行分类。
一些攻击者是第三方。其中一个例子是我们在软件攻击中提到的恶意电子邮件附件示例。
在其他时候,我们会保护系统不受用户的伤害。例如,数字权限管理(Digital Rights
Management,DRM)的目的是保护媒体不受包含受保护媒体的设备所有者的影响。

2.3 威胁模型

威胁模型是一种将上述讨论过的所有观点组合在一起的方式:

  • 这些资产是什么,我们希望保护它们什么?
  • 攻击者是谁,他们如何攻击系统?

我们的威胁模型还应该考虑攻击和攻击者的不同组合。这种分析至关重要,因为它会决定我们可能采用什么防御手段。

3.不同的安全解决方案

如果攻击者有足够的时间和金钱,任何安全措施都可能被破坏,我们不应该将设计的安全需求描述为不可能绕过的。相反,我们用价值术语来描述安全需求:攻击资产B的A至少需要Y天和Z美元。如果一系列对抗措施意味着一次成功的攻击将花费太长时间或花费太多,那么防御就是成功的。在这种情况下,大多数攻击者会转移到不同的目标。
这意味着我们需要平衡以下因素:

  • 资产的价值:资产对我们有什么价值,它对潜在的攻击者有什么价值?我们对资产的不同方面的估值不同吗?例如,我们可能希望保护资产的机密性和完整性,但我们可能更重视机密性,而不是完整性。
  • 防御成本:通常有几种方法可以防御资产。我们选择哪种防御方式将取决于威胁模型。我们考虑了被保护物的价值、攻击的可能性和防御的成本。
  • 实用性和可用性:密码是实用性和可用性问题的一个例子。建议用户使用长而复杂的密码,并为每个系统使用唯一的密码。尽管长、复杂和独特的密码更有利于安全,但许多用户将无法记住和管理它们。这意味着解决方案必须平衡安全需求和用户需求。

下图显示了Arm体系结构中的不同安全特性。这些特性可用于保护系统中的不同资产:
在这里插入图片描述
上图显示的技术提供了不同级别的保护和不同级别的成本。系统设计人员确定哪种技术最适合保护特定的资产。

参考文档

Learn the architure - Introduction to security

文章来源:https://blog.csdn.net/qq_37619128/article/details/135449769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。