ssl是怎么实现安全的?

ssl是怎么实现安全的?
答:
参考

首先, 服务器去找ca进行认证,获得证书。主要步骤如下:

  • 服务器发送自己得公钥和对应的服务器信息,域名等给ca服务器。

  • ca服务器对其选择一种hash算法,进行数据摘要

  • ca服务器将hash算法和生成的摘要(指纹)用ca服务器的密钥加密,生成签名。

  • 返回签名+信息(服务器的信息和ca服务器补充的一些签发者之类的信息)。这两个加起来就是证书了。

然后,浏览器验证证书,过程:

  • 在证书信息中找到签发者,浏览器从自己系统中由底到顶递归找出对应签发者的公钥;(找不到则认为是自签名的认证,有风险)

  • 对证书签名部分进行解密,获得hash算法(一个函数)和hash指纹(即摘要);(解密成功,也代表证书确实是对应机构颁发的)

  • 用hash算法对证书信息部分进行摘要,得到新的指纹,比较两个指纹,如果一致,则信息部分没有被修改。(因为信息部分是明文,极易被修改,所以要用签名验证)

  • 验证证书信息部分中的url,和浏览器要访问的url是否是同一个。是的话,可以信任

  • 对证书信息再次进行判断:是否吊销,是否过期,是否已经被记录为黑名单。

最后,浏览器和服务器之间建立https的过程:

答:

  • 首先是浏览器访问对应服务器,发送一个随机数1和自己支持的加密算法;

  • 服务器接收到访问,返回消息,随机数2和自己选择的加密算法;

  • 服务器再发送证书;

  • 客户端验证证书,过程参考上方;

  • 客户端验证成功,生成随机数3,将1,2,3组成密钥,用证书内的公钥加密发送给服务器;

  • 服务器对信息解密,获得对称密钥;

  • 客户端对要发送的信息,用(对称)加密算法加密(其中,加密的核心是三个随机数),同时对信息进行用非对称公钥签名;

  • 服务器用对称密钥解密,获得信息。同时用非对称私钥验证签名(签名过程参看1),查看是否密文有直接被人修改(就算不知道内部具体内容,也可以直接修改破坏信息)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值