Schlüssel zum DNS
Seite 2: Tags und Signaturalgorithmen
Tags und Signaturalgorithmen
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.
Darf es auch etwas automatischer sein?
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.