https协议原理

HTTPS

HTTPS是以安全为目标的http通道,即在http下加入SSL层(HTTP +SSL/ TLS),SSL是HTTPS加密的基础。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议的工作流程

1, 客户端向服务器发送一个信息建立会话连接;

2,服务器根据客户的信息确定是否需要生成新的密钥(秘钥和私钥),如需要则服务器在响应客户的信息时将包含生成密钥所需的信息;

3,客户端根据收到的服务器响应信息,产生一个秘钥(和服务端对称加密用),并用服务器的公钥加密后传给服务器;

4,服务器恢复该密钥,并返回给客户端一个用密钥认证的信息,以此让客户认证服务器。

HTTPS的握手过程

理解了SSL加密流程,也就明白了HTTPS客户端和服务端的握手过程

1,客户端发起HTTPS请求;

2,服务端的配置HTTPS,采用HTTPS协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥;

3,传送配置的证书,这个证书是一个公钥,包含了很多信息,如证书的颁发机构,过期时间等,用于客户端加密私钥;

4,客户端解析证书,客户端利用服务器传过来的证书验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的CA 是否可靠,服务器证书上的域名是否和服务器的实际域名相匹配等,如果发现异常,则弹出警告。如果证书没有问题,那么就生成一个对称秘钥,然后用服务器的公钥对该秘钥进行加密;

5,传送加密信息,客户端和服务端的通信就通过上面的秘钥进行通信;

6,服务端用私钥解密后,得到了客户端传过来的秘钥,然后把内容通过该秘钥进行对称加密;

7,服务段用秘钥加密后的信息打包返回给客户端,客户端在用秘钥进行对称解密。这样就实现了数据通信的安全。

你可能感兴趣的:(https协议原理)