Re: [MLS] Idea for Issue #33

Yevgeniy Dodis <dodis@cs.nyu.edu> Thu, 24 January 2019 03:02 UTC

Return-Path: <zaumka@gmail.com>
X-Original-To: mls@ietfa.amsl.com
Delivered-To: mls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 393B3130DE5 for <mls@ietfa.amsl.com>; Wed, 23 Jan 2019 19:02:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 LUYcX6AdvC-i for <mls@ietfa.amsl.com>; Wed, 23 Jan 2019 19:02:00 -0800 (PST)
Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) (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 DE572130DE4 for <mls@ietf.org>; Wed, 23 Jan 2019 19:01:59 -0800 (PST)
Received: by mail-ed1-f47.google.com with SMTP id y20so3366620edw.9 for <mls@ietf.org>; Wed, 23 Jan 2019 19:01:59 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=GyNRg6UWTnMFZFZIo4VSqLxxI1jxecrBjEXiSnW9jmg=; b=KJvaJl778zj7IMTtgDTfvRbQ54w/9hLct2sxB/H7+WdcXkFiGLqBgfZywyITtd00r5 ES3Z1iPHzRLc7DYQLYtyIZEnf9GT7UZ4ojKQw09gw6yYXodyGaz92UqWWGZYC7fQorG8 ZKbLM0x5DVRVXNuTUG1waL/sHpaN/qdiDrCggIvnVWFrfgXMxQwJczpiEGSWZF5VNsNp M7LLE6bPVHr64lzP8xCfH/X8tPFXol5PV3j/JM3vYK+C3IaRDtl97WUEmPfSK0c+ej5P R671X/vswp/1fbJv0unZT1xfuL+NYn/M2fcewr2KbOgXWCwGTdAiQPR7dKszj8peKVHF x4fw==
X-Gm-Message-State: AJcUukejL9Q1FX2QX8+4WYCYJ1v1Ph3o4wCv3HMoD80HIT/d8MCh4DqP ZmXxu0As4iIK6wslTDspybp6XPpjd3cAjq2qrQt2PqQ/
X-Google-Smtp-Source: ALg8bN5oLvoE8zoUDKGTceWy91J4FhyLGvy7bpxzXij188PiD61h6zsli+sOOs0+s6nQtspCxsTZukCIY8DBgJcNF7Y=
X-Received: by 2002:a50:f4c3:: with SMTP id v3mr4848859edm.196.1548298917767; Wed, 23 Jan 2019 19:01:57 -0800 (PST)
MIME-Version: 1.0
References: <CAFDDyk8Onmkmn=BeK27X5cXVsN1ardw745vX2QqxYhwYnAC-RA@mail.gmail.com>
In-Reply-To: <CAFDDyk8Onmkmn=BeK27X5cXVsN1ardw745vX2QqxYhwYnAC-RA@mail.gmail.com>
From: Yevgeniy Dodis <dodis@cs.nyu.edu>
Date: Wed, 23 Jan 2019 22:01:47 -0500
Message-ID: <CAMvzKsgHxpU6wjH29DsjSBSGaMc-Cy2_QAx0QYq+_-0cN6D1oQ@mail.gmail.com>
To: Nick Sullivan <nick=40cloudflare.com@dmarc.ietf.org>
Cc: "mls@ietf.org" <mls@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/ZphhjQ9g46pyMMBtdtCw6jIkI9c>
X-Mailman-Approved-At: Thu, 24 Jan 2019 17:35:02 -0800
Subject: Re: [MLS] Idea for Issue #33
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Messaging Layer Security <mls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mls>, <mailto:mls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mls/>
List-Post: <mailto:mls@ietf.org>
List-Help: <mailto:mls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mls>, <mailto:mls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 03:02:02 -0000

Hi Nick.

As I told Jon and you in Mountain View, this is a really nice idea.

A couple of concerns regarding the specific proof of DLEQ by the
receiver. Effectively, a malicious sender
can send a ciphertext of the form <Q, garbage> for any value Q of its
choice (not necessarily the one where he
knows r such that Q = rP, and the receiver will "complain" by opening
the value aQ. In crypto terms, this corresponds
to CDH (computational diffie-hellman) oracle: given (P, P' = aP) fixed
and any value Q, return aQ.

There is an old paper of Maurer and Wolf which shows CDH and discrete
log (DL) are polynomially equivalent in certain groups:
ftp://ftp.inf.ethz.ch/pub/crypto/publications/MauWol99b.pdf
I think standard groups we use do not fall there, but I did not check
the paper in more detail.

Of more immediate concern, this opens the following simple chosen
ciphertext attack. Malicious sender wants
to decrypt some old valid ciphertext (C=rP, D). He wants to obtain D /
xC, so suffices to compute xC.
He generates random r', and submits ciphertext (C' = r' C, garbage).
Receiver will complain by opening
x C' =  r' (xC), from which can raise to 1/r' to recover xC, and hence D/xC.

Is this chosen ciphertext attack possible? What might save us is that
the only people who encrypt to node with public
key aP, are the nodes in the subtree rooted by the sibling of a, since
only then a is on the co-path. And these nodes anyway should be
allowed to decrypt all ciphertexts encrypted using aP to the subtree
rooted at a. But I feel we might concoct a scenario where this attack
could be relevant. Not sure now, just pointing out this concern.

In general, one malicious insiders are allowed, my feeling is that we
need some kind of CCA protection, and basic ElGamal will not be
secure.

Still, I love the idea, and hope we can make it work...
Yevgeniy





On Wed, Jan 23, 2019 at 8:34 PM Nick Sullivan
<nick=40cloudflare.com@dmarc.ietf.org> wrote:
>
> Hello all,
>
> Relaying some ideas that I posted in the Github issue that allow a participant that was maliciously removed from the group by a bad update message to publicly prove that it was given an inconsistent update. This is an idea based on lightweight zero-knowledge proofs.
>
> https://github.com/mlswg/mls-protocol/issues/21
>
> Recall the following from ECIES:
> Say that you are encrypting a ciphertext X to a user with private key a, public key A (= aP) and elliptic curve base point P. The ECIES ciphertext is the pair (rP, c) where r is a randomly-chosen scalar and c is the encryption of X with a key derived from k=KDF(rA)=KDF(raP).
>
> The key to this mechanism is revealing enough to prove to a third party that an update received by the user is decrypted to an inconsistent X than an update received by another participant, but without revealing the private key a (which would compromise the confidentiality of previous messages).
>
> Proposed modifications of the protocol:
> 1) Add a mechanism that allows a party with access to a supposed secret value of a node to validate the consistency of the chain of hashed derived from that secret. This could be implemented by creating a public value that consists of a KDF of the secret value with a known public value for every node that is being updated. To check a secret value, the validating party needs to compute the KDF for every node up the tree to the root and compare with the published values.
>
> The KDF acts as sort of a public integrity hash of to the node's secret value.
>
> 2) Add a Schnorr NIZK of knowledge (RFC 8235) of the random value r with every ECIES ciphertext. This proves that the r used in the ECIES encryption is known to the updater and rP is not trivially derived from some other previously sent r'P.
>
> For one participant to prove that they were given an update message that did not include the correct node secret, that participant can reveal the following:
> arP, DLEQ(arP:rP :: P:aP)
>
> Where a is the node's private key, and DLEQ is a discrete log equivalence proof that shows that arP is rP multiplied by the private key a of the user.
>
>
> So in summary, we would add:
> - Proof of knowledge of the randomness used in ECIES
> - Public KDF of each node's secret value
> and then a member could prove to an auditor that it was given the wrong secret by revealing:
> - an intermediate calculation of the ECIES decryption, a DLEQ proof that the right key was used
>
>
> I'm eager for this proposal to have some holes shot in it.
>
>
> Nick
>
>
> _______________________________________________
> MLS mailing list
> MLS@ietf.org
> https://www.ietf.org/mailman/listinfo/mls