农民 发表于 2024-9-1 17:58:38

Nginx: https解决安全问题

https原理


1 )http协议存在的问题


[*]数据利用明文传输,可能被黑客窃取 (需要信息加密)
[*]报文的完整性无法验证,可能被黑客篡改 (需要完整性校验)
[*]无法验证通信双方的身份,可能被黑客伪装 (需要身份认证)
2 ) https 原理


[*]所谓 https, 其实只是身披TLS/SSL协议外壳的http
   https://i-blog.csdnimg.cn/direct/1b2356dc71e24d7eb79991363f9f9eb2.png

[*]HTTPS = HTTP + TLS/SSL
解决信息被窃听问题


1 )数据利用明文传输,可能被黑客窃取


[*]明文被截获非常不安全
1.1 加密算法


[*]对称加密,常见算法:DES、AES、3DES
[*]非对称加密,常见算法:RSA、DSA、ECC
1.2 关于对称加密
   https://i-blog.csdnimg.cn/direct/7c31ab021a8f4c7597c23e3568d5e83f.png

[*]客户端,服务器都用同一把,密钥如何举行协商是一个问题
[*]通过互联网传输,密钥如何包管不被窃听
[*]上风

[*]解密效率高

[*]劣势

[*]密钥无法实现安全传输
[*]密钥的数目难于管理
[*]无法提供信息完整性校验

1.3 关于非对称加密算法
   https://i-blog.csdnimg.cn/direct/52677b92d2d642ac80704322757bd02a.png

[*]上风

[*]服务器仅维持一个私钥即可

[*]劣势

[*]公钥是公开的
[*]非对称加密算法加解密过程中耗费一定时间
[*]公钥并不包罗服务器信息,存在中间人攻击的可能性

1.4 https 加密原理


[*]https 混合利用对称加密和非对称加密
[*]在毗连创建阶段利用非对称加密算法
[*]内容传输阶段利用对称加密算法
   https://i-blog.csdnimg.cn/direct/cacf363d6f2a4696848a0dbbbe8009c2.jpeg

[*]上图简朴描述,客户端发起一个https哀求
[*]服务端收到哀求后,蒋公钥发给客户端
[*]客户端验证公钥的正当性,不正当则显示告诫
[*]正当,则客户端天生一个伪随机数作为一个客户端的秘钥
[*]客户端利用公钥加密这个伪随机数,发送到服务器端
[*]服务器利用私钥解密这个被加密的伪随机数
[*]这个时候,客户端和服务器端都存在伪随机数这个秘钥了
[*]整个创建毗连的过程结束
[*]通信的时候,客户端和服务器端都利用这个伪随机数举行加密通信
[*]由此,包管了安全和效率
2 )报文的完整性无法验证,可能被黑客篡改


[*]解决报文被篡改 — 数字签名

[*]确定消息简直是由发送方签名发送过来,因为别人冒充不了发送方的签名
[*]能确定消息的完整性,证明数据从未被其他人篡改过

2.1 数字签名的天生
   https://i-blog.csdnimg.cn/direct/3a74f91a15174d3ca07d1531f095775f.png

[*]经过上述过程,服务端会将签名和原文返回给客户端
2.2 数字签名的校验流程
   https://i-blog.csdnimg.cn/direct/0ac0a7a1b2914b6aa57d93efac49f890.png

[*]客户端收到签名,利用公钥举行解密出消息摘要
[*]客户端将消息摘要通过哈希算法计算出消息摘要
[*]客户度将两个消息摘要举行对比

[*]对比不一致,报文可能会被更改
[*]对比一致,则没有问题

[*]包管签名不被篡改,包管报文不会被篡改
[*]通过数据签名,包管报文完整性的校验
2.3 数字签名的正当性验证


[*]客户端是需要利用服务器的一个公钥,对数字签名举行解密的
[*]从服务器收到这样一个数字签名,如何去验证它就是这台服务器返回的
[*]在中间可能会被圈外人把这个数字签名返回给我的
[*]也就是说数字签名,在传输的过程中,可能会被更换
[*]因为服务器公钥,任何人都是可以拿到
[*]因此为了解决这样一个身份验证问题,需要引入CA这样一个概念
[*]也就是说这个证书是谁来颁发的
2.4 CA 证书申请过程中做的事变


[*]你申请的某一个域名,一定会归属于某一个组织
[*]在申请证书的时候,会将组织信息,域名信息提交给CA(证书颁发机构)
[*]CA会通过一些线上的方式大概是线下的方式, 对你的这些信息举行验证
[*]验证你这些信息是正确之后,就颁发这样一个证书
[*]这些证书通样是包罗了这样一些以下信息的

[*]申请者的公钥
[*]申请者的组织信息和个人信息等等
[*]签发机构CA的信息
[*]证书的一个有用时间,证书序列号等等。
[*]同时它会会包罗一个数字签名

[*]至此,整个组织向CA就申请了这样一个正当的证书
[*]给我们的服务器配上这样一个证书之后
[*]我们的客户端向服务器发起哀求的时候
[*]我们服务器会将申请的这样一个证书,给返回给我们的客户端
[*]客户端会读取的证书中干系的一个明文信息
[*]同时它会采取一定的哈希算法去计算这样一个信息摘要
[*]它计算完之后,能够利用对应CA的公钥去解密这样一个签名数据,对比证书的信息摘要,如果一致,就以为,这样一个证书是正当的,反之就以为黑白法的

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Nginx: https解决安全问题