2. AUTENTICAZIONE

 

 

 

2.1    Cos’è l’autenticazione

 

 

Definizione di autenticazione

 

L'autenticazione è il processo attraverso il quale viene verificata l'identità di un utente che vuole accedere ad un computer o ad una una rete. E’ il sistema che verifica, effettivamente, che un individuo è chi sostiene di essere. L'autenticazione è diversa dall'identificazione (la determinazione che un individuo sia conosciuto o meno dal sistema) e dall'autorizzazione (il conferimento ad un utente del diritto ad accedere a specifiche risorse del sistema, sulla base della sua identità).

 

Chi è l'utente che richiede una connessione?

 

A quali parti della rete e dei dati aziendali può lecitamente accedere?

 

E soprattutto come essere sicuri dell'identità di chi accede a un sistema?

 

Queste sono le domande fondamentali a cui un qualsiasi sistema di sicurezza, per essere efficace, deve poter rispondere. Un lavoro essenziale affinché un utente possa accedere ad un sistema informativo, ad una rete o a qualsiasi altra risorsa protetta. Si potrebbe pensare che tutto questo costituisca un classico compito da affidare alle solite diffuse password, ma in realtà queste ultime sono soltanto una piccola componente, da sola non sufficiente, di un sistema di sicurezza che possa definirsi davvero efficace.

Un buon processo di autenticazione ricorre normalmente ai seguenti tre fattori:
1. Qualcosa che solo l'utente conosce, come una frase, un numero o un fatto (per esempio, il nome della madre prima del matrimonio).
2. Qualcosa che solo l'utente possiede, come una chiave, una scheda magnetica, un dispositivo di autenticazione, che generano una password unica e irripetibile, o una particolare risposta al quesito posto dal server.
3. Qualcosa che solo l'utente è, e che normalmente dipende da una qualche caratteristica fisica peculiare. Questa tecnica rientra sotto il nome di biometria, e gli esempi più significativi di utilizzo di questo tipo di autenticazione comprendono il riconoscimento delle impronte digitali, la struttura dell'iride oculare, la forma della mano, il riconoscimento del timbro della voce, il riconoscimento facciale, il modo in cui l'utente digita sulla tastiera o il modo in cui l'utente firma (la velocità, la pressione della mano e lo stile di scrittura).

Questi fattori di autenticazione sono stati elencati,  in base al livello di difficoltà che è necessario affrontare a per aggirarli. Ognuno di questi metodi offre un determinato grado di sicurezza, ma ognuno presenta anche i propri problemi e le proprie debolezze.

 

 

Quello che un utente conosce: le password

 

La password è l'insieme di caratteri alfanumerici, di lunghezza variabile, che immessa in un sistema permette l'accesso alla persona che la possiede. La sicurezza in questo sistema di identificazione può essere compromessa per due motivi:

 

Per ovviare al primo problema le soluzioni sono semplici ed elementari, le password devono essere tenute nascoste, non scritte su fogli o database di facile accesso, inoltre occorre evitare l'impiego di personal computer che permettano la memorizzazione delle password e degli identificativi immessi o almeno dove possibile non permettere la registrazione della password. Inoltre per evitare di essere trafugate durante la trasmissione spesso vengono criptate.

 

Per definizione nessuna password é sicura al 100%, ma la sua decodifica è solo questione di tempo. Un' adeguata politica di gestione delle passwords (rinnovi, ripetibilità, lunghezza, caratteri utilizzabili) può contribuire a far crescere i tempi necessari ad un hacker che voglia impadronirsi del diritto di accedere a un sito.

 

Un discorso a parte va dedicato alle password dinamiche. Sono queste, una tipologia di password composta da una porzione alfanumerica fissa (ma comunque sempre rinnovabile), e una porzione alfanumerica, o più spesso solo numerica, che cambia automaticamente ad ogni intervallo di tempo prefissato (in genere ogni minuto). Un esempio di questo sistema è fornito dalla RSA, leader nel settore della crittografia e della sicurezza nell'identificazione. Questo sistema si basa su una duplice componente, una hardware e una software. La parte software è un programma chiamato "Agent" che risiede in esecuzione sul server che deve essere protetto; anche su un server web. Questo sistema si occupa di integrare le password statiche con la loro componente dinamica. Una seconda parte software è il "Server" che si occupa di generare le password dinamiche ogni minuto, e le comunica all'Agent. La parte hardware è il cosiddetto "Token" (vedi fig.), un piccolo strumento delle dimensioni di un portachiavi che, sincronizzato con il server, genera ogni minuto (o altro intervallo di tempo) la componente dinamica della password secondo lo stesso algoritmo residente sul server. Esistono anche in questo caso soluzioni per gestire la fault tolerance, ossia per fornire accesso autenticato anche in caso di mancata perfetta sincronizzazione temporale dei 2 dispositivi, pur garantendo l'autenticazione.

 

 

