HTTPS协议详述

        原文:https://en.wikipedia.org/wiki/HTTPS

        HTTPS(也称为基于TLSHTTP[1][2]基于SSL的HTTP[3]以及安全HTTP[4][5]是一种基于计算机网络,被广泛应用于互联网安全通信协议HTTPS由基于超文本传输协议(HTTP)通过安全传输层或它的前身-安全套接字层加密的连接组成。HTTPS的主要功能验证访问的网站以及保护隐私所传输数据的完整性

        HTTPS在互联网上的部署广受欢迎,提供了证网站以及通信中相关Web服务器的功能,这可以防止中间人攻击(Man-in-the-middle-attacks,简称:MITM攻击)。此外,它还提供在客户端和服务器之间通信的双向加密可以防止窃听篡改有和/或造的通信内容[6]。在实践中,HTTPS为通信双方提供了一个合理的保障,用户能够与正确的网站进行通信,而网站能够验证使用者是正确的用户(而不是冒名顶替者),HTTPS还能确保用户和站点之间的通信内容不能被读出或由其他第三伪造。

很久以前HTTPS连接被主要用于互联上的支付业务,电子邮件以及企业信息系统中的敏感交易。在2000年代末和2010年代初,HTTPS开始普遍使用所有类型的网站网页的真实性,保护账户以及用户通信内容,身份和上网浏览隐私信息

 

概述

        HTTPS统一资源标识符URI)方案标准的HTTP方案具有相同的语法,方案令牌除外。然而,HTTPS浏览器发送数据时使用加入加密层SSL/TLS通信SSL/TLS特别适合用于HTTP,因为即使只有一的通信认证可以提供保护而基于互联网的HTTP事务,通常只有服务器身份认证(由客户端检查服务器的证书)。

HTTPS在不安全的网络建立了一条安全通道。窃听中间人攻击之间提供了合理的保护,它提供了充分的密码套件,并且确保服务器证书验证安全可信

        因为HTTPS完全基于TLS来运行HTTP,底层HTTP协议的全部内容进行加密。包括请求URL(求特定网页),查询参数,报头和cookies(通常包含用户身份信息)。但是,由于主机(网站)地址和端口号是底层TCP/IP协议的基本组成部分,HTTPS不能阻止这些信息暴露。在实践中,这意味着即使正确配置的网络服务器上,窃听者可以推断网络服务器的IP地址和端口号,以及通信的数据量(数据传输)和持续时间(会话的长度),但是获取不到通信的内容[6]

        Web浏览器通过预装软件认证中心来知道如何信任HTTPS网站。认证中心Symantec,Comodo,GoDaddyGlobalSign)通过Web浏览器的创造者提供有效证件方式得到信任。因此,当且仅当以下所有条件都满足时,用户可以信任通过HTTPS访问网站:

        l 用户信任的浏览器软件正确实现HTTPS正确预装证书中心

        l 用户信任的证书中心保证只有合法网站。

        l 该网站提供有效的证书,是由值得信任的机构签署。

        l 该证书正确识别相应的网站(例如,当浏览器访问“ https://example.com ”,接收到的证书是正确的“example.com”,而不是其一些实体)。

        l 用户信任的协议加密层(SSL/TLS)能够足够安全地拦截窃听者

        HTTPS在不安全的网络环境下(如公共WiFi接入点)尤其重要,因为在同一个本地网络上的任何人都可以进行数据包查看没有HTTPS保护的敏感信息。此外,许多免费使用,甚至付费的WLAN网络都参与数据包注入,以便在网页上加入他们自己的广告。 然而,这也能在很多方面人恶意利用网页注入恶意软件和窃取用户的私人信息[7]

        HTTPS对于Tor匿名网络连接也非常重要,恶意的Tor节点可以破坏或改变以不安全的方式通过他们的内容,并在连接注入恶意软件。 这就是为什么电子前沿基金会Tor计划已经开始到推广HTTPS原因[6]HTTPS已经包含在Tor浏览器套件[8]

       随着越来越多的有关全球大规模监视和黑客窃取个人信息的消息被无论使用任何Internet连接方式,在所有网站上使用HTTPS的安全协议变得越来越重要[9][10]。虽然一个用户访问单个页面产生的元数据包含敏感信息但是当很多信息组合在一起时,可能会露很多相关用户的信息并危害用户的隐私[2][11][12]

部署HTTPS也允许使用SPDYHTTP/2,即新一代的HTTP,旨在降低页面加载时间和延迟。

       推荐使用HTTP严格传输安全 (HSTS)配合HTTPS保护用户免受中间人攻击,特别是SSL剥离[12][13] 

        HTTPS不应与RFC 2260中被指定的安全HTTPS-HTTP)混淆,后者很少被使用

