IP Library › Granted Patent US 12,567,972
Granted Patent B2
US 12,567,972 · App. 18/797,676 · Granted Mar 3, 2026

Messaging layer security (MLS) protocol-based secure channels

Inventors: Richard Lee Barnes (Arlington, VA); Karthikeyan Bhargavan (Paris, FR); Franziskus Kiefer (Berlin, DE)
Assignee: CISCO TECHNOLOGY, INC.
H04L9/3242
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,567,972
App. No.
18/797,676
Granted
Mar 3, 2026
Kind
B2
Abstract

Presented herein is a Message Layer Security (MLS)-based secure channel communication arrangement that involves a minimal set of changes to the MLS standard to reduce the redundant overhead in case of two-party (one-to-one or 1:1) communication. These techniques reduce the communication and computation complexity of both devices involved in establishing and supporting the one-to-one secure channel communication. Methods are provided to establish a one-to-one secure channel between a first endpoint and a second endpoint by performing a one-to-one secure channel handshake.

Claims (73)

1 . A method to establish a one-to-one secure channel between a first endpoint and a second endpoint by performing a one-to-one secure channel handshake, the method performed by the first endpoint and comprising:

receiving from the second endpoint, a welcome message comprising:

welcome content including a joiner secret, a session identifier, a second endpoint ephemeral public encryption key and a second endpoint signature verification key;

a welcome tag that is a message authentication code computed over a welcome transcript using a welcome key derived from the joiner secret, wherein the welcome transcript comprises a first endpoint key package and the welcome content; and

a signature computed over the welcome content and the welcome tag using a second endpoint signature key;

verifying the welcome message by:

decrypting the welcome message using a first endpoint private decryption key that corresponds to a first endpoint ephemeral public encryption key;

verifying the signature of the welcome message using the second endpoint signature verification key; and

verifying the welcome tag in the welcome message; and

upon verifying the welcome message, sending to the second endpoint a confirmation message that confirms the one-to-one secure channel.

2 . The method of claim 1 , further comprising engaging in secure messaging between the first endpoint and the second endpoint using transport encryption keys derived from a key schedule.

3 . The method of claim 1 , wherein verifying the welcome tag comprises:

recomputing a welcome transcript to produce a recomputed welcome transcript and generating a derived welcome key from the recomputed welcome transcript;

recomputing a message authentication code using the recomputed welcome transcript and the derived welcome key to produce a recomputed message authentication code; and

comparing the recomputed message authentication code with the message authentication code of the welcome message.

4 . The method of claim 1 , wherein the joiner secret is derived from a key schedule and key derivation operations performed by the second endpoint.

5 . The method of claim 1 , further comprising:

generating a confirmation tag based on a message authentication code operation performed over a confirmation key and a hash of the welcome transcript, wherein the confirmation key is derived from an exporter secret; and

including the confirmation tag in the confirmation message.

6 . The method of claim 5 , further comprising:

deriving, from the exporter secret, new transport keys for secure messages to be sent to the second endpoint in a next epoch.

7 . The method of claim 5 , further comprising the first endpoint or the second endpoint initiating a key update by sending to the other endpoint an update message that contains a fresh commit secret for a next epoch and a new key package that includes a fresh encryption key that is signed with a signature key of the first endpoint or the second endpoint that sent the update message, and encrypted with an encryption key of the other endpoint.

8 . The method of claim 7 , further comprising the other endpoint that receives the update message:

generating a confirmation key from an exporter secret over the hash of the welcome transcript;

generating a confirmation tag based on a message authentication code operation performed over the confirmation key; and

sending a confirmation message containing the confirmation tag,

wherein the first endpoint and the second endpoint derive, from the exporter secret and the transcript hash, new transport keys for secure messages to be sent to the other endpoint in a next epoch.

9 . The method of claim 1 , further comprising:

the first endpoint or the second endpoint sending an upgrade request message to the other endpoint to convert the one-to-one secure messaging session to a group messaging session; and

upon the other endpoint agreeing to upgrade to a group messaging session, receiving from the other endpoint a welcome message that contains at least one pre-shared key derived from keying material generated by the other endpoint during the one-to-one secure messaging session.

10 . The method of claim 9 , wherein the upgrade request message further indicates to add that at least a third endpoint to the group messaging session.

11 . The method of claim 1 , wherein the first endpoint is a Hypertext Transfer Protocol (HTTP) client and the second endpoint is an HTTP server, further comprising:

