V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ruandao
V2EX  ›  问与答

有研究 websocket 的吗?请教下

  •  
  •   ruandao · 2017-02-03 09:33:27 +08:00 · 3489 次点击
    这是一个创建于 2854 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在用 golang 自己写协议,看着协议中说的,客户端向服务端发送内容时,需要掩码处理下
    具体算法如下: result-octet-i = source-octet-i xor mask-key-octet-j ( j = i % 4)
    然后,问题是这样子,和明文有什么区别,怎么防范恶意攻击的,加这个掩码有什么特殊作用吗?(掩码和内容,是一起发送给服务端的)

    第 1 条附言  ·  2017-02-06 14:52:53 +08:00
    我把这个作用理了下
    https://github.com/ruandao/websocket/wiki
    11 条回复    2017-02-03 16:58:19 +08:00
    MrWii
        1
    MrWii  
       2017-02-03 10:03:21 +08:00   ❤️ 1
    掩码不是用来纠错的吗,防止数据丢失
    ryd994
        2
    ryd994  
       2017-02-03 10:17:31 +08:00 via Android   ❤️ 1
    xor ”加密“属于幼儿园级
    本质上就是凯撒密码,有足够样本而且有概率特征的话很容易破解,或者知道原文合理范围的可以穷举
    掩码内容一起发送………大概也就能糊弄糊弄公司的上网监控吧……
    gulucn
        3
    gulucn  
       2017-02-03 10:25:51 +08:00 via Android   ❤️ 1
    是防止中转服务器直接返回缓存结果。所以客户端的每个 ws 包都要用掩码来保证数据不一样,所有包都应该到达服务器并由它返回应答。
    ruandao
        4
    ruandao  
    OP
       2017-02-03 10:36:17 +08:00
    @MrWii
    @ryd994
    @gulucn 谢谢
    lhbc
        5
    lhbc  
       2017-02-03 10:36:31 +08:00 via iPhone
    和明文没区别,要安全上 wss ,就是 tls
    WispZhan
        6
    WispZhan  
       2017-02-03 10:43:11 +08:00
    要加密就是 SSL ,上 WSS
    ruandao
        7
    ruandao  
    OP
       2017-02-03 11:13:59 +08:00
    不是想加密,只是解析的时候,碰到这个,不知道作用
    上面 @gulucn 已经说了,是防止中转服务器发重复了。。。。
    又想到一个问题,怎么判断重复,需要记录已经使用过的掩码吗?
    Antidictator
        8
    Antidictator  
       2017-02-03 12:55:58 +08:00 via Android
    @lhbc 请教头像出处
    lhbc
        9
    lhbc  
       2017-02-03 13:01:52 +08:00   ❤️ 1
    gulucn
        10
    gulucn  
       2017-02-03 13:29:45 +08:00 via Android
    @ruandao 我的解释也不太对,不过可以看下这里: https://github.com/abbshr/abbshr.github.io/issues/47
    lhw45202
        11
    lhw45202  
       2017-02-03 16:58:19 +08:00
    保证数据完整
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5166 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:53 · PVG 11:53 · LAX 19:53 · JFK 22:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.