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
1 month ago
9seconds
8154f65e0e
Add validation of telegram connectivity
2 months ago
9seconds
4a8d099aca
Remove unused buffer
2 months ago
9seconds
feb57004e1
Fix reslicing
2 months ago
9seconds
cb436efd87
Avoid double buffering in TLS hot path
2 months ago
9seconds
724904f50d
Wait in doppel.Conn if there is anything to write
2 months ago
9seconds
a23ae05f3b
Remove SyncWrite
2 months ago
9seconds
eb7720b11e
Fix flaky test
2 months ago
Maks-2012
079252d810
Fix preferIPOnlyIPv6
2 months ago
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
2 months ago
9seconds
e675baa860
Add docs about doppelganger
2 months ago
9seconds
7adfc0352e
Have a noise of variable size
2 months ago
9seconds
b35c212d65
Have a noise of variable size
2 months ago
9seconds
45b0964afd
Fix android ping
2 months ago
9seconds
4138cc6494
Use SyncWrite call to send a packet to proxy
2 months ago
9seconds
33c0fa9bf7
Add SyncWrite method to doppel.Conn
2 months ago
9seconds
21d7522356
Make DRS optional
2 months ago
9seconds
ea71fe81b2
Update stats defaults
2 months ago
9seconds
cc63e762e3
Use native dialer for scout
2 months ago
9seconds
ffd3ab03cc
Formatting with gofumpt
2 months ago
9seconds
00403e3a94
Remove old faketls package
2 months ago
9seconds
0bfc1ef2d4
Fix double TLS wrapping for noise
2 months ago
9seconds
7aa01dcebe
Limit min number of collected stats
2 months ago
9seconds
1c0e847247
Set statistics measured from real life
2 months ago
9seconds
83ff4ee266
Align scout defaults with config defaults
2 months ago
9seconds
7a58c74cfe
Correctly process doppel conns
2 months ago
9seconds
d43d6692d7
Align naming about scout raids
2 months ago
9seconds
bb49c6a55d
Integrate new fake package and doppel into proxy
2 months ago
9seconds
37f8d18be5
Add server side of things
2 months ago
9seconds
59557059df
ReadClientHello function
2 months ago
9seconds
1182b9ef6f
Add doppel and tls packages
2 months ago
9seconds
189dce07c6
Make auto updating optional
2 months ago
9seconds
449f84133a
Do not panic if no addresses were found
2 months ago
9seconds
bb320e9d89
Update fuzz tests
2 months ago
9seconds
5b91edf5c4
Fix tests
2 months ago
9seconds
36c766b331
Fix lint issues
2 months ago
9seconds
e4a9a96309
Remove mentioning of DC overrides
2 months ago
9seconds
94d46d2c65
Add fetching of addresses from proxyGetConfig endpoint
2 months ago
9seconds
908842063a
Do not use additional bytes buffer for faketls
2 months ago
9seconds
ee524abdb5
Remove redundant copyBufferPool from relay
2 months ago
9seconds
3e75e4fa63
Delete old obfuscated2 package
2 months ago
9seconds
140e9dfc2e
Integrate obfuscation package
2 months ago
9seconds
d0065d35c2
Add new obfuscation package
3 months ago
9seconds
a0aabf2391
Switch to rand/v2
3 months ago
9seconds
3b03c4a90a
More idioms related to go 1.26
3 months ago
9seconds
36546cec2f
Change default DOH to cloudflarte
3 months ago
9seconds
074c4017f5
Formatting by gofumpt
3 months ago
9seconds
8e87405d3e
Remove integration with gotd
3 months ago
9seconds
308e372a5d
Propagate DcUpdateEach setting
3 months ago
9seconds
0a5a45b32d
Create internal DC package
3 months ago