理解与总结
- 数字证书+签名有认证的功能,签名有保证数据完整性的功能
- 总共有三个角色:发送方,接收方,CA(数字证书认证机构)
- 默认是所有人都信任CA,有CA的公钥
- 发送方将数据进行一次md5或者hash,生成其摘要
- 然后对摘要,用自己的私钥进行加密,生成签名
- 数据->摘要->数字签名
- 然后再将自己的数字证书附带着,证书是CA私钥加密过的发送方的信息,其中有发送方的公钥
- 所以发送方发送的东西有:数据(加密过的,可以是商量好的对称密钥加密,也可以是非对称的公钥),数字签名,证书
- 接收方收到,首先用CA的公钥来解密证书,获取到发送方的公钥(认证)
- 用发送方的公钥对签名进行解密,获得摘要
- 将数据用对称的密钥或者自己的私钥进行解密
- 将解密的数据进行md5 or hash进行加密生成摘要,与之前解密得到的摘要进行对比,如果一致,则说明数据完整(完整性)
- 签名是用自己的私钥进行加密的摘要,就好比用自己的笔迹来写一段字
- 数字证书以及CA用来鉴别笔迹
- 而摘要用来校验数据的完整or正确性
帮助理解的例子
这里有一个生动形象的例子,讲的非常棒,是别的博客中提到的,给一个传送门,有需求可以去看看
数字签名过程及数字证书