Discussion about this post

User's avatar
Samuel Smith's avatar

Quoting Above: “KERI’s concept of pre-rotation, where future keys are pre-committed to ensure seamless and provable rotations, finds a practical analogue in Nostr’s use of hierarchical key derivation (BIP-32). Instead of pre-publishing future keys, Nostr identities derive each new key from the same master key in a deterministic sequence. The previous key signs the rotation event, ensuring the same cryptographic continuity without the need for pre-commitment.”

NOSTR has a single point of failure in its master key. So, compared to KERI, NOSTR security is very weak. The whole purpose of pre-commitment is so that a different key infrastructure can be used to differentially protect the pre-rotated keys as opposed to the current signing keys. This protects from the common mode failure of the two infrastructures. Likewise, this pre-committment gives KERI fault tolerance from a surprise quantum attack. NOSTR does not.

NOSTR has no concept of delegated AIDs, so one can’t horizontally scale signing infrastructure, and one can’t build organizational identity authority trees where different key infrastructure is protected by that hierarchy as a threshold structure. KERI, by design, is highly fault-tolerant. NOSTR, in comparison, is not very. One can use a BIP-32 derivation algorithm to derive one's key sequence in KERI. However, forcing everyone to do that means there is no possibility of higher levels of security. One can use KERI in a similarly simplistic way to NOSTR, and then upgrade to higher security or coexist in an ecosystem where high-value targets use higher security and low-value targets use simpler but lower security in their key management. KERI is designed to be the simplest and most universal approach.

KERI supports software thresholded multisig, which means one can have multiple master keys.

With Nostr, if one uses a secure enclave or HS that does not allow export of the master key, then one failure mode is the loss of that hardware. So not tolerant of that fault. If one has an exportable master key, it must be protected well against theft. However, one might still lose it. To account for this, one would need a key recovery mechanism, such as sharding social recovery. That is no longer simple. With KERI, one uses multisig to be tolerant of both faults (theft and loss) of a single master key, so in that regard, KERI is actually simpler than NOSTR.

KERI's witness and watcher network is designed to account for faults deriving from the different incentive and governance structures of controllers versus validators. A relay network doesn't understand those faults and so does not protect from them. For example, in addition to the high availability of key state, witnesses in KERI can also serve as a detection mechanism to detect compromise of the key signing infrastructure, allowing the controller to perform a rotation and recover from the compromise. A witness pool can also be configured with an additional authentication factor or factors, thereby creating a threshold structure for enhanced security.

Unless and until one does the hard work of explicating all the likely faults in a key management system, one will not achieve what in KERI we call a minimally sufficient system. It will be vulnerable to known likely exploits. To quote Einstein (purported), "Everything Should Be Made as Simple as Possible, But Not Simpler". Many key management schemes fall into the trap of being overly simplistic at the cost of insufficient security.

Compared to the PKI protocol stack PKI/CA/OAuth/OIDC, KERI is extremely simple. KERI is designed to be a valid replacement for all of PKI/CA/OAuth/OIDC infrastructure. So it has to survive all the faults to which PKI is susceptible and vulnerable.

Simplicity vs security is not a good trade. Practical but insecure, is well, impractical.

I like this quote. "Virtuous simplification’s evil twin is vicious simplification". https://graeme-47328.medium.com/simplicity-34dec5e201ac

The set of applications where NOSTR is sufficiently secure is actually quite small. So advocating for it, without qualifying its metes and bound of insufficient security, seems somewhat irresponsible to me.

Expand full comment
Samuel Smith's avatar

@Tim, one of the things that gets lost in discussions about KERI, particularly when comparing it to other key management schemes, is the sine qua non of KERI: perpetual control over an identifier.

The value of an identifier is the degree to which it represents the reputation of its controller regarding its behavior. Reputation accrues over time, so identifiers with lifespans shorter than "in perpetuity" can never attain the highest value reputation.

Any attack vector or weakness in the control authority becomes exploitable given enough time. Therefore, perpetual control authority requires not merely resilience against faults, but also recoverability from faults. Fault recovery is dependent on fault detection. Fault detection mechanisms may seem like complications until one realizes that they are essential to perpetual control. So it's not a case of "if" but "how" one provides fault detection.

What happens when an identifier is based on infrastructure that has no viable fault detection mechanism? It must be abandoned when its control mechanism (i.e., signing infrastructure, private key or keys used for signing, or authorization mechanism used to approve items to be signed) is compromised. Abandonment of the identifier necessarily abandons any reputation associated with the identifier. So the cost of acquiring the reputation, by which trust is imbued in that identifier, must be repaid with each abandonment. Many of the readily exploitable vulnerabilities in PKI stem from not repaying the identity assurance (reputation) security deposit associated with the new identifier. This is an expensive consequence of "too simple" identifier system designs that do not support fault-tolerant perpetual control of their identifiers.

Similarly, reputational value, hence trust, is depreciated when not everyone uses the same identifier system. If everyone is using different identifier systems with varying security models and trust bases, as well as different protocols for interacting with, appraising, and verifying those trust bases, then the value of the reputation associated with identifiers will be severely limited. This is why KERI is designed to replace PKI/CA/OAuth completely. Because only a universal identity system has the potential to maximize reputation and, consequently, trust.

So ultimately, we should either fix PKI universally or universally replace it. Any other approach is ultimately defeatist. So IMHO there are only two choices: continue using PKI with all its flaws, or replace it with KERI. There is no other alternative to KERI that comes close to satisfying the needs of universality with perpetual control authority. If KERI is not mature enough, then put resources into maturing it, instead of proposing alternatives that are ultimately defeatist.

Anything less than perpetual control authority is inadequate to satisfy the demands of reputation and trust. Therefore, such a system suffers from vicious simplicity.

Expand full comment

No posts

Ready for more?