Re: [DNSOP] discussion for draft-appelbaum-dnsop-onion-tld-00.txt

Alec Muffett <alecm@fb.com> Tue, 17 March 2015 14:56 UTC

Return-Path: <prvs=0518a23abd=alecm@fb.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E0011A1B17 for <dnsop@ietfa.amsl.com>; Tue, 17 Mar 2015 07:56:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.767
X-Spam-Level:
X-Spam-Status: No, score=-1.767 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_75=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=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 7UeoPwN_JyZK for <dnsop@ietfa.amsl.com>; Tue, 17 Mar 2015 07:56:00 -0700 (PDT)
Received: from mx0b-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA5D71A1A7E for <dnsop@ietf.org>; Tue, 17 Mar 2015 07:55:59 -0700 (PDT)
Received: from pps.filterd (m0004077 [127.0.0.1]) by mx0b-00082601.pphosted.com (8.14.5/8.14.5) with SMTP id t2HEqeLh027182; Tue, 17 Mar 2015 07:55:42 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=QAHDiWxfKOGuihF/qYlMIqLICv785qtub0T6It7AFvU=; b=Fzcg4AomAaLU3UpE8rYIYEjylKJxjmfNo6GT0v/MVySCVaClJEe9gg/gIclNDqJ7oNUw VCSEF1c6gvY7ZVN5M7QGDNZB9hh28Mv7AMDASc1TEcDh37dRVI30Eca7/sYpc+TuXoCX Eg2XPwsz0yQguHmismRYTWKr8n0nxuF9stU=
Received: from mail.thefacebook.com ([199.201.64.23]) by mx0b-00082601.pphosted.com with ESMTP id 1t6nwdg58q-4 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 17 Mar 2015 07:55:42 -0700
Received: from PRN-MBX02-4.TheFacebook.com ([169.254.5.235]) by PRN-CHUB06.TheFacebook.com ([fe80::f073:2a60:c133:4d69%12]) with mapi id 14.03.0195.001; Tue, 17 Mar 2015 07:55:40 -0700
From: Alec Muffett <alecm@fb.com>
To: Paul Wouters <paul@nohats.ca>, Jacob Appelbaum <jacob@appelbaum.net>
Thread-Topic: [DNSOP] discussion for draft-appelbaum-dnsop-onion-tld-00.txt
Thread-Index: AQHQYDbgw6BMN6MwUkOAOGsWoA8Fnp0gVGGAgADlZ4A=
Date: Tue, 17 Mar 2015 14:55:40 +0000
Message-ID: <D12DE3BF.B714%alecm@fb.com>
References: <CAFggDF0XX3v7yGsaCwFnE7cjK0yz4-frxFgoBJfnztO8k-LFBg@mail.gmail.com> <alpine.LFD.2.10.1503162052420.20709@bofh.nohats.ca>
In-Reply-To: <alpine.LFD.2.10.1503162052420.20709@bofh.nohats.ca>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [192.168.52.13]
Content-Type: text/plain; charset="utf-8"
Content-ID: <7D39B1282F17784995C31D37F0911DE8@fb.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.13.68, 1.0.33, 0.0.0000 definitions=2015-03-17_03:2015-03-17,2015-03-17,1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 kscore.is_bulkscore=0 kscore.compositescore=0 circleOfTrustscore=0 compositescore=0.925924926977281 suspectscore=0 recipient_domain_to_sender_totalscore=0 phishscore=0 bulkscore=0 kscore.is_spamscore=0 rbsscore=0.925924926977281 recipient_to_sender_totalscore=0 recipient_domain_to_sender_domain_totalscore=0 spamscore=0 recipient_to_sender_domain_totalscore=0 urlsuspectscore=0.925924926977281 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1503170145
X-FB-Internal: deliver
Archived-At: <http://mailarchive.ietf.org/arch/msg/dnsop/KZ6uzYQsu4pdFIvR7KXhskuud7k>
Cc: Christian Grothoff <christian@grothoff.org>, Richard Barnes <rlb@ipv.sx>, dnsop <dnsop@ietf.org>, Brad Hill <hillbrad@fb.com>, Mark Nottingham <mnot@mnot.net>
Subject: Re: [DNSOP] discussion for draft-appelbaum-dnsop-onion-tld-00.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Tue, 17 Mar 2015 14:57:59 -0000