the first endpoint sending to the second endpoint a transport initiation message to initiate a transport connection to the second endpoint, the transport initiation message indicating an identity of the HTTP server that the first endpoint seeks to connect to,

wherein the welcome message sent by the second endpoint includes a credential that matches the identity indicated in the transport initiation message.

12 . The method of claim 11 , wherein the identity of the HTTP server and an indication of application-layer protocols supported by the first endpoint are included the first endpoint key package.

13 . The method of claim 12 , wherein the welcome message sent by the second endpoint further includes an indication of which particular application-layer protocol is to be used over the one-to-one secure channel, and thereafter the first endpoint initiates an HTTP request to the second endpoint using the particular application-layer protocol.

14 . The method of claim 1 , wherein the second endpoint is a Hypertext Transfer Protocol (HTTP) client and the first endpoint is an HTTP server, wherein the first endpoint pre-publishes an initial message that includes a credential authenticating one or more domains that the first endpoint is to represent as an HTTP server.

15 . The method of claim 14 , wherein the initial message further includes an indication of a set of application-layer protocols supported by the first endpoint, and wherein the welcome message sent by the second endpoint includes an indication of a particular application-layer protocol is to be used over the one-to-one secure channel, and thereafter the second endpoint initiates an HTTP request to the first endpoint using the particular application-layer protocol.

16 . The method of claim 1 , further comprising:

the first endpoint or the second endpoint initiating a Transmission Control Protocol (TCP) handshake with the other endpoint;

upon completion of the TCP handshake and establishing of a TCP connection between the first endpoint and the second endpoint, the first endpoint receiving the welcome message from the second endpoint over the TCP connection, and the first endpoint sending the confirmation message over the TCP connection; and

upon completion of the one-to-one secure channel handshake, either of the first endpoint or the second endpoint transmitting messages, with application data encrypted with encryption keys derived from the one-to-one secure channel handshake, over the TCP connection.

17 . The method of claim 1 , wherein the welcome message and the confirmation message are carried in respective handshake messages of an encrypted connection-oriented protocol, wherein upon completion of the one-to-one secure channel handshake over the encrypted connection-oriented protocol, keys derived from one-to-one secure channel handshake are used to encrypt packets transmitted via the encrypted connection-oriented protocol.

18 . The method of claim 17 , wherein the encrypted connection-oriented protocol is the QUIC protocol of RFC 9000 of the Internet Engineering Task Force (IETF).

19 . The method of claim 1 , wherein the welcome message and the confirmation message are fragmented according to a framing protocol.

20 . The method of claim 19 , wherein the framing protocol is the User Datagram Protocol (UDP), and the welcome message and the confirmation message are fragmented across a sequence of UDP datagrams.

21 . A method to establish a one-to-one secure channel between a first endpoint and a second endpoint by performing a one-to-one secure channel handshake, the method performed by the second endpoint and comprising:

obtaining a first endpoint key package, the first endpoint key package including a first endpoint ephemeral public encryption key and a first endpoint signature verification key corresponding to a first endpoint signature key, wherein the first endpoint key package is signed with the first endpoint signature key;

generating a welcome message to be sent to the first endpoint, the welcome message comprising:

welcome content including a joiner secret, a session identifier, a second endpoint ephemeral public encryption key and a second endpoint signature verification key;

a welcome tag that is a message authentication code computed over a welcome transcript using a welcome key derived from the joiner secret, wherein the welcome transcript comprises the first endpoint key package and the welcome content; and

a signature computed over the welcome content and welcome tag using a second endpoint signature key;

encrypting the welcome message using the first endpoint ephemeral public encryption key to produce an encrypted welcome message and transmitting the encrypted welcome message to the first endpoint; and

upon the first endpoint decrypting the welcome message, verifying the signature of the welcome message using the second endpoint signature verification key, and verifying the welcome tag by recomputing a message authentication code using the welcome transcript and the welcome key, receiving from the first endpoint a confirmation message.

22 . The method of claim 21 , wherein obtaining comprises obtaining the first endpoint key package in a message received from the first endpoint or by downloading the first endpoint key package from a server.

23 . The method of claim 21 , further comprising engaging in secure messaging between the first endpoint and the second endpoint using transport encryption keys derived from a key schedule.

24 . One or more non-transitory computer readable storage media encoded with instructions that, when executed by a processor, cause the processor to perform operations for a method to establish a one-to-one secure channel between a first endpoint and a second endpoint by performing a one-to-one secure channel handshake, the method performed by the first endpoint and comprising:

