SSl 核心过程
1、通过证书验证服务器
2、在验证的过程中“动态”生成对称加密的密要
3、之后的信息都用这个动态密要加密
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
ssl
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
SSL协议提供的服务主要有哪些
1)认证用户和服务器,确保数据发送到正确的客户机和服务器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变。
SSL协议的工作流程
服务器认证阶段:
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
握手过程
(1)SSL协议同时使用公钥加密技术和对称加密技术。虽然对称加密技术比公钥加密技术更快,但公钥加密技术提供了更好的认证技术。SSL的握手协议对于客户端和服务器之间的身份验证非常有效。主要工艺流程如下:客户机浏览器向服务器发送客户机的SSL协议的版本号、加密算法的类型、生成的随机数以及其他服务器和客户机之间通信所需的各种信息。
(2)服务器向客户端传输SSL协议的版本号、加密算法的类型、随机数等相关信息。同时,服务器还将把自己的证书传输给客户机。
(3)服务器的有效性包括证书是否过期、颁发服务器证书的CA是否可靠、颁发者证书的公钥是否能够正确解读服务器证书的“颁发者数字签名”,以及服务器证书上的域名是否与服务器证书的实际域名匹配。服务器。如果合法性验证失败,则通信中断;如果合法性验证通过,则第四步将继续。
(4)客户端随机生成一个对称密码,用于以后的通信,然后用服务器的公钥对其进行加密(第2步中服务器的公钥是从服务器的证书中获取的),并将加密的“pre-master密码”传递给服务器。
(5)如果服务器请求客户身份验证(握手过程中可选),用户可以创建一个随机数并对数据进行签名。带有签名的随机号码、客户自己的证书和加密的“主控密码”可以传递给服务器。
(6)如果服务器请求客户身份验证,服务器必须验证客户证书的有效性和随机签名数。具体的有效性验证过程包括:客户证书使用日期是否有效,向客户提供证书的CA是否可靠,CA颁发的公钥能否正确解锁客户证书颁发CA的数字签名,客户证书是否有效。图书废除清单(crl)。如果验证失败,通信将立即中断;如果验证通过,服务器将使用其私钥解锁加密的“pre-master密码”,然后执行一系列步骤来生成主密码(客户端也将以相同的方式生成相同的主密码)。
(7)服务器和客户端使用相同的主密码,即“调用密码”。对称密钥用于加密和解密SSL协议的安全数据通信。同时,在SL通信过程中,应完成数据通信的完整性,防止数据通信发生任何变化。
(8)客户端向服务器发送一条消息,表明下一步的主密码是对称密钥,并通知服务器客户端握手过程结束。
(9)服务器向客户端发送一条消息,表明下一步的主密码是对称密钥,并通知客户端服务器端的握手过程结束。
(10)ssl的握手部分结束,ssl安全通道的数据通信开始,客户端和服务器开始使用相同的对称密钥进行通信,同时检查通信的完整性。
654
159