Passa al contenuto principale

RFC 9887 - Sintesi tecnica (versione italiana)

Documento: Terminal Access Controller Access-Control System Plus (TACACS+) su TLS 1.3
Numero RFC: 9887
Data di pubblicazione: dicembre 2025
Stato: PROPOSED STANDARD
Aggiorna: RFC 8907


Scheda di riferimento rapido​

Requisiti critici (MUST)​

RequisitoSpecificaSezione
Versione TLSTLS 1.3 minimo3.2
Numero di portaTCP 300 per TLS3.1, 7
AuthenticationMutua (client + server)3.1
Validazione certificatiPercorso completo + revoca3.4.1
OffuscamentoNON DEVE essere usato con TLS4
Flag non crittografatoDEVE essere impostato a 14
Dati 0-RTTNON DEVE inviare5.1.2
FallbackNON DEVE verso non-TLS5.1.1

Metodi di Authentication supportati​

  1. Basato su certificato (OBBLIGATORIO)

    • Certificati X.509 con validazione della catena completa
    • Controllo della revoca richiesto
    • DNS-ID, IP-ID o SRV-ID per l'identità del server
    • Supporto dell'estensione SNI richiesto
  2. Pre-Shared Keys (PSK) (OPZIONALE)

    • PSK esterne (non PSK di ripresa)
    • Lunghezza minima 16 ottetti
    • DEVONO differire dai segreti condivisi per l'offuscamento
  3. Raw Public Keys (RPK) (OPZIONALE)

    • Fuori ambito per questo documento
    • Vedere RFC 7250 per i dettagli

Assegnazione porte​

ServizioPortaProtocolloUso
TACACS+ (legacy)49TCPConnessioni non-TLS
TACACS+ su TLS300TCPConnessioni TLS 1.3+

Registrazione IANA: nome servizio "tacacss" sulla porta 300/TCP


Requisiti di configurazione TLS​

Cipher suite obbligatorie​

  • Suite obbligatorie TLS 1.3 (RFC 8446 Sezione 9.1)
  • Dovrebbero essere configurabili dagli operatori

Requisiti sui certificati​

  • Validazione del percorso: RFC 5280 Sezione 6
  • Validazione dell'identità: RFC 9525
  • Revoca: deve essere verificata all'avvio e alla ripresa
  • SNI: deve essere supportato (RFC 6066 Sezione 3)

Funzionalità vietate​

  • ❌ Versioni TLS < 1.3
  • ❌ Dati anticipati 0-RTT
  • ❌ Upgrade da non-TLS
  • ❌ Offuscamento basato su MD5
  • ❌ Fallback a non-TLS

Ciclo di vita della connessione​

Client                                    Server
| |
|--- Connessione TCP alla porta 300 ----->|
| |
|<-- Handshake TLS 1.3 (auth mutua) ------>|
| |
|--- Dati TACACS+ (dati applicativi TLS) ->|
|<-- Risposta TACACS+ ---------------------|
| |
|--- Chiusura (dopo sessione o timeout) ->|

Modalità di connessione​

  1. Single Connection Mode (RFC 8907 Sezione 4.3)

    • Più sessioni TACACS+ su una connessione TLS
    • Soggetto a timeout per inattività
    • La connessione può persistere brevemente
  2. Non-Single Connection Mode

    • Una sessione TACACS+ per connessione TLS
    • TCP chiuso al termine della sessione

Ripresa TLS​

  • Durata del ticket: dovrebbe essere configurabile (anche 0 secondi)
  • Uso singolo: ogni ticket per una sola ripresa
  • Controllo revoche: richiesto durante il periodo di ripresa
  • Comportamento del server: dovrebbe consentire se il ticket è valido e non usato

Sintesi delle considerazioni di sicurezza​

Modello di minaccia affrontato​

MinacciaMitigazione
IntercettazioneCrittografia TLS 1.3
Man-in-the-middleAuthentication mutua
Attacchi di replayNessun 0-RTT, meccanismi con nonce
Attacchi di downgradePorte separate, nessun fallback
Crittografia deboleMD5 obsoleto, solo TLS 1.3

