Xray-core新协议Reality介绍
REALITY 取代传统的 TLS 服务,可以消除服务端 TLS 指纹特征,同时保留前向保密性等功能,证书链攻击也无效。这样的安全性超越了常规的 TLS。使用 REALITY 可以指向别人的网站,无需自己购买域名和配置 TLS 服务端,更为方便。同时,实现了向中间人呈现指定 SNI 的全程真实 TLS。
- 在设计上就把安全等级拉满,限制人的可控范围,最大程度降低人为因素的影响
- 信任服务端,客户端不可信,甚至默认客户端持有的节点信息全泄露了
- 服务端对客户端是有选择的,比如拒绝版本过低的 Xray-core 连接,防止过时的客户端实现不当害了服务端,比如指纹过时
以后服务端还可以带信息给客户端,告知客户端有新版了/告知客户端版本过低,要求更新,否则多长时间后不再支持
通常用于代理的目的,目标网站最低标准是支持 TLSv1.3 和 H2 的国外网站,域名非跳转使用(主域名可能被用于跳转到 www)。加分项包括:目标 IP 与代理 IP 相近(更像,且延迟低),在 Server Hello 后的握手消息中一起加密(如 dl.google.com),有 OCSP Stapling。
在配置方面,禁止回国流量,并转发 TCP/80 和 UDP/443 等端口(REALITY 对外表现为端口转发,目标 IP 冷门或许更佳)。
REALITY 也可以搭配 XTLS 以外的代理协议使用,但不建议这样做,因为它们存在明显且已被针对的 TLS in TLS 特征
REALITY 的下一个主要目标是“预先构建模式”,即提前采集目标网站特征,XTLS 的下一个主要目标是 0-RTT
REALITY 不支持套CDN。
REALITY 协议的服务器端实现,是最新Go中 tls 包的一个分支。
对于客户端,请关注:https://github.com/XTLS/Xray-core/blob/main/transport/internet/reality/reality.go。
若用REALITY取代TLS,可消除服务端TLS指纹特征,初始化前向保密性等,且证书链攻击无效,安全性超越常规TLS
可以指向别人的网站,消耗自己购买域名、配置TLS服务端,方便,实现向中间人承载指定SNI的全程真实TLS
通常代理用途,目标网站最低标准:国外网站,支持TLSv1.3与H2,域名非跳转用(主域名可能被用于跳转到www)
加分项:IP相近(最多,且延迟低) ,Server Hello 后的握手消息一起加密(如 dl.google.com),有 OCSP Stapling
配置加分项:禁止回国流量,TCP/80、UDP/443 也转发(REALITY 对外即表现为端口转发,目标 IP冷门或许美丽)
REALITY 也可以配合 XTLS 以外的代理协议使用,但不建议这样做,因为它们存在明显且已被针对 TLS 特征中的 TLS
REALITY 的下一个主要目标是“预先构建模式”,即提前采集目标网站特征, XTLS 的下一个主要目标是0-RTT
REALITY客户端应当收到由“临时认证密钥”签发的“临时可信证书”,但以下情况会收到目标网站的真实证书:
- REALITY服务端拒绝了客户端的客户端您好,流量被导入目标网站
- 客户端的客户端你好被中间人重定向至目标网站
- 中间人攻击,可能是目标网站帮忙,也可能是证书链攻击
REALITY客户端可以完美区分临时可信证书、真证书、无效证书,并决定下一步动作:
- 收到临时可信证书时,连接可用,一切如常
- 收到真证书时,进入爬虫模式
- 无效证书时,TLS警报,收到连接