美文网首页APP & programiOS软件重构与设计模式iOS
iOS知识复习笔记(18)---HTTPS建立连接过程

iOS知识复习笔记(18)---HTTPS建立连接过程

作者: 焦下客 | 来源:发表于2023-01-29 15:31 被阅读0次

    一、HTTPS的作用

    HTTPS(超文本传输安全协议)它是在TCP和HTTP之间加入了SSL/TLS安全协议,使得报文能够加密传输。在TCP三次握手之后还需要进行SSL/TLS的握手过程,才可进入加密报文传输。

    HTTPS通过以下三种方式来解决HTTP的安全问题
    1.通过信息加密,解决HTTP的窃听风险(明文传输,只要监听通信链路即可获得包内的数据)
    2.通过校验机制,解决HTTP的篡改风险(对服务器发来的数据没有校验,被篡改了也无法验证)
    3.通过身份认证,解决HTTP的冒充风险(可以冒充服务器发数据)

    下面展开来说说:

    信息加密这块使用的是混合加密

    1. 在通信建立前采用非对称加密的方式交换【会话秘钥】,后续就不再使用非对称加密了。
      2.在通信的过程中使用【会话秘钥】对称加密,来加密明文数据。

    这么做的原因有两个,一个是非对称加密速度上比对称加密慢,那么在通信过程适合对称加密
    二是因为对称加密只有一个秘钥,无法做到安全的秘钥交换,所以使用非对称加密安全的交换秘钥。

    校验机制:摘要算法+数字签名

    在发送内容之前对传输的内容进行摘要算法,得到一个哈希值,然后私钥加密哈希值得到数字签名,然后将内容和数字签名都发过去,服务器得到后将内容进行哈希运算得到的哈希值和用公钥解密数字证书得到的哈希值进行对比,看看是否内容被篡改过。
    但是这里还少了一个身份验证环节,如果公私钥被替换了,校验也会通过,所以这里要对公私钥身份进行验证,那么HTTPS规定只有权威机构能够颁布证书,而且拿到证书后也需要进行权威机构认证才行,就是我们所说的CA:
    1.服务器把自己的公钥注册到CA
    2.CA用自己的私钥将服务器的公钥数字签名并颁发数字证书
    3.客户端拿到服务器的数字证书后,使用CA的公钥确认服务器的数字证书的真实性,其中CA的公钥已经事先就置入到了浏览器或者操作系统中,数字证书包含(服务器公钥+CA的数字签名)
    4.从数字证书获取服务器公钥后,使用它对报文加密后发送
    5.服务器使用自己的私钥进行报文解密。

    TLS建立过程如下图:


    TLS建立过程.png

    相关文章

      网友评论

        本文标题:iOS知识复习笔记(18)---HTTPS建立连接过程

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