Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

CIA三角形及其现实应用

CIA三角形及其现实应用

Mar 17, 2023

什么是CIA三元组?

信息安全围绕三项关键原则:机密性、完整性和可用性(CIA)。根据环境、应用、场景或使用案例的不同,这三项原则中的某一项可能比其他原则更重要。比如,对于金融机构而言,信息的机密性至关重要,因此在对分级文件进行电子传输时,往往会对其进行加密,以防止未经授权的人员读取内容。另一方面,像互联网市场平台这样的组织,如果网络因故障而长时间无法运行,就会遭受严重损害,因此他们可能会更关注确保高可用性的策略,而不是过度担心加密数据。

机密性

机密性关注的是防止未经授权访问敏感信息。该访问可能是有意的,例如入侵者突破网络并读取信息;也可能是无意的,例如由于处理信息的个人疏忽或能力不足。确保机密性的两种主要方式是密码学(cryptography)和访问控制(access control)。

精选相关内容

密码学

加密帮助组织满足这样一种需求:保护信息,防止因意外泄露以及来自内部和外部的攻击尝试。密码学系统在防止未经授权的解密方面的有效性称为其强度(strength)。强大的密码学系统很难被破解。强度也可以用工作因子(work factor)来表示,即估算破解某个系统所需的时间和精力的量。

如果一个系统允许弱密钥、其设计存在缺陷,或容易被解密,则该系统被认为是弱的。如今可用的许多系统已足以满足企业和个人使用,但却不适用于敏感的军事或政府应用。密码学包含对称算法和非对称算法。

对称算法

对称算法要求加密消息的发送方和接收方都拥有相同的密钥和处理算法。对称算法会生成一个对称密钥(有时也称为密钥/私钥),该密钥必须受到保护;如果密钥丢失或被盗,系统的安全性就会受到影响。下面是一些常见的对称算法标准:

  • 数据加密标准(Data Encryption Standard,DES)。 DES自20世纪70年代中期以来一直被使用。多年来,它是政府和工业界采用的主要标准,但由于密钥长度较小,现在被认为不安全——它会生成一个64位密钥,其中有8位仅用于纠错,真正的密钥只有56位。如今,AES已成为主要标准。
  • Triple-DES(3DES)。 3DES是对DES的技术升级。尽管AES是政府应用的首选方案,3DES仍在使用。与许多其他系统相比,3DES要难得多,而且比DES更安全。它将密钥长度提高到168位(使用三个56位的DES密钥)。
  • Advanced Encryption Standard (AES). AES 已取代 DES,成为美国政府机构所采用的标准。它使用 Rijndael 算法,该算法以其开发者 Joan Daemen 和 Vincent Rijmen 命名。AES 支持 128、192 和 256 位的密钥长度,其中 128 位为默认值。
  • Ron’s Cipher or Ron’s Code (RC). RC 是由 RSA 实验室生产的一类加密算法,并以其作者 Ron Rivest 的名字命名。目前的版本包括 RC4、RC5 和 RC6。RC5 使用的密钥长度最高可达 2,048 位;它被认为是一个强健的系统。RC4 在无线网络以及 WEP/WPA 加密中很受欢迎。它是一种流式密码,可在 40 到 2,048 位之间的密钥长度下工作,并用于 SSL 和 TLS。此外,它在一些工具中也很常见;这些工具会用它来下载种子(torrent)文件。许多提供商会限制这些文件的下载,但使用 RC4 对头部和数据流进行混淆,会让服务提供商更难意识到正在传输的是种子文件。
  • Blowfish 和 Twofish。 Blowfish 是由 Bruce Schneier 领导的团队发明的一种加密系统,可在极快速度下执行 64 位分组密码。它是一种对称分组密码,能够使用可变长度的密钥(从 32 位到 448 位)。Twofish 十分相似,但它处理的是 128 位分组。它的显著特点是拥有复杂的密钥调度(key schedule)。
  • International Data Encryption Algorithm (IDEA)。 IDEA由瑞士财团开发,使用128位密钥。该产品在速度和能力方面与DES相似,但安全性更高。IDEA用于Pretty Good Privacy(PGP),这是一种公有领域的加密系统,许多人用它进行电子邮件加密。
  • 一次性密码本(One-time pads). 一次性密码本是唯一真正实现“完全安全”的加密实现方式。之所以如此安全有两个原因。首先,它使用的密钥长度与明文消息一样长。也就是说,在密钥的应用过程中不存在攻击者可利用的规律(模式)。其次,一次性密码本的密钥只使用一次,然后就会被丢弃。因此,即使你能够破解一次性密码本密码,那同一把密钥也永远不会再被使用,所以掌握密钥信息也没有任何用处。

