Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert

"Joseph Salowey (jsalowey)" <> Mon, 07 June 2010 20:29 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 60DC23A67D7 for <>; Mon, 7 Jun 2010 13:29:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -9.854
X-Spam-Status: No, score=-9.854 tagged_above=-999 required=5 tests=[AWL=-0.745, BAYES_05=-1.11, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id UNpbiC15QRQR for <>; Mon, 7 Jun 2010 13:29:12 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 2B5FE3A65A6 for <>; Mon, 7 Jun 2010 13:29:12 -0700 (PDT)
Authentication-Results:; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAKfzDEyrR7Ht/2dsb2JhbACeHnGmHponhRcEg0o
X-IronPort-AV: E=Sophos;i="4.53,380,1272844800"; d="scan'208";a="541190498"
Received: from ([]) by with ESMTP; 07 Jun 2010 20:29:12 +0000
Received: from ( []) by (8.13.8/8.14.3) with ESMTP id o57KTCrZ026398 for <>; Mon, 7 Jun 2010 20:29:12 GMT
Received: from ([]) by with Microsoft SMTPSVC(6.0.3790.3959); Mon, 7 Jun 2010 13:29:12 -0700
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 7 Jun 2010 13:29:11 -0700
Message-ID: <>
In-Reply-To: <>
Thread-Topic: [TLS] RFC-4366-bis and the unrecognized_name(112) alert
Thread-Index: AcsGfZpQSYEnCmDESaS20Ej7x2rlCQAAB7Kg
References: <> from "Marsh Ray" at Jun 4, 10 12:14:44 pm <>
From: "Joseph Salowey (jsalowey)" <>
To: <>
X-OriginalArrivalTime: 07 Jun 2010 20:29:12.0416 (UTC) FILETIME=[17265600:01CB0680]
Subject: Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert
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." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 07 Jun 2010 20:29:13 -0000

OK, here is some new suggested text.  Let me know if you can live with

"The ServerNameList MUST NOT contain more than one name of the same
name_type. If the server understood the client hello extension, but
refuses to continue because it does not recognize the server name, it
MUST send a fatal unrecognized_name(112) alert and terminate the
handshake.  If the server decides to continue the  handshake, sending a
unrecognized_name(112) alert with a warning level is NOT RECOMMENDED,
since existing  client behavior is unpredictable.  A client that
receives a warning-level unrecognized_name(112) alert SHOULD ignore this
alert and continue the TLS handshake, which may fail as a result of a
name mismatch.  The warning MAY be logged as part of diagnostic
information recorded for a failed handshake."



> -----Original Message-----
> From: [] On Behalf Of
> Martin Rex
> Sent: Monday, June 07, 2010 1:10 PM
> To: Marsh Ray
> Cc:
> Subject: Re: [TLS] RFC-4366-bis and the unrecognized_name(112) alert
> Marsh Ray wrote:
> >
> > On 6/4/2010 11:47 AM, Martin Rex wrote:
> > >
> > > But defining only the situation when one peer can send a
> > > warning level alert is entirely insufficient.  The definition of
> > > a warning-level alert _MUST_ describe how the receiving peer is
> > > supposed to react to this.
> >
> > I don't agree with such an absolute statement.
> >
> > Sometimes the only use of a protocol message is to provide
> > to a software developer who wrote the code so he has some clues to
go on
> > when the bug report with the protocol trace lands in his inbox.
> We are discussing a network protocol here, and there we need a
> _MUST_ define the semantics of a protocol signal for both, the sender
> and the receipient.  Everything else is going to be an
> problem (as observed by Yngve), or at least useless protocol
> >
> > Although it is good to try to avoid it, the vast majority of
> > systems have failure modes that were not anticipated during
> > and testing. As a developer, I really value the ability to issue
> > opaque internal error code message into some log file. Somehow the
> > system got into a state that I didn't expect it could, if I could
> > described how the system should react, I would have coded it that
> >
> > A strict policy like "all warnings must X" just leads to the warning
> > message facility being unusable for cases where X is too difficult.
> This description oversimplifies the whole issue.
> If there are protocol elements that convey information between to
> communication peers, then the semantics of that piece of information
> must be well-defined for both, sender and receipient.  Some of the
> conveyed information affects the communication protocol itself,
> other information is conveyed for consumption by the calling
> application, not for the protocol engine itself -- such as a
> warning-level alert "unrecognized_name".
> It makes perfect sense to require this information be made available
> _by_the_recipient_TLS_implementation_ to the receipient calling
> application _somehow_ (details unspecified).  A calling application
> that does care about this non-fatal information will have to retrieve
> The calling app may decide to abort the fully established TLS session
> retry with different parameters later on.  But the TLS (client)
> implementation receiving a warning-level "unrecognized_name"
> alert SHOULD ignore this alert and continue the TLS handshake.
> There is nothing that the receiving TLS implementation itself can do
> about this warning-level alert.
> Aborting on an unexpected (or even unknown warning-level TLS alert)
> appears to be generally a bad idea, because it creates unnecessary
> interop problems.  The IETF golden rule for protocol applies here
> "be liberal in what you accept".  TLS protocol engines that
> unconditionally fail when receiving unknown or unexpected
> warning-level alerts (excluding those warning-level alerts that
> have a well-defined protocol-engine semantic, such as close_notify)
> exhibit a significant lack of robustness.
> -Martin
> _______________________________________________
> TLS mailing list