新闻公告

Https工作原理介绍


        我们知道,HTTP请求是以明文传输的,明文指的是未加密的信息。如果HTTP请求被黑客截获并包含银行卡密码等敏感数据,将非常危险。为了解决这一问题,网景公司制定了HTTPS协议,可以对数据进行加密传输,即密文传输,即使黑客在传输过程中截获数据也无法破译,保证了网络通信的安全性。

 

密码学基础

 

        在正式解释HTTPS协议之前,我们首先要了解一些密码学知识。

 

明文:明文是指未经加密的原始数据。

密文:明文经过某种加密算法加密后,就会变成密文,从而保证原始数据的安全。密文也可以解密以获得原始明文。

密钥:密钥是在将明文转换为密文或密文转换为明文的算法中输入的参数。密钥分为对称密钥和非对称密钥,分别应用于对称加密和非对称加密。

对称加密:对称加密又称私钥加密,即信息的发送者和接收者使用同一密钥对数据进行加密和解密。对称加密的特点是算法开放,加解密速度快,适用于大量数据的加密。常用的对称加密算法有DES、3DES、TDEA、Blowfish、RC5和IDEA。

加密过程如下:明文+加密算法+私钥=>密文

解密过程如下:密文+解密算法+私钥=>明文

对称加密中使用的密钥称为私钥,意思是个人的私钥,即密钥不能公开。

加密过程中使用的私钥和pri

解密过程中使用的密钥是相同的,这就是为什么加密被称为“对称”。由于对称加密的算法是公开的,一旦私钥泄露,密文很容易被破解,所以对称加密的缺点是密钥安全管理困难。

非对称加密:非对称加密也称为公钥加密。与对称加密相比,非对称加密具有更好的安全性。对称加密的通信使用相同的密钥。如果一个密钥被泄露,整个通信就会被破解。非对称加密使用一对密钥,即公钥和私钥,它们成对出现。私钥由自己保管,不能对外公开。公钥,任何人都可以获得。用公钥或私钥加密,用另一个解密。

用公钥加密的密文只能用私钥解密。其过程如下:

明文+加密算法+公钥=>密文,密文+解密算法+私钥=>明文

用私钥加密的密文只能用公钥解密。其过程如下:

明文+加密算法+私钥=>密文,密文+解密算法+公钥=>明文

因为加密和解密使用两个不同的密钥,这就是非对称加密“不对称”的原因。

非对称加密的缺点是加解密时间长,而且速度慢,只适合对少量数据进行加密。

非对称加密的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线密码)等。
 

HTTPS通信进程

HTTPS协议=HTTP协议+SSL/TLS协议。在HTTPS数据传输过程中,需要SSL/TLS对数据进行加解密,需要HTTP传输加密数据。可以看出,HTTPS是由HTTP和SSL/TLS协同完成的。

SSL的全称是安全套接字层,即安全套接字层协议,为网络通信提供安全性和数据完整性。SSL协议是Netscape在1994年发明的。此后所有浏览器都支持SSL,其最新版本为3.0。

TLS的全称是传输层安全,即安全传输层协议。TLS(Transport Layer Security)是IETF(Internet Engineering Task Force)在SSL3.0协议规范的基础上制定的新协议,是SSL3.0的后续版本。TLS和SSL3.0之间存在显著差异,主要是因为它们支持不同的

加密算法,所以TLS和SSL3.0不能互操作。虽然TLS在加密算法上与SSL 3.0有所不同,

 

在我们对HTTPS的理解中,我们可以将SSL和TLS视为相同的协议。

为了兼顾安全性和效率,HTTPS同时使用对称加密和非对称加密。数据通过对称加密传输,对称加密过程需要客户端提供密钥。为了保证密钥能够安全地传输到服务器,采用非对称加密对密钥进行加密。一般来说,数据是对称加密的,用于对称加密的密钥是通过非对称加密传输的。

 

 

HTTPS在传输过程中涉及三个密钥:

用于非对称加密的服务器端公钥和私钥

客户端为对称加密生成的随机密钥

一个HTTPS请求实际上由两个HTTP传输组成,可以分为八个步骤。

1.客户端向服务器发起HTTPS请求,并连接到服务器端口443

2.服务器端有一个密钥对,即公钥和私钥,用于非对称加密。服务器端保留私钥,不能泄露私钥。公钥可以发送给任何人。

3.服务器向客户端发送自己的公钥。

4.客户端收到服务器端的公钥后,会对公钥进行校验,验证公钥的合法性。如果公钥有问题,HTTPS传输将无法继续。严格来说,这应该是为了验证服务器发送的数字证书的合法性。以下将说明客户端如何验证数字证书的合法性。如果公钥是限定的,客户端将生成一个随机值,该值是用于对称加密的密钥。我们把这个密钥称为客户机密钥,也就是客户端密钥,从概念上很容易与服务器密钥区分开来。然后用服务器的公钥对客户端密钥进行非对称加密,以便

客户机密钥变成密文,HTTPS中的第一个HTTP请求结束。

5.客户端在HTTPS中发起第二个HTTP请求,将加密的客户端密钥发送给服务器。

6.服务器收到客户端发送的密文后,会用自己的私钥对其进行非对称解密。解密后的明文是客户端密钥,然后用客户端密钥对数据进行对称加密,使数据变为密文。

7.服务器然后加密,密文发送到客户端。

8.客户端接收服务器发送的密文,用客户端密钥对称解密,得到服务器发送的数据。这将完成HTTPS中的第二个HTTP请求,并完成整个HTTPS传输。



Coo云 - 基于24小时不关机的云端技术,超高性价比固定IP挂机宝,云主机,Vps服务器,云电脑,挂QQ,YY,微信,机器人等软件在线,永久免费提供远程连接工具,安卓ios苹果手机电脑均可使用!客服QQ:751200202。

 

QQ在线咨询
请加好友再发消息
751200202
企业微信
扫码微信咨询