非对称算法

非对称算法使用两把密钥:公钥和私钥。发送方使用公钥对消息进行加密,接收方使用私钥对消息进行解密。公钥可以是完全公开的,也可以仅在双方之间作为秘密共享。然而私钥必须保密;只有所有者(接收方)才知道它。如果有人想向你发送加密消息,他们可以使用你的公钥来加密该消息,然后把消息发给你。你可以使用自己的私钥来解密这条消息。如果这两把密钥都被第三方获取,加密系统将无法保护消息的隐私。这些系统真正的“魔力”在于:公钥不能用于解密消息。假如鲍勃使用爱丽丝的公钥加密了一条消息发给爱丽丝,那么即使地球上其他所有人都拥有爱丽丝的公钥也没关系,因为该公钥无法解密这条消息。以下是非对称算法的一些常见标准:

  • RSA。RSA 以其发明者 Ron Rivest、Adi Shamir 和 Leonard Adleman 的名字命名。RSA 算法是一种较早的公钥加密系统,其过程以大整数为基础。它被广泛实现,并已成为事实上的标准。RSA 同时支持加密和数字签名。RSA 用于许多环境,包括安全套接层 Secure Sockets Layer (SSL) ,并且可用于 密钥交换
  • Diffie-Hellman。 惠特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)被认为是公钥/私钥概念的奠基者。他们的 Diffie-Hellman 算法主要用于在公用网络中生成共享密钥。该过程并不用于加密或解密消息;它仅用于在双方之间创建对称密钥。
  • Elliptic Curve Cryptography (EEC)。ECC 提供与 RSA 类似的功能,但为了达到相同级别的安全性会使用更小的密钥长度。ECC 加密系统基于这样的思路:在曲线上使用点,并结合一个位于无穷远处的点,以及求解离散对数问题的难度。

访问控制

加密是确保机密性的方式之一;第二种方法是访问控制。为了帮助实现机密性,访问控制有多种方法可供选择,每种方法都有各自的优势和劣势:

  • 强制访问控制(MAC)。在 MAC 环境中,所有访问能力都已预先定义。除非管理员已建立用户的共享权限,否则用户无法共享信息。因此,管理员必须对这些权限进行任何需要的更改。该流程会强制执行严格的安全模型。不过,它也被认为是最安全的网络安全模型。
  • 自主访问控制(DAC)。 在 DAC 模型中,用户可以与其他用户动态共享信息。该方法能够提供更灵活的环境,但也会增加信息被未经授权披露的风险。管理员更难确保只有合适的用户才能访问数据。
  • 基于角色的访问控制(RBAC)。 基于角色的访问控制会根据工作职能或责任来实施访问控制。每名员工都拥有一个或多个角色,从而可以访问特定信息。如果某人从一个角色调到另一个角色,那么先前角色的访问权限将不再可用。RBAC 模型在灵活性方面比 MAC 模型更高,但比 DAC 模型更低。不过,它的优势在于严格基于工作职能,而不是基于个人需求。
  • Rule-Based Access Control (RBAC)。 规则型访问控制使用预配置的安全策略中的设置来做出有关访问的决策。这些规则可以设置为:
    • 除清单中明确出现的主体外,其余全部拒绝(允许访问列表,allow access list)
    • 仅拒绝清单中明确出现的主体(真正的拒绝访问列表,true deny access list)

