RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx

上传人:b****1 文档编号:2962866 上传时间:2023-05-01 格式:DOCX 页数:15 大小:24.89KB
下载 相关 举报
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第1页
第1页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第2页
第2页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第3页
第3页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第4页
第4页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第5页
第5页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第6页
第6页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第7页
第7页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第8页
第8页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第9页
第9页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第10页
第10页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第11页
第11页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第12页
第12页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第13页
第13页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第14页
第14页 / 共15页
RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx

《RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。

RFC2817在HTTP11中升级到TLSWord文档下载推荐.docx

这样就允许安全的和不安全的HTTP通信共享同一个众所周知的端口(在这个例子中,http在80端口而不是在像https在443端口)。

这种做法也支持“虚拟主机”,因此一个HTTP+TLS服务器能区分发往在同一个IP地址上的几个主机的消息。

HTTP/1.1[1]中将升级定义为逐跳的机制,本备忘录也描述了用于跨越HTTP代理建立端到端隧道的HTTPCONNECT机制。

最后,本备忘录为公用HTTP状态码和公用或私有升级产品符号建立了新的IANA注册。

本备忘录不影响到当前“https”URI方案的定义,该方案已经定义了一个单独的名字空间(http:

//example.org/和https:

//example.org/不等价)。

目录

1.动机2

2.介绍3

2.1.相关术语3

3.客户请求升级到TLS之上的HTTP3

3.1.可选的升级3

3.2.强制升级4

3.3服务器对升级请求的确认4

4服务器请求升级到TLS之上的HTTP4

4.1选项通知4

4.1强制通知4

5通过代理的升级5

6使用4xx(客户错误)状态码的原理6

7IANA的考虑6

7.1HTTP状态码登记7

安全考虑7

7.1https:

URI方案含义8

7.2CONNECT的安全考虑8

参考8

作者地址9

附录A 致谢10

完整版权声明10

致谢11

1.动机

过去在SSL3[3]上配置HTTP是用一个唯一的URI及TCP端口号,这样同单独的HTTP相区分。

方案“http”意味着在80端口单独的HTTP协议,而“https”表示在443端口的SSL之上的HTTP协议。

类似的,其它应用协议(例如:

snews,ftps)为区分安全和不安全的使用,要求使用二个端口号。

这个方法使得可用的众所周知的端口数减半。

在1997年12月华盛顿特区IETF会议上,应用区主管及IESG重申不赞成使用并行的“安全”端口号。

HTTP/1.1的升级机制可以在一个打开的HTTP连接上建立传输层安全[6]。

自最近两年来,大家已经广泛接受了这个建议,但对实现一个取代通常的用于网络浏览的443端口没有多大兴趣。

实际上,本备忘录不影响当前对https:

URI的解释。

但是,在HTTP之上建立的新的应用协议如Internet打印协议[7],需要这样的机制使得IETF标准化进程前进一步。

升级机制也解决了“虚拟主机”问题。

HTTP/1.1服务器不是给一个主机分配多个IP地址,而是使用主机:

头来区分web服务。

由于HTTP/1.1的使用日益流行,越来越多的ISP提供基于名字的虚拟主机,使得IP地址空间不会马上耗尽。

TLS(及SSL)和HTTP的早期版本一样受制于:

初始化的握手不指定需要的主机名,而只依赖于IP地址。

使用明文的HTTP/1.1升级:

作为TLS握手的序幕,――基于初始的主机:

头选择证书,――可使得ISP同样能提供基于名字的安全虚拟主机。

2.介绍

TLS又名SSL(安全套接字层),建立一个私有端到端连接,选项包括使用多种密码系统的相互之间的强认证。

开始时,一次握手过程使用三个子协议来设置一个记录层,认证端点,设置参数,和报告错误。

然后,由一个分层记录协议处理加密,压缩和重组连接的剩余部分。

后者希望做成完全透明。

例如,在TLS的记录标记或认证和HTTP/1.1的大块编码或认证之间没有关联。

客房和服务器都能使用HTTP/1.1[1]升级机制(14.42节)来指示TLS安全连接是必要的。

本备忘录定义了“TLS/1.0”升级记号和一个新的HTTP状态码,“426-需要升级”。

小节3和小节4描述了直接相连的客房和服务器的操作。

如小节5中阐述的,在实施任何操作之前中间代理必须建立端到端的隧道。

2.1.相关术语

在本文中的关键字“必须”,“必须不”,“要求”,“应该”,“不应该”和“可能”的解释见[RFC2119]。

3.客户请求升级到TLS之上的HTTP

当客户发送一个有包含记号“TLS/1.0”的升级包头的HTTP/1.1请求,它表示请求服务器在转换到TLS/1.0之后完成当前的HTTP/1.1请求。

3.1.可选的升级

当一个不安全的响应可接受时,一个客户在任何明文的HTTP请求期间可以要求转换到安全的操作流程:

GETHTTP/1.1

Host:

Upgrade:

TLS/1.0

Connection:

Upgrade

在这个例子中,服务器可以对明文的HTTP请求作正常响应或是转换到安全的操作中(细节见下一小节)。

注意在HTTP/1.1[1]中定义“无论在HTTP/1.1消息中何时出现升级关健字,该关健字必须出现在一个连接头的域中(14.10小节)”。

3.2.强制升级

若无法接受一个不安全的响应,客户必须首先发送一个选项请求来完成到TLS/1.0的切换(若可能的话)。

OPTIONS*HTTP/1.1

Connection:

3.3服务器对升级请求的确认

如HTTP/1.1[1]中定义的,如果服务器准备初始化TLS握手,必须发送中间的“101转换协议”且必须包括一个定义它要转换到的协议栈记号的升级响应头:

HTTP/1.1101SwitchingProtocols

TLS/1.0,HTTP/1.1

注意在101转换协议升级头中列出的协议记号定义了一个自底向上的栈。

如HTTP/1.1[1],10.1.2小节中定义的:

“服务器将在收到终止101响应的空行后立即将协议转换至响应的升级头域定义的协议。

一旦TLS握手成功完成,服务器必须继续对原来请求的应答。

任何TLS握手失败必须通过TLS错误告警规范导致连接中断,。

4服务器请求升级到TLS之上的HTTP

升级响应头域宣告一个服务器可能接受的协议升级。

和“426升级请求”状态码相结合,服务器能发送一个客户必须接受的协议升级来完成请求。

4.1选项通知

如在HTTP/1.1[1]中定义的,服务器可以在任何除了101或426的响应中包含一个升级头表示转换到任何列出的协议(组合)。

4.1强制通知

服务器可以使用“426需要升级”表示没有TLS无法完成客户请求,这个响应必须包含一个定义了需要的TLS版本记号的升级头域。

HTTP/1.1426UpgradeRequired

服务器应该在426响应中包含一个消息体以一种可读形式指示错误原因和描述另外对用户可用的路线。

注意,即使客户愿意使用TLS,它出必须使用在第3节中的操作来进行;

在426响应之后TLS握手不能马上开始。

5通过代理的升级

作为一个逐跳的头部,HTTP的每一对参加者间要协商升级。

若一个用户代理发送一个带升级头的请求给代理,它要求的是在自己和代理之间的改变而不是端与端之间的改变。

因为TLS特别要求端到端的连接提供认证并防备中间人攻击,本备忘录定义了CONNECT方法用以建立一个跨越代理的隧道。

隧道一旦建立,第3节描述的操作都可用于建立TLS连接。

5.1逐跳升级的含义

当一个源服务器从代理收到一个升级头并以101转换协议响应,它只是改变自己和代理之间连接的协议。

同样,一个代理可以返回给客户101响应来改变该连接上的协议,该协议独立于与源服务器通信的协议。

这种情况使得诊断426响应变得更加复杂。

由于升级是一个逐跳的头部,一个不识别426响应的代理可能会删去相随的升级头部,使得客户无法决定如何进行协议转换。

若客户端收到一个没有相随的升级头部的426状态码,它将如5.2节中描述的那样请求一个端到端隧道连接并一直请求以获得需要的升级信息。

这个端到端的升级定义是一个深思熟虑的选择。

这允许代理每端的增量实施,和在级联的代理间的优化协议,而无需知道改变之外的部分。

5.2用CONNECT请求一隧道

CONNECT方法请求代理代表它建立一个连接通道。

请求命令行的请求URI部分总是如URI通用语法[2]定义的一个‘authority’,该定义指明请求连接的目的主机名和端口号,由冒号分隔:

CONNECT:

80HTTP/1.1

:

80

其它HTTP机制能和CONNECT方法一起正常使用――除了端到端的协议升级请求――由于必须先建立隧道这是当然的。

例如,proxyauthentication可被用来建立创建隧道的机构:

Proxy-Authorization:

basicaGVsbG86d29ybGQ=

如同任何其它的管道HTTP/1.1请求,由隧道通过的数据可以在空行后立即发送。

通常的警告是:

若最终的响应是拒绝的话,数据可以被丢弃,若有超过一个TCP数据段未完成,则连接可以不做任何响应而被复位。

5.3使用CONNECT建立一个隧道

对CONNECT请求的任何成功(2xx)的响应都表示代理已经和被请求的主机及相应端口建立了连接,并且已经切换到在同该服务器的连接上开通隧道。

代理本身可能必须通过另一个代理才能到达请求的源服务器。

在这种情况下,第一个代理应该生成同下一个代理建立连接的请求,请求一个同authority的通道。

代理绝不能对2xx状态码响应,除非它已经有一个到authority直接的或隧道的连接。

一个源服务器接收到对自己的连接请求可以用2xx状态码响应,表示连接已经建立。

如果在任何时候任何一方断连,任何来自于该端的数据将传送到另一方,之后另一方的连接也被代理终止。

若有到先断连一端的数据未传送,这些数据都将被丢弃。

6使用4xx(客户错误)状态码的原理

可靠的,共同协商的升级特性需要一个明确的失败信号。

426升级请求状态码允许服务器明确地声明必须提供一个给定资源想要的协议扩展。

起先看起来,响应应具有重定向的某种形式(3xx码),类似到一个https:

URI的旧式重定向。

但不理解升级机制的用户代理使得不能这样做。

设想某个3xx代码已被赋与“需要升级”的含义;

一个不能识别它的用户代理将把它当做300。

它可能在响应中寻找一个“Location”头并试图重复对头部域中的URL的请求。

由于它不知道升级以合并TLS层,它最终在新的URL上会再次失败。

7.IANA的考虑

如BCP26[10]中描述的,IANA将为二种名字空间登记:

HTTP状态码

HTTP升级记号

7.1HTTP状态码登记

HTTP状态码的登记定义了在HTTP响应的状态行中的状态码记号。

这个名字空间的初始值是由这些定义的:

1.HTTP/1.1标准草案

2.Web分布式创作及版本[4][定义420-424]

3.WebDAV高级集合[5](正在制订)[定义425]

4.第6节[定义426]

要加入到该名字空间的值应该以标准记录文档格式提交IETF应用组。

任何这种文档应该通过HTTP/1.1[1]草案的状态词“过时”或“更新”使得可追踪来源。

7.2HTTP升级记号登记

HTTP升级记号登记为产品记号定义了名字空间,该名字空间用于在升级HTTP头部域中分辩协议。

每一个登记的记号应该同一个或一组规范相联系并有相联系的信息。

HTTP/1.1[1]标准草案定义了这些遵从产品生产的记号:

产品(product)=记号[“/”产品版本]

产品版本=记号

如BCP26[10]中描述的,登记应该基于先来先服务的原则。

这些定义不需要是IETF文档或是IESG关注的课题,但应该遵守下列原则:

1.一个记号一旦登记,就永远是登记了的。

2.登记必须指定一个负责登记的团体。

3.登记必须指定一个联系办法。

4.登记必须指定记号需要的文档。

5.负责的团体可以随时改变登记项。

IANA将记录下所有这种改变,并使它对需要的人可用。

6.对一个“产品”记号第一次登记负责的团体在他们能够登记前必须同意同“产品”记号一起的“版本”记号的晚些时候的登记。

7.若确实需要,IESG可以重新指定一个记号的负责团体。

通常这只是在负责团体无法联系到时才会这样。

本规范定义协议记号“TLS/1.0”作为TLS协议[6]定义的协议的标识符号。

并不要求升级记号的定义是公众可用的,但登记的联系信息应该是。

8.安全考虑

潜在的中间人攻击(删除升级头部)和目前http/https混用一样:

.移去升级头与重写网页来将https:

//links改变为http:

//links类似。

.只有在服务器首先通过安全或不安全的通道公开这类信息才会造成这种风险。

.若客户知道服务器可处理TLS,它就会坚持发送不带选项如OPTIONS的升级请求。

.最后如https:

定义警告的,“用户应该仔细检查服务器提供的证书以确定是否符合他们的期望。

此外,对于未明确激活TLS的客户,服务器可在响应中使用除了101或426的升级头来通告TLS能力。

既然TLS能力应该作为服务器的特性而不是就在手边的资源,它应一次发送就足够,让客户知道这个事实以在需要时使用。

8.1https:

URI方案含义

本备忘录没有影响‘https’的含义,广泛采用的超文本内容可以使用‘http’来区分安全和不安全的资源。

连接时安全特性的选择留给客户和服务器。

这允许每一方用任何可用的信息作出决定。

例如,用户代理可以依靠有关网络安全方面的用户设置,如“对不在我的本地网络上的所有POST操作都要求使用TLS”,或服务器可应用如‘本页面的FORM的提交和处理必须用TLS’等资源存取规则。

8.2CONNECT的安全考虑

一个类属的TCP通道是充满安全风险的。

首先,这种授权应该被限制在一小部分端口。

这里定义的升级机制只是在80端口的隧道上需要。

第二,既然隧道数据对代理不透明,对其它众所周知和保留端口的隧道有额外的风险。

例如,假定一个HTTP客户连接到25端口,他可以通过SMTP传播垃圾邮件。

参考

[1]Fielding,R.,Gettys,J.,Mogul,J.,Frystyk,H.,Masinter,L.,

Leach,P.andT.Berners-Lee,"

HypertextTransferProtocol--

HTTP/1.1"

RFC2616,June1999.

[2]Berners-Lee,T.,Fielding,R.andL.Masinter,"

URIGeneric

Syntax"

RFC2396,August1998.

[3]Rescorla,E.,"

HTTPOverTLS"

RFC2818,May2000.

[4]Goland,Y.,Whitehead,E.,Faizi,A.,Carter,S.andD.Jensen,

"

WebDistributedAuthoringandVersioning"

RFC2518,February

1999.

[5]Slein,J.,Whitehead,E.J.,etal.,"

WebDAVAdvancedCollections

Protocol"

WorkInProgress.

[6]Dierks,T.andC.Allen,"

TheTLSProtocol"

RFC2246,January

[7]Herriot,R.,Butler,S.,Moore,P.andR.Turner,"

Internet

PrintingProtocol/1.0:

EncodingandTransport"

RFC2565,April

[8]Luotonen,A.,"

TunnelingTCPbasedprotocolsthroughWebproxy

servers"

WorkInProgress.(Alsoavailablein:

Luotonen,Ari.

WebProxyServers,Prentice-Hall,1997ISBN:

0136806120.)

[9]Rose,M.,"

WritingI-DsandRFCsusingXML"

RFC2629,June

[10]Narten,T.andH.Alvestrand,"

GuidelinesforWritinganIANA

ConsiderationsSectioninRFCs"

BCP26,RFC2434,October1998.

[11]Bradner,S.,"

KeywordsforuseinRFCstoIndicateRequirement

Levels"

BCP14,RFC2119,March1997.

作者地址

RohitKhare

4KAssociates/UCIrvine

3207PaloVerde

Irvine,CA92612

US

Phone:

+16268067574

EMail:

rohit@4K-

URI:

http:

//www.4K-

ScottLawrence

AgranatSystems,Inc.

5ClocktowerPlace

Suite400

Maynard,MA01754

+19784610888

lawrence@

附录A 致谢

TheCONNECTmethodwasoriginallydescribedinaWorkinProgress

titled,"

TunnelingTCPbasedprotocolsthroughWebproxyservers"

[8]byAriLuotonenofNetscapeCommunicationsCorporation.Itwas

widelyimplementedbyHTTPproxies,butwasnevermadeapartofany

IETFStandardsTrackdocument.ThemethodnameCONNECTwasreserved,

butnotdefinedin[1].

Thedefinitionprovidedhereisderiveddirectlyfromthatearlier

memo,withsomeeditorialchangesandconformancetothestylistic

conventionssinceestablishedinotherHTTPspecifications.

AdditionalThanksto:

oPaulHoffmanforhisworkontheSTARTTLScommandextensionfor

ESMTP.

oRoyFieldingforassistancewiththerationalebehindUpgrade:

anditsinteractionwithOPTIONS.

oEricRescorlaforhisworkonstandardizingtheexistinghttps:

practicetocomparewith.

oMarshallRose,forthexml2rfcdocumenttypedescriptionandtools

[9].

oJimWhitehead,forsortingoutthecurrentrangeofavailableHTTP

statuscodes.

oHenrikFrystykNielsen,whoseworkontheMandatoryextension

mechanismpointedoutahop-by-hopUpgradestillrequires

tunneling.

oHaraldAlvestrandforimprovementstothetokenregistration

rules.

完整版权声明

Copyright(C)TheInternetSociety(2000).AllRightsReserved.

Thisdocumentandtranslationsofitmaybecopiedand

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2