对称加密,非对称加密,数字签名,数字证书全解析

http协议是一种非加密传输的协议,数据是在80端口以明文的方式所传输,存在安全问题
https则提供了加密传输,加密方式有两种:对称加密非对称加密

对称加密:

描述:
加密解密都是同一把钥匙,效率很高。
要发送数据时,先提前以明文的方式给对方发送一枚秘钥,之后双方发数据时就用这把秘钥加密解密,自由传输。

问题:
由于秘钥是以明文先传输过去的,假如这时有不法分子窃取了这把钥匙,那么接下来你们两个传的什么偷鸡摸狗的密文,他都看得一清二楚了。

非对称加密:

描述:
每个人都有两把钥匙,一把公钥,一把私钥,公钥加密,私钥解密,安全性好但是效率不高。
要发送数据时,先要求对方发送他自己的公钥过来,然后用他的公钥加密,再把数据发给他,这样对方就可以使用自己的私钥解密查看了。要接收数据也一样,先把自己的公钥给人家,让他用你的公钥加密好了,再把数据发回来,自己用私钥解密。

非对称加密就可解决上述对称加密带来的安全问题,没错,我先传过去的公钥是明文的,但你窃取了也没用,用它来加密的密文只有我的私钥才可以解密,但你得不到我的私钥。也就是说,谁要给你发数据,你就给谁一把公钥,只要你好好保存自己的私钥,数据都是安全的。

但由于非对称加密效率较低,所以,可以采取非对称加密的方式 把对称加密需要的唯一秘钥传过去,然后后面再进行高效的对称加密传输。

但是,非对称加密还不是完全绝对安全的。

问题:
想象一个情景,要是A把公钥发给B,这时,有一个不法分子截取了这个A公钥,还厚颜无耻地把自己的公钥冒充A的公钥发给了B,然后B傻乎乎地用这把公钥加密了数据传给了A,这时的密文数据不法分子就可以用它的私钥来解密看到了真实的明文数据。这时,他还继续厚颜无耻把解密好的明文再次用之前截获到A公钥加密,传给A,然后A收到了这个似乎“一切正常”的密文。要是这个不法分子截取到还是对称加密多用的秘钥的密文,那后果就更严重了。

数字签名:

在非对称加密中,怎么使对方确认他收到的密文是我本人发送的呢?又或者要是中途被人恶意修改了呢?这个问题是上述两个加密方式都无可避免的。
这里可以使用数字签名

我先对数据进行hash算法生成哈希值(摘要),

再对哈希值用自己的私钥加密,

用私钥加密的消息称为签名,把它附在数据后面,

再用对方的公钥对所有数据进行加密传输,

密文到了对方手里,对方用自己的私钥对全部数据进行解密,同时看到了签名(加密的哈希值),

对方用我的公钥解密这个密文哈希值,得到哈希值,

再重新对数据正文做hash算法,得到新哈希值,

对比一下,要是相同就证明这个数据是由我发出且未被修改。

数字证书:

对于上面遗留的非对称加密的公钥被冒充的问题,还有上述数字签名所用到的公钥,怎么保证我收到的对方的公钥是就是对方的公钥不是被人冒充的呢??要是公钥是被冒充的那数字签名也废了。

这时候,数字证书出现了!

为了证明这个公钥确实是属于某个人的,需要有一个机构来认证,这种机构称为认证机构(Certification Authority, CA)。CA就是能够认定”公钥确实属于此人”,并能生成公钥的数字签名的组织或机构。CA有国际性组织和政府设立的组织,也有通过提供认证服务来盈利的组织。

证书一般包含:1公钥,2公钥的数字签名,3公钥拥有者的信息

A获得证书过程:
1, A先把公钥A发给CA
2, CA对公钥A进行hash运算得到哈希值,再用自己的私钥CA对哈希值进行加密,生成数字签名A
3, CA把公钥A,数字签名A,附加一些服务器信息整合在一起,生成证书,发回给A。

A要发送公钥给B的流程:
1, A把证书发送给B
2, B得到证书的公钥CA(通过CA或其它途径)
3, B用公钥CA对证书中的数字签名解密,得到哈希值
4, B对公钥A进行哈希值计算
5, 两个哈希值对比,如果相同,则证书合法,公钥A可用。

猜你喜欢

转载自blog.csdn.net/qq_42862882/article/details/88952211