概览
安全套接字层 (SSL) 是一种加密安全协议。它最初由 Netscape 于 1995 年开发,旨在确保 Internet 通信中的隐私、身份验证和数据完整性。SSL 是如今使用的现代 TLS 加密的前身。
实施 SSL/TLS 的网站的 URL 中带有“HTTPS”,而不是“HTTP”。
SSL/TLS 协议可以被划分为两层
第一层被称为握手协议层(The Handshake Layer),它由三个子协议组成。
握手协议(Handshake)
这个子协议是用来协商客户端和服务器写入session的信息。这个session中的信息包括 :session ID,服务器证书,客户端证书,使用的加密规范,使用的压缩算法,和一个用于生成密码的随机数。
改变密码规范协议(Change Cipher Spec)
告诉会话中的另一方,要启用协商好的密码规则,并对数据进行加密传送。
警报协议(Alert)
用来告知会话中的另一方它的状态,和 错误信息。警报(Alter)通常在连接关闭、接受到不可用的信息、不能正确解码的信息 或者 用户返回操作时 发送。
第二层被称为记录层(The Recode Layer)
记录层 可以从应用层 接受数据,并将其加密,还可以对数据压缩,然后把它传递给传输层。 还可以 从传输层 接受数据,并将其解密,还可以对数据解压缩,然后把它传递给适当的应用进程进行接受。 其中采用何种加密算法,以及是否压缩,采用哪种压缩方式,都是在握手协议中协商好的。
握手协议
握手协议 的作用是在客户端和浏览器进行数据传输时,为了保证数据安全,而事先协商好安全策略的协议。
Client Hello:
客户端会先向服务器发送一个名为Client Hello的请求,这条请求包含一条信息 并 初始化一个session。这条信息包括:
版本号 (Version Number): 客户端最高支持的版本号。也