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

"Blumenthal, Uri - 0553 - MITLL" <> Wed, 09 March 2016 15:50 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4E37112E20B for <>; Wed, 9 Mar 2016 07:50:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
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 ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id DFILHCYwyr1L for <>; Wed, 9 Mar 2016 07:50:46 -0800 (PST)
Received: from (LLMX2.LL.MIT.EDU []) by (Postfix) with ESMTP id CFEE112E0EE for <>; Wed, 9 Mar 2016 07:37:05 -0800 (PST)
Received: from ( by (unknown) with ESMTP id u29FaEQj014284; Wed, 9 Mar 2016 10:36:14 -0500
From: "Blumenthal, Uri - 0553 - MITLL" <>
To: Hannes Tschofenig <>, Adam Langley <>, "" <>
Thread-Topic: [TLS] Accepting that other SNI name types will never work.
Thread-Index: AQHRdX1zySMZN2Ujv0qqy5Lc2MGYjJ9RglKA///FsQA=
Date: Wed, 9 Mar 2016 15:37:00 +0000
Message-ID: <>
References: <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
user-agent: Microsoft-MacOutlook/
x-originating-ip: []
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: <>
Subject: Re: [TLS] Accepting that other SNI name types will never work.
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-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).
Uri Blumenthal

On 3/9/16, 9:05 , "TLS on behalf of Hannes Tschofenig"
< on behalf of> wrote:

>Hi Adam,
>as Thomas mentioned in his email we are looking into extending the SNI
>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
>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
>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]
>> [2] 
>> – note that the data pointer is not updated.
>> [3]
>> Cheers
>> AGL