到底启用 SSL 之后还能不能被抓包?

2014-10-31 18:10:42 +08:00
 abelyao
如题,网站启用普通的 DV SSL 证书之后,客户端的其它软件,或者路由,网关,之类的,还能不能抓到数据包的 POST 内容?
14617 次点击
所在节点    问与答
28 条回复
adow
2014-10-31 21:40:12 +08:00
传输的过程中指的是比如在你的路由器上拦截的时候,他的内容是无法得到明文的,当然如果他在别的地方使用你的证书的话应该也可以。
我对这个不是很清楚,所以只能打这样的比方。
在我之前一个帖子讨论 http 接口盗用的问题的时候(http://v2ex.com/t/90016#reply55),开始我们也认为用上ssl 别人就没法抓取内容了,其实他完全是可以的,他正常访问获得合法的证书后就可以很轻松的用fliddler 抓包获得明文。
mornlight
2014-10-31 21:45:13 +08:00
只要你的私钥没有泄露,客户端那边没有信任奇奇怪怪的证书,按规矩来,就应该认为在中间环节上是不可解密的。
客户端有问题的话,根本不是你该管的事。他要是信任了一个自签名的证书,你一点办法都没有。
Quaintjade
2014-10-31 21:47:16 +08:00
@abelyao
理论上(体系、协议、算法的设计上)中间人无法解密,但由于实现时(软件作者写软件时)有意无意的疏漏,或使用者的错误,使得中间人攻击成为可能

比如设计上如果目标网站和证书对不上(或者证书不受信任),应该拒绝访问,或至少醒目提示,但很多软件会绕过这环节。
比如设计上只有经过安全审计的机构才能获得CA资格,但许多软件会把自己的证书加到根证书列表里。
比如设计上你从头到尾都应该用https通讯,实际上大多数人都是访问http,由浏览器去跳转到https。
还有演示可以长期留存的cookies,等你下次访问目标网站时触发,插入代码。
adow
2014-10-31 21:47:45 +08:00
@mornlight 没错,ssl 就是保证,如果你妥善保管你的证书(私钥,就好比密码),那我们就是安全的,你私钥给人用了,那他就知道了。而所谓的抓包,他完全可以在获取到私钥的情况下来抓包,这时他就能知道内容了。
abelyao
2014-10-31 21:58:31 +08:00
@wangkangluo1
@adow
@Quaintjade
@mornlight
感动得泪流满面… 谢谢几位朋友的热心回答,大概明白意思了。
待我慢慢消化,找个实际操作一下,我想我能理解得更好。
jeansfish
2014-10-31 23:35:06 +08:00
仔细看了下问题,其实理解了RSA加密就简单了。服务器知道私钥,暴露公钥,这样客户端获取私钥加密的内容,用公钥解密,客户端就信任这个内容是服务器送来的。客户端用公钥加密Post的内容,只有服务器有私钥才能解密。
@spance 说的对。fiddler就是把这个过程变成了两步。
julyclyde
2014-11-02 17:38:49 +08:00
抓包是在网卡层面的,当然能抓
你如果问能不能解密,那我告诉你,有私钥才能解,否则仅剩下理论上的可能性了
tabris17
2014-11-02 19:31:52 +08:00
@abelyao 中间人需要替换合法证书才能获取明文数据

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/143012

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX