Network Working Group                                          A. Hubert
Request for Comments: 5452            Netherlabs Computer Consulting BV.
Updates: 2181                                                R. van Mook
Category: Standards Track                                        Equinix
                                                            January 2009
     Measures for Making DNS More Resilient against Forged Answers

Status of This Memo


This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

この文書は、インターネットコミュニティのためのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD 1)の最新版を参照してください。このメモの配布は無制限です。

Copyright Notice


Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(C)2009 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents ( license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.

この文書では、BCP 78と、この文書の発行日に有効なIETFドキュメント(ライセンス情報)に関連IETFトラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。



The current Internet climate poses serious threats to the Domain Name System. In the interim period before the DNS protocol can be secured more fully, measures can already be taken to harden the DNS to make 'spoofing' a recursing nameserver many orders of magnitude harder.

現在のインターネット環境は、ドメインネームシステムに深刻な脅威をもたらします。 DNSプロトコルは、より完全に固定することができる前中間連結会計期間では、対策がすでに何桁は難しい「なりすまし」再帰ネームサーバを作るためにDNSのセキュリティを強化するために撮影することができます。

Even a cryptographically secured DNS benefits from having the ability to discard bogus responses quickly, as this potentially saves large amounts of computation.


By describing certain behavior that has previously not been standardized, this document sets out how to make the DNS more resilient against accepting incorrect responses. This document updates RFC 2181.

以前に標準化されていない特定の動作を記述することで、この文書は間違った応答を受け入れるに対するDNSがより弾力作る方法を設定します。この文書は、RFC 2181に更新します。

Table of Contents


   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Requirements and Definitions . . . . . . . . . . . . . . . . .  4
     2.1.  Definitions  . . . . . . . . . . . . . . . . . . . . . . .  4
     2.2.  Key Words  . . . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Description of DNS Spoofing  . . . . . . . . . . . . . . . . .  5
   4.  Detailed Description of Spoofing Scenarios . . . . . . . . . .  6
     4.1.  Forcing a Query  . . . . . . . . . . . . . . . . . . . . .  6
     4.2.  Matching the Question Section  . . . . . . . . . . . . . .  7
     4.3.  Matching the ID Field  . . . . . . . . . . . . . . . . . .  7
     4.4.  Matching the Source Address of the Authentic Response  . .  7
     4.5.  Matching the Destination Address and Port of the
           Authentic Response . . . . . . . . . . . . . . . . . . . .  8
     4.6.  Have the Response Arrive before the Authentic Response . .  8
   5.  Birthday Attacks . . . . . . . . . . . . . . . . . . . . . . .  9
   6.  Accepting Only In-Domain Records . . . . . . . . . . . . . . .  9
   7.  Combined Difficulty  . . . . . . . . . . . . . . . . . . . . . 10
     7.1.  Symbols Used in Calculation  . . . . . . . . . . . . . . . 10
     7.2.  Calculation  . . . . . . . . . . . . . . . . . . . . . . . 11
   8.  Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     8.1.  Repetitive Spoofing Attempts for a Single Domain Name  . . 13
   9.  Forgery Countermeasures  . . . . . . . . . . . . . . . . . . . 13
     9.1.  Query Matching Rules . . . . . . . . . . . . . . . . . . . 13
     9.2.  Extending the Q-ID Space by Using Ports and Addresses  . . 14
       9.2.1.  Justification and Discussion . . . . . . . . . . . . . 14
     9.3.  Spoof Detection and Countermeasure . . . . . . . . . . . . 15
   10. Security Considerations  . . . . . . . . . . . . . . . . . . . 15
   11. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 16
   12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
     12.1. Normative References . . . . . . . . . . . . . . . . . . . 16
     12.2. Informative References . . . . . . . . . . . . . . . . . . 17
1. Introduction
1. はじめに

This document describes several common problems in DNS implementations, which, although previously recognized, remain largely unsolved. Besides briefly recapping these problems, this document contains rules that, if implemented, make complying resolvers vastly more resistant to the attacks described. The goal is to make the existing DNS as secure as possible within the current protocol boundaries.


The words below are aimed at authors of resolvers: it is up to operators to decide which nameserver implementation to use, or which options to enable. Operational constraints may override the security concerns described below. However, implementations are expected to allow an operator to enable functionality described in this document.


Almost every transaction on the Internet involves the Domain Name System, which is described in [RFC1034], [RFC1035], and beyond.


Additionally, it has recently become possible to acquire Secure Socket Layer/Transport Layer Security (SSL/TLS) certificates with no other confirmation of identity than the ability to respond to a verification email sent via SMTP ([RFC5321]) -- which generally uses DNS for its routing.

一般的に使用されます - さらに、それは最近、SMTPを介して送信確認メールに応答する能力([RFC5321])よりも、アイデンティティの無い他の確認とのSecure Socket Layer /トランスポート層セキュリティ(SSL / TLS)証明書を取得することが可能になってきましたそのルーティングのためのDNS。

In other words, any party that (temporarily) controls the Domain Name System is in a position to reroute most kinds of Internet transactions, including the verification steps in acquiring an SSL/ TLS certificate for a domain. This in turn means that even transactions protected by SSL/TLS could be diverted.

言い換えれば、(一時的に)ドメインネームシステムを制御当事者は、ドメインのSSL / TLS証明書を取得する際の検証手順を含むインターネット取引のほとんどの種類を、再ルーティングする立場にあります。これは、順番にSSL / TLSで保護しても取引が流用できることを意味しています。

It is entirely conceivable that such rerouted traffic could be used to the disadvantage of Internet users.


These and other developments have made the security and trustworthiness of DNS of renewed importance. Although the DNS community is working hard on finalizing and implementing a cryptographically enhanced DNS protocol, steps should be taken to make sure that the existing use of DNS is as secure as possible within the bounds of the relevant standards.

これらおよび他の発展は新たな重要性のDNSのセキュリティと信頼性を作ってきました。 DNSコミュニティは、暗号強化DNSプロトコルを最終決定と実施に努力しているが、ステップは、DNSの既存の使用は、関連する規格の範囲内で可能な限り安全であることを確認するために取られるべきです。

It should be noted that the most commonly used resolvers currently do not perform as well as possible in this respect, making this document of urgent importance.


A thorough analysis of risks facing DNS can be found in [RFC3833].


This document expands on some of the risks mentioned in RFC 3833, especially those outlined in the sections on "ID Guessing and Query Prediction" and "Name Chaining". Furthermore, it emphasizes a number of existing rules and guidelines embodied in the relevant DNS protocol specifications. The following also specifies new requirements to make sure the Domain Name System can be relied upon until a more secure protocol has been standardized and deployed.

この文書は、RFC 3833に記載されたリスクの一部、「ID推測や問合せ予測」と「名前の連鎖」のセクションで概説特に上で展開します。さらに、それは、関連するDNSプロトコル仕様で具現既存のルールおよびガイドラインの数を強調する。以下は、よりセキュアなプロトコルが標準化され、展開されるまでドメインネームシステムが頼ることができることを確認するために新たな要件を指定します。

It should be noted that even when all measures suggested below are implemented, protocol users are not protected against third parties with the ability to observe, modify, or inject packets in the traffic of a resolver.


For protocol extensions that offer protection against these scenarios, see [RFC4033] and beyond.


2. Requirements and Definitions
2.1. Definitions
2.1. 定義

This document uses the following definitions:


Client: typically a 'stub-resolver' on an end-user's computer.


Resolver: a nameserver performing recursive service for clients, also known as a caching server, or a full service resolver ([RFC1123], Section


Stub resolver: a very limited resolver on a client computer, that leaves the recursing work to a full resolver.


Query: a question sent out by a resolver, typically in a UDP packet


Response: the answer sent back by an authoritative nameserver, typically in a UDP packet.


Third party: any entity other than the resolver or the intended recipient of a question. The third party may have access to an arbitrary authoritative nameserver, but has no access to packets transmitted by the resolver or authoritative server.


Attacker: malicious third party.


Spoof: the activity of attempting to subvert the DNS process by getting a chosen answer accepted.


Authentic response: the correct answer that comes from the right authoritative server.


Target domain name: domain for which the attacker wishes to spoof in an answer


Fake data: response chosen by the attacker.


2.2. Key Words
2.2. キーワード

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

この文書のキーワード "MUST"、 "MUST NOT"、 "REQUIRED"、、、、 "べきではない" "べきである" "ないもの" "ものとし"、 "推奨"、 "MAY"、および "OPTIONAL" はあります[RFC2119]に記載されているように解釈されます。

3. Description of DNS Spoofing

When certain steps are taken, it is feasible to "spoof" the current deployed majority of resolvers with carefully crafted and timed DNS packets. Once spoofed, a caching server will repeat the data it wrongfully accepted, and make its clients contact the wrong, and possibly malicious, servers.


To understand how this process works it is important to know what makes a resolver accept a response.


The following sentence in Section 5.3.3 of [RFC1034] presaged the present problem:


The resolver should be highly paranoid in its parsing of responses. It should also check that the response matches the query it sent using the ID field in the response.


DNS data is to be accepted by a resolver if and only if:


1. The question section of the reply packet is equivalent to that of a question packet currently waiting for a response.


2. The ID field of the reply packet matches that of the question packet.


3. The response comes from the same network address to which the question was sent.


4. The response comes in on the same network address, including port number, from which the question was sent.


In general, the first response matching these four conditions is accepted.


If a third party succeeds in meeting the four conditions before the response from the authentic nameserver does so, it is in a position to feed a resolver fabricated data. When it does so, we dub it an "attacker", attempting to spoof in fake data.


All conditions mentioned above can theoretically be met by a third party, with the difficulty being a function of the resolver implementation and zone configuration.


4. Detailed Description of Spoofing Scenarios

The previous paragraph discussed a number of requirements an attacker must match in order to spoof in manipulated (or fake) data. This section discusses the relative difficulties and how implementation-defined choices impact the amount of work an attacker has to perform to meet said difficulties.


Some more details can be found in Section 2.2 of [RFC3833].


4.1. Forcing a Query
4.1. クエリの強制

Formally, there is no need for a nameserver to perform service except for its operator, its customers, or more generally its users. Recently, open recursing nameservers have been used to amplify denial-of-service attacks.


Providing full service enables the third party to send the target resolver a query for the domain name it intends to spoof. On receiving this query, and not finding the answer in its cache, the resolver will transmit queries to relevant authoritative nameservers. This opens up a window of opportunity for getting fake answer data accepted.


Queries may however be forced indirectly, for example, by inducing a mail server to perform DNS lookups.


Some operators restrict access by not recursing for unauthorized IP addresses, but only respond with data from the cache. This makes spoofing harder for a third party as it cannot then force the exact moment a question will be asked. It is still possible however to determine a time range when this will happen, because nameservers helpfully publish the decreasing time to live (TTL) of entries in the cache, which indicate from which absolute time onwards a new query could be sent to refresh the expired entry.


The time to live of the target domain name's RRSets determines how often a window of opportunity is available, which implies that a short TTL makes spoofing far more viable.


Note that the attacker might very well have authorized access to the target resolver by virtue of being a customer or employee of its operator. In addition, access may be enabled through the use of reflectors as outlined in [RFC5358].

攻撃者は非常によく、そのオペレータの顧客や従業員であることのおかげで、目標リゾルバへのアクセスを許可している場合があります。 [RFC5358]に概説するように加えて、アクセスは、反射器の使用を介して有効にすることができます。

4.2. Matching the Question Section
4.2. 質問セクションをマッチング

DNS packets, both queries and responses, contain a question section. Incoming responses should be verified to have a question section that is equivalent to that of the outgoing query.


4.3. Matching the ID Field
4.3. IDフィールドをマッチング

The DNS ID field is 16 bits wide, meaning that if full use is made of all these bits, and if their contents are truly random, it will require on average 32768 attempts to guess. Anecdotal evidence suggests there are implementations utilizing only 14 bits, meaning on average 8192 attempts will suffice.


Additionally, if the target nameserver can be forced into having multiple identical queries outstanding, the "Birthday Attack" phenomenon means that any fake data sent by the attacker is matched against multiple outstanding queries, significantly raising the chance of success. Further details in Section 5.


4.4. Matching the Source Address of the Authentic Response
4.4. 本物のレスポンスの送信元アドレスをマッチング

It should be noted that meeting this condition entails being able to transmit packets on behalf of the address of the authoritative nameserver. While two Best Current Practice documents ([RFC2827] and [RFC3013] specifically) direct Internet access providers to prevent their customers from assuming IP addresses that are not assigned to them, these recommendations are not universally (nor even widely) implemented.

この条件を満たすことが権限ネームサーバのアドレスに代わってパケットを送信することができるということを伴うことに留意すべきです。 2つの最も良い現在の練習のドキュメント([RFC2827]と[RFC3013]特異的に)直接インターネットアクセスプロバイダーは、それらに割り当てられていないIPアドレスを仮定してから顧客を防ぐために、一方で、これらの提言は(もさえ広く)が実装され普遍的ではありません。

Many zones have two or three authoritative nameservers, which make matching the source address of the authentic response very likely with even a naive choice having a double digit success rate.


Most recursing nameservers store relative performance indications of authoritative nameservers, which may make it easier to predict which nameserver would originally be queried -- the one most likely to respond the quickest.

最速応答する可能性が最も高いものを - ほとんどの再帰ネームサーバは、それが簡単に元々照会されるであろうネームサーバに予測することがあり権限ネームサーバの相対的なパフォーマンス指標を、保存してください。

Generally, this condition requires at most two or three attempts before it is matched.


4.5. Matching the Destination Address and Port of the Authentic Response

4.5. 本格的な応答の宛先アドレスとポートをマッチング

Note that the destination address of the authentic response is the source address of the original query.


The actual address of a recursing nameserver is generally known; the port used for asking questions is harder to determine. Most current resolvers pick an arbitrary port at startup (possibly at random) and use this for all outgoing queries. In quite a number of cases, the source port of outgoing questions is fixed at the traditional DNS assigned server port number of 53.


If the source port of the original query is random, but static, any authoritative nameserver under observation by the attacker can be used to determine this port. This means that matching this conditions often requires no guess work.


If multiple ports are used for sending queries, this enlarges the effective ID space by a factor equal to the number of ports used.


Less common resolving servers choose a random port per outgoing query. If this strategy is followed, this port number can be regarded as an additional ID field, again containing up to 16 bits.


If the maximum ports range is utilized, on average, around 32256 source ports would have to be tried before matching the source port of the original query, as ports below 1024 may be unavailable for use, leaving 64512 options.


It is in general safe for DNS to use ports in the range 1024-49152 even though some of these ports are allocated to other protocols. DNS resolvers will not be able to use any ports that are already in use. If a DNS resolver uses a port, it will release that port after a short time and migrate to a different port. Only in the case of a high-volume resolver is it possible that an application wanting a particular UDP port suffers a long term block-out.

DNSは、これらのポートのいくつかは、他のプロトコルに割り当てられているにもかかわらず、範囲1024から49152までのポートを使用することが一般的に安全です。 DNSリゾルバは、すでに使用されている任意のポートを使用することはできません。 DNSリゾルバは、ポートを使用している場合、それは短い時間の後、そのポートを解放し、別のポートに移行されます。唯一大量レゾルバの場合には、特定のUDPポートを望むアプリケーションは、長期ブロックアウトを被る可能性があります。

It should be noted that a firewall will not prevent the matching of this address, as it will accept answers that (appear to) come from the correct address, offering no additional security.


4.6. Have the Response Arrive before the Authentic Response
4.6. レスポンスは、本物の応答前に到着しています

Once any packet has matched the previous four conditions (plus possible additional conditions), no further responses are generally accepted.


This means that the third party has a limited time in which to inject its spoofed response. For calculations, we will assume a window in order of at most 100 ms (depending on the network distance to the authentic authoritative nameserver).


This time period can be far longer if the authentic authoritative nameservers are (briefly) overloaded by queries, perhaps by the attacker.


5. Birthday Attacks

The so-called "birthday paradox" implies that a group of 23 people suffices to have a more than even chance of having two or more members of the group share a birthday.


An attacker can benefit from this exact phenomenon if it can force the target resolver to have multiple equivalent (identical QNAME, QTYPE, and QCLASS) outstanding queries at any one time to the same authoritative server.


Any packet the attacker sends then has a much higher chance of being accepted because it only has to match any of the outstanding queries for that single domain. Compared to the birthday analogy above, of the group composed of queries and responses, the chance of having any of these share an ID rises quickly.


As long as small numbers of queries are sent out, the chance of successfully spoofing a response rises linearly with the number of outstanding queries for the exact domain and nameserver.


For larger numbers, this effect is less pronounced.


More details are available in US-CERT [vu-457875].

詳細は、US-CERT [VU-457875]でご利用いただけます。

6. Accepting Only In-Domain Records

Responses from authoritative nameservers often contain information that is not part of the zone for which we deem it authoritative. As an example, a query for the MX record of a domain might get as its responses a mail exchanger in another domain, and additionally the IP address of this mail exchanger.


If accepted uncritically, the resolver stands the chance of accepting data from an untrusted source. Care must be taken to only accept data if it is known that the originator is authoritative for the QNAME or a parent of the QNAME.


One very simple way to achieve this is to only accept data if it is part of the domain for which the query was intended.


7. Combined Difficulty

Given a known or static destination port, matching ID field, the source and destination address requires on average in the order of 2 * 2^15 = 65000 packets, assuming a zone has 2 authoritative nameservers.

IDフィールドと一致する既知のまたは静的宛先ポート、所与、送信元および宛先アドレスは、ゾーン2つの権威あるネームサーバを有していると仮定すると、2×2 ^ 15 = 65000パケットのために平均して必要とします。

If the window of opportunity available is around 100 ms, as assumed above, an attacker would need to be able to briefly transmit 650000 packets/s to have a 50% chance to get spoofed data accepted on the first attempt.


A realistic minimal DNS response consists of around 80 bytes, including IP headers, making the packet rate above correspond to a respectable burst of 416 Mbit/s.


As of mid-2006, this kind of bandwidth was not common but not scarce either, especially among those in a position to control many servers.


These numbers change when a window of a full second is assumed, possibly because the arrival of the authentic response can be prevented by overloading the bona fide authoritative hosts with decoy queries. This reduces the needed bandwidth to 42 Mbit/s.

完全な第二の窓を想定した場合、これらの数字は、本物の応答の到着がデコイクエリと善意の権威ホストをオーバーロードすることによって防止することができる可能性があるため、変更します。これは、42ビット/ sに必要な帯域幅を削減します。

If, in addition, the attacker is granted more than a single chance and allowed up to 60 minutes of work on a domain with a time to live of 300 seconds, a meager 4 Mbit/s suffices for a 50% chance at getting fake data accepted. Once equipped with a longer time, matching condition 1 mentioned above is straightforward -- any popular domain will have been queried a number of times within this hour, and given the short TTL, this would lead to queries to authoritative nameservers, opening windows of opportunity.

加えて、攻撃者は単一のチャンス以上に付与され、300秒の生存時間を持つドメイン上の仕事の60分まで許容、場合、わずかな4Mビット/ sが偽のデータを得ることで、50%の確率で十分受け入れました。一度上記のマッチング条件1は簡単です、長い時間を装備 - 、これは機会の窓を開け、権限ネームサーバへのクエリにつながるあらゆる人気のドメインが、この時間内回数を照会し、短いTTLを与えられているでしょう。

7.1. Symbols Used in Calculation
7.1. 計算で使用する記号

Assume the following symbols are used:


I: Number distinct IDs available (maximum 65536)


P: Number of ports used (maximum around 64000 as ports under 1024 are not always available, but often 1)


N: Number of authoritative nameservers for a domain (averages around 2.5)


F: Number of "fake" packets sent by the attacker


R: Number of packets sent per second by the attacker


W: Window of opportunity, in seconds. Bounded by the response time of the authoritative servers (often 0.1s)


D: Average number of identical outstanding queries of a resolver (typically 1, see Section 5)


A: Number of attempts, one for each window of opportunity


7.2. Calculation
7.2. 計算

The probability of spoofing a resolver is equal to the amount of fake packets that arrive within the window of opportunity, divided by the size of the problem space.


When the resolver has 'D' multiple identical outstanding queries, each fake packet has a proportionally higher chance of matching any of these queries. This assumption only holds for small values of 'D'.


In symbols, if the probability of being spoofed is denoted as P_s:


              D * F
   P_s =    ---------
            N * P * I

It is more useful to reason not in terms of aggregate packets but to convert to packet rate, which can easily be converted to bandwidth if needed.


If the window of opportunity length is 'W' and the attacker can send 'R' packets per second, the number of fake packets 'F' that are candidates to be accepted is:


                          D * R * W
   F = R * W  ->   P_s  = ---------
                          N * P * I

Finally, to calculate the combined chance 'P_cs' of spoofing over a chosen time period 'T', it should be realized that the attacker has a new window of opportunity each time the TTL 'TTL' of the target domain expires. This means that the number of attempts 'A' is equal to 'T / TTL'.

最後に、選択した期間「T」の上に組み合わせチャンスなりすましの「P_cs」を算出するために、攻撃者がターゲットドメインのTTL「TTL」は有効期限が切れるたびに、チャンスの新しいウィンドウを持っていることを理解すべきです。これは試み「A」の個数が「T / TTL」に等しいことを意味します。

To calculate the combined chance of at least one success, the following formula holds:


                                                        (T / TTL)
                         A          (       D * R * W )
   P_cs = 1 - ( 1 - P_s )    =  1 - ( 1  -  --------- )
                                    (       N * P * I )

When common numbers (as listed above) for D, W, N, P, and I are inserted, this formula reduces to:


                               (T / TTL)
              (         R    )
   P_cs = 1 - ( 1 -  ------- )
              (      1638400 )

From this formula, it can be seen that, if the nameserver implementation is unchanged, only raising the TTL offers protection. Raising N, the number of authoritative nameservers, is not feasible beyond a small number.


For the degenerate case of a zero-second TTL, a window of opportunity opens for each query sent, making the effective TTL equal to 'W' above, the response time of the authoritative server.


This last case also holds for spoofing techniques that do not rely on TTL expiry, but use repeated and changing queries.


8. Discussion

The calculations above indicate the relative ease with which DNS data can be spoofed. For example, using the formula derived earlier on an RRSet with a 3600 second TTL, an attacker sending 7000 fake response packets/s (a rate of 4.5 Mbit/s), stands a 10% chance of spoofing a record in the first 24 hours, which rises to 50% after a week.


For an RRSet with a TTL of 60 seconds, the 10% level is hit after 24 minutes, 50% after less than 3 hours, 90% after around 9 hours.


For some classes of attacks, the effective TTL is near zero, as noted above.


Note that the attacks mentioned above can be detected by watchful server operators - an unexpected incoming stream of 4.5 Mbit/s of packets might be noticed.

パケットの4.5メガビット/秒の予想外の着信ストリームは気づいたかもしれない - 上記の攻撃は気を配っサーバーオペレータによって検出することができることに注意してください。

An important assumption however in these calculations is a known or static destination port of the authentic response.


If that port number is unknown and needs to be guessed as well, the problem space expands by a factor of 64000, leading the attacker to need in excess of 285Gb/s to achieve similar success rates.

そのポート番号が不明であると同様に推測する必要がある場合は、問題空間は、同様の成功率を達成するために285Gb / sを超える必要に攻撃をリードし、64000倍に拡大します。

Such bandwidth is not generally available, nor is it expected to be so in the foreseeable future.


Note that some firewalls may need reconfiguring if they are currently set up to only allow outgoing queries from a single DNS source port.


8.1. Repetitive Spoofing Attempts for a Single Domain Name
8.1. シングルドメイン名の反復なりすましの試み

Techniques are available to use an effectively infinite number of queries to achieve a desired spoofing goal. In the math above, this reduces the effective TTL to 0.


If such techniques are employed, using the same 7000 packets/s rate mentioned above, and using 1 source port, the spoofing chance rises to 50% within 7 seconds.

そのような技術は、/ sの速度は、上述した同じ7000個のパケットを使用して、1つのソースポートを使用して、使用される場合、なりすましの可能性は7秒以内に50%まで上昇します。

If 64000 ports are used, as recommended in this document, using the same query rate, the 50% level is reached after around 116 hours.


9. Forgery Countermeasures
9.1. Query Matching Rules
9.1. クエリ照合ルール

A resolver implementation MUST match responses to all of the following attributes of the query:


o Source address against query destination address


o Destination address against query source address


o Destination port against query source port


o Query ID


o Query name


o Query class and type

O Queryクラスとタイプ

before applying DNS trustworthiness rules (see Section 5.4.1 of [RFC2181]).


A mismatch and the response MUST be considered invalid.


9.2. Extending the Q-ID Space by Using Ports and Addresses
9.2. ポートとアドレスを使用してQ-IDのスペースを拡張

Resolver implementations MUST:


o Use an unpredictable source port for outgoing queries from the range of available ports (53, or 1024 and above) that is as large as possible and practicable;


o Use multiple different source ports simultaneously in case of multiple outstanding queries;


o Use an unpredictable query ID for outgoing queries, utilizing the full range available (0-65535).


Resolvers that have multiple IP addresses SHOULD use them in an unpredictable manner for outgoing queries.


Resolver implementations SHOULD provide means to avoid usage of certain ports.


Resolvers SHOULD favor authoritative nameservers with which a trust relation has been established; stub-resolvers SHOULD be able to use Transaction Signature (TSIG) ([RFC2845]) or IPsec ([RFC4301]) when communicating with their recursive resolver.


In case a cryptographic verification of response validity is available (TSIG, SIG(0)), resolver implementations MAY waive above rules, and rely on this guarantee instead.


Proper unpredictability can be achieved by employing a high quality (pseudo-)random generator, as described in [RFC4086].


9.2.1. Justification and Discussion
9.2.1. 正当性と考察

Since an attacker can force a full DNS resolver to send queries to the attacker's own nameservers, any constant or sequential state held by such a resolver can be measured, and it must not be trivially easy to reverse engineer the resolver's internal state in a way that allows low-cost, high-accuracy prediction of future state.


A full DNS resolver with only one or a small number of upstream-facing endpoints is effectively using constants for IP source address and UDP port number, and these are very predictable by potential attackers, and must therefore be avoided.


A full DNS resolver that uses a simple increment to get its next DNS query ID is likewise very predictable and so very spoofable.


Finally, weak random number generators have been shown to expose their internal state, such that an attacker who witnesses several sequential "random" values can easily predict the next ones. A crypto-strength random number generator is one whose output cannot be predicted no matter how many successive values are witnessed.


9.3. Spoof Detection and Countermeasure
9.3. スプーフィング検出と対策

If a resolver detects that an attempt is being made to spoof it, perhaps by discovering that many packets fail the criteria as outlined above, it MAY abandon the UDP query and re-issue it over TCP. TCP, by the nature of its use of sequence numbers, is far more resilient against forgery by third parties.

リゾルバが試みは、おそらく上記で概説したように、多くのパケットが基準を満たさないことを発見することで、それを偽装するために行われていることを検出した場合、それはTCP上のUDPクエリと再発行、それを放棄することができます。 TCPは、シーケンス番号の使用の性質により、第三者による偽造に対するはるかに弾力性のあります。

10. Security Considerations

This document provides clarification of the DNS specification to decrease the probability that DNS responses can be successfully forged. Recommendations found above should be considered complementary to possible cryptographical enhancements of the domain name system, which protect against a larger class of attacks.


This document recommends the use of UDP source port number randomization to extend the effective DNS transaction ID beyond the available 16 bits.


A resolver that does not implement the recommendations outlined above can easily be forced to accept spoofed responses, which in turn are passed on to client computers -- misdirecting (user) traffic to possibly malicious entities.

上記で概説した勧告を実装していないリゾルバを簡単に順番にクライアントコンピュータに渡され、偽装された応答を、受け入れることを強制することができます - (ユーザー)トラフィックにおそらく悪質なエンティティをmisdirecting。

This document directly impacts the security of the Domain Name System, implementers are urged to follow its recommendations.


Most security considerations can be found in Sections 4 and 5, while proposed countermeasures are described in Section 9.


For brevity's sake, in lieu of repeating the security considerations references, the reader is referred to these sections.


Nothing in this document specifies specific algorithms for operators to use; it does specify algorithms implementations SHOULD or MUST support.


It should be noted that the effects of source port randomization may be dramatically reduced by NAT devices that either serialize or limit in volume the UDP source ports used by the querying resolver.


DNS recursive servers sitting behind at NAT or a statefull firewall may consume all available NAT translation entries/ports when operating under high query load. Port randomization will cause translation entries to be consumed faster than with fixed query port.


To avoid this, NAT boxes and statefull firewalls can/should purge outgoing DNS query translation entries 10-17 seconds after the last outgoing query on that mapping was sent. [RFC4787]-compliant devices need to treat UDP messages with port 53 differently than most other UDP protocols.

そのマッピング上の最後の発信クエリが送信された後にこの問題を回避するには、NATボックスやステートフルファイアウォールは発信/ DNSクエリ変換エントリ10-17秒をパージする必要がありますすることができます。 [RFC4787]準拠のデバイスは異なり、他のほとんどのUDPプロトコルよりもポート53でUDPメッセージを処理する必要があります。

To minimize the potential that port/state exhaustion attacks can be staged from the outside, it is recommended that services that generate a number of DNS queries for each connection should be rate limited. This applies in particular to email servers.


11. Acknowledgments

Source port randomization in DNS was first implemented and possibly invented by Dan J. Bernstein.


Although any mistakes remain our own, the authors gratefully acknowledge the help and contributions of: Stephane Bortzmeyer Alfred Hoenes Peter Koch Sean Leach Norbert Sendetzky Paul Vixie Florian Weimer Wouter Wijngaards Dan Wing

ステファンBortzmeyerアルフレッドHoenesピーター・コッホショーン・リーチノルベルトSendetzkyポール・ヴィクシーフロリアンWeimerさんはWouter Wijngaardsダン・ウィング:間違いは私たち自身の残っているが、著者は感謝の助けとの貢献を認めます

12. References
12.1. Normative References
12.1. 引用規格

[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987.

[RFC1034] Mockapetris、P.、 "ドメイン名 - 概念と設備"、STD 13、RFC 1034、1987年11月。

[RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, November 1987.

[RFC1035] Mockapetris、P.、 "ドメイン名 - 実装及び仕様"、STD 13、RFC 1035、1987年11月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]ブラドナーの、S.、 "要件レベルを示すためにRFCsにおける使用のためのキーワード"、BCP 14、RFC 2119、1997年3月。

[RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, July 1997.

"DNS仕様の明確化" [RFC2181]エルツ、R.とR.ブッシュ、RFC 2181、1997年7月。

[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", BCP 38, RFC 2827, May 2000.

[RFC2827]ファーガソン、P.およびD. Senie、 "ネットワーク入力フィルタリング:IP Source Address Spoofingを使うサービス攻撃の敗北拒否"、BCP 38、RFC 2827、2000年5月。

[RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B. Wellington, "Secret Key Transaction Authentication for DNS (TSIG)", RFC 2845, May 2000.

[RFC2845]いるVixie、P.、グドムンソン、O.、イーストレイク、D.、およびB.ウェリントン、 "DNSのための秘密鍵トランザクション認証(TSIG)"、RFC 2845、2000年5月。

[RFC3013] Killalea, T., "Recommended Internet Service Provider Security Services and Procedures", BCP 46, RFC 3013, November 2000.

[RFC3013] Killalea、T.、 "推奨インターネットサービスプロバイダのセキュリティサービスと手続き"、BCP 46、RFC 3013、2000年11月。

[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, March 2005.

[RFC4033]アレンズ、R.、Austeinと、R.、ラーソン、M.、マッシー、D.、およびS.ローズ、 "DNSセキュリティ序論と要件"、RFC 4033、2005年3月。

[RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, June 2005.

[RFC4086]イーストレーク、D.、シラー、J.、およびS.クロッカー、 "セキュリティのためのランダム要件"、BCP 106、RFC 4086、2005年6月。

[RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, October 2008.

[RFC5321] Klensin、J.、 "簡易メール転送プロトコル"、RFC 5321、2008年10月。

12.2. Informative References
12.2. 参考文献

[RFC1123] Braden, R., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, October 1989.

[RFC1123]ブレーデン、R.、 "インターネットホストのための要件 - 、アプリケーションとサポート"、STD 3、RFC 1123、1989年10月。

[RFC3833] Atkins, D. and R. Austein, "Threat Analysis of the Domain Name System (DNS)", RFC 3833, August 2004.

[RFC3833]アトキンス、D.とR. Austeinと、RFC 3833 "ドメインネームシステム(DNS)の脅威分析"、2004年8月。

[RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005.

[RFC4301]ケント、S.とK. Seo、 "インターネットプロトコルのためのセキュリティアーキテクチャ"、RFC 4301、2005年12月。

[RFC4787] Audet, F. and C. Jennings, "Network Address Translation (NAT) Behavioral Requirements for Unicast UDP", BCP 127, RFC 4787, January 2007.

[RFC4787] Audet、F.とC.ジェニングス、 "ネットワークアドレス変換(NAT)ユニキャストUDPのための行動の要件"、BCP 127、RFC 4787、2007年1月。

[RFC5358] Damas, J. and F. Neves, "Preventing Use of Recursive Nameservers in Reflector Attacks", BCP 140, RFC 5358, October 2008.

[RFC5358]ダマ、J.およびF.ネベス、 "反射攻撃に再帰ネームサーバの使用を防止する"、BCP 140、RFC 5358、2008年10月。

[vu-457875] United States CERT, "Various DNS service implementations generate multiple simultaneous queries for the same resource record", VU 457875, November 2002.

[VU-457875]米国CERTは、VU 457875、2002年11月の「各種DNSサービスの実装は、同じリソースレコードの複数の同時クエリを生成します」。

Authors' Addresses


Bert Hubert Netherlabs Computer Consulting BV. Braillelaan 10 Rijswijk (ZH) 2289 CM The Netherlands

バート・ヒューバートNetherlabsコンピュータコンサルティングBV。 Braillelaan 10ライスワイク(ZH)2289 CMオランダ



Remco van Mook Equinix Auke Vleerstraat 1 Enschede 7521 PE The Netherlands

レムコヴァンムックエクイニクスAuke Vleerstraat 1エンスケーデ7521 PEオランダ