在网站使用

       截至2015年10月3日,30.1%的互联网143909最受欢迎的网站已经安全实现HTTPS[14]

浏览器集成

       大多数浏览器如果收到无效证书,会提示警告。 老版本的浏览器,连接到一个具有无效证书网站时,将向用户弹出一个对话框提示,询问他们是否继续访问 新版本的浏览器整个窗口显示一条警告。 新版本的浏览器也会在地址栏突出显示网站的安全信息。在新版本的浏览器中,扩展验证证书会使地址栏变为绿色。当用户访问包含加密和未加密的内容混合站点时大多数浏览器也会向用户示警告。

       自从14版本起,火狐浏览器使用HTTPS进行谷歌搜索[15]实现可能收集用户数据或修改/删除搜索结果的网络基础设施保护我们的用户[16]

       电子前沿基金会 ,认为“在一个理想的世界里,每一个Web请求可以被默认为HTTPS”,火狐浏览器提供了一个称为“无处不在的HTTPS”的插件,默认数百常用网站支持HTTPS。这个插件的测试版本也可用于谷歌的Chrome和Chromium两种版本的浏览器[17][18] 

 

安全

        HTTPS的安全性是基于底层的TLS,它通常使用长期公钥和私钥来生成短期会话密钥,然后用于加密客户端和服务器之间的数据流。X.509证书用于验证服务器(有时也验证客户)。因此, 认证中心公钥证书要验证证书所有者之间的关系,以及生成,签名和管理证书的有效性。虽然这可能比通过网站信任核实身份更有利, 2013全球大规模监视的消息被披露,使人们注意到认证中心具有一个允许中间人攻击潜在薄弱点[19][20]。在这种情况下,网络信息需要一个重要特性是正向加密即使长期密钥或密码在将来被盗用,也能确保过去记录的加密的信息不能被恢复和解密。 并不是所有的Web服务器提供正向加密功能[21] 

       网必须完全托管在HTTPS,没有通过HTTP载入的内容-例如,有脚本加载不安全-这会使用户将很容易受到一些攻击和监视。 只包含敏感信息(如登录页面)的网站通过HTTPS加载其余部分的网站通过普通的HTTP加载这也会将用户暴露在攻击之下 在某些含有隐私信息的网站每次都通过HTTP,而不是HTTPS访问,用户和会话将会被暴露。同样地,通过HTTPS的网络站点服务的会话必须启用安全属性[12] 

 

技术 

HTTP不同

        HTTPS网址“https://”开头,并默认使用443端口,而HTTP网址“http://”开头,并默认使用80端口

        HTTP是不加密的,在中间人攻击和窃听攻击面前十分脆弱,这可以让攻击者获得访问网站帐户和敏感信息,并修改网页注入恶意软件或广告。HTTPS旨在抵御这类攻击,并且十分安全可靠地抵御了它们(使用旧的,过时版本SSL除外)。

网络层

        HTTP运行在TCP/IP模型最高一层应用层;这与TLS安全协议相同(运行在应用层相对较低的子层)。TLS在传输之前加密HTTP消息,并在抵达时解密消息。严格地说,HTTPS不是一个单独的协议,而是指使用 SSL/TLS加密连接普通HTTP

       任何HTTPS消息都被加密,包括消息头和请求/响应的加载。 除了下面局限性章节中所描述的可能的CCA密码攻击,攻击者只可以知道双方之间正在发生连接,以及他们的域名和IP地址。

服务器设置

       要准备一个Web服务器接受HTTPS连接,管理员必须Web服务器创建一个公钥证书。此证书必须由受信任认证中心署,使Web浏览器接受它而不发出任何警告证书持有人权威认证是Web服务器的运营商提出的Web浏览器通常获取主要认证中心的签名证书列表,以便验证他们签名的证书。

证书 

       权威签名的证书可能是免费的[22][23]者每年8美元[24]70美元[25]2012-2014年)。

       一些组织机构也可以运行他们自己的证书中心特别是如果他们负责设置浏览器来访问自己的网站(例如,公司内部网站点,或重点高校)。他们可以很容易地将自己的签名证书的副本添加到所使用浏览器发布的受信任的证书。

       此外,还存在一个对等网络认证中心 CACERT 。然而,并不内置在许多流行的浏览器(如火狐浏览器谷歌Chrome浏览器IE浏览器)受信任的根证书,这可能会导致用户会收到警告消息。

       即将到来的认证中心Let's Encrypt,是在2015年年底推出[26]并提供免费和自动化的网站SSL/TLS证书[27]根据电子前沿基金会所说"Let's Encrypt"会使HTTP切换到HTTPS“发出一个命令,或者单击一个按钮一样容易。[28]” 

