Re: [tsvwg] DTLS in SCTP solution
Magnus Westerlund <magnus.westerlund@ericsson.com> Thu, 23 March 2023 09:17 UTC
Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C6BA8C14E513 for <tsvwg@ietfa.amsl.com>; Thu, 23 Mar 2023 02:17:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.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 eA89LQKeukDd for <tsvwg@ietfa.amsl.com>; Thu, 23 Mar 2023 02:16:56 -0700 (PDT)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0605.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::605]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 84BD5C14CE44 for <tsvwg@ietf.org>; Thu, 23 Mar 2023 02:16:56 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sh4fvI0dGVGhT+KDD3laAxUBHhZ1NYXP/JHTjwo+1btFFzT6zqPzV4lDeKc3vTeo+ov4396v5ZzqTJpAUA6Xenf9ERB/mf+EZESglRW45nkw+5/4OXgfAlofPq2S0qGSfm7Q4aIRsO2i8OOfHA6FWlzT2OIZGxy98YcTGeWacGAT0TTTHe7+gWrb17HiGmoia+0g9lO5ZyQPoPCypuJ9LRUx3YLOyunxdkXX+O26UN2IATBLZ54Rk74FgbE+lgtn5FTjcxgz4aaAEsbA2urxaxZ7aF2syy5BllbqKKJIxte/gB95xyfALMyyR3wc4y1NE1ZbtHXyLZQkwE+LqpuaDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4Fm8W1UdPggyDs45kKVsSRBmDNzKNZsEXteG3wq/S7I=; b=HDMU4O/Mokcwlf+0QuAqWhw9qRcDNfHTi08XURmxF+SrV8YVe/CW7Qe/QBWUDYVAZxZW1WSnyCrOux8VyBSPTDdJ80LSsWLPBEIaUSzX4Mt0dukuZ/cuMYppnhj8//Q9zOyPlrwXlMRRB2ebjJcziEXP4uyY7CVG1TRv7res35VTOfVCWkhWM2indwWbwoH6HB+XW9R/S29p8CU7Wzg1Ej3uPBlZMFrnQPPDjq9lDi0vGg0qavMmhSRfYINRvpVOmZ++ILL0I6wR711kk7jt6E5v/R4h2PaBfVIOpVH0SX97TEE3G29GnZilIpLhUD99FlsQhw6hYlgnxuwzHD0T+A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4Fm8W1UdPggyDs45kKVsSRBmDNzKNZsEXteG3wq/S7I=; b=BCaeiph0BkLK/z1beblFvBNNy3dk5ud1dP5eLXI22UMmzBE0gpaCGSjLjawfWN2OnEiXNBl2QRud4PC4MtocvhouHa899PGBwL7eJ4hRBX+PjXseiRpBzQmp3HDCAU53R8MnMDXGN2pPg01jD3V8AiFX5Ydi918GldUp3uQ3v1s=
Received: from DU0PR07MB8970.eurprd07.prod.outlook.com (2603:10a6:10:40e::17) by VI1PR07MB9801.eurprd07.prod.outlook.com (2603:10a6:800:1d9::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Thu, 23 Mar 2023 09:16:52 +0000
Received: from DU0PR07MB8970.eurprd07.prod.outlook.com ([fe80::e2f1:d43:e395:3a5d]) by DU0PR07MB8970.eurprd07.prod.outlook.com ([fe80::e2f1:d43:e395:3a5d%9]) with mapi id 15.20.6178.038; Thu, 23 Mar 2023 09:16:52 +0000
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
To: Michael Tuexen <michael.tuexen@lurchi.franken.de>
CC: tsvwg IETF list <tsvwg@ietf.org>, John Mattsson <john.mattsson@ericsson.com>
Thread-Topic: [tsvwg] DTLS in SCTP solution
Thread-Index: AQHZQeZiWO2APSZodUCmpCt91TORzq8Edd2AgACv5xE=
Date: Thu, 23 Mar 2023 09:16:51 +0000
Message-ID: <DU0PR07MB8970FD29E4EE3881A033DF6395819@DU0PR07MB8970.eurprd07.prod.outlook.com>
References: <PA4PR07MB8414B23B0D6BF4F71CA52C5F95A09@PA4PR07MB8414.eurprd07.prod.outlook.com> <42858D2B-F323-49E2-9722-B97C084994FA@lurchi.franken.de>
In-Reply-To: <42858D2B-F323-49E2-9722-B97C084994FA@lurchi.franken.de>
Accept-Language: en-US, sv-SE
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DU0PR07MB8970:EE_|VI1PR07MB9801:EE_
x-ms-office365-filtering-correlation-id: 7140a4d6-3111-4fb3-927c-08db2b7f56bf
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 2cziYYehEnvd+wx5Fmd5gM7gi9Hh4x5B9QmCF4Qludhxhhs+Px1znDYfDfuSMNyNmY3e7yOiOB2pUhSfqQ9IuDRMjHX+gSBY8eSYKSGCnf1YKwDDdjZFQQPChfTgtPLydDSG1gqXOKlXvTr9GsptZXJDjVR+qO4UKAEeodUpi/zXiQK8xAzTVWU5qmg/EFnaNqYnNNThY/p0Xf0pBOTN2uccu00jq62X+3yhVBJQAaK7qof2OxKvCebVKIl2q0BOaZJKNrYsNvsJWBd3L4c+O4VJHmi9tjclmc7p8bivgPjDMNk1ZA9yMK0QpiLl1HiiPPFK+IA7LqKzLYSFCgpEh3SYKhjdqSQdv66/SrlL8lc4JsGwZ8lF9e4J73ZTgy2GulKvM+L0uuqbCFmphQ59HktLNckJYd7fEX1xsJ3AmXvzngs3f38OS83yMSCeSZ/W5eVRk/0cCsYx4jO6S1N9EnAU2yYirA3at7AMXUxWZaGTCgjMmcNJBmYNmfRoWmGg+3mGit0x7RZP26X5sGUBmNIczDA52b+kwF40xzYKXdTqUKO18ARlJOOD7T2KsXH6J00MH0JmSi3BzeNBSMxRTA7rpOY2XzPrvf4psZ0mIBgNz1Q7kMGw/iwC8zO0oeRYJE1zp3Q0tvdPOZscqlyuYs1ctCcKiVwclwu2LcFBxWUCJxGxrPCGuiWe3YGMCo7hLnanhlCVpnN//TOjKjEHNrAZorsyu4i2eAiQlDpW/YI=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR07MB8970.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(136003)(346002)(366004)(396003)(376002)(39860400002)(451199018)(4326008)(186003)(6506007)(9686003)(26005)(966005)(7696005)(71200400001)(54906003)(83380400001)(316002)(107886003)(478600001)(64756008)(66946007)(76116006)(66476007)(66556008)(52536014)(91956017)(41300700001)(82960400001)(38070700005)(8676002)(5660300002)(6916009)(66446008)(44832011)(166002)(8936002)(38100700002)(33656002)(55016003)(86362001)(2906002)(122000001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: fuYZ136DhEIlsT7nPfMOt8xQXOsZecBYZWuQ/hBJhoLQh1kwU2u1n9B05RAmbSSL4V591OQOS2NlGOJYuMxluyFD8VoseWqITTcx7RPxJhlrykAK2oJpWatq287uv/3NQFILPFE6iqytuLMMqTlC3gDevu17Bl9IQNTCm1772+AK/V6qbkMO0/A2/I6VY7y9IOFPlKjvnG/gst/HXYIgGIpsATtE4fYrIVmrEEkt9CyLx6Em0/zjYIxkwC/5TOPj1Mk2RwexFpPKhAsDFsUCWJmFARah/Dqqa6RD4gVzGO53+IqvjQrGjCvVZ4YSAB2VrlSm84peTOGYGsodGfvxfpIbA4PhKp65RbyAwd9yrjy3fR9oc/polouMyQChuOSn3FrZwY/gTCWgU4w/t/rVBu/3F4SS8L2Q4Of6e9sh0nTzJ0iWTDCoiIcjiMCgRIFSn0iQC3WXxvx4Gws5ddEdHzAriWeHkU4deBbemtWWDWa5Mbr6/pyDjBgvAB7O87KefbJCeCuiM8d7X9Ryj3vxW1DBhg5kQG2yeIsWDg8oHjNvFw2lLrN62sJtYfB8Qb1rn8kYrJMb+AiPhJfBbCMOZRiwk6UvCEJ49vxTmKqz3P+ej8iXv+H0ZvmPNGbIzs6X58/t+fI+PGtXa0jH0MwqaWBVnVjMsWqPQfjSVWTV8SZoYfhvBscTYnrmNJRSRyiGcekxz30mxnW77z+vVXefCBdqklu7vlaVk5kIknlYCOfEmNEDCXL8bkyvaVry8SqHeOzhpBM0vef7QI0GcDMMMetjJeRrqLtYRSp9cT5oU10jMLFPrsPRYJGOWTfnpcoC5uTdj4qHZeOIRFjS5gBJJBBiO+htOgJ1B9JrecrEo5dltoCihrFG2ckmAr6mnlJi6FB946tquEKyMqkA2+Afx1N/YLHtybylLDk8slBz2t/sNHD4my8wC1wG422h0xaNVhlP1D7wSW/p4BmZ/u6IKi1sbZUds+DdH5J3jhRiRNkdYkYizMwPE9ZZG0FpspLns3p61zwYcblc4sQSZJXl6BkNYHClncjhwELIiFQFT4hKmOhnbcxPPo/S3sFN/L9CsWZO771MUGHhYpg2NiywO99DxekXAYVSNzqMZbsodYH+z+YZgJpihWw/RBAOv3ypz2mXBtMrAQkUyuyqSKisvp3khd2X1qc0EDCHdqR61ixB1lNp3+yZ+mSHsDyZWk2wDjDZTR3EU2N7nPDkjmpL+eEymvdzDSQN9SuZ6v955DyGe29GQ359wc+GJP/RRBlNKomMYoEehkOagMaOKT0uF2hn3yqSIASuBnWWmfYb/PWz8FUZo9DQpJOEFDrAffYXJg5tqtlGMXvrJ5MK2sPayL6SDnWI5vWUr0cn8n8skvSP/SGfZYy8Penu0T0JPgux6D5lAqfchP4xjePKo8i/MIhvA6k2CArLh/GhFVoUzVGdYboW8M8YMbMaJZ0OUkaxaV6FhOkqUhL+LMfB40EkFzuk9LAQPKSwewss5XdABwViBhxGVHwMNFFTwdzGvvTnpyr6E9PwRksm2LNmuwjS1GlI+y6OimjwMid7bYsfIonAZOJJK7fUdSvl8ZiPpIcBJPCTgnWn5QoT89uVhxHPkWgNHkBUVYnXQBecPY1jYBo=
Content-Type: multipart/alternative; boundary="_000_DU0PR07MB8970FD29E4EE3881A033DF6395819DU0PR07MB8970eurp_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DU0PR07MB8970.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7140a4d6-3111-4fb3-927c-08db2b7f56bf
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2023 09:16:51.8512 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: QVMMidyWaoWe7iNCNK+so01i4mzhKyPyG0T3uQ4JxWc9eQg3Hpewz3oPcgSL2ImgqWSuFoqn0JN/GEPwdWHAAXBzsP6TmpIQYo4tSnCfgS8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB9801
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/jRIvopgwo6xYPyXR50O1dnuwiJY>
Subject: Re: [tsvwg] DTLS in SCTP solution
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Mar 2023 09:17:00 -0000
Hi Michael, Many thanks for the review. Comments inline. 1. Why is not not allowed to bundle chunks with the CRYPTO chunk? I can understand that in ESTABLISHED, but not in the other states. MW: So this is to keep things simpler, avoid any synchronization needs and not force a MTU handling of the bundling onto the crypto chunk handler. It is clearly possible to allow it, but it would mean that you have two independent process that creates chunks and bundling them. As you ask below in 3) there are two independent congestion controls creating data here and when either crypto chunks for the handshake like DTLS handshake, and the ones carrying SCTP control chunks are independent and neither expect any additional delays. Thus, this non-bundling minimizes the code, allows minimal extra latency in the encapsulation into SCTP packets. Any specific chunks you expect to benefit from bundling? I would note that the expected protection engine traffic is basically a 3-way or 5-way handshake with each flight being at most a couple of kbytes initially, and then a 3-way for rekeying, like every 2 hours or so. So there is not a lot of efficiency loss here for long lived associations. 2. Why are you sending ABORT chunks followed by ERROR chunks? This does not make any sense to me. The receiver will process the ABORT chunk, kill the association, report that to the upper layer and then can't really process the ERROR chunk anymore. MW: This is clearly a mistake in the text in regards to ordering, it should of course be the reverse. Thanks for noticing it we will correct this. 3. I do understand how you use the CRYPTO chunk to protect an SCTP packet. It is similar to the AUTH chunk, just doing encryption. However, I do not understand how to use the CRYPTO chunk for DTLS messages. If I understand your proposal correctly, you will use DTLS retransmissions in case of packet loss, since you don't run a timer and loss recovery for CRYPTO chunks. But how is the path been chosen? How can you make use of multi-homing? DTLS does not know about this. MW: So on a general level crypto chunks using a particular protection engine can generate packets from two sources. One is the packets coming from the SCTP stack. The second one is what is necessary for any in-band initialization and other management in the protection engine. We allow the protection engine to send what it needs to do as crypto chunks, and it is up to the protection engine to be able to separate its in-band messages between the two protection engine instances in the two peers from protected SCTP packet payloads. Thus, in the case in DTLS the DTLS handshake, any error messages and termination i.e. DTLS Alerts are sent as such generated messages. When it comes to the path I do realize that we failed to describe this. Our intention was to have these messages use the path that SCTP stack currently has as an active path. So what SCTP thinks is a viable path will be used. We didn’t think this would normally result in any significant issue, only some additional delay as SCTP detects the failure. However, I do realize depending on configuration maybe some triggering of an SCTP level check of the path so they are updated might be needed. https://github.com/gloinul/draft-westerlund-tsvwg-sctp-crypto-chunk/issues/5 4. I can see how you can implement this using a userland SCTP stack and a DTLS stack. However, I have a hard time to see how to implement this in a kernel SCTP stack. I guess one would do the encrypt/decrypt part in the kernel and the DTLS negotiation in userland, but the required socket API is not clear to me. In my opinion, whatever solution is been worked on, it should work for userland and kernel stacks. MW: Yes this clearly needs an API between the SCTP stack (Kernel or user land) and the protection engine. As OS are different and different requirements applies to this, I think this is something that do need to be implementation specific. We could add an abstract API focusing on what needs to exist but with no details on how to actually implement it. I really like the idea of an CRYPTO chunk. However, I would think of it more in the lines of the AUTH chunk. You let the SCTP stack to the encrypt/decrypt stuff and specify a socket API for delegating the credentials. This could be similar to kernel TLS. However, I would also prefer to run the DTLS handshake messages as normal user messages in DATA/I-DATA chunks and not change the SCTP state engine. This way you can make use of the SCTP loss recovery and retransmission strategies including multihoming. MW: I am happy to discuss this choice for the handshake and control messages. So a couple of reasons for not doing this is that then you have the ULP and the protection engine control messages interact with each other in the user message interface of the SCTP stack. For example a reliable message on stream 0 for DTLS handshake message for a “rekeying” can interfere with the transmission of a ULP message on stream 0. We also thought the state management with protection pending protected -> established ensures that the ULP can’t send. With your proposal you will have to allow some PPID or what ever you use to identify the protection engine traffic through the upper interface of the SCTP stack but not the ULP. But, maybe this can be done in a dedicated upper API anyway. If I'm reading section 1.3.1 of you DTLS document, I'm wondering why you do not consider SCTP over DTLS. You can use that with an unmodified DTLS stack, you need to tweak the SCTP stack a bit. The only thing which is missing right now is the support of multihoming. But this can be worked on... MW: So solving the multihoming aspect of IP/UDP/DTLS/SCTP is one challenge here. The other is that that would impact the O&M systems where we need to deploy this security solution. Making deploying it much harder. Cheers Magnus
- [tsvwg] DTLS in SCTP solution Magnus Westerlund
- Re: [tsvwg] DTLS in SCTP solution Michael Tuexen
- Re: [tsvwg] DTLS in SCTP solution Magnus Westerlund
- Re: [tsvwg] DTLS in SCTP solution Michael Tuexen
- Re: [tsvwg] DTLS in SCTP solution Magnus Westerlund
- Re: [tsvwg] DTLS in SCTP solution Michael Tuexen
- Re: [tsvwg] DTLS in SCTP solution Magnus Westerlund
- Re: [tsvwg] DTLS in SCTP solution Michael Tuexen
- Re: [tsvwg] DTLS in SCTP solution Michael Tuexen