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

2014-10-31 18:10:42 +08:00
 abelyao
如题,网站启用普通的 DV SSL 证书之后,客户端的其它软件,或者路由,网关,之类的,还能不能抓到数据包的 POST 内容?
14419 次点击
所在节点    问与答
28 条回复
bearice
2014-10-31 18:11:27 +08:00
不能
virusdefender
2014-10-31 18:18:51 +08:00
能吧 在本地导入证书 参考http://wangsheng14591.blog.163.com/blog/static/3277971020130465730354/
spance
2014-10-31 18:18:58 +08:00
看到的是经过加密的数据,里面基本都是不可见字符,无法知道里面的通信内容。
但ip头和tcp头还是可见的,知道你发往那个ip的那个port
lshero
2014-10-31 18:19:18 +08:00
客户端如果安装了并且信任了私有CA办法的证书还是有可能的
除非你改成双向的SSL连接
abelyao
2014-10-31 18:22:03 +08:00
@lshero 能否详细说说双向 SSL 是什么?是网站那边设置的,还是…?
abelyao
2014-10-31 18:24:46 +08:00
@spance 这个不怕,主要是数据包的内容,会不会像楼上几位说的,有证书就可以抓包了
tabris17
2014-10-31 18:29:42 +08:00
本地能。

中间人如果能搞到合法证书也能
lshero
2014-10-31 18:43:54 +08:00
@abelyao 向银行那样需要客户端也需要安装数字证书的就是双向SSL的 客户端网站都需要部署证书
abelyao
2014-10-31 18:51:12 +08:00
@virusdefender @tabris17 @lshero
几位都提到了中间人导入证书的事,这样听起来好像有证书是蛮简单的,但我还是不太明白是不是真的这么简单,我举个例子:
运行在 SAE 上面的微信公众帐号服务端,传输的时候都带有 AppSecret 之类的参数,而且是明文的(之前的情况,现在已经升级了),那是不是意味着 SAE 的机房网管作为中间人,完全是可以看到这些敏感资料的?
wanwangkangluo1
2014-10-31 18:53:50 +08:00
http://www.fenesky.com/blog/2014/07/19/how-https-works.html
你无法获取client端产生的PreMaster Secret是无法解密的。
spance
2014-10-31 18:54:19 +08:00
@abelyao
抓包在链路上任何一个中间节点都可以,但是他们无法知道传输内容。
不管有谁的证书,都不能知道,证书只是不对称加密中的公钥,没有私钥是无法解迷的。
况且这个过程是这样的,ssl握手过程就是用非对称加密方法传输了对称加密的算法和密钥,之后的通信都是用对称加密的密钥来加密,这个密钥只有握手的双发知道,中间人不知道这个密钥,自然无法解迷你的通信内容。
tabris17
2014-10-31 18:56:25 +08:00
@abelyao 证书必须是合法的机构签发,必须在浏览器的受信任的机构列表里,除非是该机构不靠谱,比如CNNIC,或者机构的证书密钥泄漏造成伪造证书(以前有家被黑客入侵的根证书服务商密钥泄漏,后来这家公司就倒闭了),否则使用自己签发的证书客户端浏览器会有安全提示的
wanwangkangluo1
2014-10-31 18:58:30 +08:00
双向验证是验证client端合法性的,不要把这玩意扯进来了。
RIcter
2014-10-31 18:59:30 +08:00
能,而且在geekpwn上還有在https下劫持網銀的show。
jeansfish
2014-10-31 19:34:11 +08:00
自己做中间人就看到了,就看自己是不是信任的,比如fiddler2
abelyao
2014-10-31 21:23:52 +08:00
还是觉得好乱…
@wanwangkangluo1 @spance @tabris17 几位朋友的说法是只有握手双方可以解密,其他人抓到包也看不到数据,
而 @RIcter @jeansfish 几位朋友的说法则是可以…
是不是我理解有误?这是两种不同的答案… 还是说,看中间人的技术水平?
wangkangluo1
2014-10-31 21:29:53 +08:00
@abelyao 反正我搞了2个礼拜,TLSv1.2一点办法都没有。这样吧,我提供服务器和生成证书,谁会的,教教我,愿支付¥200作为酬劳。
spance
2014-10-31 21:33:06 +08:00
@abelyao
我们说的“除握手双方外他人不知”,与那@jeansfish说的不矛盾。
他说的是fiddler做代理的情况其实goagent也是这样,此时,直接的握手双方是fiddler与服务器,于是fiddler当然是明确知道传输内容的,然后用fiddler的伪造证书欺骗浏览器,返回原站数据。
fiddler就是用它中间人特性来进行抓包分析的,而且还是你明确配置了代理指向了fiddler才发生。
还是这句话,“除握手双方外他人不知”,另外,请不要过多的怀疑业界成熟广泛使用的https的安全防护能力。
adow
2014-10-31 21:35:53 +08:00
其实可以把,证书就好比是密码,你在本地比如fliddler2上面添加那个证书就知道了你的密码,所以你机器上完全可以抓包。ssl 只是保证在传输的过程中被截获的内容是无法解密的吧,你亲手送人家一个密码当然就可以了。
wanwangkangluo1
2014-10-31 21:37:10 +08:00
@spance 说的比较在理。

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

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

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

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

© 2021 V2EX