有没有什么软件是防止 SSL 中间人攻击的?

2014-04-02 11:59:28 +08:00
 cevincheung
比如本地搞个软件,通过指定接口获取将要访问网站的SSL证书存到本地(只有第一次访问或本地证书过期后需要)。

然后这样等于证书是本地内置了,然后再SSL Pinning是不是可以杜绝SSL中间人攻击了?

现在有类似的软件吗?
5735 次点击
所在节点    程序员
23 条回复
xoxo
2014-04-02 13:26:58 +08:00
中间人攻击能完美的提前是要买通一家受信任的CA,用来颁发伪造的证书。

否则中间人的假证书不受信任,用户将会直接离开

你只需判断收到取的SSL证书的根颁发者是不是受webtrust认证的证书即可
est
2014-04-02 13:34:37 +08:00
普通网站 hsts

如果自己的私钥丢了,怎么搞都没办法。
cevincheung
2014-04-02 14:09:58 +08:00
@est hsts 怎么开启或支持?比如nginx?
@xoxo 买通ca,呃,不考虑这种情况。比如抓包软件会在本机安装信任证书。
est
2014-04-02 14:29:40 +08:00
@cevincheung hsts 是客户端技术。绑死证书指纹。让中间人没法作假。
cevincheung
2014-04-02 15:32:15 +08:00
@est 只是在服务器端输出一个header头就行?如果是在第一次访问的时候就已经被攻击了呢?
duzhe0
2014-04-02 16:12:09 +08:00
ssl中间人攻击基本不需要怎么防范吧,这个攻击基本不可能实现。而且如果实现了,客户端应该也没有办法防范。
msg7086
2014-04-02 17:47:00 +08:00
SSL机制本身已经可以杜绝中间人攻击了……
cevincheung
2014-04-02 19:52:13 +08:00
@msg7086
如果公共wifi,路由器把dns服务器指向内网主机,内网主机搭建个nginx,自签发证书。然后proxy到源站。@>@
a2z
2014-04-02 19:52:31 +08:00
windows系统上可以用EMET,能手动添加pinned cert,而且最重要的功能是可以防止大部分软件漏洞比如溢出什么的被利用。
txlty
2014-04-02 23:36:16 +08:00
熟练用户自己查看证书对不对。上次github被长城搞,浏览器不是收到提示了么?
就算用cnnic的证书搞,浏览器不提示,也可以自己查看的。
https://www.cnnic.cn/
txlty
2014-04-02 23:40:19 +08:00
@xoxo 其实啊,国内G/F/W、ISP、大公司,是有这个能力的。
国内互联网公司有个毛病,喜欢往用户电脑里塞证书。打开 certmgr.msc -> 受信认的证书颁发机构 欣赏一下
txlty
2014-04-02 23:44:15 +08:00
“比如抓包软件会在本机安装信任证书”
那只有那个软件出品方有能力攻击你,别人是办不到的。
自己把不信任的证书从系统里剔除掉,这个问题就解决了。
wdlth
2014-04-03 00:22:09 +08:00
如果你访问的网站是由全球可信根证书供应商颁发的,你可以进行证书链验证,查询吊销列表之类的。
如果是自己签发的也一样,可以看序列号,SSL指纹等。
inee
2014-04-03 00:42:57 +08:00
@txlty 为什么要塞证书?
msg7086
2014-04-03 08:32:08 +08:00
@cevincheung 自签发证书?

要么攻破CA拿到私钥来签,要么在用户电脑上安装CA。

前者各大保险公司会赔死,后者你得实际拿到用户电脑才行。当然你都拿到安装CA权限了,还要中间人干啥,直接装个键盘记录就行了。
julyclyde
2014-04-03 09:57:05 +08:00
@txlty 除了12306还有谁往客户端塞啊……
cevincheung
2014-04-03 11:14:46 +08:00
@msg7086 键盘记录器被查杀风险大,真心不如拦截所有请求来的爽。

话说真心碰到过,在某IT氛围很浓厚的咖啡馆(北京)有人发布Wifi热点,让所有人连接试试。1分钟左右他说他搞到了两个支付宝账号的密码和N个微博密码- -# 即便你是ssl。浏览器只提示证书不被信任,但是并没有被拦截。
JoyNeop
2014-04-03 13:46:01 +08:00
@cevincheung 都提示证书不被信任了还继续用这是傻逼啊…… 不能用来代表正常情况……
JoyNeop
2014-04-03 13:57:51 +08:00
@txlty 未越狱的 iOS 无法查看当前 SSL 的 CA 也无法 distrust CNNIC 根证书,确实有条件利用这个逻辑漏洞,但是也会比较折腾,首先让 CNNIC 开一个不归你管的域名的证书,确保客户端走的是 Cellular 而不是宽带(如果是宽带还得确保使用的是运营商递归 DNS 而非 8.8.8.8 之类的除非有条件控制骨干网对其进行 DNS 污染),利用 iOS 在 Cellular 下无法自行设置 DNS 的逻辑漏洞,然后劫持 DNS 或篡改路由从而让客户端连接到假冒服务器…… 这得多硬的关系啊,还不如跨省去把电脑扣了呢
msg7086
2014-04-03 14:10:12 +08:00
@cevincheung 好吧,相当于路由劫持流量了……

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

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

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

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

© 2021 V2EX