I have been contemplating how I should publish my PGP public key online recently. Being able to meet with someone physically is great, but that after all is a rare priviledge.
Key-servers are a convenient media, but they lack essential means to authenticate and identify the uploaders. The way I understand key-servers is that if someone already has a small group of people to trust, then key-servers could be reliably useful because one can see if the uploaded keys are signed by the people one trusts.
But as a newbie in practicing security in my daily life, I don't have a web of trust yet. I also don't suppose most people whom I want to communicate securely with in the near future will do. Thus, I turn to consider the other popular way that I know: publishing the public key on one's personal website. I like this way, because, as I understand it, so long as one can trust the browsers and the certification authorities, one can be relatively sure of the key's being genuine. Besides, a personal website is a good identification of the publisher.
Well, I don't have a personal website yet, but I suppose I will need to have one sooner or later, as I plan to enter the academia. Unfortunately, I also don't have the resources to host a server, so I plan to rely on some commercial platform for now, like GitHub Pages. Then, an idea occurred to me that how about publishing my key in a GitHub repo?
It seems to be a good idea after some contemplation:
- The ways one can access a GitHub repo (that I know of) are
HTTPSandSSH, both are secure. I also can't think of an easy way how an attacker can easily modify the content of one's repo, without permissions. - If one's GitHub account is famous, then it can also be a fairly good identification of oneself.
- Git can track the history of the updates to the key.
- If I use a good way to authenticate my GitHub account, like enabling 2FA with a TOTP authenticator, then it should be relatively safe from theft.
I haven't heard of anyone doing this before. Also, I just did a repo search on GitHub using pgp key and gpg key. I scrolled a few pages of the search results and could only find three repos that are used to publish keys. It seems that this is very unpopular.
Therefore, I worry that there are critical drawbacks of this approach that I haven't been able to observe. And thus, I ask this question.