Subject: [MLS] Keying Material Exporter

From: Arne Schwabe <[email-masked]>
Date: Tue, 7 Jan 2020 15:08:56 +0100

Hey,

this is my first mail to an IETF mailing list, so please point out my
mistakes to me. I also want to apologise if this the wrong way to
interact with standardising working groups.

My question is if there are any plans to add an interface for keying
material export to MLS?

Let me explain the background why I am asking this. Some might be
familiar with RFC 5705. RFC 5705 adds a standardised interface to TLS to
generate/derive keying material from a TLS session, so it can be used
for example used in the encryption an UDP datastream.

Since my background is being a OpenVPN core developer, I will write the
rest a bit from that perspective. OpenVPN basically does a standard TLS
session and then does a TLS inspired custom key derivation with normal
messages over that secure channel to generate the session key for
encryption of data packets. The TLS standardised key export (RFC5705) is
planned to replace the custom key derivation schema. Typically, in a VPN
you have have point to point encrypted links and the VPN server will
decrypt the data and reencrypt it before sending it to a different
client. And a compromise of the VPN server compromises all communication
if not secured otherwise.

The idea is to use MLS to create a VPN, where the VPN server (or some
VPN "cloud") is not fully trusted but mainly would only route and
forward the (encrypted) IP packets between the clients. MLS would then
be used to create 2 member groups for direct communication and multiple
member groups for multicast/broadcast communication. While also
application messages could be used then to securely agree on a session
key for the encrypted IP packets, having a keying material exporter
function in MLS would be much better than to reinvent the wheel.

I recognise that my intended use of MLS is probably not the
focus/intended use of the MLS protocol. But it looks that MLS could
solve my problem without the need to implement a custom protocol for the
same purpose (which is never a good idea). And the additional feature
are also nice to have.

Arne

---

From: Raphael Robert <[email-masked]>
Date: Tue, 7 Jan 2020 15:12:19 +0100

Hi Arne,

Yes, there is a way to export secrets from the key schedule. You can find the details in the “Exporters” section in the LS protocol draft (https://github.com/mlswg/mls-protocol/blob/master/draft-ietf-mls-protocol.md <https://github.com/mlswg/mls-protocol/blob/master/draft-ietf-mls-protocol.md>)
I hope that helps, otherwise let us know.

Thanks

Raphael

> On 7 Jan 2020, at 15:08, Arne Schwabe <[email-masked]> wrote:
> 
> Hey,
> 
> _______________________________________________
> MLS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/mls

---

From: Arne Schwabe <[email-masked]>
Date: Tue, 7 Jan 2020 15:33:47 +0100

Am 07.01.20 um 15:12 schrieb Raphael Robert:
> Hi Arne,
> 
> Yes, there is a way to export secrets from the key schedule. You can
> find the details in the “Exporters” section in the LS protocol draft
> (https://github.com/mlswg/mls-protocol/blob/master/draft-ietf-mls-protocol.md)

Thanks. Yes, that looks like what I am looking for. I did not realise
that the draft-08 was that outdated compared to the version of GitHub.

Arne