8 ms·
The most backdoor-looking bug I’ve ever seen (2021)
- FiloSottile 5y agoPreviously: https://news.ycombinator.com/item?id=25726068 https://news.ycombinator.com/item?id=25726068 (2021) I am moving my newsletter archives to my blog, and the issues must have hit the RSS feed, even if the pages are not well annotated yet.
- jka 5y agoWhat's an action that two people on different sides of a mirror can take in order to demonstrate a common commitment towards progress (despite mistakes)?
- jka 5y ago(the best I have, so far, is: walk away)
- jka 5y ago(and downvoting the other appears to be common reaction -- moreso than replying to them, perhaps)
- philosopher1234 5y agoi just don't understand your original comment
- jka 5y agoOk - it's possible that I was commenting outside the guidelines[1], which would be a fair reason to downvote. If that wasn't the case, then please instead ask for clarification next time - people are generally fairly forthcoming as long as you're not dismissive or intimidating (although it can be hard to tell what random strangers on the internet will perceive as such). As to the explanation: I don't think anyone can claim to be perfect, and we all have to go through various learning phases (in various learning dimensions) throughout life. Increasingly that process is on record, for most of us -- as it is in the linked article here. It's risky and could stunt growth to call people out for their failures; especially on platforms that have a wide audience. There are often ways to find more constructive, positive and healthy personal development. [1] - https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- jka 5y agoOther opinions are possible though, I suppose. Perhaps we should all be called out on our faults, and that would somehow lead to a more accurate and error-free existence. And it's possible that that is, already, abstractly, somehow what this blog post is doing.
- jka 5y agoAlternatively we could argue that the HN realm is some kind of weird partially-albeit-loosely rules-based environment that doesn't represent reality more than superficially, and that the little arrows, karma counting, and ladder-climbing (influence or points) are a sad, incomplete replacement for true human connection. Who's to say, really? Is any other environment much different? In conclusion: I'm not sure whether I understand my original comment, either. It probably says more about me than expected, and perhaps to boost my ego further, I should follow my own guidance and walk away from that :)
- the_biot 5y agoIf you're trying to hide a backdoor in a more subtle way than leaving a telnet port open, disguising it as a bug is not a bad way to go. Much less work than, say, finagling your own magic numbers into a new crypto standard. Anyway, Telegram MTProto backdoored; this never was a surprise to anyone I guess.
- ghostbrainalpha 5y agoI can see a lot of people doing this for plausible deniability. It would be very difficult to prove the difference between actual incompetence and deliberate ineptitude.
- haolez 5y agoThis looks a lot like the Proof of Work from Bitcoin. Super interesting!
- sanj 5y agoMaybe I'm missing something but this doesn't appear have anything to do with PoW beyond adding salt to a hash.
- codeflo 5y agoA surprising number of people seem to believe that Bitcoin pioneered all forms of cryptography.
- drawkbox 5y agoYeah when you say "crypto" now, people aren't thinking encryption/decryption/private/public/keys/certs/algos, they are appending "currency" in their brains.
- haolez 5y agoYou vary a nonce until you get the expected result. Looks like the same principle, except for the details :)
- deleted 5y ago[deleted]
- ddtaylor 5y agoAny messaging platform that wants a phone number gets a hard pass for me. Use Matrix instead.
- godelski 5y agoHonest question, how do you make anonymous connections? I'm not talking pseudo-anonymous, but actual anonymous.
- NullPrefix 5y agoddtaylor never mentioned anything about anonymity. Phone numbers are external IDs, which can be stolen
- godelski 5y agoNo, but I think that's the underlying concern between giving out phone numbers. Handing over phone numbers is generally giving away your identity (because it is only pseudo-anonymous). Giving away my username Godelski is also difficult without linking my personal identity because it too is pseudo-anonymous.
- ddtaylor 5y agoIf you're communicating with someone over Tor you're not giving them your phone number. In the past people used XMPP but Matrix is easier and doesn't require manually setting up encryption or OTR extensions.
- zaik 5y agoModern XMPP clients have OMEMO built in and enabled by default.
- godelski 5y agoSo how do we translate this to sharing contact information? I find it very limiting if we can only establish contact over TOR. Maybe I should explain the problem I'm thinking (and I'm honestly curious if there is a solution). Within one app I want to be able to establish contact with multiple types of people without revealing to others those identities (i.e. anonymously). If I use a username then my friends and family that have my phone number can see my username (similar to Snapchat). This also allows for cross-site deanonymization as I can't use that same username on sites like Reddit or Hacker News where I may actually want to establish private or group communication with other users. The problem here is that usernames are persistent and so identities will be linked (even if multiple usernames are allowed). I want to be able to connect friends, family, internet friends, and others without revealing any PII or letting others knowing who I've established contact with. As I see it, there needs to be some zero knowledge contact initialization. How do we establish a (persistent) communication channel through untrusted platforms that do not reveal PII? And more importantly, how do we do this in a manner that is usable by an average person?
- Moodles 5y agoI remember seeing this bug years ago. As Filippo mentions at the end, I'm still not sure whether to attribute this to malice or incompetence as per Hanlon's razor. I have not really followed what's up with Telegram lately, but I recall they had a rather brusque attitude towards the cryptography community at the time: "we have maths PhDs!", "Here's an encrypted message with no other context whatsoever: 0x459457453494530453409abc74f, $1 million if you can break it. No? Didn't think so!". To be honest, their consistent hubris at the time combined with (as far as I'm aware?) no other suspicious code (in the sense of backdoors, not just weird crypto) since, actually leads me to think it might genuinely be incompetence rather than a deliberate backdoor. I do think it's true that the security community can be a little outraged and not very welcoming to newcomers in the space if they get anything wrong: even Signal, pretty much the gold standard, receives constant (in my opinion, unfair) criticism for not being federated. Though, given the high stakes, I suppose this can be forgiven.
- godelski 5y agoThe thing I'm most confused about is why Signal and Telegram are always seen as competing. WhatsApp has better encryption than Telegram, but then again, the bar is so low it's unfair. The unfederatedness of Signal seems to be a HN phenomena. Though someone did make a feature request that could be something that's kinda middle ground and seems more in line with Signal's philosophy[0]. Personally I think Signal works so well because you don't have to worry about servers, domains, and whatever. It just works. Exactly like texting. It's for the masses, not us nerds. I want to see Matrix grow, but I don't see it being usable by the masses anytime soon. [0] https://community.signalusers.org/t/signal-airdrop/37402/8 https://community.signalusers.org/t/signal-airdrop/37402/8
- staticassertion 5y ago> The Telegram key exchange is described in the "Key Generation" section of Telegram's end-to-end API docs. Concretely, Alice requests the DH parameters (p, g) from Telegram, painstakingly verifies them, computes a random a value, and sends g^a mod p to Telegram. Bob receives (p, g, g^a mod p), similarly computes b and g^b mod p, and sends the latter back (along with a truncated hash of the derived key, for some reason). I assume the reason is that the recipient of the truncated hash can validate that they've derived the same key without exposing it. This makes it way more straightforward to reject invalid keys. Truncating the hash is pointless but I get why they'd do it - it doesn't "hurt" since ultimately decryption will (hopefully) fail with an invalid key and this is just a shortcut to commit to a specific key. Otherwise, a really interesting example of thinking "I'll add a nonce here, that'll make things safer!" and getting the exact opposite result.
- reincarnate0x14 5y agoMy naïve take on the hash truncation was that they didn't want to potentially expose an exact hash -> key map that could be analyzed after the fact, but wanted enough information about it to work as a likely-enough validation.
- Bayart 5y ago
- tptacek 5y agoEschew flamebait. Avoid unrelated controversies and generic tangents.
- Bayart 5y agoI'm not trying to bait anything, and I don't have any afterthought. I genuinely find it baffling that something ever got the idea of trying to change a term that's so engrained in IT culture, to the point I use it outside of English. Isn't it a point that's interesting to discuss ? I think it is, and trying to have it brushed aside is vexing. NB: I remembered seeing your name somewhere, and indeed I have. I really enjoy your blog posts @ fly.io. I even have « Sandboxing and Workload Isolation » saved up somewhere as a note.
- wankitycat 5y ago
- tptacek 5y agoI don't think it's especially interesting to discuss, but either way: it's not important on this thread, where it is an off-topic tangent. We all share responsibility for making sure we're talking about the meat of an article on its thread, and not burying the thread under a relitigation of some past rhetorical controversy. It's as much about predicting what responses your comment will generate as it is anything else. Thank you for the kind words about the blog posts! I'm particularly happy with the sandboxing post.
- throwawayair557 5y agoI'm also a fan of your sandboxing post. Got to know of nsjail and gVisor. Looking forward to your Macaroons post, don't care when it arrives. https://en.wikipedia.org/wiki/Macaroons_(computer_science) https://en.wikipedia.org/wiki/Macaroons_(computer_science)
- friendlydog 5y agoHanlon's razor: "never attribute to malice that which is adequately explained by stupidity."
- goodpoint 5y agoWhen it comes to security such razor is dull.
- friendlydog 5y agoI've seen lots of "experts" write really insecure code. While it is certainly possible someone did this maliciously. Devs often don't understand the code they write and repeat until they get something that "works" and call it good. With an app that touts security I would hope for better.
- goodpoint 5y agoThat's not the point. Around security you have to assume "malicious until proven otherwise", unlike in law.
- johnx5c 5y agoWhile that's true, products from Telegram, Cisco, Dell etc etc are targeted by nation states with infinite budgets who employ the best coders and cryptographers in the world. They have track records of selling bogus/backdoored products via fake companies, hacking companies to plant malware, planting/bribing employees etc. That changes the balance pf probabilities between stupidity and malice a lot for me.
- upofadown 5y ago>In a normal PitM, the server negotiates two separate Diffie-Hellman sessions with Alice and Bob, who end up with different shared keys, which they could detect by comparing fingerprints. I think that normally A and B would compare whatever they were using for long term identity and not the shared key they got from a DH exchange. So that would be the fingerprint of some sort of public key from some signature scheme. There is a tendency to throw away the results of the DH exchange as part of a forward secrecy scheme and the users would not want to have to compare fingerprints constantly. Does Telegram do something different? Edit: Sort of answering my own question. Apparently each secret chat is self contained. You are supposed to verify your fingerprints when you start one. If you start another one you then would have to check the fingerprint again. This suggests that Telegram secret chats are indefinite and can stick around for a long time. I guess that is one way to simplify identity management. That also suggests that the forward secrecy is per secret chat session. It only kicks in when you end the secret chat.
- bshipp 5y ago> Can we talk about how cool the Wayback Machine Compare feature is? I consider myself an Internet Archive power-user; I spend hours playing with CDX queries, t̶r̶o̶l̶l̶i̶n̶g̶ trawling the archive for interesting tidbits that have been lost to time. I have spent countless evenings building scripts based on the internetarchive (https://github.com/jjjake/internetarchive https://github.com/jjjake/internetarchive) and iamine (https://github.com/jjjake/iamine https://github.com/jjjake/iamine) tools (along with a host of others). I am utterly ashamed I had never heard of the /diff/ feature between pages until I read your article. Thank you for bringing this to my attention! I am continuously impressed by the work they do at IA.
- irthomasthomas 5y agoDid you mean trawling the archive?
- bshipp 5y agoYes, yes I did. I'm not even sure I can blame that on autocorrect. EDIT: As an aside, I didn't realize there's no strikethrough option for text on HN. For anyone else who wants to hide their shame without ninja editing, I found this site which does the same in unicode: https://yaytext.com/strike/ https://yaytext.com/strike/
- kbelder 5y ago"Trolling: Carefully and systematically search an area for something." I think your subconscious did just fine.
- bshipp 5y agoIt's polite, pedantic, and incredibly useful digressions like this which keep me coming back to HN. I had no idea this homonym could describe two separate actions (i.e. casting a broad net to grab whatever is in the path vs. a systematic search covering a specified area) that both still work perfectly to describe how I interact with the Internet Archive. I'd say it was intentional, but that'd be a bald-faced lie.
- deleted 5y ago[deleted]