Re: [xmpp] New(ish) draft: Secure Messaging in XMPP

Martin Thomson <martin.thomson@gmail.com> Thu, 29 October 2015 21:10 UTC

Return-Path: <martin.thomson@gmail.com>
X-Original-To: xmpp@ietfa.amsl.com
Delivered-To: xmpp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6747F1ACDE3 for <xmpp@ietfa.amsl.com>; Thu, 29 Oct 2015 14:10:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id m8ZIayE9vOhh for <xmpp@ietfa.amsl.com>; Thu, 29 Oct 2015 14:10:56 -0700 (PDT)
Received: from mail-yk0-x22c.google.com (mail-yk0-x22c.google.com [IPv6:2607:f8b0:4002:c07::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EAED81ACDBE for <xmpp@ietf.org>; Thu, 29 Oct 2015 14:10:55 -0700 (PDT)
Received: by ykdr3 with SMTP id r3so56459799ykd.1 for <xmpp@ietf.org>; Thu, 29 Oct 2015 14:10:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=6h1nXzCAumT/b5b9uvkI9j6uRPDur/UkqX248FWnrl8=; b=ROeNVLwJ9uaQxY37+/CqHnbEXSAwwtnNZjv3zTUTF9dC+eoIcyyXqqg8OxctewbJtr OHlLajyxoK2wSWmP60HVOzo2r66WTtpvBTMAoOq2749vTpxhwLE2KISi1J0qnOZVvqUm INTKimsq0Z3JZAqxwtcDsRyhCZ2JhYZtUz9YUZnHtQxCQeCNgAHPLqQQ9MgclGoAQoj+ TDdnlWX3Wk/I6n/+NepJCHI+bBmFOGuTLC0YjsTkMiTbwV2M7T+i9ASlyy2QKkAV0avY Mwfy78wwvGn02pXPjHTesGWT5M766wIMXhzf5f0qt75T2EdEsf2LM5IrtGE5tmXRTITE BVvQ==
MIME-Version: 1.0
X-Received: by 10.13.196.196 with SMTP id g187mr3628994ywd.98.1446153055231; Thu, 29 Oct 2015 14:10:55 -0700 (PDT)
Received: by 10.129.132.145 with HTTP; Thu, 29 Oct 2015 14:10:55 -0700 (PDT)
In-Reply-To: <56326001.1010300@strb.org>
References: <562AA40E.40407@nostrum.com> <562E5F53.9060104@geekplace.eu> <CABkgnnXHLAdMwA9V_7U-5Yh=8rYtvZw-KatcJc3gVQwzzuFK0w@mail.gmail.com> <5630C2C7.6030907@geekplace.eu> <CABkgnnWb3Hyjh1RX3L_6eE-+zo-Q99dCjPxN5L08RDg9PUNYNg@mail.gmail.com> <CABkgnnUPWA0fr95PeqCoEpVHXzzvJNBXXCN++tGF9V+06_Nyww@mail.gmail.com> <56326001.1010300@strb.org>
Date: Fri, 30 Oct 2015 06:10:55 +0900
Message-ID: <CABkgnnWhkQMsO2NfnoVWN-gtMFLp15yOatE-qXsqKewq2OYoyQ@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Andreas Straub <andy@strb.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <http://mailarchive.ietf.org/arch/msg/xmpp/3vHH3wPqT6iF4mMbh8s02cz5kQk>
Cc: XMPP Group <xmpp@ietf.org>
Subject: Re: [xmpp] New(ish) draft: Secure Messaging in XMPP
X-BeenThere: xmpp@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: XMPP Working Group <xmpp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/xmpp>, <mailto:xmpp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/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: Thu, 29 Oct 2015 21:10:57 -0000

On 30 October 2015 at 03:05, Andreas Straub <andy@strb.org> wrote:
> Hi,
>
> I'm the person behind the OMEMO spec, so I'm obviously a bit biased, but
> I thought I would weigh in on this specific point.
>
>> For a system where the messages are stored, this is largely a
>> pointless exercise. Destroying the messages is also necessary to
>> ensure that they cannot be recovered.
>
> I feel strongly that there's nevertheless a significant benefit to be
> gained from some form of forward secrecy. It's still the difference
> between an attacker having to break one secret and being able to decrypt
> the entire history, versus having to break one secret per message (or
> sub-chain in the axolotl world). I would actually argue that in a
> stored-messages scenario, frequent key update is *even more important*,
> because the impact of a broken secret can be so much higher.

I think that you will find that the proposed design does have the
ability to perform frequent key updates for both symmetric and
asymmetric keys.  It's just that we don't have anything that would
allow something like the Axolotl per-message switch.

>> (Other systems address this in part by provisioning a
>> public store with shares ahead of any need for others to use them, but
>> these systems work poorly in multi-party scenarios.)
>
> Are there any specific problems with multi-party scenarios you could
> elaborate on?

Elaboration was in the next paragraph :)  I don't think that there is
much more to it.

>> In the case where there are multiple agents in a chat - a scenario we
>> consider to be critical for usability reasons - if any one user agent
>> is offline, any message encrypted for that agent has to use a key that
>> can only be unilaterally updated. Messages destined for the offline
>> agent will necessarily depend on the private keying material on that
>> agent, which cannot be updated.
>
> You make a good point here, in that conversations that involve a device
> that is offline for long periods of time must necessarily degrade their
> forward secrecy accordingly.  However, this is not necessarily the
> average use-case. In fact, its a rare edge case. I would argue that a
> protocol which always provides the highest level of forward secrecy that
> is possible in any situation is preferable, even if in certain
> pathological cases, the security will degrade to a fixed-secret
> equivalent level.

My experience with this is that this is far from unusual, rather that
it is the norm that one or several participants in a discussion are
offline, potentially for extended periods.  The real challenge is in
deciding if you are willing to cut them out of the conversation
entirely at some point.

>> We value function over perfect security and consider logging to be a
>> critical part of a functional chat system.
>
> I agree wholeheartedly. People have come to expect such features from a
> modern instant messaging service, and rightfully so. But OMEMO actually
> achieves these while also providing forward secrecy. I don't think that
> we should give up on forward secrecy altogether just because we can't
> achieve *perfect* forward secrecy in every situation.

Ultimately I agree.  I think that the only place we might disagree is
how far toward the ideal we intend to aim.