I refer to multi-streaming as the ability to send two or more streams of some unit of data (block, byte streams) in one established association/context. SCTP is an example and the protocol I was thinking about when this question came to mind. How could I efficiently secure data sent over multiple streams?
What I see in many documents is something equivalent to N handshakes have to be performed for N streams. This seems to be suggesting each stream is independently secured. A counter example would be to add multi-stream-over-one-stream to TLS instead of naked TCP. But that would not include independent loss/order recovery.
What I was wondering about is making security more efficient over multi-streaming (like SCTP) by first securing one stream then using that stream to secure more streams without the full handshake. If stream 0 is already secure and a sender wants to start sending some data over stream 1, my idea is to generate a random key and send it over stream 0 with info that it is for securing stream 1. But is this safe even when stream 0 is already secure?
I was thinking of using SCTP (for other reasons) and do security management over stream 0 and data over streams 1 and up. EDIT: The idea is to speed up starting to send data by the sender generating a key for a new stream X (X > 0) and sending that key over stream 0 and then sending encrypted data over stream X.
This question is the inverse of Has networking using multiple “unrelated” connections to share an encrypted data stream been researched?Has networking using multiple “unrelated” connections to share an encrypted data stream been researched? The streams I want to secure are related by being part of the same association with no intent to bond them (they would stay independent).