Hi!

I’m Alec Muffett, I am the other author of this document.

I am a software engineer working at Facebook, and am the lead on the
Facebook over Tor project - https://facebookcorewwwi.onion/

I’ll do my best to answer as many of the extant questions as possible, so
far:


On 3/17/15, 1:14 AM, "Paul Wouters" <paul@nohats.ca> wrote:

>On Mon, 16 Mar 2015, Jacob Appelbaum wrote:
>> Subject: [DNSOP] discussion for draft-appelbaum-dnsop-onion-tld-00.txt
>
>Is this meant to replace or augment
>draft-grothoff-iesg-special-use-p2p-names ?


My understanding is that this is not meant to replace that document, but
instead that this document is a separate one.

Being as I am one of the authors of this document, I believe that my
opinion carries some weight in this matter.

The reason I am not more emphatic in this matter is that the question
as-phrased is essentially about *that* document, not this one, and I do
not speak for or on behalf of Christian Grothoff, author of that document.

Thus, I shall cc: Christian into this message, in case he wishes to
describe his perspective of that document with respect to this one.


>How does the certificate "dead line" affect (non-)DNS for .onion?

Permit me to quote Brad Hill:

Quote: "The end date for the internal names loophole* is October - all
public certs [which are issued] not for public namespaces MUST be revoked
at that point. CAs can continue to issue up to that time, but they all
must expire or be revoked on Oct 1, and no new ones issued. Those certs
are really extremely dangerous, and [Brad has] been working for NINE YEARS
now to make them go away. Can't happen soon enough.” <endquote/>

The “facebookcorewwwi.onion” certificate (please feel free to examine the
SSL certificate issued by facebook.com for details) is currently issued
under a loophole that permits Subject Alt Names to contain "local” and
domain-names.

CA/B Forum have - as Brad hints above - planned to kill such, for some
time.

In Ballot 144, CA/B Forum approved process for formal issuance of SSL
certificates to ".onion” addresses, providing satisfactory means to
attribute ownership.

Note, though, Brad’s comment, "not for public namespaces”, ie: that
certificates will, after October 1st, only be issued for approved public
namespaces.

Thus: ".onion” needs to become a formally approved public namespace.

Hence this document: The goal is seek formal approval of “.onion” as a
TLD.  

I will defer to Richard Barnes and Mark Nottingham regards the larger
aspects of this process, but in passing note that Hellekin’s observation:

Quote: “we can also consider it a god-given gift for people who argued
against multiple TLDs in a single draft” <endquote/>

…is precisely correct; this is a small, simple proposal for (we hope) a
small, simple change, in (ideally) prompt time.



>I have reviewed the document and I'm not sure what is intended? I think
>it is meant as advise to DNS implementors? I guess it is an attempt to
>reduce .onion leaks if those happen to hit the DNS infrastructure?

The goal is to seek formal approval of “.onion” as a TLD; as such, that
the larger DNS community understands the special nature of the onion
namespace is an important thing.

To paint a naive, thumbnail sketch of how “.onion” addresses work:

1) A user creates a RSA key, distinct from SSL or IPSec or any other form
of crypto
2) The user hashes the public key using a specific hash function.
3) The hash, being unfeasibly large, is truncated a bit and the resulting
bitstring rendered as a (currently) 16-character string
4) The resultant string has the word “.onion” appended to it, and the
whole serves as a layer-3-like endpoint in an encrypted peer-to-peer
mesh-type network “cloud”

All communications are protected by RSA under the key of the server which
someone is connecting to.

