SSL Secure Socket Layer 3.0, cos'è e come funziona
Vi proponiamo questo articolo relativo alle tecnologie SSL Secure Socket Layer 3.0, a cui oggi giorno è affidata la sicurezza di gran parte dei dati traferiti in internet
di Fabio Boneschi pubblicata il 09 Giugno 2005, alle 10:10 nel canale Sicurezza







Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
La Cina è riuscita a far comunicare via laser il satellite DRO-A in orbita intorno alla Luna con le stazioni sulla Terra
La società cinese Galactic Energy ha lanciato con successo il razzo spaziale riutilizzabile Pallas-1
Flight 14 del razzo spaziale SpaceX Starship potrebbe avvenire a metà settembre, Super Heavy Booster 21 ha eseguito uno static fire
La crittografia post-quantistica è al sicuro: un nuovo studio smonta gli attacchi
PaperWake: la sveglia open-source con schermo e-ink ed ESP32 sembra uscita da un negozio di design
La crisi delle memorie continua: il prezzo al chilo delle DRAM si avvicina a quello dell'oro
La Xiaomi Smart Band 11 è vicina: quattro versioni disponibili di cui una inedita
Aspira a 21.000 Pa, soffia, gonfia e illumina: ufficiale il nuovo aspirapolvere compatto di HONOR
ChatGPT è ora un motore di ricerca e deve rispettare il DSA dell'UE
Oracle Fusion Cloud HCM si aggiorna: arrivano nuove funzionalità e agenti di IA a supporto dei team HR
Tesla, incidente fatale a 167 km/h su strada urbana con Autopilot attivo: ma alcuni dati rimangono secretati
NVIDIA ha cambiato idea: Rubin CPX torna dal 'limbo' e cambia la memoria
Samsung Galaxy Book6: fino a 25 ore di autonomia e Galaxy AI al prezzo più basso di sempre









31 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoGrazie a tutti.
come mai non la può conoscere ? Le chiavi pubbliche non si chiamano pubbliche perchè sono conosciute da tutti?
Ed infatti ho scritto una bestialità
Ora cmq dovresti aver capito, per un terzo incomodo non in possesso di una chiave privata, si tratterebbe di risolvere un'equazione in 2 incognite, cosa impossibile
Chiave &Lucchetto
Salve...per comprendere meglio il concetto di chiave pubblica e privata, si può fare un parallelo con chiave e lucchetto (quelli fisici intendo, non digitali).
La chiave pubblica è come un lucchetto, mentre la chiave privata è la chiave fisica per aprire il lucchetto.
In pratica Tizio invia a Caio un lucchetto (chiave pubblica), di cui solo tizio ne possiede la chiave per aprirlo (chiave privata). Caio a questo punto non può fare altro che confezionare una scatola (il codice da inviare crittografato con la chiave pubblica) e chiuderla col lucchetto di Tizio (criptazione), quindi invia la scatola inlucchettata ( il codice cifrato), ovviamente solo Tizio che è in possesso della chiave fisica (chiave privata) potrà aprire il lucchetto ed aprire la scatola (decriptare e leggere il codice in chiaro).
Se ho sbagliato vi prego di correggermi
Dopodichè il server comunicava gli algoritmi scelti fra quelli supportati dal client e sceglieva un nonce generato localmente (Rserver) e spediva il tutto al client.
A questo punto il server invia il proprio certificato (firmato da una CA,basta guardare nelle proprie opzioni del broswer per vedere le CA presenti) con la propria chiave pubblica e poi comunica al client che è arrivato il suo turno (transazione server conclusa).
Il client risponde scegliendo una chiave casuale di 384 bit detta Premaster Key che invia al server in forma crittografata utilizzando la chiave pubblica (certificata) del server.
La Session Key vera e propria però non è la Premaster Key ma è ricavata da i 2 nonce (Rserver e Rclient) e la stessa Premaster Key.
Entrambi calcolano la Session Key.
A questo punto il client spedisce 2 messaggi per indicare che da qui in avanti si utilizzerà la chiave e che il protocollo di handshake è terminato.
Il server risponde con 2 messaggi per confermare i precedenti.
Adesso è terminato completamente l'handshake fra client e il server.
Talvolta potrebbe esserci anche l'autentificazione del client da parte del server (non è obbligatoria),ho omesso questa parte.
Da qui in poi si cripta i dati provenienti dallo strato applicativo oltre che un controllo d'integrità.
Infatti si utilizza un altro protocollo di SSLv3 (il precendente definiva le regole per l'handshake) per la crittografia e l'integrità.
I msg provenienti dallo strato applicativo (si pensi a SSLv3 come a uno strato intermedio fra strato applicativo e strato di trasporto o meglio del solo TCP visto che funziona solo con quest'ultimo) vengono suddivisi in blocchi di 16kbyte ciascuno (se è abilitata la compressione ogni unità è compressa singolarmente).
Poi si calcola con l'algoritmo scelto per l'integrità (esempio MD5) un Hash sul blocco+la Session Key concatenata a quest'ultimo.
Poi l'hash viene aggiunto al blocco come MAC (Message Autentication Code) e compresso.
Poi viene cifrato con l'algoritmo a chiave simmetrica scelto (di solito per transazioni commerciali viene calcolata l'Xor fra la KeyStream di RC4,a sua volta generata utilizzando come seme la Session Key,e il blocco in questione).
Infine viene aggiunta un'intestazione a questo blocco finale cifrato e passato allo strato di trasporto (il quale lo inserirà come carico utile in un segmento TCP).
Da notare che il migliore algoritmo per l'integrità è SHA-1 e per la crittografia il Triple DES con chiavi a 168Bit.
Altrimenti un altro per la crittografia è l'RC4 con chiavi a 128Bit (se non sbaglio in alcuni paesi è necessario però che i primi 88Bit siano pubblici per ragioni di governo....) e per l'integrità invece un alternativa a SHA-1 è MD5.
Da notare che quando si utilizza http su ssl prende il nome di https.
Inoltre non è possibile (almeno su Apache) utilizzare la funzione di "VirtualHost" basati su i nomi perchè prima di scambiare qualsiasi dato (quindi anche i msg http) si autentifica il server con un certificato firmato da una CA dove è presente il "nome logico" del server web.
Spero di non aver detto qualcosa di errato se sì ditemelo
Edit :
I 2 protocolli di SSLv3 sono SSL Handshake Protocol (il primo per l'handshake) e SSL Record Protocol (per il trasporto crittografato dell'informazione e il controllo di integrità
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".