传输层安全性协议

✍ dations ◷ 2025-04-04 13:19:42 #虚拟私人网络,加密协议,互联网标准,网络协议,电子商务,保密通信,传输层安全协议

传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布TLS 1.0标准文件(RFC 2246)。随后又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛使用这个协议。许多网站,如Google、Facebook、Wikipedia等也以这个协议来创建安全连线,发送数据。目前已成为互联网上保密通信的工业标准。

SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。

TLS协议采用主从式架构模型,用于在两个应用程序间透过网络创建起安全的连线,防止在交换数据时受到窃听及篡改。

TLS协议的优势是与高层的应用层协议(如HTTP、FTP、Telnet等)无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密信道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。

TLS协议是可选的,必须配置客户端和服务器才能使用。主要有两种方式实现这一目标:一个是使用统一的TLS协议端口(例如:用于HTTPS的端口443);另一个是客户端请求服务器连接到TLS时使用特定的协议机制(例如:电子邮件常用的STARTTLS)。一旦客户端和服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手,客户端和服务器协商各种参数用于创建安全连接:

早期的研究工作,为方便改造原有网络应用程序,在1993年已经有了相似的Berkeley套接字安全传输层API方法。

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议,这种协议在Web上获得了广泛的应用。

基础算法由作为网景公司的首席科学家塔希尔·盖莫尔(Taher Elgamal)编写,所以他被人称为“SSL之父”。

2014年10月,Google发布在SSL 3.0中发现设计缺陷,建议禁用此一协议。攻击者可以向TLS发送虚假错误提示,然后将安全连接强行降级到过时且不安全的SSL 3.0,然后就可以利用其中的设计漏洞窃取敏感信息。Google在自己公司相关产品中陆续禁止回溯兼容,强制使用TLS协议。Mozilla也在11月25日发布的Firefox 34中彻底禁用了SSL 3.0。微软同样发出了安全通告。

IETF将SSL标准化,即 RFC 2246 ,并将其称为TLS(Transport Layer Security)。

TLS 1.1在 RFC 4346 中定义,于2006年4月发表,它是TLS 1.0的更新。在此版本中的差异包括:

微软、Google、苹果、Mozilla四家浏览器业者将在2020年终止支持TLS 1.0及1.1版。

TLS 1.2在 RFC 5246 中定义,于2008年8月发表。它基于更早的TLS 1.1规范。主要区别包括:

TLS 1.3在 RFC 8446 中定义,于2018年8月发表。它与TLS 1.2的主要区别包括:

网络安全服务(NSS)是由Mozilla开发并由其网络浏览器Firefox使用的加密库,自2017年2月起便默认启用TLS 1.3。随后TLS 1.3被添加到2017年3月发布的Firefox 52.0中,但它由于某些用户的兼容性问题,默认情况下禁用。直到Firefox 60.0才正式默认启用。

Google Chrome曾在2017年短时间将TLS 1.3设为默认,然而由于类似Blue Coat Systems(英语:Blue Coat Systems)等不兼容组件而被取消。

wolfSSL在2017年5月发布的3.11.1版本中启用了TLS 1.3。作为第一款支持TLS 1.3部署,wolfSSL 3.11.1 支持 TLS 1.3 Draft 18(现已支持到Draft 28),同时官方也发布了一系列关于TLS 1.2和TLS 1.3性能差距的博客。

在客户端和服务器开始交换TLS所保护的加密信息之前,他们必须安全地交换或协定加密密钥和加密数据时要使用的密码。用于密钥交换的方法包括:使用RSA算法生成公钥和私钥(在TLS 握手协议中被称为TLS_RSA)、Diffie-Hellman(在TLS握手协议中被称为TLS_DH)、临时Diffie-Hellman(在TLS握手协议中被称为TLS_DHE)、椭圆曲线迪菲-赫尔曼(在TLS握手协议中被称为TLS_ECDH)、临时椭圆曲线Diffie-Hellman(在TLS握手协议中被称为TLS_ECDHE)、匿名Diffie-Hellman(在TLS握手协议中被称为TLS_DH_anon)和预共享密钥(在TLS握手协议中被称为TLS_PSK)。

