美文网首页
探究HTTPS

探究HTTPS

作者: 小凡凡520 | 来源:发表于2018-09-20 22:56 被阅读1次
    背景

    随着HTTP的应用越来越广泛、一些问题便随之而来。例如:

    1、窃听风险。由于HTTP本身并不具备加密属性、所有的信息都等于在互联网上裸奔。
    2、身份伪装。用户不知道自己的需求是否发送给了目标服务器、有可能被钓鱼。
    

    HTTPS、正致力于解决这些安全性问题。

    TLS/SSL协议

    TLS/SSL协议提供了身份验证、信息加密和完整性校验的功能。说白点,就是在明文的上层和TCP层之间加上一层加密,这样就保证上层信息传输的安全

    对称加密

    HTTPS在正常传输时、使用的对称加密算法、保证传输效率。


    1552225-d4c61c9ef76420dc.png

    对称加密中A/B双方都持有相同的秘钥。发送数据时加密、接收数据时解密。

    非对称加密

    HTTPS在握手时使用非对称加密、保证协商私钥时的私密性。


    1552225-0c56605fcbae4fad.png

    B持有(无数个)锁、每次发送数据时都把数据锁好。A接到盒子后、用手里的钥匙解密。

    这样做的好处是、即使客户端B的锁泄漏了、攻击者也无法获知真正的信息、因为他并没法解密。

    HTTPS工作的过程
    • 对称加密的算法(秘钥)如何确定
      我们希望服务器与每一个人的加密算法、都是不固定的。但服务器再和每个用户协商算法的时候、依旧没有加密、仍旧存在被截获的危险。

    • 如何安全的协商加密的算法(秘钥)

      1、服务器自己持有私钥
      2、服务器将公钥分发给所有想要与自己链接的用户
      3、用户将加密的核心算法用公钥加密之后传给服务器
      4、服务器用私钥对加密的核心算法进行解密并确认使用该算法。
      
    • 使用公钥加密协商一定是安全的?


      1552225-433042425d4b7c0b.png

    如上图所示、红色的秘钥已经被攻击者获得、攻击者可以随意解密甚至串改二者的通讯信息。

    • 如何保证公钥发布者的身份?


      1552225-3bfd7d15b5212b3d.png

    上图中、蓝色部分(公钥、数字证书)都是由第三方机构提供的。公钥提供给客户端、数字证书提供给服务器。而红色部分(数字签名)也是在服务器申请证书的时候由第三方机构书写。用户只需要信任第三方机构并集成即可。

    HTTPS实际的工作过程
    1552225-f4422d69eab79d38.png
    1、客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了
    2、服务器从中选出一套加密算法和hash算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的办法机构
    3、客户端收到网站的证书之后要做下面的事情:
        (1)验证证书的合法性
        (2)如果验证通过证书,浏览器会生成一串随机数,并用证书中的公钥进行加密
        (3)用约定好的hash算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器
    4、服务器接收到客户端传送来的信息,要求下面的事情:
        (1)用私钥解析出密码,,用密码解析握手消息,验证hash值是否和浏览器发来的一致
        (2)使用密钥加密消息,回送
    5、如果计算法hash值一致,握手成功

    相关文章

      网友评论

          本文标题:探究HTTPS

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