Sicurezza in deployment​

  1. Separazione TLS e non-TLS

    • RACCOMANDATO: host fisici separati
    • DEVE: numeri di porta separati
    • Previene esposizioni per errata configurazione
  2. Gestione certificati

    • Seguire BCP 195 (RFC 7525)
    • Certificati wildcard: limitati a sottodominio dedicato
    • Raggiungibilità della CA: pianificare per isolamento di rete
  3. Chiarezza di configurazione

    • Indicatori espliciti modalità TLS/non-TLS
    • Avvisi di validazione per disallineamenti di porta
    • Sezioni di configurazione separate

Strategia di migrazione (5 fasi)​

Fase 1: Valutazione​

  • Inventariare tutti i client e server TACACS+
  • Identificare dispositivi abilitati a TLS vs legacy
  • Pianificare modifiche alla topologia di rete

Fase 2: Pilota​

  • Distribuire server TLS sulla porta 300 in ambiente di test
  • Configurare client di test
  • Validare l'infrastruttura a certificati

Fase 3: Distribuzione iniziale​

  • Migrare un sottoinsieme di client di produzione
  • Monitorare per problemi
  • Mantenere infrastruttura non-TLS in parallelo

Fase 4: Rollout graduale​

  • Migrare incrementalmente i client rimanenti
  • Documentare eventuali eccezioni per dispositivi legacy
  • Implementare controlli compensativi per non-TLS

Fase 5: Completamento​

  • Dismettere l'infrastruttura non-TLS
  • Audit di sicurezza finale
  • Aggiornare la documentazione

Regola critica: i client NON DEVONO fare fallback a non-TLS se TLS fallisce


Checklist di implementazione​

Implementazione server​

  • Supporto TLS 1.3 (minimo)
  • Ascolto sulla porta 300 (o alternativa configurata)
  • Authentication mutua basata su certificato
  • Validazione percorso certificati (RFC 5280)
  • Controllo revoche
  • Supporto estensione SNI
  • Rifiutare pacchetti senza TAC_PLUS_UNENCRYPTED_FLAG
  • Rifiutare dati 0-RTT
  • Supporto ripresa TLS
  • Durata ticket configurabile
  • Opzionale: Authentication PSK
  • Opzionale: Raw Public Keys

Implementazione client​

  • Supporto TLS 1.3 (minimo)
  • Connessione alla porta 300 (o configurata)
  • Negoziazione TLS immediata (nessun upgrade)
  • Validazione certificati
  • Estensione SNI nel ClientHello
  • Impostare TAC_PLUS_UNENCRYPTED_FLAG = 1
  • Nessuna trasmissione dati 0-RTT
  • Nessun fallback a non-TLS
  • Supporto ripresa TLS
  • Opzionale: Authentication PSK
  • Opzionale: Raw Public Keys

Note sull'implementazione di riferimento​

Validazione identità del certificato​

Tipi di identificatore accettabili:
- DNS-ID: tacacs.example.com
- IP-ID: 192.0.2.1 o 2001:db8::1
- SRV-ID: _tacacs._tcp.example.com

NON accettabili:
- URI-ID (non usato per TACACS+)

Certificati wildcard​

✅ BUONO: *.tacacs.example.com (sottodominio dedicato)
❌ SCARSO: *.example.com (troppo ampio)

Formato identità PSK​

- Lunghezza minima: 16 ottetti
- Seguire RFC 9257 Sezione 6.1
- Deve differire dai segreti di offuscamento

Buone pratiche operative​

  1. Monitoraggio

    • Registrare tutti i fallimenti di handshake TLS
    • Allertare su tentativi di connessione non-TLS alla porta 300
    • Tracciare le date di scadenza dei certificati
  2. Ciclo di vita dei certificati

    • Automatizzare il rinnovo (es. protocollo ACME)
    • Mantenere localmente le catene di certificati
    • Pianificare per interruzioni della CA
  3. Test

    • Audit periodici della configurazione TLS
    • Test di compatibilità delle cipher suite
    • Validazione scenari di failover
  4. Documentazione

    • Mantenere inventario server TLS vs non-TLS
    • Documentare la timeline di migrazione
    • Registrare gli anchor di fiducia dei certificati

Requisiti di conformità​

