首页 https原理
文章
取消

https原理

简介

  HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。HTTP 由于是明文传输,主要存在三大风险:窃听风险篡改风险冒充风险。为了保证这些隐私数据能加密传输,于是Netscape 公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

  HTTPS的全称是HyperText Transfer Protocol Secure,中文意思是“超文本传输安全协议”。HTTPS是一种通过计算机网络进行安全通信的传输协议,它在HTTP的基础上通过传输加密和身份认证来保证传输过程的安全性。简单来说,HTTPS是HTTP的安全版,它在HTTP的基础上加入了SSL(Secure Sockets Layer)或TLS(Transport Layer Security)层,用于加密数据传输并验证网站的身份。

特性

  HTTPS安全是由一套安全机制来保证的,针对 HTTP 协议暴露的问题,主要具备4个特性:机密性完整性身份认证不可否认性

  • 机密性:指传输的数据是采用Session Key(会话密钥)加密的,在网络上是看不到明文的,有效解决窃听问题。
  • 完整性:指为了避免网络中传输的数据被非法篡改,使用MAC算法来保证消息的完整性。解决了HTTP协议中常见的数据篡改问题。
  • 身份认证:指通信的对方是可信的,利用了PKI(Public Key Infrastructure 即『公钥基础设施』)来保证公钥的真实性。解决了HTTP协议中常见的冒充问题。
  • 不可否认性:这个消息就是你给我发的,无法伪装和否认,是因为使用了签名的技术来保证的。解决了HTTP协议中常见的冒充问题。

算法

  为了能够具备上述的特性,在HTTPS协议中,主要用到了以下几种算法:

对称加密算法

  对称加密算法是应用较早的加密算法,对信息进行加密和解密时使用的是同一个密钥,即加密密钥也可以用作解密密钥,这种加密方法称为对称加密,也称为单密钥加密或私钥加密。常用的对称加密算法有:DES、3DES、RC2、RC4、SM4、AES等。

  对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。缺点是在数据传送前,发送方和接收方必须商定好密钥,然后双方都要保存好密钥。如果一方的密钥被泄露,那么加密信息也就不安全了。

非对称加密算法

  非对称加密算法是应用较晚的加密算法,加密和解密时使用的是两个不同的密钥,即公钥和私钥。使用公钥加密需要使用私钥解密,使用私钥加密需要使用公钥解密。常用的非对称加密算法有:RSA、DSA、ECDSA等。

数字签名算法

  数字签名算法是使用公钥和私钥来完成数据的签名和验证的算法。使用私钥对数据进行签名,使用公钥对签名进行验证。因为私钥是保密的,所有只要使用公钥能够解密就说明这个数据一定是使用私钥加密的,具有不可抵赖性。

散列算法

  散列算法是使用一个函数来对数据进行摘要,然后生成一个固定长度的摘要值,这个摘要值就是数据的指纹,通过指纹可以判断数据是否被篡改。常用的散列算法有:MD5、SHA-1、SHA-2等。

证书

  HTTPS证书,也称为SSL(Secure Sockets Layer)证书或TLS(Transport Layer Security)证书,是一种数字证书,用于数据的加密和身份验证,确保数据在客户端和服务器之间的传输安全。HTTPS证书可以防止数据信息泄露,并确保数据的完整性,这种证书通常由受信任的数字证书颁发机构(CA)颁发,在验证服务器身份后,具有服务器身份验证和数据传输加密的功能。

mmy83.online的证书

  可以看到,这个证书的发证机构、有效期、网站信息、网站的公钥等信息。这个证书就是使用数字签名算法生成的,证书颁发机构通过私钥进行签名,客户端使用公钥进行验签。验签的过程其实就是用公钥解密的过程。

注:这个公钥是发证机构的公钥,他是内置到浏览器中的,不是后续网站的公钥。

流程

https流程

  在上面的流程中可以看出:

  1. 公钥是在证书里面的,这一点从证书里面的信息也可以看到。
  2. 数据加密的秘钥的一部分是用非对称加密进行加密后传输的。
  3. 数据传输时使用的是对称加密,这样加密效率高。
本文由作者按照 CC BY 4.0 进行授权

Linux的日志管理-journal

https证书的创建过程