Zum Hauptinhalt springen

RFC 9887 - Technische Zusammenfassung (Deutsche Version)

Dokument: Terminal Access Controller Access-Control System Plus (TACACS+) über TLS 1.3
RFC-Nummer: 9887
Veröffentlichungsdatum: Dezember 2025
Status: PROPOSED STANDARD
Aktualisiert: RFC 8907


Schnellreferenz

Kritische Anforderungen (MUST)

AnforderungSpezifikationAbschnitt
TLS-VersionTLS 1.3 mindestens3.2
PortnummerTCP 300 für TLS3.1, 7
AuthenticationGegenseitig (Client + Server)3.1
ZertifikatsvalidierungVollständiger Pfad + Widerruf3.4.1
ObfuscationDARF NICHT mit TLS verwendet werden4
Unencrypted-FlagMUSS auf 1 gesetzt sein4
0-RTT-DatenDÜRFEN NICHT gesendet werden5.1.2
FallbackDARF NICHT auf Nicht-TLS5.1.1

Unterstützte Authentication-Methoden

  1. Zertifikatsbasiert (MANDATORY)

    • X.509-Zertifikate mit vollständiger Kettenvalidierung
    • Widerrufsüberprüfung erforderlich
    • DNS-ID, IP-ID oder SRV-ID für die Serveridentität
    • Unterstützung der SNI-Erweiterung erforderlich
  2. Pre-Shared Keys (PSK) (OPTIONAL)

    • Externe PSKs (keine Resumption-PSKs)
    • Mindestlänge 16 Oktette
    • MÜSSEN sich von Obfuscation-Shared-Secrets unterscheiden
  3. Raw Public Keys (RPK) (OPTIONAL)

    • Liegen außerhalb des Geltungsbereichs dieses Dokuments
    • Siehe RFC 7250 für Details

Portzuweisung

DienstPortProtokollVerwendung
TACACS+ (Legacy)49TCPVerbindungen ohne TLS
TACACS+ über TLS300TCPVerbindungen mit TLS 1.3+

IANA-Registrierung: Dienstname „tacacss“ auf Port 300/TCP


TLS-Konfigurationsanforderungen

Obligatorische Cipher Suites

  • Obligatorische TLS-1.3-Suites (RFC 8446 Abschnitt 9.1)
  • Sollten durch Betreiber konfigurierbar sein

Zertifikatsanforderungen

  • Pfadvalidierung: RFC 5280 Abschnitt 6
  • Identitätsvalidierung: RFC 9525
  • Widerruf: Muss bei Erstverbindung und Resumption geprüft werden
  • SNI: Muss unterstützt werden (RFC 6066 Abschnitt 3)

Verbotene Funktionen

  • ❌ TLS-Versionen < 1.3
  • ❌ 0-RTT Early Data
  • ❌ Upgrade von Nicht-TLS
  • ❌ MD5-basierte Obfuscation
  • ❌ Fallback auf Nicht-TLS

Verbindungslebenszyklus

Client                                    Server
| |
|--- TCP-Verbindung zu Port 300 --------->|
| |
|<-- TLS-1.3-Handshake (mutual Authentication) ----->|
| |
|--- TACACS+-Daten (TLS-Anwendungsdaten) >|
|<-- TACACS+-Antwort ----------------------|
| |
|--- Schließen (nach Sitzung oder Timeout) >|

Verbindungsmodi

  1. Single-Connection-Modus (RFC 8907 Abschnitt 4.3)

    • Mehrere TACACS+-Sitzungen über eine TLS-Verbindung
    • Unterliegen Inaktivitäts-Timeout
    • Verbindung kann kurz bestehen bleiben
  2. Nicht-Single-Connection-Modus

    • Eine TACACS+-Sitzung pro TLS-Verbindung
    • TCP wird nach Abschluss der Sitzung geschlossen

TLS-Resumption

  • Ticket-Lebensdauer: Sollte konfigurierbar sein (einschließlich 0 Sekunden)
  • Einmalige Verwendung: Jedes Ticket nur für eine Resumption
  • Widerrufsüberprüfung: Während der Resumption erforderlich
  • Serververhalten: Sollte erlauben, wenn Ticket gültig und unbenutzt

Zusammenfassung Sicherheitsaspekte

Adressiertes Bedrohungsmodell

BedrohungGegenmaßnahme
AbhörenTLS-1.3-Verschlüsselung
Man-in-the-MiddleGegenseitige Authentication
WiederholungsangriffeKein 0-RTT, Nonce-Mechanismen
Downgrade-AngriffeGetrennte Ports, kein Fallback
Schwache KryptografieMD5 obsolet, nur TLS 1.3

