Return-Path: <ebiggers@google.com>
X-Original-To: tcpm@mail2.ietf.org
Delivered-To: tcpm@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1])
	by mail2.ietf.org (Postfix) with ESMTP id 7F72211ABEB8A
	for <tcpm@mail2.ietf.org>; Mon, 20 Jul 2026 13:02:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1;
	t=1784577745; bh=yBlXnxlicRyHSe8kkml0imSakwKXAeoRlTRZ7Lv9b2o=;
	h=Date:From:To:Cc:Subject:References:In-Reply-To;
	b=SUeqlUZWUtsNZiSFf99ii/KyZoNSQKg3rxI3wsiwyVbTYun2Z1b0CsqXTYSvpMisW
	 CxFbCC1g+R/Z9t51wtYvZxJNG/vOqHBxb6ERz4M3q+U6DwQVuswAGhfKhRgI1T5LLe
	 oI1Sk6czYtrA6yQ2T+J/B7EDXyFzqnIiKqJzk8wY=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -17.601
X-Spam-Level: 
X-Spam-Status: No, score=-17.601 tagged_above=-999 required=5
	tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1,
	DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
	ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_NONE=-0.0001,
	SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5,
	USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key)
	header.d=google.com
Received: from mail2.ietf.org ([166.84.6.31])
	by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id 1Vj3EfJPbLeD for <tcpm@mail2.ietf.org>;
	Mon, 20 Jul 2026 13:02:25 -0700 (PDT)
Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com
 [IPv6:2607:f8b0:4864:20::632])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256)
	(No client certificate requested)
	by mail2.ietf.org (Postfix) with ESMTPS id 0194811ABEB81
	for <tcpm@ietf.org>; Mon, 20 Jul 2026 13:02:24 -0700 (PDT)
Received: by mail-pl1-x632.google.com with SMTP id
 d9443c01a7336-2caed617615so116666415ad.3
        for <tcpm@ietf.org>; Mon, 20 Jul 2026 13:02:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=google.com; s=20251104; t=1784577744; x=1785182544; darn=ietf.org;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:from:to:cc:subject
         :date:message-id:reply-to:content-type;
        bh=kvjZZ7XxdL+Q7DoZR2WUFYveB8ITVNnwMtwpHu/cmWs=;
        b=nAJCEBHkOMXqsWflPXgdx9UxxbDacwydzUq1wIf/nnr7Jet85qEkz5TePuy8Zw5Mmj
         RzxaK0b7bSZEHj2qJpXcMD8BVlQI4Yq+UQEQwxlfFY1uP/teUPmEBY3XmW9sNGXuBpvq
         6oeRiYDAcLNX278mh4mihqzBCP9UTPLi/Q56Co4wUjwIjX6/Pwp9FgCOsXmT4Yo9URzD
         nIHGwN8/e76Br5ZAhJoZVILJpKdx7mwu3TLLGbVr5bRBeDw00szQNb98yNzslyeSrCZe
         6xj7XqQHBohGnr/EuoRNaDaDv2Bd+kHTzoyZvWUaFZJ3rdhccAhS5mceiYJ065q57e8s
         SEYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1784577744; x=1785182544;
        h=in-reply-to:content-disposition:content-type:mime-version
         :references:message-id:subject:cc:to:from:date:x-gm-gg
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to
         :content-type;
        bh=kvjZZ7XxdL+Q7DoZR2WUFYveB8ITVNnwMtwpHu/cmWs=;
        b=DN66RDeVB8Gek2Jjq6CflilhwBGAoICDqV0xo9Pk3v2D8JyknpT6E6EpKAe1btYsJJ
         xqQV5wWLdzzNWoihk+KlHLVrJsEqEcqc4FjNw4BY5O+aiNkGEmenbxdlM0c7yvIdhcwb
         DX3p87PcbWrXcLDJFUsNuiKGrEhpfI6tv1EU/RxHQ3bKS43LuSaksVpsQKVi34jckIvt
         s6OKXbc4Rh9hiCxy3Bf812QPTm+HD4paBXfZP1ncVFfHMU3oA8mfmYCPdx+lEUYtuVzO
         mo/7aYzUZary11fJSOE1IapBrbw0Wzo4QKzcam/tVnprh5QD0Fxds686nTu8f/B6MebA
         AX3Q==