列表中的条目可以是用户名、IP 地址、主机名,甚至是域名。规则型模型通常与基于角色的模型配合使用,以实现安全性与灵活性的最佳组合。

  • 基于属性的访问控制(ABAC)。 ABAC 是 NIST 800-162《Attribute Based Control Definition and Considerations》中定义的一种相对较新的访问控制方法。它是一种逻辑访问控制方法:通过评估与主体、客体、请求的操作以及在某些情况下与环境条件相关联的属性,并将其与 security policy 中描述在给定属性集合下允许执行的操作的规则或关系进行对照,从而确定是否授权执行一组操作。
  • 智能卡通常用于访问控制和安全目的。卡本身通常包含少量存储器,可用于存储权限和访问信息。
  • 安全令牌最初是一种硬件设备,用于获取访问权限,例如无线钥匙卡或钥匙扣。如今,令牌也有软件实现方式。令牌通常包含用于对用户进行身份验证的数字证书。

完整性

完整性有三个目标,有助于实现 数据安全

  • 防止未经授权的用户修改信息
  • 防止授权用户对信息进行未经授权或非故意的修改
  • 保持内部和外部一致性:
    • 内部一致性 — 确保数据在内部保持一致性。例如,在组织数据库中,组织拥有的项目总数必须等于数据库中显示的、由组织各组成部分持有的相同项目的数量之和。
    • 外部一致性 — 确保数据库中存储的数据与现实世界保持一致。例如,货架上实际摆放的物品总数必须与数据库中指示的物品总数相匹配。

各种加密方法都可以帮助确保实现完整性:通过提供保障来表明消息在传输过程中没有被修改。修改可能会使消息变得难以理解,甚至更糟的是变得不准确。想象一下,如果医疗记录或药物处方被篡改却没有被发现,后果将多么严重。若消息被篡改,加密系统应具备机制,用以指示该消息已被破坏或更改。

哈希(Hashing)

也可以使用哈希算法来验证完整性。基本上,会生成该消息的哈希值,并将其附加到消息末尾。接收方会计算其收到的消息的哈希值,并与其接收到的哈希值进行比较。如果传输过程中有任何内容发生了变化,那么哈希值将无法匹配。

在许多情况下,哈希是一种可接受的完整性校验方式。然而,如果拦截方希望故意篡改消息,并且该消息没有进行加密,那么哈希就会失去作用。例如,拦截方可以看到消息上附带的是一个 160 位的哈希,这表明它可能是使用 SHA-1 生成的(下文将讨论)。随后,拦截者只需按自己的意愿修改消息,删除原始的 SHA-1 哈希,并基于被篡改后的消息重新计算哈希即可。

哈希算法

用于存储数据的哈希值与加密哈希值差异很大。在密码学中,哈希函数必须具备三个特性:

  1. 必须是单向的。 一旦对某些内容进行哈希,就无法将其“还原”(无法反向哈希)。
  2. 可变长度的输入会产生固定长度的输出。无论你对两个字符还是两百万个字符进行哈希,哈希大小都相同。
  3. 该算法必须具有很少或没有碰撞。 对两个不同的输入进行哈希不会得到相同的输出。

