16:00:53 #startmeeting 16:00:53 Meeting started Wed Dec 17 16:00:53 2014 UTC. The chair is Yawning. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:53 Useful Commands: #action #agreed #help #info #idea #link #topic. 16:01:02 Ah there. So who here is for the pt meeting? 16:01:12 Besides blanu, dcf, and myself? 16:01:15 <- Hi there 16:01:29 oh hi! 16:01:38 Anyway I'll go first I guess 16:01:57 I've been kind of sick with the flu, but I unleashed basket onto the world 16:02:10 What is basket? 16:02:13 http://github.com/yawning/basket 16:02:18 https://lists.torproject.org/pipermail/tor-dev/2014-December/007977.html 16:02:34 It's "Yawning wanted to learn about PQ crypto and anti-web fingerprinting defenses" 16:02:48 hahah 16:02:53 it ties into mjuarezm's gsoc project and current research 16:03:08 so it has a PQ cryptographic handshake and a CS-BuFLO implementation 16:03:17 in PT form 16:03:24 it's a research prototype more than anything else 16:03:47 (because it has a ~6x overhead if you're lucky) 16:03:49 Interesting. 16:04:24 Yawning: do you know what would be the overhead incurred by the original design? 16:04:31 3x 16:04:37 because they have the app hinting 16:04:46 so they stoppadding early 16:04:52 *stop pading 16:05:08 also I think they use payload padding which is a weaker defense but is more bandwidth efficient 16:05:21 so the IDLE_TIME trick is not enough, right? 16:05:34 well, it works, it just sends more cover than it needs to 16:05:52 since it looks at the server response going idle 16:06:02 yes, I'm afraid this trick would not work so well in multitab scenarios... 16:06:14 *nods* 16:06:33 more research needed 16:07:01 'coruse if the user is doing tons of web stuff using 3 billion tabs, a lot of the data sent wil be payload instead of cover 16:07:07 we can talk about it offline 16:07:19 yes, okay, sorry 16:07:27 so unless this explodes in my face, I will be working on my pt eval etc 16:07:32 Actually I think Firefox has trouble with more than 2^31 tabs. 16:07:35 and I need to fix the obfs4proxy build 16:07:45 since the go developers moved go.crypto 16:07:56 Oh right, it moved to GitHub, correct 16:07:58 ? 16:08:02 golang.org 16:08:15 golang.org/x/crypto 16:08:29 Is there any movement on building obfs4proxy with Orbot? 16:08:32 so the old import will break in interesting ways 16:08:42 that'd be a n8fr8 question 16:08:58 n8fr8: ? 16:09:18 in the mean time go.crypto 231:7ad4bae3f467 works 16:09:28 so just use hg to checkout that revision 16:09:35 it's right before they moved the repo 16:09:51 that's it for me I think, unless peopl ehave questions for me ^_^ 16:11:33 Who is next? dcf1? 16:11:46 I got nothing to say today. 16:12:22 oh hey, sorry, I still have this meeting in my calendar at the wrong time 16:13:03 (I'll also steal ideas from basket if I ever do obfs5) 16:13:10 n8fr8: Any progress on building obfs4proxy as part of Orbot? Or anything else to report? 16:13:30 obf5proxy 16:13:36 obf5pr0xy 16:13:51 I haven't made much progress in last two weeks, but soon will push some more updates here: https://github.com/guardianproject/pluto 16:14:25 obfs4 is building, so next step is to try to include it in Orbot 16:14:58 I had a pluto question actually. What language is pluto going to be in? 16:15:18 java? 16:15:32 yes 16:15:55 at some point, it could be all written in Go with JNI bindings 16:15:57 but not yet 16:16:15 mostly it is concerned with unpacking the Go binaries and managing their executation/state 16:16:58 Oh I see. So it will be in Java, but the PT code will be in Go. Good to know. 16:17:14 yes i am not writing PT's just packaging them 16:18:21 Sounds good. 16:18:44 Mobile is an interesting case for meek's polling behavior 16:18:54 because I know on mobile there are battery and data plan concerns. 16:19:08 We can experiment with some changes if necessary. 16:19:17 Just an aside, please continue. 16:21:15 tx dcf1 16:23:20 I can go next if there are no other updates. 16:23:46 Go blanu. 16:25:06 go for it 16:25:12 So we have been valiantly working on Haskell cross-compiling for Android. We got it 90% working. The remaining 10% is Template Haskell, which is kind of like the Haskell version of the C preprocessor. Unfortunately, TH does not cross-compile and won't until GHC 7.10. 16:25:33 We can eliminate all TH dependency in our code, but many libraries use it as well. 16:26:05 So it seems like Haskell on Android is not a practical reality for this project. 16:26:15 hmm 16:26:25 how complicated is the dust protocol on the wire? 16:26:31 Therefore we are going to have to do some stuff in Go. 16:26:45 if you need help with that I can assist as needed 16:27:09 The wire protocol is not particularly complex. The complex part of Dust is the statistical modeling. 16:27:16 ahh 16:27:43 So what we're thinking is getting the core of what makes Dust interesting into something that can cross-compile and then do all the network and crypto stuff in Go. 16:28:05 *nods* 16:28:15 We might make the core TH-free or we might write something to automatically translate it to Go. 16:28:38 Also as part of this we're boiling down the stuff core into a simple API which any PT could use if it wants to incorporate statistical modeling. 16:28:46 stuff=Dust 16:29:23 So it should be interesting. One question remaining from last time is if we should target obfs4proxy or goptlib. This seemed like a Yawning question. 16:30:01 Yeah good point. 16:30:06 Last time, blanu said he was aiming to integrate Dust into obfs4proxy, and I asked, 16:30:27 are you using the obfs4proxy infrastructure or do you just need the goptlib glue layer? 16:30:36 either is simple, less boilerplate if you target obfs4proxy I think 16:30:47 but not massively less 16:31:33 One thing blanu was concerned about is whether he could get e.g. timer callbacks and send padding even without client data being pushed. 16:31:42 yes 16:32:03 I guess obfs4 needs that anyway. 16:32:11 Okay great, well the way forward is decided then. 16:32:16 no, but I did it in basket 16:32:20 So there you go. I guess try whichever sounds easier. 16:32:27 (which doesn't use obfs4proxy, but how you do it is the same) 16:33:03 cs-bufly schedules it's own writes as part of the defense 16:33:10 so I use a channel + goroutine for that 16:33:39 I can help with this sort of thing, just poke me with questions 16:33:43 or tell me what needs to be done 16:33:57 (both with my framework code and without) 16:33:59 I think we should be able to reuse some obfs4 stuff such as the Elligator implementation which we were going to need to do in Haskell. So I think this is a sensible way forward despite the challenge of rewriting stuff in Go which we already had written. 16:34:27 obfs4proxy also has a ntor implementation as well 16:34:41 Yawning: Thank you! I'll keep you updated when we get further along. We just came up with this plan yesterday, so we're still sorting out the details. 16:34:45 since obfs4 iselligatored ntor 16:35:23 Ah yes we can probably use that too, although the Dust ntor is slightly modified. Should be easy to do though. 16:35:24 (the part that does the write scheduling is the most complicated part of basket, now that I think about it) 16:35:54 (well apart from my sphincs and ntru code) 16:36:11 Most complicated except for the complicated parts. 16:36:36 it's all p complicated 16:36:55 I thought of one other quick thing to discuss. 16:37:01 Well that's it for me. Hopefully a lot more actual progress next time. 16:37:03 shoot 16:37:07 oh 16:37:14 We should have OONI instrumentation of the default obfs4 bridges before TB 4.5 is released. 16:37:17 https://lists.torproject.org/pipermail/tor-dev/2014-December/007975.html 16:37:17 next meeting falls on the 31st 16:37:22 https://trac.torproject.org/projects/tor/ticket/13597 16:37:23 aka jan 1st for me 16:37:32 I ain't gonna be soberor online probably 16:37:37 are people ok with defering that? 16:37:52 Sounds fine. 16:38:06 Some PT people gonna be in person at CCC anyhow. 16:38:33 hellais says we just have to make some small changes to ooniprobe. 16:38:48 Anyway, I might do this if I find time. 16:38:54 ok 16:38:55 dgoulet: looking at your hs-lttng-025 branch with rob now 16:39:12 any reason it adds -O0? Was that intentional? 16:39:13 nickm: cool, I'm currently writing doc for all this 16:39:26 nickm: oh no! I might have forgot about it to debug stuff :S 16:39:32 use -Og 16:39:34 >.> 16:39:56 it breaks hardening :) 16:40:03 oh 16:40:06 sadpanda 16:40:26 ok, real quick, any other pressing pt things? 16:40:31 mjuarezm? 16:42:17 (if not, I shall baf the meeting) 16:43:05 *crickets* *tumbleweed* 16:43:44 #endmeeting *baf*