YOKOHEI.COM

YOKOHEI.COM

›DNSSEC 概要と動作

DNSSEC 概要と動作

  • DNSSEC intro
  • AD, CD, DO bit
  • DNSSEC 検証

リソースレコード

  • DNSSEC RRs
  • NSEC and NSEC3

AD, CD, DO bit

AD bit

Authoritative Name Servers

3.1.6. The AD and CD Bits in an Authoritative Response
https://tools.ietf.org/html/rfc4035#section-3.1.6

AD bit と CD bit は、リゾルバと Recursive Name Servers の間での主に利用されるので、基本的に権威サーバは関係ないことが多い。
security-aware name server は、 Answer セクションと Authority セクションのすべての RRsets が保証できるものでない限り AD bit は立ててはならない。(MUST NOT)
ローカルのポリシーとして、権威のあるゾーンからそれ移行の検証を無効として扱う場合がある。(MAY)
しかし、セキュアであることが保証されており、明示的にそのような設定としてい無い限り、上のような操作は行ってはならない。(MUST NOT)

Recursive Name Servers

3.2.3. The AD Bit
https://tools.ietf.org/html/rfc4035#section-3.2.3

security-aware な recursive name server は Answer セクションと Authority セクションのすべての RRsets が保証できるものでない限り AD bit は立ててはならない。(MUST NOT)
またネームサーバは、リゾルバ側で Answer セクションと Authority セクションの関連する否定応答のすべての RRs が保証できる場合に限り、ADビットを設定すべきである。(SHOULD)
リゾルバは https://tools.ietf.org/html/rfc4035#section-5 に書かれた内容で RRs が保証できるものか検証しなければならない。(MUST)

Stub Resolvers

4.9.3. Handling of the AD Bit
https://tools.ietf.org/html/rfc4035#section-4.9.3

検証を行わない Stub は、レスポンスに AD bit が入っていた場合にリゾルバがそれを検証したとして扱う場合がある。(MAY)

AD Bit on Queries and Replies

On Queries

5.7. Setting the AD Bit on Queries
https://tools.ietf.org/html/rfc6840#section-5.7

リクエスタが AD bit の結果について理解可能で興味がある場合に、それを示す証としてクエリに AD がセットされる。
これにより、 DO bit を介して要求される DNSSEC のデータなしに AD bit の内容を理解していることを示せる。

On Replies

5.8. Setting the AD Bit on Replies
https://tools.ietf.org/html/rfc6840#section-5.8

レガシーな Stub や AD bit を無視するようなミドルボックスに対応するために、検証を行うリゾルバは https://tools.ietf.org/html/rfc4035#section-3.2.3 (具体的には上に書いた「Recursive Name Servers」のもの) と、リクエストに AD か DO bit のどちらかが含まれているときにのみ AD bit をセットすべきである。(SHOULD)

CD bit

Authoritative Name Servers

3.1.6. The AD and CD Bits in an Authoritative Response
https://tools.ietf.org/html/rfc4035#section-3.1.6

CD bit が入っていなくても、ネームサーバはクエリの処理中には署名検証を行わない。
ネームサーバは権威ある応答を生成する際に CD bit をクリアすべきである。(SHOULD)

Recursive Name Servers

3.2.2. The CD Bit
https://tools.ietf.org/html/rfc4035#section-3.2.2

CD bit は、 security-aware なリゾルバが署名検証を無効化して security-aware なネームサーバから応答を受け取るために存在している。
ネームサーバは、クエリに CD ビットが入っていた場合はそれをコピーしてレスポンスにも含めないといけない。(MUST)
security-aware な recursive name server は、リゾルバが応答データを検証する必要があるかを知るために、 CD bit の状態をと共にリゾルバに返さないとならない。(MUST)

もし CD bit がセットされれば、それをセットしたリゾリバはローカルポリシーの要件がどのような認証あれ実行できることを示す。 つまり、リゾルバは返される RRset に対して認証動作を実行する必要がない。
CD bit がセットされる時、可能であれば recursive name server はリゾルバに対して、ネームサーバのローカルポリシーではリジェクトされるようなレコードであっても応答を返すべきである。(SHOULD)
CD bit をセットすることにより、それをセットしたリゾルバは認証の実行について責任を持っており recursive name server はそれを妨げるべきでないことを示す。

