2016-04-08 19 views
1

hereからダウンロードしたトラストアンカー(Kjqmt7v.crt)に対してルートキー署名鍵(KSK)を検証しようとしています。私はNet::DNSモジュールを使用してルートKSKを取得しています。ルートDNSトラストアンカーを確認するにはどうすればよいですか?

私は現在、両方が同じであることを確認する方法について非常に混乱しています。 .crtファイルをKeysetオブジェクトに変換しようとしましたが、エラーが発生しています。

これは私のコードです。

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

これは私が開始するにはどのようには考えているように私は、非常に混乱し、任意の適切なコードを提供することができないのですエラー

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

です。正しい方向に私を指差しておくと非常に役に立ちます。

ルートDNSサーバーから取得しているKSKに対する信頼アンカーを確認する方法が必要です。それ以外の方法があれば更新してください。

+0

質問を編集して、crtファイルをキーセットオブジェクトに変換するために書いたコードとそれが示したエラーを含めてください。 – simbabque

+0

@simbabque私は自分の質問を編集しました。さらに必要なものがあれば更新してください。 – shivams

答えて

1

あなたはIANAが提供するファイルに何が入っているのか誤解しているようです。公開鍵自体を除いて、実際にはDNSSECデータではありません。たとえば、Kjqmt7v.crtファイルは、DER形式のX.509証明書です(したがって、Net::DNS::Keysetがそれに遭遇するのは不思議ではありません)。たとえば、openssl x509コマンドを使って見ると、そのDNフィールドには、ルートKSKのDSレコードのテキスト表現が含まれていることがわかります。したがって、その証明書を確認すると、DSが本物であることがわかります。その証明書を使用してDNSKEYを検証することができます。

同じURLで利用できる、おそらく大部分の人にとって使いやすい別の代替手段は、分離されたPGP署名を持つXML形式のKSKのDSです。署名を検証し、XMLファイル内のデータを使用して、お気に入りのプログラミング言語で適切なDSレコードを作成し、それを使用してKSK DNSKEYレコードを検証することができます。

+0

私はKSK DNSKEYレコードからDSを作成し、DS-> digestをXMLファイルにあるダイジェストにマッチさせました。これは大丈夫ですか? – shivams

+0

ダイジェストタイプとアルゴリズムも実際にチェックするべきですが、基本的にはyesです。 –

+0

私もそれらをチェックします。あなたの説明をありがとう。 – shivams

関連する問題