receiving from the second endpoint, a welcome message comprising:

welcome content including a joiner secret, a session identifier, a second endpoint ephemeral public encryption key and a second endpoint signature verification key;

a welcome tag that is a message authentication code computed over a welcome transcript using a welcome key derived from the joiner secret, wherein the welcome transcript comprises a first endpoint key package and the welcome content; and

a signature computed over the welcome content and welcome tag using a second endpoint signature key,

verifying the welcome message by:

decrypting the welcome message using a first endpoint private decryption key that corresponds to a first endpoint ephemeral public encryption key;

verifying the signature of the welcome message using the second endpoint signature verification key; and

verifying the welcome tag in the welcome message; and

upon verifying the welcome message, sending a confirmation message that confirms the one-to-one secure channel.

25 . The one or more non-transitory computer readable storage media of claim 24 , wherein the instructions for verifying the welcome tag comprises instructions that cause the processor to perform operations including:

recomputing a welcome transcript to produce a recomputed welcome transcript and generating a derived welcome key from the recomputed welcome transcript;

recomputing a message authentication code using the recomputed welcome transcript and the derived welcome key to produce a recomputed message authentication code; and

comparing the recomputed message authentication code with the message authentication code of the welcome message.

26 . The one or more non-transitory computer readable storage media of claim 24 , further comprising instructions that, when executed by the processor, cause the processor to perform operations including:

generating a confirmation tag based on a message authentication code operation performed over a confirmation key and a hash of the welcome transcript, wherein the confirmation key is derived from an exporter secret; and

