I have the perfect solution to this, but software systems aren't with me yet. The answer is: a keychain. Not a digital keychain, an actual one. On this I put my "infinity key" - it's a little USB flash drive with a LUKS-encrypted file system on it that holds a private key. Lots of tech people have something like this. It's great for SSH - I can add my infinity key to any host and be assured that I will always be able to login securely from any machine I want. We're all used to the physical metaphor of keys as security, and needing a physical key to get into things. This is not a huge change for us.
This could easily become the norm, and should. It requires only one key for all of us, it is perfectly secure, doesn't require storing secrets on the remote end, never needs to be changed, can't be forgotten because it doesn't need to be memorized (there is one password for the LUKS encryption). There is no penalty for using the same key in thousands of places.
The problem is, no website or browser supports this kind of authentication, and most people are not savvy enough to build this sort of thing for themselves. These are both problems that should be solved; we desperately need to move the Internet away from passwords, password resets, and so on.
This could easily become the norm, and should. It requires only one key for all of us, it is perfectly secure, doesn't require storing secrets on the remote end, never needs to be changed, can't be forgotten because it doesn't need to be memorized (there is one password for the LUKS encryption). There is no penalty for using the same key in thousands of places.
The problem is, no website or browser supports this kind of authentication, and most people are not savvy enough to build this sort of thing for themselves. These are both problems that should be solved; we desperately need to move the Internet away from passwords, password resets, and so on.