精品軟體與實用教程
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警報,收到連接