作家
登录

HTTPS那些协议:TLS, SSL, SNI, ALPN, NPN

作者: 来源: 2018-03-26 15:24:27 阅读 我要评论

  • } ServerName; 
  •  
  • enum { 
  •     host_name(0), (255) 
  • } NameType; 
  •  
  • opaque HostName<1..2^16-1>; 
  • struct { 
  •     ServerName server_name_list<1..2^16-1> 
  • } ServerNameList; 
  • 我们看本文刚开端的例子,第4行发往 github.com 的 ClientHello 中的 SNI Extension 字段:

    1. Extension Header     ||            Extension Payload (SNI) 
    2. --------------------------------------------------------------------------------------------------- 
    3. ExtensionType Length || PayloadLength Type      ServerLength ServerName 
    4. --------------------------------------------------------------------------------------------------- 
    5. 00 00         00 0f  00 0d            00        00 0a        67 69 74 68 75 62 2e 63 6f 6d 
    6. sni(0)        15     || 13            host_name 10           github.com 

    ALPN/NPN

    TLS/SSL 是在传输层之上应用层之下的协定,是以 HTTP 协定的内容不受影响。这些加刺探取非对称加密算法是以须要一个官方来宣布公钥,这就是 密钥基本举措措施(CA)。是以各浏览器会内置一些 CA 的根证书,这些 CA 可以进一步授权其他的域名,如许你的浏览器就可以对正在拜访的域名进行身份认证。

    ALPN(Application-Layer Protocol Negotiation)也是 TLS 层的扩大,用于协商应用层应用的协定。它的前身是 NPN,最初用于支撑 Google SPDY 协定(现已标准化为 HTTP/2)。 TLS 客户端和办事器版本的问题,导致 SPDY->HTTP/2 和 NPN -> ALPN 的切换过程激发了不少阵痛:

    • The day Google Chrome disables HTTP/2
    • 大年夜启用 HTTP/2 导致网站无法拜访说起

    是以 以标准先行的方法来推动 Web 基本举措措施 已成为今日 Web 平台的共鸣。这里我们不提那些仍然在进行作坊式临盆的(类)浏览器厂商,任何阻挡 Web 平台成长的实现(甚至标准,试看 XHTML, OSI…)迟早会被镌汰。

    言归正传,ALPN 定义在 RFC 7301 - Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension,

    1. enum { 
    2.     application_layer_protocol_negotiation(16), (65535) 
    3. } ExtensionType; 
    4.  
    5. opaque ProtocolName<1..2^8-1>; 
    6.  
    7. struct { 
    8.     ProtocolName protocol_name_list<2..2^16-1> 
    9. } ProtocolNameList; 

    我们看本文刚开端的例子,第4行发往 github.com 的 ClientHello 中的 ALPN Extension 字段:

    1. Extension Header     ||            Extention Payload (ALPN) 
    2. --------------------------------------------------------------------------------------------------- 
    3. ExtensionType Length || PayloadLength StringLength Protocol StringLength Protocol 
    4. --------------------------------------------------------------------------------------------------- 
    5. 00 10         00 0e  00 0c            02           68 32    08           68 74 74 70 2f 31 2e 31 

        推荐阅读

        苹果再减600万部iPhone X产量 累计砍掉7500万部

      沙龙晃荡 | 3月31日 京东、微博、华为拭魅战专家与你合营商量容器技巧实践! iPhone X为何发卖低迷,媒体的分析比较一致。重要有两个原因,起首是订价过高。苹不雅999美元的订价创造了公司>>>详细阅读


      本文标题:HTTPS那些协议:TLS, SSL, SNI, ALPN, NPN

      地址:http://www.17bianji.com/lsqh/40890.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)