TLS_DH_anon和TLS_ECDH_anon的密钥协商协议不能验证服务器或用户,因为易受中间人攻击因此很少使用。只有TLS_DHE和TLS_ECDHE提供前向保密能力。

在交换过程中使用的公钥/私钥加密密钥的长度和在交换协议过程中使用的公钥证书也各不相同,因而提供的强健性的安全。2013年7月,Google宣布向其用户提供的TLS加密将不再使用1024位公钥并切换到至少2048位,以提高安全性。

消息认证码(MAC)用于对数据完整性进行认证。HMAC用于CBC模式的块密码和流密码,AEAD用于身份验证加密,例如GCM模式和CCM模式。

以下简要介绍SSL协议的工作方式。客户端要收发几个握手信号:

TLS利用密钥算法在互联网上提供端点身份认证与通讯保密,其基础是公钥基础设施。不过在实现的典型例子中,只有网络服务者被可靠身份验证,而其客户端则不一定。这是因为公钥基础设施普遍商业运营,电子签名证书通常需要付费购买。协议的设计在某种程度上能够使主从架构应用程序通讯本身预防窃听、干扰和消息伪造。

TLS包含三个基本阶段:

在第一阶段,客户端与服务器协商所用密码算法。当前广泛实现的算法选择如下:

TLS/SSL有多样的安全保护措施:

相关

  • 灰胞藻门灰藻(Glaucophyta,Glaucophytes,Glaucocystophytes或Glaucocystids),也叫灰胞藻,是原始色素体生物的一支,是一类稀见的小型淡水藻类,具有独特的灰质体。灰藻的近缘类群有红藻、皮胆
  • 母亲年龄高龄产妇较广义的定义是指在年龄较大时才分娩的妇女,不过有关年龄的定义,有许多不同的标准。在西欧、北欧及南欧,初次怀孕的妇女其平均年龄是27至29岁,在1970年代初期则是23至25
  • 金属晶体金属是一种具有光泽(对可见光强烈反射)、富有延展性、容易导电、传热等性质的物质。金属的上述特质都跟金属晶体内含有自由电子有关。由于金属的电子倾向脱离,因此具有良好的导
  • 威廉与玛丽学院威廉与玛丽学院(英语:College of William & Mary in Virginia,或威廉玛丽学院)是一所位于美国维吉尼亚州威廉斯堡的著名小型公立大学,创立于1693年,是美国历史第二悠久的大学,校园
  • 冰雪雪是降水形式的一种,是从云中降落的结晶状固体冰,常以雪花的形式存在。雪是由小的冰颗粒物构成,是一种颗粒材料(英语:granular material),它的结构开放,因此显得柔软。因为气温和湿
  • 马格兰摄影通讯社玛格南摄影通讯社(英语:Magnum Photos,又名玛格南图片社)是一家跨国摄影合作社,成立于1947年,最初是为了忠实呈现第二次世界大战后的影像纪实而组成,创办者都是当时知名的新闻摄影
  • 熊廷弼熊廷弼(1569年-1625年),字飞百,号芝冈,湖广承宣布政使司武昌府江夏县(今属湖北省武汉市江夏区)人。万历二十六年进士出身。曾任大明兵部尚书兼辽东经略。熊廷弼出生于隆庆三年(1569年
  • 班清班清(泰语:แหล่งโบราณคดีบ้านเชียง)位于泰国的乌隆地区,于1992年被联合国教科文组织以“班清考古地点”之名列入《世界遗产名录》。班清考古地点于1966年
  • 腹胚亚目见内文抱卵亚目(学名:Pleocyemata),又称腹胚亚目,是甲壳亚门十足目中的一个亚目,它是1963年由马丁·布尔肯罗德(Martin Burkenroad)提出的。通过引入抱卵亚目,布尔肯罗德使用单系群的
  • 罗马陆军罗马陆军(拉丁语:exercitus Romanorum)是指罗马王国、罗马共和国和罗马帝国以及它的后继者东罗马帝国的地面战斗部队。罗马陆军的历史发展阶段划可分为如下几个阶段:在王国和早