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