Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Edition W. Stalling
Visit to download the full and correct content document:
https://ebookmass.com/product/sicurezza-dei-computer-e-delle-reti-1st-edition-w-stalli
ng/
Sicurezza dei computer
e delle reti
William Stallings
A cura di Alessandra De Paola e Giuseppe Lo Re
Authorized translation from the English language edition, entitled COMPUTER SECURITY: PRINCIPLES
AND PRACTICE, 4th Edition by William Stallings; Lawrie Brown, published by Pearson Education, Inc,
publishing as Pearson, Copyright c 2018.
Authorized translation from the English language edition, entitled CRYPTOGRAPHY AND NETWORK
SECURITY: PRINCIPLES AND PRACTICE, 8th Edition by William Stallings, published by Pearson
Education, Inc, publishing as Pearson, Copyright c 2020.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from Pearson Education, Inc.
Italian language edition published by Pearson Italia S.p.A., Copyright c 2022.
Il presente testo è di proprietà di Pearson Italia la quale non è associata, né direttamente né indirettamente, a
eventuali marchi di terzi che venissero richiamati per gli scopi illustrativi ed educativi che ha la pubblicazione.
Per i passi antologici, per le citazioni, per le riproduzioni grafiche, cartografiche e fotografiche appartenenti
alla proprietà di terzi, inseriti in quest’opera, l’editore è a disposizione degli aventi diritto non potuti reperire
nonché per eventuali non volute omissioni e/o errori di attribuzione nei riferimenti.
È vietata la riproduzione, anche parziale o ad uso interno didattico, con qualsiasi mezzo, non autorizzata.
Le fotocopie per uso personale del lettore possono essere effettuate nei limiti del 15% di ciascun volume dietro
pagamento alla SIAE del compenso previsto dall’art. 68, commi 4 e 5, della legge 22 aprile 1941, n. 633.
Le riproduzioni effettuate per finalità di carattere professionale, economico o commerciale o comunque per
uso diverso da quello personale possono essere effettuate a seguito di specifica autorizzazione rilasciata
da CLEARedi, Corso di Porta Romana 108, 20122 Milano, e-mail autorizzazioni@clearedi.org e sito web
www.clearedi.org.
Pearson non si assume alcuna responsabilità per i Materiali pubblicati da terze parti sui propri siti Web e/o
piattaforme o accessibili, tramite collegamenti ipertestuali o altri “collegamenti” digitali, a siti ospitati da terze
parti non controllati direttamente da Pearson (“sito di terze parti”). Per approfondimenti si invita a consultare
il sito pearson.it.
I nostri libri sono ecosostenibili: la carta è prodotta sostenendo il ciclo naturale e per ogni albero tagliato ne
viene piantato un altro; il cellofan è realizzato con plastiche da recupero ambientale o riciclate; gli inchiostri
sono naturali e atossici; i libri sono prodotti in Italia e l’impatto del trasporto è ridotto al minimo.
Traduzione: Vincenzo Agate (Capp. 1, 2, 10), Antonio Bordonaro (Capp. 3, 4, 6, 12, 14), Andrea Giammanco
(Capp. 11, 15), Lara Mauri (Capp. 5, 7, 8, 9, 13)
Realizzazione editoriale: Carmelo Giarratana
Grafica di copertina: Simone Tartaglia
Immagine di copertina: Illus_man/Shutterstock
Stampa: Arti Grafiche Battaia – Zibido San Giacomo (MI)
Tutti i marchi citati nel testo sono di proprietà dei loro detentori.
9788891915290
Printed in Italy
Ristampa Anno
00 01 02 03 04 22 23 24 25 26
Sommario
Indice
Prefazione vii
Pearson Mylab xii
Bibliografia 490
Questo volume nasce nell’ambito di un più vasto progetto editoriale con lo scopo
di pubblicare due testi universitari, in lingua italiana, sui temi della Crittografia
e della Sicurezza dei Computer e delle Reti, a partire dagli originali in lingua
inglese:
William Stallings, Cryptography and Network Security – Principles and Prac-
tice, Eighth edition, Pearson Education, Inc.
William Stallings, Lawrie Brown, Computer Security – Principles and Prac-
tice, Fourth edition, Pearson Education, Inc.
Il primo volume dal titolo Crittografia, tratto per intero dal primo testo, propone
la traduzione dei primi 14 capitoli dell’originale.
Il presente volume invece è costituito da una buona parte dei capitoli del se-
condo testo, relativi alla sicurezza dei computer, in aggiunta ai capitoli del primo
testo che trattano la sicurezza delle reti. I due volumi si rivolgono agli insegna-
menti sul tema della Cybersicurezza in corsi di Laurea Magistrale in Informatica
e in Ingegneria Informatica.
Negli ultimi anni, il settore ha assistito a innovazioni e miglioramenti conti-
nui. Questo testo cerca di catturare questi cambiamenti, mantenendo una tratta-
zione vasta ed esauriente dell’intero argomento. Rispetto alle precedenti versioni,
i volumi originali sono stati ampiamente rivisti da alcuni professori che insegna-
no la materia e da professionisti che lavorano nel campo. Il risultato è che in
molti punti la narrazione è stata chiarita e le illustrazioni sono state migliorate.
Inoltre, per migliorare l’apprendimento e la facilità d’uso, sono stati introdotti
cambiamenti sostanziali in tutto il libro.
Le modifiche maggiormente degne di nota sono le seguenti:
Sicurezza del data center – Il Capitolo 4 include una nuova discussione sulla
sicurezza del data center, inclusa la specifica TIA-492 dei livelli di affidabilità.
Malware – Il materiale sui malware nel Capitolo 5 è stato rivisto per includere
materiale aggiuntivo sui virus macro e sulla loro struttura, poiché ora sono la
forma più comune di malware virus.
Sicurezza della virtualizzazione – Il materiale sulla sicurezza della virtualizza-
zione nel Capitolo 8 è stato esteso, dato il crescente utilizzo di tali sistemi da
parte delle organizzazioni e negli ambienti di cloud computing. È stata aggiun-
ta anche una discussione sui firewall virtuali, che possono essere utilizzati per
proteggere questi ambienti.
Sicurezza del cloud – Il Capitolo 17, online in inglese, include una nuova di-
scussione sulla sicurezza del cloud. La discussione include un’introduzione
al cloud computing, concetti chiave sulla sicurezza del cloud, un’analisi degli
approcci alla sicurezza del cloud e un esempio open source.
viii Prefazione
Background
Negli ultimi anni, l’interesse per maggiori competenze in materia di sicurezza in-
formatica e argomenti correlati è cresciuto a un ritmo vertiginoso. Questo interesse
è stato stimolato da una serie di fattori, fra i quali spiccano i seguenti:
1. Poiché i sistemi informativi, i database, i sistemi distribuiti e le comunicazio-
ni basati su Internet sono diventati pervasivi nel mondo commerciale, insieme
alla maggiore intensità e sofisticatezza degli attacchi relativi alla sicurezza, le
organizzazioni ora riconoscono la necessità di una strategia di sicurezza com-
plessiva. Questa strategia prevede l’uso di hardware e software specializzati e
di personale addestrato per soddisfare tale esigenza.
2. L’educazione alla sicurezza informatica è emersa come un obiettivo naziona-
le negli Stati Uniti e in altri paesi, con implicazioni per la difesa nazionale e
la sicurezza interna. L’NSA/DHS National Center of Academic Excellence in
Information Assurance/Cyber Defense sta guidando un ruolo governativo nel-
lo sviluppo di standard per l’educazione alla sicurezza informatica negli Stati
Uniti. Di conseguenza, il numero di corsi nelle università, nei college e in altre
istituzioni operanti nella sicurezza informatica o aree correlate sta crescendo.
Obiettivi
Scopo di questo libro è fornire una rassegna concreta sia dei principi teorici che
della pratica della sicurezza dei computer e della sicurezza di rete attraverso una
panoramica aggiornata degli sviluppi nella sicurezza informatica. I problemi cen-
trali che devono affrontare i progettisti e gli amministratori della sicurezza inclu-
dono la definizione delle minacce ai sistemi informatici e di rete, la valutazione
dei rischi relativi di queste minacce e lo sviluppo di contromisure convenienti e di
facile utilizzo. I seguenti temi di base unificano la discussione:
Principi – Sebbene lo scopo di questo libro sia ampio, ci sono una serie di
principi di base che appaiono ripetutamente come temi e che unificano questo
campo. Esempi sono problemi relativi all’autenticazione e al controllo degli ac-
cessi. Il libro mette in evidenza questi principi ed esamina la loro applicazione
in aree specifiche della sicurezza informatica.
Approcci alla progettazione – Il libro esamina approcci alternativi per soddi-
sfare specifici requisiti di sicurezza informatica.
Standard – Gli standard sono arrivati ad assumere un ruolo sempre più impor-
tante, anzi dominante, in questo campo. La comprensione dello stato attuale e
della direzione futura della tecnologia richiede una discussione completa dei
relativi standard.
Esempi del mondo reale – Un certo numero di capitoli include una sezione che
mostra l’applicazione pratica dei principi di quel capitolo in un ambiente del
mondo reale.
Problemi di gestione
Fiducia reciproca
Sicurezza della rete e di Internet
con una organizzazione che prevede 15 capitoli nell’edizione cartacea in italiano
e 4 capitoli fruibili online in inglese. Il testo include un ampio glossario, un elenco
di acronimi usati di frequente e una bibliografia. Ogni capitolo include problemi
per i compiti, domande di revisione, un elenco di parole chiave e suggerimenti per
ulteriori letture.
Ringraziamenti
Questa edizione gode della revisione di numerose persone che hanno offerto ge-
nerosamente il loro tempo e la loro esperienza per rivedere le edizioni in lingua
inglese. Le seguenti persone hanno rivisto tutto o gran parte del testo di Crypto-
graphy and Network Security: Hossein Beyzavi (Marymount University), Donald
F. Costello (University of Nebraska Lincoln), James Haralambides (Barry Univer-
sity), Tenette Prevatte (Fayetteville Technical Community College), Anand See-
tharam (California State University Monterey Bay), Tenette Prevatte (Fayetteville
Technical Community College), Marius C. Silaghi (Florida Institute of Technolo-
gy), Shambhu Upadhyaya (University at Buffalo), Rose Volynskiy (Howard Com-
munity College), Katherine Winters (University of Tennessee at Chattanooga),
Zhengping Wu (California State University at San Bernardino), Liangliang Xiao
(Frostburg State University), Seong-Moo (Sam) Yoo (The University of Alabama
in Huntsville), e Hong Zhang (Armstrong State University).
Dettagliate revisioni tecniche di uno o più capitoli sono state fornite dalle
seguenti persone: Amaury Behague, Olivier Blazy, Dhananjoy Dey, Matt Frost,
Markus Koskinen, Manuel J. Martínez, Veena Nayak, Pritesh Prajapati, Bernard
Roussely, Jim Sweeny, Jim Tunnicliffe e Jose Rivas Vidal.
Inoltre, sono state fatte recensioni di singoli argomenti da “guru dell’area te-
matica”, tra cui Jesse Walker di Intel (Intel’s Digital Random Number Generator),
Russ Housley di Vigil Security (key wrapping), Joan Daemen (AES), Edward F.
Schaefer della Santa Clara University (AES semplificato), Tim Mathews, ex RSA
Laboratories (S/MIME), Alfred Menezes dell’Università di Waterloo (crittografia
a curva ellittica), William Sutton, editore di The Cryptogram ( cifratura classica),
Avi Rubin della Johns Hopkins University (teoria dei numeri), Michael Markowi-
tz di Information Security Corporation (SHA e DSS), Don Davis di IBM Internet
Security Systems (Kerberos), Steve Kent di BBN Technologies (X.509), e Phil
Zimmerman (PGP).
Nikhil Bhargava (IIT Delhi) ha sviluppato il set di problemi e soluzioni per
i compiti online. Dan Shumow di Microsoft e dell’Università di Washington ha
sviluppato tutti gli esempi e i compiti di Sage. Il professor Sreekanth Malladi
della Dakota State University ha sviluppato gli esercizi di hacking. Lawrie Brown
dell’Australian Defence Force Academy ha fornito i progetti sui cifrari a blocchi
AES/DES e i compiti di valutazione della sicurezza.
Sanjay Rao e Ruben Torres della Purdue University hanno sviluppato gli eser-
cizi di laboratorio che appaiono nell’IRC. Le seguenti persone hanno contribui-
to alle assegnazioni dei progetti che appaiono nel supplemento per l’istruttore:
Henning Schulzrinne (Columbia University); Cetin Kaya Koc (Oregon State Uni-
versity); e David Balenson (Trusted Information Systems e George Washington
University). Kim McLaughlin ha sviluppato il banco di prova.
x Prefazione
COME ACCEDERE
MyLab offre la possibilità di accedere al Manuale online: l’edizione digitale del testo arric-
chita da funzionalità che permettono di personalizzarne la fruizione, attivare la sintesi vocale,
inserire segnalibri.
Inoltre la piattaforma digitale MyLab integra e monitora il percorso individuale di studio
con attività formative e valutative specifiche. La loro descrizione dettagliata è consulta-
bile nella pagina di catalogo dedicata al libro, all’indirizzo link.pearson.it/B56C0AFE oppure
tramite il presente QR code.
CAPITOLO
1 Concetti di sicurezza
dei computer e delle reti
OBIETTIVI DI APPRENDIMENTO
Dopo aver studiato questo capitolo, il lettore sarà in grado di:
Sommario del capitolo I descrivere i requisiti chiave di sicurezza quali confidenzialità, integrità
e disponibilità;
1.1 Concetti di sicurezza informatica I discutere i tipi di minacce e attacchi di sicurezza che devono essere affrontati
1.2 Minacce, attacchi e risorse e fornire esempi dei tipi di minacce e attacchi che si applicano a diverse
categorie di computer e risorse di rete;
1.3 Requisiti funzionali di sicurezza I sintetizzare i requisiti funzionali per la sicurezza dei computer e delle reti
di calcolatori;
1.4 Principi fondamentali
di progettazione della sicurezza I spiegare i principi fondamentali di progettazione della sicurezza;
I discutere l’uso delle superfici di attacco e degli alberi di attacco;
1.5 Superfici di attacco
e alberi di attacco I comprendere gli aspetti principali di una strategia di sicurezza completa.
2 Autenticazione
degli utenti
OBIETTIVI DI APPRENDIMENTO
Dopo aver studiato questo capitolo, il lettore sarà in grado di:
Sommario del capitolo I discutere i quattro strumenti generali per autenticare l’identità di un utente;
I spiegare il meccanismo con cui i valori hash delle password vengono utilizzati
2.1 Principi di autenticazione digitale per l’autenticazione dell’utente;
degli utenti
I comprendere l’uso del filtro di Bloom nella gestione delle password;
2.2 Autenticazione basata su password I presentare una visione d’insieme sull’autenticazione degli utenti basata su
token.
2.3 Autenticazione basata su token
2.4 Autenticazione biometrica
Nella maggior parte dei contesti di sicurezza informatica, l’autenticazio-
2.5 Problemi di sicurezza per ne degli utenti costituisce il tassello di costruzione fondamentale e la
l’autenticazione degli utenti
prima linea di difesa. L’autenticazione degli utenti è la base per la mag-
2.6 Termini chiave, domande di ripasso gior parte dei tipi di controllo degli accessi e per il tracciamento delle
e problemi attività degli utenti. L’autenticazione degli utenti comprende due funzio-
ni. In prima istanza, l’utente si identifica presso il sistema presentando
una credenziale, come l’ID utente. In seconda istanza, il sistema verifica
l’utente attraverso lo scambio di informazioni di autenticazione.
Per esempio, l’utente Alice Toklas potrebbe avere l’identificatore
utente ABTOKLAS. Questa informazione deve essere memorizzata su
qualsiasi server o sistema informatico che Alice desidera utilizzare, e
potrebbe essere nota agli amministratori di sistema e agli altri utenti.
Una tipica informazione di autenticazione associata a questo ID utente è
una password, che è tenuta segreta (nota solo ad Alice e al sistema).1 Se
nessuno è in grado di ottenere o indovinare la password di Alice, allora
la combinazione di ID utente e password di Alice permette agli ammini-
stratori di impostare i permessi di accesso di Alice e di controllare la sua
attività. Poiché l’ID di Alice non è segreto, gli utenti del sistema possono
inviarle e-mail, ma poiché la sua password è segreta, nessuno può fingere
di essere Alice.
In sostanza, l’identificazione è il processo con cui un utente fornisce
al sistema un’identità presunta; l’autenticazione dell’utente è il modo per
stabilire la validità della identità presunta. Si noti che l’autenticazione
degli utenti è diversa dall’autenticazione dei messaggi. L’autenticazione
dei messaggi è una procedura che permette alle parti comunicanti di ve-
rificare che il contenuto di un messaggio ricevuto non sia stato alterato e
che la fonte sia autentica.
1
Tipicamente, la password è memorizzata sotto forma di valore hash sul server e
questo codice hash può non essere mantenuto segreto, come spiegato successivamente
in questo capitolo.
32 Capitolo 2 – Autenticazione degli utenti
Tabella 2.1
Requisiti di sicurezza Requisiti di sicurezza di base
per l’identificazione
e l’autenticazione 1 Identificare gli utenti del sistema informativo, i processi o i dispositivi che
(SP 800-171 del NIST). agiscono per conto degli utenti.
2 Autenticare (o verificare) le identità di quegli utenti, processi o dispositivi, come
prerequisito per permettere l’accesso ai sistemi informativi dell’organizzazione.
Requisiti di sicurezza derivati
3 Usare l’autenticazione a più fattori per l’accesso locale e di rete agli account con
privilegi e per l’accesso di rete agli account senza privilegi.
4 Impiegare meccanismi di autenticazione resistenti all’attacco di replay per
l’accesso di rete agli account con privilegi e senza privilegi.
5 Evitare la riutilizzazione degli identificatori per un periodo definito.
6 Disabilitare gli identificatori dopo un periodo definito di inattività.
7 Imporre una complessità minima delle password e un cambio di caratteri quando
vengono create nuove password.
8 Proibire la riutilizzazione delle password per un determinato numero di
generazioni.
9 Permettere l’uso di una password temporanea per gli accessi al sistema con
cambiamento immediato in una password permanente.
10 Memorizzare e trasmettere solo password protette crittograficamente.
11 Oscurare il risultato delle informazioni di autenticazione.
2.1 Principi di autenticazione digitale degli utenti 33
Figura 2.1
Registrazione, rilascio di credenziali e manutenzione Architettura di
autenticazione elettronica
del NIST SP 800-63-3.
Autorità di Sessione autenticata
Verifica dell’identità Sottoscrittore/ Parte che
registrazione
Registrazione dell’utente richiedente si fida (RP)
(RA)
Pr
Conferma della ot Asserzione
le e oc
registrazione zia on ol autenticata
d en issi Sc lo a
re m am ute
, c e/e n
bi ti
ken ion o ca
To straz to
gi
Re
Fornitore Token/credenziale
del servizio di Controllore
Validazione
credenziali (CSP)
Autenticazione elettronica
usando token e credenziali
Mezzi di autenticazione
Esistono quattro mezzi generali per autenticare l’identità di un utente, che possono
essere usati da soli o in combinazione.
Qualcosa che l’individuo conosce – Alcuni esempi includono una password,
un numero di identificazione personale (PIN), o le risposte a una serie di do-
mande prestabilite.
Qualcosa che l’individuo possiede – Alcuni esempi sono le keycard elettroni-
che, le smart card e le chiavi fisiche. Questo tipo di strumento di autenticazione
viene chiamato token.
Qualcosa che l’individuo è (biometria statica) – Alcuni esempi sono il rico-
noscimento tramite impronta digitale, retina e volto.
Qualcosa che l’individuo fa (biometria dinamica) – Alcuni esempi sono il
riconoscimento del modello di voce, le caratteristiche della scrittura a mano e
il ritmo di battitura.
Tutti questi metodi, correttamente implementati e utilizzati, possono fornire un’au-
tenticazione sicura dell’utente. Tuttavia, ogni metodo presenta dei problemi. Un
avversario può essere in grado di indovinare o rubare una password. Allo stes-
so modo, un avversario può essere in grado di falsificare o rubare un token. Un
utente può dimenticare una password o perdere un token. Inoltre, c’è un significa-
tivo sovraccarico amministrativo per la gestione delle informazioni su password
e token e per la protezione di tali informazioni all’interno dei sistemi. Per quan-
to riguarda i sistemi di autenticazione biometrici, esiste una varietà di problemi,
tra cui la gestione dei falsi positivi e dei falsi negativi, il consenso dell’utente, il
costo e la convenienza. L’autenticazione multifattore si riferisce all’uso di più
di uno dei mezzi di autenticazione presentati nella lista precedente (vedi Figura
2.2). La forza dei sistemi di autenticazione è ampiamente determinata dal numero
di fattori incorporati dal sistema. Le implementazioni che usano due fattori sono
considerate più forti di quelle che usano un solo fattore; i sistemi che incorporano
tre fattori sono più forti di quelli che ne incorporano solo due e così via.
io i
ne
az d
ic lo
ne
ic lo
nt ol
nt ol
te oc
te oc
au rot
au rot
P
Supera Supera
Fallisce Fallisce
Client Client
2.1 Principi di autenticazione digitale degli utenti 35
individui. Più specificamente, possiamo dire che l’errore potrebbe: (1) causare
una degradazione della capacità operativa in misura e durata tali che l’organiz-
zazione sia in grado di eseguire le sue funzioni primarie, ma l’efficacia delle
funzioni sia notevolmente ridotta; (2) causare un danno minore alle risorse or-
ganizzative; (3) causare una perdita finanziaria minore all’organizzazione o agli
individui; o (4) causare un danno minore agli individui.
Moderato – Ci si aspetta che un errore di autenticazione possa avere un grave
effetto negativo. Più specificamente, l’errore potrebbe: (1) causare una degra-
dazione significativa della capacità operativa in misura e durata tali che l’or-
ganizzazione è in grado di eseguire le sue funzioni primarie, ma l’efficacia
delle funzioni è significativamente ridotta; (2) causare un danno significativo
alle risorse organizzative; (3) causare una perdita finanziaria significativa; o (4)
causare un danno significativo agli individui che non comporta la perdita della
vita o lesioni gravi potenzialmente letali.
Alto – Ci si aspetta che un errore di autenticazione abbia un effetto negativo
grave o catastrofico. L’errore potrebbe: (1) causare una grave degradazione o
perdita della capacità operativa in misura e durata tali che l’organizzazione non
sia in grado di svolgere una o più delle sue funzioni primarie; (2) provocare
gravi danni ai beni dell’organizzazione; (3) provocare gravi perdite finanziarie
all’organizzazione o agli individui; o (4) provocare un danno grave o catastrofi-
co agli individui che comporta la perdita della vita o lesioni gravi che mettono
in pericolo la vita.
Inconveniente, disagio o danno alla posizione o alla reputazione Basso Moderato Moderato Alto
Danneggiamento dei programmi o degli interessi dell’organizzazione Nessuno Basso Moderato Alto
Figura 2.3
Schema delle password
di UNIX.
Password
File delle password
ID utente Salt Codice hash
Salt
Funzione Caricamento
hash lenta
Salt
Password
Seleziona
Funzione
hash lenta
Solaris e FreeBSD (un UNIX open source molto usato), è basata sull’algoritmo di
hashing sicuro MD5 (che è simile a, ma non sicuro quanto, SHA-1). La routine
crypt di MD5 usa un salt lungo fino a 48 bit e in effetti non ha limitazioni sulla
lunghezza della password. Produce un valore di hash a 128 bit. È anche molto
più lenta di crypt(3). Per ottenere il rallentamento, la crypt di MD5 usa un ciclo
interno con 1.000 iterazioni.
Probabilmente la versione più sicura dello schema UNIX con hash/salt è stata
sviluppata per OpenBSD, un altro UNIX open source, molto usato. Questo sche-
ma, riportato in [PROV99], usa una funzione hash basata sul cifrario a blocchi
simmetrico Blowfish. La funzione hash, chiamata Bcrypt, è piuttosto lenta da ese-
guire. Bcrypt permette password con lunghezza fino a 55 caratteri e richiede un
valore di salt casuale di 128 bit, per produrre un valore di hash di 192 bit. Bcrypt
include anche una variabile di costo; un aumento della variabile di costo causa un
corrispondente aumento del tempo richiesto per eseguire un hash Bcyrpt. Il costo
assegnato a una nuova password è configurabile, così gli amministratori possono
assegnare costi più alti agli utenti privilegiati.
re ottimale che faccia uso di una forza bruta illimitata e che voglia violare la metà
di tutti gli account disponibili, le password sembrano essere approssimativamente
equivalenti a stringhe casuali da 20 bit. Si può quindi vedere che l’utilizzo del-
la ricerca offline permette a un avversario di violare un gran numero di account,
anche se viene utilizzata una quantità significativa di hashing iterato.
La lunghezza della password è solo una parte del problema. Molte persone,
quando possono scegliere la propria password, scelgono una password che è indo-
vinabile, come il proprio nome, il nome della propria strada, una parola comune
del dizionario e così via. Questo rende il lavoro di cracking della password sem-
plice. Il cracker deve semplicemente testare il file della password con una lista
di password probabili. Poiché molte persone usano password prevedibili, una tale
strategia dovrebbe avere successo praticamente su tutti i sistemi.
Una dimostrazione dell’efficacia del guessing è riportata in [KLEI90]. Da
una varietà di fonti, l’autore ha raccolto file di password UNIX, contenenti quasi
14 000 password cifrate. Il risultato, che l’autore giustamente definisce agghiac-
ciante, è stato che in tutto, quasi un quarto delle password sono state indovinate.
È stata utilizzata la seguente strategia:
1. Provare il nome dell’utente, le iniziali, il nome dell’account e altre informazio-
ni personali rilevanti. In tutto, sono state provate 130 diverse permutazioni per
ogni utente.
2. Provare parole da vari dizionari. L’autore ha compilato un dizionario di oltre
60 000 parole, compreso il dizionario online sul sistema stesso e varie altre li-
ste come mostrato.
3. Provare varie permutazioni sulle parole del passo 2. Questo preveda di rendere
la prima lettera maiuscola o un carattere di controllo, rendere l’intera parola
maiuscola, invertire la parola, cambiare la lettera “o” con la cifra “zero” e co-
sì via. Queste permutazioni hanno aggiunto un altro milione di parole alla lista.
4. Provare varie permutazioni di maiuscole sulle parole del passo 2 che non sono
state considerate nel passo 2. Questo ha aggiunto quasi 2 milioni di parole alla
lista.
Così, il test ha coinvolto quasi 3 milioni di parole. Usando il processore più veloce
disponibile, il tempo per cifrare tutte queste parole per tutti i possibili valori di salt
era meno di un’ora. Si tenga presente che una ricerca così approfondita potrebbe
produrre un tasso di successo di circa il 25%, mentre anche un singolo successo
può essere sufficiente per ottenere una vasta gamma di privilegi su un sistema.
Gli attacchi che utilizzano una combinazione di tecniche di forza bruta e di-
zionario sono diventati comuni. Un notevole esempio di questo doppio approccio
è John the Ripper, un cracker di password open-source sviluppato per la prima
volta nel 1996 e ancora in uso [OPEN13].
di prezzo simile che usavano solo CPU tradizionali. Un PC che monta una sin-
gola GPU AMD Radeon HD7970, per esempio, può provare in media 8.2 × 109
combinazioni di password ogni secondo, in funzione dell’algoritmo adottato per
combinarle [GOOD12a]. Solo un decennio fa, tali velocità erano possibili solo
utilizzando costosi supercomputer.
La seconda area di perfezionamento nel cracking delle password è l’uso di
algoritmi sofisticati per generare potenziali password. Per esempio, [NARA05]
ha sviluppato un modello per la generazione di password usando le probabilità
delle lettere nel linguaggio naturale. I ricercatori hanno usato tecniche standard
di modellazione di Markov mutuate dall’elaborazione del linguaggio naturale per
ridurre drasticamente la dimensione dello spazio delle password da cercare.
Tuttavia i migliori risultati sono stati ottenuti studiando esempi di password
realmente in uso. Per sviluppare tecniche più efficienti ed efficaci dei semplici
attacchi a dizionario e a forza bruta, ricercatori e hacker hanno studiato la strut-
tura delle password. Per fare questo, gli analisti hanno bisogno di un grande pool
di password reali da studiare, che adesso hanno a disposizione. La prima grande
svolta è avvenuta alla fine del 2009, quando un attacco di SQL injection contro
il servizio di giochi online RockYou.com ha esposto 32 milioni di password in
chiaro usate dai suoi membri per accedere ai loro account [TIMM10]. Da allo-
ra, numerosi insiemi di file di password trafugate sono diventati disponibili per
l’analisi.
Utilizzando grandi insiemi di password trafugate come dati di addestramento,
[WEIR09] riporta lo sviluppo di una grammatica probabilistica context-free per
il cracking delle password. In questo approccio, i tentativi sono ordinati secondo
la loro probabilità, in base alla frequenza delle loro strutture di classi di caratteri
nei dati di addestramento, così come la frequenza delle loro sottostringhe di cifre
e simboli. Questo approccio è stato dimostrato essere efficiente nel cracking delle
password [KELL12, ZHAN10].
[MAZU13] riporta un’analisi delle password usate da oltre 25.000 studen-
ti di un’università scientifica con una complessa politica di gestione delle pas-
sword. Gli analisti hanno usato l’approccio di cracking delle password introdotto
in [WEIR09]. Hanno usato un database costituito da una collezione di file di pas-
sword trafugate, compreso il file di RockYou. La Figura 2.4 riassume un risultato
chiave dell’articolo. Il grafico mostra la percentuale di password che sono state
recuperate in funzione del numero di tentativi. Come si può vedere, oltre il 10%
delle password sono recuperate dopo soli 1010 tentativi. Dopo 1013 tentativi, quasi
il 40% delle password viene recuperato.
Figura 2.4
50% Percentuale di password
indovinate dopo un dato
numero di tentativi.
40%
Percentuale indovinata
30%
20%
10%
0%
104 107 1010 1013
Numero di tentativi
per la maggior parte degli utenti ricordare le loro password. Fortunatamente, an-
che se limitiamo l’universo delle password a stringhe di caratteri ragionevolmente
memorizzabili, la dimensione di tale universo è ancora troppo grande per permet-
tere un cracking praticabile. Il nostro obiettivo, quindi, è quello di eliminare le
password indovinabili permettendo all’utente di scegliere una password che sia
memorizzabile. Si utilizzano quattro tecniche di base:
Educazione degli utenti
Password generate dal computer
Controllo reattivo delle password
Politica delle password complesse
Agli utenti può essere spiegata l’importanza di usare password difficili da indo-
vinare e possono essere fornite linee guida per selezionare password robuste. È
improbabile che questa strategia di educazione degli utenti abbia successo nella
maggior parte delle installazioni, in particolare dove c’è una grande popolazione
di utenti o molto turnover. Molti utenti semplicemente ignoreranno le linee guida.
Altri potrebbero non essere preparati per giudicare cosa sia una password robu-
sta. Per esempio, molti utenti credono (erroneamente) che invertire una parola o
scrivere l’ultima lettera in maiuscolo renda una password non indovinabile.
Cionondimeno, è buona prassi fornire agli utenti linee guida sulla scelta delle
password. Forse l’approccio migliore è il seguente consiglio: una buona tecnica
per scegliere una password è quella di usare la prima lettera di ogni parola di
una frase. Tuttavia, non scegliere una frase nota come “An apple a day keeps
the doctor away” (Aaadktda). Invece, scegliete qualcosa come “My dog’s first
name is Rex” (MdfniR) o “My sister Peg is 24 years old” (MsPi24yo). Gli studi
hanno dimostrato che gli utenti possono generalmente ricordare tali password, ma
queste non sono suscettibili agli attacchi di password guessing basati su password
comunemente usate.
Le password generate dal computer presentano anche problemi. Se le pas-
sword sono di natura piuttosto casuale, gli utenti non saranno in grado di ricordar-
le. Anche se la password è pronunciabile, l’utente può avere difficoltà a ricordarla
e quindi essere tentato di scriverla. In generale, gli schemi di password genera-
te dal computer hanno una storia di scarsa accettazione da parte degli utenti. Il
FIPS 181 definisce uno dei generatori di password automatici meglio progettati.
Lo standard include non solo una descrizione dell’approccio ma anche un elenco
completo del codice sorgente C dell’algoritmo. L’algoritmo genera parole forman-
do sillabe pronunciabili e concatenandole per formare una parola. Un generatore
di numeri casuali produce un flusso casuale di caratteri usati per costruire le sillabe
e le parole.
Il controllo reattivo delle password è una strategia in cui il sistema esegue
periodicamente il proprio password cracker per scovare le password indovinabili.
Il sistema cancella tutte le password che vengono indovinate e ne informa l’utente.
Questa tattica ha una serie di svantaggi. In primo luogo, consuma risorse in modo
intensivo se il lavoro è fatto bene. Considerato che un avversario risoluto che è
in grado di rubare un file delle password può dedicare tutto il tempo di CPU allo
scopo per ore o addirittura giorni, un efficace controllore di password reattivo è in
netto svantaggio. Inoltre, tutte le password esistenti rimangono vulnerabili fino a
quando il verificatore di password reattivo le trova. Un buon esempio è il cracker
di password openware Jack the Ripper (openwall.com/john/pro/), che funziona su
una molteplicità di sistemi operativi.
2.2 Autenticazione basata su password 47
1 Figura 2.5
Prestazioni del filtro
di Bloom.
0.1
2 funzioni hash
Pr[falsi positivi]
0.01
4 funzioni hash
6 funzioni hash
0.001
0 5 10 15 20
Rapporto tra la dimensione della hash table (bit) e la dimensione del dizionario (parole)
2
Il filtro di Bloom comporta l’uso di tecniche probabilistiche. C’è una piccola probabilità che al-
cune password non presenti nel dizionario vengano rifiutate. Nella progettazione di algoritmi accade
spesso che l’uso di tecniche probabilistiche produca una soluzione meno dispendiosa in termini di
tempo o meno complessa, o entrambe le cose.
50 Capitolo 2 – Autenticazione degli utenti
Memory card
Le schede di memoria (memory card) possono immagazzinare ma non elaborare
dati. La più comune di queste carte è la carta bancaria con una banda magnetica
sul retro. Una banda magnetica può memorizzare solo un semplice codice di sicu-
rezza, che può essere letto (e purtroppo riprogrammato) da un lettore di carte poco
costoso. Ci sono anche schede di memoria che includono una memoria elettronica
interna.
Le memory card da sole possono essere usate per l’accesso fisico, come ad
esempio per una stanza d’albergo. Per l’autenticazione, un utente fornisce sia la
memory card che una qualche forma di password o numero di identificazione
personale (PIN). Un’applicazione tipica è uno sportello automatico (Automatic
Teller Machine ATM). La scheda di memoria, se combinata con un PIN o una
password, fornisce una sicurezza significativamente maggiore rispetto alla sola
password. Un avversario deve ottenere il possesso fisico della scheda (o essere in
grado di duplicarla) e in più deve ottenere la conoscenza del PIN. Tra i potenziali
svantaggi, la SP 800-12 del NIST (An Introduction to Computer Security: The
NIST Handbook, ottobre 1995) segnala i seguenti:
Richiede un lettore speciale – Questo aumenta il costo di utilizzo del token
e impone l’obbligo di mantenere la sicurezza dell’hardware e del software del
lettore.
Perdita del token – La perdita di un token impedisce temporaneamente al suo
proprietario di ottenere l’accesso al sistema. Quindi, c’è un costo amministra-
tivo nella sostituzione del token perso. Inoltre, se il token viene trovato, rubato
o falsificato, allora un avversario deve solo determinare il PIN per ottenere un
accesso non autorizzato.
Insoddisfazione dell’utente – Anche se gli utenti possono non avere difficoltà
ad accettare l’uso di una memory card per l’accesso al bancomat, il suo uso per
l’accesso al computer può essere considerato scomodo.
Smart card
Una grande varietà di dispositivi viene classificata come token intelligenti (smart
token). Questi possono essere classificati secondo quattro dimensioni mutualmen-
te esclusive:
Caratteristiche fisiche – I token intelligenti includono un microprocessore in-
corporato. Un token intelligente che assomiglia a una carta bancaria è chiamato
smart card. Altri token intelligenti possono assomigliare a calcolatrici, chiavi o
altri piccoli oggetti portatili.
Interfaccia utente – Le interfacce manuali includono una tastiera e un display
per l’interazione uomo/token.
Interfaccia elettronica – Una smart card o un altro token richiede un’interfac-
cia elettronica per comunicare con un lettore/scrittore compatibile. Una carta
può avere uno o entrambi i seguenti tipi di interfaccia:
– Con contatto (contact) – Una smart card con contatto deve essere inserita in
un lettore di smart card con una connessione diretta a una piastra di contatto
sulla superficie della carta (tipicamente placcata in oro). La trasmissione dei
comandi, dei dati e dello stato della carta avviene attraverso questi punti di
contatto fisico.
2.3 Autenticazione basata su token 51
– Senza contatto (contactless) – Una carta contactless richiede solo una stret-
ta vicinanza a un lettore. Sia il lettore che la carta hanno un’antenna, e i due
comunicano usando frequenze radio. La maggior parte delle carte contactless
trae anche l’alimentazione del chip interno da questo segnale elettromagneti-
co. Il raggio d’azione è tipicamente da mezzo pollice a tre pollici per le carte
non alimentate a batteria, ideale per applicazioni, che richiedono interazioni
della carta molto veloci, quali l’ingresso in un edificio o il pagamento.
Figura 2.6
Scambio smart card/lettore.
ATR
Comando APDU
Risposta APDU
protocolli che la scheda può utilizzare e le funzioni che può eseguire. Il terminale
può essere in grado di cambiare il protocollo utilizzato e altri parametri tramite un
comando di selezione del tipo di protocollo (PTS). La risposta PTS della scheda
conferma i protocolli e i parametri da utilizzare. Il terminale e la scheda possono
ora eseguire il protocollo per eseguire l’applicazione desiderata.
La funzione ePass è una funzione offline. Cioè, non è usata su una rete, ma è
usata in una situazione in cui il titolare della carta presenta la carta per un ser-
vizio particolare in un dato luogo, come passare attraverso un posto di controllo
passaporti.
La funzione eID può essere usata sia per servizi online che offline. Un esem-
pio di uso offline è un sistema d’ispezione. Un sistema d’ispezione è un terminale
per i controlli delle forze dell’ordine, per esempio, da parte della polizia o dei
Figura 2.7
Autenticazione utente
con eID.
e
zion
ntica
d i aute
sta
ichie IN
4. R sta P azio
ne
ichie t entic ento
5. R au
izzam
Server eID
c o llo di n d i r
el pr
oto l rei
bio d per i
ca m c a z i one
7. S tenti
6. L’utente inserisce il PIN ll’au
l tat o de
8. Risu
2. R
1. L’utente richiede ichie
3. M sta d
e ssag el se
il servizio (ad esempio, gio d rvizi
9. R i rein o
tramite browser web) isult diriz
ato d zam
ell’a ento
uten all’e
ticaz ID
10. S ione
erviz inolt
io co rato
nces
so
Host/applicazione server
2.4 Autenticazione biometrica 55
Figura 2.8
Costo rispetto alla
precisione di varie Iride
caratteristiche biometriche Mano
in schemi di autenticazione
utente. Retina
Costo
Firma
Volto Dito
Voce
Accuratezza
miche del parlante. Tuttavia, c’è sempre una variazione da un campione all’al-
tro nel tempo dello stesso parlante, complicando il compito del riconoscimento
biometrico.
La Figura 2.8 dà un’indicazione approssimativa del costo relativo e dell’accura-
tezza di queste misure biometriche. Il concetto di accuratezza non si applica agli
schemi di autenticazione dell’utente che utilizzano smart card o password. Per
esempio, se un utente inserisce una password, questa corrisponde esattamente alla
password prevista per quell’utente oppure no. Nel caso dei parametri biometrici,
il sistema deve invece determinare quanto strettamente una caratteristica biome-
trica presentata corrisponde a una caratteristica memorizzata. Prima di elaborare
il concetto di accuratezza biometrica, dobbiamo avere un’idea generale di come
funzionano i sistemi biometrici.
Figura 2.9
Nome (PIN)
Un sistema biometrico
generico – La registrazione
Sensore Estrattore di
crea un’associazione tra un
biometrico caratteristiche Database utente e le caratteristiche
biometrico biometriche dell’utente. A
seconda dell’applicazione,
Interfaccia utente l’autenticazione dell’utente
(a) Registrazione comporta la verifica che
un utente dichiarato sia
l’utente effettivo o
Nome (PIN) l’identificazione di un
utente sconosciuto.
Sensore Estrattore di
biometrico caratteristiche Database
biometrico
Rilevatore di
Interfaccia utente Vero/falso corrispondenze
di caratteristiche Un template
(b) Verifica
Sensore Estrattore di
biometrico caratteristiche Database
biometrico
Rilevatore di
Interfaccia utente Identità dell’utente o corrispondenze
“identità sconosciuta” di caratteristiche N template
(c) Identificazione
Accuratezza biometrica
In qualsiasi schema biometrico, alcune caratteristiche fisiche dell’individuo sono
associate a una rappresentazione digitale. Per ogni individuo, una singola rappre-
sentazione digitale, o template, viene memorizzata nel computer. Quando l’utente
deve essere autenticato, il sistema confronta il modello memorizzato con il mo-
dello presentato. Data la complessità delle caratteristiche fisiche, non ci si può
aspettare che ci sia una corrispondenza esatta tra i due modelli. Piuttosto, il siste-
ma usa un algoritmo per generare un punteggio di riconoscimento (tipicamente un
singolo numero) che quantifica la somiglianza tra l’input e il modello memorizza-
to. Per procedere con la discussione, definiamo i seguenti termini. Il tasso di falso
riconoscimento è la frequenza con cui i campioni biometrici provenienti da fonti
diverse sono erroneamente valutati come provenienti dalla stessa fonte. Il tasso
di falso riconoscimento è la frequenza con cui i campioni della stessa fonte sono
erroneamente valutati come provenienti da fonti diverse.
La Figura 2.10 illustra il dilemma posto al sistema. Se un singolo utente viene
testato dal sistema numerose volte, il punteggio di riconoscimento s varierà, con
una funzione di densità di probabilità che tipicamente forma una curva a campana,
come mostrato. Per esempio, nel caso di un’impronta digitale, i risultati possono
variare a causa del rumore del sensore, dei cambiamenti nell’impronta dovuti al
gonfiore o alla secchezza, del posizionamento del dito e così via. In media, qual-
siasi altro individuo dovrebbe avere un punteggio di riconoscimento molto più
basso, ma ancora una volta mostrerà una funzione di densità di probabilità a cam-
pana. La difficoltà è che la gamma di punteggi di corrispondenza prodotti da due
58 Capitolo 2 – Autenticazione degli utenti
In
cr
em
en
ta
la
Tasso di falsi disconoscimenti
10% so
gl
ia
la Aum
s
la dim icur ent
Di
m
co in ez a
in
nv ui za
ui
en sce ,
sc
ien
e la
za
s
Di sicu en ienz
og
la aum ven
m re ta a
lia
in zz
la
ui a
sc ,
co
e
n
1%
le
gua
re u
rro
di e
sso
d i ta
ea
Lin
0.1%
0.0001% 0.001% 0.01% 0.1% 1% 10% 100%
Tasso di falsi riconoscimenti