Skip to main content

Early Review of draft-ietf-tcpm-tcp-ao-algs-05
review-ietf-tcpm-tcp-ao-algs-05-secdir-early-weis-2026-07-20-00

Request Review of draft-ietf-tcpm-tcp-ao-algs
Requested revision No specific revision (document currently at 06)
Type Early Review
Team Security Area Directorate (secdir)
Deadline 2026-07-20
Requested 2026-06-30
Requested by Michael Tüxen
Authors Ron Bonica , Tony Li , Ping Chen , Reji Thomas , Sujeet Nayak Ammunje , Ayan Banerjee
I-D last updated 2026-08-03 (Latest revision 2026-08-03)
Completed reviews Secdir Early review of -05 by Brian Weis (diff)
Comments
TCP Authentication Option, as specified in RFC 5925, can use different
algorithms for key derivation and MAC computation. RFC 5926 specified
KDF_HMAC_SHA1/HMAC_SHA_1_96 and KDF_AES_128_CMAC/AES_128_CMAC_96.
In the TCPM WG currently two IDs defining additional algorithms are being
discussed: draft-ietf-tcpm-tcp-ao-algs and draft-bonica-tcpm-tcp-ao-long-algs.
Here is an overview about the algorithms:

KDF              | MAC             | Len | Spec
-----------------|-----------------|-----|------------------------------------
KDF_HMAC_SHA1    | HMAC_SHA_1_96   | 12  | RFC 5926
KDF_AES_128_CMAC | AES_128_CMAC_96 | 12  | RFC 5626
HKDF-SHA256      | HMAC-SHA256-128 | 16  | draft-ietf-tcpm-tcp-ao-algs
KMAC256-KDF      | KMAC256-128     | 16  | draft-ietf-tcpm-tcp-ao-algs
HKDF-SHA384      | HMAC-SHA384     | 48  | draft-bonica-tcpm-tcp-ao-long-algs
KMAC384-KDF      | KMAC384         | 48  | draft-bonica-tcpm-tcp-ao-long-algs

Question group 1:
(a) Are the algorithms HKDF-SHA256/HMAC-SHA256-128 and KMAC256-KDF/KMAC256-128
    proposed in draft-ietf-tcpm-tcp-ao-algs significantly better than the ones
    specified in RFC 5926?
(b) Would other algorithms with similar output length be significantly better
    than the proposed ones?

Question group 2:
(c) Are the algorithms HKDF-SHA384/HMAC-SHA384 and KMAC384-KDF/KMAC384
    proposed in draft-bonica-tcpm-tcp-ao-long-algs significantly better than
    the ones specified in draft-ietf-tcpm-tcp-ao-algs?
(d) Would other algorithms with similar output length be significantly better
    than the proposed ones?
(e) What is the timeline for switching to longer MACs like in
    draft-bonica-tcpm-tcp-ao-long-algs? Is there an immediate need, for
    example due to PQ.

Please note that the available space in the TCP header available for the MAC
is limited. The algorithms proposed in draft-ietf-tcpm-tcp-ao-algs do not
require a TCP modification whereas the ones proposed in
draft-bonica-tcpm-tcp-ao-long-algs actually do require TCP modifications.
Assignment Reviewer Brian Weis
State Completed
Request Early review on draft-ietf-tcpm-tcp-ao-algs by Security Area Directorate Assigned
Posted at https://mailarchive.ietf.org/arch/msg/secdir/A3z9iGRqkWaOUkuA2plw7_pzvUQ
Reviewed revision 05 (document currently at 06)
Result Not ready
Completed 2026-07-20
review-ietf-tcpm-tcp-ao-algs-05-secdir-early-weis-2026-07-20-00
I have reviewed this document as part of the security directorate's ongoing
effort to review all IETF documents being processed by the IESG. These comments
were written primarily for the benefit of the security area directors. Document
editors and WG chairs should treat these comments just like any other last call
comments.