作为访问控制使用

       该系统还可用于客户端身份验证,以限制授权用户访问web服务器 要做到这一点,网站管理员通常会为每个用户创建一个加载其浏览器证书。 通常情况下,它包含授权的用户的名称和电子邮地址由服务器自动检查每个连接来验证用户的身份,可能甚至不需要输入密码。

防止泄露密(私)

       在这方面一个重要特性是完全向前保密PFS)。 一个用于建立HTTPS会话长期非对称密钥即使将来也能轻地获得短期会话密钥解密对话。 Diffie-Hellman密钥交换 (DHE)椭圆曲线Diffie-Hellman密钥交换(ECDHE)是在2013年已知唯一有该属性的产品它在火狐浏览器,Opera浏览器谷歌浏览器会话中使用率仅为30%,而苹果的Safari浏览器和微软的IE浏览器会话使用率几乎为0%[21]。规模较大互联网服务供应商,自2011年以来截止到2013年9月)只有谷歌支持PFS。 

       证书到期之前可以被撤销,例如因为保密私钥性已经被破解。新版本的流行浏览器,如火狐[29]Opera[30],和Windows VistaIE浏览器[31]实现在线证书状态协议OCSP)来验证,事实并非如此。浏览器将证书的序列号发送到证书中心或其委托通过OCSP和权威回应,告诉浏览器证书是否仍然有效[32] 

 

局限性

        SSL/TLS有两种版本选择,简单的和联合的联合的版本更安全,但为了自己的身份验证用户需要安装个人客户证书到他们的网页浏览器。

       无论使用何种策略(简单或联合),受保护的程度强烈依赖于网络浏览器执行的正确性以及服务器软件和实际支持的加密算法。

        SSL/TLS并不阻止整个网站使用网络爬虫编入索引,并且在某些情况下, 加密资源URI只需要通过知道所截取的请求/响应的大小就可以推断[33]。这使得攻击者能够获得到明文(公开的静态内容)和加密文本 (静态内容的加密版本),允许密码攻击 。

       因为TLS运行在HTTP底层并且不具有更高级别的协议的知识,TLS服务器对于特定的IP/端口组合只严格地呈现一个证书[34]。这意味着,在大多数情况下,HTTPS状态使用基于名称虚拟主机是不可行的 存在一个称为服务器名称指示 (SNI)的解决方案,它加密连接之前发送主机名到服务器,虽然很多旧的浏览器不支持这个扩展。支持SNI的浏览器有火狐浏览器Firefox 2,欧朋浏览器Opera 8,苹果浏览器Safari2.1,谷歌浏览器Chrome 6和Windows Vista中Internet Explorer 7及它们的更高版本[35][36][37]

从体系结构的角度来看:

        1.SSL/TLS连接通过前机(front machine)第一次启动TLS连接来管理。如果由于某些原因(路由,流量优化等),该前机不是应用服务器,但是它不得不解密数据,已经找到的解决方案是传输的用户认证信息或证书到应用服务器,这需要知道谁要连接服务器

        2.SSL/TLS与双向认证SSL/TLS会话被第一个发起连接的服务器管理。 在加密的情况下必须沿着链接服务器传播,会话超时管理变得非常难以实现。

        3.具有双向SSL/TLS安全系数是最大的,但是在客户端,没有办法恰当地结束SSL/TLS连接,用户只能通过等待服务器会话到期或关闭所有相关的客户端应用程序断开连接。

       一个称为SSL剥离的复杂类型的中间人攻击2009年黑帽会议上提出这种类型的攻击通过改变https:链接到一个http:链接击败了HTTPS提供的安全策略它利用很少有互联网用户在他们的浏览器界面实际键入“https”开头事实优势他们通过点击链接进入一个安全的网站,以为正在使用HTTPS,而事实上使用的是HTTP。 然后,攻击者可以使用明文与客户端进行通信[38]。这促使被称作HTTP强制安全传输技术HTTP策略得到发展

        2010年5月,一篇微软研究院美国印第安纳大学研究人员发表的研究论文发现可以从侧面渠道如数据包大小来推断详细敏感的用户数据。更具体地说,研究人员发现,窃听者可以推断用户疾病/药物/手术,他/她的家庭收入和投资秘密尽管HTTPS保护医疗、税收、投资和网络搜索的几个高知名度,顶级的在线Web应用程序[39] 

 

参考文献

1. Network Working Group(2000年5月)。"HTTP Over TLS"互联网工程任务组。取自2015年2月27日 。