以下是你应该熟悉的哈希算法和相关概念:

  • Secure Hash Algorithm (SHA)。 最初名为 Keccak,SHA 由 Guido Bertoni、Joan Daemen、Michaël Peeters 和 Gilles Van Assche 设计。SHA-1 是一种单向哈希,可提供 160 位的哈希值,并可与加密协议一起使用。2016 年发现了 SHA-1 的问题;现在建议改用 SHA-2。SHA-2 可以生成 224、256、334 和 512 位的哈希。SHA-2 目前没有已知问题,因此仍然是使用最广泛、也最受推荐的哈希算法。SHA-3 于 2012 年发布,应用范围广,但使用并不广泛。这并不是因为 SHA-3 有任何问题,而是因为 SHA-2 完全没问题。
  • 消息摘要算法(Message Digest Algorithm,MD)。 MD 是另一种单向哈希,用于生成哈希值,以帮助维护数据完整性。MD 有多个版本,最常见的包括 MD5、MD4 和 MD2。MD5 是该算法的最新版本,会生成 128 位哈希。尽管它比其前身(早期 MD 版本)更复杂,并提供更高的安全性,但它缺乏强健的抗碰撞能力,因此不再推荐用于实际用途。SHA(2 或 3)是推荐的替代方案。
  • RACE 完整性原语评估消息摘要(RACE Integrity Primitives Evaluation Message Digest,RIPEMD)。 RIPEMD 基于 MD4。由于其安全性存在疑问,它已被使用 160 位的 RIPEMD-160 所取代。此外还有使用 256 位和 320 位的版本(分别为 RIPEMD-256 和 RIPEMD-320)。
  • GOST 是在旧苏联开发的一种对称密码,并已被修改为可作为哈希函数使用。GOST 会将可变长度的消息处理为固定长度的 256 位输出。
  • 在 Windows NT 发布之前,Microsoft 的操作系统在认证时使用的是 LANMAN 协议。LANMAN 虽然仅作为认证协议工作,但使用了 LM Hash 和两个 DES 密钥。随着 Windows NT 的发布,它被 NT LAN Manager(NTLM)所取代。
  • 随着 Windows NT 的发布,Microsoft 用 NTLM(NT LAN Manager)替换了 LANMAN 协议。NTLM 使用 MD4/MD5 哈希算法。该协议存在多个版本(NTLMv1 和 NTLMv2),尽管 Microsoft 已将 Kerberos 命名为其首选的认证协议,但 NTLM 仍被广泛使用。尽管 LANMAN 和 NTLM 都采用哈希,但它们主要用于认证目的。
  • 验证完整性的一种常见方法是:在消息中添加消息认证码(MAC)。MAC 通过在密码块链模式(CBC)下使用对称密码进行计算,并且只生成最后一个块。实质上,是将 CBC 的输出当作哈希算法的输出来使用。然而,与哈希算法不同的是,该密码需要在两个参与方之间事先交换的对称密钥。
  • HMAC(基于哈希的消息认证码)使用哈希算法以及对称密钥。比如,两个参与方可以约定使用一个 MD5 哈希。哈希计算完成后,将该哈希与摘要(digest)进行异或(XOR)运算,得到的结果值就是 HMAC。

基线

建立基线(配置基线、基线、系统基线、活动基线)是实现 安全网络 的一项重要策略。基本上,你需要为特定系统、计算机、应用程序或服务找到一个你认为足够安全的基线。当然,不可能实现绝对安全——目标是在组织的安全需求和风险承受偏好(risk appetite)基础上达到“足够安全”。任何变更都可以与基线进行对比,以判断该变更是否足够安全。基线定义完成后,下一步是监控系统,确保系统没有偏离该基线。这个过程被定义为完整性度量(integrity measurement)。

可用性

