Re: [hybi] failed TLS handshake: which close code?

Alexey Melnikov <alexey.melnikov@isode.com> Mon, 24 October 2011 13:10 UTC

Return-Path: <lunohod.baikonur@googlemail.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 00ACA21F8C4C for <hybi@ietfa.amsl.com>; Mon, 24 Oct 2011 06:10:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.971
X-Spam-Level:
X-Spam-Status: No, score=-102.971 tagged_above=-999 required=5 tests=[AWL=0.005, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oYgeXmsv9WaK for <hybi@ietfa.amsl.com>; Mon, 24 Oct 2011 06:10:01 -0700 (PDT)
Received: from mail-iy0-f172.google.com (mail-iy0-f172.google.com [209.85.210.172]) by ietfa.amsl.com (Postfix) with ESMTP id E52C721F8C7A for <hybi@ietf.org>; Mon, 24 Oct 2011 06:10:00 -0700 (PDT)
Received: by iabn5 with SMTP id n5so9070595iab.31 for <hybi@ietf.org>; Mon, 24 Oct 2011 06:09:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=ktZfX8kRBguQ/S8YF8M/mg4MBK38q9nZLYCO0adNbYQ=; b=ilHyHHOte84Kkd4L9IO/QN4llndYR3Vqxb2qIYHire1D7i7L0pSaR1Cq8+o81tU3g7 A3fql4q9daZdE8ycM9YSInnQeosFdigtyC05Jv6uln1dzFAnb08EsJrPNdCh46LlNhAL YtLJjzivJqPpg4AhWlHvs75TMUIos6ZII8uM4=
MIME-Version: 1.0
Received: by 10.42.158.3 with SMTP id f3mr41093481icx.7.1319461794594; Mon, 24 Oct 2011 06:09:54 -0700 (PDT)
Sender: lunohod.baikonur@googlemail.com
Received: by 10.42.247.199 with HTTP; Mon, 24 Oct 2011 06:09:54 -0700 (PDT)
In-Reply-To: <CADkeqZXDvu-JY8aZHJJPRH-_JnF196JjA_JG6X_1yrYSiAekuA@mail.gmail.com>
References: <634914A010D0B943A035D226786325D42D0B036D6D@EXVMBX020-12.exch020.serverdata.net> <CADkeqZXXRkXCRrONLr5thwOqNVUxNWU0Q-9E0R0i=4S-bc-LFw@mail.gmail.com> <CADkeqZXDvu-JY8aZHJJPRH-_JnF196JjA_JG6X_1yrYSiAekuA@mail.gmail.com>
Date: Mon, 24 Oct 2011 14:09:54 +0100
X-Google-Sender-Auth: LTfcbb0xgWBki4R27YC9jwEoWSs
Message-ID: <CADkeqZWdFrmEyJEmHy+tfgsJXS1nU3ASx20-=uwwLY6EZogc0A@mail.gmail.com>
From: Alexey Melnikov <alexey.melnikov@isode.com>
To: hybi@ietf.org
Content-Type: multipart/alternative; boundary="90e6ba6e827a8fc13704b00b23cd"
Subject: Re: [hybi] failed TLS handshake: which close code?
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 24 Oct 2011 13:10:02 -0000

On a second thought: TLS fails before WebSocket connection is established,
so (unless I am missing something) TLS related close codes will never be
sent on the wire. However reserving some WebSocket codes is still a good
idea.

On Mon, Oct 24, 2011 at 2:04 PM, Alexey Melnikov
<alexey.melnikov@isode.com>wrotetL

> That was supposed to be sent to the mailing list. The WG should consider
> adding multiple codes if needed.
>
>
> ---------- Forwarded message ----------
> From: Alexey Melnikov <alexey.melnikov@isode.com>
> Date: Mon, Oct 24, 2011 at 1:34 PM
> Subject: Re: [hybi] failed TLS handshake: which close code?
> To: Tobias Oberstein <tobias.oberstein@tavendo.de>
>
>
> Hi Tobias,
>
> On Mon, Oct 24, 2011 at 3:58 AM, Tobias Oberstein <
> tobias.oberstein@tavendo.de> wrote:
>
>> Hybi-17:
>>
>> """
>> 4. Opening Handshake
>> ...
>> 4.1. Client Requirements
>> ...
>>   5.  If /secure/ is true, the client MUST perform a TLS handshake over
>>       the connection after opening the connection and before sending
>>       the handshake data [RFC2818].  If this fails (e.g. the server's
>>       certificate could not be verified), then the client MUST _Fail
>>       the WebSocket Connection_ and abort the connection.  Otherwise,
>>       all further communication on this channel MUST run through the
>>       encrypted tunnel.  [RFC5246]
>> """
>>
>> When the client fails the TLS handshake (i.e. because of invalid server
>> certificate),
>> which close status code would be appropriate to use for signaling that
>> specific
>> reason to the caller?
>>
>> Is it supposed to use a close status code from the following range?
>>
>> """
>>   3000-3999
>>
>>      Status codes in the range 3000-3999 are reserved for use by
>>      libraries, frameworks and application.  These status codes are
>>      registered directly with IANA.  The interpretation of these codes
>>      is undefined by this protocol.
>> """
>>
>> Or are those only for "use on wire" not for signaling the caller?
>>
>> For example, Firefox currently provides the calling JavaScript with a
>> "1006 Abnormal Connection Close":
>>
>> """
>>  1006
>>
>>      1006 is a reserved value and MUST NOT be set as a status code in a
>>      Close control frame by an endpoint.  It is designated for use in
>>      applications expecting a status code to indicate that the
>>      connection was closed abnormally, e.g. without sending or
>>      receiving a Close control frame.
>> """
>>
>> However, this could be multiple things and is not giving the real reason
>> to the JS.
>> The JS thus can't react specifically ..
>>
>
> TLS handshake probably deserves a separate 1XXX close code.
>
>
>