Because this is an early review I’ve marked it “Not Ready”, but that is not a
pejorative marking.

This document proposes two new MACs for the TCP Authentication Option:
HMAC-SHA256-128 (using a HKDF-SHA256 KDF)  and KMAC256-128 (using KMAC256-KDF).
The two MACs return a 128-bit output due to the limited number of TCP option
octets. It is generally accepted that no more than 128-bits option octets are
available for TCP-AO.

The authors asked some questions as part of the early review.

Q1: (paraphrasing) Are these algorithms significantly better than the ones
originally specified in RFC 5926?

A: The algorithms in RFC 5926 produce a 96-bit output, which limits them to a
96-bit security level. Since the proposed MAC/KDF pairs (considered to have
256-bit security) are producing a 128-bit output, they have a 128-bit security
level and thus would be better than the original algorithms.

Q2: Would other algorithms with similar output length be significantly better
than the proposed ones?

A: I am not aware of any commonly used algorithms that are better.  Having an
algorithm based on SHA-256 is a good idea; I will note that a draft
(draft-nayak-tcp-sha2-03) was submitted to TCPM a few years ago that also
defined a HMAC-SHA256-128 method, although with a different KDF.

I have a couple of comments on the draft:

1. Although allowed, it’s not clear to me that the two-step method using
HKDF-Extract() with a salt of zeros provides much additional value over using a
one-step traffic key derivation (e.g., as is done for RFC 5926). An all-zero
salt is satisfactory if the Master_Key is guaranteed to come from a good source
of entropy. However, when keys are manually entered into key tables (e.g., RFC
7210), the master key cannot be guaranteed to have sufficient entropy.

A KDF method similar to RFC 5926 and draft-nayak-tcp-sha2-03 might be more
efficient and should have an equivalent level of security.

However, the all-zero salt is allowed, and there doesn’t seem to be any
particular downside of using HKDF other than the additional TCP processing for
HKDF-Extract().  You may have another specific reason for specifying using HKDF.

2. It would be worth specifying which 128 bits of the HMAC-SHA256 output are used
for HMAC-SHA256-128. I’m sure you meant for the 256-bit output to be truncated
(i.e., use the first 128 bits) but the draft should be precise.

The authors also asked some questions regarding a related draft
(draft-bonica-tcpm-tcp-ao-long-algs), which assumes an available solution that
extends TCP Option space, thus allowing for a TCP-AO MAC algorithm with a larger
tag.

Q3: (paraphrasing) Draft-bonica-tcpm-tcp-ao-long-algs specifies HMAC-SHA384 and
KMAC-384 MACs. Are they significantly better than the ones proposed in
draft-ietf-tcpm-tcp-ao-algs-05?

A: Specifying a TCP-AO algorithm for 384-bit algorithms is sufficiently  better,
and the 384-bit tags defined in the the long-algs draft should result in a
security level of 384 which is much greater than 128.

However, it’s not clear that there is any need for this level of security in
TCP-AO when no algorithm specifying a 256-bit security level has been specified.

One alternative would be to define the same algorithms as in
draft-ietf-tcpm-tcp-ao-algs but with an output of 256 bits (i.e., not truncating
the tags), which should give 256 bit security. NIST has not specified a timeframe
in which they believe 256-bit security will be deprecated.

Q4: Would other algorithms with similar output length be significantly better
than the proposed ones?

A: None of which I am aware.

Q5: What is the timeline for switching to longer MACs like in
draft-bonica-tcpm-tcp-ao-long-algs? Is there an immediate need, for example due
to PQ.

A: I know of no timeline specifying a need beyond 256-bit security.
Post-quantum crypto is not as dire a threat to hash functions as some other
cryptographic algorithms, and it seems that hash functions with a 256-bit key
are safe for now. Having said that, some government organizations are
considering 384-bit keys for some application, but I wouldn’t expect threats to
TCP-AO to warrant that level of security for some time.