本文转载自微信公众号「祺印说信安」,作者何威风。转载本文请联系祺印说信安公众号。
什么是数字签名?
数字签名(一种电子签名)是一种数学算法,通常用于验证消息(例如,电子邮件、信用卡交易或数字文档)的真实性和完整性。数字签名创建个人或实体独有的虚拟指纹,用于识别用户并保护数字消息或文档中的信息。在电子邮件中,电子邮件内容本身成为数字签名的一部分。数字签名明显比其他形式的电子签名更安全。
为什么要使用数字签名?
数字签名提高了在线交互的透明度,并在客户、业务合作伙伴和供应商之间建立了信任。
数字签名如何工作?
熟悉以下术语以更好地了解数字签名的工作原理:
- 散列函数– 散列函数(也称为“散列”)是由数学算法和任意大小的文件(例如电子邮件、文档、图片或其他类型的数据)生成的固定长度的数字和字母字符串。这个生成的字符串对于被散列的文件是唯一的,并且是一个单向函数——计算出的散列不能被反转以找到可能生成相同散列值的其他文件。目前使用的一些较流行的散列算法是安全散列算法 1 (SHA-1)、安全散列算法 2 系列(SHA-2 和 SHA-256)和消息摘要 5 (MD5)。
- 公钥加密——公钥加密(也称为非对称加密)是一种使用密钥对系统的加密方法。一个称为公钥的密钥对数据进行加密。另一个密钥称为私钥,用于解密数据。公钥加密可以通过多种方式来确保机密性、完整性和真实性。公钥密码学可以
- 通过使用发件人的私钥创建消息的数字签名来确保完整性。这是通过散列消息并用他们的私钥加密散列值来完成的。通过这样做,对消息的任何更改都将导致不同的哈希值。
- 通过使用收件人的公钥加密整个消息来确保机密性。这意味着只有拥有相应私钥的接收者才能阅读该消息。
- 使用公钥验证用户的身份并对照证书颁发机构进行检查。
- 公钥基础设施 (PKI) – PKI 由支持公钥分发和具有数字证书和证书颁发机构的个人或实体身份验证的策略、标准、人员和系统组成。
- 证书颁发机构 (CA) – CA 是受信任的第三方,它验证一个人的身份,并代表他们生成公钥/私钥对,或者将这个人提供的现有公钥与该人相关联。一旦 CA 验证了某人的身份,他们就会颁发一个由 CA 数字签名的数字证书。然后,数字证书可用于在请求时验证与公钥相关联的人。
- 数字证书——数字证书类似于驾驶执照,因为它们的目的是识别证书的持有人。数字证书包含个人或组织的公钥,并由 CA 进行数字签名。有关组织、个人和 CA 的其他信息也可以包含在证书中。
- 相当好的隐私 (PGP)/OpenPGP – PGP/OpenPGP 是 PKI 的替代品。使用 PGP/OpenPGP,用户通过签署具有可验证身份的人的证书来“信任”其他用户。这些签名越相互关联,在互联网上验证特定用户的可能性就越大。这个概念被称为“信任网络”。
- 数字签名的工作原理是证明数字消息或文档从签名时起没有被有意或无意地修改过。数字签名通过生成消息或文档的唯一散列并使用发件人的私钥对其进行加密来实现此目的。生成的散列对于消息或文档是唯一的,更改其中的任何部分都将彻底更改散列。
完成后,消息或数字文档将进行数字签名并发送给收件人。然后,接收者生成他们自己的消息或数字文档的哈希值,并使用发送者的公钥解密发送者的哈希值(包含在原始消息中)。接收者将他们生成的哈希值与发送者的解密哈希值进行比较;如果匹配,则消息或数字文档未被修改并且发件人已通过身份验证。
为什么要使用带有数字签名的 PKI 或 PGP?
将数字签名与 PKI 或 PGP 结合使用可以加强它们,并通过验证密钥属于发送者并验证发送者的身份来减少与传输公钥相关的可能安全问题。数字签名的安全性几乎完全取决于私钥的保护程度。如果没有 PGP 或 PKI,就不可能证明某人的身份或撤销已泄露的密钥;这可能允许恶意行为者在没有任何确认方法的情况下冒充某人。
通过使用受信任的第三方,数字签名可用于识别和验证个人并确保消息的完整性。
随着无纸化、在线交互的使用越来越广泛,数字签名可以帮助我们保护数据的完整性。通过了解和使用数字签名,可以更好地保护信息、文档和交易。