美文网首页
详解 SSL 握手流程

详解 SSL 握手流程

作者: ZhaoXianSheng | 来源:发表于2018-02-02 18:47 被阅读37次

    0 . 为什使用HTTP

    HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

    一 . SSL 分为三种

    1.只验证服务器的SSL握手过程
    2.验证服务器和客户端的SSL握手过程
    3.恢复原有会话的SSL握手过程

    二. 只验证服务器的SSL握手过程(即单向认证)

    1.浏览器:给出 (1)SSL协议版本号 (2)一个客户端生成的随机数(随机数A)(3)客户端支持的加密方法。
    2.服务器:(1)确认加密方法,(2)发出证书cer,(3)发出随机数B
    3.浏览器:(1)确认证书有效,(2)使用证书生成随机数C (3)使用证书cer 加密随机数C,发给服务器
    4.服务器:利用私钥,得到随机数C.

    截止到第四步,服务器:拥有 (1)随机数ABC,(2)双方约定的加密方法 客户端拥有:(1)随机数ABC,(2)双方约定的加密方法

    5.服务器:利用加密方法,加密ABC,生成对话秘钥,加密整个对话过程

    三. 交互过程中的 对称与非对称

    1.握手过程,双方使用的RSA非对称加密方式,非对称加密安全,但是所耗资源大
    2.握手完成之后,两者的通信则是使用对称加密方式。对称加密简单,效率比较高

    四. 重要概念

    1.单向认证: 只要求站点部署了ssl证书就行,任何用户都可以去访问,不需要客户端拥有CA证书。本质:客户端认证服务器,不是假冒的
    2.双向认证:相比单向认证,服务器需要认证 客户端。

    五.个人 疑惑

    0.客户端如何认证 服务器发来的公钥呢?
    确定:电脑内安装了一些CA,理解为证书颁发机构,CA可以验证公钥是否是正确的
    1.单向认证哪来的 SSL版本信息,难道不需要证书么?不是跟单向认证概念中不需要CA证书冲突了么?
    猜想:SSL版本从证书颁发机构读取。
    2.双向认证 多了什么?
    猜想:在客户端验证完服务器后,本来应该生成随机数C发给服务器的,但是多做了一步:将本地安装的CA证书 公钥 发送到服务器。服务器验证成功 继续 下一步,验证不成功 关闭,
    3.单向安全么?
    猜测:安全,只能拦截服务器发过来的 加密数据,并不能拦截客户端发送的加密方案,随机数。

    六.个人简易总结

    1.我 给你 SSL 随机数 加密方案
    2.服务器 加密方案不错,我用了,给你一个 证书 和 随机数
    3.客户端 这证书是对的,你是真的服务器,再给你一个随机数。

    这个时候 都有 ABC 加密方案 ,然后生成一个会话秘钥。进行加密

    相关文章

      网友评论

          本文标题:详解 SSL 握手流程

          本文链接:https://www.haomeiwen.com/subject/zomezxtx.html