There is a solution to this problem. Websites should allow people to log in with their public key. You can create a new, internet-only identity with a public key. This would be a little cumbersome at first, but if browsers supported this ability, it could be just as easy as logging in with a password.
Here's how it could work: There could be metatags that specify where to submit the public key. The website will then send back a message that can only be decrypted with the private key. The browser has the user type in the password to access their private key, decrypts the message, and sends it back to the website. The user has now started a session with their public key.
Since you would use the same public key on all websites, your identity would be the same. This would not require a central server like OpenID.