Quello che un utente possiede: i dispositivi hardware

 

Chiave hardware.. Una chiave hardware non è altro che un contenitore di login/password che deve essere mantenuto sicuro dall'utilizzatore stesso. E' un oggetto dotato di memoria integrata al suo interno, la cui capienza varia da modello a modello. In questa memoria é possibile scrivere dati quali passwords, firme digitali, codici e quant'altro. La sicurezza della chiave hardware si basa molto sull'affidabilità del padrone della chiave stessa. Se la persona i cui dati di identificazione sono su una chiave, la lascia incustodita, allora la sicurezza può essere facilmente compromessa, altrimenti il grado di sicurezza di una chiave hardware è senz'altro superiore alla password testuale. Studi hanno dimostrato la facilità con cui è possibile "manomettere" una chiave USB, leggendone il contenuto della memoria, scrivendo nella memoria stessa e in questo modo replicando la chiave. Ovviamente è una procedura che richiede specifiche competenze in campo elettronico e la disponibilità di strumenti adeguati. Ciononostante le competenze richieste e gli strumenti necessari sono facilmente reperibili, e un buon elettrotecnico è facilmente in grado di svolgere queste procedure.

 

Smart card. Questo argomento è stato ampiamente trattato nel capitolo precedente.

 

 

Proximity tools. Una menzione va dedicata anche ai dispositivi di autenticazione che sfruttano i segnali in radiofrequenza. Tramite un' apposita interfaccia da collegare al computer questi sistemi vanno a leggere il contenuto della memoria di un apposito strumento in possesso della persona che si deve autenticare. La procedura di autenticazione può riguardare l'accesso locale a un PC (logon alla macchina fisica) oppure anche a un sito Internet. In questo caso se il canale di comunicazione è sicuro, la procedura di autenticazione può essere svolta in maniera efficiente. E' da poco stato introdotto sul mercato un nuovo orologio che sfrutta proprio questo principio (vedi fig). Nella memoria dell'apparecchio vengono memorizzati i dati necessari alla procedura di autenticazione, e questi vengono passati al computer tramite un' interfaccia simile a un mouse-pad collegato tramite porta USB al computer. L'invio di dati al server remoto viene gestito da un' applicazione dedicata, che gestisce le chiamate alla periferica di ricezione e instrada le informazioni ricevute al server remoto, o alla macchina locale.

 

 

Quello che un utente è: i dispositivi biometrici

 

 Un sistema biometrico è un sistema di riconoscimento che stabilisce l'autenticità di una caratteristica fisiologica o del comportamento di un utente. Una delle tecnologie biometriche più anziane e più note è quella che si occupa del riconoscimento dell'impronta digitale. I sistemi automatici di identificazione sono disponibili in commercio dall'inizio degli anni 60. La tecnologia biometrica ora si è trasformata in un'alternativa possibile ai sistemi tradizionali di identificazione in molti settori. In aggiunta alle tecnologie di riconoscimento dell'impronta digitale, altre tecnologie biometriche stanno cominciando ad emergere. Esse includono il riconoscimento del viso, (sia ottico che infrarosso), della mano, dell'iride, della retina, della firma ed il riconoscimento della voce.

 

Considerazioni

 

Dopo aver introdotto il concetto di autenticazione e dopo averne descritto i dispositivi utilizzati, facciamo delle brevi considerazioni su alcuni aspetti (accuratezza, costi, invasività) che possono essere utili nella scelta di un dispositivo di autenticazione rispetto ad un altro.

 

Accuratezza

Mentre un sistema basato su password testuali garantisce il massimo dell'efficienza nell'autenticazione se si fornisce la password esatta, un sistema biometrico può essere meno accurato; questo può accadere a causa di problemi del sensore, particolari condizioni di illuminazione non ottimali o altre situazioni ambientali. All'estremo questa situazione rischia di far avere accesso a una persona che non e' autorizzata. Ci troviamo qui nella fattispecie degli errori di tipo "False Positive", ossia quando un soggetto non autorizzato viene riconosciuto come autorizzato. Un secondo tipo di fattispecie di errore è quello dei "False Negative" ossia quando il sistema non autentica un soggetto in realtà autorizzato. Nell'analisi sull'opportunità di utilizzo di queste tecnologie, è importante valutare il trade off tra affidabilità e prestazioni del sistema alla luce dei costi delle diverse soluzioni.

 

Costi

Maggiore è l'affidabilità del sistema e maggiori sono i costi richiesti per l'acquisto dei sensori necessari al riconoscimento. Inoltre per quelle specifiche applicazioni nelle quali non è possibile far ricorso a dispositivi di grandi dimensioni (computer portatili, ad esempio) tanto maggiore è la miniaturizzazione del dispositivo e maggiori saranno i costi per l'acquisto del dispositivo stesso. Infine, quando si deve prendere in considerazione l'utilizzo di un sistema biometrico, è importante considerarne l'invasività.

 