X-Gm-Message-State: AOJu0YyjfIoOa+6Uh/x4q/vvdwsCWLQNjIk8fi+weIFqZgWqyBlX+xbw
	LHsL50RfVId7XNXPaVB8BXTRqeyHCYAYHtIHQ/v3pQmwFL6LtwTphudUoM9bfujWEOn2Draedk+
	LXVyeLA==
X-Gm-Gg: AR+sD10nM3AKLj/fqyEkN5s7AD62A4ruIMeHj+yvDCKIWSEpmKzRgpDLTJo6QNmErI4
	wHZdff5BTshrbvUohr8cSNXZvLOqNgODg2jUeoiVSLG3sdmgqrxavCJImKi3q/NdJ3Uqd69KqxK
	ljmZFkPYHFtdzdJ5OkX4fON/qmVU5uAjO1/HG9rdZ0CGu9xBMMONT+oCCxuzQGOz5EbVOyiEkQY
	/xezE2EIC7nDzb5kIccvRpTs8+k5qKK05eG1pmG3zvb0tyt7GbSVQVPcXrWeiWfDq5T/Uis8T+Y
	U3H/Uzwyg89fLcdV8AKRT/SaYy54scFZ9JlU+HsUY1vCkq6CQjJGlZf+59tbktGlH90RIVNsZ8v
	XK2i09NPkCvAY0bwU8ztgYzlBM3ur9Yd7TtEJmQLi56kIndW7Sk4Ia/81wyy8tICCZSxnPefBXa
	WIsdLmljZw9T4e9TOarc4bCsyz819Memc0DKjVLHtzqDYDA1LMKjYl6g==
X-Received: by 2002:a17:902:c950:b0:2c9:d8c6:1dc3 with SMTP id
 d9443c01a7336-2cf3463299dmr163787995ad.0.1784577743342;
        Mon, 20 Jul 2026 13:02:23 -0700 (PDT)
Received: from google.com (199.174.125.34.bc.googleusercontent.com.
 [34.125.174.199])
        by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-2cf347165b1sm61903645ad.60.2026.07.20.13.02.22
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Mon, 20 Jul 2026 13:02:22 -0700 (PDT)
Date: Mon, 20 Jul 2026 20:02:18 +0000
From: Eric Biggers <ebiggers@google.com>
To: tcpm@ietf.org
Message-ID: <20260720200218.GA341047@google.com>
References: 
 <178249061156.1804370.3766568479863954134@dt-datatracker-f9b87776f-8pmmg>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: 
 <178249061156.1804370.3766568479863954134@dt-datatracker-f9b87776f-8pmmg>
Message-ID-Hash: YE23MDDUENOYNJY42NVK5QHNSTKHT7H6
X-Message-ID-Hash: YE23MDDUENOYNJY42NVK5QHNSTKHT7H6
X-MailFrom: ebiggers@google.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency;
 loop; banned-address; member-moderation; header-match-tcpm.ietf.org-0;
 nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size;
 news-moderation; no-subject; digests; suspicious-header
CC: i-d-announce@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5Btcpm=5D_Re=3A_I-D_Action=3A_draft-ietf-tcpm-tcp-ao-algs-05=2Etx?=
	=?utf-8?q?t?=
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/tcpm/rAcV7vHGtIdGGduj0LmUoaX2xs4>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Owner: <mailto:tcpm-owner@ietf.org>
List-Post: <mailto:tcpm@ietf.org>
List-Subscribe: <mailto:tcpm-join@ietf.org>
List-Unsubscribe: <mailto:tcpm-leave@ietf.org>

