第一,这个设计里面说“消息摘要采用MD5,杜绝非法篡改”这是完全错误的。防止消息篡改要用Message Authentication Code,不能用Hash function,不管是怎么Hash都是不能防止篡改的。更何况MD5做Hash根本不合格,早破解成筛子了。正确的做法是AEAD Cipher,比如AES-GCM或者chacha20-poly1305。
第二,我简单的看了一下源码,似乎两个方向(客户端到服务端和服务端到客户端)用的是相同的IV(encryptor和decryptor用同样的IV的初始化)。这意味着AES-CFB有IV重用,这是绝对的错误用法,直接导致攻击者能够解密数据包。(作者扯了半天的所谓OTP只是所有加密算法的基本要求,然而如果我的理解没错,他没用对)。
第三,基于UDP的安全协议都有被replay attack的可能,这个协议好像没有写怎么防止?
第四,这个PSK是程序随机生成还是用户指定?如果是用户指定,用SHA256生成key是不够的,因为用户指定的key往往强度不够,需要用key stretching function比如scrypt或者pbkdf2-hmac来处理。
UDPspeeder
是一个网络加速工具,作用和
BBR
,
KCP
差不多,据说速度和
kcp
差不多,但不会像
kcp
会有断流现象。当然也会很烧流量,有兴趣的可以试试。
简介
双边网络加速工具,软件本身的功能是加速。
UDP
,不过,配合任意
udp
协议的
DaiL
可以加速全流量(包括
TCP
/
UDP
/
ICMP
)。通过合理配置,可以加速游戏,降低游戏的丢包和延迟,也可以加速下载和看视频这种大流量的应用。
跟
kcptun
/
finalspeed
/
BBR
等现有方案比,主要优势是可以加速。
UDP
和
ICMP
,现有方案几乎都只能加速
TCP
。
另外,可以和
一起使用,在加速的同时把
UDP
伪装成
TCP
,防止大流量
UDP
被运营商
QOS
或屏蔽。
截图
1、加速原理图
2、测试效果图
原理简介
主要原理是通过发冗余数据来对抗网络的丢包,发送冗余数据的方式支持。
FEC
(
ForwardErrorCorrection。
)和多倍发包,其中
FEC
算法是
Reed-Solomon
。
对于
FEC
方式的原理图:
支持的平台
几乎任何
Linux
主机,可以是桌面版,可以是
android
手机/平板,可以是
openwrt
路由器,也可以是树莓派。
在
windows
和
mac
上配合虚拟机可以稳定使用(
speeder
跑在
Linux
里,其他应用照常跑在
window
里)。可以使用这个虚拟机镜像,大小只有。
7.5mb
。
链接
repo:
中文主页:
编译好的binary下载:
安装使用
1、VPS服务器配置
先下载
UDPSpeeder
服务端并解压,下载地址:
,使用命令:
此时假设你服务器
ip
为
44.55.66.77
,有一个服务监听在
udp7777
端口上,比如
55R
,运行如下命令:
如果关闭
SSH
客户端,
UDPSpeeder
会停止运行,同样建议配合
nohup
或
screen
保持后台运行,查看教程:
。更多推荐配置查看:
。
2、Win客户端配置
客户端下载地址和上面一样,
。下载
speederv2_windows.zip。
文件,并解压到
C
盘
C:\Users\Administrator。
文件夹。
然后点击
Win+R
,然后输入
cmd
,运行命令:
现在在
Windows
上访问本机的
3333
即相当于访问
VPS
的
7777
端口,就可以实现加速了
第一,这个设计里面说“消息摘要采用MD5,杜绝非法篡改”这是完全错误的。防止消息篡改要用Message Authentication Code,不能用Hash function,不管是怎么Hash都是不能防止篡改的。更何况MD5做Hash根本不合格,早破解成筛子了。正确的做法是AEAD Cipher,比如AES-GCM或者chacha20-poly1305。
第二,我简单的看了一下源码,似乎两个方向(客户端到服务端和服务端到客户端)用的是相同的IV(encryptor和decryptor用同样的IV的初始化)。这意味着AES-CFB有IV重用,这是绝对的错误用法,直接导致攻击者能够解密数据包。(作者扯了半天的所谓OTP只是所有加密算法的基本要求,然而如果我的理解没错,他没用对)。
第三,基于UDP的安全协议都有被replay attack的可能,这个协议好像没有写怎么防止?
第四,这个PSK是程序随机生成还是用户指定?如果是用户指定,用SHA256生成key是不够的,因为用户指定的key往往强度不够,需要用key stretching function比如scrypt或者pbkdf2-hmac来处理。
kcp 是协议; kcptun 针对端口转发,除了 ss 别的也可以转发;有人把 ss 或者 socks5 集成到了 kcptun 里,比如有个项目叫 kcp-server 就是。