net4people / bbs

Forum for discussing Internet censorship circumvention
3.19k stars 75 forks source link

Basic questions about vmess protocol spec (and AEAD) #341

Open mmmray opened 3 months ago

mmmray commented 3 months ago

I tried to figure out how vmess works. The most seemingly complete spec I could find is in the xtls project, but i noticed that after trying to implement the authentication section from scratch:

  1. there is no mention of AEAD -- am I looking at an outdated spec?
  2. in v2ray-rust at least, I cannot find any implementation of the 16-byte authentication HMAC at all, it appears to only implement the Command Section. I can
  3. in both v2ray and v2ray-rust, there are mentions to FNV hashing that are entirely missing from the spec

I conclude that I would have to reverse v2ray to actually understand how modern vmess works, even ignoring things like new(er) ciphers.

Is this accurate?

klzgrad commented 3 months ago

The VMess protocol being a mess in its protocol specification may even be a strength in obscurity against research, circumvention or censorship likewise.