在当今的数字时代,签署实体文件的传统做法已被数字签名所取代。这些数字签名与纸质签名具有相同的法律效力,并得到法院和当局的认可。然而,问题来了:我们如何信任这些数字签名?答案就在被称为公钥基础设施 (PKI) 的底层框架中。PKI 包含一个由算法、机制、软件、硬件和角色组成的网络,这些算法、机制、软件、硬件和角色协同为数字签名建立安全的基础结构。它构成了构建数字签名的基础,并确保其完整性和真实性。在本文中,我将介绍 PKI、术语和最重要的组件,这些组件为理解数字签名提供了前景。
PKI 是各种安全服务的基础框架,超越了特定的业务功能。其主要目标是确保公钥和证书的安全分发和使用。基于PKI的安全机制在各种系统中都有应用,包括电子邮件、芯片卡应用、电子商务交易、家庭银行和电子邮政系统。PKI 启用的安全服务的显著示例包括用于通信和事务安全的 SSL、IPsec 和 HTTPS,用于电子邮件安全的 S/MIME 和 PGP,以及用于价值交换的 SET。
此外,公钥加密的基本原理支撑着许多其他解决方案。这些解决方案包括大学校园的学生证、投票系统、匿名价值交换、交通票务、身份证明文件(如护照和驾驶执照)、合同和电子邮件的公证、软件分发和对称密钥管理。PKI 的多功能性和对公钥加密的依赖有助于其在不同领域的广泛采用和适用性。[1]
信息安全的核心原则,通常称为“CIA”三元组,包括机密性、完整性和可用性。这三个基本方面,也称为安全属性、属性、安全目标、信息标准、关键信息特征和基本构建块,在文献中可以互换使用。它们构成了建立和维护信息安全的重要基础。
机密性是指确保信息不被未经授权的个人、实体或流程访问和披露的特征。需要注意的是,虽然保密性和隐私是相关的概念,但它们并不是同义词。相反,机密性是隐私的一个特定方面,专注于保护我们的数据免受未经授权的观众的侵害。违反电子数据机密性的情况包括笔记本电脑盗窃、密码盗窃或无意中向意外收件人发送敏感电子邮件等事件。[3]
中央情报局三合会:图片来自 nist.gov
完整性是指防止我们的数据以未经授权或不受欢迎的方式更改的能力。这可能意味着未经授权更改或删除我们的数据或部分数据,也可能意味着授权但不希望更改或删除我们的数据。为了保持完整性,我们不仅需要有办法防止未经授权的数据更改,还需要能够撤消需要撤消的授权更改。我们可以看到一个很好的机制示例,这些机制使我们能够控制许多现代操作系统(如 Windows 和 Linux)的文件系统中的完整性。简单来说,完整性可确保信息可以被信任和依赖,以确保信息准确、一致和可靠。[3]
需要注意的是,数据完整性不应与数据库中的引用完整性相混淆,尽管它可以被视为事务处理的经典 ACID 模型中定义的一种特殊形式的一致性。
中央情报局三合会的最后一站是可用性。可用性是指在需要时访问我们数据的能力。可用性的丧失可能是指链中允许我们访问数据的链中任何地方的各种中断。此类问题可能是由断电、操作系统或应用程序问题、网络攻击、系统入侵或其他问题引起的。当此类问题由外部方(如攻击者)引起时,通常称为拒绝服务 (DoS) 攻击。
现在,在介绍 PKI 并解释其工作原理之前,我将介绍其他概念。
在密码学中,密码系统包含一组加密算法,这些算法对于实现特定安全服务至关重要,例如通过加密确保机密性。通常,密码系统由三种不同的算法组成,每种算法都有重要用途:密钥生成、加密和解密。密钥生成算法负责创建加密密钥,而加密算法对数据进行编码,解密算法反转加密过程以恢复原始信息。
在密码学中,加密是对信息进行编码的过程。此过程将信息的原始表示形式(称为明文)转换为称为密文的替代形式。加密本身并不能防止干扰,但会拒绝潜在的拦截器理解的内容。[4]
解密是解码信息的过程。此过程将密文转换为信息的原始表示形式或明文。
上图显示了对称加密的过程。假设 Alice 和 Bob 已成功交换密钥。如果 Alice 希望向 Bob 发送机密消息,她会使用此密钥来加密要保密的数据。Alice 将密文发送给 Bob。收到密文后,鲍勃使用他与爱丽丝交换的密钥来解密密文。如果密码系统是安全的,那么在不知道密钥的情况下,任何人都无法获得有关明文的任何信息。[2]
哈希函数是一种数学函数,它接受输入并生成原始数据_的唯一固定大小的字符串_。基于 NIST,将加密哈希函数应用于数据(例如消息)的结果是摘要。也称为“消息摘要”。
哈希函数被设计为在计算哈希值时快速高效,并且它们有几个重要的属性。首先,相同的输入数据将始终产生相同的哈希值。其次,即使输入数据的微小变化也会导致哈希值明显不同。这种特性被称为雪崩效应。此外,哈希函数是单向的,这意味着从哈希值中派生原始输入数据在计算上很困难。
在密码学中,密钥是一条特定的信息,通常表示为一串数字或字母,在加密算法中用于安全地编码或解码数据。例如,在给定方案中,secret 元素用作密钥。在提供的图像中,使用了对称密钥,这意味着加密和解密过程都使用了完全相同的密钥。
到目前为止,我们已经了解到对称加密需要单个密钥来加密明文和解密文本。但是,还有另一种类型的加密,称为非对称加密。非对称加密,也称为公钥加密,使用一对不同的密钥进行加密和解密。这些密钥在数学上是相关的,统称为密钥对。使用对中的一个密钥加密数据时,只能使用另一个密钥来解密数据。我们将这些密钥命名为公钥和私钥。
公钥是非对称加密中的密钥之一,可供公众使用。生成密钥对时,实体(例如个人或系统)在分发公钥(另一个密钥,因此有两个密钥)时保持私钥(其中一个密钥对)的安全。任何希望使用它的人都可以公开访问公钥。任何人都可以使用任何公钥加密数据,但只有相应私钥的持有者才能解密。这是因为使用特定公钥加密的数据只能由对中的相应私钥解密。
私钥是非对称加密中公钥的对应物。它用于解密已使用相应公钥加密的数据。对私钥保密至关重要,因为它代表了只有所有者才能拥有的密钥。当有人想要发送消息时,他们会使用公钥加密数据,因为他们知道只有私钥的持有者才能解密它。因此,保护私钥并确保其保密性至关重要。
证书,也称为公钥证书或身份证书,是表示公钥身份的数字文档。在一个拥有众多公钥的世界里,证书提供了一种获取有关它们的信息的机制。虽然公钥只是一个没有任何附加上下文的密钥,但证书通过添加元数据和其他相关详细信息来增强它。这些附加信息有助于建立与公钥关联的身份,并提供额外的信任和安全性。
下面是证书的示例,包括其部分数据:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
72:14:11:d3:d7:e0:fd:02:aa:b0:4e:90:09:d4:db:31
...
Validity
Not Before: Apr 18 22:15:06 2019 GMT
Not After : Apr 17 22:15:06 2021 GMT
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:ad:0f:ef:c1:97:5a:9b:d8:1e ...
公钥是发送加密数据并确保只有私钥持有者才能解密的有效方法。但是,验证用于加密的公钥的真实性至关重要。虽然公钥的物理交付是安全的,但它可能很麻烦。为了克服这个问题,受信任的第三方(称为证书颁发机构 (CA))维护一个集中的公钥存储库及其各自的所有者。在为特定收件人(如 Bob)加密数据时,我们可以咨询 CA 以检索正确的公钥。CA 是验证公钥合法性的可靠来源。它存储、签名和颁发数字证书,以证明证书的指定使用者对公钥的所有权。这些证书使信赖方能够信任与认证公钥对应的私钥关联的签名和断言。作为受信任的第三方,CA 受证书使用者(所有者)和依赖证书的各方的信任。[5]
不可否认性是数据或流程的一种属性,可防止实体否认已执行特定操作,例如发送电子邮件或发起汇款。例如,以电子合同为例。在许多国家,它们与纸质合同一样具有约束力。此类合同中涉及的各方以后不得否认该合同。此外,开具电子处方的医生以后不得拒绝处方。同样,电子纳税申报不得在以后的时间点被拒绝。不幸的是,加密并不能解决这个问题。
数字签名是可有效解决否认问题的可靠解决方案。在非对称系统中,我们有一个由两个密钥组成的密钥对。当使用一个密钥加密数据时,只有另一个密钥可以解密它。在这个系统中,公钥与他人共享,允许私钥持有者解密加密的消息。通过解密邮件,收件人可以确信邮件已被正确接收。但是,在确定发件人的身份时会出现挑战。由于我们发布了公钥,因此我们不知道是谁用它加密了消息。虽然我们可以解密它,但我们无法确定发件人。如前所述,在非对称加密中,只有第二个密钥可以解密使用第一个密钥加密的消息,并且只有所有者拥有私钥。利用这一点,我们可以用我们的私钥加密消息,并让收件人用我们的公钥解密它。这样,收件人可以识别发件人,因为只有发件人的公钥才能解密邮件。
数字签名涉及使用私钥加密明文摘要并将其与消息一起发送。考虑 Alice 使用 Bob 的公钥加密明文的场景。然后,Alice 生成明文摘要,使用她的私钥对其进行加密(此过程称为签名),并在发送给 Bob 的消息中包含密文、签名和证书。收到消息后,Bob 可以使用他的私钥解密密文以获取明文。但是,他无法确定爱丽丝是否发送了该消息,特别是如果该消息指示他从帐户中提取资金并将其发送给约翰。Bob 还有其他信息可供他使用,即证书和签名。首先,Bob 咨询证书颁发机构 (CA) 以验证证书是否属于 Alice。接下来,他使用 Alice 的公钥解密签名,从而获得明文的摘要。然后,Bob 应用相同的哈希函数来创建解密明文的摘要(使用他的私钥解密文的结果)。如果哈希值匹配,Bob 可以确信该消息确实是由 Alice 发送的,并且 Alice 也不能拒绝发送该消息,因为该消息是使用 Alice 私钥签名的,没有人可以访问它。
数字签名包括以下步骤:
为了验证消息的真实性,Bob 执行以下检查:
PKI(公钥基础设施)是一种系统,它利用非对称加密、数字证书和称为证书颁发机构 (CA) 的受信任第三方来确保信息安全中的机密性、完整性和可用性 (CIA) 原则。