Sicherheit im Betrieb

  1. Trennung von TLS und Nicht-TLS

    • EMPFOHLEN: Getrennte physische Hosts
    • MUSS: Getrennte Portnummern
    • Verhindert Exposition durch Fehlkonfiguration
  2. Zertifikatsmanagement

    • BCP 195 (RFC 7525) befolgen
    • Wildcard-Zertifikate: auf dedizierte Subdomain beschränken
    • CA-Erreichbarkeit: Planung bei Netzwerkisolierung
  3. Konfigurationsklarheit

    • Explizite TLS-/Nicht-TLS-Modusindikatoren
    • Validierungswarnungen bei Port-Mismatch
    • Getrennte Konfigurationsabschnitte

Migrationsstrategie (5 Phasen)

Phase 1: Bewertung

  • Inventur aller TACACS+-Clients und -Server
  • TLS-fähige vs. Legacy-Geräte identifizieren
  • Änderungen der Netzwerktopologie planen

Phase 2: Pilot

  • TLS-Server auf Port 300 in Testumgebung bereitstellen
  • Test-Clients konfigurieren
  • Zertifikatsinfrastruktur validieren

Phase 3: Erste Ausrollung

  • Teilmenge der Produktions-Clients migrieren
  • Auf Probleme überwachen
  • Parallele Nicht-TLS-Infrastruktur aufrechterhalten

Phase 4: Schrittweises Rollout

  • Verbleibende Clients schrittweise migrieren
  • Ausnahmen für Legacy-Geräte dokumentieren
  • Kompensationskontrollen für Nicht-TLS umsetzen

Phase 5: Abschluss

  • Nicht-TLS-Infrastruktur außer Betrieb nehmen
  • Abschließendes Sicherheitsaudit
  • Dokumentation aktualisieren

Kritische Regel: Clients DÜRFEN NICHT auf Nicht-TLS zurückfallen, wenn TLS fehlschlägt


Implementierungs-Checkliste

Server-Implementierung

  • TLS-1.3-Unterstützung (Minimum)
  • Lauschen auf Port 300 (oder konfigurierte Alternative)
  • Zertifikatsbasierte gegenseitige Authentication
  • Zertifikatspfadvalidierung (RFC 5280)
  • Widerrufsüberprüfung
  • Unterstützung der SNI-Erweiterung
  • Pakete ohne TAC_PLUS_UNENCRYPTED_FLAG ablehnen
  • 0-RTT-Daten ablehnen
  • TLS-Resumption-Unterstützung
  • Konfigurierbare Ticket-Lebensdauer
  • Optional: PSK-Authentication
  • Optional: Raw Public Keys

Client-Implementierung

  • TLS-1.3-Unterstützung (Minimum)
  • Verbindung zu Port 300 (oder konfiguriert)
  • Unmittelbare TLS-Aushandlung (kein Upgrade)
  • Zertifikatsvalidierung
  • SNI-Erweiterung im ClientHello
  • TAC_PLUS_UNENCRYPTED_FLAG = 1 setzen
  • Keine Übertragung von 0-RTT-Daten
  • Kein Fallback auf Nicht-TLS
  • TLS-Resumption-Unterstützung
  • Optional: PSK-Authentication
  • Optional: Raw Public Keys

Hinweise zur Referenzimplementierung

Zertifikats-Identitätsvalidierung

Akzeptable Identifikatortypen:
- DNS-ID: tacacs.example.com
- IP-ID: 192.0.2.1 oder 2001:db8::1
- SRV-ID: _tacacs._tcp.example.com

NICHT akzeptabel:
- URI-ID (wird für TACACS+ nicht verwendet)

Wildcard-Zertifikate

✅ GUT: *.tacacs.example.com (dedizierte Subdomain)
❌ SCHLECHT: *.example.com (zu breit)

PSK-Identitätsformat

- Mindestlänge: 16 Oktette
- RFC 9257 Abschnitt 6.1 befolgen
- Muss sich von Obfuscation-Secrets unterscheiden

Betriebsliche Best Practices

  1. Monitoring

    • Alle TLS-Handshake-Fehler protokollieren
    • Alarm bei Nicht-TLS-Verbindungsversuchen auf Port 300
    • Ablaufdaten von Zertifikaten verfolgen
  2. Zertifikats-Lebenszyklus

    • Erneuerung automatisieren (z. B. ACME-Protokoll)
    • Zertifikatsketten lokal vorhalten
    • Planung für CA-Ausfälle
  3. Tests

    • Regelmäßige TLS-Konfigurationsaudits
    • Cipher-Suite-Kompatibilitätstests
    • Validierung von Failover-Szenarien
  4. Dokumentation

    • Inventar von TLS- vs. Nicht-TLS-Servern pflegen
    • Migrationszeitplan dokumentieren
    • Vertrauensanker der Zertifikate festhalten

