HTTPS与SSL

SSL使用的是非对称加密。

在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。

 

公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。SSL 协议的版本 1 和 2 只提供服务器认证。版本 3 添加了客户端认证,此认证同时需要客户端和服务器的数字证书。

SSL 握手

SSL 连接总是由客户端启动的。在SSL 会话开始时执行 SSL 握手。此握手产生会话的密码参数。关于如何处理 SSL 握手的简单概述,如下图所示。此示例假设已在 Web 浏览器 和 Web 服务器间建立了 SSL 连接。

图 SSL的客户端与服务器端的认证握手 

SSL 与服务器认证的握手

 

 

 


     当使用 基于SSL/TLS(通常使用 https:// URL)向站点进行HTTP请求时,从服务器向客户机发送一个证书。客户机使用已安装的公共证书通过这个证书验证服务器的身份,然后检查 IP 名称(机器名)与客户机连接的机器是否匹配。客户机生成一些可以用来生成对话的私钥(称为会话密钥)的随机信息,然后用服务器的公钥对它加密并将它发送到服务器。服务器用自己的私钥解密消息,然后用该随机信息派生出和客户机一样的私有会话密钥。通常在这个阶段使用 RSA 公钥算法。然后,客户机和服务器使用私有会话密钥和私钥算法(通常是 RC4)进行通信。使用另一个密钥的消息认证码来确保消息的完整性。
 HTTPS 是用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的 完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。
     一台WEB Server,这台WEB Server上已经申请好了一张CA证书,这张CA证书中包含了一对密钥 ,一把公钥Pub 一把私钥Pri
     第一步,客户端以HTTPS://这种方式,来向WEB Server发起一个访问请求。
     第二步,服务器在接收到这个访问请求后,会把WEB Server已经由CA证书中包含的那把公钥回传给客户端。这时,客户端的IE浏览器上会弹出一个对话框,提示用户,有一张证书要下载,需要用户确认。这时用户选择是,下载服务器上的这把公钥。
    第三步,客户端用这把公钥,生成一把自己的私钥(KEY)
    第四步,客户端用服务器传送过来的那把公钥,加密自己生成的那把私钥,也就是KEY,回传给服务器。
    第五步,服务器接收到客户端回传的加密信息后,用自己的私钥,也就是Pri,把客户端生成的KEY解密出来。
     至此,HTTPS的连接才算建立,才可以真正的传输加密的数据。
    SSL用的是非对称加密。非对称加密,加密时用一把密钥,也就是公钥。解密是用另一把密钥,也就是私钥。对称加密,加密解密用的是同一把密钥。

 

 

参考链接:

http://blog.csdn.net/program_think/article/details/5300184

 

http://jeffyyko.blog.51cto.com/28563/142280

你可能感兴趣的:(https)