Earlier quoted context omitted.
> But if you are actually concerned about the identity of the person, passport numbers, etc are better uids. Why not just name + email? I don't think putting anything like a passport number is a wise idea. It's just putting one more semi-secret information on the internet. I think the encryption and signing+trust gets mixed here. If I know someone only by email address, I don't trust their key very much. But I'm stil…
The point is that the uid is just a string. You can put anything you want in it. Most people put their name + email because that's what is useful for most internet transactions. If you get an email from someone, you want to be able to verify that it is from the person who controls that email account. For example, I work in Japan. My colleagues work in the UK. Generally speaking I know who they are because I work with…
But nobody is forcing you to sign the key, or even then to publish that information on the internet. As you say - how do you know they're that person?
(I'm ignoring the part of - should we even care that the identity matches. You communicate with the (person, key) tuple - you can still trust that tuple and not care if the name matches government documents)
A bank is a slightly different case. Your key for communication with the bank is (usually) more interesting than the key you use for emails. The bank also has both interest in protecting communication and means to do something better than key signing. Some banks will actually issue you a smartcard (or some equivalent) from which you can't export the private key at all - it may even be a gpg key. The point is - that's a much better protection on average, because an average bank customer has no idea about gpg, but will likely not give the smartcard away to someone random. Finally, few people have passports and you shouldn't be required to have a passport to have a bank account.