-
Notifications
You must be signed in to change notification settings - Fork 4.5k
chore: remove vmess from core. #4952
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Its better to remove vmess after vless encryption added |
well done, destroy backward compatibility and ruin all clients use xray |
Also so many people use tcp http configs and vmess for encryption removing vmess not a good idea |
you don't like it you don't use it |
But keeping deprecated features forever just slows everything down. Protocols evolve for a reason — security, efficiency, and maintainability. It’s not about "ruining" anything — it’s about moving forward. No one is stopping you from continuing to use older versions of the core if backward compatibility is that critical for your setup. But please don’t expect the latest versions to stay bloated with outdated protocols just to support legacy usage. Think about the bigger picture — long-term maintainability matters. |
Better Option: remove yourself from the world! |
Unless an encryption method that does not require TLS is added to VLESS, this only helps GFW to do more censoring and not helping the ones who fight against GFW because TLS is easily gets blocked whenever they want. Add an encryption method, this PR should be marked as Work in Progress :) P.S: Russia's Gov is not censoring as much as China and Iran, the problem is you think because TLS works in Russia, everywhere else also does work fine, sorry but that's not the case. |
It's a BIG NO, instead of removing vmess, focus on adding a practical feature. |
there is a third option if this pr merged, abandon xray and use a alternatives, no more pr on this repo because maintainers like rprx don't commit new changes them selves, people have to use alternatives if they need to run vmess, clients have 2 way, use multiple core (same as v2rayn) or replace xray |
nope |
Xray-core 不会移除已有的功能/协议,除非是内部迭代(旧 XTLS->新 XTLS,H2/QUIC->XHTTP)或彻底没人用了(旧 MTProto) VMess 非 Xray 原创且支持广泛,不属于 Xray 移除了就能带动其它软件一起移除的协议,也并非彻底没人用了,所以不会被移除 |
这大概就是格局了吧 |
This is a sign! |
@gfw-killer Ok, I wiil see what I can do for solving these problems. 大概就是客户端持有 X25519 与 MLKEM768 公钥,生成密码密文并加密数据发给服务端,服务端持有 X25519 与 MLKEM768 私钥以解密出密码并解密密文数据,密文部分数据传输格式就是 TLS data record,以便在未来的版本中结合 Vision Seed 流量混淆机制 简单设计的话该加密自身为 0-RTT、抗量子,客户端配置泄露不会导致被解密,服务端配置泄露会导致被解密,但还好,因为该加密的微观特征明显,目标并非直接过墙(2025 了都),而是保护数据免受 CDN 的窥探,也就是说外面还有一层 TLS 的保护 如果有人将这一高强度土制加密放明文 HTTP 里面但导致被 GFW 封锁了,则可以证实 GFW 针对明文 HTTP 的审查,这就是阳谋 得益于 VLESS 预留了 |
话说 2025 了基本都有 AES-NI 了吧,加密方式只有 AES-256-GCM 没问题吧 |
Please add chacha20-poly1305 option too, it's needed for devices with no AES-NI (old or budget devices) |
主要是不想把这个加密设计得过于复杂,服务端可以先 aes-256-gcm 解密,失败的话就试 chacha20-poly1305 |
If it's gonna have a Header and Payload part like VMess, then Header encryption can always be AES then header determines the payload encryption algorithm. |
其实我不想设计这种机制,因为尝试两次解密的开销对于后面庞大的 body 来说不值一提,基本上没什么额外开销 |
@gfw-killer 我更新了 VLESS 加密的设计方案,像 QUIC 一样跨二元组复用 sharedKey,兼顾 0-RTT 与前向安全,测试代码已跑通 本周末将正式推出 VLESS 加密,主要特性如下:
全面基于 ML-KEM-768、HKDF(SHA256)、AES-256-GCM/ChaCha20-Poly1305 |
|
因为把“多个被代理连接”用 mux 塞进同一条 VLESS 加密内,相较于复用 sharedKey 加密“多个被代理连接” 那如果这个 sharedKey 泄露了,结果都是能解密出“多个被代理连接”, |
而如果不 mux 也不复用 sharedKey 的话,在 TCP TLS 2-RTT 的基础上再加 1-RTT, |
重要的不是泄露sharedKey而是不过滤的话请求可以被重放( |
@Fangliding 不过你要想一下主要目标是放 CDN 里, |
不过 GET 难说,POST 的话肯定不会,连浏览器都有提示 |
只是提一嘴 毕竟这个实现也简单 一个map就行了 多少数据查找都是O(1) 甚至比vmess的都简单 因为过期销毁整张map都不需要考虑清除过期条目的问题 |
我想了下 1-RTT 的模式也是暂时不加,因为下个版本主打配合 XHTTP 而不是非去开 mux.cool,XHTTP 自带了 XMUX 与 padding
|
|
比如说服务端基于不同的 decapsulationKey 不停地给客户端发 encapsulationKey,客户端每次用一个, |
|
|
|
This comment was marked as spam.
This comment was marked as spam.
NIST 建议 2030 年后逐步淘汰易受量子计算机攻击的加密算法,2035 年后全面禁用,这就是“十年”的来源 并不是说十年后的量子计算机一定能破解 X25519,而是十年间它会逐步沦为有已知缺陷的过时算法,所以它确实会被人们“干掉” 不过也不好说,叠上现在 AI 的发展速度,
|
服务端配置为: "decryption": "1rtt-mlkem768seed-bas64RawURLEncoding" // 只允许 1-RTT 模式 "decryption": "10min-mlkem768seed-bas64RawURLEncoding" // 同时允许 1-RTT 模式与十分钟复用的 0-RTT 模式 客户端配置为: "encryption": "1rtt-mlkem768client-bas64RawURLEncoding" "encryption": "8min-mlkem768client-bas64RawURLEncoding" // 复用八分钟后协商新的 sharedKey,需小于服务端的值 |
This comment was marked as spam.
This comment was marked as spam.
怎么每过一段时间就有一个自以为是的傻逼小号出来刷存在感浪费我时间?一副寻衅滋事的态度,blocked @ettings X25519 公钥需要混淆这类问题,早就讨论过了 net4people/bbs#287 (comment) 以及 VLESS 加密的目的并非在于隐藏自己是 VLESS 协议,就是要特征拉满,也早就说过了 #3402 (comment) 还有,2025 年了还有人觉得非要长成全随机数的样子才是“没有特征”,这种想法我在刚开始写代理时就否定过了,五年了都 |
Could you please share details of your final design and a sample server and client config, other developers and cryptographers may give good ideas before it's release Personally I think it's good to add non-TLS to your threat model, can simply encrypt the client's initial request using a static passphrase like server's x25519 public key's string and parse it by it's length in server side, not to make the non-TLS VLESS undetectable, just not to make the protocol not shout that it's VLESS! And you can add a Ed25519 public key from server to the client config to validate the server handshake to protect against an Active MITM attacker (if client's init message be encrypted by a static key, then active MITM can only attack if client config is leaked, but signing server handshake will make it not possible for attacker to MITM even when client config is leaked, as MITM don't have Ed25519's private key) note: My understanding of Anti-censorship protocols and Cryptography is not perfect, so if i am wrong then correct me, i like to learn more. thank you. |
@gfw-killer 代码可能于后天放出,我没有时间提前分享更多信息 |
@gfw-killer 不过关于明文 HTTP 作为底层传输,我的看法已经说过 #4952 (comment)
设想一下,如果伊朗 GFW 封锁(明文 HTTP 里面的)VLESS 加密,却不封锁那些全随机数协议(全是对称 PSK),那只能证明:
我觉得这将会是个很有趣的测试 |
@gfw-killer 关于防重放,我觉得 @Fangliding 说的 #4952 (comment) 挺有道理,map 存一下就行,反正十分钟后就销毁,没有什么成本,应该会实现;关于认证,参考 #4992 (comment) ,不过我又改了一下, |
It's not just Fully random traffic in HTTP, there is mKCP with different shapes, RAW TCP and maybe RAW Datagram the in future |
@gfw-killer 我还是更想先进行这个有趣的测试,如果有非 TLS 的 VLESS 加密被封锁而全随机数没有被封锁,届时再加上混淆机制 |
the goal is to remove the obsolete protocol