| Tecnologia di Internet | |||
|
|||
Il metodo con il quale per secoli sono stati trasmessi messaggi segreti è detto crittografia a chiave singola (o a chiave segreta, per distinguerlo dal metodo a chiave pubblica). Quando A vuole spedire a B un messaggio crittografato, queste sono le azioni da compiere
|
|||
| Crittografia a chiave singola | ![]() |
||
| Questo metodo ha qualche problema. Innanzitutto B deve trovare un modo sicuro per trasmettere la chiave ad A: se viene intercettata la comunicazione è compromessa. Poi, B deve fidarsi di A. Se A è un agente segreto che fa il doppio gioco, può passare la chiave di B al nemico; oppure può leggere gli altri messaggi provati di B; o, in modo più sottile, può fingere di essere B. Infine, in un organismo che necessita di scambiare messaggi segreti, o si hanno numerose chiavi da controllare, o bisogna usarne un piccolo numero, il che può portare a compromessi.
Il più diffuso sistema di cifratura a chiavi segrete è DES (Data Encryption System), ed è ad esempio utilizzato per la cifratura delle password di utente nei sistemi Unix. Su questo metodo di cifratura sono basati sistemi di autenticazione per reti locali, come ad esempio il sistema Kerberos, che viene installato dal gestore della rete, e provvede, tramite un archivio riservato di chiavi segrete, ad autenticare lidentità di chiunque usi la rete. Ad esempio, se una persona vuole accedere tramite la rete ad un proprio account, egli deve fornire la propria chiave segreta, che viene confrontata con quella conservata nellarchivio. |
|||
Ad ognuna delle persone coinvolte in una transazione vengono assegnate due chiavi, una chiave pubblica e una chiave privata. Ogni informazioni codificata con la chiave privata può essere decodificata solo con la chiave pubblica. Inversamente, ogni informazioni codificata con la chiave pubblica può essere decodificata solo con la chiave privata. Se A deve mandare un messaggio segreto a B:
|
|||
| Crittografia a chiave pubblica | ![]() |
||
| Questa tecnica evita molti degli svantaggi della chiave singola. B non deve preoccuparsi di spedire in modo sicuro la propria chiave ad A: la chiave è pubblica per definizione, e può servire solo per spedire messaggi a B, non per decodificarli. B non deve proccuparsi se A è un agente segreto che fa il doppio gioco. A non può decifrare messaggi mandati a B, né può fingere di essere B. I grandi organismi non hanno problemi. Chiunque voglia trasmettere un messaggio a B può farlo usando la chiave pubblica. Tuttavia, uno svantaggio di questo metodo è la necessità di usare chiavi molto lunghe e quindi la lentezza dei processi di codifica e decodifica.
Il più noto sistema a chiave pubblica è RSA sviluppato da Rivest, Shamir, e Adleman allinizio degli anni 80. Su di esso è sostanzialmente basato un programma denominato PGP (Pretty Good Privacy), che è attualmente il più usato mezzo di autenticazione per comunicazioni E-mail su Internet. Tramite questo programma è possibile non solo criptare un intero messaggio, ma anche accludere ad un messaggio in chiaro una firma digitale (digital signature), ricavata dalla propria chiave privata, tramite la quale chi riceve il messaggio può verificare lautenticità o meno dello stesso. Le chiavi pubbliche PGP sono reperibili via E-mail presso vari public key server, ossia server addetti alla memorizzazione e alla distribuzione delle chiavi pubbliche; essi possono essere controllati mediante comandi inseriti nel corpo del messaggio e spediti all'indirizzo pgp-public-keys@keys.pgp.net. Ogni volta che un utente installa per la prima volta il programma, dovrà provvedere a generare le proprie chiavi (quella pubblica e quella privata) e a spedire quella pubblica al server. Questultima operazione non è obbligatoria, ma permette a chiunque voglia comunicarvi di avere la vostra chiave. Risorse su Internet |
|||
| Firma digitale Con la crittografia a chiave pubblica, un messaggio può essere firmato. In altre parole è possibile usare una tecnica per cui se A spedisce un messaggio a B, B può essere sicuro che a spedirglielo è stato proprio A e non qualcuno che finge di essere A. Poiché A è lunico a possedere la propria chiave privata (con cui decodifica i messaggi cifrati che gli arrivano), A può codificare con la propria chiave privata i messaggi che spedisce e poi lo codifica con la chiave pubblica di B. B lo riceve, lo decodifica con la propria chiave privata e successivamente con la chiave pubblica di A. Se legge il messaggio è sicuro che è stato A (lunico che poteva codificare con la chiave privata di A) a mandarglielo. |
|||
Quando un browser SSL e un server SSL comunicano tra di loro, si accordano su un algorimo di cifratura che entrambi supportano. Alcuni dei più comuni algoritmi sono:
Per vedere quale sistema di cifratura usa un server https ci si può collegare con http://www.netcraft.com/sslwhats/ |
|||
| Lelenco delle chiavi pubbliche potrebbe essere falsificato. In crittografia a chiave pubblica, se A vuole spedire un messaggio a B deve assicurarsi di avere la chiave pubblica che realmente appartiene a B. I certificati servono a risolvere questo problema. Un certificato è un documento elettronico che collega un chiave pubblica con una particolare persona o organismo. I certificati, e quindi le chiavi pubbliche, sono rilasciati da una Certification Authority, che (a pagamento) provvede ad una serie di autenticazioni per assicurarsi che B è chi dice di essere e che la chiave pubblica nel certificato è realmente quella di B.
Lelenco pubblico dei certificatori italiani è mantenuto dallAIPA (Autorità Informatica Pubblica Amministrazione). Attualmente ne fanno parte:
Una certification authority italiana: http://ca.alinet.it/ I certificati digitali vengono rilasciati per applicazioni di
|
|||
| Sicurezza tra browser e server Nel caso della comunicazione web, le due parti in causa sono un utente finale che usa un browser e il sito di commercio elettronico che usa un server. Il server ha una sua chiave pubblica che viene attestata da un certificato digitale, detto anche Sicure Server ID. Il certificato digitale di un server contiene queste informazioni
SSL e certificato digitale Il browser codifica i dati che trasmette al server e decifra i dati che riceve dal server. |
|||
| Brevetti e limiti allesportazione I server commerciali come Netscape basano la loro implementazione su algoritmi alcuni dei quali sono sviluppati e brevettati in USA. Luso di questa tecnologia richiede il pagamento di una licenza allinterno degli USA. Al di fuori degli USA non è richiesto il pagamento di una licenza se il brevetto non è stato registrato. Quindi in Italia, per esempio, si può usare Apache SSL gratuitamente. Inoltre, fino a poco tempo fa, il governo USA probiva lesportazione di software che utilizzasse algoritmi di cifratura con chiave più lunga di 40 bit. Successivamente il limite è passato a 56. Attualmente questa limitazione è stata rimossa, e quindi anche in Italia è possibile usare il software, per esempio Netscape Navigator, nella versione con chiave a 128 bit. |
|||
| Risorse su Internet | |||
| Introduzione ai firewalls | |||
|
|||