Re: [TLS] Accepting that other SNI name types will never work.

"Blumenthal, Uri - 0553 - MITLL" <uri@ll.mit.edu> Wed, 09 March 2016 15:50 UTC

Return-Path: <prvs=2876689cf6=uri@ll.mit.edu>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E37112E20B for <tls@ietfa.amsl.com>; Wed, 9 Mar 2016 07:50:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([127.0.0.1]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DFILHCYwyr1L for <tls@ietfa.amsl.com>; Wed, 9 Mar 2016 07:50:46 -0800 (PST)
Received: from llmx2.ll.mit.edu (LLMX2.LL.MIT.EDU [129.55.12.48]) by ietfa.amsl.com (Postfix) with ESMTP id CFEE112E0EE for <tls@ietf.org>; Wed, 9 Mar 2016 07:37:05 -0800 (PST)
Received: from LLE2K10-HUB02.mitll.ad.local (LLE2K10-HUB02.mitll.ad.local) by llmx2.ll.mit.edu (unknown) with ESMTP id u29FaEQj014284; Wed, 9 Mar 2016 10:36:14 -0500
From: "Blumenthal, Uri - 0553 - MITLL" <uri@ll.mit.edu>
To: Hannes Tschofenig <hannes.tschofenig@gmx.net>, Adam Langley <agl@imperialviolet.org>, "tls@ietf.org" <tls@ietf.org>
Thread-Topic: [TLS] Accepting that other SNI name types will never work.
Thread-Index: AQHRdX1zySMZN2Ujv0qqy5Lc2MGYjJ9RglKA///FsQA=
Date: Wed, 09 Mar 2016 15:37:00 +0000
Message-ID: <D305AC6A.286AF%uri@ll.mit.edu>
References: <CAMfhd9WNHqfRH=M=_B7_apJ-r43fi8qoe-+VcDkrKPwwhkPR5A@mail.gmail.com> <56E02DAB.1030104@gmx.net>
In-Reply-To: <56E02DAB.1030104@gmx.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.6.1.160122
x-originating-ip: [172.25.177.51]
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha384"; boundary="B_3540364610_3986939"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-03-09_15:, , signatures=0
X-Proofpoint-Spam-Details: rule=inbound_notspam policy=inbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1601100000 definitions=main-1603090263
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/-54nmDO9l5nSJjK12RgW2bpjtMk>
Subject: Re: [TLS] Accepting that other SNI name types will never work.
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Mar 2016 15:50:48 -0000

Based on your explanation, the best solution architecture would be based
on *attribute* certificates (individual attributes signed independently by
their corresponding Attribute Authorities), rather than the current
“all-crammed-in” certificates.

The downside of the above is that this approach isn’t wide-spread, and
would be computationally more expensive (the need to potentially verify at
least two attributes, possibly more - instead of just dealing with one
signature that covers everything).
-- 
Regards,
Uri Blumenthal





On 3/9/16, 9:05 , "TLS on behalf of Hannes Tschofenig"
<tls-bounces@ietf.org on behalf of hannes.tschofenig@gmx.net> wrote:

>Hi Adam,
>
>as Thomas mentioned in his email we are looking into extending the SNI
>functionality.
>
>Let me explain why we are doing it.
>
>We are focused on Internet of Things deployments and we want to use
>TLS/DTLS there to provide communication security. The use of TLS/DTLS
>would solve some of the problems we see in deployments today where
>either no communication security is used (such as in the BMW Connected
>Drive example) or where custom security solutions are used. We want to
>make it easy for developers to add commonly used security services to
>their applications.
>
>Everything fine so far.
>
>In many deployments the IoT device acts as a client and initiates the
>connection to some cloud-based infrastructure (or to some gateway). In
>other deployments the IoT device needs to act as a server. In fact, in
>many home network/small enterprise deployments this seems to be the
>envisioned model.
>
>Assuming that every IoT device has a domain name is not desired or
>useful. Instead, the CORE working group has developed the so-called
>Resource Directory, which acts as a rendezvous point, and may even have
>more capabilities -- with extensions, like caching of data, while the
>IoT devices sleeps. ("Sleeping devices" consume less energy.)
>
>Now, we had to come up with another story of what information to put
>into certificates or, alternatively, forget the use of certificates.
>
>I know that the timing isn't necessarily in our favor. You guys are
>trying to move the TLS 1.3 spec along and our contribution is still
>subject to (longer) discussion at the CORE working group. I also
>understand that you may not necessarily be super interested in IoT usage
>either.
>
>I still hope that this can be taken into consideration. I saw the
>proposal from Martin about defining another extension. This may be an
>option and maybe the answer is as simple as "don't use certificates for
>such scenarios".
>
>I believe other organizations who are also looking into these types of
>IoT scenarios will sooner or later also figure out that there is a
>problem.
>
>Ciao
>Hannes
>
>
>On 03/03/2016 07:49 PM, Adam Langley wrote:
>> The Server Name Indication (SNI) extension in TLS has a provision to
>> provide names other than host names[1]. None have even been defined to
>> my knowledge, but it's there.
>> 
>> OpenSSL (and possibly others) have had a long-standing bug[2] (fixed
>> in master) that means that different types of names will cause an
>> error. To be clear: I live in a glass house and am not throwing
>> stones; these things happen. However, it means that a huge fraction of
>> the TLS deployment will not be able to accept a different name type
>> should one ever be defined. (This issue might have been caused by the
>> fact that the original[3] spec didn't define the extension in such a
>> way that unknown name types could be skipped over.)
>> 
>> Therefore we (i.e. BoringSSL, and thus Google) are proposing to give
>> up on this and implement our parser such that the SNI extension is
>> only allowed to contain a single host name value. (This is compatible
>> with all known clients.) We're assuming that since this is already the
>> de-facto reality that there will be little objection. I'm sending this
>> mostly to record the fact so that, if someone tries to define a new
>> name type in the future, they won't waste their time.
>> 
>> If the community wishes to indicate a different type of name in the
>> future, a new extension can be defined. This is already effectively
>> the case because we wouldn't fight this level of incompatibility when
>> there's any other option.
>> 
>> (I think the lesson here is that protocols should have a single joint,
>> and that it should be kept well oiled. For TLS, that means that
>> extensions should have minimal extensionality in themselves and that
>> we should generally rely on the main extensions mechanism for these
>> sorts of things.)
>> 
>> [1] https://tools.ietf.org/html/rfc6066#section-3
>> [2] 
>>https://github.com/openssl/openssl/blob/OpenSSL_1_0_1-stable/ssl/t1_lib.c
>>#L1066
>> – note that the data pointer is not updated.
>> [3] https://tools.ietf.org/html/rfc4366#section-3.1
>> 
>> 
>> Cheers
>> 
>> AGL
>> 
>