Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
PUB
l’altra viene protetta e tenuta riservata (chiave privata, k );
PRI
non è possibile, ovviamente, risalire alla chiave privata partendo da quella pubblica.
Ecco quali sono le proprietà che possono essere garantite dalla crittografia asimmetrica:
riservatezza
autenticità
autenticità e riservatezza
Combinando i due maccanismi visti, si possono garantire entrambe le proprietà.
Ma che cosa cambia rispetto al meccanismo di crittografia simmetrica? Ci sono delle differenze:
si ha una maggiore sicurezza;
si ha una minore velocità.
8.3.3 L’integrità e i message digest
I dati cifrati non possono essere interpretati da chi non conosce la chiave di decifratura, ma ciò non
è sufficiente a garantirne l’integrità: anche se le informazioni sono cifrate, infatti, è sempre
possibile alterarle (senza conoscere le effettive modifiche apportate) e quindi renderle inutilizzabili
anche da parte dei legittimi destinatari.
Per questo motivo diventa molto importante disporre di opportune tecniche in grado di stabilire se
un dato è stato manipolato, come ad esempio la cosiddetta impronta dei dati (anche detta digest).
Ecco le caratteristiche di questa tecnica:
l’impronta può essere considerata una sorta di “riassunto” dei dati che si vuole proteggere
da manipolazioni illegittime ed è generata tramite appositi algoritmi di hash.
se il messaggio è stato alterato durante la trasmissione, non ci sarà più corrispondenza con
l’impronta.
Un requisito dell’utilizzo delle impronte di dati è che, una volta modificato il messaggio M in un
messaggio alterato M’, il digest D(M) dei due messaggi deve essere differente.
Deve valere cioè questa proprietà:
“Dato un messaggio M con digest D(M) e un messaggio M’ con digest D(M’), con
M≠M’, allora deve valere che: D(M)≠D(M’).”
70
8.3.4 La firma digitale
Molto spesso la crittografia viene utilizzata insieme ad un altro strumento, la firma digitale, un
meccanismo complesso (e diverso dalla firma elettronica) che all’interno di una comunicazione
garantisce autenticità, riservatezza e integrità (mediante il meccanismo dei digest).
Se la nostra organizzazione deve mandare un messaggio, ecco cosa succede:
il testo viene dato dall’organizzazione A in input al sistema di firma digitale;
il testo viene fatto passare attraverso una funzione di hash, che restituisce il digest;
il digest viene cifrato con la chiave privata dell’organizzazione A e si ottiene in output la
firma digitale, ossia l’impronta del testo cifrata con la chiave privata;
il testo viene aggiunto alla firma digitale e il tutto viene nuovamente cifrato, questa volta con
la chiave pubblica del destinatario B, e poi inviato lungo il canale di comunicazione;
quando il messaggio arriva a B viene decifrato con la chiave privata di B, operazione che
permette di ottenere il testo e la firma di A;
a questo punto si lavora in parallelo su due diverse operazioni:
- sul testo si applica la stessa funzione di hash, per trovare il digest del messaggio;
- la firma viene decifrata con la chiave pubblica di A, per ottenere il digest.
Infine, viene fatto un confronto tra i due digest: se essi sono uguali, si hanno garanzie di
integrità.
La firma digitale, così come è stata concepita, garantisce:
l’integrità del testo;
l’identità (autenticazione) del suo autore;
il non ripudio dei documenti, ossia ha un forte valore legale (maggiore di quello della
firma autografa).
Essa inoltre richiede un tempo di elaborazione relativamente lungo e, di conseguenza, non viene
normalmente usata in processi di rete che richiedono alte prestazioni.
Dato che essa dipende non solo dalla chiave privata del firmatario ma anche dai dati che sta
firmando, è diversa per ogni insieme di dati diverso che viene firmato.
8.3.5 La gestione delle chiavi
Per applicare gli algoritmi di crittografia (talvolta anche quelli di digest) occorre che le parti
interessate posseggano e condividano le chiavi: questo problema è detto di gestione delle chiavi.
La gestione delle chiavi riguarda diverse problematiche:
1. generazione delle chiavi
La generazione delle chiavi viene in genere fatta direttamente da chi effettuerà le operazioni
crittografiche, ossia il mittente. Le chiavi crittografiche sono stringhe casuali di bit
generate dall’RNG (Random Number Generator), dalla cui qualità dipende l’efficacia del
sistema di sicurezza. 71
2. conservazione delle chiavi
La conservazione delle chiavi è un grande problema: se le chiavi sono note agli attaccanti,
tutte le altre misure di sicurezza possono essere aggirate. Ci sono diverse soluzioni:
si memorizzano le chiavi in un file cifrato e protetto da password;
si memorizzano le chiavi su dispositivi hardware rimovibili, come:
- unità di memoria rimovibili;
- dispositivi “attivi”, ossia in grado di memorizzare le chiavi e di svolgere
autonomamente le operazioni crittografiche.
3. scambio delle chiavi (key exchange o key distribution)
Le modalità in cui può avvenire lo scambio di chiavi sono molte.
È molto importante fare una distinzione tra due tipologie di scambi:
scambio di chiavi segrete, che può essere effettuato in questi modi:
- la cosiddetta tecnica OOB (Out Of Band), che consiste nel distribuire la chiave
sfruttando dei canali diversi da quello di comunicazione, su cui transiteranno
in futuro i dati.
- in alternativa, è possibile sfruttare le tecniche di crittografia asimmetrica. Se
il destinatario dei dati cifrati dispone di una coppia di chiavi asimmetriche, il
mittente può inviargli la chiave segreta cifrandola con la chiave pubblica del
destinatario.
scambio di chiavi pubbliche, caso in cui non è importante la segretezza della chiave
(il problema, in questo caso, è associare correttamente la chiave all’identità del
possessore).
4. identificazione del possessore di una chiave
Le chiavi pubbliche vengono diffuse tramite una struttura dati denominata certificato a
chiave pubblica o PKC (Public Key Certificate), di fondamentale importanza per poter
identificare correttamente il possessore di una chiave.
Ogni certificato possiede queste proprietà:
lega in modo univoco la chiave alla persona;
è firmato in modo elettronico (firma digitale) dall’emettitore, ossia l’autorità di
certificazione, a garanzia che non vi siano alterazioni;
ha una scadenza temporale;
è revocabile sia dall’utente che dall’emettitore.
La chiave pubblica viene associata ad un certificato e viene inserita dall’emettitore in un
repository di altre chiavi. In questo modo, ogni volta che qualcuno ha bisogno della chiave
pubblica di un terzo individuo si rivolge semplicemente all’ente, per verificarne la validità.
Ogni certificato, infatti, riporta queste informazioni:
l’identificazione di chi ha emesso il certificato;
l’identificazione del soggetto che possiede la chiave privata corrispondente alla
chiave pubblica certificata;
la chiave pubblica del soggetto e le funzionalità per le quali essa è stata certificata;
gli attributi del certificato (versione del protocollo, numero di serie del certificato,
periodo di validità, …).
Un’autorità di certificazione o CA (Certification Authority) è un organismo creato per assolvere
compiti organizzativi (identificare i soggetti che richiedono un certificato) e tecnici (creazione
dei certificati). Svolge anche funzioni accessorie (distribuzione e revoca dei certificati).
8.4 Autorizzazione e controllo degli accessi: la gestione degli utenti
La gestione degli utenti vede due diversi livelli di sicurezza:
autenticazione
L’autenticazione è un meccanismo riconosciuto che permette di entrare nel sistema,
necessario per autenticare gli agenti prima di permettere loro di aprire un canale di
72
comunicazione o di accedere a delle informazioni. Permette di verificare la licenza d’uso
dell’identificativo.
Una persona può essere identificata utilizzando diversi meccanismi:
- something you know, se si sfrutta un’informazione che l’utente deve conoscere (ad
esempio una password);
- something you have, se si sfrutta un oggetto che l’utente possiede (per esempio una
carta mangetica);
- something you are, se si sfrutta una caratteristica fisica dell’utente (per esempio la
retina, l’impronta digitale, …).
Ci possono essere sistemi di:
- autenticazione semplice, che sfruttano user ID e password;
- autenticazione robusta, come ad esempio i sistemi:
i. OTP, ossia One Time Password;
ii. basati su dispositivi personali (token);
iii. basati su caratteristiche biometriche.
autorizzazione
Nella fase di autorizzazione si verifica se l’utente è abilitato a svolgere una determinata
funzione elementare (ci sono delle regole che permettono di abbinare ciascun utente alle
applicazioni a cui può accedere).
L’autorizzazione può essere richiesta:
- a livello applicativo (in questo caso, l’owner del file autorizza l’accesso degli altri
utenti e abilita le loro azioni);
- alle basi di dati, secondo gli approcci:
i. DAC, che consente accessi discrezionali;
ii. MAC, che consente accessi di tipo mandatory.
Molto spesso, per definire l’autorizzazione degli utenti si utilizzano le cosiddette tabelle CRUD
(Create, Read, Update, Delete): questi strumenti non sono altro che delle tabelle all’interno
delle quali ogni utente viene associato alle applicazioni aziendali e viene indicato quale di
queste quattro operazioni è abilitata.
Quando si parla di autorizzazione, è necessario fare una distinzione tra:
sistemi aperti
Questi sistemi sono di default aperti a tutti (ossia ogni utente autenticato può fare qualsiasi
cosa), ma si impongono delle regole per limitare l’accesso (si esplicita chi non può fare cosa).
sistemi chiusi
Questi sistemi sono di default chiusi a tutti (ossia ogni utente autenticato non può fare nulla),
ma si specificano delle regole per consentire l’accesso (si esplicita chi può fare cosa).
Ecco più nel dettaglio le caratteristiche degli approcci DAC e MAC:
DAC
Nel caso dell’approccio DAC, è l’autore della base di dati (ossia l’owner) a conferire
l’autorizzazione. Inoltre, può anche stabilire delle deleghe ad altre persone che a loro volta
possono dare l’autorizzazione ad altri individui (si parla, quindi, di autorizzazioni ad albero).
Le autorizzazioni possono anche essere selettive, ossia si può garantire l’accesso solo per
determinate funzionalità.
MAC
Nel ca