跳过正文
  1. 文章/
  2. 网络安全/
  3. 加密算法/

1、HTTPS

·1272 字·3 分钟· loading · loading · ·
网络安全 加密算法
GradyYoung
作者
GradyYoung
加密算法 - 点击查看当前系列文章
§ 1、HTTPS 「 当前文章 」

加密方式
#

  • 对称加密:客户端和服务器共用同一个密钥,可以用于加密一段内容,可以用于解密这段内容。
    • 优点:加解密效率高。
    • 缺点:安全性方面可能存在一些问题,因为密钥存放在客户端有被窃取的风险
    • 对称加密的代表算法有:AES、DES等。
  • 非对称加密:它将密钥分成了两种(公钥和私钥)。公钥通常存放在客户端,私钥通常存放在服务器。使用公钥加密的数据只有用私钥才能解密,反过来使用私钥加密的数据也只有用公钥才能解密。
    • 优点:是安全性更高,因为客户端发送给服务器的加密信息只有用服务器的私钥才能解密,因此不用担心被别人破解。
    • 缺点:加解密的效率相比于对称加密要差很多。
    • 非对称加密的代表算法有:RSA、ElGamal等。

HTTPS
#

HTTPS (全称:Hypertext Transfer Protocol Secure),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与TCP之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

相关概念
#

  • key:一般指私钥
  • CSR(Certificate Signing Request):即证书签名申请,这不是证书,这是要求CA给证书签名的一种正式申请,该申请包含申请证书的实体的公钥及持有人的国家、邮件、域名等信息。该数据将成为证书的一部分。CSR始终使用它携带的公钥所对应的私钥进行签名。
  • CRTCER(Certificate):证书
  • PEM:证书或私钥的Base64文本存储格式,可以单独存放证书或私钥,也可以同时存放证书和私钥
  • DER:证书或私钥的二进制存储格式,可以单独存放证书或私钥,也可以同时存放证书和私钥
  • JKS:JAVA的keytools证书工具支持的证书和私钥格式,它包含了公钥和私钥,并且可以通过keytool工具来将公钥和私钥导出。

HTTPS的理解思路
#

普通HTTP协议流程如下:

img

没有任何加密手段,网站发送的消息hello经过中间路由被篡改为world

如果使用对称加密流程如下:

img

此时有个问题,浏览器和服务器之间在第一次通信的时候,怎么共享密钥A,必定需要明文传递,容易被中间路由捕获

如果引入非对称加密,私钥保存在服务器、公钥发送给浏览器,浏览器再使用公钥对对称加密密钥A进行加密后发送给服务器,服务器使用私钥进行解密,即可获取本次会话的密钥A,流程如下:

在这里插入图片描述

但是这样的话,如果浏览器获取服务器首次发送的公钥被掉包,那么就会引起问题

img

此时就引出了,CA机构,CA机构专门用于给各个网站签发数字证书,保证浏览器可以安全地获得各个网站的公钥

浏览器解密的信息不仅仅包括网站公钥,还有其他信息

从CA机构获取数据就安全了吗,不会被掉包吗?

其实,世界上的网站是无限多的,而CA机构总共就那么几家。任何正版操作系统都会将所有主流CA机构的公钥内置到操作系统当中,所以我们不用额外获取,解密时只需遍历系统中所有内置的CA机构的公钥,只要有任何一个公钥能够正常解密出数据,就说明它是合法的。

image-20240229190732769

https流程
#

20200313160041173

加密算法 - 点击查看当前系列文章
§ 1、HTTPS 「 当前文章 」