| Q1 | DNSSECとは何ですか? |
|---|---|
| A1 | DNSSECは、DNSサーバから受信したDNS応答が「本当に正しい」ということを受信側で検証可能にするための、DNSの拡張機能です。 |
| Q2 | 「本当に正しい」というのはどういうことですか? |
| A2 |
受信したデータについて以下の二つが確認できた場合、そのデータは「本当に正しい」と検証できます。
|
| Q3 | DNSSECではDNS応答の偽造をどのように防いでいるのですか? |
| A3 | DNSSECでは応答送信の際に公開鍵暗号を利用した署名を付加します。受信側で付加された署名を検証することによりデータの出自認証と完全性を確認でき、DNS応答の偽造を防ぐことができます。 |
| Q4 | 公開鍵暗号とは何ですか? |
| A4 |
データの暗号化と復号に異なる一対の鍵(公開鍵と秘密鍵)を用いる暗号方式をいいます。
公開鍵暗号方式では、外部に広く公開する公開鍵と作成者が秘匿する秘密鍵の2種類の鍵を利用します。公開鍵と秘密鍵は必ず一対になっており、一方の鍵で暗号化したデータは、他方の鍵でのみ復号できるようになっています(暗号化に使った鍵そのものも含め、別の鍵では復号できません)。
公開鍵暗号による暗号通信では、通信相手の公開鍵でデータを暗号化してから相手に送信します。このデータは相手の秘密鍵以外では復号できません。
そして、暗号化に使った公開鍵に対応する秘密鍵を持っているのは通信相手のみであるため、より安全な暗号通信を行うことができます(図1)。
![]() 図1:共有鍵暗号と公開鍵暗号 |
| Q5 | 署名とは何ですか? |
| A5 |
公開鍵暗号の仕組みを応用することにより、そのデータが「本当に正しい」ことを検証できるデジタル署名(以下、単に「署名」とします)を実現できます。
公開鍵暗号を用いてデータに署名する場合、送信者は自分の秘密鍵でデータを暗号化してから相手に送信(あるいは広く公開)します。このデータは送信者の公開鍵で復号できるため、誰でも元のデータに復号することができます(そのため、データの秘匿性はありません)。しかし、それ以外の鍵では復号できません。
つまり、データを暗号化したのは復号できた公開鍵に対応する秘密鍵を持っている送信者以外になく、かつデータが途中で書き換えられていない、つまり「本当に正しい」ということが証明できます(図2)。
![]() 図2:公開鍵暗号による署名 |
| Q6 | 署名の際に使われるハッシュ値とは何で、何のために使われるのですか? |
| A6 |
実際の署名検証ではデータそのものに代え、事前に決められた方法(ハッシュ関数)によりデータから計算した「ハッシュ値」と呼ばれる数値を使用します。
送信者は計算したハッシュ値を自分の秘密鍵で暗号化したもの(ハッシュ値に対する署名)を、元のデータと共に送信します。受信者は受信したデータからハッシュ値を計算し、相手の公開鍵で復号したハッシュ値と照合します。二つの値が一致した場合、受信したデータが「本当に正しい」ことを検証できます(図3)。
このように、署名対象をデータそのものから、より短い数値であるハッシュ値に変更することにより、署名検証にかかる負荷を軽減できます。
![]() 図3:ハッシュ値の照合による署名の検証 |
| Q7 | RSA暗号とは何ですか? |
| A7 | 公開鍵暗号を実現するために1977年に開発された暗号方式で、DNSSECを含む多くの分野で使われています。「RSA」という名前は、この方式を発明した3人の暗号研究者の頭文字に由来しています。 |
| Q8 | キャッシュポイズニング攻撃とは何ですか? |
| A8 | 偽のDNS応答をキャッシュDNSサーバに記憶させることにより、フィッシングや電子メールの盗み見などを図る攻撃方法をいいます 。 キャッシュポイズニング攻撃そのものは古くから知られていましたが、2008年に発表されたカミンスキー・アタックにより、攻撃のリスクが飛躍的に高まりました。 |
| Q9 | カミンスキー・アタックとは何ですか? |
| A9 | キャッシュポイズニング攻撃を高効率で成立させるための攻撃方法です。DNSプロトコル上の脆弱性に起因しており、根本的な対策としてDNSSECの導入が有効になります。 カミンスキー・アタックの詳細についてはJPRSトピックス&コラムNo.9「新たなるDNSキャッシュポイズニングの脅威」をご参照ください。 |
| Q10 | DNSSECで実現されることは何ですか? |
| A10 | DNSSECの導入により、受け取ったDNS応答が「本当に正しい」ことを受信側で検証できるようになります。そのため、前述したキャッシュポイズニング攻撃の防止に対し有効です。 |
| Q11 | DNSSECでは実現されないことは何ですか? |
| A11 | DNSSECではDNS応答の暗号化を行いません。 DNSSECはDNSに対する付加機能であり、HTTPなどのDNS以外の通信の安全性を保証するためには、IPsecやSSLなどの技術を別途用いる必要があります。 DNSSECでは、ドメイン名の見間違いや打ち間違いを狙うタイプのフィッシングには対応できません。 |
| Q12 | DNSSECとSSLの違いは何ですか? |
| A12 | DNSSECでは、相手との通信開始前に必要となる、名前解決の安全性を保証します。 これに対しSSLでは、相手との通信時の本人証明、及び通信データの暗号化を行っています。 |
| Q13 | 私は既にSSLを導入しています。DNSSECを追加導入する必要がありますか? |
| A13 | DNSSECとSSLは双方とも、暗号技術により利用者の安全性を高めるための技術です。しかしDNSSECとSSLでは保護の対象が異なっており、他方の機能を包含するものではありません。そのためSSLが導入済みであっても、DNSの名前解決の安全性を確保するためにはDNSSECを別途導入する必要があります。 |