2. "HTTPS as a ranking signal".谷歌网站管理员中心博客。Google Inc.August 6, 2014.取自2015年2月27日"You can make your site secure with HTTPS (Hypertext Transfer Protocol Secure) [...]".

3. "Enabling HTTP Over SSL".Adobe Systems公司。取自2015年2月27日 。

4. "Secure your site with HTTPS".Google Support.Google,Inc.取自2015年2月27日 。

5. "What is HTTPS?".科摩多CA有限公司。取自2015年2月27日,"Hyper Text Transfer Protocol Secure (HTTPS) is the secure version of HTTP [...]"

6. “HTTPS Everywhere常见问题解答”。取自2012年5月3日。

7. "Hotel Wifi JavaScript Injection".取自 2012年7月24

8. The Tor Project, Inc."Tor".torproject.org.

9. Konigsburg,Eitan;Pant,Rajiv;Kvochko,Elena(201411月13日)。"Embracing HTTPS". 纽约时报。取自2015年2月27日。

10. Gallagher,Kevin(2014年9月12日)。"Fifteen Months After the NSA Revelations, Why Aren’t More News Organizations Using HTTPS?". 新闻基金会的自由。取自2015年2月27日。

11. Grigorik,Ilya;Far,Pierre(2014年6月26日),"Google I/O 2014-HTTPS Everywhere".谷歌开发者。取自2015年2月27日。

12. "How to Deploy HTTPS Correctly"取自2012年6月13日

13. "HTTP Strict Transport Security".Mozilla开发者网络 。

14. "SSL Pulse".值得信赖的互联网运动.2015-10-03.取自2015年10月19日 。

15. "Firefox 14.0.1 Release Notes".取自2012年7月24日

16. "Firefox Rolling Out HTTPS Google search".取自2012年7月24日

17. 彼得·埃克斯利:加密的HTTPS无处不在Firefox扩展网络EFF博客,2010年6月17日。

18. HTTPS EverywhereEFF项目

19. Law Enforcement Appliance Subverts SSL,Wired, 2010-04-03

20. 新的研究表明,政府可能伪造SSL证书EFF,2010-03-24。

21. SSL: Intercepted today, decrypted tomorrow, Netcraft, 2013-06-25.

22. "Free SSL Certificates from a Free Certificate Authority". sslshopper.com.取自2009-10-24。

23. Justin Fielding (2006-07-16). "Secure Outlook Web Access with (free) SSL: Part 1". TechRepublic.取自2009-10-24。

24. "Namecheap.com SSL Services". Namecheap.取自2012年1月30日。

25. "Secure Site Pro with SSL Certificate".取自2014年8月23日。

26. "Launch schedule". Let's Encrypt.取自2015年9月21日。

27. Kerner, Sean Michael (2014年11月18日)。"Let's Encrypt Effort Aims to Improve Internet Security". eWeek.com. Quinstreet Enterprise. 取自2015年2月27日。

28. Eckersley, Peter (2014年11月18日)。"Launching in 2015: A Certificate Authority to Encrypt the Entire Web"电子前沿基金会取自2015年2月27日。

29. "Opera 8 launched on FTP".Mozilla基金会2009年4月27日取自2009年5月13日。

30. "Opera 8 launched on FTP".Softpedia. 19 April 2005.取自2009年5月13日。

31. Lawrence, Eric(2006年1月31日)。"HTTPS Security Improvements in Internet Explorer 7".MSDN.取自2009年5月13日。

32. Myers, M; Ankney, R; Malpani, A; Galperin, S; Adams, C(1999年6月)"Online Certificate Status Protocol – OCSP".互联网工程任务组 。取自2009年5月13日。

33. Pusep, Stanislaw(2008年7月31日)。"The Pirate Bay un-SSL". 取自2009年3月6日

34. "SSL/TLS Strong Encryption: FAQ". Apache.org.

35. Lawrence, Eric(2005年10月22日)。"Upcoming HTTPS Improvements in Internet Explorer 7 Beta 2".微软。取自2009年5月12日。

36. "Server Name Indication (SNI)". inside aebrahim's head.

37. Pierre, Julien. "Browser support for TLS server name indication" 2001-12-19)。Bugzilla.Mozilla基金会。取自2010-12-15。

38. "sslstrip".  取自2011-11-26。

39. Shuo Chen, Rui Wang, XiaoFeng Wang, and Kehuan Zhang (2010年5月)。"Side-Channel Leaks in Web Applications: a Reality Today, a Challenge Tomorrow"(PDF).IEEE2010安全和隐私研讨会。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值