云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

大带宽_cdn源站镜像_高性价比

小七 141 0

RFC 8446(又称TLS 1.3)的详细介绍

在过去的五年里,定义互联网协议的标准机构互联网工程任务组(IETF)一直致力于将其最重要的安全协议之一:传输层安全(TLS)的最新版本标准化。TLS用于保护web(以及更多!),提供加密,确保每个HTTPS网站和API的真实性。TLS的最新版本tls1.3(rfc8446)今天发布。这是该协议的第一次大修,带来了显著的安全性和性能改进。本文深入探讨了tls1.3中引入的变化及其对未来互联网安全的影响。进化Cloudflare提供安全性的一个主要方式是支持网站和API等web服务的HTTPS。使用HTTPS(S代表安全),浏览器和服务器之间的通信通过加密和认证的通道传输。通过HTTPS(而不是HTTP)提供内容可以让访问者确信他们看到的内容是由合法的内容所有者呈现的,并且通信是安全的,不会被窃听。在一个网络隐私比以往任何时候都重要的世界里,这是一件大事。使HTTPS安全的幕后机制是一种称为TLS的协议。它的根源是90年代中期Netscape开发的一种叫做安全套接字层(SSL)的协议。到20世纪90年代末,Netscape将SSL移交给IETF,IETF将其更名为TLS,并从此成为协议的管理者。许多人仍然将web加密称为SSL,尽管绝大多数服务已经转换为只支持TLS。SSL一词仍然很受欢迎,Cloudflare通过Keyless SSL和Universal SSL等产品名称保持了这个词的活力。在IETF中,协议被称为rfc。TLS 1.0为RFC 2246,TLS 1.1为RFC 4346,TLS 1.2为RFC 5246。今天,tls1.3发布为rfc8446。RFC通常是按顺序发布的,保留46作为RFC编号的一部分是一个不错的做法。TLS 1.2穿着降落伞裤和护肩MC-Hammer和SSL一样,在90年代很流行在过去的几年里,TLS遇到了相当多的问题。首先,实现TLS的代码存在问题,包括Heartbleed、BERserk、goto fail;等等。这些问题不是协议的根本问题,主要是由于缺乏测试造成的。TLS攻击者和Project Wycheproof等工具有助于提高TLS实现的健壮性,但TLS面临的更具挑战性的问题与协议本身有关。TLS是由工程师使用数学家的工具设计的。从SSL时代开始,许多早期的设计决策都是使用启发式方法和对如何设计健壮的安全协议的不完全理解做出的。也就是说,这并不是协议设计者(保罗·科彻、菲尔·卡尔顿、艾伦·弗雷尔、蒂姆·迪尔克斯、克里斯托弗·艾伦等)的错,因为整个行业仍在学习如何正确地做到这一点。当TLS被设计出来时,有关安全认证协议设计的正式论文,如Hugo Krawczyk的里程碑式SIGMA论文,还差几年。TLS是90年代的加密:它的意思是好的,在当时看起来很酷,但现代密码学家的设计调色板已经转移。许多设计缺陷是通过正式验证发现的。学者们试图证明TLS的某些安全属性,但却发现了一些反例,这些反例变成了真正的漏洞。这些弱点从纯粹的理论(懒惰和曲线wap),到资源丰富的攻击者(WeakDH,LogJam,FREAK,SWEET32)的可行性,到实用性和危险性(狮子狗,机器人)。TLS 1.2速度慢加密在网络上一直很重要,但从历史上看,它只用于登录或发送信用卡信息,其他大部分数据都暴露在外。在过去的几年里,有一个主要的趋势就是在互联网上使用HTTPS。这有一个积极的效果,可以保护我们在网上做的更多的事情免受窃听和注入攻击,但也有一个缺点,即新的连接速度会慢一些。为了让浏览器和web服务器就密钥达成一致,它们需要交换加密数据。自1999年TLS标准化以来,这种被称为TLS中的"握手"的交换在很大程度上保持不变。在发送加密数据之前,握手需要在浏览器和服务器之间进行两次额外的往返(或者在恢复以前的连接时进行一次)。与单独使用HTTP相比,HTTPS的TLS握手的额外成本会显著降低延迟。这种额外的延迟会对注重性能的应用程序产生负面影响。定义TLS 1.3IETF对tls1.2过时的设计和两个往返开销不满意,于是开始定义TLS的新版本。2013年8月,Eric Rescorla列出了新协议的一系列功能:https://www.ietf.org/progressions/87/slides/slides-87-tls-5.pdf经过一番争论,决定将TLS的新版本称为TLS1.3。推动TLS 1.3设计的主要问题与五年前提出的问题基本相同:减少握手延迟加密更多的握手提高跨协议攻击的弹性删除旧功能这个规范是由志愿者通过一个开放的设计过程形成的,经过四年的勤奋工作和激烈的辩论,TLS1.3现在已经形成了它的最终版本:RFC48446。随着采用率的增加,新协议将使互联网更快、更安全。在这篇博文中,我将重点介绍tls1.3与以前版本相比的两个主要优势:安全性和性能。修剪树篱Creative Commons属性共享相似3.0在过去的二十年里,作为一个社会,我们已经学会了如何编写安全的密码协议。从狮子狗到幸运13再到懒惰再到LogJam,一系列巧妙命名的攻击显示,即使TLS1.2也包含了早期密码设计的过时思想。TLS1.3的设计目标之一是通过删除潜在的危险设计元素来纠正以前的错误。固定密钥交换TLS是一种所谓的"混合"密码体制。这意味着它同时使用对称密钥加密(加密和解密密钥相同)和公钥加密(加密和解密密钥不同)。混合方案是因特网上使用的主要加密形式,用于SSH、IPsec、Signal、WireGuard和其他协议。在混合密码系统中,公钥密码术用于建立双方之间的共享秘密,而共享秘密用于创建可用于加密交换的数据的对称密钥。一般来说,公钥加密速度慢且成本高(每次操作几微秒到几毫秒),而对称密钥加密又快又便宜(每次操作几纳秒)。混合加密方案只需执行一次代价高昂的部分,就可以以很少的开销发送大量加密数据。tls1.3中的大部分工作都是关于改进握手的部分,其中使用公钥来建立对称密钥。RSA密钥交换TLS的公钥部分是关于建立共享秘密的。使用公钥加密技术有两种主要方法。更简单的方法是使用公钥加密:一方用另一方的公钥加密共享机密并将其发送出去。另一方随后使用其私钥解密共享机密并。。。喂!他们都有相同的秘密。这项技术于1977年由Rivest、Shamir和Adelman发现,称为RSA密钥交换。在TLS的RSA密钥交换中,共享密钥由客户端决定,然后由客户端将其加密到服务器的公钥(从证书中提取)并发送到服务器。TLS中可用的另一种密钥交换形式是基于另一种公钥加密技术,由Diffie和Hellman于1976年发明,即所谓的Diffie-Hellman密钥协议。在Diffie-Hellman中,客户机和服务器都是从创建一个公私密钥对开始的。然后他们将密钥共享的公共部分发送给另一方。当每一方获得另一方的公钥份额时,他们将其与自己的私钥结合,最终得到相同的值:pre-main secret。然后服务器使用数字签名来确保交换没有被篡改。如果客户机和服务器都为每个交换选择一个新的密钥对,则这种密钥交换称为"短暂的"。这两种模式都会导致客户机和服务器共享机密,但RSA模式有一个严重的缺点:它不是转发机密。这意味着,如果有人记录加密的对话,然后获得服务器的RSA私钥,他们就可以解密对话。这甚至适用于对话被记录下来,并且密钥是在将来某个时候获得的。在这样一个世界里,各国政府都在记录加密对话,并利用诸如心血之类的漏洞窃取私钥,这是一个现实的威胁。RSA密钥交换已经有一段时间了,这不仅仅是因为它不是转发机密。这也是众所周知的很难做到正确。1998年,Daniel Bleichenbacher发现了在SSL中执行RSA加密的方式中存在漏洞,并创建了所谓的"百万消息攻击",攻击者可以通过发送大约一百万条精心编制的消息并查找错误代码中的差异,使用服务器的私钥执行RSA私钥操作返回。多年来,这种攻击已经得到了改进,在某些情况下只需要数千条信息,这使得从笔记本电脑上进行攻击变得可行。最近发现各大网站(包括脸谱网)就在2017年,他们也很容易受到布莱肯巴赫的一种叫做机器人攻击的变种攻击。为了降低非转发秘密连接和百万条消息攻击带来的风险,从TLS1.3中删除了RSA加密,留下了短暂的差异-