I know about the trust web in PGP. When you sign a key, everybody that trusts you will trust the person with that key. But what is the point of self-signing a key when anybody else can do that with his own key-pair?
There are a couple reasons that self-signing is important in OpenPGP:
- First, user IDs and photos aren't attached to the key any other way. As a result, it's entirely possible for someone to attach a user ID or photo to a key, and the only way to distinguish an authorized one is to verify that it's signed by the key. Subkeys are attached to the key the same way and a signature is required for them, too.
- Second, to prevent someone from claiming someone else's signing subkey and claiming their signatures with that key, that signing subkey needs to sign the main key as well.
- Third, signatures are the only way that you can apply preferences and notations. These preferences indicate what algorithms the key owner is willing to accept (e.g., SHA-2 and AES), plus what functionality their implementation supports (e.g., improved security features in new versions of the standard).