https进行加密传输

SSL握手协议的过程

握手阶段分成以下五步:

第一步,客户端给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。

第二步,服务器确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。

第三步,客户端确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给服务器。

第四步,服务器使用自己的私钥,获取客户端发来的随机数(即Premaster secret)。

第五步,客户端和服务器根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。

 

 

客户端是没有证书的,也就没有公钥和私钥。
SSL握手阶段,服务器把证书传输给客户端,同时也就传输了公钥(公钥是证书的一部分)。

有一个问题?如何保证公钥传输正确,如何防止中间人攻击?

     找到一个拥有公信力、大家都认可的认证中心(CA)

    服务器在给客户端传输公钥的过程中,会把公钥以及服务器的个人信息通过Hash算法生成信息摘要

     为了防止信息摘要被人调换,服务器还会用CA提供的私钥对信息摘要进行加密来形成数字签名

     并且,最后还会把原来没Hash算法之前的个人信息以及公钥 和 数字签名合并在一起,形成数字证书

     当客户端拿到这份数字证书之后,就会用CA提供的公钥来对数字证书里面的数字签名进行解密来得到信息摘要,然后对数字证书里服务器的公钥以及个人信息进行Hash得到另外一份信息摘要。最后把两份信息摘要进行对比,如果一样,则证明这个人是服务器,否则就不是。

     这样,就可以保证服务器的公钥安全着交给客户端了。从而防止了中间人攻击。

 

由客户端来对这个证书进行有效性认可,再由这个客户端来生成对称密钥。
对称密钥用服务器证书中的公钥加密后,传回给服务器。只有服务器才能解密这个信息,也就只有服务器才知道你的对称密钥。
只要这个SSL连接没有关闭,后续的所有数据,无论是客户端发出的还是服务器发出的,均会使用这个对称密钥加密。
对称加密算法中,依赖的是密钥的保密性,只要密钥没有被泄露,对称加密的结果被截获也没有什么意义。而密钥是用公钥加密的,只能由服务器解开。
===================================
所以在SSL连接没有建立的时候,服务器给客户端发的可以被截获的数据仅有证书,没有其他的数据。其他的数据都要等SSL连接建立之后加密传输。
所以https的证书加密还是安全的,在没有私钥的情况下不存在泄露的可能。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值