安全传输层协议(TLS)介绍
TLS 介绍 TLS (和 SSL) 协议位于应用程序协议层和 TCP/IP 层之间,可以在其中保护应用程序数据并将其发送到传输层。 由于协议在应用程序层和传输层之间工作,因此 TLS 和 SSL 可以支持多个应用程序层协议。 TLS 和 SSL 假定使用面向连接的传输(通常为 TCP), 可以预防如下风险: 消息篡改 消息拦截 消息伪造 TLS 握手 介绍 TLS 整个握手流程如下图所示 客户端请求(clinet hello) 这个阶段主要发送信息如下: 客户端支持的 TLS 版本号 客户端随机数Random 客户端支持的加密方法 客户端支持的压缩算法 服务端响应(server hello) 服务端支持的 TLS 版本号 服务端随机数Random 服务端支持的加密方法 服务端支持的压缩算法 服务端证书发送 服务端发送 server hello 后会发送证书,通常他们俩者在同一个网络包中,即同一个 TLS 记录层消息中。 证书验证(可选) 客户端拿到服务端证书,到证书办法机构的服务器(OCSP responder)验证证书是否可用 Client Key exchange 在此阶段客户端也会生成一个随机数,加上 clinet hello, server hello 生成的随机数一共三个随机数 作为 pre-master,发送给服务器,服务器端收到pre-master算出main master。而客户端当然也能自己通过pre-master算出main master。如此以来双方就算出了对称密钥。 客户端 finished 一个 Finished 消息一直会在一个 change cipher spec 消息后立即发送,以证明密钥交换和认证过程是成功的。一个 change cipher spec 消息必须在其它握手消息和结束消息之间被接收。 ...