V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iminto
V2EX  ›  信息安全

中间人根证书到底有多大用?

  •  
  •   iminto · 238 天前 · 2209 次点击
    这是一个创建于 238 天前的主题,其中的信息可能已经有所发展或是发生改变。
    都说中间人根证书不安全,那到底危害在哪?

    公司会在员工电脑上安装一个根证书,一个深信服客户端,同时设置域控。

    我知道用 fiddler 抓 https 的包,fiddler 会生成一个中间人根证书,然后用户主动信任中间人这个根证书,就能抓到任何 https 的包了。这个过程大家都知道,但是这是用户主动的。

    公司安装的这个根证书,也是存放到企业受信任根里面了,问题是:

    如果仅仅是安装了这个根证书(一般解释都是用于信任自签发证书的企业内部网站的双向验证),在没有安装任何本地客户端的情况下

    1.我的浏览数据是否还是安全的?在路由一侧能否看到我的浏览数据?
    2.作为网站开发者,能否针对这种情况进行识别和处理?
    3.如果装了本地客户端,这个中间人的不安全到底是怎么体现的?
    20 条回复
    dhb233
        1
    dhb233  
       238 天前
    1 、能
    2 、很难
    3 、上面两条还不够?
    cwyalpha
        2
    cwyalpha  
       238 天前 via iPhone
    搜一下深信服 微信监控
    iminto
        3
    iminto  
    OP
       238 天前
    @dhb233

    我的理解是 fiddler 能抓到 github 的数据,是因为 fiddle 利用中间人证书 r 给 github 颁发了一个子证书才能做到。

    而,如果仅仅是电脑上安装了一个受信任的自签名根证书,没有其它操作和配置的话,这个 https 通讯,中间人是没有参与进来的
    kera0a
        4
    kera0a  
       238 天前 via iPhone   ❤️ 1
    @iminto 中间人只需要在网络链路的任意位置。不需要在你设备上
    iminto
        5
    iminto  
    OP
       238 天前 via Android
    @kera0a 确实忘了这茬了,公司是在路由这层模仿 fidder 进行中间人攻击的。

    至于本地客户端,则是进行了更多的进程和文件级别监控
    finab
        6
    finab  
       238 天前
    @iminto 你把 fiddle 想象成公司的路由器, 公司也可以中中间人根证书 给网站颁发一个子证书, 代替你与网站通信,再把结果用它自己颁发的证书返回给你的设备,所以你只要连了公司网,有根证书就已经被中间人了,不需要你设备运行什么软件。
    H97794
        7
    H97794  
       238 天前
    主交换机/主路由 直接就是深信服设备
    或者主交换机/主路由 将所有通讯数据转发一份到深信服设备
    totoro625
        8
    totoro625  
       238 天前   ❤️ 1
    简单的理解就是:中间人根证书+HTTPS = HTTP
    把 HTTPS 相对于 HTTP 的优点看一遍就好了
    cheng6563
        9
    cheng6563  
       238 天前
    fidder 的 CA 都是本地离线直接生成的吧我记得。这样 CA 的私钥也只存在你电脑里,只要这个不泄露那就没啥问题。
    iyiluo
        10
    iyiluo  
       238 天前
    一般用 ssl pinning 来防止这种中间人攻击,很多需要安全通信的 app 都会上 ssl pinning 。
    dhb233
        11
    dhb233  
       238 天前
    装这个证书不就是让路由器解密你的 https 流量的吗。。。
    neilp
        12
    neilp  
       238 天前
    1. 能. 可以做流量劫持. 可以给你的 ssl 内容签名,你却发现不了.
    2. 能. 就是使用 sslpin. 原理就是假设你第一次访问对应网站是没问题的. 浏览器回记住网站的公钥. 后面再访问, 即使是 ssl 签名验证过了, 也回再检查公钥是否匹配.
    3. 根证书是整个 ssl 体系最后一层保护, 也是最脆弱的一层. 如果更证书被污染了. 任何 ssl 的安全性荡然无存.
    yuzo555
        13
    yuzo555  
       238 天前
    Windows 任何软件请求一下管理员权限,用户无脑点个允许就可以不知不觉添加一张监控所有 HTTPS 访问的根证书,说起来是挺可怕的
    FastAce
        14
    FastAce  
       238 天前 via Android
    道高一尺,魔高一丈,很简单,重点本地再加一层 HTTPS 代理入站,自签也行,之后用 VLESS 的 reality 作为出站,或者 VLESS 的 reality 同时搭建 [出入站] 也行,你审查我就对抗审查,就即便是抓包,也看起来是普通 HTTPS 流量
    FastAce
        15
    FastAce  
       238 天前 via Android
    搭建好之后,所有的流量看起来只访问了 vless 中配置的一个出现域名,实际上想怎么访问就怎么访问
    FastAce
        16
    FastAce  
       238 天前 via Android
    就记着一个思路,怎么对抗 G.F.W 就怎么对抗所谓的内网行为审查
    ShuWei
        17
    ShuWei  
       238 天前
    有了中间人根证书,中间人就可以随意签发任意地址的证书,然后在中间劫持、解密、重封包,完全没有安全可言了。网站如果想识别,也是可以,不过,最终还是道高一尺 魔高一丈的相互对抗而已
    troilus
        18
    troilus  
       235 天前 via iPhone
    @finab 请教一下,这种情况在浏览器等客户端通过查看 https 网站证书可以辨别出来吗? 难道网站任然显示的是没问题的证书而实际上证书是中间人颁发的子证书?
    troilus
        19
    troilus  
       235 天前
    @troilus 用 fiddler 尝试了下大部分可以辨别出来
    testcaoy7
        20
    testcaoy7  
       232 天前
    1 、当然可以
    2 、作为网站开发者,能做的不多,目前可以解决该安全问题的有三种技术:TLS-PSK (预共享密钥 TLS )、mTLS (双向认证 TLS )、应用层的零知识验证。这三种技术基本上都会让用户一头雾水,前两者需要专门配置浏览器,而且好像除了 Firefox 以外没有良好的支持。零知识需要深奥的密码学知识,自己搞基本上等同于瞎搞,而国内似乎就没有这方面有资质的商业公司。
    3 、本地客户端会读取系统 CA 证书,因为第三方签发的 CA 已经被系统信任,所以你的 HTTPS 流量可以被任何使用系统证书存储的软件解密。另一个可行的解决方案是让你的客户端使用 NSS ( Firefox 就用的这个)。NSS 是单独的证书存储系统,只要第三方 CA 没有导入到你的 NSS 数据库里面,你的客户端流量就不会被 MiTM 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:56 · PVG 10:56 · LAX 18:56 · JFK 21:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.