net4people / bbs

Forum for discussing Internet censorship circumvention
3.35k stars 78 forks source link

The use of TLS in Censorship Circumvention (NDSS 19) #54

Open agiix opened 3 years ago

agiix commented 3 years ago

The use of TLS in Censorship Circumvention Sergey Frolov and Eric Wustrow https://censorbib.nymity.ch/#Frolov2019a https://tlsfingerprint.io/static/frolov2019.pdf

The paper analyzes real-world TLS traffic from over 11.8 billion TLS connections in order to identify which wide range of TLS client implementations are actually used on the Internet. The data included counts and coarse-grained time-stamps of unique Client Hello messages, a sample of SNI and metadata for each Client Hello and Server Hello responses. For every successfully parsed Client Hello, a fingerprint was generated by calculating the SHA1 hash over several specific extensions including the TLS record version, handshake version, cipher suite list, compression method list, elliptic curve list, EC point format list, extension list, signature algorithm list and ALPN list. As well as TLS record version, handshake version, cipher suite, compression method, list of extensions, supported groups (elliptic curves), EC point format, and ALPN extensions from every corresponding Server Hello message.

The collected fingerprints are then used to analyze how distinguishable certain censorship circumvention tools are from real-world traffic. In total, 230000 unique fingerprints were collected. Some of the key findings are:

Mimicking a fingerprint is hard to get right, since there are lots of features that need to be tracked and implemented, while a fingerprint goes rapidly obsolete. In order to assist censorship circumvention tools, a TLS library named uTLS (fork of Golangs TLS library) was created, which allows developers to mimic arbitrary Client Hello messages. The library has been adopted so far by Psiphon, Lantern, TapDance and meek.

The use of TLS in Censorship Circumvention was the subject of the Tor anti-censorship team's reading group on 2020-11-12. There is a transcript of the discussion: http://meetbot.debian.net/tor-meeting/2020/tor-meeting.2020-11-12-15.59.log.html#l-41