博客 > 公钥与私钥对的工作原理?5个场景告诉你答案
浏览量:1371次评论:0次
作者:锐成网络整理时间:2024-07-12 15:57:57
我们知道,在IT环境中,公钥与私钥对在加密、认证、数字签名等方面发挥着重要作用,但它们的使用方式对于每个应用场景来说都有着很大不同。这让我们不禁产生疑问:这一切到底是如何在“幕后”运作的?SSL Store的内容经理凯西·克兰(Casey Crane)在Hashed Out上分享了公钥与私钥对在五种不同的公钥基础设施 (PKI) 场景中的应用方式,以下是译文内容。
首先提一个问题:公钥加密,私钥解密——对吗?
一个简短的答案:不总是这样。
是的,在大多数场景中,公钥用于加密数据,而其相应的私钥用于解密密钥。但是,某些流程也存在例外情况。我们将在以下部分中为您详细解释这一切,看一下五个非常常见的场景:
1 、SSL/TLS连接期间公钥和私钥对的工作原理是什么?
当您通过HTTPS访问一个安全网站时,每个连接都会以一个称为TLS握手的过程开始。在此过程中,使用公钥加密(即非对称加密)来交换敏感信息,然后切换到对称加密来完成其余部分的会话。
为什么要费力去切换呢?因为对称加密比公钥加密需要更少的计算能力。尽管我们谈论的是极短的时间(即毫秒级),但它对于大规模数据加密(即对于具有较高网络流量的大型组织)来说更高效。
要加密您的网站连接,您需要在服务器上安装SSL/TLS证书。它还要求客户端和服务器进行自我介绍并交换基本信息以创建安全的加密会话。这种来回过程称为TLS握手,大多数浏览器支持两种版本,即TLS1.2(最常见)和TLS1.3。
以下是TLS1.2握手过程工作原理的概述:
以下图片显示了私钥和公钥对在TLS1.2握手中扮演的角色作用。
当涉及TLS1.3握手时,过程有所不同,特别是在密钥交换过程方面。我们的想法是将一切简化为一次往返。
但基本概念保持不变:公钥和私钥对用于安全地交换用于实际数据加密的对称密钥。
2、代码签名如何使用私钥和公钥对来保护可执行文件和代码?
让我们考虑一下公钥和私钥对在软件安全中的使用。保护代码、软件、可执行文件等的过程涉及开发人员或发布者使用代码签名证书向其软件可执行文件添加数字签名。
此过程使用加密密钥和函数(如哈希函数和加密)来验证创建资产的开发人员/发布者的身份,并验证文件或代码在签名后是否被修改。
还记得在本文章开头我们提到公钥加密和私钥解密的情况并不总是如此吗?这就是我们所指的情况。
但从每个密钥的使用方式和时间来看,这个过程是什么样的呢?
下图显示了代码签名的工作原理以及一半的加密密钥对的作用。
那么,公钥在哪里发挥作用呢?在客户端发生的软件验证过程中:
下图显示了当用户下载或尝试安装数字签名的软件或代码时,公钥在代码签名验证过程中的作用。
3、如何使用公钥和私钥对对文档进行数字签名?
当我们谈论文档签名时,并不是指在电子文件上签署手写签名。(注意:这很容易被伪造!)相反,我们是指将可验证的数字身份标记在数字文件(Word文档、PDF等)上,以使人们知道它是真实且没有被篡改的。
下图显示了数字签名(中和右)和电子签名(左)之间的区别。
您现在可能已经猜到,要对文档进行数字签名,您必须拥有文档签名证书。那么,公钥和私钥对在这件事情中扮演什么角色呢?这与我们之前描述的代码签名过程中私钥的作用类似:
下图显示了文档签名的工作原理,说明了如何使用文档签名私钥为Microsoft Office文档和PDF创建数字签名。
当最终用户下载文件时,他们的设备将检查其数字签名。
他们的系统将应用开发人员的公钥来解密文件的摘要。然后,它将比较原始哈希摘要与系统创建的哈希摘要是否匹配。
4、公钥和私钥对如何使电子邮件签名成为可能?
电子邮件签名是一种使发件人能够证明自己发送了邮件并且该消息不是由冒名顶替者发送的过程。这个过程使用电子邮件签名证书(也称为客户端认证证书),发件人将其安装到设备上或导入到电子邮件客户端中。
下图为Windows证书管理器中安装的电子邮件签名和客户端身份验证证书的示例屏幕截图。
那么,这个电子邮件签名过程是什么样的,公钥和私钥对又是如何参与其中呢?
下图为代码签名过程如何工作以及加密密钥在对电子邮件进行数字签名时发挥作用的屏幕截图。
收到消息后:
接收方会将其生成的哈希与之进行比较,以查看是否匹配。如果匹配,接收方就可以放心地确定该电子邮件是真实的。
5、公钥与私钥对如何实现安全、加密的电子邮件通信?
电子邮件加密是在用户点击“发送”按钮之前,将电子邮件内容(文字、图片/图形、附件等)随机混淆,将其转化为不可读形式的过程。但是,它不加密电子邮件标头信息。
加密电子邮件类似于将秘密、编码过的消息封存在安全的集装箱内;这样,在传输过程中或者在到达位置时(即在电子邮件服务器上)时就不会被查看。这就是为什么它有时被称为端到端加密,因为它从一个端点保护到另一个端点。
那么,在公钥与私钥对如何使用的方面,这个过程是什么样的?(注意:电子邮件的接收者和发送者都必须在其设备上安装电子邮件签名证书。)
下图显示电子邮件加密的工作原理以及在此过程中如何使用公钥和私钥。
写在最后
尽管您不需要了解加密密钥中如何使用公钥和私钥对的具体细节,但学习这方面的知识绝对有益。
因为加密密钥对于与互联网安全相关的一切都至关重要。无论是保护提交到您的网站的敏感数据,还是保护电子邮件、文档和文件的机密性和完整性,都离不开公钥和私钥对的安全性保障。
公钥和私钥对有助于实现以下功能:
身份验证
这可以归结为数字身份的验证和确认。它使得某个实体(例如网站、电子邮件发送者、软件发布方、文档创建者等)的合法性得以确认。
数据完整性
公钥和私钥对与哈希和加密等密码学过程结合使用,实现了证明消息和文件真实性的数字签名。
不可否认性
这意味着验证数据是否来自相关方,并且没有来自未经验证的源,只要保持私钥的安全性。
一言以蔽之,数字信任所基于的公钥密码学是互联网安全的核心。如果您不能确信网站、软件开发人员、文档创建者或电子邮件发送者的身份是合法的,那么您如何相信您发送或接收的任何数据是安全且可信的呢?您不能。这就是为什么保持加密密钥的安全至关重要。
我们希望本文能够强调安全地管理和存储私钥的重要性。通过保护这些关键资产的安全性,您可以防止所有敏感数据(包括您和客户的数据)不被泄露。
来源|Hashed Out
图源|Hashed Out
编辑|公钥密码开放社区
重要声明:本文来自公钥密码开放社区,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。
相关文章推荐
2025-01-08 14:51:55
2024-12-24 14:28:49
2024-12-09 14:37:19
2024-10-23 15:13:43
2024-10-15 15:02:14
我的评论
还未登录?点击登录