数据传输

网友投稿 766 2022-05-29

1、如果有大量数据要从A传递给B,为了不泄密,就需要对数据加密,出于计算性能考虑,选择共享密钥加密的方式,即A和B都要拥有同一密钥,A用这一密钥加密,B收到后用这一密钥可解密 :)

2、那么,这个共享密钥如何在A和B之间传递呢?如果明文传递,被第三方截获共享密钥,数据的通信就不安全了 :(

所以要对共享密钥进行加密。由于密钥本身不大,计算性能不会成为障碍,所以可以采用公钥加密方式。例如,A设定共享密钥,并用B的公钥对这个共享密钥进行加密后传输给B,B用自己的私钥来解密,这样B就获得了共享密钥了 :)

3、问题是A如何获得B的公共密钥?如果公共密钥以明文直接传输的话,遭遇中间人攻击,中间人可以用自己的公钥来替换B的公钥,这样后续A发出的数据(共享密钥)就可以被中间人以自己的私钥打开了 :(

解决问题的办法是B向A提供自己的证书,证书中包含了B的公钥,并且证书经过权威的第三方机构(认证中心)的签名,这个签名是不可伪造的 :)

4、但是A如何来验证B提供的证书是否合法呢?A需要有认证中心的公钥才能确认证书是否合法呀 :(

这里的办法是将认证中心的公钥编译到软件里去,而软件以CD-ROOM或U盘等物理方式来提供,这样公钥就安全了。

数据传输加

按事情先后顺序梳理一遍就是:

1、A通过软件编译的方式内置认证中心公钥

2、B向A发送自己的证书,证书中包含B的公钥,A用认证中心公钥验证证书合法

3、A设置用于大量数据传输加密的共享密钥,并将这一共享密钥用B的公钥加密后传送给B,B接收后用自己的私钥解密获得共享密钥

4、A用上述共享密钥对大数据进行加密,传递给B,B用同一共享密钥对大数据解密

转载请注明出处:华为云博客 https://portal.hwclouds.com/blogs

数据传输 数据传输协议

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:高级运维需要掌握哪些技术?
下一篇:Spark 学习中遇到的一些问题
相关文章