Alexey Dolotov
80213ad35d
Add dynamic cert noise calibration for FakeTLS handshake
The hardcoded noise range (2500-4700 bytes) in the FakeTLS ServerHello
does not match the real certificate chain sizes of many popular fronting
domains (e.g., dl.google.com ≈ 6480 bytes, microsoft.com ≈ 13004 bytes).
This makes the proxy detectable by DPI systems that compare the
ApplicationData size with the real cert chain size for the SNI domain.
On startup, probe the fronting domain's actual TLS handshake size and
use the measured value ± jitter instead of the static range. Falls back
to the legacy 2500-4700 range if the probe fails.
Also adds optional caching of probe results between restarts
(noise-cache-path, noise-cache-ttl) and a configurable probe count
(noise-probe-count) under [defense.doppelganger].
Closes #408
před 2 měsíci
9seconds
8154f65e0e
Add validation of telegram connectivity
před 2 měsíci
9seconds
4a8d099aca
Remove unused buffer
před 2 měsíci
9seconds
feb57004e1
Fix reslicing
před 2 měsíci
9seconds
cb436efd87
Avoid double buffering in TLS hot path
před 2 měsíci
9seconds
724904f50d
Wait in doppel.Conn if there is anything to write
před 2 měsíci
9seconds
a23ae05f3b
Remove SyncWrite
před 2 měsíci
9seconds
eb7720b11e
Fix flaky test
před 2 měsíci
Maks-2012
079252d810
Fix preferIPOnlyIPv6
před 2 měsíci
9seconds
bb90bcc127
Decrease relay buffer size
Even if it makes sense to have a huge buffers, we do artificial delays
now. In that case we could achieve the same results with a lower buffer.
If not, then we won't send a packet bigger that this value
před 2 měsíci
9seconds
e675baa860
Add docs about doppelganger
před 2 měsíci
9seconds
7adfc0352e
Have a noise of variable size
před 2 měsíci
9seconds
b35c212d65
Have a noise of variable size
před 2 měsíci
9seconds
45b0964afd
Fix android ping
před 2 měsíci
9seconds
4138cc6494
Use SyncWrite call to send a packet to proxy
před 2 měsíci
9seconds
33c0fa9bf7
Add SyncWrite method to doppel.Conn
před 2 měsíci
9seconds
21d7522356
Make DRS optional
před 2 měsíci
9seconds
ea71fe81b2
Update stats defaults
před 2 měsíci
9seconds
cc63e762e3
Use native dialer for scout
před 2 měsíci
9seconds
ffd3ab03cc
Formatting with gofumpt
před 2 měsíci
9seconds
00403e3a94
Remove old faketls package
před 2 měsíci
9seconds
0bfc1ef2d4
Fix double TLS wrapping for noise
před 2 měsíci
9seconds
7aa01dcebe
Limit min number of collected stats
před 2 měsíci
9seconds
1c0e847247
Set statistics measured from real life
před 2 měsíci
9seconds
83ff4ee266
Align scout defaults with config defaults
před 2 měsíci
9seconds
7a58c74cfe
Correctly process doppel conns
před 2 měsíci
9seconds
d43d6692d7
Align naming about scout raids
před 2 měsíci
9seconds
bb49c6a55d
Integrate new fake package and doppel into proxy
před 2 měsíci
9seconds
37f8d18be5
Add server side of things
před 2 měsíci
9seconds
59557059df
ReadClientHello function
před 2 měsíci
9seconds
1182b9ef6f
Add doppel and tls packages
před 2 měsíci
9seconds
189dce07c6
Make auto updating optional
před 3 měsíci
9seconds
449f84133a
Do not panic if no addresses were found
před 3 měsíci
9seconds
bb320e9d89
Update fuzz tests
před 3 měsíci
9seconds
5b91edf5c4
Fix tests
před 3 měsíci
9seconds
36c766b331
Fix lint issues
před 3 měsíci
9seconds
e4a9a96309
Remove mentioning of DC overrides
před 3 měsíci
9seconds
94d46d2c65
Add fetching of addresses from proxyGetConfig endpoint
před 3 měsíci
9seconds
908842063a
Do not use additional bytes buffer for faketls
před 3 měsíci
9seconds
ee524abdb5
Remove redundant copyBufferPool from relay
před 3 měsíci
9seconds
3e75e4fa63
Delete old obfuscated2 package
před 3 měsíci
9seconds
140e9dfc2e
Integrate obfuscation package
před 3 měsíci
9seconds
d0065d35c2
Add new obfuscation package
před 3 měsíci
9seconds
a0aabf2391
Switch to rand/v2
před 3 měsíci
9seconds
3b03c4a90a
More idioms related to go 1.26
před 3 měsíci
9seconds
36546cec2f
Change default DOH to cloudflarte
před 3 měsíci
9seconds
074c4017f5
Formatting by gofumpt
před 3 měsíci
9seconds
8e87405d3e
Remove integration with gotd
před 3 měsíci
9seconds
308e372a5d
Propagate DcUpdateEach setting
před 3 měsíci
9seconds
0a5a45b32d
Create internal DC package
před 3 měsíci