Invasività

Spesso la lettura di parametri biometrici da parte di una macchina richiede all'utente che si vuole autenticare, comportamenti che possono essere considerati invasivi. L'esempio tipico in questi casi è il bancomat. Difficilmente i clienti di una banca accetterebbero un sistema di bancomat che richieda loro di avvicinare un occhio a uno scansore di retina o di iride. Un bancomat di questo tipo difficilmente potrebbe avere successo.

 

Identificazione e verifica

L'identificazione è un processo di verifica 1-a-molti: confronta un' impronta biometrica con moltissime altre presenti in un database, al fine di stabilire un'identità. Un sistema di accesso all'ingresso di un'area riservata di un'azienda potrebbe usare questo sistema dove migliaia di impronte biometriche presenti in un database, vengono comparate con l'impronta della persona che cerca di accedere.

La verifica, al contrario, è un processo 1-a-1: confronta un'impronta biometrica a un'altra che è stata memorizzata, per esempio, su una smart card. Questo processo è molto più veloce dato che non serve fare ricerche complesse su DataBase.

 

 

 

2.2    Rischi delle tecnologie, attacchi più comuni e trasmissione dati su reti

 

 

Quali sono i rischi derivanti dall’utilizzo di queste tecnologie?

 

Le tecnologie di autenticazione, essendo gestite da macchine, non sono infallibili. Il rischio primario è che la macchina non sia in grado di distinguere tra soggetti autorizzati ad accedere ad una risorsa e soggetti non autorizzati. Quindi in questo caso ci troviamo di fronte ad una debolezza intrinseca del sistema. Per un computer, ciò che conta è che i dati che gli vengono passati durante il processo di autenticazione siano presenti nel suo database; che poi la persona che sta fornendo i dati alla macchina sia effettivamente la titolare del diritto, il computer non lo può sapere. Gli hackers giocano proprio su questo punto debole del sistema, ossia cercano di "farsi riconoscere" come persone autorizzate. Per fare questo, le tecniche utilizzate sono diverse e dipendono dal tipo di tecnologia di autenticazione che si vuole "sconfiggere".

Per quanto riguarda i sistemi basati su password testuali, basta "indovinare" la password da associare a un certo username e il gioco è fatto. Per fare questo gli hackers utilizzano sostanzialmente gli attacchi a dizionario e a forza bruta.

Nel caso di sistemi di autenticazione basati su chiavi usb o smart card, l'hacker cercherà di entrare in possesso della chiave hardware onde poterla duplicare.
Nel caso di sistemi biometrici,   l'hacker si troverà di fronte a problemi maggiori, in quanto i parametri  biometrici sono unici per ogni persona. L'hacker allora cercherà di aggirare il sistema e di impossessarsi del database che istruisce il sistema di riconoscimento di parametri biometrici, onde poter "replicare" l'identità di uno o più utenti.

Un altro tipo di attacco ad un sistema di autenticazione è il cosiddetto "man in the middle" che consiste nell'avviare un processo nascosto (troyan horse) sulla macchina che effettua l'autenticazione, al fine di informare l'hacker di quali sono le login e le password che vengono accettate dalla macchina per poi poter replicare le identità delle persone autorizzate. Ovviamente questo tipo di attacco è tra i più difficili da realizzare perché richiede che almeno una volta l'hacker sia riuscito a penetrare nella macchina per avviare il suo processo "man in the middle". Ciononostante è meno problematico di quanto possa sembrare dato che spesso i server di autenticazione (come il resto dei server) non sono adeguatamente protetti da attacchi esterni e permettono a utenti remoti di prenderne il controllo da remoto.

 

 

Quali sono i metodi di attacco più comuni e come difendersi da essi?

 

 I programmi password cracker sono di due tipi:

 

I programmi dictionary based provano tutte le parole predefinite in un dizionario e vedono se tra queste è presente la password dell'utente. Questi programmi sono più veloci rispetto ai brute force attack ma la riuscita dell'attacco dipende soprattutto dal numero di vocaboli presenti nel dizionario. L'esito di un attacco di questo tipo è negativo se le password dell'utente sono state create rispettando i consigli esposti precedentemente e soprattutto utilizzando password formate da numeri e simboli.

