{
  "$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"
}