keybase / keybase/keybase-issues

Add support for fetching keys and performing proofs via PKA (DNS-based key lookups)

Open
#1,594 15 comments 4 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
899
Forks
40
PR merge metrics
No merged PRs in 30d

Description

PKA is based on TXT records that look like this:
`pavel._pka.kirkovsky.com`
and map to key emails (the `@` symbol is replaced with `_pka`). The record itself contains the key's primary email, key fingerprint, and URL pointing to the full key.

Manually checking the record shows the following:

```
$ dig +short pavel._pka.kirkovsky.com TXT
"v=pka1\;fpr=4328CFD67B46A8FB32270F4F0CE4A0B83F3FC81F\;uri=https://kirkovsky.com/pavel@kirkovsky.com.asc"`
```

Using PKA, keys can be fetched via DNS and imported automatically:

```
$ echo "Secret message" | gpg --auto-key-locate pka -ear pavel@kirkovsky.com
gpg: requesting key 0x0CE4A0B83F3FC81F from https server kirkovsky.com
[...]
gpg: automatically retrieved `pavel@kirkovsky.com' via PKA
-----BEGIN PGP MESSAGE-----
[...]
```

If Keybase supported PKA, it could take care of public key import, email verification, DNS verification, and (possibly) web verification in one go. This method is complemented nicely by DNSSEC.

References:
http://www.gushi.org/make-dns-cert/HOWTO.html
https://www.df7cb.de/blog/2007/openpgp-dns.html
https://keyserver.mattrude.com/guides/public-key-association/

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the PKA and OpenPGP DNS references linked in the issue, then identify the keybase client components responsible for key import, email verification, and DNS verification. Done would mean a defined implementation for reading PKA TXT records, fetching the referenced key, and performing the proposed proofs; no files or tests are named.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, networking, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.