Schlüssel zum DNS

Seite 2: Tags und Signaturalgorithmen

Inhaltsverzeichnis

Das zweite Feld der CERT-RR beinhaltet den so genannten Tag. Er ist 16 Bit lang und berechnet sich wie die in Anhang B von RFC4034 [2] beschriebenen Tags für die DNS Security Extensions. Vereinfacht gesagt ist er eine Art Quersumme über alle 16-Bit-Worte des Zertifikatsblocks. Er dient der zuverlässigeren Unterscheidung, da häufig mehrere Zertifikate für eine E-Mail-Adresse existieren.

Im dritten Feld, das 8 Bit lang ist, ist der verwendeten Signaturalgorithmus kodiert:

Wert Bezeichner Signaturalgorithmus
0 reserviert
1 RSAMD5 RSA mit MD5
2 DH Diffie-Hellman
3 DSA DSA mit SHA-1
4 ECC Elliptic Curve
5 RSASHA1 RSA und SHA-1

Die in einem Zertifikat verwendeten Algorithmen lassen sich beispielsweise mit Hilfe des openssl-Kommandos in Erfahrung bringen. Folgendes Kommando liefert die gewünschte Information für ein Zertifikat im PEM-Format:

openssl x509 -text -noout -inform pem \
-in zertifikat.pem | grep Sig.*Alg

Das letzte Feld des CERT-RR beginnt und endet mit einer runden Klammer und enthält schließlich das eigentliche Zertifikat in Base64-kodierter Form. Wenn das Zertifikat bereits im PEM-Format vorliegt, muss man lediglich die Zeilen -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- weglassen. Zur Konvertierung anderer Formate eignet sich ebenfalls das Werkzeug openssl. Die Einrückungen am Beginn einer jeden neuen Zeile sind wichtig. Sie sind durch das Konfigurations-Format von Bind vorgegeben.

Mike Schiraldi hat für VeriSign ein Perl-Skript [3] entwickelt, das die Erstellung eines Bind-Kompatiblen CERT-RRs automatisiert. Leider unterstützt es nur den Algorithmentyp RSAMD5 und verwendet vorschriftsmäßig das dritt- und vorletzten Byte des Schlüsselblocks als Tag. Entsprechende Modifikationen wären nicht schwierig, zumal eine Beispielimplementation des neuen Quersummen-Algorithmus in RFC4034 angegeben ist. Doch leider sind die rechtlichen Bedingungen zur Verwendung des Skriptes unklar.