I programmi per effettuare il brute force attack, trovano tutte le combinazioni dei caratteri presenti in un determinato set di caratteri disponibili, rendendo molto interessante questi tipi di strumenti. La caratteristica negativa di questa tipologia di attacco è l'ingente quantitativo di tempo che viene speso per elaborare tutte le possibili combinazioni. Infatti se ipotizziamo una password lunga 8 caratteri e un set di caratteri di partenza, da cui elaborare le password, che comprenda le 26 lettere dell'alfabeto inglese e i dieci numeri, un hacker si troverebbe a dover tentare fino a un massimo di 852 combinazioni possibili (che tradotto in cifre fa 302.231.454.903.657.000.000.000 tentativi!). Quindi pur essendo estremamente efficaci sono meno efficienti dei dictionary based.

 

 

Quanto è sicura la trasmissione di dati su reti protette da protocolli di codifica?

 

Quello che collega i due estremi è il canale di trasmissione, la cui sicurezza deve essere tale da garantire il fallimento di eventuali tentativi di sniffing (duplicazione delle informazioni in transito) dei pacchetti TCP in transito. Il protocollo di cifratura SSL (Secure Socket Layer) con chiave a 128 bit garantisce alti standard di sicurezza. SSL si basa su un sistema di crittografia a doppia chiave, implementato dai maggiori produttori di browser. Esso è diventato quasi uno standard per la protezione dei dati nelle transazioni sul web. Le caratteristiche che lo hanno portato a diventare così diffuso sono:

 

 

La potenza di calcolo necessaria per la decodifica dei pacchetti criptati "catturati" in rete, ovviamente è diversa e dipendente dalla tipologia di attaccante. La tabella che segue da un'idea dei tempi necessari per decodificare un segnale criptato con chiave di diverse lunghezze:

 

 

 tipo di attaccante

Chiave a 40 bit

Chiave a
46 bit

Chiave a
56 bit

Chiave a
80 bit

Chiave a
128 bit

Hacker

5 h.

10.000 anni

700 mil. anni

700 mil anni

1027 anni

PMI

2 sec.

1 anno

70.000 anni

70.000 anni

1019 anni

Grande Impresa

2 ms.

9 gg.

7000 anni

7.000 anni

1016 anni

Intelligence Agency

2 ms.

13 sec.

7 anni

7 anni

1015 anni

 

 

 

2.3    Processo di autenticazione tramite smart card

 

 

Come avviene

 

I processi di autenticazione permettono il riconoscimento, tra smart card e il mondo esterno, che è tipicamente rappresentato dal terminale che interagisce con la carta.  Lo standard ISO definisce tre tipi di autenticazione: interna, esterna e reciproca. Tale suddivisione è definita in base e chi effettivamente effettua la verifica dell’identità (il mondo esterno, la carta o entrambi).  Il principio generale su cui si basa l'autenticazione è che, tra i due soggetti, vengono scambiate quantità casuali, di validità temporanea (autenticazione dinamica), che vengono crittografate, in modo simmetrico, con le stesse chiavi e con gli stessi algoritmi. Vediamo ora, un esempio di autenticazione:

 

Il riconoscimento in rete per la fruizione di servizi

 

Un  utente vuole identifcarsi in rete, tramite una card, nei confronti di un server applicativo che eroga servizi (es. Pubblica Amministrazione Centrale). In  questo caso la soluzione che si è scelta è quella della Strong Authentication.

La Strong Authentication richiede l’utilizzo di funzioni tipiche di una Public Key Infrastructure per cui, oltre alle piattaforme standard per l’utilizzo delle smart card, è necessario considerare cosa è normalmente disponibile sul mercato per interagire con una PKI utilizzando le Smart Card come dispositivi di cifratura.  La figura sottostante schematizza un esempio di applicazione utente che interagisce con un’Infrastruttura a Chiave Pubblica. E’ un approccio stratificato, che partendo dal livello più alto (Application), scende verso livelli sempre più bassi, fino ad arrivare al dispositivo fisico rappresentato dalla smart card.  

 

Analizziamo, ora, in dettaglio i vari strati rappresentati in figura:

 

Application

 

Rappresenta il livello più alto ed è l’applicazione con cui l’utente interagisce.

 

Crypto Middleware ed API PKCS #11

 

Le infrastrutture a Chiave Pubblica mettono a disposizione dei Client, che operano su reti aperte, apposite applicazioni (piattaforme) per gestire i servizi di cifratura/decifratura.

 

Tali piattaforme, chiamate generalmente Crypto Middleweare, svolgono le seguenti funzioni:

 

 

Queste piattaforme a loro volta, poggiano su strati software, o API, che le isolano dai dispositivi di cifratura, nel nostro caso smart card. Le API più diffuse sono le PKCS #11. Le caratteristiche salienti di queste API sono:

 

 

Client smart card device interface

 

Rappresenta il dispositivo con il quale la smart card (posta al livello più basso) si interfaccia con il livello superiore (PKCS #11).

 

In conclusione, possiamo notare che, l’applicazione di autenticazione risiede in parte sulla Workstation che interfaccia la smart card ed in parte sulla macchina che eroga il servizio per cui l’autenticazione è richiesta.