frr
frr copied to clipboard
Feature Request: TCP-AO (RFC 5925)
Feature Request: Support for TCP Authentication Option
This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP- AO uses a different option identifier than TCP MD5, even though TCP- AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6 and is fully compatible with the proposed requirements for the replacement of TCP MD5.
Reasons to consider implementation
- Supported in the newest NOS releases by Nokia, Juniper, and Cisco. (1)
- Stronger verification of BGP updates as a "successor" for MD5 message authentication.
Links
- The Routing Table Podcast: TCP Authentication Option – Greg Hankins and Ron Bonica
- RFC 5925
- BGP YANG Model for Service Provider Networks (draft-ietf-idr-bgp-model)
- Was a topic during the IETF 103 hackathon
- Search engine results on the topic
- GitHub vlolteanu/linux-tcp-ao
- FreeBSD svn branch andre/tcp-ao/
Someone needs to implement this in the linux kernel first. We have no way to do it from FRR until then
I'm working on linux support and feedback would be welcome, especially regarding ABI.
https://lore.kernel.org/netdev/01383a8751e97ef826ef2adf93bfde3a08195a43.1626693859.git.cdleonard@gmail.com/ https://github.com/cdleonard/linux/commits/tcp_authopt
I tested interop using yabgp: https://github.com/smartbgp/yabgp/pull/122
Posted https://github.com/FRRouting/frr/pull/9442
@donaldsharp TCP AO support available in FRR now?
Nope.
Iteration 11 posted
https://www.phoronix.com/news/TCP-AO-Linux-Kernel-Updated
https://lore.kernel.org/lkml/[email protected]/
stable FreeBSD tcp-ao link: https://www.freebsd.org/status/report-2013-01-2013-03.html#TCP-AO-Authentication-Option
Is this supported in the kernel now, or is work ongoing? I saw this:
https://lwn.net/Articles/940178/ https://docs.kernel.org/networking/tcp_ao.html
but I don't know if support has been committed into the kernel ...
https://lore.kernel.org/all/?q=%22net/tcp_ao%22
https://docs.kernel.org/networking/tcp_ao.html
https://github.com/search?q=repo%3Atorvalds%2Flinux%20%22tcp_ao%22&type=code
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv6/tcp_ao.c
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/ipv4/tcp_ao.c
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/net/tcp_ao.h