Compliance-Anforderungen

FIPS 140-3

  • TLS 1.3 mit zugelassenen Cipher Suites
  • MD5-Obfuscation obsolet (nicht konform)
  • Zertifikatsbasierte Authentication empfohlen

Branchenstandards

  • PCI DSS: Starke Kryptografie erforderlich
  • NIST SP 800-52: TLS-Richtlinien
  • BCP 195: TLS-Best Practices

Häufige Fallstricke

  1. Port-Mismatch: TLS-Client verbindet zu Port 49
  2. Fallback-Logik: Nicht-TLS nach TLS-Fehler versuchen
  3. Gemischte Secrets: Dieselben Schlüssel für Obfuscation und PSK
  4. 0-RTT aktiviert: Early Data senden
  5. Zertifikatsvalidierung deaktiviert: Ungültige Zertifikate akzeptieren
  6. Gleicher Host: TLS und Nicht-TLS auf demselben Server
  7. Wildcard-Missbrauch: *.example.com für alle Dienste
  8. Keine Widerrufsüberprüfung: CRL/OCSP-Validierung überspringen

Leistungsaspekte

TLS-Handshake-Overhead

  • Voller Handshake: ~2 RTT (TLS 1.3)
  • Resumption: ~1 RTT
  • Gegenmaßnahme: Resumption bei wiederholten Verbindungen nutzen

Verbindungspersistenz

  • Single-Connection-Modus reduziert Handshake-Häufigkeit
  • Balance zwischen Verbindungswiederverwendung und Timeout-Einstellungen
  • Typischer Timeout: 60–300 Sekunden

Zertifikatsvalidierung

  • Validierte Zertifikate cachen
  • OCSP-Stapling zur Latenzreduzierung nutzen
  • TLS Cached Information Extension (RFC 7924) erwägen

Fehlerbehebung

SymptomMögliche UrsacheLösung
Verbindung verweigertFalscher PortClient auf Port 300 prüfen
Handshake-FehlerTLS-Versions-MismatchTLS-1.3-Unterstützung sicherstellen
ZertifikatsfehlerUngültige ZertifikatsketteCA-Vertrauen und Zertifikatsgültigkeit prüfen
Authentication fehlgeschlagenProblem gegenseitiger AuthenticationClient- und Serverzertifikate prüfen
TAC_PLUS_UNENCRYPTED_FLAG-FehlerFlag nicht gesetztClient setzt Flag auf 1
Resumption abgelehntTicket abgelaufen/benutztNormal; voller Handshake folgt

Zukünftige Aspekte

YANG-Datenmodell

  • Standardisiertes Konfigurationsmodell erforderlich
  • Würde Automatisierung und Konsistenz unterstützen
  • Sollte TLS-spezifische Parameter enthalten

Protokollerweiterungen

  • Dieses Dokument fokussiert TLS 1.3
  • Zukünftige TLS-Versionen werden voraussichtlich funktionieren
  • IETF TLS WG auf Updates beobachten

IPv6-Einsatz

  • Keine Änderungen an IPv6-Empfehlungen
  • TLS verhält sich über IPv4 und IPv6 gleich
  • IP-ID für IP-basierte Zertifikatsidentität nutzen

Kurzer Entscheidungsbaum

Benötigen Sie TACACS+-Sicherheit?
├─ JA → TLS nutzen (dieser RFC)
│ ├─ Moderne Geräte → Zertifikatsbasierte Authentication
│ ├─ Eingeschränkte Geräte → PSK erwägen
│ └─ Legacy-Geräte → Getrennte Nicht-TLS-Infrastruktur

└─ NEIN → Prüfen, ob TACACS+ passend ist
└─ Hochsicherheitsumgebungen erfordern TLS

Verwandte RFCs

  • RFC 8907: Basis-TACACS+-Protokoll (durch diesen RFC aktualisiert)
  • RFC 8446: TLS 1.3 (Transportschicht)
  • RFC 5280: X.509-PKI (Zertifikate)
  • RFC 9525: Dienstidentität in TLS (Identitätsvalidierung)
  • RFC 9257: Leitfaden zu externen PSKs
  • RFC 7525 (BCP 195): TLS-Best Practices

Dokumentstatus

  • Standards Track: Ja
  • Implementierung erforderlich: Für neue Einsätze
  • Abwärtskompatibilität: Paralleler Betrieb während der Migration
  • Obsoletisiert: Nur MD5-Obfuscation-Mechanismus
  • Aktualisiert: RFC 8907 (fügt TLS-Profil hinzu)

Zuletzt aktualisiert: 26. Dezember 2025
Dokumentversion: 1.0 (vollständige deutsche Version)
Gepflegt von: RFC-Übersetzungsprojekt