I love the elegance of using npubs for solving the #authentication problem. Having an identifier that natively supports encrypted messaging and signing can vastly reduce the complexity of login (#authentication)solutions and eliminate entirely the need to store passwords.

But this still does not solve the #identity problem. If you are using the same npub to login to a multiplicity of sites, if your nsec is compromised, you’re screwed.

I’ve heard the criticism that login with npub is actually a ‘regression’ to less secure authentication but that’s not an authentication problem, that’s an identity problem.

The best approach is have seen to mitigating identity compromise is Lightning Login (#lud04) where the wallet derives a new pubic/private key for each site that is authenticating (using a hash of the domain to derive a new key pair). That way there is no correlation capability.

Carrying this over to #nostr, if a client is privy to your ‘identity’ (has your nsec), it should be able to derive different npubs for different domains, and handle all of the derivations so all those identities look like it’s all one from the perspective of the client.

So it’s a problem to be solved, but right now I see a huge benefit of just solving #authentication, getting rid of all those bespoke authenticator apps, and not become device-bound to someone’s hardware because of a passkey that refuses to leave the secure enclave.

Reply to this note

Please Login to reply.

Discussion

FWIW, I spent about a month trying to get FIDO working with webauthn but it was too damn hard. In less than a week, I have almost completed a full login with npub - it was way simpler. Of course it needs the extra identity things I mentioned above, and perhaps some removable hardware platform that holds the nsec, but I am optimistic this is the right way to go.

NPUB’s are nice, the downside is, everyone can use the same name, which could get confusing. Or, someone could pose as someone else. If you don’t have the proper NPUB, there is no way to determine who you’re talking to.

I think there might be a solution with nip05 mapping. I have to put my thinking cap on.

Yes, that's a solution. Just add NIP-05.

I like the concept of subkeys when you dont want to expose your nsec

https://wiki.debian.org/Subkeys