最近在用 golang 自己写协议,看着协议中说的,客户端向服务端发送内容时,需要掩码处理下
具体算法如下: result-octet-i = source-octet-i xor mask-key-octet-j ( j = i % 4)
然后,问题是这样子,和明文有什么区别,怎么防范恶意攻击的,加这个掩码有什么特殊作用吗?(掩码和内容,是一起发送给服务端的)
1
MrWii 2017-02-03 10:03:21 +08:00 1
掩码不是用来纠错的吗,防止数据丢失
|
2
ryd994 2017-02-03 10:17:31 +08:00 via Android 1
xor ”加密“属于幼儿园级
本质上就是凯撒密码,有足够样本而且有概率特征的话很容易破解,或者知道原文合理范围的可以穷举 掩码内容一起发送………大概也就能糊弄糊弄公司的上网监控吧…… |
3
gulucn 2017-02-03 10:25:51 +08:00 via Android 1
是防止中转服务器直接返回缓存结果。所以客户端的每个 ws 包都要用掩码来保证数据不一样,所有包都应该到达服务器并由它返回应答。
|
5
lhbc 2017-02-03 10:36:31 +08:00 via iPhone
和明文没区别,要安全上 wss ,就是 tls
|
6
WispZhan 2017-02-03 10:43:11 +08:00
要加密就是 SSL ,上 WSS
|
7
ruandao OP |
8
Antidictator 2017-02-03 12:55:58 +08:00 via Android
@lhbc 请教头像出处
|
9
lhbc 2017-02-03 13:01:52 +08:00 1
|
10
gulucn 2017-02-03 13:29:45 +08:00 via Android
@ruandao 我的解释也不太对,不过可以看下这里: https://github.com/abbshr/abbshr.github.io/issues/47
|
11
lhw45202 2017-02-03 16:58:19 +08:00
保证数据完整
|