including the confirmation tag in the confirmation message.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2024
From: BARNES, RICHARD LEE; BHARGAVAN, KARTHIKEYAN; KIEFER, FRANZISKUS
To: CISCO TECHNOLOGY, INC.
Reel/Frame 068229/0278 →
Continuity (2)
Provisional Application 63624357 · Jan 24, 2024
Related Publication 20250240170A1 · Jul 24, 2025
References Cited (43)
US 7430295B1 · Pearson · 2008 [cited by examiner]
US 10412063B1 · Mandich · 2019 [cited by examiner]
US 11818268B2 · Vermeulen · 2023 [cited by examiner]
US 20030177358A1 · Martin · 2003 [cited by examiner]
US 20150095648A1 · Nix · 2015 [cited by examiner]
US 20170201382A1 · Lindteigen · 2017 [cited by examiner]
US 20170338951A1 · Fu · 2017 [cited by examiner]
US 20190097793A1 · Nix · 2019 [cited by examiner]
US 20190097794A1 · Nix · 2019 [cited by examiner]
US 20190372764A1 · Fay · 2019 [cited by examiner]
US 20190394029A1 · Vermeulen · 2019 [cited by examiner]
US 20220038269A1 · Nix · 2022 [cited by examiner]
US 20220103369A1 · Adams · 2022 [cited by examiner]
US 20220377084A1 · Zhang · 2022 [cited by examiner]
US 20220407688A1 · Childe · 2022 [cited by examiner]
US 20230308424A1 · Nix · 2023 [cited by examiner]
US 20230318817A1 · Sattler · 2023 [cited by examiner]
US 20240106636A1 · Nix · 2024 [cited by examiner]
WO 2022162390A1 · 2022 [cited by applicant]
Alia, O., et al., “100 Gbps Quantum-safe IPsec VPN Tunnels over 46 km Deployed Fiber,” https://arxiv.org/abs/2405.04415, May 7, 2024, 7 pages. [cited by applicant]
Alwen, J., et al., “Modular Design of Secure Group Messaging Protocols and the Security of MLS,” ACM CCS 2021, https://eprint.iacr.org/2021/1083.pdf, Aug. 23, 2021, 107 pages. [cited by applicant]
Barnes, R., et al., “RFC 9180 Hybrid Public Key Encryption,” Internet Research Task Force (IRTF), Feb. 2022, 107 pages. [cited by applicant]
Barnes, R., et al., “RFC 9420 The Messaging Layer Security (MLS) Protocol,” Internet Engineering Task Force (IETF), Standards Track, Jul. 2023, 132 pages. [cited by applicant]
Beurdouche, B., et al., “The Messaging Layer Security (MLS) Architecture,” Network Working Group, draft-ietf-mls-architecture-13, Mar. 22, 2024, 46 pages. [cited by applicant]
Cisco, “Configuring Quantum-Safe Encryption Using Postquantum Preshared Keys,” https://www.cisco.com/c/en/us/td/docs/routers/ios/config/17-x/sec-vpn/b-security-vpn/m-sec-cfg-quantum-encryption-ppk.pdf, last updated Jan.… [cited by applicant]
Cohn-Gordon, K., et al., “On Ends-to-Ends Encryption: Asynchronous Group Messaging with Strong Security Guarantees,” Cryptology ePrint Archive, Version 2.3, https://eprint.iacr.org/2017/666.pdf, Mar. 2, 2020, 37 pages. [cited by applicant]
Donenfeld, J., “WireGuard: Next Generation Kernel Network Tunnel,” WireGuard, Whitepaper, Draft Revision e2da747, https://www.wireguard.com/papers/wireguard.pdf, Jun. 1, 2020, 20 pages. [cited by applicant]
Fluhrer, S., et al., “RFC 8784 Mixing Preshared Keys in the Internet Key Exchange Protocol Version 2 (IKEv2) for Post-quantum Security,” Internet Engineering Task Force (IETF), Standards Track, Jun. 2020, 16 pages. [cited by applicant]
Housley, R., et al., “RFC 9257 Guidance for External Pre-Shared Key (PSK) Usage in TLS,” Internet Engineering Task Force (IETF), Informational, Jul. 2022, 13 pages. [cited by applicant]
Iyengar J., et al., “RFC 9000 QUIC: A UDP-Based Multiplexed and Secure Transport,” Internet Engineering Task Force (IETF), Standards Track, May 2021, 127 pages. [cited by applicant]
Kaufman, C., et al., “Internet Key Exchange Protocol Version 2 (IKEv2),” Internet Engineering Task Force (IETF), Request for Comments: 5996, Obsoletes: 4306, 4718, Standards Track, Sep. 2010, 138 pages. [cited by applicant]
Marlinspike, M., et al., “The Sesame Algorithm: Session Management for Asynchronous Message Encryption,” Signal, Revision 2, https://signal.org/docs/specifications/sesame/sesame.pdf, Apr. 14, 2017, 17 pages. [cited by applicant]
One, G., “Open-Source uProxy Extension Offers ‘Social’ Private Browsing,” Greycoder, https://greycoder.com/open-source-uproxy-extension-offers-social-private-browsing, Sep. 21, 2015, 6 pages. [cited by applicant]
Perrin, T., et al., “The Double Ratchet Algorithm,” https://signal.org/docs/specifications/doubleratchet/, Revision 1, Nov. 20, 2016, 35 pages. [cited by applicant]
Rescorla, E., et al., “RFC 9147 The Datagram Transport Layer Security (DTLS) Protocol Version 1.3,” Internet Engineering Task Force (IETF), Apr. 2022, 61 pages. [cited by applicant]
Rescorla, E., “HTTP Over TLS,” Network Working Group, Request for Comments: 2818, May 2000, 7 pages. [cited by applicant]
Rescorla, E., “The Transport Layer Security (TLS) Protocol Version 1.3,” Internet Engineering Task Force (IETF), Request for Comments: 8446, Aug. 2018, 160 pages. [cited by applicant]
Thomson, M., et al., “RFC 9001 Using TLS to Secure QUIC,” Internet Engineering Task Force (IETF), May 2021, 44 pages. [cited by applicant]
Tor Project, “All About Tor,” torproject.org, last updated on Mar. 29, 2023, 76 pages. [cited by applicant]
Wallez, T., et al., “TreeSync: Authenticated Group Management for Messaging Layer Security,” USENIX Association, https://www.usenix.org/system/files/sec23fall-prepub-372-wallez.pdf, last revised Apr. 18, 2023, 17 pages. [cited by applicant]
Alwen J., et al., “On the Insider Security of MLS”, IACR, International Association for Cryptologic Research, vol. 20220811:145544, XP061075629, https://eprint.iacr.org/archive/2020/1327/1660229744.pdf, Aug. 11, 2022, p… [cited by applicant]
Wikipedia, “TLS Handshake”, OSDev Wiki, XP093262089, https://web.archive.org/web/20240121090205/ http://wiki.osdev.org/TLS_Handshake, Jan. 21, 2024, 10 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2025/011962, mailed Apr. 3, 2025, 13 Pages. [cited by applicant]
Cited By (1)
US 12,706,740