登 录
注 册
< 信息安全
数据安全
密码学
安全常识
透视公钥加密与中间人攻击
公钥基础设施与数字签名
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
当前位置:
首页
>>
密码学
>>
透视公钥加密与中间人攻击
透视公钥加密与中间人攻击
2021-05-02 21:49:55 星期日 阅读:1016
![](/static/images/article_images/1693753922.758601.jpeg) 本文介绍对称加密与非对称加密区别,以及中间人攻击的原理 #### 对称加密及不足 对称加密的原理可参考下图: ![](/static/images/article_images/1620024245.4304547.jpeg) 如图,A和B先通过安全信道交换秘钥,这样A、B均有对方密码箱(为了方便理解,这里使用密码箱比喻)的钥匙。 当A给B发送密码箱时,A先使用A的秘钥进行加密,B收到后,由于B已经有A的钥匙,直接打开(解密)就能看到A发送的信息。如下图: ![](/static/images/article_images/1620024199.57341.jpeg) 同理,当B发消息给A也是相同的流程。 这种打开密码箱和关闭密码箱使用的是相同钥匙(AK)的加密方式就是对称加密。 这种通讯方式看似没什么问题。然而,现实世界中,互联网是一个不安全的渠道。数据流可以被窃听,甚至在传输过程中被修改。因此`不可能通过互联网建立安全信道进行秘钥交换`。 所以,非对称加密技术就是为了解决这个痛点而开发。 --- #### 非对称加密(公钥加密) 非对称加密可以理解为一个密码箱有两把钥匙:一把是公钥,一把是私钥。 **`公钥只能用于锁定保险箱`** **`私钥只能用于解锁保险箱`** 任何人只要有我的公钥,都可以把我的密码箱锁定。一旦锁定,就只有我自己用私钥才能解锁,任何人都解不开。 因此,公钥可以告诉任何人,但是私钥必须保密。这两把钥匙就是`公私秘钥对`,在数学上关联。 下图展示了非对称加密的流程,我们假设A要给B发送密码箱。B收到后又给A回复的过程。 ![](/static/images/article_images/1620021440.4186575.jpeg) 1、AB通过网络交换公钥,私钥留在各自本地 2、A使用B的公钥加密消息,并发送给B。 > 此时,窃听者可以截获A发给B的密文,但是无法解密,因为他没有B的私钥 3、B收到消息后,使用本地的私钥进行解密,从而知道A发送的内容 4、同理,B回复A时,使用A的公钥进行加密,A收到后再用本地自己的私钥进行解密 这种方案由于私钥在自己本地存储,没有通过网络进行交换。相比对称加密,极大减少了计算机通讯中的信息泄漏问题。 --- #### 中间人攻击 其实,细心的读者可能会发现非对称加密也不是万能的:由于公钥通过不安全的信道发送,这为`中间人攻击`提供了可能性。如下图所示: ![](/static/images/article_images/1620023049.49098.jpeg) 1、C在AB交换公钥时,拦截A、B的公钥并保存,同时将自己的公钥(CK)发送给A、B。`让A、B误以为CK就是对方的公钥`。 2、此时A像B发送密码箱时,A使用的其实是C的公钥进行加密 3、C再次拦截A发过来的密码箱,由于使用的是自己的公钥加密的,可以使用自己的私钥进行解密,从而获取信息。 4、C读取完加密的信息后,再用已保存的B的公钥进行重新加密,并发送给B 5、B收到后再用自己的私钥进行解密,得到A发送的信息 请注意,`在此次攻击中,A、B没有发现任何表明他们被攻击的迹象`,这种攻击就叫中间人攻击。 --- **那么如何解决这种中间人攻击带来的问题**呢?业界比较主流的方案有如下几种: >公钥分发 信任网 离线信道 公钥基础设施PKI—证书颁发机构(CA) 其中`公钥基础设施`是世界上部署最广的加密方案,这也是下一节要分享的内容:[公钥基础设施与数字签名技术](https://libins.cn/detail/moduleName=suibi&articleId=4267711c2ef227ad0668d6268b3a9fce "公钥基础设施与数字签名技术") --- *参考文献:《区块链与数字金融革命》*