Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata...

41
Autenticazione

Transcript of Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata...

Page 1: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Autenticazione

Page 2: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Definizione

L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete:

“è il sistema che verifica, effettivamente, che un individuo è chi sostiene di essere”

L'autenticazione è diversa da:• l'identificazione: la determinazione che un individuo sia conosciuto o meno

dal sistema• l'autorizzazione: il conferimento ad un utente del diritto ad accedere a

specifiche risorse del sistema, sulla base della sua identità

Page 3: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Principali tipi di autenticazione

• L'autenticazione debole statica, che include le password e altre tecniche che sono suscettibili di compromissione con attacchi che riproducono le sequenze d’autenticazione (replay attacks).

• L'autenticazione debole non statica, che contempla l'uso della crittografia o di altre tecniche, ad esempio per creare password one-time valide per un'unica sessione. Quest’approccio può essere compromesso con il furto della sessione (session hijacking);

• L'autenticazione forte, che adotta tecniche matematiche o crittografiche per prevenire i principali problemi dell'autenticazione debole.

Page 4: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Occorre una prova

L'autenticazione rappresenta una prova d'identità.

Di solito questo prevede un insieme di fattori che ci caratterizzano:– cose che conosciamo– cose che possediamo– cose che siamo

Page 5: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Tipologie di prova

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 [SYK].

2. Qualcosa che solo l'utente possiede, come una chiave, una scheda magnetica, un dispositivo di autenticazione, che generi una password unica e singolare, o una particolare risposta al quesito posto dal server[SYH].

3. Qualcosa che solo l'utente è, e che normalmente dipende da una qualche caratteristica fisica peculiare[SYA]. (biometria)

Page 6: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Forze e debolezze

• Per quanto riguarda il primo metodo, chiunque può digitare una password e, storicamente, le password riutilizzabili si sono sempre rivelate vulnerabili.

