抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

一:什么是HTTPS?

  • HTTPS(Hypertext Transfer Protocol Secure)是一种用于在网络上安全传输数据的协议。它是基于HTTP协议的加密版本,通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对通信进行加密和认证,以保护数据的机密性和完整性。
  • 当使用HTTPS时,客户端与服务端之间的通信会进行加密处理,防止第三方窃听和泄露数据。这种加密通过使用公钥私钥来实现,公钥用于加密数据,而私钥则用于解密数据。

二:HTTPS和HTTP的区别

主要有四个不同的区别

  • 安全性:HTTP是不安全的协议,它规定的数据传输都是明文的,容易被恶意攻击者窃取和篡改。而HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)等加密协议,在HTTP的基础上添加了加密层,确保数据在传输过程中的机密性和完整性
  • 端口号:HTTP默认使用80端口进行通信,HTTPS默认使用443端口进行通信。
  • 证书:HTTPS使用数字证书,通常由受信任的第三方机构进行颁发,用于验证服务器的身份。可以防止中间人的攻击,确保通信的安全性
  • 协议速度:由于HTTPS需要进行加密和解密操作,相对于HTTP来说会引入一些额外的开销,导致稍微降低一些性能。但是随着计算机硬件和网络技术的进步,这个差距已经变得越来越小,几乎可以忽略不计。

三:HTTPS工作过程

3.1 对称加密

  • 在HTTPS传输中,对称加密是一种使用相同密钥进行加密和解密的加密算法。双方(客户端和服务器)在建立安全通信之前,必须协商一个共享的密钥。这个密钥用于加密传输的数据,以确保数据在传输过程中的机密性和完整性。

    image-20230801114122130

  • 尽管对称加密效率高,但存在一个安全性挑战:如何安全地将密钥传输给对方

3.2 非对称加密

在HTTPS传输中,非对称加密(asymmetric encryption)是一种加密方式,使用了两个密钥:公钥(public key)和私钥(private key)。这种加密算法也称为公钥加密(public-key encryption)。

  • 在通信双方之间建立一个安全连接前,服务器会生成一对密钥,包括一个公钥和一个私钥。公钥是可共享给任何人使用的,而私钥则只有服务器拥有并保密。公钥用于加密数据,而私钥则用于解密数据。
  • 当客户端与服务器进行通信时,服务器将其公钥发送给客户端。客户端使用服务器的公钥对要传输的数据进行加密,并将加密后的数据发送回服务器。由于只有服务器持有私钥,因此只有服务器能够解密客户端发送的数据。

image-20230801120732740

  • 生成密钥对:首先,客户端和服务器各自生成一对密钥,包括公钥和私钥。
  • 公钥交换:客户端将自己的公钥发送给服务器,而服务器也将自己的公钥发送给客户端。这个过程可以通过安全的渠道进行,以确保公钥的安全性。
  • 加密数据:客户端要向服务器发送加密数据时,它会使用服务器的公钥对数据进行加密。这样,只有持有服务器的私钥的服务器能够解密这些数据。
  • 解密数据:服务器接收到加密数据后,使用自己的私钥对其进行解密。

3.3 数字证书

image-20230801123356369

HTTPS的数字证书是用于加密和验证网站身份的安全证书。它是由受信任的第三方机构(称为证书颁发机构或CA)签发的,用于确保用户与网站之间的通信是安全和私密的。

数字证书包含以下信息

  • 网站的公钥:公钥用于加密从浏览器到服务器之间的数据传输。
  • 网站的域名:证书会明确指定该数字证书保护的域名。
  • 证书颁发机构的数字签名:数字证书会被证书颁发机构使用其私钥进行签名,以确保证书的真实性和完整性。

image-20230801122816716

  • 生成密钥对:首先,服务器生成一对密钥,包括一个私钥和一个公钥。私钥被服务器保密存储,而公钥则可以公开。
  • 创建证书签名请求(CSR):服务器使用自己的私钥创建一个证书签名请求(CSR),其中包含有关服务器的信息,如域名、组织等。CSR还包含服务器的公钥。
  • 向证书颁发机构(CA)提交CSR:服务器将CSR发送给一个受信任的证书颁发机构(CA)。CA是一个可靠的第三方实体,负责验证服务器的身份和信息。
  • CA验证和签名证书:CA接收到CSR后,会对服务器的身份进行验证。这通常包括确认域名的所有权和验证服务器的身份等。如果通过验证,CA将使用自己的私钥对服务器的公钥和其他相关信息进行签名,生成数字证书。
  • 返回数字证书:CA将签名后的数字证书返回给服务器。该证书包含服务器的公钥、服务器信息和CA的数字签名。
  • 客户端与服务器建立连接:当客户端通过浏览器等访问HTTPS网站时,服务器会将其数字证书发送给客户端。
  • 验证数字证书:客户端接收到服务器的数字证书后,会使用预装在其操作系统或浏览器中的信任的根证书颁发机构(Root CA)的公钥来验证证书的真实性和完整性。这些根证书颁发机构的公钥是事先被信任的。
  • 建立安全连接:如果客户端成功验证了证书,它将生成一个会话密钥,并使用服务器的公钥对该密钥进行加密,然后发送给服务器。服务器使用自己的私钥解密会话密钥。现在,服务器和客户端都有了相同的会话密钥,可以使用对称加密算法进行加密和解密通信内容。
  • 安全通信:通过建立的安全连接,客户端和服务器之间的通信将使用会话密钥进行加密和解密,以确保数据的保密性和完整性。

四:HTTPS的优缺点

HTTPS优点:

  • 数据传输安全:HTTPS使用加密技术对数据进行加密,使得传输过程中的数据无法被窃听或篡改。这对于敏感信息(如信用卡号码、用户名和密码等)的传输尤为重要。
  • 身份验证和数据完整性:HTTPS利用SSL证书对服务器进行身份验证,确保用户连接到的是真实可信的服务器而非恶意的伪造网站。此外,HTTPS还使用消息验证码(Message Authentication Code)来确保数据的完整性,防止数据在传输过程中被篡改。
  • 排名优化:搜索引擎(如Google)倾向于将使用HTTPS的网站排名更靠前,因为HTTPS提供了更高的安全性和隐私保护。

HTTPS缺点:

  • 性能损失:由于HTTPS需要进行加密和解密操作,会增加数据传输的处理时间和网络延迟,可能导致网页加载速度变慢。
  • 成本和复杂性:为了使用HTTPS,网站需要获取和安装SSL证书,并进行相关配置。这可能需要支付费用,并且对于不熟悉配置的用户来说,可能会涉及一定的技术复杂性。

评论