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