Autenticazione
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à
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 dautenticazione (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. Questapproccio 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.
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
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)
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
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.
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.
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
Login-password
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 nellintercettare 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.
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
Challange/Response
Meccanismi Ci sono due modi di operare: quello dell'utente e quello del sistema: –dal lato dellutente, 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
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.
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à.
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
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à.
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
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.
Kerberos Nel 1983 ha avuto inizio una collaborazione tra il Massachusetts Institute of Technology (MIT), la Digital Equipment Corporation e lIBM. 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.
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.
Architettura Kerberos permette lautenticazione di ogni entità autenticabile allinterno 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.
Architettura Le funzioni di base del KDC sono quelle tipiche di una terza parte di fiducia, lunica differenza è che le credenziali sono definite ticket.
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.
Tuttavia entrambe queste possibilità violano i requisiti di Kerberos. Una soluzione al problema è che A faccia unautenticazione 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.
Steps User Kerberos Server U.T Chiave del Ticket- Granter Pwd utente
User Kerberos Server Chiave del Ticket- Granter Pwd utente U
User Ticket Granter Chiave del Server S U U
User Ticket Granter Chiave del Server S U
User Server S Chiave del Server S U U
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, lAS e il TGS, in realtà entrambe le funzioni possono essere svolte da un solo programma sul sistema KDC.
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.
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
Utilizzo Autenticazione utente: –/usr/kerberos/bin/kinit nome_utente (richiesta passoword) Ora lutente è 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
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 –Lutente deve semplicemente apporre limpronta sul sensore
Controllo dellimpronta con supporto Smart-card Generalmente si procede immagazzinando il template dellimpronta allinterno della smart-card, in particolare lhashed fingerprint viene inserita allinterno di un certificato di attributo Allinterno della smart-card viene inserito anche un certificato X.509 per la firma digitale. Per rendere valida limpronta 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 lutilizzo di un apposito PIN), o con la sola impronta digitale oppure utilizzando una combinazione delle due tecniche