可用性(Availability)确保系统的授权用户能够及时且不间断地访问系统中的信息以及网络。以下是实现可用性的方法:

  • 分配(Distributive allocation)。 分配通常被称为负载均衡(load balancing)。它允许将负载(文件请求、数据路由等)进行分散,以确保不会有任何设备承受过重的负担。
  • 高可用性(HA)。 高可用性是指在发生故障(outage)期间,保持服务和信息系统持续运行所采取的措施。HA 的目标通常是让关键服务在 99.999% 的时间内可用(称为“五个九”的可用性)。HA 策略包括冗余(redundancy)和故障切换(failover),下文将对其进行讨论。
  • 冗余(Redundancy). 冗余(Redundancy)是指在发生故障时,要么将系统进行复制(duplicated),要么让系统切换到其他系统上以继续运行。故障切换(Failover)是指在检测到故障后,对系统进行重建或切换到其他系统的过程。以服务器为例:一旦检测到故障,服务器就会切换到冗余服务器。该策略使服务在主服务器恢复之前能够不间断地继续提供。以网络为例,这意味着当主路径发生网络故障时,处理将切换到另一条网络路径。
    故障切换系统的实现成本可能很高。在大型企业网络或电子商务环境中,故障切换可能意味着将所有处理切换到远程位置,直到你的主站点能够正常运行。主站点与远程站点会同步数据,以确保信息尽可能保持最新。
    许多操作系统(例如 Linux、Windows Server 和 Novell Open Enterprise Server)都能够通过集群(clustering)来提供故障切换能力。集群涉及多个系统协作连接(从而提供负载均衡),并以网络方式互联:只要其中任一系统发生故障,其余系统就会顶上继续运行。服务器集群的整体能力可能会下降,但网络或服务仍将保持可运行。要体会集群的巧妙之处,不妨想想:这就是 Google 所构建的技术。不仅集群让你具备冗余能力,还能让你在需求增长时实现扩展。
    大多数 ISP 和网络服务提供商都具备广泛的内部故障切换能力,以向客户提供高可用性。无法访问信息或服务的企业客户和员工往往会失去信心。
    当然,可靠性与可信度(reliability and trustworthiness)的代价是成本:故障切换系统可能会变得非常昂贵。你需要仔细研究自己的需求,以确定你的系统是否需要这种能力。例如,如果你的环境要求高水平的可用性,那么服务器应当进行集群化。这将使网络中的其他服务器在集群中的某台服务器发生故障时承担负载。
  • 容错能力(Fault tolerance)。 容错能力(Fault tolerance)是指系统在某个组件发生故障时仍能维持运行的能力。即使像磁盘驱动器这类关键组件发生故障,具备容错能力的系统也仍可继续运行。该能力通过向系统中添加冗余组件和子系统来进行“过度设计”,以降低停机(downtime)的风险。例如,可以通过为服务器增加第二个电源、第二个 CPU 以及其他关键组件来构建容错能力。大多数厂商(例如 HP、Sun 和 IBM)都提供容错服务器;它们通常配备多个处理器,并在发生故障时自动进行故障切换。
    容错能力有两个关键组成部分,绝对不要忽视:备件(spare parts)和电力(electrical power)。备件应始终保持随时可用,以便在任一对系统至关重要的组件发生故障时能够进行修复。“N+1”冗余策略意味着:你拥有所需组件数量,再额外准备一个组件,以便在需要时接入任何系统。由于计算机系统在没有电力的情况下无法运行,因此必须同样将容错能力构建到你的电力基础设施中。至少,你应当为每台服务器和工作站配备带有浪涌保护(surge protection)的不间断电源(UPS)。该 UPS 的额定功率应满足预期在断电期间需要承载的负载(需考虑计算机、显示器以及连接到它的任何其他设备),并作为预防性维护例程的一部分定期检查,以确保电池处于可运行状态。为保持 UPS 可用,你需要每隔几年更换一次电池。
    UPS 只能让你在断电的情况下维持较短时间的运行。要在更长时间的场景下实现容错能力,你需要备份发电机(backup generator)。备份发电机使用汽油、丙烷、天然气或柴油运行,并产生提供稳定电力所需的电能。尽管有些备份发电机在停电发生时可以瞬时启动,但大多数需要一段短时间预热,然后才能提供稳定的电力。因此,你会发现组织中仍然需要部署 UPS。
  • 独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)。 RAID是一种使用多个磁盘来提供容错能力的技术。有多种 RAID 级别:RAID 0(条带化磁盘)、RAID 1(镜像磁盘)、RAID 3 或 4(带专用奇偶校验的条带化磁盘)、RAID 5(带分布式奇偶校验的条带化磁盘)、RAID 6(带双重奇偶校验的条带化磁盘)、RAID 1+0(或 10)以及 RAID 0+1。你可以在此列表的 data security best practices 中了解更多。
  • 灾难恢复(DR)计划。 灾难恢复计划可帮助组织在灾难发生时有效应对。灾难包括系统故障、网络故障、基础设施故障,以及飓风和地震等自然灾害。DR计划定义了在灾难发生时,尽可能快速地恢复服务的方法,并保护组织免受不可接受的损失。
    在规模较小的组织中,灾难恢复计划可能相对简单且直接。对于规模较大的组织,可能涉及多个场地、企业战略规划以及整个部门。
    灾难恢复计划应涵盖对信息的访问与存储。您对敏感数据的备份计划是该过程的重要组成部分。

