V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cevincheung
V2EX  ›  程序员

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

  •  
  •   cevincheung ·
    cevin · 2014-04-02 11:59:28 +08:00 · 5745 次点击
    这是一个创建于 3888 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如本地搞个软件,通过指定接口获取将要访问网站的SSL证书存到本地(只有第一次访问或本地证书过期后需要)。

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

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

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

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

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

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

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

    话说真心碰到过,在某IT氛围很浓厚的咖啡馆(北京)有人发布Wifi热点,让所有人连接试试。1分钟左右他说他搞到了两个支付宝账号的密码和N个微博密码- -# 即便你是ssl。浏览器只提示证书不被信任,但是并没有被拦截。
    JoyNeop
        18
    JoyNeop  
       2014-04-03 13:46:01 +08:00
    @cevincheung 都提示证书不被信任了还继续用这是傻逼啊…… 不能用来代表正常情况……
    JoyNeop
        19
    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
        20
    msg7086  
       2014-04-03 14:10:12 +08:00
    @cevincheung 好吧,相当于路由劫持流量了……
    cevincheung
        21
    cevincheung  
    OP
       2014-04-03 15:09:22 +08:00
    @JoyNeop
    hi, Jn,你也混v2了?


    ---

    酱紫的。浏览器(除了ff/chrome)给的提示会有一个继续按钮。
    小白用户不知道什么叫“证书风险”
    小白用户不知道什么叫“SSL”
    小白用户不知道什么叫“中间人欺骗”

    小白用户只知道,可以点下一步,然后可以继续支付(相对于支付网站、网银)、可以继续处理关键业务。

    小白用户懂得识别提示,那钓鱼网站可以不复存在了。
    xierch
        22
    xierch  
       2014-04-03 21:27:16 +08:00
    @cevincheung 好,现在再加一套系统检测中间人攻击,这套系统提供“继续访问”按钮么...?
    cevincheung
        23
    cevincheung  
    OP
       2014-04-06 21:18:40 +08:00
    @xierch 就是不提供。证书不匹配就拦截访问。强制的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2679 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:54 · PVG 11:54 · LAX 19:54 · JFK 22:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.