https加密、解密、数字签名和证书
其他
2020-04-02 22:19:18
阅读次数: 0
1、对称数据加密
- 通过密钥进行加密:科比发送给韦德消息,科比用密钥加密算法进行加密,韦德用科比给的密钥进行解密,就能看到消息。
- 但是这种加密的问题在于,如何让韦德知道科比生成的密钥,如果直接传输依然会被人偷窥。
2、RSA:非对称加密
- 保密的,称为私钥,仅自己可见。公开的,称之为公钥。可以直接在网络上发送给别人。
- 用私钥加密的数据,只有对应的公钥才能解密。用公钥加密的数据,只有对应的私钥才能解密。
- 首先,科比随便发送一个信息给韦德,韦德把公钥发送给科比,科比用韦德的公钥加密,然后生成密文发送给韦德,韦德用私钥解密,就可以看到信息了。
- 提升效率:用RSA发送密钥,然后用对称加密进行交流
- 但是这种方式很容易被中间人劫持。
3、中间人劫持
- 一旦韦德发送给科比的公钥被中间人劫持,中间人将自己的公钥发送给科比,科比会误认为是韦德发送的公钥,进行数据加密,这个时候中间人用自己的私钥就可以看到信息内容,同时将自己的公钥发送给韦德,这样就可以偷窥信息。
- 解决:问题在于如何安全的发送公钥,保证公钥的正确,不被劫持,或劫持后接收人能发现公钥错误。
4、数字签名和证书
- 我们只需要在乎发送公钥的安全就可以了,只要发送的公钥是正确的。就能保证不被偷窥。
- 将韦德的公钥和个人信息通过hash算法形成信息摘要(这个算法有一个极好的特性,只要输入数据有一点变化,那么生成的信息摘要就巨变),在通过CA(网络上的认证中心)的私钥形成数字签名。最后形成证书。这些操作都是韦德要发给科比公钥时候采用的,形成的证书。
- 收到数字证书之后会验证两个消息摘要是否相同,如果相同就说明未被修改。
- 但是这里还是有一个问题,如果中间人篡改了数字证书,用了自己的公钥和信息、自己生成的数字签名,在获取CA公钥的过程中再次截取,发送了自己的公钥。还是会出问题,但是CA会确保我们获取的是正确的。我们必须相信,这边是证书。
- 成功获取公钥了之后就可以传输密钥了,然后进行通信。
https
- 这里和上面是非常相似的。
发布了134 篇原创文章 ·
获赞 91 ·
访问量 16万+
转载自blog.csdn.net/weixin_44588495/article/details/102182236