As is obvious, in this scheme there is no “root zone” for “.onion” and
there is no “directory” either; instead the “cloud” maintains a dynamic
set of mappings from Onion Address to IP Address, which (by design) change
at regular intervals to defeat various attacks.

People are expected to gather the onion address to which they are
connecting via other means, eg: advertising or social media.

By a process of mining arbitrary keys and experimentation, an onion
address which is semi-human-meaningful can be established in order to make
things easier for people, eg: blockchainbdgpzk.onion or
facebookcorewwwi.onion

However, to reinforce: there is no root zone, no centralised directory.
You can see elements of the underlying entropy of the hash in the “dgpzk”
of “blockchainbdgpzk.onion” - these are actually binary strings with a
hint of human readability, rather than “domain names”, and thus no
centralised repository is required since they can be accessed via
mechanical discovery, quite similar to “192.168.1.1” is accessed via ARP &
Routing.

But, again by analogy to IPv4, you can see the potential risk to
192.168.1.1 if someone were to register a “.1” top level domain, however
silly a concept that might be.

Hence the importance of DNS being (at least) slightly aware of “.onion”.

Plus, as noted elsewhere, information leaks
("whom-is-accessing-which-sites") are often considered risky, by Tor/Onion
users.

[deletia]


>	The Tor network [Dingledine2004] has the ability to host network
> 	services using the ".onion" Top-Level Domain.
>
>Well, it does not because there is no Top-Level Domain of ".onion" and
>we have the cryptographic proof of that in the root zone.


Which is what the document seeks to address.


>
> 	Applications that do not implement the Tor protocol
> 	SHOULD generate an error upon the use of .onion, and SHOULD NOT
> 	perform a DNS lookup.
>
>If an application does not implement tor, and is not tor aware, it
>_will_ do a DNS lookup. You can't really go ask the world to stop
>doing that. You need to deal with that fact.


I understand your point, and reality is a good check; by analogy though,
most (?) programmers are aware not to try looking up “192.168.1.1” in a
the “.1” top-level domain, and I hope this “should not” phrasing will
grow, with the establishment of “.onion” as a TLD, to reflect similar sane
practice.



>	Resolvers that implement the
> 	Tor protocol MUST either respond to requests for .onion names by
> 	resolving them (see [tor-rendezvous]) or by responding with
> 	NXDOMAIN.  Other resolvers SHOULD respond with NXDOMAIN.
>
>Again, stating what software that is not TOR aware should do is a lost
>cause. They will just think it is a real DNS query and process it that
>way.


Quite. That is, indeed, how it currently works.

When we launched the Facebook Tor Onion we were concerned that malicious
people would seek to attack users by setting up local DNS resolvers to
point a DNS address of “facebookcorewwwi.onion” to a malicious IP address,
and then persuade users with non-Tor-capable browsers to access it.

This concern was fortunately mitigated by our broad use of SSL; but this
threat model understores the importance of proper SSL certification and
putting “.onion” on a proper footing as a TLD and within DNS.

With the aid of CA/B Forum Ballot 144, the first portion of that risk has
been addressed - it should become astonishingly hard to generate an
acceptable SSL certificate for an "onion address” for use on the IP-based
network space.

[deletia, apologies, I am going to skip some stuff and seek to revisit it
later, due to time constraints.]



>    Users must take special precautions to ensure that the .onion name
>    they are communicating with is correct, as attackers may be able to
>    find keys which produce service names that are visually or apparently
>    semantically similar to the desired service.
>
>    Also, users need be aware of the difference between a .onion name
>    used and accessed directly via Tor-capable software, versus .onion
>    subdomains of other TLDs and providers (e.g., the difference between
>    example.onion and example.onion.tld).
>
>I don't think an RFC can tell enduers what to do or expect?


Actually, I feel that an RFC can tell users what to do and/or expect.

That’s what “documentation” is *meant* to be for. :-)

But, again, I think I take your point.  Do you feel the wording is perhaps
too aggressive?

    - alec


--
Alec Muffett
Security Infrastructure
Facebook Engineering
London