# 官方提供@yunTaoScripts TLS 加密 🔥🔥

loading https://github.com/prometheus/prometheus

所有组件间的通信都是需要加密,TLS 传输层加密,前身是SSL。https = http + TLS/SSL

# 对称加密

A 传输 内容给B。A使用密钥X加密。B接收内容并通过密钥X解密。加密和解密使用相同密钥。

  • 优点
    • 加密速度快,适合大数据。
  • 缺点
    • 密钥不知道如何传递。

# 非对称加密

# 数据加密

有两个密钥,一个公钥一个私钥。公钥是可以公开的,私钥是不可以公开的。 A传输内容给B。B 创建公钥 和 私钥,并将公钥发送给A,A通过B的公钥加密内容给B,B通过B的私钥解密。此时不拍内容被截获,因为只有B拥有私钥。

# 将对称加密和非对称加密结合

A传输内容给B。A先通过对称加密算法传递内容给B。A再通过非堆成加密算法将A的对称加密算法密钥传递给B。

  • 缺点:非对称加密不适合加密大数据

危险⚠️

公钥 被截取将导致中间人攻击。

# 中间人攻击

还是以A发送内容给B举例。B首先发送B的公钥给A,此时公钥被C截获,C发送C的公钥给A。A收到C的公钥以为是B发送的,然后通过C的公钥加密数据发给B,结果数据被C截获了。C通过自己的私钥解密了数据,C查看或者修改了数据,然后通过截获的B的公钥加密了数据然后发送给B。B正常收到了数据,但是不知道数据已经经手了C。

# 数字签名

私钥加密,公钥解密。以 B发送数据给 A举例。B首先通过哈希算法生成哈希值hash1。B通过私钥加密哈希值hash1。此时 B将 B的公钥、数据、加密哈希值发送给A。 A收到 这三样东西会做判断数据是否为 B 发送。首先 A 通过B的公钥 解密哈希值得到hash1,如果成功证明数据是B发的,然后A 通过哈希算法加密接收到的数据得到hash2,如果比对hash1 和 hash2相同,则证明数据没有被篡改。

  • md5校验,不可反推
md5sum /etc/hosts

数字签名存在的问题。

  1. B 的私钥和 B实体无法绑定,想生成几个生成几个。B发送错误数据后 销毁密钥对,将死无对证,A无法追究B的责任。
  2. 导致中间人攻击

# 证书中心

权威机构,CA证书中心。证书 可以理解为公钥,只不过这个公钥不是自己生成的,而是CA生成的,互联网身份凭证。

# 请求流程

  1. B创建私钥。
  2. B 向 CA 证书请求中心 申请证书请求文件。
  3. CA 机构颁发证书。

CA 的公钥 和 私钥的作用

  • 私钥用于给颁发的证书做数字签名
  • 公钥用于其他组件做证书解密。
  1. 把证书发给A,让A 放心使用。
  2. A 使用CA 公钥验证证书真伪性。(浏览器一般都会内置CA证书)
  3. A 通过 B证书 加密 传输A 的私钥。
  4. A 通过 对称加密算法传输数据。

mtls

A 要验证 B 的身份的 同时,B也要验证A 的身份。这叫做双向tls认证,即mtls。

最后修改时间: 12/31/2022, 12:00:03 PM