{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreichlqznieulgt5zibtgrlpeleua4jpoojm3225uq5zxzvocndckly",
"uri": "at://did:plc:nkxz2ojdvmieg2nhphvputvp/app.bsky.feed.post/3mmogpo4uzir2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibtelfn7wgn7nknibjmmrbqp5stfqenw4lkpwhwq6lsm6me75myga"
},
"mimeType": "image/png",
"size": 717602
},
"description": "GPG-Schluessel direkt als OPENPGPKEY-Record im DNS hinterlegen, ohne Keyserver-Abhaengigkeit oder Web-of-Trust. RFC 7929 erklaert, die SHA-256-Hash-Variante des Local-Part, ein Generator fuer den Record und warum DNSSEC die Voraussetzung ist. Plus Hinweis zur Recordgroesse.",
"path": "/2015/04/01/opengpgkey-rr-gpg-key-im-dns/",
"publishedAt": "2026-05-25T12:03:27.000Z",
"site": "https://www.kernel-error.de",
"tags": [
"DANE",
"DNS",
"DNSSEC",
"Encryption",
"GPG",
"Hardening",
"InfoSec",
"SelfHosted",
"GPG-Schlüssel per CERT-Record im DNS hinterlegen",
"RFC 7929",
"openpgpkey.info",
"CERT-Record",
"passender EDNS-Konfiguration",
"GPG-Schlüssel per PKA im DNS",
"GPG: E-Mails signieren und verschlüsseln mit GnuPG",
"Der sichere GPG-Schlüssel",
"Einfach melden."
],
"textContent": "Schon länger kann man GPG-Schlüssel per CERT-Record im DNS hinterlegen, allerdings nur als Verweis auf einen Ort, an dem der Schlüssel liegt. Mit dem OPENPGPKEY Resource Record (RFC 7929) geht es einen Schritt weiter: Der komplette öffentliche Schlüssel steckt direkt im DNS-Record. Ist die Zone per DNSSEC gesichert, kann der Schlüssel nicht gefälscht werden, unabhängig von Keyservern und den dort möglicherweise kursierenden Fake-Keys.\n\n### Aufbau des Records\n\nDer Hostname des OPENPGPKEY-Records wird aus der E-Mail-Adresse abgeleitet. Aus dem Localpart (alles vor dem @) wird ein SHA-256-Hash gebildet und die ersten 56 Zeichen davon als Subdomain unter `_openpgpkey.domain` verwendet. Für `user@example.de`:\n\n\n echo -n \"user\" | sha256sum\n # Ergebnis: 04f8996da763b7a969b1028ee3007569eaf3a635486ddab211d512c85b9df8fb\n # Die ersten 56 Zeichen des Hashes werden zum Hostnamen:\n\n\n 04f8996da763b7a969b1028ee3007569eaf3a635486ddab211d512c85b._openpgpkey.example.de. IN OPENPGPKEY <base64-encoded-key>\n\nDer Wert des Records ist der GPG Public Key im Binärformat, Base64-kodiert.\n\n### Record erzeugen\n\nDen Hash des Localparts berechnen:\n\n\n echo -n \"kernel-error\" | sha256sum | cut -c1-56\n # 4e1543e4c2a42754aa23025a940a30d0d3d106025c9e03be8e525ac4\n\nDen Public Key exportieren und Base64-kodieren:\n\n\n gpg --export --export-options export-minimal kernel-error@kernel-error.com \\\n | base64 -w 0\n\nBeides zusammen ergibt den Zoneneintrag:\n\n\n 4e1543e4c2a42754aa23025a940a30d0d3d106025c9e03be8e525ac4._openpgpkey.kernel-error.com. IN OPENPGPKEY mQINBF...==\n\nZugegeben, der Record sprengt etwas die Zonenlesbarkeit. Ein GPG-Schlüssel hat schnell mehrere Kilobyte, das wird im Zonefile eine lange Zeile. BIND kommt damit problemlos klar.\n\n### Schlüssel automatisch aus dem DNS holen\n\nGnuPG ab Version 2.1 kann OPENPGPKEY-Records direkt abfragen. Will man eine E-Mail verschlüsseln und hat den Schlüssel des Empfängers noch nicht, reicht:\n\n\n gpg --auto-key-locate dane --locate-keys kernel-error@kernel-error.com\n\nGnuPG sucht den OPENPGPKEY-Record im DNS, prüft die DNSSEC-Signatur und importiert den Schlüssel automatisch. Kein Keyserver nötig, kein manueller Import.\n\n### Testen\n\nOb der Record korrekt im DNS steht, lässt sich online prüfen: openpgpkey.info, E-Mail-Adresse eingeben, der Dienst fragt den OPENPGPKEY-Record ab und zeigt den gefundenen Schlüssel an.\n\n### OPENPGPKEY vs. CERT-Record\n\nDer ältere CERT-Record enthält nur eine URL zum Schlüssel, der Client muss den Schlüssel dann von dort herunterladen. OPENPGPKEY packt den kompletten Schlüssel ins DNS. Vorteil: Ein einziger DNS-Lookup genügt, kein zusätzlicher HTTP-Request nötig. Nachteil: Große DNS-Antworten, die bei UDP-Transport fragmentiert werden können, aber mit passender EDNS-Konfiguration kein Problem.\n\nSiehe auch: GPG-Schlüssel per PKA im DNS, GPG: E-Mails signieren und verschlüsseln mit GnuPG, Der sichere GPG-Schlüssel\n\nFragen? Einfach melden.",
"title": "OPENPGPKEY: GPG-Schlüssel direkt im DNS veröffentlichen"
}