6 ms·
> Cracking The Code > [...] Once the decrypted key is obtained, we needed to know how to decrypt the database. To do it, we used Signal’s open-source code and
by segfaultbuserr 6y ago
> Cracking The Code
> [...] Once the decrypted key is obtained, we needed to know how to decrypt the database. To do it, we used Signal’s open-source code and looked for any call to the database. After reviewing dozens of code classes, we finally found what we were looking for
> [...] After linking the attachment files and the messages we found that the attachments are also encrypted. This time, the encryption is even harder to crack. We looked again into the shared preferences file and found a value under “pref_attachment_encrypted_secret” that has “data” and “iv” fields under it.
Today I learned that I can do code cracking too...
- wnevets 6y agois the equivalent to calling oneself a lock picking expert because they had the actual key to the lock?
- segfaultbuserr 6y agoAfter opening the cabinet and the box with money we found is also locked. This time, the lock is even harder to crack. We looked again into every single coffee mug and bookshelf in the room, and found a keychain hanging on the second office desk drawer, that has the "key" on it...
- dwiel 6y agoI needed to get into my office so I asked my boss for a key. She gave me an entire key ring of keys. After trying dozens of keys against my office door I finally found the key that worked.
- segfaultbuserr 6y agoIt's actually how you decrypt an anonymous OpenPGP message (e.g. in GnuPG, you can create one using --throw-keyids or --hidden-recipient) - Normally an OpenPGP message records its intended recipients in the header, so GPG knows which key to use right away. But when the message is anonymous, GPG must try all the private keys in the keyring one by one, until it sees a valid solution or fails. If you have multiple private keys, you'll go through many passphrase popups (and smartcard/USB swapping), the struggle is real!
- tialaramex 6y agoTrial decryption. This is a potential server behaviour for Encrypted Client Hello (the current iteration of the work to encrypt SNI in TLS traffic) too ECH will be GREASEd. To prevent those who might want the capability to stop ECH in the future from getting a head start while it's uncommon, implementations would always pretend to be doing it anyway. So talking to any TLS server, even one that has no idea about ECH, the client says basically "Hi, here is a normal unencrypted TLS 1.3 Hello message for this.server.example, also, here's an Encrypted Client Hello message". If the server actually does offer ECH, there could be a real Client Hello, perhaps addressed to another.server.example, encrypted inside the Encrypted Client Hello, but if not there's just random noise. An eavesdropper doesn't have the key, so they don't can't tell which is the case. Obviously if your server can't do ECH, the Encrypted Client Hello is just a mysterious unintelligible extension with noise inside it, no further inspection needed. And in some setups the server knows how to tell easily which key would have been used for any valid ECH, so if that key doesn't work then it was just noise, and can be ignored. But in other cases the server knows two or more keys that might be valid, yet the client either can't or has chosen not to be open about which (if any) was used, so the server has to try them all until it finds out. This is Section 10.4 of the current draft: https://tools.ietf.org/html/draft-ietf-tls-esni-09#page-28 https://tools.ietf.org/html/draft-ietf-tls-esni-09#page-28
- segfaultbuserr 6y agoGreat comment! Thanks for telling me that ESNI is more interesting than I thought. /me TODO: read the ESNI spec from cover to cover.
- deleted 6y ago[deleted]
- nieve 6y agoIs there a worry that with enough potentially valid keys this will make a https DDOS any easier or will all the same mitigations be good enough?
- wool_gather 6y ago
- arthurcolle 6y agoWhat's it like to be an elite hacker?
- stouset 6y agoHaving the actual key to the lock, then using that to specially craft a pick made in the exact same shape and size as the original key. And then using that to "pick" the lock. So maybe more like the person who works the key cloning machine at the hardware store.
- throwaway744678 6y agoOnly if you can review dozens of code classes, that is.
- segfaultbuserr 6y agogrep is now an evil code cracking tool.
- sequoia 6y agoDon't tell the FBI this, they won't know you're joking (see schwartz, manning, & wget).
- uoaei 6y agoIt's not that they don't know, it's that they know most people, including most judges, don't know.
- kazinator 6y agoNo, people who review dozens of classes to find something are definitely not familiar with grep.
- edoceo 6y agoUse `ack -C8` when searching, adds a few lines of context helping identify the one class that matters. I read "reviewed dozens" as "got lost in the code for a bit"
- boogies 6y agoGNU grep has `-C` too (idk about POSIX)
- segfaultbuserr 6y agobsdgrep [0] has it too. Apparently POSIX [1] does not, the spec is really minimalist. [0] https://www.freebsd.org/cgi/man.cgi?query=bsdgrep&sektion=1 https://www.freebsd.org/cgi/man.cgi?query=bsdgrep&sektion=1 [1] https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html https://pubs.opengroup.org/onlinepubs/9699919799/utilities/g...