Re: [DNSOP] draft-fujiwara-dnsop-fragment-attack-01.txt

神明達哉 <jinmei@wide.ad.jp> Fri, 01 March 2019 21:40 UTC

Return-Path: <jinmei.tatuya@gmail.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DA9B3130FB1 for <dnsop@ietfa.amsl.com>; Fri, 1 Mar 2019 13:40:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.9
X-Spam-Level:
X-Spam-Status: No, score=-0.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.018, FREEMAIL_FROM=0.001, FROM_EXCESS_BASE64=0.979, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tk55RcF7C1rM for <dnsop@ietfa.amsl.com>; Fri, 1 Mar 2019 13:40:35 -0800 (PST)
Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D5B6130F61 for <dnsop@ietf.org>; Fri, 1 Mar 2019 13:40:35 -0800 (PST)
Received: by mail-wr1-f54.google.com with SMTP id w17so27361631wrn.12 for <dnsop@ietf.org>; Fri, 01 Mar 2019 13:40:35 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3AuiRkKGhNVUOsdaK6+j8WYaErlZUWuL8oRtHSuR670=; b=X8UpLnlObvI6qeY3pR6oRKEIhKY89OmekYmQKABhyaK2M4NG2Xs2YszUwubrZiZ2ax G7m13T94cIYkCSKH4HXD3ttLe9S/zEQeFEGSYod/HVsl9VR7hVFF8pcImZfnMKes5mZc VZmLaTlyowZOQeJMyZ8EIOG5CAqafv4cfovDGXjdQY/zTDsiEG0NzLWtelcgoF4BLCB3 Ejg/AUkLY0eENr23E9cUVrBaEnd+T1kMHMCIw+dXVaaoXMnf6ICPE+iZNtIVNyA2D9ZB 0Yivt19TF7cowRmhl/axbDYVJwaB2Lww36Vbr6h0/nJMgoFuK3Z6+Yrkctau3YxY5dsy LOig==
X-Gm-Message-State: APjAAAVXovixs1U480jY3q9x6cU6NNGiawn1cAKleQoRQ+ZJ4S0cGC8q 1Gda5HYJNNTXAx+nyciBKZkAxImmF6qgt4gZXe4dsaAG
X-Google-Smtp-Source: APXvYqyW1LDXAMlwTMbhRI7Ps/7SvVNIGWuqRd79BYveRwhd6GW0wz4lARmJ3d+CRk9iI1GTPrKEz+v/qDK/QAiXWMU=
X-Received: by 2002:adf:f688:: with SMTP id v8mr4633711wrp.159.1551476433497; Fri, 01 Mar 2019 13:40:33 -0800 (PST)
MIME-Version: 1.0
References: <20190301.211448.2262229485785576167.fujiwara@jprs.co.jp>
In-Reply-To: <20190301.211448.2262229485785576167.fujiwara@jprs.co.jp>
From: 神明達哉 <jinmei@wide.ad.jp>
Date: Fri, 01 Mar 2019 13:40:22 -0800
Message-ID: <CAJE_bqeMMiqpnPfVZiWGWS3OgjUqjpLQzYpYAb=utfn8cc9NVg@mail.gmail.com>
To: fujiwara <fujiwara@jprs.co.jp>
Cc: dnsop <dnsop@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b231ae05830f41a4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/GsehGpOaAkZ4AU3-6AddpxraEGM>
Subject: Re: [DNSOP] draft-fujiwara-dnsop-fragment-attack-01.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Mar 2019 21:40:49 -0000

At Fri, 01 Mar 2019 21:14:48 +0900 (JST),
fujiwara@jprs.co.jp wrote:

> Dear DNSOP,
>
> I submitted draft-fujiwara-dnsop-fragment-attack-01.
>
>    https://tools.ietf.org/html/draft-fujiwara-dnsop-fragment-attack-01
>
> It summarized DNS cache poisoning attack using IP fragmentation
> and countermeasures.
>
> If the draft is interested, I will request timeslot at IETF 104.

I've read the draft.  I think it's generally well written and contains
useful information.

Some specific comments follow:

- general: I wonder whether the effect of this problem can be
  substantially different between IPv6 and IPv4.  As the draft itself
  discusses, IPv6 has a much larger ID space for fragmentation (the
  existence of implementations that generate predictable IDs is an
  implementation issue; in the case of IPv4 it's a protocol issue).
  IPv6 also has a much larger minimum MTU.  In practice, I suspect
  most (unsigned) important responses can fit in the minimum MTU,
  substantially affecting the practical severity of the attack.  I'm
  not saying that we don't have to take any measure for the IPv6 case,
  but I think this difference is worth noting in the draft explicitly.

- general: the draft the term "full-service resolver" in Abstract and
  throughout the document.  It may be only me, but I always feel this
  term is confusing and misleading, even after the publication of
  RFC8499.  It's not very clear to me whether "full-service" excludes
  "forwarding only" resolvers.  RFC8499 refers to RFC1123, and its
  definition is also unclear to me in this sense.  If this confusion
  is not only mine, I think the use of the term is rather harmful,
  since the issue discussed in this draft shouldn't exclude forwarding
  only resolvers.  What matters here is a resolver with a cache, and
  in that sense I'd rather suggest just saying "(recursive) resolver";
  it should be obvious that it's about a resolver with the cache from
  the context.

- general: on a related point, I suspect the discussion about
  authoritative servers is not actually specific to authoritative
  servers; consider the case of a recursive server that takes queries
  from forwarding only resolvers.  It should be generally applicable
  to any DNS "responder", and I'd suggest revising the draft
  accordingly.

- general: since this is about off-path cache poisoning attacks, you
  may also want to refer to DNS cookies (RFC7873) as a possible measure.

- Section 3

   Linux 2.6.32, Linux 4.18.20
   and FreeBSD 12.0 accept crafted "ICMPv6 Packet Too Big" packet and
   path MTU decreased to 1280.

  I suspect this often doesn't matter much in practice.  Since IPv6
  doesn't allow fragmentation and PMTU discovery isn't very effective for
  DNS responders, the server implementation should set
  IPV6_USE_MIN_MTU and expect that MTU anyway (several implementations
  actually set this option; some others don't, but they are just lucky
  to not encounter the problem or receive complaints about it).

- Section 4.2

   Limiting EDNS0 requestor's UDP payload size [RFC6891] to 1220/1232 on
   IPv6 is a measure of path MTU attacks on IPv6 because minimal MTU
   size of IPv6 is 1280 and most of implementations ignore ICMPv6 packet
   too big packets whose MTU size is smaller than 1280.

  I suggest removing "and most of implementations..." since even if an
  implementation accepts ICMPv6 PMTU with MTU < 1280, it doesn't mean
  they fragment packets at that size.

- Section 4.8

   Some operators that support [RFC8078] said that they use TCP only for
   transport to avoid cache poisoning attacks.

  It's not clear (to me at least) how RFC8078 is related to a TCP-only
  operation.  Some more explanation may help.

- Section 5

   o  Full-service resolvers may retry name resolution by TCP.

  I don't get exactly what this means...in which case does it suggest
  the retry with TCP?

--
JINMEI, Tatuya