RFC 3110 – RSA/SHA-1 SIGs and RSA KEYs in the Domain Name System (DNS)

StatusProposed Standard
VeröffentlichtMai 2001
ErsetztRFC 2537
Volltextrfc-editor.org/rfc/rfc3110

RFC 3110 spezifiziert die Verwendung von RSA/SHA1-Signaturen und RSA-Schlüsseln im Domain Name System (DNS) als Teil der DNSSEC-Erweiterungen. Es ersetzt die veraltete RFC 2537, die noch RSA/MD5-Signaturen verwendete, da MD5 als kryptografisch schwächer gilt. Für RSA-KEY-Ressourceneinträge wird die Algorithmusnummer 5 festgelegt. Die öffentlichen RSA-Schlüssel werden mit Exponenten (1–255 Byte Länge) und Modulus (maximal 4096 Bit) im RDATA-Teil der KEY-RRs kodiert.

Für RSA/SHA1-SIG-Ressourceneinträge berechnet sich die Signatur aus dem SHA1-Hash der signierten Daten, der mit einem PKCS1-konformen ASN.1-Präfix sowie Padding-Bytes (01, FF*, 00) versehen und mit dem privaten Schlüssel exponentiiert wird. Der öffentliche Exponent sollte klein gewählt werden, etwa 3 für reine Authentifizierung oder 65537 für mögliche andere Anwendungen. Die Signaturlänge ist auf 512–4096 Bit begrenzt.

Historisch stellte RFC 3110 einen wichtigen Schritt zur Stärkung der DNS-Sicherheit dar, indem es den Umstieg vom unsicheren MD5 auf das robustere SHA1-Hash-Verfahren vollzog. Es ist ein zentraler Bestandteil von DNSSEC und definiert bis heute die verbindliche Implementierung von RSA-basierten Signaturen im DNS. Die Nutzung von RSA/SHA1 ist für DNSSEC verpflichtend, während RSA/MD5 nicht mehr empfohlen wird.