FIPS 140-3​

  • TLS 1.3 con cipher suite approvate
  • Offuscamento MD5 obsoleto (non conforme)
  • Authentication basata su certificato raccomandata

Standard di settore​

  • PCI DSS: crittografia forte richiesta
  • NIST SP 800-52: linee guida TLS
  • BCP 195: best practice TLS

Errori comuni da evitare​

  1. ❌ Disallineamento porta: client TLS che si connette alla porta 49
  2. ❌ Logica di fallback: tentativo non-TLS dopo fallimento TLS
  3. ❌ Segreti misti: usare le stesse chiavi per offuscamento e PSK
  4. ❌ 0-RTT abilitato: invio di dati anticipati
  5. ❌ Validazione certificati disabilitata: accettare certificati non validi
  6. ❌ Stesso host: eseguire TLS e non-TLS sullo stesso server
  7. ❌ Uso improprio wildcard: usare *.example.com per tutti i servizi
  8. ❌ Nessun controllo revoche: saltare validazione CRL/OCSP

Considerazioni sulle prestazioni​

Overhead handshake TLS​

  • Handshake completo: ~2 RTT (TLS 1.3)
  • Ripresa: ~1 RTT
  • Mitigazione: usare la ripresa per connessioni ripetute

Persistenza connessione​

  • Single Connection Mode riduce la frequenza degli handshake
  • Bilanciare riuso connessione e impostazioni di timeout
  • Timeout tipico: 60-300 secondi

Validazione certificati​

  • Memorizzare in cache i certificati validati
  • Usare OCSP stapling per ridurre la latenza
  • Considerare TLS Cached Information Extension (RFC 7924)

Guida al troubleshooting​

SintomoPossibile causaSoluzione
Connessione rifiutataPorta errataVerificare client configurato per porta 300
Fallimento handshakeVersione TLS non allineataGarantire supporto TLS 1.3
Errore certificatoCatena certificati non validaVerificare fiducia CA e validità certificato
Authentication fallitaProblema auth mutuaControllare certificati client e server
Errore TAC_PLUS_UNENCRYPTED_FLAGFlag non impostatoGarantire che il client imposti il flag a 1
Ripresa rifiutataTicket scaduto/usatoNormale; procederà handshake completo

Considerazioni future​

Modello dati YANG​

  • Serve un modello di configurazione standardizzato
  • Beneficierebbe automazione e coerenza
  • Dovrebbe includere parametri specifici TLS

Estensioni del protocollo​

  • Questo documento si concentra su TLS 1.3
  • Si prevede che versioni TLS future funzionino
  • Monitorare TLS WG IETF per aggiornamenti

Deployment IPv6​

  • Nessuna modifica alle raccomandazioni IPv6
  • TLS funziona allo stesso modo su IPv4 e IPv6
  • Usare IP-ID per identità certificato basata su IP

Albero decisionale rapido​

Serve sicurezza TACACS+?
├─ SÌ → Usare TLS (questa RFC)
│ ├─ Dispositivi moderni → Authentication basata su certificato
│ ├─ Dispositivi vincolati → Valutare PSK
│ └─ Dispositivi legacy → Infrastruttura non-TLS separata
│
└─ NO → Valutare se TACACS+ è appropriato
└─ Ambienti ad alta sicurezza richiedono TLS

RFC correlate​

  • RFC 8907: Protocollo TACACS+ di base (aggiornato da questa RFC)
  • RFC 8446: TLS 1.3 (strato di trasporto)
  • RFC 5280: X.509 PKI (certificati)
  • RFC 9525: Service Identity in TLS (validazione identità)
  • RFC 9257: Linee guida PSK esterne
  • RFC 7525 (BCP 195): Best practice TLS

Stato del documento​

  • Standards Track: Sì
  • Implementazione richiesta: Per nuovi deployment
  • Compatibilità all'indietro: Operazione in parallelo durante la migrazione
  • Rende obsoleto: Solo il meccanismo di offuscamento MD5
  • Aggiorna: RFC 8907 (aggiunge profilo TLS)

Ultimo aggiornamento: 26 dicembre 2025
Versione documento: 1.0 (versione italiana completa)
Mantenuto da: RFC Translation Project