Hi,

On Fri, Jun 26, 2026 at 09:16:51AM -0700, internet-drafts@ietf.org wrote:
> Internet-Draft draft-ietf-tcpm-tcp-ao-algs-05.txt is now available. It is a
> work item of the TCP Maintenance and Minor Extensions (TCPM) WG of the IETF.
> 
>    Title:   Additional Cryptographic Algorithms For Use With TCP-AO
>    Authors: Ron Bonica
>             Tony Li
>    Name:    draft-ietf-tcpm-tcp-ao-algs-05.txt
>    Pages:   26
>    Dates:   2026-06-26
> 
> Abstract:
> 
>    RFC5926 creates a list of cryptographic algorithms that can be used
>    with TCP-AO.  This document expands that list, adding two Message
>    Authentication Code (MAC) algorithms, HMAC-SHA256-128 and
>    KMAC256-128.  For each MAC algorithm, a corresponding Key Derivation
>    Function (KDF) is also added.
> 
>    The MAC algorithms described by this document produce 128-bit (i.e.,
>    16-byte) MACs.  When 16-byte MACs are encoded in TCP-AO, the TCP-AO
>    consumes 20 of the 40 bytes available for TCP options.

I had this reviewed internally as well, and the result is that it
generally looks reasonable.  But there's still a footgun regarding what
is acceptable as a Master_Key.  There's an opportunity to do more to
decrease the chance of misuse.

As a refresher, TCP-AO accepts variable-length ASCII strings as the
Master_Key with no minimum length requirement.  Unfortunately, this
encourages users to input arbitrary passwords, which tend to have low
entropy.  Furthermore, no key stretching is performed, leaving these
passwords vulnerable to brute-forcing.  Some of the problematic language
includes:

  - RFC 5925: "Master_Key - The master_key string"

  - RFC 5926: "The Master_Key is used as the seed for the KDF.  We
    assume that this is a human-readable pre-shared key (PSK); thus, we
    assume it is of variable length.   Master_Keys SHOULD be random, but
    might not be (e.g., badly chosen by the user).  For
    interoperability, the management interface by which the PSK is
    configured MUST accept ASCII strings, and SHOULD also allow for the
    configuration of any arbitrary binary string in hexadecimal form."

  - draft-ietf-tcpm-tcp-ao-algs-05.txt: "This document RECOMMENDS that
    operators use Master_Keys generated by a cryptographic random number
    generator, or similar.  However, it is understood that they may not
    do so."

Though none of these documents explicitly use the word "password," the
lack of a minimum length and the explicit support for human-readable
ASCII strings makes it easily be interpreted as one.

Not surprisingly, here's how it got paraphrased into the documentation
of Linux's TCP-AO implementation (until I fixed it):

  - https://www.kernel.org/doc/html/v7.0/networking/tcp_ao.html:
    "MACs are produced from the content of a TCP segment using a hashing
    function with a password known to both peers."

So when people actually implement this stuff it becomes "password".

Really, the protocol should just take a 256-bit binary key that MUST be
a cryptographic key.  However, since that wasn't done from the
beginning, requiring it just for the new algorithms would be confusing.

Instead, how about:

  - The new algorithms will require that the master key MUST be *at
    least* 256 bits in length.  (This doesn't necessarily mean 256 bits
    of entropy, given that the key could be an ASCII representation of a
    key; however, this is better than no defense at all.)

  - The "Security Considerations" section should be clearer.  For
    example:

    "Master_Keys SHOULD have at least 256 bits of entropy, and they
    SHOULD be generated by a cryptographic random number generator or
    similar. No key stretching is done, and the use of low-entropy
    secrets (such as passwords) is vulnerable to brute-force attacks. If
    an ASCII string is used, it SHOULD be the hex or base64
    representation of a cryptographic key with at least 256 bits of
    entropy, rather than a human-readable password or passphrase."

- Eric

