Re: [Tigress] Sketching a simple design
Eric Rescorla <ekr@rtfm.com> Tue, 08 August 2023 12:52 UTC
Return-Path: <ekr@rtfm.com>
X-Original-To: tigress@ietfa.amsl.com
Delivered-To: tigress@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 993E0C151711 for <tigress@ietfa.amsl.com>; Tue, 8 Aug 2023 05:52:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20221208.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zbEhO2sGDykJ for <tigress@ietfa.amsl.com>; Tue, 8 Aug 2023 05:52:43 -0700 (PDT)
Received: from mail-yb1-xb30.google.com (mail-yb1-xb30.google.com [IPv6:2607:f8b0:4864:20::b30]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 105DFC15171E for <tigress@ietf.org>; Tue, 8 Aug 2023 05:52:42 -0700 (PDT)
Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-d5869d9651aso1236149276.2 for <tigress@ietf.org>; Tue, 08 Aug 2023 05:52:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20221208.gappssmtp.com; s=20221208; t=1691499161; x=1692103961; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=PI7GELRCTfqyDVwsPpMpuorWSOWMUoYwapOeo7vINds=; b=H5MbXkKlbKmH18zx/Fp7f2ssRMLRiW6wvw57JdJI9Q9/a0VGjec03uIqrzNyKxRIRZ KC664IFLMFdc2LMaQsxLBBpf71VfnOQYqwLd4vC/yu1m9kZFlzOj4NghJdoQ5odCcR08 QRIBrjY15g53TD2EuK1uS1ZFzNLod6jUTs7Dbyk1nT18+Y5rc95ras7aNFg4M4e9AOMW 0qJFI2UgklrRggROnVPBO+7fLmcmekpfPfdmKvXKmFmRZ6l1V97yn4F7LPWemUvU+Z4C Er1z/AaR0/bjd6ECVEFIiQ7fUPk/YbUDCd8lP7R40e5iCORFFglbWySv08aZ5AKmyJE+ z7ww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691499161; x=1692103961; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=PI7GELRCTfqyDVwsPpMpuorWSOWMUoYwapOeo7vINds=; b=Avmt308y0IFRzSsCX43Rh9h+89jjFf8ZDo0icnE5ZEuEH4YGz3/SWszasPlBgNmlrX m6t3MCDZRDRNMeD3jXnbGWTLNcSk8QGCmYBSiVyz6T2UR9pEby9/3ZyW4PN6RC40FNJI Y9Zoj1H4Wi1c39hfFDocnp4dcAORsudLHz6W0SqTZ211BHHXYSvXWP0JOt7Y4aEcgXDp mdv2igPId6E1B8zQe9weYnNv34Veb1wBG0OOPh3lcjEPyFQSpbH2nKPw5aD6Thvd6pPX e+x90RvVB9Y0Q1yKLxxoK6dSYxZA6iYyDCZB0Ui8NCCXS6KPsRRnrR+sl3LliW+DZBxd 1x/g==
X-Gm-Message-State: AOJu0Yze5khEF9ZlIstue2El4EAFYTHR2FC5Ng79sLO29fAY8j22o1a7 22kETZmhCx8wa84qU2bjC7W6zp+qIECHJZ8ZpTk25Q==
X-Google-Smtp-Source: AGHT+IHwcswqo56ev8BHGtRtNwyR/6LRsGYBaxYYfo6h0YbbjzQa3EZoQy/M8fFcF8Ff75sx3Oqm2mQ0E3wNFAZjOm4=
X-Received: by 2002:a25:4014:0:b0:d4c:f456:d563 with SMTP id n20-20020a254014000000b00d4cf456d563mr9657947yba.8.1691499160863; Tue, 08 Aug 2023 05:52:40 -0700 (PDT)
MIME-Version: 1.0
References: <mailman.721.1690560557.4452.tigress@ietf.org> <AE29E626-2751-441E-9176-2F5EE3817AE9@apple.com>
In-Reply-To: <AE29E626-2751-441E-9176-2F5EE3817AE9@apple.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 08 Aug 2023 05:52:04 -0700
Message-ID: <CABcZeBPVu+42iuy8SddT0w-EBrjtnpLCOzJZstK+UDO_S=Symw@mail.gmail.com>
To: Dmitry Vinokurov <dvinokurov=40apple.com@dmarc.ietf.org>
Cc: tigress@ietf.org
Content-Type: multipart/alternative; boundary="0000000000009f1d03060268d65f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tigress/Vver8MuqbyNHhYdf2KFUYsOkBhw>
Subject: Re: [Tigress] Sketching a simple design
X-BeenThere: tigress@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Transfer dIGital cREdentialS Securely <tigress.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tigress>, <mailto:tigress-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tigress/>
List-Post: <mailto:tigress@ietf.org>
List-Help: <mailto:tigress-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tigress>, <mailto:tigress-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Aug 2023 12:52:44 -0000
> Hi Erik,
Eric.
> One potential but rather low risk is that R generated by a client
> (collision risk) vs R generated by server - if implemented properly on
> server, there is less chance of collision.
R obviously has to be of sufficient size, but assuming it is (say 256
bits) then the chance of collision is vanishingly small.
We routinely assume that randomly generated values of sufficient size
do not have collisions in situations where the results will be far
more serious if they do, so I don't think this is a realistic
objection.
> Tigress requirements document doesn't mandate that the invitation URL
> be sent over secure channel. Therefore we have to operate under
> assumption that the channel may be insecure - such as SMS/ email;
> hence, the invitition URL - e.g. https://<server>/R can be intercepted
> (or mistakenly sent to a wrong receiver) - which is accepted and known
> risk.
>
> This is identified as a high risk in the Threat model
> document. Tigress proposes to mitigate this risk with the secret sent
> out of band and additional second factor (verification code).
It's unfortunate that the requirements are so unclear on this topic,
as I had understood from previous conversations that we *were*
assuming the integrity of the channel. I would note that the document
tend to support this and are at best ambiguous.
>From Section 9 of the Requirements Document:
An invitation for a shared credential transfer, sent to the Receiver
device shall be a self-contained and self-sufficient data (e.g. token,
URL, or QR code) allowing a user of the Receiver device to start a
process of transferring and adding a new credential. Such invitation
should be allowed to be sent over any generic communication channel
(e.g. sms, email, NFC).
And S 5.2.2 of the threat model:
Solution should require an end-to-end encrypted messaging channel
or otherwise specify a way to send a secret out of band.
Moreover, if your concern is that the URL will be compromised and
everything is protected by some short code, then we have other
problems. So, I think we probably should discuss the threat model
some more.
> Therefore, we assume that we can not guarantee that the communication
> via intermediate server is completely secure, but we want the protocol
> to guarantee that once the first receiving device starts the transfer
> flow, it can successfully complete it (first come first served
> approach that I mentioned in IETF 117 Tigress session). The content
> of the data stored in the shared resource (aka mailbox) should't be
> spoiled or deleted before the transfer completion
> (Req-ConnectionIntegrity).
>
> Going back to the proposed protocol - knowing the R, malicious actor
> can overwrite R, R.1, R.2 with harmful code (e.g. cat pictures, virus,
> spam information, ads) or just delete R, R.1, R.2 etc. There is a
> chance that this might happen just by mistake, not with harmful
> intent. In any case, this breaks the (Req-ConnectionIntegrity).
This is correct for the basic protocol but I believe not for the one I
describe later in the message under the heading "Restricting the
exchange to two participants".
> If we say that we want to delegate this responsibility to the client
> protocol, we also need to define an additional protocol for the
> communication between sender and receiver clients. I don't really see
> any benefits in adding a second protocol for the clients if this can
> be addressed in a single server protocol with resource locking between
> just 2 clients. I think that the fact that a off-the-shelf webserver,
> supporting WebDav can work for resource sharing, can't meet our
> security requirements (and hence we need to implement an additional
> protocol on the client level), is not a valid justification for using
> such web-server.
I'm not sure I follow you here. I would make several points.
1. I believe that this does meet the security requirements, without
any additional protocol other than what I've sketched above. Can
you share your concerns about why that's not the case?
2. I'm not sure why you are mentioning WebDAV here. This is just
straight HTTP. I did at one point suggest WebDAV, but having
thought through the problem more, I do not believe it is necessary.
As far as "valid justification" goes, this design has several
advantages over the REST API design in draft-art-tigress. First, it
doesn't require modifications to the Web server, as this is a
conventional configuration. Second, because the correctness and
security properties are largely enforced at the endpoints it largely
doesn't depend on the server behaving correctly beyond some simple
access control mechanisms (not allowing clients to enumerate files).
-Ekr
- [Tigress] Sketching a simple design Eric Rescorla
- Re: [Tigress] Sketching a simple design Dmitry Vinokurov
- Re: [Tigress] Sketching a simple design Eric Rescorla
- Re: [Tigress] Sketching a simple design Brad Lassey
- Re: [Tigress] Sketching a simple design Yogesh Karandikar
- Re: [Tigress] Sketching a simple design Eric Rescorla
- Re: [Tigress] Sketching a simple design Yogesh Karandikar
- Re: [Tigress] Sketching a simple design Christopher Wood
- Re: [Tigress] Sketching a simple design Yogesh Karandikar
- Re: [Tigress] Sketching a simple design Eric Rescorla
- Re: [Tigress] Sketching a simple design Yogesh Karandikar
- Re: [Tigress] Sketching a simple design Eric Rescorla
- Re: [Tigress] Sketching a simple design Eric Rescorla
- Re: [Tigress] Sketching a simple design Yogesh Karandikar