首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么一个中间人的攻击不会发生在RSA身上?

为什么一个中间人的攻击不会发生在RSA身上?
EN

Security用户
提问于 2018-07-12 20:30:00
回答 6查看 9.5K关注 0票数 9

我理解RSA是如何工作的(生成私钥/公钥对,将公钥发送给您想要交谈的任何人,用公共密钥加密,用私有密钥解密),但是这里面没有漏洞吗?

假设A想向B发送消息,A生成他的公钥/私钥对,然后通过网络将公钥发送给B,对吗?是什么阻止C来拦截这个公钥,生成他自己的公钥,然后把他自己的公钥发送给B?然后,当B将他的公钥发回给A时,C可以拦截它,存储它,并将他自己的公钥发送给A。

现在,当A用他认为是B的公钥(但实际上是C的)发送加密的消息时,C会截取这条消息,解密它,然后使用B的实际公钥再次加密它。

这个能行吗?若否,原因为何?这仅仅是一个使用安全网络发送公钥的问题吗?

EN

回答 6

Security用户

回答已采纳

发布于 2018-07-12 20:47:05

这是密钥分配的问题,也是困难的。一般来说,爱丽丝必须已经知道钥匙属于鲍勃,或者让她信任的人证明钥匙属于他。

对于HTTPS,这是由公钥基础设施 (PKI)完成的,其中证书颁发机构 (CA)证明密钥属于某个域或一组域。如果任何广泛信任的CA不值得信任,该方案很快就会崩溃,不幸的是,这种情况在过去已经多次发生(WoSign赛门铁克)。

SSH通过为您连接的每台服务器存储主机密钥来缓解它,然后警告您,如果主机键为以后的连接发生了更改(这称为第一次使用时信任)。它还警告您并允许您在第一次连接时验证密钥的指纹,但这需要通过其他方法获取指纹,因此它不能解决问题,而是将其传递给用户。

票数 8
EN

Security用户

发布于 2018-07-12 20:46:48

您描述的问题确实可能发生-- RSA (或任何其他加密方案)中没有任何东西可以阻止它。这就是所谓的。“密钥分配问题”。

是的,通过安全通道交换密钥,而不是不安全的消息,是解决问题的方法之一。根据用例的不同,可能有其他有用的方法(或不)。

在TLS中,这是通过已经在另一边设置了一些东西来防止的--各种CA的公共版本,预先安装在操作系统或浏览器中。它可以用来检查发送的公钥的签名,这是CA首先做的。

(与此问题并不真正相关,但没有人直接用RSA加密消息。例如:因为它很慢。用AES加密消息,然后只使用RSA加密AES密钥就更常见了,但这并没有改变这里的问题)。

票数 3
EN

Security用户

发布于 2018-07-12 20:46:11

从狭义上讲,你没有错。非对称加密提供的保密性和真实性保证的前提是,所有各方都拥有对应方公钥的真实副本。如果一个对手冒充你的对手,愚弄你接受他们自己不真实的钥匙作为真正的交易,一切都会分崩离析。

非对称加密的优点是,这种身份验证可以在整个公众都能看到的某个通道上进行。可以这样想:所有的密码学都要求参与者在某个时候使用某种间歇性的安全通道来设置密码系统。纯对称密码学要求参与者建立共享密钥的秘密和真实的通道。非对称密码术改进了这一点,因为它只需要一个真实的通道--您可以在偷听者的视线中验证对应方的公钥。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/189468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档