• Nel caso esista un secondo fattore di autenticazione (qualcosa che l'utente possiede) è necessario che l'utente abbia con sé un dispositivo che risulta tecnicamente difficile da replicare: – più costoso del precedente– implica l'attuazione di procedure di emergenza nel caso uno di

questi dispositivi sia dimenticato a casa, sia perduto, oppure rubato

Page 7: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Forze e debolezze

Il terzo tipo di autenticazione (qualcosa che l'utente è), è il più difficile da attaccare, ma presenta comunque altri tipi di problemi:

Autenticazione biometrica è soggetta a due tipi di errori:– i falsi positivi: è accettato un individuo che invece non dovrebbe

essere autenticato– i falsi negativi: è respinto un individuo che invece dovrebbe a

rigore di logica essere riconosciuto e autenticato.

Variazioni temporanee o permanenti a livello fisico che rendono illeggibili le caratteristiche registrate dal sistema di sicurezza.

Page 8: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Classificazioni

Possiamo avere tre tipi di autenticazione: • User-to-host (da utente a host). Metodi usati da

host per identificare gli utenti prima di fornire loro i servizi.

• Host-to-host (da host a host). Tecniche utilizzate dagli host per convalidare l'identità di altri host, in modo da poter scoprire eventuali comunicazioni fraudolente.

• User-to-user (da utente ad utente). Metodi per essere certi che i dati elettronici originino effettivamente dal supposto utente e non da qualcuno che si spaccia per il mittente.

Page 9: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Classificazioni

Sono normalmente classificati sulla base del numero di partecipanti in:

• autenticazione unilaterale, in cui si verifica l'identità di un solo partecipante e

• mutua autenticazione, in cui si stabilisce l'identità di entrambi i partecipanti.

Indipendentemente dai particolari della procedura implementata, uno schema di autenticazione si svolge, principalmente, secondo uno dei seguenti paradigmi:

• paradigma username/password• paradigma challenge/response

Page 10: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Login-password

Page 11: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Login-passowrd

Il server è responsabile di verificare quanto ricevuto sulla base delle informazioni in suo possesso.

Questa procedura, prevedendo la trasmissione dei dati per l'autenticazione in chiaro, (sistemi semplici).

È sensibile ad attacchi di replicazione dati (replay attack).

Un attacco di risposta consiste nell’intercettare messaggi, conservarli e spedirli successivamente.

Non solo password: è possibile che un hacker intercetti il codice delle impronte digitali una volta digitalizzate ed in transito sulla rete.

Page 12: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Challange/Response

Il paradigma challenge/response prevede che il client si autentichi presso il server seguendo una procedura articolata in tre passi distinti:

1. Il client invia l'identificativo personale dell'utente al server.

2. Generazione e trasmissione di una sfida R (challenge) da parte del server.

3. Il client risponde al challenge inviando al server una trasformata del challenge ricevuto

Page 13: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Challange/Response

Page 14: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Meccanismi

Ci sono due modi di operare: quello dell'utente e quello del sistema:– dal lato dell’utente, la password one-time deve essere generata– dal lato del sistema, la password one-time deve essere

verificata.

Queste password one-time sono generate e verificate usando funzioni one-way basate sull'MD4

La funzione one-way prende in input otto byte e restituisce in output otto byte, dopo che è stato eseguito l'MD4

Page 15: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Meccanismi a due parti di fiducia

Quando un utente si collega ad un host, quest'ultimo deve giudicare la sua autenticità sulla base di credenziali (come una password statica o one-time) che l'utente gli fornisce, perciò l' host deve avere fiducia.

Inoltre vi è un'implicita fiducia da parte dell'utente che fornisce le proprie credenziali quando richiesto fidandosi del fatto che l'host sia quello vero e non un impostore.

Questo schema di autenticazione user-to-host comunemente implementato è un modello a due parti di fiducia, nel quale ogni parte decide di fidarsi dell'altra sulla base di alcuni criteri.

Page 16: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Meccanismi a tre parti

Un'altra tecnica prevede una terza parte di fiducia. In questo modello:• l' host non deve affidarsi solamente alle

credenziali fornite dall'utente o da un dispositivo in suo possesso

• allo stesso modo l'utente non deve fidarsi dell' host.

Entrambe le parti si appoggiano ad una terza entità detta Key Distribution Center (KDC), che controlla le rispettive identità.

Page 17: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.
Page 18: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Il KDC

• Nella maggior parte dei casi un KDC non fa distinzione tra utenti e host, o meglio tra programmi server e host

• Tratta tutti come principal, entità distinte che condividono un segreto (una chiave crittografica) con il KDC

• Questa conoscenza gli permette anche di identificare un principal da un altro senza divulgare il segreto di nessuno dei due

Page 19: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Il protocollo

• Per esempio, si supponga che l'utente A voglia autenticarsi con l'host B.

• Sia A che B condividono i propri segreti con il KDC.

• A inizia con il contattare il KDC richiedendo l'autenticazione delle credenziali Cred (A) che intende presentare a B.

• Il KDC obbliga A ad inviargli delle credenziali che possono convincere B della sua identità.

Page 20: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Il protocollo

• Queste credenziali sono racchiuse all'interno di due pacchetti crittati: quello esterno cifrato per A con la chiave KeyA e quello interno crittato per B con KeyB.

• Se A non riesce a decifrare il pacchetto esterno non può neppure estrarre quello interno che deve mandare a B

Page 21: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Il protocollo

• Una volta decrittato il pacchetto esterno, A invia il pacchetto interno a B insieme ad altre informazioni.

• Se B riesce a decrittare il pacchetto (cosa che può fare se conosce la password) ottiene le credenziali di A che sono state preparate dal KDC. B può quindi credere tranquillamente nell'identità di A.

Page 22: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Kerberos

Nel 1983 ha avuto inizio una collaborazione tra il Massachusetts Institute of Technology (MIT), la Digital Equipment Corporation e l’IBM.

Questa collaborazione è stata definita “Progetto Athena” ed ha fornito vari prodotti tra cui i più importanti sono il sistema di autenticazione Kerberos ed il sistema X Windows.

Page 23: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Kerberos

Il nome Kerberos deriva dalla mitologia greca, si tratta, infatti, del nome del cane a tre teste che faceva la guardia all’'ingresso degli inferi.

Il cane a tre teste simboleggia i tre scopi originali di Kerberos: – Autenticazione: verificare l'identità di un client o di un servizio; – Autorizzazione: autorizzare un client autenticato ad utilizzare

un particolare servizio;– Accounting: verificare la quantità di risorse utilizzate da un

particolare client.

Sfortunatamente però degli obiettivi originali, l'unico portato veramente a termine è stato il primo e vale a dire quello relativo all'autenticazione.

Page 24: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.
Page 25: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Architettura

• Kerberos permette l’autenticazione di ogni entità autenticabile all’interno di un certo dominio, detto realm.

• Gli utenti che vi partecipano, i client e i server si autenticano a vicenda mediante l'aiuto di un Key Distribution Center (KDC), nel quale è riposta tutta la fiducia.

• Questo schema è reso possibile dal fatto che ogni principal condivide una chiave crittografica con il KDC.

Page 26: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Architettura

Le funzioni di base del KDC sono quelle tipiche di una terza parte di fiducia, l’unica differenza è che le credenziali sono definite ticket.

Page 27: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Si supponga che A, usando una decriptazione a chiave segreta, abbia richiesto ed ottenuto delle credenziali che hanno fornito prova della sua identità all’ host B.

Se A desidera, nuovamente, essere autenticato presso un secondo server, C, manda una nuova richiesta al KDC e riceve un ticket specifico per C.

Per decifrare tale ticket deve essere applicata la chiave segreta di A; questo richiede che egli reinserisca la chiave o che il software la mantenga in memoria.

Page 28: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Tuttavia entrambe queste possibilità violano i requisiti di Kerberos.

Una soluzione al problema è che A faccia un’autenticazione iniziale (di bootstrap) con il KDC, ottenendo un ticket granting ticket, detto TGT, che una volta decifrato può essere rimandato al KDC per ottenere gli altri ticket per i vari server.

Page 29: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Steps

User Kerberos Server

U.T

Chiave del Ticket-Granter

Pwd utente

Page 30: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

User Kerberos Server

Chiave del Ticket-Granter

Pwd utente

U

Page 31: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

User Ticket Granter

Chiave del Server S

U U

Page 32: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

User Ticket Granter

Chiave del Server S

U

Page 33: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

User Server S

Chiave del Server S

U U

Page 34: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Il KDC ha le due funzioni logiche di:• Authentication Server (AS) • Ticket Granting Server (TGS)

L'AS processa l'autenticazione bootstrap (cioè riceve la richiesta di ticket TGS)

Il TGS si occupa di fornire i ticket per i server.

Anche se il KDC è diviso logicamente in due parti, l’AS e il TGS, in realtà entrambe le funzioni possono essere svolte da un solo programma sul sistema KDC.

Page 35: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Debolezze dell'autenticazione con Kerberos

Nel protocollo Kerberos V4 e V5, una password cripta un ticket.

Il contenuto del ticket permette un attacco basato su dizionario nella variante che usa un testo in chiaro verificabile.

La presenza del KDC significa che il server deve essere sicuro, poiché se fallisce tale punto centrale, gli altri sistemi sono esposti a problemi di sicurezza.

Kerberos richiede un notevole sforzo amministrativo e cambia il modello fondamentale di autenticazione degli utenti, sacrificando anche la trasparenza del processo.

Page 36: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Istallazione

• RPM per red hat:– Krbc5-workstation– Krb5-server– Pam_krb5

• Creazione file di configurazione– indicare qual è il server di autenticazione– indicare qual è il server di amministrazione database– Sostituire example.com con il nome del reame scelto per la

configurazione• Inizializzare il database• Creazione delle utenze amministrative• Avvio dei demoni• Aggiunta utenti

Page 37: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Utilizzo

• Autenticazione utente:– /usr/kerberos/bin/kinit nome_utente(richiesta passoword)

• Ora l’utente è in possesso di un ticket– Il comando klist elenca i ticket posseduti e la

loro durata

• Occorre configurare kerberos perché venga utilizzato con i servizi telnet, ftp, …

• Occorre abilitare i servizi “kerberizzati”

Page 38: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Sistemi biometrici

Un esempio di autenticazione biometrica è il controllo delle impronte digitali.

Nella figura che segue il processo richiede che:– Il server conservi un database delle impronte– L’utente deve semplicemente apporre

l’impronta sul sensore

Page 39: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.
Page 40: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.

Controllo dell’impronta con supporto Smart-card

Generalmente si procede immagazzinando il template dell’impronta all’interno della smart-card, in particolare l’hashed fingerprint viene inserita all’interno di un certificato di attributo

All’interno della smart-card viene inserito anche un certificato X.509 per la firma digitale.

Per rendere valida l’impronta immagazzinata sono aggiunte due informazioni al certificato di attributo:

• Il numero seriale della smart card (in modo che quel template possa essere utilizzato solo con quella smart-card).

• Il numero seriale del certificato X.509.

In questo modo il possessore della carta è libero di autenticarsi o a mezzo della sola smart-card (con l’utilizzo di un apposito PIN), o con la sola impronta digitale oppure utilizzando una combinazione delle due tecniche

Page 41: Autenticazione. Definizione L'autenticazione è il processo attraverso il quale è verificata l'identità di un computer o di una rete: è il sistema che.