onlyliuxin / coding2017

216 stars 641 forks source link

ssh密钥认证,一直有个疑问,公钥能泄露吗如果泄露的话,那岂不是可以冒充服务器了 #490

Open linlazy opened 7 years ago

linlazy commented 7 years ago

ssh密钥认证,一直有个疑问,公钥能泄露吗如果泄露的话,那岂不是可以冒充服务器了

onlyliuxin commented 7 years ago

公钥就是public 的, 任何人都可以获取到

BlindingDark commented 7 years ago

这个过程我觉得需要先了解一下非对称秘钥加密的原理。 现代密码学已经从秘钥本身的保密性,转向了加密算法本身的保密性了。 公钥就是给别人看的,就算你拿了我的公钥,也无法解密我的东西,因为用公钥加密的东西需要用私钥来解密。所以只要私钥不泄露就是安全的。

那你说私钥泄密了咋办,那这个问题已经是另外的安全范畴了,比如你电脑中了键盘记录病毒,或者你的私钥被你朋友拷贝走了,或者你你不幸把私钥传到了公开网络上,这些情形已经不是 SSH 能够解决的了。

tianmengwei110 commented 7 years ago

像md5加密后的数据可以通过量子计算机进行处理获得加密之前的数据,那是否可以根据已知数据:未加密之前数据,公钥,加密之后的数据,处理获得未知的数据,私钥呢? @BlindingDark

BlindingDark commented 7 years ago

@tianmengwei110 这说明你只是听了几个名词,根本没有了解它们是什么。首先 MD5 从来就不是加密算法,更谈不上什么解密。因为同一个 MD5 值会对应无数种“原始数据”。注意,是无数种。所以就算你用尽了宇宙所有的计算机资源也无法“解密”,无法找到“原始数据”,反而会找到更多的“原始数据”可能性。但是这许多种可能性中,只有极少数是有自然语言含义的,如果碰巧正好是你的密码,那就危险了。另外,无论是哪种加解密模型,都是可以被暴力破解的,只不过是时间长短的问题。就好比破解你的密码需要十万年,你觉得有意义么?更快的计算速度肯定会淘汰掉那些破解时间较短的算法,比如原来需要一百年才可以破解的内容,使用未来的量子计算机可以在几天之内破解,这样才叫“可破解的”。不过乐观看来,距离普通黑客手中也可以拥有这样强的计算能力的时间还很长。所以放心吧。