Re: [Tigress] Sketching a simple design

Dmitry Vinokurov <dvinokurov@apple.com> Mon, 07 August 2023 21:24 UTC

Return-Path: <dvinokurov@apple.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 1AD0EC151545 for <tigress@ietfa.amsl.com>; Mon, 7 Aug 2023 14:24:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.108
X-Spam-Level:
X-Spam-Status: No, score=-7.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 X6fKtMnxFtpD for <tigress@ietfa.amsl.com>; Mon, 7 Aug 2023 14:24:44 -0700 (PDT)
Received: from ma-mailsvcp-mx-lapp03.apple.com (ma-mailsvcp-mx-lapp03.apple.com [17.32.222.24]) (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 7134CC15106D for <tigress@ietf.org>; Mon, 7 Aug 2023 14:24:44 -0700 (PDT)
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by ma-mailsvcp-mx-lapp03.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0RZ100ABDI4YP300@ma-mailsvcp-mx-lapp03.apple.com> for tigress@ietf.org; Mon, 07 Aug 2023 14:24:43 -0700 (PDT)
X-Proofpoint-GUID: nEghuVYmYSMXqLex_CUrCmEwF2LIzdNI
X-Proofpoint-ORIG-GUID: nEghuVYmYSMXqLex_CUrCmEwF2LIzdNI
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.591, 18.0.957 definitions=2023-07-11_09:2023-07-11, 2023-07-11 signatures=0
X-Proofpoint-Spam-Details: rule=interactive_user_notspam policy=interactive_user score=0 malwarescore=0 mlxlogscore=713 spamscore=0 adultscore=0 phishscore=0 mlxscore=0 bulkscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2307110153
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : content-type : mime-version : subject : date : references : to : in-reply-to : message-id; s=20180706; bh=TGA/kzqmkompcQO0ICiQbcs4W1c4reA9QBTAMWMfsEk=; b=tpp/07P1FaPw3jUbW8ooc4pHNQnFpdkp2P7rWAkfUudL7V5bSlTGIZbeBl1uJdw4dm5E pD8fHLeo3fAcYhWpiLVwmkHj3Y+UgshxfJo34WrE/CUWxi2UIWjEZG7JMpluP0vxkqgd 5felQwJKacrfR7SNo2l+oLtJ/Zy7Qq6BXO6C8HJ2ne/ylTuPjcbsWp8QHTdOUUw3n5tK 893akG81qC3BtGckFQCSyVFYHOu7Ll2fDeMlRusRHLQQeCBNXlC4am/NqF365QPfsJmS QrRSGqniwTVsDtszzfYUTQBAS7WiVAe9Vmlm+ovpgzkrl9mR/mu3B07vpoNNSISnURhP vw==
Received: from rn-mailsvcp-mmp-lapp01.rno.apple.com (rn-mailsvcp-mmp-lapp01.rno.apple.com [17.179.253.14]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPS id <0RZ100793I54DNH0@rn-mailsvcp-mta-lapp02.rno.apple.com> for tigress@ietf.org; Mon, 07 Aug 2023 14:24:40 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp01.rno.apple.com by rn-mailsvcp-mmp-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) id <0RZ100500I4B4N00@rn-mailsvcp-mmp-lapp01.rno.apple.com> for tigress@ietf.org; Mon, 07 Aug 2023 14:24:40 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 3e1845296faf80d7eae3ec6eacb77b16
X-Va-E-CD: a7082d13f0102ba0df1473839810ea8f
X-Va-R-CD: 88db0056c6e4bb25b8e4907d0887cc61
X-Va-ID: 6539d80f-e7de-4182-b399-9da9ac1c4656
X-Va-CD: 0
X-V-A:
X-V-T-CD: 3e1845296faf80d7eae3ec6eacb77b16
X-V-E-CD: a7082d13f0102ba0df1473839810ea8f
X-V-R-CD: 88db0056c6e4bb25b8e4907d0887cc61
X-V-ID: 907397d6-2b10-429d-ac82-41e590d710f8
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.591, 18.0.957 definitions=2023-08-07_23:2023-08-02, 2023-08-07 signatures=0
Received: from smtpclient.apple ([17.233.18.228]) by rn-mailsvcp-mmp-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.23.20230328 64bit (built Mar 28 2023)) with ESMTPSA id <0RZ100KY7I54HB00@rn-mailsvcp-mmp-lapp01.rno.apple.com> for tigress@ietf.org; Mon, 07 Aug 2023 14:24:40 -0700 (PDT)
From: Dmitry Vinokurov <dvinokurov@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_FA7363A6-2DB3-46F8-917F-957742F1D989"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\))
Date: Mon, 07 Aug 2023 14:24:29 -0700
References: <mailman.721.1690560557.4452.tigress@ietf.org>
To: tigress@ietf.org
In-reply-to: <mailman.721.1690560557.4452.tigress@ietf.org>
Message-id: <AE29E626-2751-441E-9176-2F5EE3817AE9@apple.com>
X-Mailer: Apple Mail (2.3731.600.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tigress/xVpNfQB4P5im4JivuWU8ciz2xBY>
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: Mon, 07 Aug 2023 21:24:45 -0000

Hi Erik,

Thank you for proposal, here is some feedback.

I think on a high level the proposed protocol can work. As always, there are a few "if"s.

Comparing it to the REST/JSON protocol, I really can't see significant improvements with multiple resource creation (R, R.1, R.2 etc).
 
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.

The larger problem, as I see it, is with reliance on security of the channel used to pass the unique value of R / URL to the shared resource from sender to receiver.

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).

Using a real world analogy - sender puts a key (to a room) into a password-protected self-destroying case and places it into a deposit box at a train station - where anyone can access it, knowing the box number.
But only a legit receiver, who knows both the box number and the password to the case, can take it out of the box and open the case to fetch the key. 

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).

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.


Dmitry Vinokurov
 Pay | 669-269-5514 | Infinite Loop 6, Cupertino, CA | dvinokurov@apple.com