欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CA数字证书之安全加密的原理

程序员文章站 2022-07-02 09:16:13
文章目录前言什么是中间人攻击一、数字证书的原理是什么二、CA是什么?二、使用步骤1.引入库2.读入数据总结前言前面简单讲了安全加密体系,文章链接 https://blog.csdn.net/weixin_41248237/article/details/108957483。在结合了对称加密,非对称加密,定向散列这三种加密算法后,通信效率的提高了,通信地安全性的增强了。...




前言

前面简单讲了安全加密体系,安全加密体系链接
在结合了对称加密,非对称加密,定向散列这三种加密算法后,通信效率的提高了,通信地安全性的增强了。可是还是有一个致命地漏洞,也就是在使用非对称加密的过程中,需要用到对方的公钥对数据进行加密,那么如何得到对方的公钥呢,通过网络传输得到对方的公钥可信吗?显然是不可信的。为何不可信,先来了解下“中间人攻击”。

一、什么是中间人攻击

CA数字证书之安全加密的原理

假设A请求B的公钥,此时有X发动了中间人攻击,情况描述如下:
A请求B的公钥,请求被X截取,X代替A向B去请求公钥。B收到请求后,会给请求者分发他的公钥。结果B的公钥被X截取,X冒充B将自己的公钥给A。此时各人的状态是:X获得了B的公钥,而A获得的是X的公钥。这一系列过程对于A是浑然不知的,A以为自己刚才获得的就是B的公钥,结果拿着这个假公钥对数据进行加密后发送给B,数据被X截获,用X的私钥解密后,就可以为所欲为了,(窃取信息,篡改数据等),之后将"脏数据"用真实的B的公钥加密,把结果发送给B,B收到了信息,用自己的私钥解密,可是这个数据已经"脏"了。

以此原理,用户在用密码登陆某网站的时候,客户端是要发送密码到服务端验证的。假设客户端获得了假公钥,用假公钥加密数据,那密码岂不是泄露了!
因此这个通信的关键是否能验证对方的公钥是否是真实的,这就需要引入第三方权威机构–CA

二、CA是什么?

再拿刚才A请求B的公钥的情况来说:从宏观上来说,CA是一个权威机构,他会颁布一个叫做"数字证书"的东西给B,这个数字证书上有B的公钥。而B收到公钥请求以后,不再直接分发自己的公钥,分发的而是自己的数字证书。这个数字证书是不能被中间人X篡改的,A收到B的数字证书以后,验证这个数字证书的真实性,如果确实是自己所信任的CA颁布的,就可以使用数字证书上的公钥加密继续通信了。

我们访问的某些网站,协议是https,这样的就是可信任的网站,因为它拥有权威CA颁布的数字证书;而某些网站协议http在chrome上就会提醒用户这个网站不可信任,有安全风险。

三、数字证书原理

先来看下流程图:
CA数字证书之安全加密的原理

B倘若需要申请一个数字证书,需要通过某种安全的方式将自己的公钥给到CA,CA使用自己的私钥加密B的公钥,之后将数字证书发送给B,B的数字证书颁发完成。当A向B申请公钥的时候,B向A分发的是B的数字证书。A自带CA的公钥,y因为每个操作系统出厂的时候会自带权威CA的公钥,这样就可以用CA的公钥解密CA的私钥,得到B的公钥。
这一流程的意思就是说:该证书确实是CA颁发的,可以信任B给的公钥

为什么数字证书在发送过程中不能被篡改?
假设X将证书拦截篡改,但是他没有CA的私钥可以签名,A拿着CA的公钥解不开私钥,就说明这个证书有问题。

本文地址:https://blog.csdn.net/weixin_41248237/article/details/108987939