I know it will take time, but the Fediverse developers should strongly consider making the following opinionated technical decisions:<li>Use RFC 9421 instead of the earlier HTTP Signature spec.</li><li>Make Ed25519 the default algorithm, not 2048-bit RSA.</li> Ed25519 has a lot of advantages over RSA and ECDSA. Over 2048-bit RSA:<li>Shorter signatures</li><li>Shorter keys (both secret and public), less storage/bandwidth overhead</li><li>More security (112-bit vs 126-bit)</li> Over ECDSA:<li>It's much faster than ECDSA</li><li>You don't have to worry about biased nonces leaking your secret key through lattice reduction</li><li>Tuned for security (no weird parameters)</li> Over **both RSA and ECDSA**:<li>EdDSA is constructed to provide Exclusive Ownership, which is a stronger notion of security</li><li>Easier to implement in constant-time</li> Bonus:<li>Ed25519 is approved for use in FedRAMP systems (FIPS 186-5), which Common Criteria sometimes cares about.</li> See more here: and
Does anyone have an Ed25519 public key configured to show up via WebFinger for their Fedi account? I know Mastodon stupidly only supports RSA. That's a thing I plan to fix eventually.
If you're curious about thee state of #FediE2EE. I've been implementing the cryptography protocols used in building Key Transparency for Fedi. With this in hand, I'm writing a reference implementation of the server software as defined in the specification. Once this is implemented, I'm going to update the specification with anything I learned while writing the server osftware. One thing I already learned: I need to be specific about how HPKE ciphertexts are serialized. The current spec draft doesn't tell implementors what to do here. Once the spec + implementation are in a good place, I'll deploy a test instance and release a PHP client (using the same crypto library). Separately, a Rust client is being developed. The main idea here is to FFI the Rust implementation in other languages (Ruby, etc.). Once *all this* is done, we get to go through a few cycles of peer review until we calcify the spec with a major version 1.0 release
Oh btw I grabbed the domain name, fedipurse.com, before my latest blog post went live. Wouldn't want some asshat tech bro to squat it for a crypto scam, after all.
The Dreamseeker’s Vision of Tomorrow Since I have your attention for the moment, I'd like you to ask yourself a question: What is it that drives you in life? Do you yearn for the feeling of safety? By seeking power, status, wealth, and fame? Is it cravings for pleasure that motivate your actions? Does a sense of obligation to others, or even your past self, that informs your decisions?
I pushed the initial draft of the **reference implementation** for the Public Key Directory server-side software on GitHub tonight: This is still a very early draft. It's a rapid cleanup of a messier codebase that tried to adhere to the spec. It's not perfect. Don't deploy it yet. For now, I want to call attention to exactly one thing: The [security disclosure policy prioritizes "full disclosure"](📃.md ).