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

怎样禁止 chrome 浏览器在 wss 握手时的服务器验证行为

  •  
  •   mz02005 · 2018-05-16 09:20:10 +08:00 · 6143 次点击
    这是一个创建于 2390 天前的主题,其中的信息可能已经有所发展或是发生改变。

    chrome 浏览器在采用 wss 通信时,默认不能跳过服务器验证环节,而是需要通过配置 chrome 参数来禁用这个验证。然而这会禁用 chrome 对所有 ssl 通信时的验证操作。 我想问的是,有什么办法在 javascript 中 new WebSocket 时,能通过编程方式或其它不需要认为干涉的方式来禁用当前 wss 链接在 ssl 握手过程中的服务器验证环节?

    第 1 条附言  ·  2018-05-16 11:21:31 +08:00
    谢谢各位伙伴的建议和意见。
    我这边重申一下,目前,只是需要一条加密的数据通信链路。不考虑第三方冒充什么的。我们是数据的提供者,保证客户在看数据时不被其它人看到它正在看的就行了。所以,不认证是无所谓的,就是重用了 tls 的加密通信过程。
    如果无法做到做到我上述要求。那我们这边可能考虑其它的方式进行数据加密了。
    对于 wss,这浏览器哪怕是提示一下给个选择也好啊。偏偏最新版本的就直接默默的不给通。
    12 条回复    2018-05-26 00:30:10 +08:00
    mz02005
        1
    mz02005  
    OP
       2018-05-16 09:25:44 +08:00
    而且设置中只能禁用 localhost 访问下 ssl 验证。
    noe132
        2
    noe132  
       2018-05-16 09:27:13 +08:00 via Android
    这明显不行。要是 js 能禁用,浏览器的安全性还能保障?
    你不想用 ssl 可以用 ws
    就像你不想用 https 可以用 http
    momocraft
        3
    momocraft  
       2018-05-16 09:30:43 +08:00
    我比浏览器聪明系列?
    flowfire
        4
    flowfire  
       2018-05-16 09:50:36 +08:00 via iPhone
    黑人问号脸。。。
    不想要验证就换 ws 不就行了。。
    强行用 wss 还不让浏览器验证。。。
    或者你自己签发一个跟证书丢到 Chrome 信任的跟证书里
    yyfearth
        5
    yyfearth  
       2018-05-16 09:56:58 +08:00
    解决办法很简单啊 为什么要跳过验证 直接安装证书就好了
    不想验证用 ws 就好了啊 为啥还要用 wss
    mz02005
        6
    mz02005  
    OP
       2018-05-16 10:59:35 +08:00
    @flowfire 主要是想保证链路不被窃听。谁都可以上来和我对话,但是对话内容不能被其它人看见。另外,关于签发证书丢到 chrome 里这种操作,这边客户是不想增加额外更多的操作,他们是大爷。
    另外公司也不想出钱搞认证。那种便宜不靠谱的认证随时可能被浏览器毙了,也不想去折腾了。
    遇到这种让跑不给草的情况,我也很为难。
    还有服务器同时面对局域网用户,无法认证,但是又要求加密通道。哎……
    chinvo
        7
    chinvo  
       2018-05-16 11:01:55 +08:00 via iPhone
    不验证证书的 tls 和明文有什么区别?

    老老实实买证书,或者 LE 签一个
    flowfire
        8
    flowfire  
       2018-05-16 11:07:07 +08:00
    @mz02005 #6 证书是很重要的一环啊。。。。
    没有证书那你这个 tls 不是摆设么。。。
    你不想花钱的话 let's encrypt 了解一下,我上一家公司就用的这个
    woodensail
        9
    woodensail  
       2018-05-16 11:56:58 +08:00
    老老实实签发证书是最稳妥的防窃听方式。
    没有证书体系支持的 ssl 只是空中楼阁,根本防不住中间人。
    具体而言,你可以自己实现一个仿 ssl 同时把公钥写死在页面里,但是攻击者可以通过替换该公钥的方式实现中间人攻击。当然,你可以考虑用 https 信道来传递 ssl 公钥,略微安全一些,但是受到 xss 联合攻击的时候还是很危险。
    0x338
        10
    0x338  
       2018-05-16 12:27:56 +08:00 via Android
    @mz02005 let's encrypt 了解一下
    zhjits
        11
    zhjits  
       2018-05-17 09:18:39 +08:00 via iPhone
    不认证怎么实现防窃听?
    msg7086
        12
    msg7086  
       2018-05-26 00:30:10 +08:00
    > 保证客户在看数据时不被其它人看到它正在看的就行了。

    这恰好就是为什么 wss 需要验证。不验证证书的话直接中间人攻击不就能被其他人看到了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   931 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:11 · PVG 05:11 · LAX 13:11 · JFK 16:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.