常见问题(FAQ)

CIA 三要素(CIA triad)的组成部分有哪些?

  • 机密性(Confidentiality):系统和数据仅对授权用户可访问。
  • 完整性:系统和数据是准确且完整的。
  • 可用性:系统和数据在需要时应当可以访问。

为什么 CIA 三元组对数据安全很重要?

数据安全data security 的最终目标,是确保关键且敏感的数据具备机密性、完整性和可用性。应用 CIA triad 的原则,帮助组织制定有效的安全计划,以保护其宝贵资产。

CIA 三元组如何应用于风险管理?

在风险评估过程中,组织会评估可能危及其系统与数据机密性、完整性和可用性的风险、威胁以及漏洞。通过实施安全控制来缓解这些风险,组织能够满足 CIA 三要素(CIA triad)的一个或多个核心原则。

数据机密性如何会受到破坏?

机密性要求防止对敏感信息的未授权访问。该访问可能是有意的,例如入侵者闯入网络并读取信息;也可能是无意的,例如由于处理信息的人员疏忽或能力不足而导致。

哪些措施有助于维护数据机密性?

保护数据机密性的 一项最佳实践是对所有敏感数据和受监管数据进行加密。除非具备解密密钥,否则任何人都无法读取加密文档的内容,因此加密既能防范恶意的机密性泄露,也能防范因意外导致的机密性受损。

数据完整性可能如何被破坏?

数据完整性可能既会因人为错误而受损,也会因诸如破坏性恶意软件和勒索软件之类的网络攻击而遭到破坏。

哪些措施有助于维护数据完整性?

要维护数据完整性,需要:

  • 防止未授权用户更改数据
  • 防止授权用户对数据进行未授权或无意的更改
  • 通过错误检查和数据验证等流程,确保数据的准确性和一致性

确保数据准确性的宝贵最佳实践是 file integrity monitoring (FIM)。通过对访问或修改包含敏感信息的文件和文件夹的所有尝试进行审计,并检查这些操作是否获授权,FIM 可帮助组织发现对系统中关键文件的不当更改。

数据可用性如何被破坏?

可用性方面的威胁包括基础设施故障,例如网络或硬件问题;软件非计划性停机;基础设施过载;停电;以及诸如 DDoS 或勒索软件攻击等网络攻击。

哪些措施有助于保持数据可用性?

对于所有需要持续正常运行时间的系统,部署防止中断的保障措施非常重要。可选方案包括硬件冗余、故障切换(failover)、集群,以及将定期备份存储在地理位置分离的地点。此外,必须制定并测试一份全面的灾难恢复计划。

分享到

了解更多

关于作者

Ryan Brooks

产品布道者

Netwrix Corporation 的产品布道者,同时也是作者和演讲者。Ryan 专注于宣传网络安全,并强调了解 IT 变更与数据访问的重要性。作为作者,Ryan 关注 IT 安全趋势、调研以及行业洞见。