Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert
Michael D'Errico <mike-list@pobox.com> Thu, 03 June 2010 17:22 UTC
Return-Path: <mike-list@pobox.com>
X-Original-To: tls@core3.amsl.com
Delivered-To: tls@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 1D9913A69E7 for <tls@core3.amsl.com>; Thu, 3 Jun 2010 10:22:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iTNurmJhm4Qs for <tls@core3.amsl.com>; Thu, 3 Jun 2010 10:21:58 -0700 (PDT)
Received: from sasl.smtp.pobox.com (a-pb-sasl-quonix.pobox.com [208.72.237.25]) by core3.amsl.com (Postfix) with ESMTP id 9A0D43A69E4 for <tls@ietf.org>; Thu, 3 Jun 2010 10:21:58 -0700 (PDT)
Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 9F72FB9DAC; Thu, 3 Jun 2010 13:21:44 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=message-id :date:from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; s=sasl; bh=dS7XvfiwqP95 2apulG24rJmdN+E=; b=dd7pI3dBOjuTfV1foq2vzWzt68UVIcq1DF9FQiHu/ZzT flvXcr39Y1jkEZkF2cT4CIaQZKj5bn3ZdeQIKIoIf5gZeIOwdA75fapveE4s9ONR 0UOhdA2d7hj+1Ib15C0c1mXZ+2xfHa22OnuA3+UF5MCvDehEBXzrjEwLdTji7dM=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=message-id:date :from:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; q=dns; s=sasl; b=n2tBLP dFW1Jq2RXEpFwKzsdpct0u8vn68wB1R1VA4R8EDhhqNh3dNT8231KuKkro34Zy8G icfVe1oZVcM1agLculTVb+sltRH82Q61HSZKM4If3devS+M7S2o+QkZeIgwGYA5o ud7KNxnbZQDqTU48KwZvh4CRgQyOc1m9J5Tp4=
Received: from a-pb-sasl-quonix. (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 66F75B9DA4; Thu, 3 Jun 2010 13:21:41 -0400 (EDT)
Received: from administrators-macbook-pro.local (unknown [24.234.114.35]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id BB84EB9D93; Thu, 3 Jun 2010 13:21:34 -0400 (EDT)
Message-ID: <4C07E49D.3010700@pobox.com>
Date: Thu, 03 Jun 2010 10:21:33 -0700
From: Michael D'Errico <mike-list@pobox.com>
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
MIME-Version: 1.0
To: yngve@opera.com
References: <201005251657.o4PGvZkE006346@fs4113.wdf.sap.corp> <4BFC0FB9.5030908@pobox.com> <AC1CFD94F59A264488DC2BEC3E890DE50A9ED6F5@xmb-sjc-225.amer.cisco.com> <AANLkTilRO_rj68yZlX3WenciASNybJqHTSsnIMHHoLBU@mail.gmail.com> <AC1CFD94F59A264488DC2BEC3E890DE50A9ED759@xmb-sjc-225.amer.cisco.com> <op.vdqdftkkvqd7e2@killashandra.oslo.osa>
In-Reply-To: <op.vdqdftkkvqd7e2@killashandra.oslo.osa>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Pobox-Relay-ID: 799F2FEC-6F34-11DF-B2EC-6730EE7EF46B-38729857!a-pb-sasl-quonix.pobox.com
Cc: tls@ietf.org
Subject: Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.9
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/listinfo/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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: Thu, 03 Jun 2010 17:22:02 -0000
I agree with Yngve that a server should send either an empty SNI extension OR an unrecognized_name alert but not both. However, I disagree that the server SHOULD NOT send a warning alert since that hides information from the client. The possible cases are: 1 - server understood the SNI and used it to select an appropriate certificate chain and other parameters 2 - server understood the SNI but did not recognize it as one of its configured virtual hosts; however, the server is set up to use a default configuration in that case 3 - server understood the SNI but did not recognize it as one of its configured virtual hosts; there is no default configuration available so the handshake can not continue 4 - server does not understand the SNI extension The way my server reacts to each of these cases is: 1 - add an empty SNI extension to ServerHello 2 - send a warning unrecognized_name alert 3 - send a fatal unrecognized_name alert 4 - send nothing Yngve would prefer that nothing is sent in case 2, but then a client can not distinguish it from case 4. Mike Yngve Nysaeter Pettersen wrote: > Hi, > > Actual text depends on what one want the extension and the alert to do. > > Relevant text: > > A server that receives a client hello containing the "server_name" > extension MAY use the information contained in the extension to guide > its selection of an appropriate certificate to return to the client, > and/or other aspects of security policy. In this event, the server > SHALL include an extension of type "server_name" in the (extended) > server hello. The "extension_data" field of this extension SHALL be > empty. > > If the server understood the client hello extension but does not > recognize the server name, it SHOULD send an "unrecognized_name" > alert (which MAY be fatal). > > What needs to be specified is what a warning with this alert should mean > to the process of establishing the connection, and how it should be used > in combination with the returned extension. IMO only one of them may be > returned. > > My preferred option is that the alert is only sent when the server does > not want to continue the negotiation, that is, a fatal alert, and not > return a server_name extension in case it did not know the hostname, but > is willing to continue. > > If that is the route we go then the last paragraph above could be > changed to > > If the server understood the client hello extension but does not > recognize the server name, and is not willing to establish a connection, > it MUST send a fatal "unrecognized_name" alert. If it is willing to > establish the connection it MUST NOT return a "server_name" extension, > and SHOULD NOT send a "unrecognized_name" warning. > > One can also add a note that some current implementations will send a > warning _and_ include the "server_name" extension (that is the current > status on the server I observed with the configuration issue), and that > some clients escalate the warning to Fatal. > > > On Thu, 03 Jun 2010 16:02:43 +0200, Joseph Salowey (jsalowey) > <jsalowey@cisco.com> wrote: > >> If we are going to make a change then we need some suggested text. >> >> Joe >> >>> -----Original Message----- >>> From: n.mavrogiannopoulos@gmail.com >>> [mailto:n.mavrogiannopoulos@gmail.com] On Behalf Of Nikos >>> Mavrogiannopoulos >>> Sent: Thursday, June 03, 2010 12:24 AM >>> To: Joseph Salowey (jsalowey) >>> Cc: Michael D'Errico; mrex@sap.com; tls@ietf.org >>> Subject: Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert >>> >>> I believe that it is quite bad practice to delegate to application >>> protocol. This is protocol stack signalling and shouldn't be >>> application specific. Otherwise interoperability problems occur. A >>> protocol spec should be clear on what it does. >>> >>> regards, >>> Nikos >>> >>> On Thu, Jun 3, 2010 at 7:22 AM, Joseph Salowey (jsalowey) >>> <jsalowey@cisco.com> wrote: >>> > It seems that the behavior is dependent upon the application. I'm >>> not >>> > sure we would come up with useful text here. In the interest of >>> getting >>> > this document published I suggest we leave it as is. >>> > >>> > Joe >>> > >>> >> -----Original Message----- >>> >> From: tls-bounces@ietf.org [mailto:tls-bounces@ietf.org] On Behalf >>> Of >>> >> Michael D'Errico >>> >> Sent: Tuesday, May 25, 2010 10:58 AM >>> >> To: mrex@sap.com >>> >> Cc: tls@ietf.org >>> >> Subject: Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert >>> >> >>> >> Martin Rex wrote: >>> >> > Michael D'Errico wrote: >>> >> >> In my server code, the SNI is checked to see if there is a >>> matching >>> >> >> virtual host with that domain name. If there is, then no alert >>> is >>> >> >> sent. If there is no matching virtual host, then it checks >>> whether >>> >> >> there is a default virtual host set up. If there is a default, >>> > then >>> >> >> an unrecognized_name alert is sent with the warning level. When >>> no >>> >> >> default is configured, the alert sent is fatal since the >>> handshake >>> >> >> can not continue. >>> >> >> >>> >> >> The warning lets the client know that there was not a match, but >>> >> that >>> >> >> the server can still continue using its default. >>> >> > >>> >> > >>> >> > While this behaviour appears quite sensible/plausible, it will >>> lead >>> >> > to the behaviour in the wild that Yngve is reporting. >>> >> > >>> >> > An application which >>> >> > does not configure any SNI characteristics, is not using SNI, and >>> >> > for these, the server TLS implementation should _NOT_ be sending >>> >> > SNI mismatch TLS alerts unless the application explicitly requests >>> >> so. >>> >> >>> >> My server code will not send an alert unless the client (a) sent an >>> >> SNI and (b) that SNI did not map to a virtual host. >>> >> >>> >> So that should not cause a problem. >>> >> >>> >> It might be a good idea to clarify when sending an unrecognized_name >>> >> alert would be appropriate and clarify that it can be just a warning >>> >> and what that means. >>> >> >>> >> Mike
- [TLS] RFC-4366-bis and the unrecognized_name(112)… Yngve Nysaeter Pettersen
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Nikos Mavrogiannopoulos
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Yngve Nysaeter Pettersen
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Nikos Mavrogiannopoulos
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Yngve Nysaeter Pettersen
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Marsh Ray
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Marsh Ray
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Peter Saint-Andre
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- [TLS] [Fwd: Re: RFC-4366-bis and the unrecognized… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Marsh Ray
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Nikos Mavrogiannopoulos
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Nikos Mavrogiannopoulos
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Peter Gutmann
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Nikos Mavrogiannopoulos
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Donald Eastlake
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Sean Turner
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… t.petch
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Paul Hoffman
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Marsh Ray
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Peter Saint-Andre
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Joseph Salowey (jsalowey)
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Marsh Ray
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Nikos Mavrogiannopoulos
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Michael D'Errico
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Peter Sylvester
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Peter Sylvester
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Peter Sylvester
- Re: [TLS] RFC-4366-bis and the unrecognized_name(… Martin Rex