详细介绍:【网络通讯安全认证的理解:从密钥签名、数字证书到 HTTPS/TLS 流程】

网络通讯安全认证的理解:从密钥签名、数字证书到 HTTPS/TLS 流程

一、密钥对(公钥和私钥)和签名的理解

这里假设有通讯方A和通讯方B进行加密通讯。

1.1 公钥

公钥是可以公开的,主要有两个作用
第一个是用来对通讯数据进行加密,如果A发送数据,那么就你需要使用B提供的公钥进行加密,然后B收到数据之后用自己的私钥进行解密。

第二个作用就是用来验证签名,因为签名是由B的私钥生成的,所以就可以用B先前提供给A的公钥进行验证签名是否真的来自于对方,防止数据伪造。

1.2 私钥

私钥是必须保密的,只有自己持有和指导,一旦公开,那数据就没有安全性可言了,主要也是两个作用
第一个是当A使用B的公钥加密数据时候,B就可以使用私钥进行解密
第二个是用于签名的生成,例如B使用私钥生成了签名,那么发送给A,A就可以使用B提供的公钥进行解密。

私钥的格式如下

-----BEGIN PRIVATE KEY-----
MIGTAgSDFSDFSDFDSCSDFDSFDSFEHBHkwdwIBAQQg55Buo2jTJYs2Fmsj
IGcryPcjT4JeD
-----END PRIVATE KEY-----

公钥的格式如下

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzsdaAQYIKoZIz3233QcDQgAE6Xmz1Hi60GBcUYrvuYEr1K9sauPC
p5799jp5xNsdfLk4C05asdsadasfdP4+mgNzmgNz0xGEOltrOndxxaw==
-----END PUBLIC KEY-----

1.3 签名

签名其实可以理解为传统意义上的手写签名。主要为了证明这个文件或者物品是签名的那个人。
在通讯上,若发送者A发送一段数据,那么如果证明这个数据就是A发出的,万一是其他人伪造的呢?以及发送的数据到底有没有存在篡改或者丢失,所以为了解决这两个问题,发送者可以多发送一份数据–签名。

签名的生成和验证过程是什么样的?

A:首先对原始数据(要发送给对方的数据)进行哈希值算法计算,然后使用私钥对这个哈希值进行加密,这个加密数据就是签名。然后将原始数据和签名一起发送给对方。

B:收到原始数据和签名后,使用发送方之前提供的公钥对签名进行解密,若解密失败,说明这个签名不是对方发送的,若解密成功,则确认该数据确确实是对方发送的(作用1),之后可以看到一串哈希值,然后在本地对原始数据进行哈希值计算,最后将两个哈希值进行比较,则可以确认对方发送的数据是否被篡改(作用2)。

签名验证流程
加密通讯流程
B用自己的私钥生成签名
B生成数据
posted @ 2025-10-29 17:05  gccbuaa  阅读(7)  评论(0)    收藏  举报