Passa al contenuto principale

2. The Goals of Security (Obiettivi della sicurezza)

2. The Goals of Security (Obiettivi della sicurezza)

La maggior parte delle persone parla di sicurezza come se fosse una singola proprietà monolitica di un protocollo o di un sistema; tuttavia, riflettendoci, si capisce chiaramente che non è così. Piuttosto, la sicurezza è una serie di proprietà correlate ma in qualche misura indipendenti. Non tutte queste proprietà sono richieste per ogni applicazione.

Possiamo dividere in modo approssimativo gli obiettivi di sicurezza in quelli relativi alla protezione delle comunicazioni (COMMUNICATION SECURITY, sicurezza delle comunicazioni, nota anche come COMSEC) e in quelli relativi alla protezione dei sistemi (ADMINISTRATIVE SECURITY, sicurezza amministrativa, o SYSTEM SECURITY, sicurezza di sistema). Poiché le comunicazioni sono effettuate dai sistemi e l’accesso ai sistemi avviene tramite canali di comunicazione, questi obiettivi ovviamente si intrecciano, ma possono anche essere forniti in modo indipendente.

2.1. Communication Security (Sicurezza delle comunicazioni)

Autori diversi suddividono gli obiettivi della sicurezza delle comunicazioni in modi diversi. La partizione che abbiamo trovato più utile è dividerli in tre categorie principali: CONFIDENTIALITY (riservatezza), DATA INTEGRITY (integrità dei dati) e PEER ENTITY AUTHENTICATION (autenticazione tra pari).

2.1.1. Confidentiality (Riservatezza)

Quando la maggior parte delle persone pensa alla sicurezza, pensa alla CONFIDENTIALITY (riservatezza). La riservatezza significa che i vostri dati sono tenuti segreti rispetto a ascoltatori non intenzionali. Di solito, questi ascoltatori sono semplicemente intercettatori passivi. Quando un avversario mette sotto controllo il vostro telefono, ciò comporta un rischio per la vostra riservatezza.

Ovviamente, se avete segreti, probabilmente siete preoccupati che altri li scoprano. Pertanto, al minimo, volete mantenere la riservatezza. Quando nei film le spie vanno in bagno e aprono tutta l’acqua per ostacolare le intercettazioni, la proprietà che cercano è la riservatezza.

2.1.2. Data Integrity (Integrità dei dati)

Il secondo obiettivo primario è l’integrità dei dati (DATA INTEGRITY). L’idea di base è che vogliamo assicurarci che i dati che riceviamo siano gli stessi dati che il mittente ha inviato. Nei sistemi basati sulla carta, parte dell’integrità dei dati arriva automaticamente. Quando ricevete una lettera scritta a penna potete essere abbastanza certi che nessuna parola sia stata rimossa da un attaccante perché i segni della penna sono difficili da rimuovere dalla carta. Tuttavia, un attaccante avrebbe potuto facilmente aggiungere segni alla carta e cambiare completamente il significato del messaggio. Allo stesso modo, è facile accorciare la pagina per troncare il messaggio.

D’altra parte, nel mondo elettronico, poiché tutti i bit sono uguali, è banale manomettere i messaggi in transito. Si rimuove semplicemente il messaggio dal cavo, si copiano le parti che interessano, si aggiungono i dati desiderati e si genera un nuovo messaggio a scelta, e il destinatario non se ne accorge. Questo è l’equivalente morale dell’attaccante che prende una lettera che avete scritto, compra carta nuova e ricopia il messaggio, modificandolo mentre lo fa. È solo molto più facile farlo elettronicamente, poiché tutti i bit sono uguali.

2.1.3. Peer Entity authentication (Autenticazione tra entità pari)

La terza proprietà di cui ci occupiamo è l’autenticazione tra entità pari (PEER ENTITY AUTHENTICATION). Con questo intendiamo che sappiamo che uno degli estremi della comunicazione è quello che intendevamo. Senza autenticazione tra entità pari, è molto difficile fornire riservatezza o integrità dei dati. Ad esempio, se riceviamo un messaggio da Alice, la proprietà di integrità dei dati non ci serve a molto a meno che non sappiamo che è stato effettivamente inviato da Alice e non dall’attaccante. Allo stesso modo, se vogliamo inviare un messaggio riservato a Bob, non ci è di grande valore se in realtà stiamo inviando un messaggio riservato all’attaccante.

