2016-04-08 2 views
1

J'essaie de vérifier la clé de signature de clé racine (KSK) par rapport à l'ancre de confiance (Kjqmt7v.crt) téléchargée à partir de here. Je reçois la racine KSK en utilisant le module Net::DNS.Comment puis-je vérifier une ancre de confiance DNS racine?

Je suis très confus à l'heure actuelle sur la façon de vérifier que les deux sont les mêmes. J'ai essayé de convertir le fichier .crt en objet Keyset, mais il en résulte une erreur.

Ceci est mon code.

#!/usr/bin/perl 
use strict; 
use warnings; 
use Net::DNS::Keyset; 
my $keyset = Net::DNS::Keyset->new('Kjqmt7v.crt'); 
$keyset->print; 

C'est l'erreur

We expected a match RDATA 
0��0���0 *�H�� 0K10 U 
this Should not happen 
at a.pl line 5 

Je suis très confus et donc incapable de fournir un code approprié, comme je ne sais pas comment commencer. Me pointer dans la bonne direction serait très utile.

Je veux un moyen de vérifier l'ancrage de confiance contre le KSK que je reçois des serveurs DNS racine. S'il y a un autre moyen de le faire, veuillez me le mettre à jour.

+0

Vous devriez commencer par [éditer] votre question pour inclure le code que vous avez écrit _pour convertir le fichier crt en un objet Keyset_ et l'erreur qu'il a montrée. – simbabque

+0

@simbabque J'ai modifié ma question. S'il vous plaît mettre à jour si quelque chose de plus est nécessaire. – shivams

Répondre

1

Vous semblez avoir mal compris ce que contiennent les fichiers fournis par l'IANA. Aucun d'entre eux sauf la clé publique racine elle-même est en fait des données DNSSEC. Le fichier Kjqmt7v.crt, par exemple, est un certificat X.509 au format DER (il n'est donc pas étonnant que Net::DNS::Keyset s'étouffe dessus). Si vous le regardez (avec la commande openssl x509, par exemple), vous pouvez voir que le champ DN contient la représentation textuelle d'un enregistrement DS pour la racine KSK. Donc, si vous vérifiez ce certificat, vous savez que DS est authentique, et vous pouvez l'utiliser pour vérifier le DNSKEY.

Une autre alternative disponible à la même URL, qui est probablement plus facile à utiliser pour la plupart des gens, est une DS pour le format KSK au format XML, avec une signature PGP détachée. Vérifiez la signature, utilisez les données dans le fichier XML pour créer un enregistrement DS approprié dans votre langage de programmation favori, puis vous pouvez l'utiliser pour vérifier l'enregistrement KSK DNSKEY.

+0

J'ai créé DS à partir de l'enregistrement KSK DNSKEY, puis je fais correspondre DS-> digest à digérer présent dans le fichier XML. Est-ce que c'est comme ça? – shivams

+0

Vous devriez vraiment vérifier le type de digest et l'algorithme aussi, mais fondamentalement oui. –

+0

Je vais vérifier ceux-là aussi. Merci pour votre explication. – shivams