Prevenire i furti e gli accessi non autorizzati - PDF\nPrevenire i furti e gli accessi non autorizzati\nDownload "Prevenire i furti e gli accessi non autorizzati"\n1 IT Administrator - Sicurezza informatica Lezione 3 Materiale didattico validato da AICA Certificazione EUCIP IT Administrator Modulo 5 - IT Security Sicurezza informatica "AICA Licenziataria esclusiva in Italia del programma EUCIP (European Certification of Informatic Professionals), attesta che il materiale didattico validato copre puntualmente e integralmente gli argomenti previsti nel Syllabus IT Administrator e necessari per il conseguimento della certificazione IT Administrator IT Security. Di conseguenza AICA autorizza sul presente materiale didattico l'uso del marchio EUCIP, registrato da EUCIP Ltd e protetto dalle leggi vigenti" Riferimento Syllabus 2.0 (curriculum ufficiale AICA) Autenticazione e controllo degli accessi Prevenire i furti e gli accessi non autorizzati Prosegue il primo corso di taglio professionale destinato al conseguimento della certificazione ufficiale, EUCIP IT Administrator Sicurezza Informatica, valida in tutta Europa. In questo numero ci occupiamo di tutti i sistemi di riconoscimento e autenticazione, dalla password, alle smartcard con un esame approfondito anche dell autenticazione via rete. I contenuti sono composti da tre elementi: un articolo sulla rivista, un articolo, molto più esteso in formato PDF e un corso multimediale completo su CD e DVD di Giorgio Gobbi e Marco Mussini Obiettivo del corso IT Administrator Sicurezza Informatica Fornire al lettore familiarità con i vari modi di proteggere i dati sia su un singolo PC sia in una LAN connessa a Internet. In particolare, metterlo nelle condizioni di proteggere i dati aziendali contro perdite, attacchi virali e intrusioni. Inoltre, metterlo nelle condizioni di conoscere e utilizzare le utility e i programmi più comuni destinati a tali scopi Concetti generali dell autenticazione. In termini molto generali, l autenticazione può essere definita come il processo mediante il quale si verifica un determinato parametro. Il parametro può riguardare gli argomenti più svariati, come l identità di un processo o di un utente o di un computer, oppure l identità e l integrità di un pacchetto in rete. Una definizione più focalizzata vede l autenticazione come il processo tramite il quale viene stabilita l identità di un entità. Nel campo della sicurezza informatica, l entità è tipicamente un computer, un processo, un utente o un messaggio. La legge italiana considera autenticata l identità di una persona solo se c è un pubblico ufficiale che lo attesti e ricorre a complesse perifrasi per definire la conferma di identità ottenuta mediante mezzi informatici. Per semplicità, continueremo a usare il termine autenticazione come equivalente dell inglese authentication di uso generale, consapevoli del fatto che, quando si passa dal contesto tecnico a quello giuridico (per esempio riguardo la validità delle firme digitali), bisogna fare riferimento al linguaggio e alle disposizioni dei recenti articoli di legge. Sebbene la legge possa risultare complessa, farraginosa e criticabile dagli ambienti informatici, resta il fatto che nessun computer, software o utente può confermare con certezza l identità di un utente; si possono solo eseguire test che, quando superati, forniscono una garanzia sufficiente sull identità dell interlocutore. Il problema sta nell aggettivo sufficiente, che muta significato nel tempo con l evolversi delle tecnologie di attacco e di difesa e che dipende da ipotesi, spesso disattese, sul comportamento degli utenti e sulla validità degli strumenti tecnici. Di fronte alle possibilità di falsificazione e soprattutto alla possibile trascuratezza o incompetenza degli utenti, i test di autenticazione assumono un valore relativo. All atto dell autenticazione, l entità che chiede di essere autenticata presenta alcune credenziali, come una password o un certificato digitale, come prova della propria I contenuti delle 8 lezioni In collaborazione con: Lezione 1: Informazioni generali Lezione 2: parte 1Crittografia - fondamenti e algoritmi Lezione 2: parte 2Crittografia - applicazioni Lezione 3: Autenticazione e controllo degli accessi Lezione 4: Disponibilità Lezione 5: Codice maligno Lezione 6: Infrastruttura a chiave pubblica Lezione 7: Sicurezza della rete Lezione 8: Aspetti sociali, etici e legali della sicurezza informatica PC Open 46\n2 Lezione 3 IT Administrator - Sicurezza informatica identità. Se le credenziali sono valide e sufficienti, l entità è ritenuta autentica. L autenticazione verifica solo che un entità sia quella che dichiara di essere, senza entrare nel merito dell accesso al sistema. Una volta che un utente (in senso lato) è stato autenticato, il passo successivo è assicurare che possa accedere solo alle risorse per cui è autorizzato. Ciò avviene implementando controlli di accesso, permessi, privilegi e altri elementi, secondo il sistema in questione. L autorizzazione viene talvolta confusa con l autenticazione nei documenti tecnici e normativi, ma è un concetto ben distinto: autorizzazione è il diritto accordato a un individuo (oppure entità hardware/software) di accedere a un sistema e alle sue risorse secondo un profilo di permessi ben definito (definito ad esempio da un system administrator o stabilito automaticamente dalla categoria di autorizzazione dell utente). Un analogia per un processo di autenticazione informatico è il controllo del passaporto a una frontiera. Il viaggiatore fornisce alla guardia di frontiera il proprio passaporto con la foto, le generalità e informazioni sull ente che ha rilasciato il documento. La guardia osserva se il passaporto appare autentico, se la foto è somigliante e magari se ha un numero identificativo valido, verificato tramite accesso a un database. L atto di convalidare il passaporto e di valutare la somiglianza tra il viaggiatore e la foto è una forma di autenticazione. Il successo dell autenticazione non implica che al viaggiatore sia concesso di varcare la frontiera, come pure nel caso dell accesso a un sistema. La persona può essere priva di visto o di qualche altro requisito o risultare indesiderata o pericolosa per i suoi trascorsi, attività o connessioni. Allo stesso modo un entità informatica potrebbe essere autenticata e, una volta riconosciuta, potrebbe risultare priva di autorizzazioni. Su una rete (e specialmente Internet), l autenticazione è più complessa sia perché eseguita da macchine sia perché le entità autenticatrici della rete di solito non hanno accesso fisico alle entità da autenticare. Programmi o utenti ostili possono tentare di rubare informazioni, crearne di false, interrompere o alterare un servizio fingendosi entità valide. Il ruolo dei processi di autenticazione è quello di distinguere le entità valide da quelle non valide ed è un compito essenziale per la sicurezza di una rete e dei sistemi che vi sono connessi. Se un individuo riesce a impersonare un utente valido, non ci sono limiti al danno potenziale per la riservatezza e integrità delle informazioni, oltre ai danni economici che ne possono derivare. Vedremo che in qualche caso può essere persino compromessa la futura capacità di autenticazione degli utenti. Oggi esiste una vasta schiera di metodi di autenticazione, che comprende l uso di password, di certificati digitali, di dispositivi biometrici e di oggetti fisici come token ( gettoni, ovvero schede o chiavi di vario tipo) e Smart Card contenenti ad esempio un certificato. Nessuno di essi è perfetto. Le password, da tempo considerate insicure, sono destinate a essere rimpiazzate da metodi più efficaci. Persino metodi apprezzati o promettenti come le Smart Card e i dispositivi biometrici pongono seri problemi: le Smart Card per le difficoltà di adozione generalizzata data la varietà di soluzioni sul mercato (senza contare i costi), il secondo perché è relativamente facile procurarsi i dati biometrici di un individuo (a sua insaputa) compromettendone l autenticazione per tutta la vita. Oltre agli schemi consolidati di autenticazione che vedremo nei prossimi capitoli, è inevitabile che ne nascano di nuovi, favoriti anche dall evoluzione delle tecnologie mobili. Oggi, ad esempio, esistono PDA dotati di funzioni crittografiche e di capacità biometriche, come il riconoscimento dell impronta digitale, della firma e della voce, che li rendono idonei a impieghi di autenticazione riducendo i rischi di furto di identità. Infatti, nel caso di furto, il PDA, protetto da crittografia forte, può resistere per un buon tempo. Modelli di architettura I modelli a cui si fa riferimento per progettare un sistema di autenticazione dipendono dal tipo di utenti, dalla distribuzione fisica delle risorse, dal valore delle informazioni da proteggere e da altri fattori. In sintesi, i modelli fondamentali sono quattro. 1) Autenticazione locale: è quella utilizzata su un computer desktop o portatile. L intero sistema, inclusi i meccanismi di autenticazione e controllo degli accessi, risiede all interno di un singolo perimetro di sicurezza. L utente definisce e tiene aggiornate le informazioni di autenticazione all interno di tale perimetro. 2) Autenticazione diretta: è stata usata in passato dai server delle reti locali e dai sistemi di timesharing (utilizzo contemporaneo di un computer da parte di più utenti che si ripartiscono il tempo di elaborazione dello stesso). Il sistema è usato da molti utenti, anche remoti. Autenticazione e controllo degli accessi risiedono in un singolo perimetro fisico. E un modello diretto perché è centralizzato: un sistema prende tutte le decisioni e contiene il database con le informazioni sugli utenti. Ogni sistema di questo genere è amministrato e aggiornato indipendentemente, quindi il modello diretto si presta per un singolo sistema o per un gruppo di sistemi con popolazioni di utenti indipendenti. La vulnerabilità a intercettazioni e replay di messaggi impone l uso di crittografia, almeno per le password. 3) Autenticazione indiretta: è usata nei moderni sistemi distribuiti per consentire a una popolazione di utenti di accedere a più sistemi e punti di servizio in rete. Quando un sistema riceve una richiesta di accesso, la inoltra a un server di autenticazione centralizzato che esamina le credenziali fornite e conferma l identità dell utente. A tale scopo vengono usati protocolli come RADIUS e Kerberos o i domini dei server Windows. Il server di autenticazione gestisce un unico database, facilmente amministrabile, con le informazioni sugli utenti, che possono accedere in modo uniforme a tutti i punti di servizio ospitati dai sistemi sulla rete. 4) Autenticazione off-line: è quella utilizzata nei sistemi che sfruttano l infrastruttura a chiave pubblica (PKI). In questa architettura, diversi componenti autonomi prendono decisioni sull autenticazione degli utenti anche se Autenticazione locale avviene direttamente sul computer usato dall utente e si svolge entro un perimetro di sicurezza circoscritto. PC Open 47\n3 IT Administrator - Sicurezza informatica Lezione Conoscere differenti schemi di autenticazione. La lettura della retina o dell iride costituisce uno dei tipi di autenticazione biometrica. in tale momento non possono contattarsi l un l altro. Le parti interessate accettano il rischio che talvolta le decisioni siano basate su informazioni di autenticazione non aggiornate, che possono determinare risultati scorretti. Il modello indiretto è una combinazione dei tre precedenti: l autenticazione e il controllo degli accessi risiedono sullo stesso dispositivo, mentre il titolare della sicurezza (l autorità di certificazione che gestisce le chiavi pubbliche) mantiene un database centralizzato degli utenti autorizzati. L aspetto peculiare è che non occorre che la CA sia online, e quest ultima può anche distribuire le chiavi pubbliche attraverso mezzi tradizionali e proteggere in tal modo i propri sistemi da intrusioni. Per esempio, il protocollo SSL incorporato in un browser si procura il certificato con la chiave pubblica dal server da autenticare (per esempio il sito di una banca), lo autentica con un altra chiave pubblica prestabilita (nota al browser) e quindi utilizza la chiave pubblica del server nella fase di scambio dati per la costruzione di una chiave di sessione con cui cifrare le comunicazioni. I diversi schemi di autenticazione Indipendentemente dai metodi usati, i sistemi di autenticazione hanno generalmente alcuni elementi comuni: una persona o entità da autenticare, una o più caratteristiche distintive su cui si basa l autenticazione, un proprietario o amministratore del sistema di sicurezza e un meccanismo di autenticazione che verifica le caratteristiche distintive. Il meccanismo di controllo dell accesso, spesso considerato parte integrante del sistema di autenticazione, è in realtà una funzione successiva, invocata se l autenticazione ha avuto successo. Per esempio, nel caso del Bancomat, l elemento da autenticare è una persona, le caratteristiche distintive sono due (la scheda e il PIN), il proprietario è la banca e il meccanismo di autenticazione è il software di validazione delle informazioni fornite dalla scheda (registrate su una banda magnetica o nella memoria di un chip) e del PIN digitato dall utente. Se l autenticazione ha successo e l utente ha il credito necessario, il meccanismo di controllo dell accesso autorizza il prelievo della somma richiesta. Un altro esempio è quello di un sito di e-commerce; l entità da autenticare (verso il client che si collega al sito) è il proprietario del sito, la caratteristica distintiva è una chiave pubblica in un certificato digitale, l amministratore e garante della sicurezza è l autorità certificatrice che ha emesso il certificato, il meccanismo di autenticazione è il software di convalida del certificato contenuto nel browser dell utente, che determina se la pagina web è sicura. Tale schema è riscontrabile nel protocollo SSL (Secure Sockets Layer) presentato nel capitolo della sezione Crittografia. Nella letteratura è frequente trovare i fattori di autenticazione di un utente suddivisi in tre categorie: - qualcosa che sai (come password, passphrase, PIN o combinazione) - qualcosa che hai (come token, Smart Card o dati incorporati in un file o dispositivo) - qualcosa che sei (caratteristiche biometriche come impronta digitale, retina, iride, volto, voce). La paternità di questo schema è attribuita a Carlton e agli altri autori dell articolo del 1988 Alternate Authentication Mechanisms. L appeal mnemonico di qualcosa che sai, qualcosa che hai, qualcosa che sei ha fatto in modo che questa sorta di filastrocca mettesse stabili radici. Facciamo notare in ogni caso la forzatura in cui s incorre se si prende alla lettera la terza categoria, visto che tra un individuo e una caratteristica del proprio corpo corre una distanza pressoché incolmabile. Trascurare tale aspetto porterebbe a situazioni paradossali, dove si rischierebbe di autenticare corpi (non necessariamente vivi) o loro parti anziché individui. Sebbene la terza categoria rientri in realtà nella seconda (un individuo possiede un corpo che ha caratteristiche biometriche), per non allontanarci troppo dalla convenzione ci limiteremo a correggere la formulazione in qualcosa che sei. Qualcosa che sai È uno dei metodi di autenticazione più antichi, utilizzato per esempio in passato per bloccare gli stranieri che non conoscevano la parola d ordine o la pronunciavano male. Oltre a parole (password) e frasi (passphrase), gli elementi di autenticazione di questa categoria includono i PIN, le combinazioni da digitare su una tastiera numerica (l equivalente della combinazione numerica di un lucchetto o cassaforte) e le informazioni note soltanto all individuo, da usare in risposta a specifiche domande personali. L autenticazione tramite un dato segreto in possesso dell utente è vulnerabile sia per motivi tecnici sia per i comportamenti insicuri degli utenti; sebbene ancora ampiamente usata, tende a essere sostituita da metodi più sicuri e da combinazioni di più fattori (come scheda più PIN). Il grado di sicurezza peggiora rapidamente quando un utente, per ricordare tutte le password di accesso a banche, siti e servizi, le scrive su carta o le conserva in un file non cifrato. Qualcosa che hai Anche gli oggetti sono stati usati nel passato a scopo di autenticazione; sigilli di ceralacca, chiavi e documenti firmati erano alcuni degli strumenti utilizzati per farsi riconoscere o per avere accesso a luoghi e risorse. Il termine chiave in informatica deriva in effetti dalle chiavi di casa, anche se l analogia si ferma qui perché, a differenza di una chiave informatica, la chiave di casa non identifica il possessore come il padrone di casa o come qualcuno che abbia diritto a entrarvi. Oggi l oggetto in possesso dell utente e usato come caratteristica distintiva per l autenticazione può essere semplicemente un file di dati. Se l utente è una persona (piuttosto che un processo o un dispositivo hardware) il file è generalmente incorporato in un dispositivo che l utente può portare con sé, come una scheda con striscia magnetica, una Smart Card o un calcolatore di password. Tali oggetti vengono anche chiamati token. L autenticazione tramite token è la più difficile da violare, dato che si basa su un oggetto fisico che l utente deve avere con sé al momento dell autenticazione e dell accesso al sistema. A differenza delle password e strumenti simili, nel caso di un token l utente sa se gli è stato rubato ed è difficile che possa condividerlo con altri riuscendo ancora a collegarsi a un sistema. Un token costa di più, può essere smarrito e si può guastare, ma soddisfa le esigenze di sicurezza di un ampio spettro di applicazioni. Qualcosa che sei Tale categoria di fattori di autenticazione si basa su caratteristiche del corpo umano e, secondariamente, anche su comportamenti unici della persona. Prima dei computer, PC Open 48\n4 Lezione 3 IT Administrator - Sicurezza informatica queste caratteristiche includevano un ritratto, la firma, una descrizione scritta e le impronte digitali. Oggi i computer permettono di confrontare rapidamente un attributo fisico con una registrazione archiviata in un database. Le tecniche comprendono le impronte digitali, la forma e l impronta delle mani, le caratteristiche dell occhio (iride e retina), la voce, la firma autografa e altre possibilità. Nel complesso, tali caratteristiche sono chiamate biometriche. Nonostante i vantaggi dell autenticazione biometrica, che non richiede dati segreti o schede da portare con sé, i punti deboli possono superare i benefici. Oltre ai costi maggiori per l acquisto, l installazione e la gestione dell attrezzatura, i dati biometrici possono essere intercettati, l identificazione non è certa (c è una percentuale di falsi postivi e di falsi negativi), le caratteristiche biometriche possono variare nel tempo e soprattutto, è facile procurarsi i dati biometrici di un individuo e comprometterne l autenticazione per tutta la vita. È facile capire che non esiste, almeno per ora, un metodo di autenticazione perfetto. La scelta dipende dai rischi specifici per le diverse circostanze, dai costi e da altri fattori, come la disponibilità e l utilizzabilità degli strumenti, l adozione di standard e altro ancora. Visto che tutti i metodi presentano inconvenienti e spesso non offrono il livello di protezione richiesto, è sempre più comune utilizzare meccanismi di protezione multipli, che incorporano due o tre dei fattori citati. Tali sistemi offrono la cosiddetta autenticazione forte, perché, usando più fattori, ciascuno di essi contribuisce a neutralizzare i punti deboli degli altri. Tuttavia quando si passa dall autenticazione di un utente presso un sistema locale all autenticazione in rete, le cose si complicano. Le tre categorie di fattori di autenticazione si basano su caratteristiche distintive della persona o entità, ma quando tali caratteristiche si traducono in sequenze di bit che attraversano la rete, nessun meccanismo può fornire la certezza assoluta che una password o una lettura biometrica siano raccolte dalla persona anziché registrate e ritrasmesse da altri. Perciò, insieme ai fattori di autenticazione forniti dagli utenti, sono necessarie tecniche che identifichino univocamente i messaggi scambiati e impediscano agli estranei d inserirsi nel dialogo. Password Gestione delle password L uso delle password è uno dei più antichi sistemi di autenticazione, che già ritroviamo nell Apriti sesamo di Alì Babà e i 40 ladroni. Qualche decennio fa, quando la multiutenza consisteva di terminali connessi a un sistema centrale di timesharing e gli utenti cominciavano a essere ubicati all esterno del centro di calcolo (ben protetto), le password erano lo strumento di autenticazione. Il terminale, di tipo telescrivente con stampa sul rullo di carta, dopo l input della password (anch essa stampata), sovrastampava caratteri casuali per impedirne la lettura a estranei. Negli anni successivi abbiamo visto i sistemi operativi conservare le password in chiaro in un file. Nella corsa tra attacchi e difese, il file delle password in chiaro ebbe breve vita, vista la facilità di impossessarsene sia dal sistema online sia dai nastri di backup periodico dello stesso. A partire dal 1967 cominciò a essere introdotto l hashing delle password, che viene tuttora utilizzato. Il sistema conserva un file con i nomi degli utenti e l hash delle relative password. All atto dell autenticazione, l hash calcolato in base alla password digitata viene confrontato con quello registrato nel file; se coincidono, l utente è autenticato. Dato che dall hash è impossibile ricostruire la password, il sistema è relativamente sicuro, a meno di attacchi di forza bruta o basati su dizionari delle parole più usate. L hash delle password venne aggirato dai programmi di keystroke sniffing, ossia di registrazione dell input di tastiera (i tasti battuti dall utente). Si tratta di un attacco tuttora possibile e praticato con una varietà di mezzi hardware e software. Un modo per neutralizzare il keystroke sniffing è stato la protezione delle aree di memoria, affinché un programma non possa curiosare nella memoria di un altro programma. E una protezione parziale che comunque non sconfigge i dispositivi hardware di registrazione collocati tra la tastiera e il connettore sul computer. L evoluzione degli attacchi ha portato al network sniffing, vale a dire all analisi del traffico di rete per carpire password, chiavi di cifratura e altre informazioni. A questo si è risposto con le password usate una volta sola, ossia generate nel momento stesso in cui devono essere utilizzate e quindi eliminate, e con la periodica variazione delle chiavi fisse, in modo da limitare le possibilità che vengano scoperte. Vi presentiamo un quadro fin troppo semplificato e approssimativo, ma rappresenta la dinamica con cui evolve la competizione tra attacchi e difese. Oltre a carpire password e altre informazioni per via tecnologica, un metodo usato per conquistare l accesso a un sistema è il social engineering: l attaccante si fa aiutare da un dipendente, inconsapevole, convincendolo a rivelare le informazioni (come nome utente e password) necessarie a entrare nel sistema. Uno dei modi più usati consiste nel presentarsi come un tecnico di assistenza, che per esempio ha urgente bisogno del nome utente e della password del malcapitato interlocutore allo scopo dichiarato di evitargli la perdita dei dati. L attaccante può anche ordinare, con una falsa apparentemente inviata dal system administrator, di cambiare provvisoriamente la password, come specificato, per lavori di manutenzione. Un esempio di procedura di login tramite password appare in Unix, che ha iniziato a utilizzare l hashing delle password intorno al 1973 e si è evoluto utilizzando algoritmi di hashing più sicuri. Il file delle password nel classico Unix Versione 7 comprendeva questi campi: nome utente, hash della password preceduto da un valore casuale di 12 bit detto salt (sale), User ID numerico, Group ID numerico, un campo di uso misto detto GCOS field (dal nome di un sistema operativo utilizzato a quel tempo dai Bell labs) e il nome dello shell preferito dall utente (per esempio /bin/csh). Quando un utente digita un nome utente, il programma di login cerca il nome nel file delle password (/etc/passwd) e, se lo trova, estrae l hash della password; il programma chiede la password all utente e ne calcola l hash; se i due codici di hash coincidono, l utente è autenticato e si collega al sistema. La seconda versione di hashing delle password di Unix utilizza una variante di DES, il cifrario simmetrico presentato nella sezione sulla crittografia. L hashing è realizzato cifrando una stringa di zeri, usando come chiave di cifra- L uso delle password è uno dei più antichi sistemi di autenticazione Password Conoscere i principi di creazione e amministrazione delle password. PC Open 49\n5 IT Administrator - Sicurezza informatica Lezione 3 tura la password e usando il salt di 12 bit al fine di permutare una tabella interna dell algoritmo DES. In tal modo la cifratura risulta incompatibile con lo standard DES, complicando eventuali tentativi di attacco. Policy aziendali, raccomandazioni ai clienti e articoli sui media riportano spesso i criteri con cui dovrebbero essere scelte le password, almeno nei casi in cui esse vengano stabilite dagli utenti. In altri casi le password sono generate in modo casuale e risultano abbastanza complesse da essere difficili da indovinare. Alcuni criteri di base per scegliere una password sono i seguenti: 1) lunghezza: più la password è lunga, più è difficile da scoprire: la lunghezza minima è di sei caratteri o più, secondo le dimensioni del set di caratteri; 2) caratteri: idealmente una password dovrebbe contenere minuscole, maiuscole, cifre e altri segni, in modo da aumentare il numero di combinazioni (a parità di lunghezza) e di eludere gli attacchi tramite dizionario; 3) contenuto: dovrebbero essere esclusi nomi di persone, luoghi, aziende, animali, prodotti, targhe automobilistiche, date, parole del dizionario e altri nomi o simboli riconducibili all utente; 4) assegnazione: per diversi prodotti hardware e software non è obbligatorio specificare nome utente e password: il primo passo consiste quindi nell assegnare tali valori (che questo sia ancora un problema è testimoniato dal fatto che, nel 2004, il 70% delle reti wireless sia stato installato senza alcuna protezione); 5) periodo di validità: più frequente è la modifica della password, minore è la probabilità di scoperta; 6) cambiamento: ogni password assegnata o scelta da un utente dovrebbe essere nuova e differente; 7) valore di default: molti dispositivi sono posti in commercio con nome utente e password impostati di default, da modificare all atto dell installazione; 8) se una password dev essere annotata o registrata, va conservata al sicuro (in cassaforte, cifrata adeguatamente); 9) memorizzazione: in teoria una password dovrebbe essere lunga, complicata e memorizzata dall utente senza che ne esista alcuna traccia scritta o registrata, ma una password troppo lunga e complicata è meno sicura perché induce l utente a scriverla su foglietti facilmente accessibili; un alternativa a password complicate consiste nell impiego di password mnemoniche molto lunghe e di passphrase (insieme di parole brevi utilizzate come singola password), che sono una buona protezione anche se contengono parole di soli caratteri. In base a ricerche statistiche condotte nel 1990, Daniel Klein arrivò alla conclusione che un sistema dovrebbe rifiutare password che abbiano anche una sola delle seguenti caratteristiche: 1) più corta di sei caratteri, 2) contenente il nome dell utente o una sua parte o le iniziali (anche al contrario), 3) coincidente con una parola del dizionario, una parola con parte delle lettere in maiuscolo, una parola scritta al contrario (magari parte in maiuscolo), una parola con qualche lettera sostituita da un carattere di controllo o da una cifra di ovvio significato (come 1 per I o $ per S), 4) coniugazione di una parola del dizionario, 5) tutta in minuscolo o maiuscolo, 6) non contenente un mix di caratteri, cifre e punteggiatura, 7) corrispondente a un gruppo di caratteri della tastiera (come qwerty), 8) contenente solo cifre, una data o qualcosa di simile a una targa automobilistica. La tendenza degli utenti a usare nomi e parole facili da ricordare riduce drammaticamente lo spazio delle password definibili con un certo numero di caratteri, spianando la strada agli attacchi tramite dizionario che sono stati usati nel corso degli anni (a partire dall Internet worm che nel 1988 penetrò il 5% di Internet). Per esempio, si può calcolare che una password di 10 caratteri (solitamente 80 bit), contenente solo parole della lingua inglese, equivale per efficacia a una password di soli 16 bit in cui vengano utilizzate tutte le combinazioni possibili. A maggior ragione non si dovrebbero usare password numeriche rappresentanti date (facili da ricordare e da scoprire). In particolare, i PIN di quattro cifre (che proteggono ad esempio le Smart Card) dovrebbero essere casuali e non riconducibili a date oppure ad altri valori particolari. In realtà, i PIN non soddisfano né la prima, né l'ultima delle condizioni e sarebbero una pessima scelta se non avessero l'abbinamento dei dati del token e anche in tal modo aggiungono una sicurezza molto limitata all'uso dei token (come dimostrato dalla facilità di duplicazione dei Bancomat). Oltre a definire ed applicare una serie di criteri tecnici e amministrativi per definire le password, un azienda dovrebbe stabilire una policy di sicurezza sulla riservatezza delle password, in modo che in nessun caso esse vengano rivelate a chicchessia. In determinate circostanze, può essere rischioso che ci sia un amministratore che possiede tutte le password; quando la sicurezza lo richieda, si può stabilire una divisione di compiti e di accesso alle informazioni che eviti l eccessiva concentrazione di poteri e di controllo. Anche l assunzione di un dipendente (oppure l inizio della collaborazione di un consulente) e la cessazione del rapporto di lavoro o di consulenza rappresentano momenti di assegnazione e di revoca delle password, da trattare secondo policy ben definite. In particolare, alla cessazione, le utenze e le autorizzazioni devono essere immediatamente revocate, per impedire accessi non autorizzati alle risorse, remoti o di altro genere. Se provate a visitare diverse aziende, sia ad alta tecnologia sia a bassa tecnologia, probabilmente scoprirete, sotto il tappetino del mouse dei vari posti di lavoro, un discreto numero di password. Benché possano essere nascoste anche nel cassetto, sotto il tavolo, sotto la tastiera e via dicendo, il mouse pad è la metafora di uno zerbino ed è facile che qualcuno vi nasconda la password così come nasconde la chiave sotto lo zerbino di casa. L ispezione dei mouse pad e dintorni è uno dei tipi di attacco dall interno a cui un organizzazione è soggetta. Le policy aziendali, la sensibilizzazione e l istruzione del personale dovrebbero convincere gli utenti ad evitare i comportamenti insicuri a favore di pratiche più efficaci. Data la velocità con cui un computer può cercare d indovinare una password, il numero di tentativi di login dovrebbe essere limitato: raggiunto il numero stabilito di errori nell inserire il nome utente e la password, il sistema dovrebbe bloccare ulteriori tentativi o richiedere una nuova procedura di collegamento. Tra i vari tentativi viene sempre inserito un ritardo al fine di rallentare le operazioni di password guessing. Un altra misura precauzionale da adottare è la registrazione in un file di log dei tentativi di accesso falliti (omettere le password errate evita di favorire attacchi interni). Un sistema dovrebbe avvertire l amministratore in presenza di numerosi tentativi di accesso con password errata; dovrebbe avvertire anche un utente, al login, se al suo nome utente sono associati parecchi tentativi di accesso falliti. Password interne ed esterne Spesso si fanno considerazioni sulla scelta delle password senza distinguere se si tratti di password usate all interno dell organizzazione (dove gli estranei non mettono piede) o usate per accedere dall esterno della rete. L uso consigliato delle password varia secondo che gli utenti siano insider (personale dell azienda) o outsider (come i PC Open 50\n6 Lezione 3 IT Administrator - Sicurezza informatica clienti che si collegano via Internet). All interno dell azienda le password servono all autenticazione dei dipendenti e di solito non forniscono un alto livello di protezione, visto che gli utenti hanno accesso fisico al sistema. Un attacco dall interno ha vari mezzi a disposizione, dall uso dei dizionari delle password più usate allo sniffing di ciò che viene trasmesso in rete. Per tale motivo è superfluo imporre agli utenti interni password complicate. Al contrario, sono consigliabili i seguenti criteri: 1) usare password mnemoniche (affinché non vengano scritte), ma difficili da indovinare anche per amici e colleghi. Evitare qualsiasi nome o argomento che è noto oppure è stato discusso con i colleghi, scegliere semmai qualcosa di personale che non viene mai rivelato ad altri. Conviene in ogni caso verificare le password così generate mediante un verificatore automatico che le scarta se deboli ad un attacco basato su dizionario. 2) disabilitare la scadenza della password, che induce gli utenti ad annotare le password, è comunque un metodo poco diffuso e poco condiviso, e solitamente utilizzato in abbinamento al successivo. 3) incoraggiare gli utenti a cambiare password in occasione dei cambiamenti di configurazione del computer, 4) tenere i server e i dispositivi di rete sotto chiave; 5) i posti di lavoro dedicati ad applicazioni critiche (come paghe e stipendi) dovrebbero essere situati in stanze separate chiuse a chiave e non restare mai incustoditi. Tale precauzione è efficace a condizione che tali posti di lavoro siano accessibili solo da consolle e non anche da rete. 6) i sistemi a cui si accede tramite single sign-on (sign-on ossia registrazione singola per tutti i sistemi della rete) non usano password interne, ma solo esterne, 7) le password degli amministratori devono essere più forti di quelle degli utenti interni, visto che rappresentano un target più ambito per eventuali attacchi. In pratica, all interno dell azienda si cerca di mediare tra usabilità e sicurezza: una password troppo complicata per essere usabile diventa una minaccia alla sicurezza quando è scritta sotto la tazza portamatite. All esterno, invece, una password è più complessa ed è protetta con metodi crittografici, ma è vulnerabile ad attacchi tramite dizionario. In un azienda, le connessioni remote dovrebbero ricevere un trattamento diverso rispetto alle connessioni interne ed essere filtrate da un dispositivo di sicurezza. In passato, il punto di filtro era tipicamente il Network Access Server (NAS) per le connessioni telefoniche (dial-in) visto che la gran parte degli attacchi avveniva via modem. Oggi si utilizzano invece firewall per le connessioni in arrivo da Internet. Volendo consentire l accesso dall esterno a sistemi interni si utilizza tipicamente una VPN (Virtual Private Nework). Le password esterne dovrebbero essere resistenti agli attacchi di tipo dizionario, il che si ottiene usando password abbastanza complicate e cambiandole periodicamente. Se la risorsa da proteggere ha particolare valore, allora la password è un meccanismo di protezione inadeguato e dovrebbe essere sostituita da metodi basati su token. Ecco quindi alcune raccomandazioni per la sicurezza delle connessioni esterne: 1) se il sistema gestisce informazioni di particolare valore, anziché normali password si dovrebbero usare token con password single-use, Smart Card, token USB e simili, 2) le connessioni esterne dovrebbero usare protocolli che impediscano il rerouting (instradamento verso destinazione diversa) della connessione, 3) le password esterne dovrebbero resistere agli attacchi di tipo dizionario, 4) le password esterne dovrebbero essere cambiate periodicamente, 5) le password esterne dovrebbero essere fisicamente protette dagli attacchi interni, 6) le password esterne usate su computer portatili non devono essere conservate sul computer. Un buon modo per scegliere una password memorizzabile che resista ai dizionari è il seguente: 1) scegliere una password a caso secondo i criteri visti per le password interne, 2) scegliere una seconda password a caso, affinché non abbia alcuna relazione con la prima, 3) scegliere a caso una cifra o segno di punteggiatura come carattere intermedio, 4) costruire la password forte concatenando la prima password debole, il carattere intermedio e la seconda password debole, 5) esaminare il risultato e trovare qualche modello strutturale, ritmo, ripetizioni o qualsiasi significato che permetta di memorizzarlo senza doverlo scrivere. Per esempio, frantumi5bistecca è una password resistente, ma abbastanza facile da ricordare. Token Autenticazione tramite token Tra le tante definizioni della parola token, la più vicina all uso in campo informatico è gettone, un oggetto simile a una moneta usato da un certo gruppo di utenti per pagare qualcosa o per un impiego specifico. Il concetto si è esteso ai gettoni immateriali che non hanno la forma di una moneta, ma che sono comunque oggetti fisici usati da un gruppo secondo regole specifiche. Esempi in tal senso sono i gettoni che viaggiano su una LAN Token Ring (che usa appunto il gettone per assegnare il turno di trasmissione ai vari computer collegati) e i gettoni impiegati dai dispositivi di autenticazione. Un token è un fattore di autenticazione della categoria qualcosa che hai ; l utente dev essere in possesso del token al fine di essere autenticato dal computer. Se il token viene smarrito, rubato o prestato, l utente non ha modo di farsi autenticare, come un tempo accadeva per una chiave o un sigillo personale. Dal punto di vista della sicurezza, un token ha alcune proprietà fondamentali: 1) la persona dev essere in possesso fisico del token per poterlo usare, 2) un buon token è molto difficile da duplicare, 3) una persona può smarrire un token e con esso perdere l accesso a risorse critiche, 4) l utente si accorge del furto di un token facendo l inventario dei token in suo possesso. Le password d uso esterno dovrebbero essere complicate ed essere modificate di frequente Token Conoscere i principi di autenticazione tramite token PC Open 51\n7 IT Administrator - Sicurezza informatica Lezione 3 Il gettone o token offre un livello di sicurezza maggiore rispetto alla semplice password. Rispetto a una password, un token offre notevoli benefici: 1) elimina il fardello di dover ricordare password complicate, 2) può contenere un dato segreto molto più complesso di quanto sia memorizzabile da una persona, 3) è spesso associato a un secondo fattore di autenticazione, come un PIN memorizzato dall utente, 4) un token attivo può generare un output diverso in diverse circostanze oppure ad ogni utilizzo. Oggi un token può assumere i formati e le dimensioni più svariate: una carta di credito, una chiave, una calcolatrice, un anello e altro ancora. Da un punto di vista funzionale, la principale distinzione è tra token passivi, che si limitano a memorizzare dati, e token attivi, dotati di capacità di elaborazione. Token passivi Una carta di credito e una scheda Bancomat di vecchia generazione (prive cioè di processore) sono esempi di token passivi, perché i dati identificativi sono registrati su una striscia magnetica. Il lettore riceve sempre gli stessi dati a ogni autenticazione; per sicurezza, può essere richiesto un secondo fattore di identificazione, come il PIN per le schede Bancomat o il codice di sicurezza stampato sul retro delle carte di credito. I token passivi possono essere chiavi con una memoria di sola lettura, schede con una certa struttura di perforazione, schede con codice a barre e schede a prossimità, cioè dispositivi a induzione che rispondono con un certo segnale quando avvicinati al lettore. Un vecchio esempio di token passivo è la datakey (chiave con ROM) di Datakey (poi fusa con SafeNet). Più recente è la XyLoc di Ensure Technologies, che viene indossata e permette l autenticazione via radio quando l utente si trova entro un certo raggio dal computer. Tra gli esempi più economici e diffusi ci sono i badge di accesso, cioè schede di plastica con striscia magnetica a cui è associato un PIN da digitare sulla tastiera numerica del lettore. Il problema principale dei token passivi è la facilità di duplicazione; inoltre il PIN può essere scoperto osservando l utente oppure in altri modi (intercettazione, reverse engineering del token, complicità del personale). Token attivi A differenza dei token passivi, quelli attivi non trasmettono il proprio dato segreto per autenticare l utente, ma lo utilizzano per qualche calcolo, come la generazione di una one-time password, cioè una password usata una volta sola (e quindi ogni volta diversa). Sebbene i token di tipo onetime password affondino le proprie radici nei decenni passati, questa è la tecnologia tradizionale usata da vari prodotti delle famiglie SafeWord, SecuirID, CryptoCard e altri. A questi si sono aggiunti numerosi prodotti basati sulla crittografia asimmetrica e i certificati a chiave pubblica, sotto forma di Smart Card, chiavi USB e altro. I token attivi usano solitamente tecniche crittografiche che li rendono immuni da intercettazioni e replay dei messaggi. Ogni volta che l utente si connette per autenticarsi, vengono generati messaggi diversi, in modo da vanificare la registrazione e la ripetizione dei messaggi. Esistono token attivi con e senza tastiera; alcuni s interfacciano direttamente col computer (per esempio via USB), altri richiedono un lettore particolare (per esempio le Smart Card e i token ibutton) o un adattatore PCMCIA (disponibile per le Smart Card). Dato che la crittografia a chiave pubblica viene trattata a parte e per molti aspetti è stata introdotta nella lezione 2 (Crittografia), qui ci occupiamo soprattutto di token del tipo one-time password. Essi seguono generalmente uno tra i due metodi fondamentali per generare la password: il metodo basato su contatore oppure il metodo basato sull orologio. In qualche caso vengono adottati entrambi. Una data significativa per l adozione di sistemi basati su one-time password generate da token a contatore è il 1994, quando furono adottati da Citybank in risposta a una truffa di vaste proporzioni. Un gruppo di russi, dopo aver rubato le password di vari funzionari della banca, aveva disposto una serie di trasferimenti attraverso mezzo mondo. I token di questo tipo incorporano un contatore che viene usato per generare una nuova password a ogni collegamento. Al momento del login, l utente preme un pulsante sul token, il contatore viene incrementato e una funzione hash riceve in input il valore del contatore e il dato segreto memorizzato nel token; il risultato compare sul display del token e l utente lo utilizza come password di login. Se la password viene intercettata e riutilizzata, sarà considerata invalida. Un esempio di token a contatore è SafeWord, un token a forma di chiave prodotto da Secure Computing. L algoritmo di hashing varia a seconda dei prodotti. Per funzionare, un sistema a contatore deve tenere sincronizzati il contatore sul token e quello sul computer; un amministratore imposta i valori iniziali. Nel caso di SafeWord, ciò avviene mediante un dispositivo che si collega ai sette contatti presenti frontalmente sul token. Opzionalmente, può essere richiesto un PIN prima dell emissione della password, in modo da neutralizzare il possibile furto oppure l uso abusivo del token. In caso di perdita del sincronismo del contatore, il server SafeWord utilizza l ultima password ricevuta (e conservata) e verifica se le password successive (incrementando il contatore) possono essere state prodotte dallo stesso token, sincronizzando di nuovo il proprio contatore. Nel caso un token a contatore venisse duplicato, il sistema si comporterà in modo erratico, alternando successi, fallimenti e ri-sincronizzazioni che indicano la presenza di due token con lo stesso dato segreto. Il token SecurID di RSA Security, molto diffuso nonostante l età, utilizza l orologio anziché un contatore. Ogni 60 secondi la funzione hash, in base al valore dell orologio e al dato segreto, genera una password one-time. Il server mantiene il proprio orologio e accetta la password se si trova all interno di una data finestra temporale. Token e server sono sincronizzati con l UCT (Universal Coordinated Time l ora del meridiano di Greenwich). Con l invecchiamento, il clock dei token può scostarsi da quello del server, ma quest ultimo conserva informazioni per la correzione. Se dopo un lungo periodo il token si collega e risulta fuori dalla finestra temporale di accettazione, il server rifiuta l autenticazione, ma al successivo login, se rileva lo stesso errore temporale, aggiorna le informazioni sullo scostamento di quel token, ri-sincronizzandosi. I token SecurID sono prodotti in vari formati hardware (a scheda e a chiave anche con collegamento USB al computer, per non dover digitare la password) e nella versione software. PIN Il punto debole dei token è che possono essere rubati (oppure presi a prestito ) e utilizzati per commettere un crimine. La soluzione comune è di associare al token un PIN PC Open 52\n8 Lezione 3 IT Administrator - Sicurezza informatica che ostacoli l uso del token almeno per il tempo necessario ad accorgersi del furto e reimpostare il server in modo che non accetti le password di quel token. Il PIN di un token può essere utilizzato in vari modi, tra cui i seguenti: 1) PIN concatenato a una password esterna: il PIN viene combinato ad altre informazioni, come la password onetime generata dal token, e il tutto è inviato al server. Al login, l utente digita la password generata (visualizzata sul display del token) seguita dal PIN. Tale approccio è adottato da SecurID e da altri prodotti. Il rischio è che il PIN sia visto e che il token sia rubato. 2) PIN come password interna: il PIN è impostato nel token e nessun altro ne ha visibilità. Dato che in questo caso il PIN è digitato sulla tastiera del token, si possono impostare diversi comportamenti in caso di PIN errato: ritardare l accesso o bloccare il token, riportare l accesso errato in modo che il titolare ne sia informato e via dicendo. Di base, a fronte di un PIN errato, il token dovrebbe ritardare progressivamente le operazioni al fine di dare tempo all utente d intervenire. Tale implementazione del PIN consente, come nel caso di certi token SafeWord, di riconoscere un particolare valore di PIN (quello corretto meno uno) come segnale di allarme, perché l utente è sotto minaccia. Il PIN come password interna è vulnerabile in caso di implementazione software, visto che possiede tutte le informazioni che potrebbero servire in caso di attacco. 3) PIN come parte del dato segreto: questo approccio risolve il problema dell implementazione software, dato che il token non memorizza il valore del PIN e neppure il completo dato segreto. La password è generata inserendo il PIN, calcolando l hash in base al PIN e al segreto parziale e calcolando la password in base all hash e al valore del contatore o dell orologio. In questo modo, un login errato viene scoperto solo al tentativo di connettersi al server e l attaccante non ha modo di eseguire tentativi senza che vengano registrati nel file di logging. Di conseguenza, se i tentativi vengono segnalati, si possono predisporre tempestivamente le difese. Challenge Una variante di token di autenticazione utilizza il cosiddetto challenge response. Al momento del login, il token riceve dal server un dato (challenge, ossia sfida) e lo elabora appropriatamente, utilizzando il proprio dato segreto, per fornire la risposta (response) che attesta la corretta identità dell utente. Esempi di token che supportano questo tipo di autenticazione si trovano nelle famiglie SafeWord, WatchWord e CryptoCard. Biometria Schemi di autenticazione biometrica La biometria è la scienza e tecnologia dell autenticazione (stabilire l identità di un individuo) misurando le caratteristiche fisiologiche o comportamentali di una persona. Il termine deriva dalle parole greche bios (vita) e "metron" (misura), quindi è applicabile a particolari caratteristiche di un corpo umano vivo o ad alcuni tratti comportamentali di un individuo, misurabili e utili per l identificazione. Le caratteristiche fisiche utilizzate per l autenticazione biometrica sono diverse: 1) impronte digitali. Usate da un secolo e mezzo, mantengono la loro reputazione di unicità per ogni individuo, gemelli inclusi. Gli scanner di impronte sono molto diffusi e hanno un basso costo, molto inferiore a quello degli altri dispositivi biometrici. 2) Geometria delle mani: rispetto alle impronte digitali, che richiedono mani pulite, ha il vantaggio di poter essere usata anche in condizioni ambientali difficili, come fabbriche e cantieri. 3) Retina: la sua scansione è utilizzata in installazioni militari e governative. Il modello dei vasi sanguigni della retina è unico e stabile, sebbene siano possibili variazioni (come durante la gravidanza). La fotografia della retina richiede un esposizione prolungata a bassa intensità luminosa ed è vista come una procedura intrusiva, sebbene non rechi danno agli occhi. 4) Iride: come per la retina, la sua scansione fornisce un modello unico e stabile ed è oggi una delle tecnologie in rapida ascesa per l adozione in aeroporti e controlli dell immigrazione. La foto è ripresa da una certa distanza e presenta difficoltà simili a quelle della retina. 5) Riconoscimento del volto: è un metodo particolarmente flessibile e può essere utilizzato all insaputa della persona oggetto della scansione (con i relativi pro e contro). Può essere usato per cercare un individuo nella folla, a patto che raggiunga la necessaria precisione di riconoscimento. Negli ultimi tempi negli USA si sono registrati fallimenti clamorosi. 6) Impronta vocale: come il riconoscimento del volto, l analisi della voce può essere usata all insaputa dell interessato. E possibile falsificarla manipolando una registrazione, ma imitare la voce di un altro non trae in inganno un analista esperto. Questa caratteristica a volte è elencata nella categoria dei tratti comportamentali, dato che non si basa sull osservazione di una parte del corpo. Altre caratteristiche comportamentali sono: 1) firma autografa. I sistemi di riconoscimento affidabili la confrontano con una registrazione che comprende la dinamica del movimento della penna da parte dell utente. Di solito, comunque, la verifica della firma è abbinata ad altri metodi di autenticazione e serve soprattutto per rilevare firme falsificate. 2) Dinamica della digitazione su tastiera: esistono alcuni sistemi che riconoscono il comportamento dell utente durante la battitura, come il ritardo tra pressione e rilascio dei tasti e il tempo che intercorre tra la pressione di varie coppie di tasti. Un vantaggio è che non occorre hardware aggiuntivo. La diffusione dei dispositivi biometrici ha subito un forte impulso dal settembre 2001, quando è iniziato un processo di progressivo spostamento del punto di equilibrio tra esigenze di sicurezza e garanzie personali (a partire dalla privacy). Oggi sono già istallati in varie nazioni dispositivi biometrici per il controllo delle frontiere che sono basati sulla scansione delle impronte digitali o della retina. La geometria della mano e l impronta digitale costituiscono altri due sistemi abbastanza comuni per l autenticazione biometrica Biometria Conoscere i diversi schemi di autenticazione biometrica e la loro efficacia. PC Open 53\n9 IT Administrator - Sicurezza informatica Lezione 3 Quelle che oggi sono installazioni sperimentali, che richiedono il consenso dell individuo, sono destinate a diventare prassi generalizzata. Entro pochi anni è previsto che i dati biometrici siano registrati nei passaporti. A seguito della rapida espansione della biometria nel settore pubblico, è prevedibile che anche il settore privato adotti le stesse tecnologie di autenticazione, nonostante quelle biometriche siano probabilistiche (non funzionano nel 100% dei casi) e non siano prive d inconvenienti, sia tecnici sia di altra natura. Per esempio, non c è nessuna garanzia che un database d impronte biometriche, oggi garantito impermeabile a utilizzi volti al controllo delle persone (ubicazione, abitudini, acquisti, comportamenti, eccetera), un domani non venga usato contro ogni diritto alla privacy per presunti motivi di sicurezza. L approvazione del Real Id Act negli USA impone ai cittadini, entro maggio 2008, di avere un documento di identità digitale (con incorporato chip RFID di trasmissione radio Radio Frequency Identification) per poter guidare un veicolo, prendere un aereo, aprire un conto bancario e accedere ai servizi pubblici. Inoltre la legge consente al dipartimento per la sicurezza nazionale (Homeland Security) di chiedere l inclusione di dati biometrici nel documento di identità (impronte digitali o scansione della retina o dell iride) in aggiunta alla foto, indirizzo e altri dati personali. Anche la letteratura sui dispositivi biometrici, piuttosto asettica e imparziale fino al 2001, nel momento in cui ingenti finanziamenti sono confluiti nel settore della sicurezza, ha subito le pressioni di interessi economici e di posizioni dominanti (come quella legata alla scansione dell iride). Oggi, per valutare correttamente le tecnologie biometriche disponibili e le proposte dei produttori, è consigliabile estendere l indagine a fonti di informazione che presentino i rispettivi pro e i contro, incluse le eventuali forzature motivate da obiettivi commerciali. Ne è un esempio la polemica intorno alla scansione dell iride, che vede contrapposte le valutazioni di chi ha ottenuto i brevetti (John Daugman, e le controdeduzioni di chi lo accusa di disinformazione ( altre fonti, come sono più neutrali. Dopo la fusione tra le aziende IriScan e Sensar, Iridian Technologies è oggi il detentore dei brevetti e il principale protagonista in questo settore. Funzionamento Il principio base di funzionamento è lo stesso per tutti i sistemi biometrici. Ogni sistema usa un sensore per raccogliere in forma digitale i dati corrispondenti a una misura biometrica. Il sensore può essere ad esempio uno scanner apposito per l impronta digitale o una speciale fotocamera usata per riprendere l immagine dell iride. In entrambi i casi sono state dimostrate le possibilità di falsificazione, che possono essere sventate migliorando i sensori (per esempio rilevando temperatura, conducibilità e altri indicatori di un dito vivo) e presidiando il sensore (per evitare di autenticare la foto di un occhio). A partire dalla misura digitale fornita dal sensore, vengono estratte le caratteristiche individuali, che permettono di differenziare un individuo da un altro; per esempio, nel caso dell iride, ci sono oltre 200 punti da esaminare. Il processo di estrazione fornisce un impronta o firma biometrica, che all atto dell autenticazione viene confrontata con i modelli biometrici archiviati in un database. Il confronto fornisce generalmente una corrispondenza parziale: se lo scostamento è inferiore alla soglia di accettazione, l autenticazione è positiva, altrimenti è rifiutata. Idealmente, il processo di registrazione dell impronta biometrica di riferimento dovrebbe sfruttare tutte le occasioni in cui vengono confrontate due misure dello stesso soggetto per affinare e adattare l impronta campione e ridurre la probabilità di falsi rifiuti. Usi Sebbene la biometria sia qui citata nel contesto delle tecniche di autenticazione, è utile sapere che essa può servire a tre diversi campi di utilizzo: 1) autenticazione: l accertamento che l impronta biometrica sia (con buona probabilità) proprio quella dell utente che la presenta; 2) identificazione: dato un campione biometrico, si vuole scoprire a quale individuo esso appartiene (o perlomeno a quale rosa di sospetti, visto che questo uso è tipico delle forze di polizia); 3) unicità: dato un campione biometrico, si vuole verificare se il suo proprietario è già in un certo database (per esempio per evitare di accordare due volte un certo beneficio sociale alla stessa persona o di permettere l immigrazione di individui già espulsi). Precisione La precisione di un dispositivo biometrico (sempre inferiore al 100%) è misurata dalla stima delle false accettazioni (impronte biometriche non registrate nel database, ma erroneamente riconosciute come valide) e dei falsi rifiuti (impronte valide ed erroneamente rifiutate). La precisione viene stimata leggendo i campioni biometrici da un ampia popolazione di prova e confrontandoli con le impronte registrate in un database. Le due curve FAR (False Acceptance Rate, tasso di false accettazioni) e FRR (False Rejection Rate, tasso di falsi rifiuti) si incrociano nel punto ERR (Equal Error Rate, pari tasso di errori), che generalmente corrisponde al miglior punto di taratura del lettore biometrico. Il valore di FAR indica la sicurezza del lettore biometrico ed è paragonabile al numero di bit di una password. Un FAR di 1 su per un lettore biometrico corrisponde circa a una password di 16 bit. Abbassando il FAR si alza però l FRR, che rappresenta l usabilità del sistema (i falsi rifiuti impediscono agli utenti autorizzati l accesso al sistema), quindi occorre bilanciare sicurezza e usabilità. Segretezza Chi intercetta o entra in possesso di un impronta biometrica può tentare di impersonare il proprietario di quell impronta o, peggio, monitorare gli spostamenti e i comportamenti di tale individuo. Ne possono seguire truffe, crimini commessi a nome altrui e gravi violazioni della privacy. Un sistema biometrico per autenticazione locale, incluso cioè in un perimetro di sicurezza, è relativamente sicuro. Lo stesso non vale per i sistemi distribuiti in rete, che devono ricorrere a tecniche di crittografia per proteggere la riservatezza dei dati trasmessi. Una soluzione è cifrare i dati biometrici con una chiave pubblica prima di trasmetterli e decifrarli in ricezione con la corrispondente chiave privata. Non si possono usare le funzioni hash nel confronto tra impronte biometriche lette e archiviate perché a piccole variazioni di un impronta biometrica corrisponderebbero ampie variazioni dell hash, impedendo il riconoscimento. In pratica, un impronta biometrica serve per autenticare una persona, ma per evitare falsificazione nella trasmissione dei dati, non si può fare a meno di autenticare a loro volta, per esempio con una coppia di chiavi per crittografia asimmetrica, i dati biometrici. La cifratura dei dati biometrici dovrebbe rispondere, in qualche misura, anche alle esigenze delle normative sulla privacy. Il settore privato sarà chiamato a rispondere della privacy dei dati biometrici conservati nei database; i settori e le agenzie governative nel mondo si sono mostrati invece propensi a sacrificare la privacy re-interpretando, di PC Open 54\n10 Lezione 3 IT Administrator - Sicurezza informatica volta in volta, le esigenze di sicurezza nazionale nel senso di una riduzione effettiva del diritto individuale alla non divulgazione d informazioni personali. Autenticazione in rete Per risolvere il problema di autenticare un soggetto sia esso un utente o un processo in contesto di rete si deve fare i conti con il problema di trovare un compromesso fra modalità operative ragionevolmente semplici, un onere amministrativo non eccessivo (per i sistemisti che hanno in gestione le macchine) e un livello di sicurezza accettabile. Questi problemi derivano dal fatto che da un lato l'utente non desidera dover ricordare e usare troppe password diverse, né l'amministratore vuole dover configurare e mantenere un numero eccessivo di profili e password, e d'altra parte si desidera che anche la sicurezza di ogni singolo sistema inserito in rete non sia troppo inferiore a quella che avrebbe se fosse isolato. Si consideri innanzitutto il fatto che, se l'accesso a un sistema B avviene remotamente agendo da un sistema A, resta ovviamente necessario che l'utente abbia accesso (cioè disponga di una username e password) sul sistema B, ma occorre anche, in generale, che disponga di un login sul sistema da cui effettua l'accesso, ossia A. Per evitare che l'utente debba ricordare coppie login/password per troppi sistemi diversi si potrebbe decidere di adottare account uguali (con password uguali) su A e su B. Così facendo lo username e la password da digitare sarebbero gli stessi su entrambi i sistemi e l'utente avrebbe meno segreti da ricordare. Tuttavia egli sarebbe ancora costretto a ripetere la manovra di login (seppure con dati sempre uguali) a ogni accesso remoto, senza contare che dovrebbe effettuare l'operazione periodica di cambiamento delle password sia su A sia su B. In ambiente Windows è possibile semplificare le cose organizzando i server in un unico "dominio": con tale termine s intende un raggruppamento logico di server di rete e altri host che condividono le informazioni sui profili utente e altre impostazioni di security. In un dominio esiste sempre un database principale (Primary Domain Controller, PDC) che contiene tali informazioni ed è inoltre possibile, opzionalmente, replicare per sicurezza tale database su una o più altre macchine (Backup Domain Controller, BDC), che vengono mantenute aggiornate mediante operazioni periodiche di "sincronizzazione". Nel dominio possono, poi, esistere macchine sempre con funzioni di server (e che per la gestione di profili utente si appoggiano al PDC), ma su cui non risiede né una copia primaria né una secondaria del database di dominio. In terminologia Windows, tali host sono chiamati "member servers". Una volta effettuate le impostazioni necessarie, l'utente ha il vantaggio di dover ricordare una sola password valida per tutte le macchine che partecipano al dominio; inoltre, nelle utility di Windows che mostrano elenchi di risorse di rete disponibili, quelle del dominio saranno raggruppate sotto un unico "cappello", rendendo più facile la consultazione (soprattutto in reti di grandi dimensioni). Anche l'amministratore avrà vantaggi non indifferenti, potendo effettuare la gestione degli account in modo centralizzato, e senza bisogno di tediose ripetizioni, qualunque sia il numero delle macchine facenti parte del dominio. Sotto Linux esistono diverse strategie (tra le quali anche un'architettura basata su Kerberos, equivalente, per concezione e per tecnologia crittografica sottostante, all'approccio adottato da Windows) per semplificare la situazione degli account multipli. Con la più semplice di esse è possibile, in sostanza, fare in modo che il sistema B "si fidi" dell'autenticazione avvenuta su un altro sistema A identificato dal suo nome logico. Ciò avviene scrivendo specifiche righe nel file.rhosts presente nella home directory dell'utente U (sul file system del sistema B). Quando l utente di nome U, già autenticato nel sistema A, tenta di collegarsi a B fornendo la stessa username U (o un'altra username prestabilita, U2), il sistema B, consultando il corrispondente file.rhosts, conclude che per tale connessione proveniente da A e tentata dall'utente U non occorre chiedere la password. È ovvio che questo tipo di configurazione include anche la macchina A nel "perimetro" entro il quale occorre vigilare perché non si verifichino violazioni di security. Infatti, se la security del sistema A fosse violata, per proprietà transitiva risulterebbe violata anche quella di B, dal momento che questo accetta senza ulteriori controlli i login provenienti da A. La situazione può essere paragonata a quella dello "spazio Schengen" nell'unione Europea, con l'abolizione delle frontiere interne, e alla questione del controllo delle frontiere esterne degli Stati membri. Nel caso in cui le home directory degli utenti appartengono a un file system esportato via NFS, il sistema potrebbe essere esposto a un semplice attacco qualora NFS e permessi di scrittura siano configurati in modo troppo "permissivo". Un utente potrebbe infatti montare da un sistema C il file system delle home directories del sistema B e scrivere o modificare un file.rhosts in modo tale da assicurarsi l'accesso al sistema B senza digitare né conoscere alcuna password. Sarà poi sufficiente che egli definisca sul sistema C (sul quale deve avere privilegi di amministratore, cosa che su un PC è quasi la norma) un utente dal nome uguale a quello per il quale ha alterato il file.rhost su B, e poi effettui un remote login da C a B con tale username. Un secondo aspetto da affrontare è invece legato alla "vulnerabilità" della comunicazione tra A e B. I pericoli in Autenticazione in rete Conoscere i diversi requisiti per l autenticazione in rete rispetto all autenticazione del singolo host IL FILE RHOSTS Nei sistemi Linux, attraverso l'uso del file.rhosts, è possibile fare in modo che il sistema locale, al momento di decidere se consentire o meno l'accesso all'arrivo di un comando rlogin, rsh/remsh o rcp, "si fidi" dei login effettuati con successo su altri sistemi identificati attraverso l'hostname. Da notare che il meccanismo del file.rhosts non ha effetto su altre forme di accesso, quali ftp, telnet e accessi web. Il file in questione va posizionato nella home directory dell'utente utentelocale al quale si desidera consentire di entrare da un sistema remoto senza fornire nuovamente il login. Per evidenti motivi di sicurezza, onde evitare ispezioni e modifiche a scopo di intrusione, è importante sottolineare che.rhosts deve inoltre appartenere o a utentelocale o a root e dovrebbe sempre essere leggibile (ma soprattutto scrivibile) esclusivamente per utentelocale. Tale file può contenere una o più righe di testo la cui sintassi prevede fondamentalmente un hostname (o carattere "+"), opzionalmente seguito da uno spazio e da uno username. Alcuni esempi: hostname.dominio.com Tutti i login della macchina hostname.dominio.com saranno considerati validi anche dal sistema locale al fine di effettuare il login in qualità di utentelocale. + Una riga composta da un singolo carattere "+" ha un effetto dello stesso tipo, ma per qualsiasi macchina remota e non più solo per hostname.dominio.com (impostazione altamente pericolosa, senz'altro da sconsigliare) hostname.dominio.com john L'unico login della macchina hostname.dominio.com che sarà accettato dal sistema locale per accedere come utente "utentelocale" da quel sistema è "john". Altri login da quella macchina, o qualsiasi login (compreso "john") da altre macchine, saranno rifiutati. Esiste una versione ancora più "forte" (e "pericolosa", se usata in modo malaccorto) di questo tipo di meccanismo: il file hosts.equiv, che utilizza una sintassi simile a quella descritta, con qualche opzione in più, come l'uso del carattere meno,"-", in posizione prefissa, per escludere esplicitamente un host o un utente. La differenza sta nel fatto che hosts.equiv ha un effetto globale sulla macchina. Non occorre cioè crearne una copia nella home directory di ciascun utente. Questo file va posizionato in /etc e per evidenti motivi di sicurezza deve appartenere a root e non essere scrivibile per alcun altro utente. PC Open 55\n11 IT Administrator - Sicurezza informatica Lezione Requisiti per l autenticazione su host e in rete Conoscere differenti protocolli di rete per l autenticazione utente (PAP, CHAP etc). siti in tale comunicazione (che, ricordiamolo, generalmente implica sotto qualche forma uno scambio via rete di username e password) sono essenzialmente due. Quello fondamentale è il rischio di intercettazione dei messaggi scambiati all'atto del login, con conseguente compromissione della segretezza della password utilizzata. L'altro, che ne è la logica conseguenza, è il rischio che una volta così ottenuta la conoscenza di una username U e della relativa password valida, qualche soggetto terzo "impersoni" l'utente legittimo U, collegandosi a B da A o anche da una macchina C diversa da A fornendo le credenziali di U. Soprattutto se C è un PC, può risultare relativamente semplice disporre dei permessi di amministratore, coi quali è possibile creare il profilo U. Una blanda linea di difesa contro tale attacco consiste nell'impostare B in modo tale che accetti connessioni solo da indirizzi IP noti e "fidati": ad esempio, per il servizio telnet, in diversi ambienti Linux, si agisce sul file /etc/xinetd.d/telnet scrivendo una clausola only_from che includa tutti e soli gli indirizzi dai quali si accetteranno connessioni. Naturalmente tale protezione può essere facilmente vanificata poiché è banale impostare il PC in modo tale che abbia un indirizzo di rete identico a uno di quelli "fidati" e, avendo accesso alle connessioni fisiche di rete, collegarlo poi al posto della macchina da impersonare. Per una sicura e affidabile autenticazione "da remoto" di U sul sistema B è necessario perciò che sussistano contemporaneamente diverse condizioni: il fatto che U si colleghi a B da un sistema A identificato ed il cui livello di security sia ritenuto adeguato; il fatto che U si sia autenticato anzitutto su A e poi su B utilizzando le credenziali di cui dispone su tali due sistemi, oppure che il sistema B accetti per vera l'autenticazione già avvenuta su A; infine, nel caso in cui per qualsiasi motivo si renda necessario uno scambio in rete fra B e A di informazioni sensibili concernenti identità e password di U, che tale scambio sia protetto. Schemi e strategie di autenticazione di rete si prefiggono l'obiettivo di assicurare il rispetto di queste condizioni. Requisiti per l autenticazione su host e in rete Lo schema classico per l'autenticazione locale di un utente su un host (o più in generale di un soggetto come un processo - che può effettuare azioni: con terminologia Windows, come già accennato, si parla di Security Principal) si basa sulla conoscenza di una password che deve essere fornita insieme al proprio username all'atto del login. La tecnica non richiede all'utente eccessivi sforzi mnemnonici e, a patto che sia stata scelta una password "forte" (ossia non facile da indovinare), tenuta rigorosamente segreta dal titolare e memorizzata dal sistema in modo ben protetto, offre una discreta sicurezza. Non appena tale schema di autenticazione viene utilizzato per l'accesso da remoto al sistema, però, sorge immediatamente il problema della possibile intercettazione del messaggio contenente login e password, che deve per forza di cose transitare sulla rete. In tale scenario quindi le cose si complicano. Tutti gli schemi di autenticazione in rete si basano sull'applicazione di un qualche ben definito protocollo per lo scambio di messaggi. Tale scambio interessa come minimo le due parti fondamentali in causa, ossia il client (che chiede di essere autenticato) e il server (che deve erogare il servizio, o consentire un accesso, dopo essersi convinto della autenticità del client), anche se, come vedremo, in alcuni schemi possono comparire anche ruoli terzi, come un server di autenticazione, di cui entrambe le parti si fidano e che diventa depositario di determinati segreti o al quale vengono deputate alcune decisioni chiave. Poiché i messaggi che si scambiano le due parti possono essere intercettati, esaminati, ricordati e poi ritrasmessi (intatti o modificati) da un attaccante, è assolutamente necessario prevedere un adeguata protezione crittografica che contrasti tali tecniche: in virtù della stessa è possibile fare in modo che (1) per qualunque terzo non autorizzato i messaggi intercettati risultino incomprensibili, che (2) risulti impossibile modificarli in modo da non lasciare tracce e che (3) risulti anche del tutto inutile archiviare un messaggio intercettato (pur non avendolo potuto decifrare) e riproporlo invariato in seguito nel tentativo di ottenere una "replica" di un qualche effetto desiderato. E' ovvio che per cifrare i messaggi in transito occorre che mittente e ricevente si accordino su quale algoritmo usare e, cosa ben più delicata, sulle chiavi crittografiche. Per molte applicazioni è accettabile utilizzare algoritmi simmetrici a chiave segreta (la stessa chiave viene usata sia per cifrare sia per decifrare); in tal caso la chiave dev'essere nota a tutte le parti in causa, che devono anche provvedere a memorizzarla in modo sicuro e non facilmente violabile. Se questo non è possibile o non è ritenuto abbastanza sicuro, esistono tecniche, basate su particolari proprietà matematiche, che consentono di concordare "al volo" tra due parti una chiave segreta scambiandosi apertamente messaggi (in chiaro), senza che tuttavia qualcuno in ascolto possa ricavare la conoscenza della chiave segreta dai messaggi intercettati (protocollo Diffie-Hellman). Infine, è possibile utilizzare schemi di autenticazione basati sull'uso di algoritmi crittografici a chiave pubblica, in cui il problema della segretezza e della condivisione delle chiavi risulta alleviato in modo sostanziale (vedi lezione 2). Protocolli per l autenticazione degli utenti Meritano un cenno, a questo punto, due protocolli per l'autenticazione in rete degli utenti. Il più semplice è il Password Authentication Protocol (PAP), denominazione fin troppo enfatica per una banale procedura che essenzialmente prevede l'invio dal client al server di uno username (in chiaro) e successivamente di una password (eventualmente cifrata). Il server confronta le due informazioni con quelle detenute nel suo archivio di dati segreti e in base al risultato conferma o rifiuta l'autenticazione. Il grosso limite di PAP sta nella sua vulnerabilità rispetto alle intercettazioni (specialmente nel caso in cui non sia usata crittografazione per la password) ed agli attacchi ripetitivi volti a indovinare la password per tentativi. Una versione più sicura è il Challenge Handshake Authentication Protocol (CHAP) in cui il server manda anzitutto al client una stringa casuale (detta in gergo "challenge", o "sfida", in quanto presuppone una "risposta"). La stringa è casuale per generare messaggi ogni volta diversi, al fine di ostacolare tentativi di attacco di tipo replay o attacchi statistici sui messaggi di autenticazione. Per escludere con elevata sicurezza il rischio di attacchi statistici, la stringa challenge è lunga ben 8 byte, il che significa che esistono 2^64 stringhe possibili (18 miliardi di miliardi). Se il generatore di numeri casuali ha buone proprietà statistiche, la challenge string dovrebbe risultare praticamente sempre diversa. Il client utilizza la stringa challenge e, combinandola in modo prestabilito con la chiave segreta da trasmettere, calcola un one-way hash (checksum crittografico irreversibile) sul complesso dei due dati. È tale hash, e non la chiave, che il client spedisce, poi, al server. Per verificare la validità dell'autenticazione del client, al server basterà effettuare la stessa operazione appena eseguita dal client (il challenge è ovviamente noto al server che lo ha "inventato", così come gli è nota la chiave che occorre verificare) e confrontare l'hash ottenuto sui suoi dati con quello appena inviatogli dal client. Nel caso i due hash coincidano, si può essere ragionevolmente sicuri che il messaggio non possa che provenire dal client (a rigore: da qualcuno che conosce la chiave, ma ai nostri fini ciò è quello che conta), che viene così autenticato. PC Open 56\n12 Lezione 3 IT Administrator - Sicurezza informatica Gli algoritmi PAP e CHAP possono essere utilizzati in molteplici scenari di autenticazione, per esempio nelle connessioni PPP (Point-to-Point Protocol) usate per le connessioni a Internet via modem. Accanto a tali protocolli standard, Microsoft ha proposto (RFC2433) una propria variante di CHAP, nota come MS- CHAP, per l'autenticazione di client Windows remoti in ambito Win9x/Me e NT/2k/XP. Le modifiche riguardano un adattamento del formato del pacchetto dati per ragioni di compatibilità con i protocolli di rete Windows, nonché la definizione di codici d'errore dettagliati e l'introduzione di meccanismi (più sicuri e posti sotto il controllo del server) per ritentare l'autenticazione e per la modifica della password. Per esempio, diventa possibile per il server (che svolge il ruolo di autenticatore) rifiutare una password in quanto scaduta. Un evoluzione ulteriore di questo protocollo (MS-CHAP v2) è stata introdotta con Windows XP. Le novità riguardano la reciproca autenticazione di client e server, una crittografia più forte per la protezione delle fasi iniziali e l'uso di chiavi distinte per le due direzioni di traffico. Una vera e propria "piattaforma" per l'integrazione, sempre in contesto PPP (o VPN) di altri possibili metodi di autenticazione è costituita poi dall'extensible Authentication Protocol (EAP: RFC2284; e la sua evoluzione Protected EAP, o PEAP). In tale contesto, metodi di autenticazione di varia natura, comprese le Smart Card e i certificati digitali, sono messi, da un punto di vista operativo, sullo stesso piano, consentendo una facile scelta tra l'uno e l'altro. In figura 1 vediamo il dialog box con cui Windows XP propone varie scelte per l'autenticazione in contesto LAN (Ethernet o Wireless). Per esempio, nel caso il metodo scelto sia MD5-Challenge, si userà un protocollo molto simile a CHAP, mentre qualora si selezioni PEAP, Windows renderà disponibile una seconda finestra di opzioni per la scelta delle autorità emittenti di certificati digitali ritenute "attendibili" e per la selezione, in ambito EAP, dello specifico metodo di autenticazione da usare (Figura 2). In caso di mancata autenticazione, MS CHAP può passare in modalità PAP (fallback) il che costituisce un potenziale rischio di sicurezza. Schema di funzionamento del protocollo CHAP Il protocollo CHAP prende le mosse su iniziativa del server che esige l autenticazione del client C. Il primo passo è infatti la generazione e l invio, da parte del server, di un pacchetto challenge contenente (in chiaro) un valore casuale X (ossia il challenge vero e proprio), un numero progressivo N (usato dal server per mantenere storia dei vari challenge ancora in attesa di replica emessi verso vari client) e un nome di autenticazione S che identifichi il server. Quando il client riceve il messaggio challenge esso costruisce una stringa composta dalla password P da usare con quel particolare server (identificato dal nome contenuto nel pacchetto) e dal numero progressivo N e challenge X appena ricevuti dal server. Questa stringa viene poi passata all algoritmo MD5 che calcola H, un hash (checksum crittografico) che viene rispedito al server in un messaggio di risposta al challenge. Oltre a tale hash, questo messaggio porta a bordo C, inteso come il nome (in chiaro) del principal lato client a cui si riferisce la password entrata nel calcolo dell hash. Quando il server riceve il messaggio di risposta, quello che viene fatto è consultare il database locale di password conosciute per trovare la password corrispondente al principal C, dopodiché si procede allo stesso calcolo che il client ha appena effettuato per ottenere H. Se anche il server arriva allo stesso risultato H, per la proprietà Approfondimenti RFC 2433 su MS-CHAP rfcs/rfc2433.html RFC 2284 su EAP rfcs/rfc2284.html PAP e CHAP in contesto PPP LDP/nag/node120.html Una presentazione di PEAP /products/wireless/ peap.html Protocolli di autenticazione (da sito Microsoft) com/resources/ documentation/windows /XP/all/reskit/en-us/ Default.asp?url=/ resources/documentation/ Windows/XP/all/reskit/ en-us/prcg_cnd_pysl.asp 1 2 In figura 1 vediamo il dialog box con cui Windows XP propone varie scelte per l'autenticazione in contesto LAN (Ethernet o Wireless). PC Open 57\n13 IT Administrator - Sicurezza informatica Lezione Conoscere differenti protocolli di rete per l autenticazione di processi distribuiti Approfondimenti La RFC1050, su RPC e sui principali schemi di autenticazione: rfcs/rfc1050.html Documento Sun su AUTH_KERB: uk/docs_other/kerberos %20Authentication%20in %20Sun%20RPC%20for %20NFS.pdf Vulnerabilità di RPC newsletter/winter-04/ ALookAtRPCSecurity.htm Essere consci della complessità dei sistemi ad architettura single sign-on della funzione hash usata (MD5), ciò è considerato prova ragionevolmente certa che gli input dati all algoritmo MD5 lato client e lato server erano uguali. In particolare, si considera dimostrato che la password usata lato client come input all algoritmo è la stessa usata lato server, perciò lato client vi è qualcuno che ha dimostrato di conoscere la password e per questa ragione, a questo punto, lo si considera autenticato. In questo caso il protocollo termina con l invio, dal server al client, di un messaggio che attesta l avvenuta autenticazione. Protocolli per l autenticazione dei processi Numerosi servizi di rete di larga diffusione e di grande importanza, a partire dall'nfs (Network File System) per la condivisione dei dischi in rete in ambiente Unix e Linux, si basano su un'architettura client-server nella quale lo scambio di messaggi tra le due parti in causa è modellato come una serie di Remote Procedure Calls (RPC) un protocollo che consente a un programma residente su un particolare computer di mandare in esecuzione un programma residente su un server. Con RPC non ci si riferisce solamente a uno schema logico, ma anche a un vero e proprio protocollo standard che regola il comportamento che i processi in gioco devono seguire, nonché a un set di librerie utilizzabili dagli sviluppatori di applicativi per realizzare servizi client-server; RPC può appoggiarsi sia su connessioni TCP (Transmission Control Protocol) sia su comunicazioni UDP (User Datagram Protocol). Data la delicatezza e la criticità di molti dei servizi basati su RPC, la questione dell'autenticazione del richiedente riveste particolare importanza (ovviamente accanto a quella della correttezza degli applicativi). Per tale motivo esistono schemi di autenticazione applicabili a RPC, che naturalmente fanno uso di tecniche crittografiche per contrastare attacchi basati su intercettazione, modifica, replay e altro. Tali tecniche (o authentication flavors) differiscono principalmente per l'algoritmo crittografico usato, per la modalità con cui avviene lo scambio delle chiavi e per altri dettagli. L'assenza di strategia di autenticazione è anch'essa identificata come un flavor, (nella fattispecie il tipo è AUTH_NULL). Il flavor AUTH_UNIX (detto anche AUTH_SYS), ancor oggi molto usato, prevede l'invio, da parte del client, di hostname, username e gruppo (o un massimo di 10 gruppi) di appartenenza. Si tratta, e il nome non ne fa mistero, di un impostazione molto orientata al modello di autenticazione del mondo Unix e nella quale, soprattutto, manca del tutto un ruolo di "verificatore", sicché risulta semplice falsificare le credenziali e spacciarsi per qualcun altro. Il flavor AUTH_DES tenta di risolvere tali problemi. Innanzitutto il client viene identificato da una stringa (un nome di rete, detto anche "netname") il cui formato è libero (e non più Unix-oriented), purché soddisfi una condizione di univocità globale nella rete. E' responsabilità del client generare tale stringa nel modo a esso più comodo e garantire il rispetto di tale condizione. Un classico modo per farlo, adatto a molti sistemi operativi, consiste nel concatenare username, hostname ed eventuali altre informazioni, con opportuni separatori non ambigui. Per quanto riguarda il problema della protezione crittografica della comunicazione RPC, in AUTH_DES si fa uso, anche per motivi di prestazioni, di crittografia DES (simmetrica a chiave segreta) a 56 bit, con una fase iniziale, per la definizione concordata di una chiave di sessione, protetta da uno schema Diffie-Hellman con impiego di crittografia a chiave pubblica. Nei messaggi vengono inoltre inseriti timestamp (informazioni sull'ora di emissione dei messaggi) per rendere possibile il riconoscimento di messaggi troppo "vecchi" e poter così contrastare eventuali attacchi di tipo replay. Esiste anche un flavor di più recente introduzione, AUTH_KERB, che differisce da AUTH_DES principalmente per il fatto che, anziché spedire il "netname" e una chiave di sessione, si riutilizza con vantaggio il "service ticket" generato e gestito da Kerberos. Inoltre, come in tutti gli schemi Kerberos, la sensibilità di AUTH_KERB alla differenza tra i clock delle due macchine non è trascurabile come nel caso di AUTH_DES, in cui è previsto un sistema per il rilevamento e la compensazione automatica di tale eventuale differenza. Schema (semplificato) della fase di invio delle credenziali dal client al server all inizio di una sessione RPC In modo AUTH_DES le credenziali (sempre accompagnate da informazioni di verifica, non mostrate in figura, che le proteggono) sono costituite dal nome del principal e dalla chiave di sessione Ks cifrata mediante la chiave Kdh precedentemente concordata con l algoritmo Diffie- Hellman. In modo AUTH_KERB tutto quello che occorre che il principal mandi come proprie credenziali (a parte le informazioni di verifica, anche in questo caso non mostrate) è il ticket di sessione precedentemente ottenuto mediante Kerberos (Tk). Il semplice possesso di quel ticket attesta infatti che in precedenza il principal ha superato con successo una fase di autenticazione con l Authentication Server, di cui anche il server si fida. Architetture a singolo sign-on Quando si ha a che fare con sistemi articolati e complessi, composti da una molteplicità di host (connessi tra loro in rete) e di servizi erogati da essi, con un gran numero di utenti e con la necessità di autenticarsi con ogni servizio per potervi accedere, ci si può facilmente trovare davanti a una situazione pressoché ingestibile, sia per l'utente finale costretto a ripetere frequentemente l'operazione di login, sia per gli amministratori di sistema, alle prese con il problema di governare un elevato numero di profili per diversi host o servizi. Come abbiamo visto, possibili soluzioni "palliative" vanno dalla scelta, da parte degli utenti, di login e password ovunque uguali, all'utilizzo di stratagemmi come il meccanismo.rhosts per il riconoscimento reciproco dell'autenticazione tra host. Una soluzione strutturalmente migliore prende le mosse da una strategia di gestione unificata degli utenti, attraverso la creazione di un database unico, centralizzato, per tutti i profili (username, password e altri dati) al quale le applicazioni possano magari accedere attraverso un'interfaccia standard, specializzata nel trattamento di questo tipo di dati, come LDAP (Lightweight Directory Access Protocol). Il passo successivo però consiste nel congegnare le applicazioni del sistema complessivo in modo che non soltanto l'autenticazione avvenga appoggiandosi alle informazioni contenute in tale database unificato, ma che l'utente debba autenticarsi una sola volta, al primo accesso, e in seguito risulti automaticamente autenticato su tutte le altre risorse di rete. A tal fine sono considerate ri- PC Open 58\n14 Lezione 3 IT Administrator - Sicurezza informatica sorse di rete non solo periferiche o i dischi condivisi, ma qualunque servizio reso disponibile dal sistema nel suo complesso, inclusi gli accessi interattivi (come telnet/rlogin/rsh, per sistemi Linux) e l'accesso a servizi erogati via Web. Tale approccio complessivo all'autenticazione va sotto il nome di Single Sign-On (SSO) e, se da un lato offre degli indubbi benefici in termini di praticità d'uso per gli utenti finali (e, di conseguenza, un incremento di produttività), ha anche effetti positivi sulla sicurezza del sistema, in quanto è evidente che non dovendo più ricordare numerose password l'utente è meno portato a tenerne traccia scritta in luoghi magari poco protetti; inoltre la gestione dei profili risulta centralizzata e quindi non solo più semplice, ma anche più sicura (diminuisce il rischio di dimenticare gli account attivi o le password obsolete, magari già compromesse). Naturalmente la difficoltà di realizzare una architettura SSO per l'autenticazione è proporzionale all'eterogeneità del sistema. Quando l'ambiente complessivo è omogeneo la soluzione può essere addirittura già disponibile "gratis", come avviene con il modello Microsoft. Esso prevede anzitutto un LDAP server come deposito centrale delle informazioni di profilo. Si distinguono poi quattro tipi di logon, pensati per altrettanti modelli di comportamento e di accesso a risorse di rete. Innanzitutto vi è il login interattivo, che corrisponde alla classica situazione in cui si accede a un computer per il quale si disponga di accesso fisico diretto (anche se, per la verità, gli accessi via Terminal Server sono equiparati); il login di rete, per l'utilizzo da remoto, in modalità client-server, di qualche risorsa o servizio; il login per servizi, che i servizi Win32 effettuano sul nodo locale per poter entrare in attività; e infine i login batch, usati appunto per l'esecuzione di job batch, magari in background. Qui interessa soprattutto il secondo di questi tipi di login, il login di rete, il quale si avvale del protocollo Kerberos (di origine Unix, ma adottato ufficialmente da Microsoft precisamente in versione 5 - per i suoi sistemi operativi da Windows 2000 in poi) per garantire un elevato livello di sicurezza per l'autenticazione malgrado questa avvenga in rete. Vedi il seguente capitolo ( ) per la descrizione dettagliata delle fasi di autenticazione utilizzate dal protocollo Kerberos. Principi operativi di Kerberos Il servizio distribuito di autenticazione in rete Kerberos, inventato nella metà degli anni '80 dal MIT, prende appropriatamente il nome dal cane a tre teste che secondo la mitologia greca vigilava sull'accesso agli inferi. In sintesi, il servizio offerto da Kerberos consente a un processo (client) mandato in esecuzione da un utente (principal) di attestare e dimostrare la propria identità a un ente verificatore (una applicazione server) senza inviare alcuna informazione in rete in particolare, password - la cui intercettazione potrebbe consentire a un attaccante o allo stesso verificatore d impersonare in seguito l'utente. Tale operazione apparentemente contraddittoria e impossibile, è in realtà consentita da un impiego ingegnoso di tecniche crittografiche. Nel funzionamento di Kerberos gli attori fondamentali sono 4: oltre ai già citati client (C) e server (R) vi sono infatti: - un authentication server (AS), con il quale ogni client C condivide una propria chiave crittografica segreta Kc. AS ha la funzione di generare in modo sicuro (fidato e non intercettabile da terzi in ascolto) "l'innesco" della successiva conversazione: la chiave di sessione. - un ticket-granting server (TGS) che si occupa di fare da "ponte crittografico" fra client e server per generare in modo convincente per entrambi, e non intercettabile da terzi, una chiave da usare per la successiva comunicazione diretta tra C e R. FASE 1 Quando C desidera attivare una connessione con R per richiedere l'esecuzione di un servizio, autenticandosi in modo credibile per R, ma non intercettabile per terzi non autorizzati, per prima cosa invia (in chiaro) il proprio nome "C" ad AS. AS esamina il proprio database di controparti note e verifica che effettivamente un client C è noto e che in particolare è nota la chiave segreta Kc da usare nelle comunicazioni con esso. AS allora genera una chiave di sessione Ks (ogni volta una diversa) e un "ticket" ottenuto crittografando con la chiave segreta Ktgs la coppia di informazioni costituita dall'identità del client, C, e dalla chiave di sessione, Ks. Chiave di sessione e ticket vengono usati per formare un messaggio che viene poi cifrato con la chiave segreta Kc e spedito a C come risultato. Il messaggio così ottenuto risulta indecifrabile per chiun- Approfondimenti RFC 2251 (LDAP): rfcs/rfc2251.html Conoscere i principi generali di funzionamento del sistema di autenticazione Kerberos. PC Open 59\n15 IT Administrator - Sicurezza informatica Lezione 3 Approfondimenti Per una presentazione di Kerberos si veda Tanenbaum, Computer Networks (IV edition), Prentice-Hall, cap ; oppure, su Web. gost/publications/ kerberos-neumantso.html Controllo degli accessi Conoscere i principi concettuali alla base del controllo d accesso que non conosca la chiave segreta Kc, ma non per C, che ne è al corrente. Quando C riceve il messaggio, utilizza proprio Kc per decifrarlo ed estrarre Ks e il ticket. Il ticket è indecifrabile per C, che non conosce la chiave Ktgs con cui è stato cifrato. [figura fase 1] FASE 2 C invia al ticket-granting server TGS il ticket così come l'ha ricevuto, accompagnato dall'identità R (in chiaro) del server con cui vuol parlare e dall'ora esatta crittografata con la chiave di sessione Ks. Per il TGS, che naturalmente conosce Ktgs, è possibile decifrare il ticket ed ottenere così Ks e C. Con Ks può poi decifrare l'ora esatta e verificare se il messaggio che ha appena ricevuto da C è effettivamente stato mandato di recente oppure se si tratta di un vecchio messaggio che qualcuno ha intercettato e sta ora cercando di ripetere per ingannare il server inducendolo a ripetere una operazione già effettuata in precedenza (replay attack). Il TGS sceglie ora una chiave segreta Kcr da usarsi per la comunicazione che sta per avere inizio fra il client C e il server R. Il prossimo passo consiste nell'invio a C, da parte del TGS, di due informazioni protette. La prima consiste nella coppia R, Kcr crittografata usando la chiave di sessione, Ks. La chiave di sessione è nota solo a C (oltre ai fidati AS e TGS) quindi nessun altro, all'infuori del client, può intercettare tale messaggio. C può così estrarre Kcr e iniziare a usarla per parlare con R. La seconda informazione consiste nella coppia C, Kcr crittografata con la chiave Kr del server. Poiché il client non conosce Kr, C non ha la possibilità di decifrare (magari per alterarlo) questo valore. Tutto quello che può fare è di spedirlo tale e quale al server R, accompagnato anche in questo caso dall'ora esatta cifrata usando la chiave Kcr. FASE 3 Quando il server R riceve questo messaggio, per prima cosa lo decifra usando la sua chiave segreta Kr. Ottiene così la chiave Kcr e l'identità C del client che gli sta parlando, il che gli permette di verificare che il messaggio stia arrivando proprio da chi il mittente afferma di essere. Con la chiave Kcr invece il server per prima cosa decifra l'ora esatta e verifica che il messaggio sia davvero recente. In caso contrario potremmo essere ancora di fronte a un replay attack, e il server per tutelarsi non dovrà fare altro che ignorare il messaggio. A questo punto sia C sia R (e nessun altro, escluso, naturalmente, il "fidato" TGS) conoscono la chiave segreta condivisa Kcr e R considera finalmente autenticato C: la comunicazione sicura fra essi può cominciare, naturalmente crittografata usando Kcr come chiave. Chiunque fosse stato in ascolto non ha visto passare alcuna password (nemmeno crittografata) e da ciò che può avere intercettato non ha acquistato né la possibilità di intromettersi nella conversazione spacciandosi in modo credibile per qualcun altro (per farlo dovrebbe ingannare AS e TGS, ma non conosce le chiavi segrete per farlo), né la possibilità di memorizzare e ripetere dei messaggi (grazie ai timestamp crittografati con chiavi segrete). Inoltre, ogni successivo scambio di messaggi fra C e R avviene in forma cifrata usando una chiave segreta Kcr e risulta quindi incomprensibile a terzi non autorizzati in ascolto. Controllo degli accessi Una volta conseguita l'autenticazione, con cui ha convalidato la propria identità, il "principal" (utente o processo che sia) che desideri accedere a una determinata risorsa si trova ancora a metà del guado: il fatto che la sua identità sia ora accertata, infatti, non significa necessariamente che gli debba essere concesso quello che chiede. Occorre prima verificare se a quel "principal" è consentito l'accesso alla risorsa e questo, ove applicabile, nella modalità richiesta, a seconda del modello previsto a tale riguardo (lettura, scrittura, creazione,..). Di questo si occupa una seconda "barriera" subito a valle dell'autenticazione: il controllo degli accessi (Access Control). Principi di controllo degli accessi Con il termine "controllo degli accessi" ci si riferisce a quelle funzionalità del sistema operativo che stabiliscono chi può accedere alle risorse disponibili ed esercitano il potere di concedere, o negare, l'abilitazione a tale accesso. A seconda dei sistemi operativi, il controllo degli accessi può riguardare un set più o meno vasto di entità, dai "soliti" file fino a concetti più sottili come le chiavi di registro o i semafori, passando per stampanti di rete, processi e thread. Nella terminologia Windows, le entità assoggettabili a controllo degli accessi si chiamano "securable objects". Da un punto di vista concettuale, poi, qualunque sia l'implementazione offerta dal sistema operativo, si può PC Open 60\n16 Lezione 3 IT Administrator - Sicurezza informatica pensare a uno stesso modello logico di riferimento per la determinazione dei permessi di accesso: la cosiddetta "tabella delle autorizzazioni", di cui, come vedremo, altri modelli costituiscono restrizioni o semplificazioni. 4 Access Control List e List of Capabilities La tabella delle autorizzazioni (o "matrice degli accessi") può essere immaginata come una matrice bidimensionale le cui righe rappresentano "soggetti" (o "principal"), ossia entità utenti, processi, eccetera - che possono richiedere un accesso a qualche risorsa; le sue colonne rappresentano invece "oggetti", o risorse file, periferiche, database, porte di I/O, eccetera per le quali, a fronte di una richiesta di un "principal", può essere consentito o negato l'accesso. All'incrocio di una riga con una colonna la matrice riporta l'elenco dei diritti, od operazioni, che sono concessi a quel determinato "principal" su quella particolare risorsa. Per esempio, limitandoci per semplicità al caso degli utenti e dei file: Sapere cos è un Access Control List (ACL) e la List of Capabilities file1 file2... filen utente1 lett./scritt. nessun diritto... lett./esecuz. utente2 lett. nessun diritto... lett utentem lett./esec. lett./scritt.... lett. Riconsiderando ora questa matrice ed estraendone una determinata colonna otteniamo l'elenco dei diritti di accesso riconosciuti su quella risorsa (nell'esempio, un file) per ogni utente conosciuto al sistema. Questo tipo di informazione non è altro che la Access Control List (ACL) associata alla risorsa: 3 file1 utente1: lettura/scrittura utente2: lettura... utentem: lettura/esecuzione Viceversa, se dalla stessa tabella estraiamo una determinata riga, otteniamo l'indicazione di tutto ciò che nel complesso è consentito fare a un determinato "principal" (nell'esempio, un utente). Questo vettore è spesso definito "Capability List" (lista di capacità) utente1 file1: file2: filen: lett./scritt. nessun diritto... lett./esec. Controllo degli accessi nei comuni file system Anche se da un punto di vista logico il modello di riferimento per quanto riguarda il controllo degli accessi sui file è sostanzialmente analogo nella maggioranza dei sistemi operativi, esistono differenze e restrizioni piuttosto marcate nella sua implementazione da caso a caso. Qui prenderemo in considerazione Windows XP Home, Windows XP Professional e Linux. Fra i tre sistemi presi in esame, Windows XP Professional offre il modello ACL per i file più articolato e completo. È possibile, per ogni singolo "principal", sia esso un utente o un gruppo, specificare per ogni singolo file (o per intere cartelle o unità disco) non soltanto i "classici" permessi di lettura e scrittura (Figura 3), ma anche permessi estremamente specifici quali l'autorizzazione ad acquisire il possesso della risorsa, a impostare il valore dei suoi attributi base ed estesi e perfino l'autorizzazione a leggere (e cambiare) i permessi stessi. Questo si fa utilizzando un'apposita scheda (Figura 4) del dialog box "Properties" che si visualizza selezionando il file in Explorer e facendo clic con il tasto destro del mouse; la scheda Permissions Conoscere le modalità di gestione dell accesso per i file system correnti PC Open 61\n17 IT Administrator - Sicurezza informatica Lezione Conoscere le modalità di gestione dell accesso ai RDBMS (Figura 5) fornisce invece una vista tabellare abbastanza chiara della ACL per l'oggetto in questione. Nel caso di XP Home, per i file, è disponibile una versione di ACL molto ristretta. Tutto quello che si può fare è specificare se una determinata cartella è per esclusivo uso personale di un determinato utente sul computer locale, oppure condivisa con gli altri utenti locali del computer, oppure condivisa in rete, nel qual caso è consentito anche precisare se agli utenti di rete deve essere permesso modificare i file contenuti nella cartella. Non è possibile impostare queste restrizioni a livello di singolo file e non è possibile differenziarle utente per utente. In sintesi, sia i "principals" sia le risorse (ovvero, sia le righe sia le colonne della "access matrix") sono trattabili solo in modo "grossolano", per gruppi, e anche i permessi che possono essere concessi o negati (lettura; scrittura) sono un sottoinsieme di quelli previsti dal modello di XP Professional. In Linux lo schema per attribuire i permessi ai file è semplice ma pratico e soprattutto sufficiente per tutte le applicazioni normali. Ogni file o directory ha associato un set di permessi accordati a tre diverse categorie: il proprietario del file (user); il gruppo di utenti a cui il proprietario appartiene (group); tutti gli altri utenti (other). Per ognuno di questi tre "principal" sono definiti tre permessi: lettura, scrittura, esecuzione/attraversamento. Quest'ultimo assume il primo significato nel caso in cui l'entità in esame sia un file e il secondo significato nel caso di una directory. Caratteristica peculiare di Unix in generale e quindi anche di Linux, il permesso di esecuzione esiste anche nella variante "set user id": l'effetto è quello di far sì che anche se il programma è lanciato in esecuzione da un utente U, durante l'esecuzione gli verrà temporaneamente attribuita un'identità (effective user ID) uguale a quella del proprietario del file. Si tratta di una possibilità molto utile per consentire anche a semplici utenti l'esecuzione di determinate operazioni privilegiate, ma naturalmente, se abusata, è foriera di gravi rischi per la sicurezza, specie se il flag "set user id" è usato per un programma di proprietà di root. I permessi dei file sono mostrati quando si richiede la visualizzazione della directory con il comando "ls l": la rappresentazione, che compare subito alla sinistra del file, consiste in una stringa di 10 caratteri, in cui il primo codifica il tipo di file (file, directory, link simbolico, socket un oggetto software che collega un applicazione a un protocollo di rete - named pipe collegamento temporaneo fra due programmi o comandi) e i successivi 9 caratteri, a gruppi di 3 (da sinistra a destra: utente/gruppo/altri), sono i permessi per i 3 diversi "principal". Se un dato permesso è concesso, la relativa lettera è visualizzata (r per read, w per write, x per execute, s per setuser-id). Viceversa, se il permesso non è disponibile, nella corrispondente posizione della stringa viene mostrato un trattino ("-"). Per esempio, la stringa dei permessi di un file di programma eseguibile ha normalmente il seguente aspetto: -r-xr-xr-x Se si vuole che, quando qualcuno lo esegue, il programma acquisisca i diritti dell'utente proprietario del file per tutto il tempo dell'esecuzione, occorre assegnare il permesso set-user-id, così: -r-sr-xr-x Invece i permessi di un semplice file di dati leggibile dal proprietario e dal suo gruppo, ma scrivibile solo dal proprietario, appaiono così: -rw-r----- Una directory (tipo di file: "d") in cui tutti possono scrivere e leggere e che tutti possono attraversare avrà invece una stringa permessi di questo tipo: drwxrwxrwx mentre sarà opportuno che la home directory di un utente sia maggiormente protetta, per non consentire né letture, né scritture, né attraversamenti ad estranei, compresi gli appartenenti allo stesso gruppo di utenti del proprietario, al quale invece dev essere concesso tutto: drwx È bene tenere comunque sempre presente che per l'utente root è come se tutte queste limitazioni non esistessero. Esiste anche una rappresentazione numerica di questi permessi che è basata su una notazione binaria: a ogni permesso concesso o negato viene fatto corrispondere un bit in una maschera di 9 bit. Ogni bit della maschera vale 0 se il rispettivo permesso è negato, 1 se concesso. Da sinistra a destra, i bit hanno il seguente significato: user group other read write execute read write execute read write execute La maschera mostrata nell'esempio ( ) corrisponde alla stringa "rw-r--r--", ossia: il proprietario può leggere o scrivere il file, gli altri (gruppo ed estranei) possono solo leggerlo. Solitamente si fa uso della notazione ottale per comodità (in quanto ogni cifra ottale corrisponde a 3 bit, un raggruppamento ideale). Così, una situazione di "tutti i permessi negati" corrisponde a 000 ottale, mentre 777 rappresenta il binario , ossia "tutti i permessi sono concessi a tutti". I permessi dell'esempio di cui sopra, in ottale, avrebbero la rappresentazione 644. Da segnalare infine il meccanismo dei permessi di default. Quando viene creato un file, il sistema operativo provvede ad attribuirgli dei permessi che dipendono dal tipo di file (per esempio: programma o file di dati) e da una speciale misura precauzionale supplementare, volta di solito a restringere i permessi che spettano a "gruppo" e "altri": si tratta del meccanismo della "umask", in sostanza un valore binario (espresso per comodità in ottale) che rappresenta i bit che devono essere azzerati nella maschera dei permessi rispetto al valore dei permessi standard per quel tipo di file. Il comando umask, senza parametri, visualizza il valore attuale di questa maschera. Per impostarla si usa lo stesso comando ma si passa un parametro ottale su riga di comando, per esempio: umask 022 che corrisponde a negare a "gruppo" e "altri" il diritto di scrittura per il nuovo file. Controllo degli accessi in database relazionale Uno dei tipi più importanti di risorse disponibili in rete è il database. E' evidente che, se si ha a cuore la sicurezza delle informazioni, l'accesso a un database (che spesso può contenere dati estremamente rilevanti e sensibili) non è privilegio da concedere a chiunque senza restrizioni. PC Open 62\n18 Lezione 3 IT Administrator - Sicurezza informatica Due sono gli aspetti da considerare a questo riguardo: il controllo sulla connessione al Database server e l'autorizzazione a compiere le varie operazioni una volta connessi. Per il primo punto i database utilizzano naturalmente uno schema basato su password; a seconda dei casi la password può viaggiare da client a server su una connessione più o meno protetta da tecniche crittografiche, ma si tratta di uno scenario simile a quelli già discussi, con vantaggi e criticità analoghi, su cui non ci soffermiamo. E' il secondo aspetto a meritare un cenno. I database sono dei sistemi per la gestione veloce e affidabile di grandi quantità di informazioni in forma strutturata. Nel caso particolare dei database relazionali (RDBMS) la struttura usata è la tabella bidimensionale; una tabella si usa per modellare una determinata entità; le righe (o record) corrispondono a istanze, le colonne ad attributi. Esempio di tabella in un RDBMS Nome tabella: Correntista Nome Codice fiscale Numero cliente Saldo John Smith XYZ Jack White KLM In questa tabella gli attributi sono Nome, Codice fiscale, Numero cliente e Saldo ; l entità modellata è il Correntista. Sono attualmente presenti 2 istanze, corrispondenti ai correntisti i cui nomi sono John Smith e Jack White; per esempio, il record contenente le informazioni riguardandi John Smith è il seguente record di quattro campi: John Smith XYZ Così, possiamo dire che il valore dell attributo Numero cliente per l istanza relativa a John Smith è Il modello di protezione a livello di utente, con il quale si possono stabilire livelli di permessi d'accesso ai dati e ad altre informazioni di controllo del database, non ha una logica "tutto o niente" ma consente di specificare questi permessi con una granularità più fine, per definire la quale si fa proprio riferimento a questi oggetti ed alle operazioni possibili su di essi. Con riferimento al caso particolare di Access, in ambiente Windows, per ogni "principal" (utente o gruppo di utenti) e per ogni oggetto definito nel database, fra quelli di tipo controllabile (tabella, query, maschera, eccetera) è infatti possibile specificare le autorizzazioni desiderate, fra cui lettura, scrittura, inserimento, cancellazione. L'operazione, nel caso di Access, si effettua da una comoda finestra dedicata (Figura Permessi Access). Per altri database, in assenza di una interfaccia grafica di gestione analoga a questa, per definire i permessi occorre utilizzare comandi interattivi stile SQL oppure agire su speciali tabelle di controllo che fanno parte anch'esse, seppure a titolo speciale, del database a cui si riferiscono; nome, tipo e struttura di questi comandi o tabelle dipendono dal particolare RDBMS usato, anche se i concetti su cui si basano restano naturalmente gli stessi. Per esempio, in MySQL (un database molto diffuso, in particolare in ambiente Linux) e vari altri RDBMS, i seguenti comandi hanno l'effetto di concedere all'utente "smith12" di modificare ("alter") la tabella dei conti correnti, "Accounts", in un database bancario, purché "smith12" si sia preventivamente autenticato a mezzo password: Mysql> GRANT alter on Accounts to smith12 Mysql> IDENTIFIED by "password"; Si potrebbe anche concedere a un utente "admin" ogni permesso su ogni tabella del database, pretendendo però, per ragioni di sicurezza, una autenticazione che avvenga in modo protetto crittograficamente a mezzo SSL (Secure Socket Layer): Mysql> GRANT all on *.* to admin Mysql> IDENTIFIED by "password" REQUIRE SSL; Esiste anche un comando REVOKE che ha l'effetto contrario di GRANT, in quanto revoca una o più autorizzazioni per un dato utente e tabella. La sintassi è del tutto simile a quella di GRANT: Mysql> REVOKE alter on Accounts FROM smith12; Mysql> REVOKE ALL PRIVILEGES FROM smith12; 6 PC Open 63\nSicurezza delle reti. Monga. L autenticazione in rete Password Altre credenziali OTP Metodi crittografici. Pericoli. Sicurezza delle reti.\n1 Mattia Lezione XIX: Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2010/11 1 c 2011 M.. Creative Commons Attribuzione-Condividi allo stesso modo\nImplicazioni sociali dell informatica\nFluency Implicazioni sociali dell informatica Capitolo 10 Privacy I nostri corpi I nostri luoghi Le informazioni Le comunicazioni personali La privacy Con i moderni dispositivi è possibile violare la privacy\nElementi di Sicurezza e Privatezza Lezione 9 Autenticazione (2)\nElementi di Sicurezza e Privatezza Lezione 9 Autenticazione (2) Chiara Braghin chiara.braghin@unimi.it Autenticazione basata su caratteristiche Autenticazione basata su caratteristiche Possesso di caratteristiche\nStarShell. Autenticazione. StarShell\nAutenticazione 1 Autenticazione Verifica dell'identità di qualcuno (utente) o qualcosa (host) in un contesto definito Componenti: Oggetto dell'autenticazione Autenticatore Informazione di autenticazione\nRC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/\nPOLITECNICO DI MILANO CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ è un cifrario a flusso progettato da Ron Rivest (la R di RSA) nel 1987. Era un segreto commerciale della\nFORUM PA Officine PA Sicurezza. Martedì 10 Maggio I-Memo v. 226. La sicurezza digitale nelle nostre mani\nL idea: una proposta unica per rispondere a diversi livelli di richiesta di sicurezza Cloud computing Codici e pin di identificazione utente Servizi bancari e della Pubblica amministrazione on line Web\nCONCETTI GENERALI SULLA SICUREZZA INFORMATICA\nUniversità di Foggia Master gestione di dati e bioimmagini Modulo II: Le reti informatiche in ospedale CONCETTI GENERALI SULLA SICUREZZA INFORMATICA Prof. Crescenzio Gallo c.gallo@unifg.it Competenze Acquisire