All Blog Posts

Stop Using Encrypted Email

  • icon Feb 19, 2020
  • icon 8 minutes read
  • icon 1518
Email is unsafe and cannot be made safe. The tools we have today to encrypt email are badly flawed. Even if those flaws were fixed, email would remain unsafe. Its problems cannot plausibly be mitigated. Avoid encrypted email. Technologists hate this …
Read more
  • Cryptography

How (not) to sign a JSON object

  • icon Jul 24, 2019
  • icon 12 minutes read
  • icon 2363
Last year we did a blog post on interservice auth. This post is mostly about authenticating consumers to an API. That’s a related but subtly different problem: you can probably impose more requirements on your internal users than your customers. The …
Read more

The PGP Problem

  • icon Jul 16, 2019
  • icon 15 minutes read
  • icon 3030
Cryptography engineers have been tearing their hair out over PGP’s deficiencies for (literally) decades. When other kinds of engineers get wind of this, they’re shocked. PGP is bad? Why do people keep telling me to use PGP? The answer is that they …
Read more
  • Cryptography

Analyzing a simple encryption scheme using GitHub SSH keys

  • icon Sep 30, 2018
  • icon 6 minutes read
  • icon 1185
(This is an introductory level analysis of a scheme involving RSA. If you’re already comfortable with Bleichenbacher oracles you should skip it.) Someone pointed me at the following suggestion on the Internet for encrypting secrets to people based on …
Read more
  • Cryptography

ROCA vs. ROBOT: An Eternal Golden Braid

  • icon Aug 08, 2018
  • icon 7 minutes read
  • icon 1328
The ROCA RSA key generation flaw or ROBOT, the “Return Of Bleichenbacher” attack: which is most deserving of the “Best Cryptographic Attack” Pwnie award at the 2018 Black Hat USA conference? Only one can survive. Let us consider. Assume for the …
Read more
  • Cryptography

The default OpenSSH key encryption is worse than plaintext

  • icon Aug 03, 2018
  • icon 4 minutes read
  • icon 814
Update: I don’t know if we can take credit for it or if it’s random chance, but I note OpenSSH changed its default in the release after this blog post. The system works! The eslint-scope npm package got compromised recently, stealing npm …
Read more