15:58:42 #startmeeting tor anti-censorship meeting 15:58:42 Meeting started Thu Jun 1 15:58:42 2023 UTC. The chair is itchyonion. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:58:42 Useful Commands: #action #agreed #help #info #idea #link #topic. 15:58:50 here is our meeting pad: https://pad.riseup.net/p/tor-anti-censorship-keep 15:58:50 feel free to add what you've been working on and put items on the agenda 15:58:55 hello 15:59:13 hello 15:59:40 hi~ 16:00:59 The first topic: Report of TLS-in-DTLS detection and throttling in China that affects Snowflake 16:01:22 I believe we talked about this last week, but looks like there are some new updates 16:01:38 this is realted to last week's discussion, but this is new 16:02:16 someone reported that their own WebRTC proxy (not snowflake) was being throttled based on traffic analysis features that they investigated 16:02:46 one of which was the size of the first client->server send or a pattern that looks like TLS inside the DTLS connection 16:03:20 they say it affects snowflake too. the throttling is done by packet drops, the reporter reported packet loss rates of around 50% 16:03:33 woah 16:03:54 I made a quick patch to change the traffic signature of the first client send, and the reporter said that it resolved the throttling in snowflake for them 16:04:47 It is just one report, but it may be a or the primary cause of the high packet loss shelikhoo has measured in China before https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40251#note_2887929 16:04:58 Sorry I didn't see your reply on the snowflake speed earlier, I think it should be possible for me to run the test with that patch 16:05:18 So the proposal is to try the quick patch from a vantage in China, and if it helps, then perhaps deploy some simple initial padding strategies, at least for the short term 16:05:31 and compare the result with the previous tests 16:06:10 The packet encapsulation protocol does have support for traffic shaping, we just have not tried using it before now 16:06:25 thanks shelikhoo, that will be great 16:06:30 wow 16:06:34 i didn't think we'd have to start doing traffic shaping so soon 16:06:53 This weekend is the June 4th anniversary, there is often increased censorship in China around this time. Though it could be unrelated. 16:06:57 well i guess i don't know what "soon" means here heh 16:07:22 This is still pretty preliminary imo, but the reporter on BBS seems to know what they are talking about. 16:07:51 Yeah, I will try to run this experiment as soon as possible 16:08:17 china some time have event exclusive censorship and will soon goes away 16:08:17 if that traffic shaping does solve the chinese problem, do we still want the changes shelikhoo is being working on to deal with unreliable connections? 16:08:44 meskio: let's discuss this after we got the test result on the patch 16:08:51 We can later discuss better ways to implement the padding strategy. I just kind of hacked it in, but a better way will be to introduce a new Conn type that implements a given padding strategy (which could be simple, and perhaps only affect the first 10 KB or so of a connection) 16:09:06 it is too early to discuss that now 16:09:18 ack 16:09:22 meskio: yes, definitely the switch to unreliable data channels is desirable independent of this throttling observation 16:09:32 +1 16:10:00 China performance was the initial cause that made shelikhoo look into it closely, but it's just a good idea anyway 16:10:36 yes, but it could have impact on priority, but anyway it is too early to tell. 16:10:50 let's discuss this after we got the result about the patch 16:10:52 I agree, let's proceed with some tests first 16:10:55 thanks dcf1! 16:11:04 cool 16:12:33 Anything more on this topic? 16:12:45 EOF from me 16:12:50 that's all 16:12:54 Moving on to the next one. Research about designing an armored bridge line sharing URL format (new update) 16:12:58 yes! 16:13:18 I have run a few experiments about the armored bridge line sharing urll 16:14:19 the TLDR is that I think "7bit,crc32,base64,prefix" is the best sequence of action to generate a url for non-qr usage 16:14:29 (if we don't add forward error correction) 16:15:02 7bit remove the first bit in each char, take the advantage that bridgeline is limited to ASCII chars 16:15:13 and ascii only use 7 bits 16:15:29 crc32 add checksum 16:15:52 base64 encode the binary data into sting with 0.75 density 16:16:07 finally prefix is nice for os integration 16:16:18 allow us to be the default handler of these urls 16:16:24 you can try this on 16:16:24 https://32gky4batesvburcfrxvq4bbhy0fupjx.lambda-url.eu-west-1.on.aws/encode7.html 16:16:32 prefix as in bridge:// or https://brdg.es/? 16:16:41 https://32gky4batesvburcfrxvq4bbhy0fupjx.lambda-url.eu-west-1.on.aws/decode7.html 16:17:26 It could be either of them, but the https one allow better os integration on mobile 16:17:35 as user can just click on it to import this url 16:17:49 and one of the app can be the default handler 16:18:16 bridge:// on the otherhand won't send dns request when there is no handler 16:18:32 yes, nice, I was just checking that was that nor some kind of prefix in the string itself 16:18:48 yes, we have either or both of them... 16:19:23 I think is good to have both, as in some cases we could use bridge:// without problems and be more secure of not leaking the domain... 16:19:30 like for example in QRcodes 16:19:40 for QR code, having Base36 then uppercase increase the density to 0.8 16:19:52 but it would make things more complex 16:19:59 to parse 16:20:35 I think is better to stick to a single encoding 16:20:42 I decide not to use base45 as original discussed as it have all kinds of symbols that don't work really well 16:20:50 for an url such as space 16:21:09 https://32gky4batesvburcfrxvq4bbhy0fupjx.lambda-url.eu-west-1.on.aws/encodeqr.html 16:21:14 and you can try it here 16:21:35 yes, 0.05 isn't that important, I think 16:21:59 +1 16:22:05 https://github.com/xiaokangwang/armoredurl/tree/master/cli 16:22:17 the source code is here, sorry for poor code quality 16:22:32 I think it makes sense what you found and is a good looking proposal 16:22:33 it is not meant for long term usage 16:23:11 hehe, how many projects start like that and they are still around years after :P 16:23:51 yes, I think we can move forward with just 7bit, crc32, base64, prefix for both qr and text format 16:24:01 +1 16:24:28 what are the next steps? draft a rfc? ask for comments from other ineterested parties? 16:24:33 I will have a chat with ggus about forward error correction... but anyway, that is the thing we are most likely to use 16:24:53 I was advised to write a tor spec for this 16:25:06 so I will proceed with that 16:25:17 I think it is consider a spec, and is rfc like 16:25:34 and ask comments from other parties once it is ready 16:25:50 EOF 16:26:46 Next topic: Update on Analysis of speed deficiency of Snowflake in China, 2023 Q1 https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40251#note_2883879 16:27:51 I guess after the previous discussion this topic is posponed for now, isn't it? 16:28:02 Related to the first topic. Anything new other than what we've already discussed? 16:28:59 no.. I think we already covered this 16:29:16 let's proceed with test and return to this later 16:29:37 Sounds good. Moving on to interesting links: Large oscillations in relay users in China the past 6 weeks: 16:29:37 https://people.torproject.org/~dcf/metrics-country.html?start=2023-03-01&end=2023-05-31&country=cn 16:30:24 nothing really to say about it, just the graph looks really weird 16:31:13 in the "bridge users by transport", you can see some echoes of the relay oscillations, and that obfs4 and snowflake are negatively correlated 16:31:24 yes.. we don't have enough information about its cause for now.... 16:31:49 weird 16:32:43 Looks like it begins after obfs4 usage was dropped down to almost 0 around April - May 16:33:42 which was https://gitlab.torproject.org/tpo/anti-censorship/censorship-analysis/-/issues/40033#note_2896876 I believe 16:35:56 one possibility is that users use obfs4 when it is accessible 16:36:08 because snowflake is slow for users in china 16:36:52 so when government found obfs4 ip and block then, users switch to snowflake 16:37:19 and when bridge operators get new ip, and user update their bridge line 16:37:34 they switch back to obfs4, since it is faster than snowflake in china 16:37:46 but this is just a guess, I have zero evidence... 16:38:55 EOF 16:39:12 Did we patch anything on obfs4? I couldn't find what's causing the recovery. 16:40:04 there are new bridges showing up once for a while 16:40:04 no, it could be just temporary censorship 16:40:15 like the block "random looking" traffic 16:40:15 or just temporary censorship 16:41:02 i see. Anything else we want to discuss today? 16:41:18 one more thing from me... 16:41:28 dcf1: I have reimplemented meek in V2Ray. It may get a sun set at Tor, but it still shining somewhere else in the world. Thanks dcf for its design and original implementation. 16:41:28 https://github.com/v2fly/v2ray-core/releases/tag/v5.7.0 16:41:28 Here is a guide on how to set it up from one of users. 16:41:28 https://cscot.pages.dev/2023/05/31/v2ray-meek/ 16:41:30 over! 16:42:02 shelikhoo: oh, that's good to know, thank you 16:42:12 no no no thank you!!! 16:42:24 EOF 16:42:42 #endmeeting