DNSSECのしくみ

DNSSECのしくみ

DNSSECのしくみは一言で言えば、

 「応答を受け取ったサーバーが、その情報が本当に正しいものかを
  確かめて、情報の信頼性を向上させるしくみ」

です。

DNSサーバーから返信された情報が正しいかどうかを検証できれば、
「DNSキャッシュポイズニング」を防ぐことができます。

そのためにDNSSECでは、「公開鍵暗号」「メッセージダイジェスト」
「電子署名」という3つのセキュリティ技術を使っています。

 

公開鍵暗号

公開鍵暗号とは、一組の公開鍵とプライベーと鍵を使って、
暗号化と複合を処理する手法です。

公開鍵はその名のとおり公開が可能で、プライベート鍵は
本人のみが持って秘密にしておく鍵です。
DNSSECでは、公開鍵暗号のアルゴリズムとして「RSA」を利用しています。

 

メッセージダイジェスト

メッセージダイジェストとは、一方向のハッシュ関数を使って、
任意の長さのメッセージを固定の長さの文字列に変換したものをいいます。

当然、元のメッセージが変われば、メッセージダイジェストも
変わることになりますので、変更の有無をチェックすることで、
改ざんを見分けることが可能です。

変換した文字列から、もとの文字列に変換することは
ほぼ不可能と言われています。
DNSSECでは、メッセージダイジェストのアルゴリズムとして、
「SHA-1」と「SHA-256」を利用しています。

 

電子署名

電子署名とは、先ほど説明した「公開鍵暗号」と「メッセージダイジェスト」
を使って、メッセージのハッシュ値をプライベート鍵で暗号化したものを
いいます。
DNSSECでは、電子署名のアルゴリズムとして、「RSA」を利用しています。

DNSSECを使った正当性の検証

DNSSECの応答には、この「公開鍵暗号」「メッセージダイジェスト」
「電子署名」を使ってDNSキャッシュサーバー側で、
情報の正当性を検証できる仕組みを付加しています。

◯通常のDNS

通常のDNS

 

◯DNSSEC

DNSSEC

 

電子署名を使って、情報を送りつけるDNSサーバー側で作成したハッシュ値と、
応答を受け取るDNSキャッシュサーバー側で求めたハッシュ値を照合し、
同じであれば正しい応答だと判断しています。

 

DNSSECの動作1

 

DNSSECの動作2

 

DNSキャッシュサーバーがDNSサーバーにIPアドレスの問い合わせをすると、
DNSサーバーは電子署名付きのIPアドレスを返信します。

応答を受け取ったDNSキャッシュサーバーは、予め登録しておいた電子署名と
一致するかをチェックし、正しい場合のみユーザーにIPアドレスの情報を
送信します。

このように、DNSSECを利用するには、双方で電子署名を使う必要があるため、
応答するDNSサーバー側はもちろん、DNSキャッシュサーバー側も
DNSSECに対応しておかなければいけません。

またDNSSECは、DNSの応答が正しいかどうかを検証する手法で、
DNSデータを暗号化するものではありません。

関連記事