Si noti che l’autenticazione tra entità pari può essere fornita in modo asimmetrico. Quando chiamate qualcuno al telefono, potete essere abbastanza certi di avere la persona giusta, o almeno che abbiate raggiunto una persona che è effettivamente al numero che avete chiamato. D’altra parte, se non hanno il caller ID, chi riceve una telefonata non ha idea di chi stia chiamando. Chiamare qualcuno al telefono è un esempio di autenticazione del destinatario (recipient authentication), poiché sapete chi è il destinatario della chiamata, ma loro non sanno nulla del mittente.

Nelle situazioni di messaggistica, spesso si desidera usare l’autenticazione tra entità pari per stabilire l’identità del mittente di un certo messaggio. In tali contesti, questa proprietà è chiamata DATA ORIGIN AUTHENTICATION (autenticazione dell’origine dei dati).

2.2. Non-Repudiation (Non ripudio)

Un sistema che fornisce autenticazione degli estremi consente a una parte di essere certa dell’identità di qualcuno con cui sta comunicando. Quando il sistema fornisce integrità dei dati, un destinatario può essere sicuro sia dell’identità del mittente sia del fatto di ricevere i dati che quel mittente intendeva inviare. Tuttavia, non può necessariamente dimostrare questo fatto a una terza parte. La capacità di fare tale dimostrazione è chiamata NON-REPUDIATION (non ripudio).

Vi sono molte situazioni in cui il non ripudio è desiderabile. Considerate la situazione in cui due parti hanno firmato un contratto e una parte desidera abrogarlo unilateralmente. Potrebbe semplicemente sostenere di non averlo mai firmato. Il non ripudio le impedisce di farlo, proteggendo così la controparte.

Purtroppo, il non ripudio può essere molto difficile da realizzare in pratica e gli approcci naïf sono in genere inadeguati. La sezione 4.3 descrive alcune delle difficoltà, che in generale derivano dal fatto che gli interessi delle due parti non sono allineati: una parte desidera dimostrare qualcosa che l’altra parte desidera negare.

2.3. Systems Security (Sicurezza dei sistemi)

In generale, la sicurezza dei sistemi riguarda la protezione delle proprie macchine e dei propri dati. L’intento è che le macchine siano usate solo da utenti autorizzati e per gli scopi che i proprietari intendono. Inoltre, dovrebbero essere disponibili per tali scopi. Gli attaccanti non dovrebbero poter privare gli utenti legittimi delle risorse.

2.3.1. Unauthorized Usage (Uso non autorizzato)

La maggior parte dei sistemi non è destinata ad essere completamente accessibile al pubblico. Piuttosto, è destinata ad essere usata solo da determinati individui autorizzati. Sebbene molti servizi Internet siano disponibili a tutti gli utenti Internet, anche quei server in genere offrono un sottoinsieme più ampio di servizi a utenti specifici. Ad esempio, i server Web spesso forniscono dati a qualsiasi utente, ma limitano la capacità di modificare le pagine a utenti specifici. Tali modifiche da parte del grande pubblico costituirebbero un USO NON AUTORIZZATO (UNAUTHORIZED USAGE).

2.3.2. Inappropriate Usage (Uso inappropriato)

Essere un utente autorizzato non significa avere carta bianca sul sistema. Come detto sopra, alcune attività sono riservate agli utenti autorizzati, alcune a utenti specifici, e alcune attività sono in generale vietate a tutti tranne che agli amministratori. Inoltre, anche attività in generale permesse possono essere vietate in alcuni casi. Ad esempio, agli utenti può essere permesso inviare posta elettronica ma vietato inviare file sopra una certa dimensione, o file che contengono virus. Questi sono esempi di USO INAPPROPRIATO (INAPPROPRIATE USAGE).

2.3.3. Denial of Service (Negazione del servizio)

Ricordate che il nostro terzo obiettivo era che il sistema fosse disponibile agli utenti legittimi. È possibile una vasta gamma di attacchi che minacciano tale uso. Tali attacchi sono collettivamente denominati attacchi di NEGAZIONE DEL SERVIZIO (DENIAL OF SERVICE). Gli attacchi di negazione del servizio sono spesso molto facili da montare e difficili da fermare. Molti di questi attacchi sono progettati per consumare risorse della macchina, rendendo difficile o impossibile servire utenti legittimi. Altri attacchi causano il crash della macchina bersaglio, negando completamente il servizio agli utenti.