La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento vengono descritti i concetti di base del protocollo SSL (Secure Sockets Layer) e viene fornito un esempio di transazione e acquisizione di pacchetti.
L'unità di base dei dati in SSL è un record. Ogni record è costituito da un'intestazione di record di cinque byte seguita da dati.
Tipo | Version | Lunghezza | ||
T | VH | VL | LH | L |
In SSL sono disponibili quattro tipi di record:
La versione del record è un valore a 16 bit e viene formattata in ordine di rete.
Nota: Per SSL versione 3 (SSLv3), la versione è 0x0300. Per TLSv1 (Transport Layer Security Version 1), la versione è 0x0301. Cisco Adaptive Security Appliance (ASA) non supporta SSL versione 2 (SSLv2), che utilizza la versione 0x0002, o qualsiasi versione di TLS successiva a TLSv1.
La lunghezza del record è un valore di 16 byte e viene formattata in ordine di rete.
In teoria, ciò significa che un singolo record può avere una lunghezza massima di 65.535 (2^16 -1) byte. La RFC2246 di TLSv1 indica che la lunghezza massima è 16.383 byte (2^14 -1). È noto che i prodotti Microsoft (Microsoft Internet Explorer e Internet Information Services) superano questi limiti.
In questa sezione vengono descritti i quattro tipi di record SSL.
I record di handshake contengono un set di messaggi utilizzati per eseguire l'handshake. Questi sono i messaggi e i loro valori:
In questo caso i record handshake non vengono crittografati. Tuttavia, un record handshake che contiene un messaggio finito viene sempre crittografato, in quanto si verifica sempre dopo un record CCS (Change Cipher Spec).
I record CCS vengono usati per indicare una modifica nei cifrari crittografici. Subito dopo la registrazione su CCS, tutti i dati vengono crittografati con la nuova cifratura. i record CCS possono essere o non essere crittografati; in una connessione semplice con un singolo handshake, il record CCS non viene crittografato.
I record di avviso vengono utilizzati per indicare al peer che si è verificata una condizione. Alcuni avvisi sono avvisi, altri sono irreversibili e impediscono la connessione. Gli avvisi possono essere crittografati o meno e possono verificarsi durante un handshake o il trasferimento di dati. Esistono due tipi di avviso:
Questi record contengono i dati effettivi dell'applicazione. Questi messaggi vengono trasportati dal livello di record e vengono frammentati, compressi e crittografati in base allo stato di connessione corrente.
In questa sezione viene descritta una transazione di esempio tra il client e il server.
Quando un client e un server SSL iniziano a comunicare, concordano una versione del protocollo, selezionano gli algoritmi di crittografia, facoltativamente si autenticano a vicenda e utilizzano tecniche di crittografia a chiave pubblica per generare segreti condivisi. Questi processi vengono eseguiti nel protocollo handshake. In sintesi, il client invia un messaggio Hello al server, che deve rispondere con un messaggio Hello del server oppure si verifica un errore irreversibile e la connessione non riesce. Client Hello e Server Hello vengono utilizzati per stabilire funzionalità di miglioramento della sicurezza tra client e server.
Hello del client
Client Hello invia questi attributi al server:
Nota: L'indirizzo IP del server nelle clip è 10.0.0.2 e l'indirizzo IP del client è 10.0.0.1.
Server Hello
Il server invia al client i seguenti attributi:
Per le richieste di ripresa delle sessioni SSL:
Server pronto
Il messaggio Server Hello Done viene inviato dal server per indicare la fine del saluto del server e dei messaggi associati. Dopo l'invio del messaggio, il server attende una risposta del client. Dopo aver ricevuto il messaggio Server Hello Done, il client verifica che il server abbia fornito un certificato valido, se necessario, e controlla che i parametri di Server Hello siano accettabili.
Certificato server, scambio chiave server e richiesta certificato (facoltativo)
Certificato client (facoltativo)
Questo è il primo messaggio che il client invia dopo aver ricevuto un messaggio di completamento del server. Questo messaggio viene inviato solo se il server richiede un certificato. Se non è disponibile alcun certificato appropriato, il client invia un avviso no_certificate. Questa segnalazione è solo un'avvertenza; tuttavia, il server potrebbe rispondere con un avviso di errore irreversibile dell'handshake se è necessaria l'autenticazione del client. I certificati DH client devono corrispondere ai parametri DH specificati dal server.
Scambio chiavi client
Il contenuto di questo messaggio dipende dall'algoritmo a chiave pubblica selezionato tra i messaggi Hello del client e Hello del server. Il client utilizza una chiave premaster crittografata dall'algoritmo RSA (Rivest-Shamir-Addleman) o DH per l'autenticazione e l'accordo della chiave. Quando RSA viene utilizzato per l'autenticazione del server e lo scambio di chiavi, il client genera un pre_master_secret di 48 byte, lo cripta con la chiave pubblica del server e lo invia al server. Il server utilizza la chiave privata per decrittografare il pre_master_secret. Entrambe le parti convertono quindi il pre_master_secret nel master_secret.
Verifica certificato (facoltativa)
Se il client invia un certificato con funzionalità di firma, viene inviato un messaggio di verifica del certificato con firma digitale per verificare esplicitamente il certificato.
Messaggi di modifica delle specifiche di crittografia
Il messaggio Modifica specifica di cifratura viene inviato dal client, che copia la specifica di cifratura in sospeso (la nuova) nella specifica di cifratura corrente (quella utilizzata in precedenza). Il protocollo Modifica specifica cifratura esiste per segnalare transizioni nelle strategie di cifratura. Il protocollo è costituito da un singolo messaggio, cifrato e compresso in base alla specifica di cifratura corrente (non in sospeso). Il messaggio viene inviato sia dal client che dal server per notificare alla parte ricevente che i record successivi sono protetti in base alla specifica di cifratura e alle chiavi negoziate più di recente. La ricezione di questo messaggio determina la copia da parte del destinatario dello stato di lettura in sospeso nello stato di lettura corrente. Il client invia un messaggio Modifica specifica crittografia dopo lo scambio di chiave dell'handshake e gli eventuali messaggi di verifica del certificato e il server ne invia uno dopo aver elaborato correttamente il messaggio di scambio chiave ricevuto dal client. Quando viene ripresa una sessione precedente, il messaggio Modifica specifica crittografia viene inviato dopo i messaggi Hello. Nelle clip, i messaggi Scambio client, Cambia crittografia e Fine vengono inviati come un unico messaggio dal client.
Messaggi completati
Il messaggio Fine viene sempre inviato subito dopo il messaggio Modifica specifica di crittografia per verificare che i processi di scambio chiave e autenticazione abbiano avuto esito positivo. Il messaggio Finished è il primo pacchetto protetto con gli algoritmi, le chiavi e i segreti negoziati più di recente. Non è richiesto alcun riconoscimento del messaggio Finished. le parti possono iniziare a inviare i dati crittografati subito dopo aver inviato il messaggio Finished. I destinatari dei messaggi Finiti devono verificare che il contenuto sia corretto.