Skip to content

Conversation

@RollerMatic
Copy link

This change adds experimental support for TACACS over TLS RFC draft-ietf-opsawg-tacacs-tls13-07

Change summary:

Core Protocol Changes

  • Modified crypter to handle TLS vs non-TLS connections properly
  • TLS connections skip traditional TACACS+ PSK obfuscation
  • Added UnencryptedFlag validation for TLS connections
  • Enhanced error handling for TLS protocol violations

Server & Client Features

  • Added TLS listener support with configurable certificates
  • Command-line options for TLS certificate configuration
  • Support for mutual TLS authentication with client certificates
  • Certificate-based authentication with SAN extensions
  • Backward compatibility with existing non-TLS deployments

New Files Added

  • tls.go: Core TLS configuration and listener management
  • tls_client_option.go: TLS client configuration options
  • docs/tls_support.md: Comprehensive TLS setup and debugging guide
  • server_tls_bench_test.go: TLS performance benchmarks
  • server_tls_optimized_bench_test.go: Optimized TLS benchmarks

Command Line Interface

Server Options:

  • -tls: Enable TLS support
  • -tls-cert: Server certificate file path
  • -tls-key: Server private key file path
  • -tls-ca: CA certificate for client validation
  • -tls-require-client-cert: Require mutual TLS

Client Options:

  • -tls: Enable TLS support
  • -tls-cert: Client certificate for mutual TLS
  • -tls-key: Client private key for mutual TLS
  • -tls-ca: CA certificate for server validation
  • -tls-server-name: Server name for certificate validation
  • -tls-insecure-skip-verify: Skip certificate validation (testing only)

Security & Performance

  • Requires TLS 1.3 as per IETF specification
  • Comprehensive certificate validation with SAN support
  • Performance optimizations for TLS handshake overhead
  • Extensive test coverage including surge testing

This implementation follows IETF draft-ietf-opsawg-tacacs-tls13-07 specification
for secure TACACS+ authentication over TLS transport."

RollerMatic added 2 commits September 22, 2025 14:00
…sawg-tacacs-tls13-07)

This implementation adds comprehensive TACACS+ over TLS 1.3 support including:

## Core Protocol Changes
- Modified crypter to handle TLS vs non-TLS connections properly
- TLS connections skip traditional TACACS+ PSK obfuscation
- Added UnencryptedFlag validation for TLS connections
- Enhanced error handling for TLS protocol violations

## Server & Client Features
- Added TLS listener support with configurable certificates
- Command-line options for TLS certificate configuration
- Support for mutual TLS authentication with client certificates
- Backward compatibility with existing non-TLS deployments

## New Files Added
- tls.go: Core TLS configuration and listener management
- tls_client_option.go: TLS client configuration options
- docs/tls_support.md: Comprehensive TLS setup and debugging guide
- server_tls_bench_test.go: TLS performance benchmarks
- server_tls_optimized_bench_test.go: TLS benchmarks with specialized cert config, tradeoff security for perf

## Command Line Interface
### Server Options:
- -tls: Enable TLS support
- -tls-cert: Server certificate file path
- -tls-key: Server private key file path
- -tls-ca: CA certificate for client validation
- -tls-require-client-cert: Require mutual TLS

### Client Options:
- -tls: Enable TLS support
- -tls-cert: Client certificate for mutual TLS
- -tls-key: Client private key for mutual TLS
- -tls-ca: CA certificate for server validation
- -tls-server-name: Server name for certificate validation
- -tls-insecure-skip-verify: Skip certificate validation (testing only)

## Security & Performance
- Requires TLS 1.3 as per IETF specification
- Added Benchmarks test coverage including surge testing

This implementation follows IETF draft-ietf-opsawg-tacacs-tls13-07 specification
for secure TACACS+ authentication over TLS transport.
@meta-cla meta-cla bot added the cla signed label Sep 22, 2025
RollerMatic added 3 commits September 23, 2025 13:40
- Add TLS configuration file support for client connections
- Add relevant tests for the new config functions
- Add documentation for TLS support

Test Plan: Tested with both client and server TLS connections using certificates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants