Re: [xmpp] Clarification of TLS Identity checking in draft-ietf-xmpp-3920bis

Florian Zeitz <florob@babelmonkeys.de> Tue, 15 March 2011 20:26 UTC

Return-Path: <florob@babelmonkeys.de>
X-Original-To: xmpp@core3.amsl.com
Delivered-To: xmpp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E96EE3A6E9D for <xmpp@core3.amsl.com>; Tue, 15 Mar 2011 13:26:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.049
X-Spam-Level:
X-Spam-Status: No, score=-1.049 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_DE=0.35, J_CHICKENPOX_73=0.6, J_CHICKENPOX_83=0.6]
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 JBDZiKF08FVy for <xmpp@core3.amsl.com>; Tue, 15 Mar 2011 13:26:52 -0700 (PDT)
Received: from babelmonkeys.de (v64231.topnetworks.de [82.197.159.233]) by core3.amsl.com (Postfix) with ESMTP id 5FCD03A6A8B for <xmpp@ietf.org>; Tue, 15 Mar 2011 13:26:52 -0700 (PDT)
Received: from xdsl-87-79-189-17.netcologne.de ([87.79.189.17] helo=[192.168.234.167]) by babelmonkeys.de with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <florob@babelmonkeys.de>) id 1Pzaqm-0001wK-Jt for xmpp@ietf.org; Tue, 15 Mar 2011 21:28:16 +0100
Message-ID: <4D7FCBDA.9040904@babelmonkeys.de>
Date: Tue, 15 Mar 2011 21:28:10 +0100
From: Florian Zeitz <florob@babelmonkeys.de>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Lanikai/3.1.9
MIME-Version: 1.0
To: xmpp@ietf.org
References: <C9A3FBEC.4D471%joe.hildebrand@webex.com> <4D7EA297.1020304@babelmonkeys.de> <4D7ED1C8.4050201@stpeter.im>
In-Reply-To: <4D7ED1C8.4050201@stpeter.im>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: Re: [xmpp] Clarification of TLS Identity checking in draft-ietf-xmpp-3920bis
X-BeenThere: xmpp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: XMPP Working Group <xmpp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/xmpp>
List-Post: <mailto:xmpp@ietf.org>
List-Help: <mailto:xmpp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/xmpp>, <mailto:xmpp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 Mar 2011 20:26:54 -0000

Am 15.03.2011 03:41, schrieb Peter Saint-Andre:
> I think you mean the kind of thing that is explained, in depth, in
> draft-saintandre-tls-server-id-check. I encourage anyone who has
> questions about these matters to please re-read that spec, because it
> discusses these matters in great detail.
>
> So yes, it is true that in some circumstances a user might configure his
> IM client with two things:
>
> 1. The domain name of the application service, which is the domainpart
> of his JID, such as romeo@montague.lit =>  montague.lit; this is the
> "source domain".
>
> 2. A "hardcoded" hostname that he has explicitly assocated with the
> domainpart of your JID, such as apps.shakespeare.lit; this is the
> "target domain".
>
> However, for the purposes of checking the identity of the application
> service when connecting via TLS, Romeo's client would check to see that
> the service presents a certificate that says it is "montague.lit"
> (unless he overrides the checks or explicitly approve of connecting to
> "apps.shakesepeare.lit").
>
> Please understand that 99% of users will never see such a configuration
> option and that they don't know anything about apps.shakespeare.lit or
> some special hostname that they're connecting to -- all that they know
> is that they're trying to connect to montague.lit (if they even know
> this, because lots of people just think that they're trying to connect
> to "Shakespeare" or even "that IM thing" -- if you doubt it, I recommend
> that you run your own public IM service, because it can be quite
> enlightening).
>
I agree this is the way to do it, having read the relevant bits again 
after some sleep I also agree it's clear from the draft(s), sorry about 
that.

>> Both are certainly valid options for checking against.
>
> Are they? From a user perspective, is montague.lit (the source domain)
> just as valid as apps.shakespeare.lit (the target domain)? Does the
> typical user understand that kind of delegation arrangement? Again, I
> suggest that they don't.
>
Usually this configuration is labeled something like "Connect to 
different server: Host: Port:".
I personally do expect some percentage of users to be confused by the 
fact that a client tries to verify motague.lit when explicitly told to 
connect to apps.shakespeare.lit. But that will also happen when trying 
to verify apps.shakespeare.lit while the domainpart is montague.lit, so 
that's not a solvable "issue".
It just needs to be clear which method is correct, which it is. Again 
sorry about that.

>> My reasoning was that since you have to use the domainpart of the JID
>> when doing SRV (I was not sure from reading the draft, but it seemed
>> sensible),
>
> What else would you use?
>
The SRV lookup's result, which I consider functionally equivalent to the 
user specifing a separate host to connect to.
And yes I *do* realize that would be an utterly stupid choice, that is 
why the "have to" is there.

>> it seems logical to do the same when the user specified a FQDN.
>
> In this case, if Romeo has explicitly approved of connecting to
> apps.shakespeare.lit then he has "pinned" the certificate to that
> domain, in which case it's fine for the server to check that identity in
> addition to "montague.lit". However, in general this is not a good idea
> because very few users understand the implications of such a configuration.
>
> In any case, nothing in this message requires any changes to either
> draft-ietf-xmpp-3920bis or draft-saintandre-tls-server-id-check.
>
> Peter
>