在HTTP/1.1中升级到TLS(Upgrading to TLS Within HTTP/1.1)

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:06   210   0
<pre class="blockcode">本备忘录的状态<br><br>本文档为Internet社区定义Internet标准协议,同时征求改进意见和建议。关于本<br>协议的现状和标准化状态请参阅“Internet官方协议标准”(STD 1)。本备忘录的发布不受<br>任何限制。<br><br>版权声明<br>Copyright (C) The Internet Society (2000).  All Rights Reserved.<br><br>摘要<br><br>本文档描述如何使用HTTP/1.1的升级机制在一个现存的TCP连接上发起安全传输<br>层(TLS)。这样就允许安全的和不安全的HTTP通信共享同一个众所周知的端口(在这<br>个例子中,http在80端口而不是在像https在443端口)。这种做法也支持“虚拟主<br>机”,因此一个HTTP&#43;TLS服务器能区分发往在同一个IP地址上的几个主机的消息。<br>HTTP/1.1 [1]中将升级定义为逐跳的机制,本备忘录也描述了用于跨越HTTP代理<br>建立端到端隧道的HTTP CONNECT机制。最后,本备忘录为公用HTTP状态码和公用或<br>私有升级产品符号建立了新的IANA注册。<br>本备忘录不影响到当前“https”URI方案的定义,该方案已经定义了一个单独的<br>名字空间(http://example.org/ 和 https://example.org/ 不等价)。<br><br><br><br><br><br><br><br>目录<br>1.  动机 2<br>2.介绍 3<br>2.1.  相关术语 3<br>3. 客户请求升级到TLS之上的HTTP 3<br>3.1.  可选的升级 3<br>3.2. 强制升级 4<br>3.3 服务器对升级请求的确认 4<br>4 服务器请求升级到TLS之上的HTTP 4<br>4.1 选项通知 4<br>4.1 强制通知 4<br>5 通过代理的升级 5<br>6 使用4xx(客户错误)状态码的原理 6<br>7 IANA的考虑 6<br>7.1 HTTP状态码登记 7<br>安全考虑 7<br>7.1 https:URI方案含义 8<br>7.2 CONNECT的安全考虑 8<br>参考 8<br>作者地址 9<br>附录A 致谢 10<br>完整版权声明 10<br>致谢 11<br><br><br>1.  动机<br>过去在SSL3[3]上配置HTTP是用一个唯一的URI及TCP端口号,这样同单独的<br>HTTP相区分。方案“http”意味着在80端口单独的HTTP协议,而“https”表示在<br>443端口的SSL之上的HTTP协议。类似的,其它应用协议(例如:snews,ftps)为区<br>分安全和不安全的使用,要求使用二个端口号。这个方法使得可用的众所周知的端口<br>数减半。<br>在1997年12月华盛顿特区IETF会议上,应用区主管及IESG重申不赞成使用并行<br>的“安全”端口号。HTTP/1.1的升级机制可以在一个打开的HTTP连接上建立传输层安<br>全[6]。<br>自最近两年来,大家已经广泛接受了这个建议,但对实现一个取代通常的用于网<br>络浏览的443端口没有多大兴趣。实际上,本备忘录不影响当前对https:URI的解<br>释。但是,在HTTP之上建立的新的应用协议如Internet打印协议[7],需要这样的机<br>制使得IETF标准化进程前进一步。<br>升级机制也解决了“虚拟主机”问题。HTTP/1.1服务器不是给一个主机分配多个<br>IP地址,而是使用主机:头来区分web服务。由于HTTP/1.1的使用日益流行,越来越<br>多的ISP提供基于名字的虚拟主机,使得IP地址空间不会马上耗尽。<br>TLS(及SSL)和HTTP的早期版本一样受制于:初始化的握手不指定需要的主机<br>名,而只依赖于IP地址。使用明文的HTTP/1.1升级:作为TLS握手的序幕,――基于<br>初始的主机:头选择证书,――可使得ISP同样能提供基于名字的安全虚拟主机。<br>2.介绍<br>TLS又名SSL(安全套接字层),建立一个私有端到端连接,选项包括使用多种密码系<br>统的相互之间的强认证。开始时,一次握手过程使用三个子协议来设置一个记录层,认证<br>端点,设置参数,和报告错误。然后,由一个分层记录协议处理加密,压缩和重组连接的<br>剩余部分。后者希望做成完全透明。例如,在TLS的记录标记或认证和HTTP/1.1的大块编<br>码或认证之间没有关联。<br>客房和服务器都能使用HTTP/1.1[1]升级机制(14.42节)来指示TLS安全连接是必要<br>的。本备忘录定义了“TLS/1.0”升级记号和一个新的HTTP状态码,“426-需要升级”。<br>小节3和小节4描述了直接相连的客房和服务器的操作。如小节5中阐述的,在实施任<br>何操作之前中间代理必须建立端到端的隧道。<br>2.1.  相关术语<br>在本文中的关键字“必须”,“必须不”,“要求”,“应该”,“不应该”和“可<br>能”的解释见[RFC2119]。<br>3. 客户请求升级到TLS之上的HTTP<br>当客户发送一个有包含记号“TLS/1.0”的升级包头的HTTP/1.1请求,它表示请<br>求服务器在转换到TLS/1.0之后完成当前的HTTP/1.1请求。 <br>3.1.  可选的升级<br>当一个不安全的响应可接受时,一个客户在
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP