This section is about distributing your public key to the world, letting as many individual sign it as possible. Here, we will explain how GnuPG works in handling Web of Trust and as a tool for you to sign, encrypt, and decrypt your secrecy.
Across internet, when we say "we genuinely trust this information", exactly based on that do we measure or proof our claim? That's the problem. There isn't a solid way to prove an information is genuine. Service access is easily obtainable via various hacking techniques like phishing, social engineering etc. You might be surprised, even the technical experts can't 100% guarantee a system is safe and secure. Check this comic out from XKCD:
So, in situation says, your Twitter, was illegally accessed by your nemesis and he/she posted hate speeches in it and went up to news channel. Luring everyone's attentions, you tried to explain you got hack but you have 2 problems:
and the doubts goes on between your unintended audiences and you.
So how do we formalize and unify them? In our physical world without computers, to keep things simple:
In case #2, when a dispute occurs, we hire lawyers to do:
In case #3, when a document is lost from one side, we do:
Now, if you notice, in every cases, we relies on a minimum of 5 things to manage a genuine trust:
Even it is imperfect, it does keeps the world going till today.
Hence, a group of tech talents digitized the trust management processes using the existing symmetric encryption technologies. This is where the Pretty Good Privacy (PGP) technology is born. Later on, it inspired the open-source version, GnuPG. PGP uses the same process but works in the digital world:
Keep in mind that, not all government recognize PGP signatures. I'm not a lawyer so be warned: you should always check with your lawyers related to proper legal binding in your country before using it on your official document. Remember, the current primary goal is to inspect information genuineness, not for our day-to-day official document use....yet.
Since we can use the existing tools to recreate the trust management process, we need to ensure the keys we created serve their functionalities. In this case, since we need to get our public key recognized by various entities as easily as possible, as many as possible. Hence, in this section, we learn how to distribute the public key.
This is where you publish your public key via your own website or send via email. It does not depend on any 3rd party entity (example, government department) to share your public key with your recipient.
--armor
argument.Another publish your public key via recognizable key servers between you, your recipient, and the world. It manages the signature recognition at one place. This makes it easy for anyone to obtain your public key, sign on it and return back to the key server without depending on you.
HOWEVER, there is a problem: there is no centralized "government" in the internet. Therefore, anyone can host his/her own PGP key server. There is a huge list of key servers made available by internet bodies. All you need to do is to choose the most used version and publish your key there.
These servers are smart enough to organize your public keys. Upon receiving the signed key from various entities, it knows how to merge them so you don't have to do it manually.
hkp://p80.pool.sks-keyservers.net:80
hkp://pgp.mit.edu:80
hkp://keyring.debian.org:80
hkp://keyserver.ubuntu.com:80
--send-keys <key-ID>
and --keyserver <URI>
arguments together to send your key. Keep in mind that --keyserver <URI>
argument comes first.$ gpg --keyserver <URI> --send-key <key-ID>
$ gpg --keyserver hkp://pgp.mit.edu:80 --send-key 1F6E1C8C1F1A3458A267EEFD445AC05FC0F56EA9
That's all about distributing your GnuPG keys. Remember, ONLY distribute your PUBLIC key, regardless whichever channels you're distributing through.