[{"data":1,"prerenderedAt":324},["ShallowReactive",2],{"project-5992341":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":41,"post_text":43,"what":44,"said":83,"maker_in_thread":180,"shape":188,"grid":192,"attempts":286,"same_week":287,"maker_shows":42,"maker_hidden":316,"reader_version":317,"card":318},"5992341","deadchat","Terminal-based group chat with end-to-end encryption","title","Show HN: Terminal-based group chat with end-to-end encryption","https:\u002F\u002Fgithub.com\u002Fjeztek\u002Fdeadchat","github.com","jeztek",1372970359,2013,60,41,424,1739,25,"notable","security_privacy","encrypted group chat","cli",[21,24,25,26],"end-to-end encryption","terminal chat","irc encryption","roasted",-0.447,{"positive":30,"neutral":31,"mixed":30,"critical":32},0,4,8,12,{"execution":35,"idea":37,"privacy":39,"design":40},{"positive":30,"critical":36},2,{"positive":30,"critical":38},3,{"positive":30,"critical":38},{"positive":30,"critical":30},[30,42,42,30,30,30,42,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,38,38,30,42,30,30,42,42,42,30,42,30,30,38,38,30],1,null,{"problem":45,"audience":52,"pricing":43,"motivation":56,"time_to_build":43,"stack":60,"openness":80,"stage":81,"team_size":82},{"value":46,"source":47,"evidence":48},"Lets a group of trusted friends chat over an insecure channel without eavesdropping","maker",[49],{"id":50,"by":11,"text":51},"5994120","Hey all, great discussion. Apologies for not chiming in earlier, I posted this to HN in the morning and left for 4th of July activities, certainly not expecting it to make the…",{"value":53,"source":47,"evidence":54},"Groups of trusted friends",[55],{"id":50,"by":11,"text":51},{"value":57,"source":47,"evidence":58},"Couldn't find a group chat with an IRC-like experience and end-to-end encryption",[59],{"id":50,"by":11,"text":51},[61,69,73],{"value":62,"source":63,"evidence":64},"Python","commenter",[65],{"id":66,"by":67,"text":68},"5992789","dfc","In case people are wondering what stavrosk is referring to, kba wrote: I'm tired of people labeling their applications as \"cryptographically secure\" with no proof of correctness…",{"value":70,"source":63,"evidence":71},"Go",[72],{"id":66,"by":67,"text":68},{"value":74,"source":63,"evidence":75},"NaCl",[76],{"id":77,"by":78,"text":79},"5993791","lawl","Wow. > WARNING: Unable to decrypt. One of you may have changed keys or might be an imposter. Run \u002Fidexch if you trust this person. This may very well be the worst advice you…","open_source","prototype","unknown",{"praise":84,"objections":91,"requests":128,"questions":139,"alternatives":160},[85],{"value":86,"source":63,"evidence":87},"Interesting learning project",[88],{"id":89,"by":78,"text":90},"5996907","Learning is fine, just add a disclaimer that it's actually probably not so secure. Oh please don't get me started on FiSH, and PLEASE don't model anything after fish. I had the…",[92,101,113,124],{"value":93,"source":63,"evidence":94},"Cryptography is flawed: no user authentication, server can swap public keys (MITM)",[95,96,100],{"id":77,"by":78,"text":79},{"id":97,"by":98,"text":99},"5992661","bajsejohannes","From a very cursory look at the source code, it seems like every user share their public keys and the room keys are encrypted with these keys. So looking at server logs don't…",{"id":66,"by":67,"text":68},{"value":102,"source":63,"evidence":103},"Hobby crypto projects should carry clear disclaimers, not be overclaimed as secure",[104,105,109],{"id":89,"by":78,"text":90},{"id":106,"by":107,"text":108},"5996979","DanBC","It would be very much easier to ignore hobbyist implementations of crypto if they came with suitably huge warnings. \"This is just a proof of concept. It's not secure. It's just a…",{"id":110,"by":111,"text":112},"5993575","superuser2","Broken social networking websites and YouTube clones are relatively harmless, so that philosophy makes sense. Broken cryptography can cause loss of money, infrastructure, and…",{"value":114,"source":63,"evidence":115},"Trusting the server makes it no more secure than IRC over SSL",[116,120],{"id":117,"by":118,"text":119},"5992699","laumars","What's more, if you can't vet who joins the channel, then you can still have eavesdroppers listening in. So it's really no more secure than IRC over SSL (in fact probably less so…",{"id":121,"by":122,"text":123},"5994629","RyanZAG","If that's the case, why go through all this hassle? Simply use IRC with SSL and you have exactly the same level of security. As long as you trust the server, you are fine.",{"value":125,"source":63,"evidence":126},"Advice to re-run key exchange on mismatch is unsafe",[127],{"id":77,"by":78,"text":79},[129,133],{"value":130,"source":63,"evidence":131},"Add a disclaimer that it is not secure",[132],{"id":89,"by":78,"text":90},{"value":134,"source":47,"evidence":135},"Add user authentication and SSL with endpoint authentication",[136],{"id":137,"by":11,"text":138},"5994219","That's fair, I modeled some aspects of the system after FiSH-irssi, which also doesn't have user authentication or MITM attack mitigation. That'll teach me to post to HN…",[140,150],{"value":141,"source":63,"evidence":142},"How can a group chat be end-to-end encrypted when all members read messages?",[143,146],{"id":144,"by":118,"text":145},"5992607","I'm a little confused by this. How can it be a group chat with end to end encryption? Surely everyone logged into the chat room would need to read the messages, so it's really no…",{"id":147,"by":148,"text":149},"5993200","gizmo686","I haven't looked at the code itself, but based on the usage section it seems like everyone in the room shares a secret key. I think the concept is that in order to get the secret…",{"value":151,"source":63,"evidence":152},"Why disallow unicode usernames?",[153,157],{"id":154,"by":155,"text":156},"5994016","ancarda",">TODO: Disallow unicode usernames Can anyone explain why this is necessary?",{"id":158,"by":118,"text":159},"5994038","I think it's just to stop name spoofing using unicode characters. ie pretending to use a registered nick by using characters that look similar. As a non-unicode example: \"Bob\"…",[161,172,176],{"value":162,"source":63,"evidence":163},"SILC secure group chat protocol",[164,168],{"id":165,"by":166,"text":167},"5992740","StavrosK","Don't we already have a secure chat protocol, SILC? Is that not good enough to use? Maybe Cryptocat et al could implement it, rather than creating their own.",{"id":169,"by":170,"text":171},"5993418","idupree","By the way, there's an already-existing secure group chat software, SILC, that does something similar: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSILC_%28protocol%29 (see \"security\" section,…",{"value":173,"source":63,"evidence":174},"OTR off-the-record messaging",[175],{"id":89,"by":78,"text":90},{"value":177,"source":47,"evidence":178},"FiSH-irssi",[179],{"id":50,"by":11,"text":51},{"comments":181,"answered":38,"key":182},5,[183,184,185],{"id":50,"text":51},{"id":137,"text":138},{"id":186,"text":187},"5994521","In response to kba: deadchat implements the latter option. The secret room key is shared using the RSA key exchange protocol but you're right, there's currently no way to…",{"commenters":189,"max_depth":190,"maker_replies":181,"first_comment_mins":191,"lifespan_hours":18},26,7,27,[193,195,197,198,201,203,206,208,209,213,216,217,219,221,224,227,230,232,235,237,240,243,246,249,252,254,255,256,258,261,263,266,267,268,271,272,274,276,278,279,283],[50,30,30,194,11,42],"maker\u002Fneutral\u002Fidea",[89,30,42,196,78,30],"project\u002Fcritical\u002Fexecution",[77,42,42,196,78,30],[199,42,30,200,118,30],"5994023","other\u002Fneutral\u002Fnone",[137,42,30,202,11,42],"maker\u002Fneutral\u002Fexecution",[204,36,30,205,166,30],"5992737","commenter\u002Fneutral\u002Fnone",[66,36,42,207,67,30],"project\u002Fcritical\u002Fidea",[186,36,30,194,11,42],[210,38,30,211,212,30],"5993020","other\u002Fcritical\u002Fnone","jdiez17",[214,38,30,205,215,30],"5993398","gojomo",[110,38,30,205,111,30],[218,38,30,205,215,30],"5993736",[220,38,30,200,212,30],"5996444",[222,38,30,205,223,30],"5993889","_b8r0",[225,38,30,200,226,30],"5993831","lelandbatey",[228,38,30,200,229,30],"5994578","zimpenfish",[231,38,30,200,212,30],"5996433",[233,38,30,205,234,30],"5994051","j_rogers",[106,38,30,236,107,30],"other\u002Fneutral\u002Fdocs",[238,31,30,200,239,30],"5992834","Shish2k",[241,31,30,200,242,30],"5992866","ams6110",[244,31,30,200,245,30],"5992925","chrismsnz",[247,31,30,200,248,30],"5993632","orclev",[250,31,30,200,251,30],"5993967","lukashed",[144,181,38,253,118,30],"project\u002Fneutral\u002Fidea",[147,181,38,253,148,30],[169,181,30,200,170,30],[165,257,42,207,166,30],6,[259,257,30,200,260,30],"5993910","davidroetzel",[262,257,30,205,166,30],"5994726",[264,190,42,265,122,30],"5992442","project\u002Fcritical\u002Fprivacy",[97,190,42,265,98,30],[117,190,42,265,118,30],[269,190,30,270,11,42],"5994551","maker\u002Fneutral\u002Fprivacy",[121,190,42,207,122,30],[273,190,30,270,11,42],"5995321",[275,190,30,205,122,30],"5996694",[154,32,38,277,155,30],"project\u002Fneutral\u002Fdesign",[158,32,38,277,118,30],[280,281,30,200,282,30],"5992641",9,"glockular",[284,281,30,200,285,30],"5992868","nitrogen",[],[288,293,298,302,307,312],{"id":289,"name":290,"points":291,"category":292},"6002518","vim-airline",95,"dev_tools",{"id":294,"name":295,"points":296,"category":297},"6009428","Lob",80,"web_saas",{"id":299,"name":300,"points":301,"category":292},"6022522","waffle.io",78,{"id":303,"name":304,"points":305,"category":306},"6002009","7min",76,"consumer_social",{"id":308,"name":309,"points":310,"category":311},"5997007","countryaday",73,"learning_science",{"id":313,"name":314,"points":14,"category":315},"6012556","groupdate.sql","languages",false,"v2",{"id":319,"name":5,"line":6,"ai":316,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":320,"top":18,"kw":321,"maker":11,"domain":10,"tier":19,"attempts":30,"strip":322,"url":9,"mix":323,"praise":86,"objection":93,"sub":21},5992341,-0.45,[21,24,25,26],"0110001000000000000000003301001110100330",[30,31,30,32],1793990895907]