数字证书和密钥加密的理解

1.密钥

    密钥分为公钥私钥,私钥只有一把,一般归内容发布者所有,而公钥有很多吧,有内容发布者发布给内容接受者,内容接受者用公钥来解密内容发布者用私钥加密的内容。

2.密钥加密解密过程

    首先,内容发布者会对内容进行hash处理,生成内容的摘要,然后使用私钥对摘要机型加密形成数字签名,最后将内容和数字签名一同发给内容接受者。
    内容接受者收到内容和数字签名后,首先对内容也进行hash处理,获取一份摘要,然后使用公钥对数字签名进行解密,获取原始的摘要,最后比对两份摘要来判断内容在发送过程中是否又被修改。

3.风险

    会不会有这种情况存在,即内容接受者这边的公钥被人恶意替换掉,换成未知者的公钥,那么该人就可以劫持内容发布者发送的内容和数字证书,使用内容发布者同样的手段,用自己的私钥对内容的摘要进行加密后形成新的数字证书替换掉原来的数字证书,发布给内容接受者,这样的话,原来的内容就可以被随意修改并且发送而不被察觉(因为公钥也被恶意换掉了)。

4.CA的存在意义

    CA是证书中心或者证书权威的意思(Certificate Authority),他有两个特点:
1.他能保证他的私钥绝对不会泄露出去
2.他能提供公钥加密的业务,即使用自己的私钥加密别人的公钥,加密后的公钥就是CA颁发给内容发布者的数字证书
3.向所有内容接受者发布公钥(即根证书)
    而内容发布者仍然使用自己的私钥对内容摘要进行加密形成数字签名,但是发布的时候除了内容和数字签名,另外带上数字证书。
    内容接受者收到内容,数字签名和数字证书后,首先判断数字证书(即加密过的发布者公钥)是否是由CA颁发的,怎么验证?就是首先保存一份CA自己的公钥,然后使用这份公钥解密数字证书,获取到内容发布者的公钥,然后的流程就和之前一样了,解密数字签名获取摘要,然后和内容的摘要比对,判断是否内容有发生变化。
    有了CA以后,内容接受者就不需要保存每一个内容发布者的公钥了,只要保存CA的公钥,即根证书,就可以检验内容发布的时候携带的数字证书,获取发布者的公钥,从而校验数字签名。

你可能感兴趣的:(其他)