2016-04-08 40 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

您應該首先編輯您的問題,以包含您編寫的代碼_to將crt文件轉換爲Keyset對象_以及顯示的錯誤。 – simbabque

+0

@simbabque我編輯了我的問題。如果需要更多信息,請更新。 – shivams

回答

1

您似乎誤解了IANA提供的文件中的內容。除公共根密鑰本身之外,它們都不是DNSSEC數據。例如,Kjqmt7v.crt文件是DER格式的X.509證書(所以難怪Net::DNS::Keyset扼流圈)。如果查看它(例如,使用openssl x509命令),可以看到包含在其DN字段中的是根KSK的DS記錄的文本表示。因此,如果您驗證該證書,您知道DS是真實的,並且您可以使用它來驗證DNSKEY。

對於大多數人來說,在同一個URL上可用的另一種替代方法是用於XML格式的KSK的DS,具有分離的PGP簽名。驗證簽名,使用XML文件中的數據以您喜歡的編程語言構建適當的DS記錄,然後您可以使用它來驗證KSK DNSKEY記錄。

+0

我從KSK DNSKEY記錄創建DS,然後將DS-> digest匹配到XML文件中的摘要。這樣好嗎? – shivams

+0

你應該真的檢查摘要類型和算法,但基本上是。 –

+0

我也會檢查這些。謝謝你的解釋。 – shivams

相關問題