[{"data":1,"prerenderedAt":355},["ShallowReactive",2],{"project-15945658":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":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":75,"maker_in_thread":190,"shape":199,"grid":203,"attempts":317,"same_week":318,"maker_shows":41,"maker_hidden":348,"reader_version":349,"card":350},"15945658","Darkwire.io","instant encrypted web chat (Socket.io and Web Crypto API)","title","Show HN: Darkwire.io – instant encrypted web chat (Socket.io and Web Crypto API)","https:\u002F\u002Fdarkwire.io","darkwire.io","alanfriedman",1513516809,2017,118,47,365,2242,17,"notable","productivity","encrypted chat","web_app",[21,24,25,26],"web chat","end-to-end encryption","anonymous chat","curious",-0.41,{"positive":30,"neutral":31,"mixed":32,"critical":33},0,10,1,9,20,{"execution":36,"privacy":37,"design":39,"idea":40},{"positive":30,"critical":32},{"positive":30,"critical":38},2,{"positive":30,"critical":38},{"positive":30,"critical":41},4,[32,30,30,30,30,30,30,30,30,30,43,32,30,30,30,43,30,32,43,30,43,43,43,30,30,30,30,30,32,32,30,32,43,30,32,32,43,43,30,32],3,null,{"problem":46,"audience":44,"pricing":44,"motivation":44,"time_to_build":44,"stack":56,"openness":72,"stage":73,"team_size":74},{"value":47,"source":48,"evidence":49},"Private, instant chat without signup","maker",[50,53],{"id":51,"by":11,"text":52},"15952044","Firstly, thanks for inspecting the source and offering a suggestion for improvement. The latter point should be a relatively easy fix. As for your first point, there’s little we…",{"id":54,"by":11,"text":55},"15951087","Darkwire is more for ephemeral chat rooms, where the name doesn't change as long as the room is occupied. We also don't require sign up, so you can use it instantly and…",[57,62,66],{"value":58,"source":48,"evidence":59},"Socket.io",[60],{"id":61},"post",{"value":63,"source":48,"evidence":64},"Web Crypto API",[65],{"id":61},{"value":67,"source":48,"evidence":68},"Docker",[69],{"id":70,"by":11,"text":71},"15954933","Thanks for the feedback. If we assume the server is compromised then it's true that a MITM attack is trivial. However it seems to me this would be the case for any web-based e2e…","open_source","launched","unknown",{"praise":76,"objections":85,"requests":120,"questions":139,"alternatives":155},[77],{"value":78,"source":79,"evidence":80},"Minimal UI and easy file uploads","commenter",[81],{"id":82,"by":83,"text":84},"15954638","rndgermandude","Given that the server distributes the keys, and there is no way for the user to compare\u002Fverify known-good keys of other users, it's possible for the server to MITM everything,…",[86,94,102,109],{"value":87,"source":79,"evidence":88},"Server distributes keys, so it could MITM messages",[89,93],{"id":90,"by":91,"text":92},"15949363","tptacek","This doesn't look especially safe. In addition to the fact that the crypto is delivered by the server, and so every browser\u002Fserver transaction is an opportunity for the server to…",{"id":82,"by":83,"text":84},{"value":95,"source":79,"evidence":96},"Uses MtE (MAC then encrypt) rather than EtM",[97,98],{"id":90,"by":91,"text":92},{"id":99,"by":100,"text":101},"15950481","zaarn","What you describe is MtE (Mac Then Encrypt), which is generally not recommended because you have to decrypt ciphertext before you can check the MAC. This can lead to various…",{"value":103,"source":79,"evidence":104},"Missing CSP and security headers",[105],{"id":106,"by":107,"text":108},"15950622","DyslexicAtheist","Without looking deeper into the app ... The WebCrypto standard makes a lot of assumptions in terms of underlying security and is dangerous (if not negligent) without proper…",{"value":110,"source":79,"evidence":111},"The name 'dark' has negative connotations",[112,116],{"id":113,"by":114,"text":115},"15950860","sleavey","The name makes it sound dodgy: \"dark\" reminds me of \"dark web\" and all the negative connotations. Not great for trustworthiness which is especially important for crypto.",{"id":117,"by":118,"text":119},"15953075","nkkollaw","Very cool! I wonder if the word \"dark\" makes the name have a negative connotation?",[121,128],{"value":122,"source":79,"evidence":123},"Use WebRTC peer-to-peer",[124],{"id":125,"by":126,"text":127},"15948973","Ros2","Neat app, but curious why you aren't using WebRTC p2p? I've always thought something like this using WebRTC + a (simple) way to independently check that no data is being sent…",{"value":129,"source":79,"evidence":130},"Add password or two-factor option for rooms",[131,135],{"id":132,"by":133,"text":134},"15953788","taosx","You could give the option to the owner of the room to set a password for anyone wanting to join. And maybe you could use the password to encrypt further communication.",{"id":136,"by":137,"text":138},"15950401","ishansgupta","Feature request: Some kind of 2 factor authentication. Such that messages are encrypted are on the view as long as we enter a valid key.",[140,148],{"value":141,"source":79,"evidence":142},"Why not WebRTC or contribute to Matrix",[143,144],{"id":125,"by":126,"text":127},{"id":145,"by":146,"text":147},"15951354","mxuribe","Kudos for working in this space...but why not just contribute to something like matrix? See: https:\u002F\u002Fmatrix.org\u002Fdocs\u002Fguides\u002Ffaq.html#what-is-matrix",{"value":149,"source":79,"evidence":150},"Is Web Crypto API limited to Chrome",[151],{"id":152,"by":153,"text":154},"15950086","rymate1234","Isn't the web crypto API chrome only at the moment?",[156,167,175,183],{"value":157,"source":79,"evidence":158},"Signal",[159,163],{"id":160,"by":161,"text":162},"15950000","marknadal","Quick response to some of the comments here: - WebRTC is great in theory, terrible in practice (doesn't work very well), and still needs a bootstrapping server. So it is better…",{"id":164,"by":165,"text":166},"15949646","free2rhyme214","I understand the benefits from instant web chat, but I think it's not too difficult to access the signal protocol through Whatsapp or Signal's desktop app.",{"value":168,"source":79,"evidence":169},"WhatsApp",[170,174],{"id":171,"by":172,"text":173},"15950406","gurgus","> - Signal and Whatsapp, as others have pointed out, are far from being comfortable as being private (they already know too much, phone number, etc.), and don't have the…",{"id":164,"by":165,"text":166},{"value":176,"source":79,"evidence":177},"Matrix (Riot)",[178,179],{"id":145,"by":146,"text":147},{"id":180,"by":181,"text":182},"15949770","Veratyr","Those implementations both require phone numbers and registration through a mobile app (hence lack anonymity) and are useless for many use cases. I think Matrix (Riot) would be a…",{"value":184,"source":79,"evidence":185},"Volafile",[186],{"id":187,"by":188,"text":189},"15957093","TehJIDF","Volafile seems like a better alternative to this.",{"comments":191,"answered":192,"key":193},8,6,[194,195,196],{"id":51,"text":52},{"id":70,"text":71},{"id":197,"text":198},"15960577","My point was that if the server providing client code is compromised, it can serve malicious code to said client. This isn’t a cryptographic claim, just a point about how all…",{"commenters":200,"max_depth":192,"maker_replies":191,"first_comment_mins":201,"lifespan_hours":202},32,788,81,[204,206,210,211,214,216,218,221,224,226,228,230,232,233,237,238,241,244,246,248,250,252,254,257,261,262,263,266,268,270,274,276,280,282,286,289,292,293,297,299,300,302,303,307,310,313,315],[90,30,32,205,91,30],"project\u002Fcritical\u002Fexecution",[207,30,30,208,209,30],"15950419","commenter\u002Fneutral\u002Fexecution","rqs",[99,30,30,208,100,30],[212,30,30,213,209,30],"15950580","commenter\u002Fneutral\u002Fnone",[215,30,30,213,100,30],"15950676",[217,30,30,213,91,30],"15954002",[219,30,30,213,220,30],"15952002","nialo",[222,30,30,208,223,30],"15950514","rakoo",[225,30,30,213,209,30],"15950565",[51,30,30,227,11,32],"maker\u002Fneutral\u002Fprivacy",[229,30,30,213,91,30],"15954446",[82,30,43,231,83,30],"project\u002Fmixed\u002Fprivacy",[70,30,30,227,11,32],[234,30,32,235,236,30],"15958557","maker\u002Fcritical\u002Fprivacy","nobadco",[197,30,30,227,11,32],[239,30,30,213,240,30],"15969960","pretty_dumn_guy",[242,30,30,243,11,32],"15971454","maker\u002Fneutral\u002Fnone",[245,30,43,243,240,30],"15973921",[247,30,30,243,11,32],"15974476",[106,32,32,249,107,30],"project\u002Fcritical\u002Fprivacy",[251,32,30,243,11,32],"15953019",[125,38,43,253,126,30],"project\u002Fneutral\u002Fdesign",[255,38,30,256,11,32],"15951149","maker\u002Fneutral\u002Fdesign",[258,43,43,259,260,30],"15950045","project\u002Fneutral\u002Fnone","Aeolun",[160,41,43,253,161,30],[152,41,43,259,153,30],[264,41,30,213,265,30],"15950566","edoceo",[171,41,30,267,172,30],"other\u002Fneutral\u002Fnone",[269,41,30,267,161,30],"15950609",[271,41,30,272,273,30],"15951043","other\u002Fneutral\u002Fprivacy","lawl",[275,41,30,213,172,30],"15956028",[277,278,30,267,279,30],"15951119",5,"pjmlp",[113,192,32,281,114,30],"project\u002Fcritical\u002Fdesign",[283,192,30,284,285,30],"15951475","commenter\u002Fneutral\u002Fdesign","0xJRS",[145,287,32,288,146,30],7,"project\u002Fcritical\u002Fidea",[290,287,30,213,291,30],"15952901","snvzz",[117,191,32,281,118,30],[294,33,43,295,296,30],"15950575","project\u002Fneutral\u002Fprivacy","guy98238710",[54,33,30,298,11,32],"maker\u002Fneutral\u002Fidea",[132,31,43,295,133,30],[164,301,32,288,165,30],11,[180,301,32,288,181,30],[304,301,43,305,306,30],"15950362","project\u002Fneutral\u002Fidea","kuceram",[308,301,43,305,309,30],"15951507","kirillseva",[311,301,30,267,312,30],"15951814","dominotw",[136,314,43,253,137,30],12,[187,316,32,288,188,30],13,[],[319,324,329,334,339,343],{"id":320,"name":321,"points":322,"category":323},"15945490","dumbcoin",412,"learning_science",{"id":325,"name":326,"points":327,"category":328},"15972402","Termipal",195,"dev_tools",{"id":330,"name":331,"points":332,"category":333},"15925736","Servers.lol",150,"web_saas",{"id":335,"name":336,"points":337,"category":338},"15919646","PyFunctional",129,"languages",{"id":340,"name":341,"points":342,"category":20},"15950325","pm-as-code",122,{"id":344,"name":345,"points":346,"category":347},"15945808","word2vec-spam-filter",104,"ai",false,"v2",{"id":351,"name":5,"line":6,"ai":348,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":352,"maker":11,"domain":10,"tier":19,"attempts":30,"strip":353,"url":9,"mix":354,"praise":78,"objection":87,"sub":21},15945658,[21,24,25,26],"1000000000310003013033300000110130113301",[30,31,32,33],1793990967926]