超文本传输安全协议 (HTTPS, Hypertext Transfer Protocol Secure)
常称为HTTP over TLS,HTTP over SSL或HTTP Secure, 是一种使用计算器网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
传输层安全性协议 (TLS, Transport Layer Security)
,及其前身 安全套接层(SSL,Secure Sockets Layer)
是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。网景公司推出HTTPS协议时,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文件。随后又公布RFC 5246 (2008年8月)与 RFC 6176 (2011年3月)。TLS/SSL 不仅为浏览器提供支持,在邮箱、即时通信、VoIP、网络传真等应用程序中也得到广泛应用。
由此可知,HTTPS 是在 SSL/TLS 之上承载 HTTP 。与HTTP 不同,HTTPS 使用 https://
做为URL前缀, 默认端口为 443
.
为方便,后面将 SSL/TLS 简写为 TLS.
协议的层次
TLS 协议为由 TLS记录协议(TLS record protocol)
与 TLS握手协议(TLS handshake protocol)
这两层协议叠加而成。记录协议负责进行加密,握手协议负责进行加密之外的其它操作。
- TLS记录协议 位于握手协议的下层,负责对消息进行加密。它使用了对称加密和消息认证,但具体的算法和共享密钥则是通过握手协议在服务端和客户端之间协商决定的。
- TLS握手协议 分为4个子协议
- 握手协议 负责在客户端与服务端之间协商决定密码算法和共享密钥。基于证书的认证操作也是在这个协议中完成。在握手协商一致后,双方会互发信号来切换密码。
- 密码规格变更协议 负责向通信对象传达密码变更的信号。
- 警告协议 负责在发生错误时将错误信息传递给对方。如果没有发生错误,接下来会使用应用数据协议进行通信。
- 应用数据协议 负责将TLS 上面承载的应用数据传达给通信对象