Giter Club home page Giter Club logo

Comments (11)

cute avatar cute commented on June 19, 2024

请教这里长度19是什么意思?VLESS头部长度?

Go/conn.go

Line 1131 in 207fdca

if c.skip == 19 {

严格上说这里应该会是65? c.cache <= (maxCiphertextTLS13 >> 8)

Go/conn.go

Line 1120 in 207fdca

if c.cache <= 66 {

from go.

RPRX avatar RPRX commented on June 19, 2024

目前还在开发和仅 v2ray 测试中,随时可能 breaking,所以现在不会写详细的技术文档,不过我有空时会先写个简单的原理说明。

PS:代码不难,会 Go 的花点时间应该就能看懂

from go.

RPRX avatar RPRX commented on June 19, 2024

19 是 TLSv1.3 alert 消息的常见密文长度,这里认为它可能是TLSv1.3 的 alert

from go.

cute avatar cute commented on June 19, 2024

严格上来说使用 c.index 为 0 时的 得到的 type 判断是否为 recordTypeAlert 应该更可靠吧。

from go.

RPRX avatar RPRX commented on June 19, 2024

严格上来说使用 c.index 为 0 时的 得到的 type 判断是否为 recordTypeAlert 应该更可靠吧。

TLSv1.3 的 alert 也是 23,同时代码中也有检测并替换 TLSv1.2 的 alert

from go.

cute avatar cute commented on June 19, 2024

两个疑问?
1:第一个recordTypeApplicationData记录会加密发出?
2: 调用writeRecordLocked,如果第一次 data 的 type 是 recordTypeApplicationData,且长度是19,maybe=true 。下一个调用writeRecordLocked 如果 type 是 recordTypeAlert 则丢弃?

from go.

RPRX avatar RPRX commented on June 19, 2024

两个疑问?
1:第一个recordTypeApplicationData记录会加密发出?
2: 调用writeRecordLocked,如果第一次 data 的 type 是 recordTypeApplicationData,且长度是19,maybe=true 。下一个调用writeRecordLocked 如果 type 是 recordTypeAlert 则丢弃?

都对

from go.

RPRX avatar RPRX commented on June 19, 2024

需要关注一下 Direct Mode 的 ReadV 增强

RPRX/v2ray-vless@e836101

from go.

RPRX avatar RPRX commented on June 19, 2024

目前 XTLS 是只检测 TLS data record,但在一些极端情况下(如本地测试)可能难以触发特殊功能,以后或许会改成从 handshake 就开始跟踪

from go.

cute avatar cute commented on June 19, 2024

如果有一个协议文档比较好。可以先定义好协议,比如从某个tls record开始原文转发。

from go.

RPRX avatar RPRX commented on June 19, 2024

这里是经过反复修改和深思熟虑后,决定以第一个检测到的 data record 为信号,之后的原样转发(origin 有监督,direct 基本无)

这个信号需要有,即不能随时“接收方解密失败则认为是原文”,一是总要 backup,性能不佳,二是允许了中间人操作。

from go.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.