# 官方提供@yunTaoScripts TLS 加密 🔥🔥
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
数字签名存在的问题。
- B 的私钥和 B实体无法绑定,想生成几个生成几个。B发送错误数据后 销毁密钥对,将死无对证,A无法追究B的责任。
- 导致中间人攻击
# 证书中心
权威机构,CA证书中心。证书 可以理解为公钥,只不过这个公钥不是自己生成的,而是CA生成的,互联网身份凭证。
# 请求流程
- B创建私钥。
- B 向 CA 证书请求中心 申请证书请求文件。
- CA 机构颁发证书。
CA 的公钥 和 私钥的作用
- 私钥用于给颁发的证书做数字签名
- 公钥用于其他组件做证书解密。
- 把证书发给A,让A 放心使用。
- A 使用CA 公钥验证证书真伪性。(浏览器一般都会内置CA证书)
- A 通过 B证书 加密 传输A 的私钥。
- A 通过 对称加密算法传输数据。
mtls
A 要验证 B 的身份的 同时,B也要验证A 的身份。这叫做双向tls认证,即mtls。
← 快速链接