https代表安全的超文本传输协议,它使用SSL/TLS协议建立加密链接,从而确保了数据传输的通信安全。https本质上是基于SSL的http,SSL使用SSL证书(也称为数字证书)建立加密的链接。
http与https
http以超文本格式在浏览器和Web服务器之间传输数据,稍微拦截下就可以知道传输的数据内容;而http则以加密形式传输数据,即使黑客设法拦截了通信,但由于数据已加密,他们也束手无策,因此,https可防止传输数据被读取或者被修改。
SSL如何运作?
SSL从根本上使用以下概念:非对称加密和对称加密。
非对称加密
在非对称加密算法中,公钥和私钥往往是一对,如果使用公钥对数据进行加密,那么只有对应的私钥才能解密。相对的,如果是使用私钥加密的数据,只有对应的公钥才能解密。最常用的非对称密钥加密算法包括EIGamal,RSA,DSA,椭圆曲线技术和PKCS。
对称加密
在对称密码学中,只有一个密钥可以对数据进行加密和解密。发送者和接收者都应具有此密钥,只有他们才知道。使用最广泛的对称算法是AES-128,AES-192和AES-256。
通过SSL进行数据传输
SSL协议使用非对称和对称加密技术来安全地传输数据。下图说明了SSL通信的步骤:
如上图所示,浏览器与Web服务器(或任何其他两个系统)之间的SSL通信主要分为两个步骤:SSL握手和实际数据传输。
SSL握手
通过SSL进行的通信始终始于SSL握手。SSL握手是一种非对称加密,允许浏览器在开始实际数据传输之前验证Web服务器,获取公钥并建立安全连接。
上图说明了SSL握手中涉及的步骤:
1、客户端发送“客户端问候”消息。这包括客户端的SSL版本号,密码设置,特定于会话的数据以及服务器使用SSL与客户端进行通信所需的其他信息。
2、服务器以“服务器问候”消息响应。这包括服务器的SSL版本号,密码设置,特定于会话的数据,带有公共密钥的SSL证书以及客户端通过SSL与服务器进行通信所需的其他信息。
3、客户端从CA(证书颁发机构)验证服务器的SSL证书并验证服务器。如果身份验证失败,则客户端将拒绝SSL连接并引发异常。如果认证成功,请继续执行步骤4。
4、客户端创建会话密钥,并使用服务器的公共密钥对其进行加密,然后将其发送到服务器。如果服务器已请求客户端身份验证(主要是在服务器到服务器的通信中),则客户端会将自己的证书发送到服务器。
5、服务器使用其私钥解密会话密钥,并将确认发送给使用会话密钥加密的客户端。
因此,在SSL握手结束时,客户端和服务器都具有有效的会话密钥,它们将用于加密或解密实际数据。此后将不再使用公钥和私钥。
实际数据传输
客户端和服务器现在使用共享的会话密钥来加密和解密实际数据并进行传输。这是在两端使用相同的会话密钥完成的,因此,这是对称密码术。实际的SSL数据传输使用对称密码,因为与非对称密码相比,它很容易且占用的CUP较少。
因此,SSL从根本上使用非对称密码学和对称密码学工作。在现实生活中实现SSL通信涉及某些基础架构,称为“公共密钥基础架构”。
总而言之,https通过非对称加密和对称加密算法,保证了数据传输的可靠性!