Stub Resolvers

4.9.2. Handling of the CD Bit
https://tools.ietf.org/html/rfc4035#section-4.9.2

検証を行わない Stub は、アプリケーションレイヤーからの要求や、事前定義、または security-aware で代わりに検証を行うよなネームサーバに依存していない限り、 CD bit は立てるべきではない。(SHOULD NOT)
検証を行う Stub は CD bit を立てるべきである。(SHOULD)
なぜなら、 security-aware なネームサーバがローカルポリシーに従って応答した場合に、それを受け取れない可能性がある。

思想としては、リゾルバ側のチェックに依存せず、クライアント自身で検証できるのであれば生のデータを提供したい、ということらしい。

Always Set the CD Bit on Queries

5.9. Always Set the CD Bit on Queries
https://tools.ietf.org/html/rfc6840#section-5.9

先述の RFC 4035 をより詳細にしたもの。
検証を行うリゾルバは upstream query に対して常に CD bit を立てるべきである。(SHOULD)
これは incoming query にて CD bit が立っているかどうかや、 QNAME に対するまたは上位のものに対してトラストアンカーがあるか否かなどに依存しない。

RFC 4035 ではキャッシュされたレスポンスに CD bit がセットされていない場合について曖昧だった。
このケースはリゾルバが upstream query に対して CD bit をセットしないような設定のときに起こりうる。
この場合、新しいクエリは必要なく、キャッシュは既存のクエリの CD bit の状態についても追従する必要もない。
upstream query にて DNSSEC 検証が失敗し、 ServFail がキャッシュされたときにだけ問題となるが、その場合は CD bit を立てて新しいクエリが必要となる。

DO bit

これは EDNS による拡張フラグ。

Authoritative Name Servers

なし。

Recursive Name Servers

3.2.1. The DO Bit
https://tools.ietf.org/html/rfc4035#section-3.2.1

security-aware なリゾルバは、ネームサーバにて DO bit がセットされているか否かに関わらず DO bit をセットしなければならない。(MUST) initiating クエリにて DO がセットされていない場合は、ネームサーバは DNSSEC RRs を除外してレスポンスしなくてはならない。(MUST)
逆に、明示的にリクエストがあれば除外してはならない。(MUST NOT)

Stub Resolvers

4.9.1. Handling of the DO Bit
https://tools.ietf.org/html/rfc4035#section-4.9.1

検証を行わない security-aware な Stub は DNSSEC RRs を security-aware なネームサーバやアプリケーションなどから受け取る場合がある。(MAY)
検証を行わない security-aware な Stub は、 DNESSEC RRs を受け取るために DO をセットすることがある。

検証を行う security-aware な Stub は、 DO をセットしなくてはならない。(MUST)
なぜなら検証のために DNSSEC RRs が必要だからである。

Setting the DO Bit on Replies

3 Protocol Changes
https://tools.ietf.org/html/rfc3225#section-3

5.6. Setting the DO Bit on Replies
https://tools.ietf.org/html/rfc6840#section-5.6

DO bit を立てることで、リゾルバが DNSSEC RRsets を受け付けることができることを示す。
DO bit がクリアされることで、リゾルバが DNSSEC RRsets を受け付ける準備ができていないことを示し、それらの RRs は返してはならない。(MUST NOT)

リクエストの DO bit はレスポンスの際にコピーされねばならない。(MUST) - RFC 3225
しかし、これを無視する実装と相互運用のため、リゾルバはレスポンスの DO を無視せねばならない。(MUST) - RFC 6840

← DNSSEC introDNSSEC 検証 →
▼ Codes ▼
LeetCodeGitHub
▼ Profile ▼
LinkedInFlickr
▼ Logo made with DesignEvo ▼
DesignEvo
Copyright © 2020 Kohei Yoshida