Crittografia e sicurezza delle reti
Il libro di Stallings riguarda la sicurezza delle comunicazioni, ed è in particolare incentrato sulla crittografia e sui meccanismi e protocolli di autenticazione e cifratura. Non è quindi un elenco di programmi utili, ma vuole essere una guida completa per comprendere questo aspetto della sicurezza, a partire dalle basi matematiche.
E' un volume di 640 pagine, suddiviso in quattro parti, per un totale di 20 capitoli. Dopo l'introduzione, si apre la prima parte, composta da 6 capitoli, che tratta la matematica dei campi finiti e la crittografia simmetrica. La seconda parte, sempre di 6 capitoli, riguarda la crittografia a chiave pubblica, le funzioni di hash e le firme digitali. La terza, di 4 capitoli, spiega le applicazioni per la sicurezza delle reti, mentre la quarta è una parentesi di 3 capitoli sulla sicurezza dei sistemi e i firewall. Il libro è organizzato in modo molto ordinato e il linguaggio è chiaro, nonostante ci siano molte formule e concetti di matematica, tuttavia indispensabili per comprendere a fondo questa materia.
L'introduzione descrive i servizi di sicurezza e gli attacchi più comuni, che verranno poi trattati in dettaglio man mano che si procede nella lettura dedl libro. Inoltre in calce viene spiegata l'organizzazione del libro e vengono elencati dei siti web di riferimento.
Il secondo capitolo fa un'introduzione alla crittografia e alla crittoanalisi, evidenziandone i concetti di base: i cifrari, il numero di chiavi e gli attacchi. Vengono trattati, anche dal punto di vista matematico, i cifrari monoalfabetici e polialfabetici, le tecniche di trasposizione e la steganografia.
Segue poi una parte che riguarda i principi della moderna crittografia simmetrica, soffermandosi inizialmente sullo standard DES nella sua versione semplificata S-DES: ne viene descritto il funzionamento e discussa la robustezza. Dopo una doverosa parentesi sul cifrario di Feistel, si apre poi la trattazione sulla versione completa del DES, analizzandone in dettaglio sia la progettazione che le tecniche di crittoanalisi a cui può essere soggetto. Infine vengono spiegate le tecniche di concatenazione
standard: CBC, CFB, OFB e CTR.
Il quarto capitolo è dedicato ai campi finiti, fondamentali per il funzionamento del cifrario AES e della crittografia a curve ellittiche. Si parte con una panoramica dei concetti di gruppi, anelli e campi, per poi proseguire descrivendo le basi dell'aritmetica modulare, dell'algoritmo di Euclide e dell'aritmetica polinomiale. Questi concetti sono necessari per capire a fondo le trattazioni successive e per questo vengono correlati con molti esempi.
Dopo aver stabilito le basi, si passa alla trattazione del più moderno standard AES, riportandone prima la storia e valutandone le potenzialità, per poi procedere alla descrizione vera e propria del funzionamento, concludendo con gli aspetti implementativi.
Il sesto capitolo tratta le cifrature simmetriche contemporanee: double e triple DES, Blowfish, RC4 e RC5. Anche in questo caso l'analisi che viene fatta è esauriente e tratta tutti i possibili aspetti, sia implementativi che storici.
A questo punto, per concludere la prima parte del libro, si pone il lettore davanti a dei problemi riguardanti altre considerazioni, come l'autenticazione, l'integrità dei dati e le firme digitali. In particolare si descrivono i potenziali punti di attacco alla segretezza che vanno al di là dell'utilizzo di un determinato standard, come ad esempio i criteri di distribuzione delle chiavi, la loro durata, la generazione di numeri casuali.
Proprio sulla base di queste problematiche si apre la seconda parte, che riguarda la crittografia a chiave pubblica. L'ottavo capitolo, come il quarto, tratta aspetti puramente matematici necessari per capire ciò che verrà descritto più avanti. In particolare, dopo una breve introduzione ai numeri primi, vengono spiegati i teoremi di Fermat e di Eulero, la funzione toziente, il test di primalità Miller-Rabin e il teorema cinese del resto.
Infine l'autore si sofferma sui logaritmi discreti e sulla difficoltà computazionale necessaria a risolverli.
Una volta compresi questi concetti si descrive cos'è e come funziona la crittografia a chiave pubblica e i servizi da essa offerti. Si descrive poi in dettaglio l'algoritmo RSA, valutandone la sua sicurezza e gli aspetti computazionali.
Il decimo capitolo riguarda la gestione delle chiavi: inizia trattando il problema della distribuzione delle chiavi pubbliche e l'uso della crittografia a chiave pubblica per distribuire chiavi segrete di sessione.
Segue poi una discussione sul key agreement Diffie-Hellman e una parentesi sull'aritmetica e la crittografia a curva ellittica, che probabilmente in futuro sarà il nuovo standard per i sistemi crittografici a chiave pubblica.
Fondamentali per la firma digitale sono l'autenticazione e le funzioni hash, a cui è dedicato l'undicesimo capitolo: dopo un'introduzione sull'integrità dei messaggi e i codici MAC, con particolare attenzione a quelli basati su DES, si descrivono le funzioni hash e i possibili attacchi ad esse. Conclude il capitolo un'interessante appendice sulle considerazioni matematiche alla base del birthday attack.
A questo punto vengono descritti i principali algoritmi hash standard: si parte descrivendo MD5, MD4 e SHA e facendone un confronto critico. Si prosegue poi con la trattazione dell'algoritmo RIPEMD-160 e dell'HMAC, valutandone anche gli aspetti di sicurezza.
Ora il lettore possiede tutte le basi per capire il funzionamento delle firme digitali e dei protocolli di autenticazione. Dopo aver introdotto questi concetti, si apre la trattazione, nel tredicesimo capitolo, dello standard DSS e in particolare dell'algoritmo DSA, basato sullo schema di firma di El Gamal.
Si apre quindi la terza parte del volume, che tratta le applicazioni per la sicurezza della rete che impiegano le funzioni descritte nei capitoli precedenti. In particolare il quattrodicesimo capitolo descrive le applicazioni per l'autenticazione degli utenti: si parte dal diffuso Kerberos, analizzato nelle versioni 4 e 5, per poi procedere con la descrizione dei certificati X.509 e dei servizi di autenticazione basati su di essi.
Il quindicesimo capitolo descrive due approcci per implementare la sicurezza nella posta elettronica: PGP e S/MIME. Di entrambi vengono descritti in dettaglio il funzionamento e gli aspetti di sicurezza. In calce al capitolo ci sono tre appendici riguardanti la compressione dei dati con l'algoritmo LZ77, la conversione del testo con la tecnica radix-64 e la generazione dei numeri casuali in PGP.
Doverosa è anche la trattazione della sicurezza su rete IP: il protocollo descritto è IPSec. Vengono spiegate le sue applicazioni, la sua architettura, i suoi servizi e le diverse modalità. Concludono il capitolo le descrizioni dello scambio di chiavi Oakley e dell'ISAKMP. Da far notare è l'esauriente appendice sul protocollo IP, sia nella versione 4 che nella versione 6.
Conclude la terza parte il capitolo che riguarda l'introduzione della sicurezza sul Web. In particolare vengono descritti dettagliatamente gli standard più diffusi: SSL/TLS e SET.
La quarta parte, racchiusa nelle rimanenti 80 pagine, tratta i problemi di sicurezza a livello di sistema. Il diciottesimo capitolo descrive le varie tecniche di intrusione da parte di hackers, le principali teorie sul loro rilevamento e i criteri di gestione e scelta delle password. Vengono poi elencati i principali tipi di software pericolosi che si diffondono sui
computers: virus, bombe logiche, trap doors, cavalli di troia, zombie e worm.
Chiude il libro una parentesi sugli aspetti progettuali dei firewall, le principali tipologie e il concetto di sistema fidato.
Da far notare che ogni capitolo termina con delle domande di ripasso e dei problemi da risolvere, utilissimi per verificare l'apprendimento dei concetti.
Insomma il libro di Stallings è a nostro avviso un ottimo testo sia per chi volesse approcciarsi per la prima volta a questi aspetti della sicurezza sia per chi abbia piacere nel possedere un volume di riferimento sull'argomento da consultare di volta in volta.
Il voto dei nostri lettori:
(36 voti)