zoukankan      html  css  js  c++  java
  • #HTTP协议学习# (十)拓展-HTTPS协议

    HTTPS(Hypertext Transfer Protocol over Secure Socket Layer,基于SSL的HTTP协议)使用了HTTP协议,但HTTPS使用不同于HTTP协议的默认端口及一个加密、身份验证层(HTTP与TCP之间)。

    HTTPS通信方式:

      客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

    (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

    (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

    (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

    (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

    (5)Web服务器利用自己的私钥解密出会话密钥。

    (6)Web服务器利用会话密钥加密与客户端之间的通信。

    [

    note:

    HTTPS =HTTP +SSL

    HTTP:80端口 HTTPS:443端口

    ]

    HTTPS解决的问题

    1 . 信任主机
    采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 此证书只有用于对应的server 的时候,客户端才信任此主机.
     
    2 . 通讯过程中的数据的泄密和被窜改
      1. 一般意义上的https, 就是 server 有一个证书.
        a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.
        b) 服务端和客户端之间的所有通讯,都是加密的.
          i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
          ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.
     
      2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
        a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.
        b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.
     

    参考:

    http://www.cnblogs.com/ok-lanyan/archive/2012/07/14/2591204.html

    http://www.2cto.com/net/201207/139401.html

  • 相关阅读:
    BZOJ 3144 [Hnoi2013]切糕
    一场比赛:20170707
    BZOJ 2815 [ZJOI2012]灾难
    BZOJ 1088 [SCOI2005]扫雷Mine
    BZOJ 1052 [HAOI2007]覆盖问题
    BZOJ 3505 [Cqoi2014]数三角形
    BZOJ 2957 楼房重建
    BZOJ 2654 tree
    丁酉年六月十一ACM模拟赛
    BZOJ 3438 小M的作物 & BZOJ 1877 [SDOI2009]晨跑
  • 原文地址:https://www.cnblogs.com/bukudekong/p/3837045.html
Copyright © 2011-2022 走看看