SOCKS5 客户端以版本 5 开始,然后在密码认证期间发送版本 1。这并不一定是降级,也不一定是错误的代理。

第一次交换协商 SOCKS5 认证方法。当选择用户名/密码时,RFC 1929 定义了一个单独的子协商,其版本字段为 0x01。

该认证请求包含用户名和密码的长度与字节。服务器返回子协商的版本和状态。只有在认证成功之后,客户端才发送 SOCKS5 目标请求。

读取跟踪记录或实现客户端时,请将两次交换分开。仅因为服务名为 SOCKS5 就在所有地方重复 0x05,会产生错误的认证消息。

密码状态成功也不意味着所请求的目标被允许。随后的 SOCKS 回复仍可能拒绝该连接。

最后,这种用户名/密码方法不会加密其凭据。版本字节标识的是消息格式,而不是加密或更强的登录模式。

相关文章