zoukankan      html  css  js  c++  java
  • https连接过程

    https的属性

    防监听 服务器客户端直接的通信被第三方监听(你和朋友的电话被不法者偷听)

    防伪装 不法者可以把自己伪装成服务器或者客户端窃取数据等(不法者假装一些老人的子女说自己出事了向老人骗钱)

            防篡改 不法者可以串改用户接受到的页面(你打开网页的各种广告)

    https连接过程

    1. tpc3次握手 
    cs 发送syn=n,进入请求等待状态 
    sc 发送ack=n syn=n+1,进入相应等待状态
    cs 发送ack=n+1 syn=n+1,服务端收到后完成连接
    2. 客户端发送 ssl,tls版本 加密组件
    3. 服务端检查 ssl,tls,在加密组件中选出一个加密方法(服务端没有对应的加密组件断开连接 四次挥手)
    4. 服务端发送公钥证书
    5. 客户端检查证书的 有效时间,有效地址,颁发机构等信息。确认通过或选择信任后生产一个随机字符串(用于后期的对称加密)并用公钥加密发送到服务端
    6. 客户端生产一个握手信息,并使用服务器选出的加密方法进行加密,
    之后用随机字符串加密握手信息和加密后的握手信息发送到服务端。
    7. 服务端收到消息后用私钥解密随机字符串,然后随机字符串解密加密的握手信息和加密后的握手信息,
    并把解密的握手信息加密后和解密的值进行比较,
    之后同样用随机字符串加密握手信息和加密后的握手信息发送给服务端
    8. 服务端解密校验无误后完成连接,之后使用随机字符串用aes对此加密传输数据
    x. 四次挥手
    cs 发送fin=1,请求断开连接
    sc 发送ack=1,同意断开连接,进入资源回收状态
    sc 2ms发送fin=1,资源回收资源完毕,请求断开连接
    cs 发送ack=1,同意断开,服务端受到后断开连接

    总结:

    主要是使用了非对称加密和证书签发机构的信誉以及信息核对的方式完成了一个用于后期对称加密密钥的交换。

    1.非对称加密,https连接的核心,这是非对称加密所办不到的,毕竟把密钥发出来的传输的非法着也可以拿到,而非对称加密的话非法者无法直接获取另一半密钥,如果使用暴力破解的话需要很大难度,在很大程度上保证了密钥的安全性。

    2.证书签发机构的信誉,证书是一级关联一级的,不管是几级证书,都可以一级的找到它所属的根证书。这就加大了非法者伪造一个证书的难度和成本(非对称加密只能保证证书的安全性但是不能保证证书不会被非法者给替换掉,如果证书被替换掉的话那么所谓的安全性也就不存在了 ),

    3.信息核对,虽然非法者不知道密钥但是还是可以尝试篡改客户端或服务端发送的数据如果不进行核对的话就可能会接受到假的数据或错误的数据。 

    大概就这些东西了,希望大家加以指正,谢谢!!! 

  • 相关阅读:
    SDUT2482二叉排序树
    POJ 3278Catch That Cow
    SDUT2140图结构练习——判断给定图是否存在合法拓扑序列
    SDUT2142数据结构实验之图论二:基于邻接表的广度优先搜索遍历
    SDUT2141数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
    SDUT1466双向队列
    搜索
    搜索
    贪心算法
    贪心算法
  • 原文地址:https://www.cnblogs.com/fanhuo/p/9672164.html
Copyright © 2011-2022 走看看