Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Dispense Internet Security, Dispense di Sicurezza Dei Sistemi Informativi

Introduzione alla sicurezza informatica, alle sue proprietà e ai principali protocolli.

Tipologia: Dispense

2014/2015

Caricato il 28/08/2015

nino_aparo
nino_aparo 🇮🇹

4

(2)

1 documento

1 / 77

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INTRO
STRUMENTI GENERALI DI SICUREZZA
Crittografia simmentrica e asimmentrica:
scienza esatta della matematica, è impossibile violare RSA 2048 bit in tempo
polinomiale; anche se il suo utilizzo per ottenere sicurezza in pratica non offre le stesse
garanzie
Politiche, insieme di regole (privacy policy, access-controll policy):
ACL: liste di controllo di accesso, usate per specificare un insieme di regole che
determinano l'accesso o meno ad alcune risorse di un sistema informatico da parte di un
determinato utente. Estendono quindi i permessi di accesso su file e directori di un
sistema linux,altrimenti limitato solo a 3 opzioni (read,write e execute) e 3 soggetti
(user,group, all_other). Una ACL è una lista ordinata di regole che stabilisce quali utenti
o processi di sistema possono accedere a degli oggetti, e quali operazioni sono possibili
su questi oggetti. Ciascuna regola, detta access control entry (ACE), esprime una o più
condizioni o proprietà dell'oggetto da valutare (ad es. l'indirizzo sorgente di un pacchetto
IP), e se queste proprietà sono verificate indica quale decisione prendere (ad es. lasciar
passare il pacchetto oppure scartarlo) (vedi controllo d'accesso).
Sistemi mandatori: indica un tipo di controllo d'accesso attraverso il quale il sistema
operativo vincola la capacità di un soggetto di eseguire diverse operazioni su un oggetto
o un obiettivo.Un soggetto può essere, ad esempio, un processo o un thread, ed oggetti i
file, le cartelle, le porte TCP/UDP, segmenti di memoria condivisa e altro.
Il controllo di accesso si basa sulla specifica a priori di una serie di attributi di sicurezza
rispettivamente per soggetti e oggetti: quando un soggetto tenta l'accesso a un oggetto, il
kernel del sistema operativo avvia una regola di autorizzazione che esamina gli attributi
di sicurezza di soggetti e oggetti e decide se l'accesso può aver luogo oppure essere
negato.quando un soggetto tenta l'accesso a un oggetto, il kernel del sistema operativo
avvia una regola di autorizzazione che esamina gli attributi di sicurezza di soggetti e
oggetti e decide se l'accesso può aver luogo oppure essere negato.
Conoscenza (password e pin), possesso (smart card e smart token) e biometria (iride e
impronta)
Programmi di protezione (antivirus, IDS, firewall)
Protocolli di sicurezza (SSH, SSL)
Sensibilizzazione dell'utente (informazione e istruzioine)
Tali strumenti sono spesso usati in combinazione tra loro, ma cmq sia singolarmente che in
combinazione hanno dei limiti.
Cerimonia: protocollo che coinvolge anche gli utenti e le entità (es. accoppiamento bluethoot).
Autenticazione: disriminazione tra utenti
Limiti dell'uso di password
Bisogna scegliere delle password lunghe, con magari lettere maiuscole e minuscole e caratteri. Che
siano forti contro attacchi di tipo dizionario o statistici (password piu usata love e varianti).
Bisognerebbe anhce utilizzare piu di una password, non sempre la stessa, e magari avere una
password principale da usare solo nei servizi di cui ci si fida di piu.
Il limite sta appunto nella mnemonicità: se un utente avesse tantissime password e riuscisse a
ricordarle tutte molti limiti sarebbero abbattuti.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d

Anteprima parziale del testo

Scarica Dispense Internet Security e più Dispense in PDF di Sicurezza Dei Sistemi Informativi solo su Docsity!

INTRO

STRUMENTI GENERALI DI SICUREZZA

  • Crittografia simmentrica e asimmentrica: ◦ scienza esatta della matematica, è impossibile violare RSA 2048 bit in tempo polinomiale; anche se il suo utilizzo per ottenere sicurezza in pratica non offre le stesse garanzie
  • Politiche, insieme di regole (privacy policy, access-controll policy): ◦ ACL: liste di controllo di accesso, usate per specificare un insieme di regole che determinano l'accesso o meno ad alcune risorse di un sistema informatico da parte di un determinato utente. Estendono quindi i permessi di accesso su file e directori di un sistema linux,altrimenti limitato solo a 3 opzioni (read,write e execute) e 3 soggetti (user,group, all_other). Una ACL è una lista ordinata di regole che stabilisce quali utenti o processi di sistema possono accedere a degli oggetti, e quali operazioni sono possibili su questi oggetti. Ciascuna regola, detta access control entry (ACE), esprime una o più condizioni o proprietà dell'oggetto da valutare (ad es. l'indirizzo sorgente di un pacchetto IP), e se queste proprietà sono verificate indica quale decisione prendere (ad es. lasciar passare il pacchetto oppure scartarlo) (vedi controllo d'accesso). ◦ Sistemi mandatori: indica un tipo di controllo d'accesso attraverso il quale il sistema operativo vincola la capacità di un soggetto di eseguire diverse operazioni su un oggetto o un obiettivo.Un soggetto può essere, ad esempio, un processo o un thread, ed oggetti i file, le cartelle, le porte TCP/UDP, segmenti di memoria condivisa e altro. Il controllo di accesso si basa sulla specifica a priori di una serie di attributi di sicurezza rispettivamente per soggetti e oggetti: quando un soggetto tenta l'accesso a un oggetto, il kernel del sistema operativo avvia una regola di autorizzazione che esamina gli attributi di sicurezza di soggetti e oggetti e decide se l'accesso può aver luogo oppure essere negato.quando un soggetto tenta l'accesso a un oggetto, il kernel del sistema operativo avvia una regola di autorizzazione che esamina gli attributi di sicurezza di soggetti e oggetti e decide se l'accesso può aver luogo oppure essere negato.
  • Conoscenza (password e pin), possesso (smart card e smart token) e biometria (iride e impronta)
  • Programmi di protezione (antivirus, IDS, firewall)
  • Protocolli di sicurezza (SSH, SSL)
  • Sensibilizzazione dell'utente (informazione e istruzioine) Tali strumenti sono spesso usati in combinazione tra loro, ma cmq sia singolarmente che in combinazione hanno dei limiti. Cerimonia: protocollo che coinvolge anche gli utenti e le entità (es. accoppiamento bluethoot). Autenticazione: disriminazione tra utenti Limiti dell'uso di password Bisogna scegliere delle password lunghe, con magari lettere maiuscole e minuscole e caratteri. Che siano forti contro attacchi di tipo dizionario o statistici (password piu usata love e varianti). Bisognerebbe anhce utilizzare piu di una password, non sempre la stessa, e magari avere una password principale da usare solo nei servizi di cui ci si fida di piu. Il limite sta appunto nella mnemonicità: se un utente avesse tantissime password e riuscisse a ricordarle tutte molti limiti sarebbero abbattuti.

Limiti di un firewall Non si possono chiudere tutte le porte, bisogna gestirne per forza alcune. Inoltre oltre alle minacce proveniente dall'esterno bisogna considerare anche quelle proviniente dall'interno, una soluzione possono essere le VLAN. VLAN :Una LAN virtuale, comunemente detta VLAN, è un gruppo di host che comunicano tra di loro come se fossero collegati allo stesso cablaggio, a prescindere dalla loro posizione fisica. una VLAN ha le stesse caratteristiche di una LAN fisica, ma consente di raggruppare le workstation come se fossero attestate sullo stesso segmento di rete. Invece di spostare gli host, la configurazione della rete si fa tramite strumenti software. “dominio di broadcast”(*): un segmento della rete all’interno del quale diversi host di uno stesso subnet comunicano tra di loro senza dover “passare” da un router, appartenendo alla stessa VLAN. Più reti logiche possono condividere la stessa infrastruttura fisica; Virtual LAN: sottorete IP indipendente che può condividere la stessa rete fisica di altre VLANs. Definizione di sicurezza per punti

  • la sicurezza non è un prodotto ma un processo
  • rappresenta l'anello piu debole della catena
  • espressa da che cosa : da che cosa è sicuro? Le affermazioni di sicurezza sono limitate dal tipo di minaccia
  • sempre soggetta all'analisi costi/benefici dell'attaccante: regolamenta il modello di attaccante che va specificato ogni volta
  • si realizza mediante livelli di sicurezza I rischi base per la sicurezza sono:
  • complessità dei sistemi da mettere in sicurezza, si immagini che originariamente I broswer avevano permessi di root
  • combinazione di sistemi
  • bug (circa 1 ogni mille righe di codice
  • proprità emergenti come il double spending
  • interazione con l'uomo (l'anello piu debole della catena) In generale i rischi digitali per la sicurezza sono:
  • automatizzazione offensiva; ◦ microfurti: limare 1 cent ogni carta visa ◦ violazioni quasi intracciabili: app crash e reboot ◦ privacy a rischio: dati su database
  • assenza di distanza ◦ internet non ha confini ◦ basta scaricare un expliot e sono tutti possibili criminali ◦ non bastano le leggi nazionali a proteggerci (attacco da paese senza accordi di estradizione)
  • propragazione techiche ◦ rapidità: hacher che pubblica attacco online ◦ diventare offensivi non implica abilità (scaricare script per DoS)
  • Difficoltà di reazione

PROPRIETA', ATTACCHI E ATTACCANTI

Gli attacchi sono classificabili in base all'obbiettivo dell'attaccante (tassonomia) e sono di svariata natura:

  • accesso al sistema
  • accesso al sistema per conto di un altro
  • guadagno privilegi superiori
  • impersonalizzazione
  • furto di dati sensibili
  • DoS
  • mancato recapito
  • ecc... La sicurezza si deve occuppare di prevenire questi attacchi mantenendo inalterato il comportamento del sistema. Vediamo un esempio di attacco reale ovvero il furto (perdita) di dispositivi con relative contromisure e contromisure fallite. Attacco Contromisure Fallimenti Accesso al sistema Autenticazione al sistema Laptop: password, impronta Smartphone: pin, viso, impronta e cancellazione meoria Laptot: riambientazione memoria di mass, boot da disposizione esterno smartphone: spesso disabilitata per usabilità Utilizzo funzionalità Autenticazione alla funzionalità App e broswer che registrano password Aquisizione dati sensibil Crittografia: codifica delle pass o di tutto io file system Riluttanza verso la codifica Rooting linux: SHIFT durante il boot, selezionare l'immagine del sistema e editare la linea di boot affinchè il file system sia scrivibile, ovvero cambiare ro in rw init=/bin/bash. Watermarking: inclusione di informazioni all'interno di un file multimediale o di altro genere, che può essere successivamente rilevato o estratto. Esse possono essere evidenti per l'utente del file (per esempio nel caso di una indicazione di copyright applicata in sovraimpressione su una immagine digitale) o latenti (nascoste all'interno del file); in quest'ultimo caso il watermarking può essere considerato una forma di steganografia. Può essere quindi usato per evitare furti di proprietà intellettuale (copyright) Tassonomia Attacchi Gli attacchi informatici si dividono in attacchi criminali (frodi, furto di marchi registrati di identità di proprietà intellettuale), attacchi basati su sistemi legali (es. test per valutare l'ermeticità delle banche o avere un parere dell'esperto in tribunale), violazioni di privatezza (spinonaggio elettronico in vasta scala ad esempio ECHELON), attacchi a scopo pubblicitario (DoS negazione di servizio).

ECHELON: termine usato perdescrivere la raccolta di signal intelligence (SIGINT) e analisi dei segnali gestita per conto dei cinque stati firmatari dell'accordo UKUSA di sicurezza (Australia, Canada, Nuova Zelanda, Regno Unito e gli Stati Uniti). È stato anche descritto come l'unico sistema software che controlla il download e la diffusione della intercettazione di comunicazioni via satellite. Per estensione, la Rete Echelon indica il sistema mondiale d'intercettazione delle comunicazioni private e pubbliche. Echelon utilizza le intercettazioni dei cavi sottomarini per controllare tramite i suoi più importanti centri di invio le trasmissioni di Internet, in particolare lo smistamento di messaggi e-mail. Data l'enorme mole di dati sorvegliata, impossibile da analizzare da parte di esseri umani, per intercettare i messaggi "sospetti" (inviati via e-mail, telefono, fax ecc.) viene utilizzato un sistema basato sull'identificazione di parole chiave e loro varianti, in grado anche di rintracciare l'impronta vocale di un individuo. Proprietà di sicurezza

Proprietà di livello 2 Disponibilità: sistema operante e funzionante in ogni momenti. Esempi: disponibilità di un sito, di un servizio ecc. Alcune misure:

  • limitare l'accesso a utenti autenticati (non una buona scelta)
  • complicare l'accesso al sistema impiegando computazionalmente il chiamante. Tipico esempio la technica di cookie trasformation: il server risponde alla richiesta di connessione al client con una contro-domanda, come ad esempio calcolare la t esima cifra del pigrego (di solito è un operazione piu costosa); non è ancora stata implementata questa tecnica. Non-ripudio : l'entità non possa negare la propria partecipazione ad una transazione con uno specifico ruolo. Esempi: di origine, di ricezione ecc. Alcune misure: fornire l'evidenza dell'operatore altrui mediante protocolli appositi per il non ripudio, posta elettronica certificata (PEC) ( sistema di posta elettronica con valenza legale che garantisce inoltre identificazione del mittente, integrità del messaggio e di attestare il recapito del messaggio nella casella di posta del destinatario; le comunicazione sono crittografate e firmate digitalmente) relazioni logiche tra autenticazione, anonimato e non ripudio) In pratica ovviabili tramite enforcing temporaneo ( proprietà viene meno temporaneamente) Proprietà di livello 3 Controllo d'accesso : ciascun utente abbia accesso a tutte e solo le risorse o i servizi per il quale è autorizzato. Esempi: accesso fisico ad aree di un edificio, accesso digitale a spazio su disco, ecc. Alcune misure:
  • autenticazione dell'utene
  • politiche di sicurezza (implementazione di ACL, utente limitato) Politiche di sicurezza Esempio:
  1. un utente ha il permesso di leggere qualunque file pubbliche
  2. un utente ha il permesso di scrivere solo sui file pubblici di sua proprietà
  3. un utente ha il divieto di fare il downgrade di un file
  1. un utente ha l'obbligo di cambiare la propria password quando scade
  2. un utente segreto ha il permesso di leggere su un qualunque file non pubblico
  3. un utente segreto ha il permesso di scrivere su un qualunque file non pubblico
  4. un amministratore ha il permesso di sostituire un qualunque file con una versione piu obsoleta
  5. un utente che non cambia la password scaduta (negligente) ha il divieto di compiere qualunque operazione
  6. un utente che non cambia la password scaduta (negligente) non ha discrezione di cambiarla Dall'esempio si possono capire quali siano gli elementi di una politica:
  • Ruoli → utente, utente segreto, amministratore, utente negligente
  • Utente → qualunque entità che ricopra un certo ruolo
  • Operazioni → leggere, scrivere, downgrade, cambio password
  • Modalità → obbligo permesso, divieto, discrezzionalità Modalità Si definisce l'abbligo come concetto base, le altre modalità derivano da esso: Per semplificare:
  • Vietato(x) → essere obbligato a non fare x.
  • Permesso(x) → non essere obbligato a non fare x.
  • Discrezzionale(x) → non essere obbligato a fare x. Il problema delle policy è che durante l'implementazione tutte le singole regole regole non devono andare in conflitto, una politica in cui ci sono contraddizioni o dilemmi è inconsistente. Le inconsistenze si risolvono con le priorità. Nell'esempio visto c'è una contraddizione nelle regole 3 e 7:
  • un amministratore ha il permesso e divieto di fare il downgrade di un file Un dilemma nelle regole 8 e 9:

Lo studente allo scritto riceve un foglio d'esame di questo tipo: Consideriamo 3 ruoli: Examiner, Invigilator e Candidate (i primi 2 possono essere 1 sola persona); 4 fasi : Preparation, Testing, Marking e Notification.

Durante la fase di Preparation l'esaminatore prepara i test inserendo nel DB gli id relativi. Durante la fase di Testing da i compiti al vVgilator che in maniera random li assegna agli studenti. Ogni studente dopo aver ricevuto il foglio visto sopra taglia la parte dei suoi dati e lascia solo il codice al barre. Quando lo ha completato lo consegna al Investigator. Durante la fase di Marking l'Investigator passa i compiti al Examiner che li corregge e inseriesce nel DB il voto nella riga corrispondete al ID compito indicato dal codice a barre. Durante la fase di notification ogni studente va dal Examiner con il tagliando (token) tagliato, lo consegna al docente che controlla nel DB e da il voto allo studente. Il compito rimane quindi anonimo fino alla fase di notification, per questo wata fa enforcing temporaneo : toglie l'autenticazione fino alla fase di notification. Modelli di attaccante Per quanto riguarda la tassonomia di attaccante si possono classificare in base ai moventi (ricchezza, informazioni sensibili, potere, divertimento...) oppure in base a diritti, risorse, esperienza, rischio accettato... In generale identifichiamo i seguenti tipi di attaccanti:

  • Hacher (cracler)
  • Attaccanti interni
  • Spionaggio industriale
  • Servizi segreti
  • Organizzazioni criminali/terroristiche
  • Difesa Per ogni protocollo che intendiamo studiare dobbiamo definire il modello di attaccante al quale si fa riferimento. Un modello di attaccante specifica (le capacità offensive di) un preciso attaccante (un astrazione di un singono individuo):
  • ogni affermazione di sicurezza ha senso limitatamente a un modello
  • cambiare il modello potrebbe cambiare il valore di verità di un affermazione di sicurezza
  • fare un'analisi nel caso peggiore richiede un modello massimamente offensivo
  • di volta in volta si stabilisce un modello con il quale fare le analisi di sicurezza (a seconda del contesto) Modello Dolev-Yao (DY) L'attaccante è unico e superpotente, ovvero controlla l'intera rete, ma no può violare la crittografia. E' un modello massimamente offensivo, se si riesce a dimostrare che il sistema è sicuro contro questo modello allora sarà sicuro contro gli altri. Si dimostra che un insieme di attaccanti collusi equivale a DY, il modello DY infatti è piu potente di tutte le capacità offensive distribuite a differenti attaccanti (capacità offensive quali intercettazione e manipolazione). Il nome deriva dai suoi autori che lo idearono nel 1983. A quei tempi non c'era l'internet di oggi, la sicurezza serviva per lo più a 2 spie che volevano comunicare in maniera sicure e ancora la crittografia asimmetrica era nata da poco. Questo modello fa riferimento a quel periodo storico (essendo ideato in quel tempo) e vede infatti 2 entità che si fidano l'uno dell'altro ma non del resto del mondo (a questo scenario non si applica il non-ripudio), non aderisce molto alla nostra realtà. L'attaccante sta in mezzo alle 2 entità.

AUTENTICAZIONE

Si fa autenticazione per mezzo di un qualche cosa che caratterizzi ogni utente. Consideriamo le possibili ambientazioni, spesso richieste in varie combinazioni:

  • utente-computer: la più comune, per accedere a un sistema (password, impronte)
  • computer-computer: punto-punto, indipendente da suo utente (IP,MAC)
  • Computer-utente: fondamentale per il computer remoto (sito internet)
  • utente-utente: rara (kerberos) Autenticazione utente-computer Di 3 tipologie
  • basata su conoscenza di segreti prestabiliti e precondivisi (password, passpharase, PIN)
  • basta su possesso di dispositivi magnetici o elettronici (carte magnetiche, smart card, smart token)
  • basata su biometria di caratteristiche fisiche dell'utente (impronte, iride, tono di voce) Spesso usate in combinazione di criteri (vedi bancomat → scheda + pin → possesso + conoscenza). Autenticazione basata su conoscenza Conoscere la giusta password prova l'identà: chiunque conosca la password di un utente per un sistema può impersonare in toto quell'utente col sistema. E' semplice ed economica da implementare. Corre rischi di:
  • Guessing: indovinata (attacco standard, attacco dizionario, attacco forza bruta)
  • Snooping: sbirciata mentre viene inserite (bancomat)
  • Spoofing: scoperta tramite falsa interfaccia di login (trojan)
  • Sniffing: intercettata durante la trasmissione Guessing Attacchi:
  • Attacco standard: password brevi, tipiche, relative all'utente (hobby, nomi parenti,compleanno, indirizzi)
  • Attacco dizionario: Vengono provate tutte le parole in un dizionario; i tentativi sono spesso arricchiti con regole che ricalcano le possibili scelte dell'utente (doppia parola, parola al contrario, 0 al posto di o, 1 al posto di i)
  • Attacco forza bruta: Vengono provate esaustivamente tutte le parole costruibili da un dato vocabolario (alfanumerico, simboli speciali) o random di lunghezza via via crescente; empiricamente si vede che con un ricco vocabolario 6 è una soglia notevole. La probabilità di indovinare la password è 1/ |A|n^ dove A è la cardinalità dell'alfabeto usato e n la lunghezza della password (la cardinalità conta ma lunghezza di più visto che è esponenziale). Contromisure:
  • controllo sulla password: il sistema controlla che la password non sia banale (lunghezza, caratteri speciali) quando essa viene scelta
  • Controllo sul numero di inserimenti: il sistema limita i tentativi di login, pena blocco
  • Uso di CAPTCHA: Completely Automated Public Turing Test To Tell Computers and Humans Apart, il sistema richiede di verifcare che il tentativo di login viene da un umano. Tuttavia però il recente algoritmo basato su Google Street View viola il 99% delle captcha alfanumeriche. Norme per le password Bilanciare al meglio mnemoncità (sia facile da ricordare cosicché non serva scriverla) e complessità (sia robusta verso guessing). Questo implica:
  • non usare una parola di dizionario
  • usare almeno 8 caratteri
  • non usare la stessa password per autenticazioni diverse, altrimenti basterebbe una sola compromissione Mantenere una password L'approccio tipico è quello di memorizzare userid e password corrispondente in un database in qualche forma. Nel 1960 fu ideato l'approccio CTSS (Compatible Time Sharing System) dal MIT, le password sono memorizzate in chiaro su un file di sistema protetta da politica di sicurezza (numerosi attacchi registrati ma ha introdotto il concetto di controllo d'accesso basato su autenticazione). Vedremo successivamente sistemi più recenti che usano crittografia. Autenticazione basata su possesso L'identità dell'utente è comprovata dal possesso del giusto oggetto, tipicamente magnetico o elettronico (carta magnetica, smartcard, smart token). L'oggetto può memorizzare informazioni sensibili:
  • l'informazione su carta magnetica è interamente leggibile
  • l'informazione su carta elettronica è leggibile correttamente con interfaccia funzionale Le smartcard sono ormai abbastanza potenti (memory card vs microprocessor card). Smart token Gli smart token sono sempre più diffusi per autenticazioni sensibili, usate nei siti web per combinare autenticazione basata su conoscenza (PIN) a quella basata su possesso, la cosiddetta two factor authentication. Uno smart token ha apprezzabili capacità computazionali, alcuni prevedono un tastierino numerico per effettuare un autenticazione ad esso basta su conoscenza (PIN) altri invece no e prevedono che il PIN o la password sia inserita nel sito. Generano uno speciale segreto detto one-time password (OTP), accettato solo una o poche volte dal server; per verificare la OTP bisogna dire che lo smart token e il web server sono sincronizzati computazionalmente (non comunicano tra loro): calcolano lo stesso algoritmo basandosi su fattori esterni. In particolare, ogni smart tocken ha una chiave segreta (seme) memorizzata dalla fabbrica; prende info esterne (PIN, ora) per generare la OTP che viene visualizzata sul display e rinnovata frequentemente (ogni 30-90 secondi) minimizzando i rischi di guessing (per la generazione non

digitali. Le impronte sono classificate in base a 3 schemi prenominati:

  • Loop (60%), linee circolari che escono verso l'esterno
  • Arch (5%), linee poco circolari che escono
  • Whorl (35%), linee circolari che non escono Gli algoritmi di riconoscimento delle impronte puntano all'individuazione delle minuzie , ovvero la fine o il punto di biforcazione di una linea.

Cenni di crittografia La crittografia è la scienza di criptare (codificare) un testo in chiaro e decriptare (decodificare) il crittotesto associato: un messaggio binario m può essere criptato in c , il quale a sua volta può essere decriptato in m. E' una scienza molto antica con tracce risalenti all'antica Grecia, usata anche in ambito militare (ENIGMA); al giorno d'oggi esistono 2 tipi di crittografia: tradizionale simmetrica e la variante asimmetrica (1977). Si fa la largo uso della crittografia su Internet ( HTTP vs HTTPS, Telent vs SSH). Nelle nostre analisi supporremo sempre che la crittografia sia perfetta , supponendo quindi che qualunque modello di attaccante non riesce a violare il crittosistema ( tutto il resto viene analizzato nelle peggiori condizioni → attaccante Dolev-Yao). Un crittosistema è costituito da una coppia di algortmi:

  • Ɛ per criptare producendo un crittotesto
  • Ɗ per decriptare producendo un testo in chiaro Ogni algoritmo ha arietà 2,ovvero prende in input 2 elementi (un testo e una chiave)
  • Data una chiave k e un testo m , questo viene codificato come Ɛ(m,k) = mk.
  • Data una chiave k' e un crittotesto mk , questo viene decodificato come Ɗ(mk,k') che produce m se precise condizioni legano k con k' (non necessariamente k=k ') Quindi l'associazione fra un testo in chiaro e un crittotesto dipende dallo specifico crittosistema e dalla chiave scelta. Il crittosistema va considerato come pubblico mentre le chiavi crittografiche vanno tipicamente mantenute segrete. Consideriamo: Ɛ(m,k) = mk Ɗ(mk,k)= m Ɗ(mk,k')= m' Avendo decodificato con 2 chiavi diverse k e k' se il crittosistema è debole m e m' saranno simili. Più è buono il sistema di cifratura più diversi saranno m e m'. Per decodificare correttamente un crittosistema perfetto (come lo abbiamo supposto) è necessario decodificare con la stessa chiave. Anche se una chiave è mantenuta segreta un attaccante ha sempre un modo basilare per tentare di indovinarla : provare random. Data k , vale sempre che la propobilità che un attaccante la indovini è 1/ 2|k|^ con k lunghezza della chiave,per questo motivo è preferibile lavorare sempre con chiavi più lunghe possibili. Un

potente. Esempio di RSA In rete Fissato un agente A (macchina, utente) munito di una coppia di chiavi simmetriche a lungo termine indicate con ka e ka-1^ :

  • ka resa nota a tutti, pertanto detta chiave pubblica di A
  • ka-1^ segreto di A, pertanto detta chiave privata di A Limiti Chi dice ad alice quale sia la vera chiave pubblica di Bob? Il problema della Certificazione: come associare correttamente una chiave pubblica al suo legittimo proprietario (ovvero al possessore della corrispettiva chiave privata). Per risolvere tale problema si usano appunto le certificazioni. Crittosistema sicuro Sia calcolato Ɛ(m,k) per ogni testo m e chiave k ; sia calcolato Ɗ ( Ɛ(m,k),k1) = n per ogni chiave k tale che k1 != k se il crittosistema è simmetrico, o k1 != k-1^ se il crittosistema è asimettrico; il crittosistema è sicuro se l'accesso a n non aumenti significativamente la probabilità di un attaccante di indovinare m o sue porzioni.

Hash crittografico Una funzione crittografica di hash trasforma dei dati di lunghezza arbitraria (un messaggio) in una stringa di dimensione fissa chiamata valore di hash, impronta del messaggio o somma di controllo, ma spesso anche con il termine inglese message digest. La funzione crittografica di hash ideale deve avere tre proprietà fondamentali:

  • deve essere estremamente semplice calcolare un hash da qualunque tipo di dato;
  • deve essere estremamente difficile o quasi impossibile risalire al testo che ha portato ad un dato hash;
  • deve essere estremamente improbabile che due messaggi differenti, anche se simili, abbiano lo stesso hash. Oltre a queste tre proprietà fondamentali c'è da aggiungere il cosiddetto "effetto valanga", ossia la minima modifica del messaggio deve portare ad un'alterazione radicale dell'impronta del messaggio. Funzioni con queste proprietà sono utilizzate come funzioni di hash in diversi campi, anche al di fuori di quello prettamente crittografico. Le applicazioni pratiche includono infatti i controlli sull'integrità dei dati mediante somme di controllo, le firme digitali semplici, l'autenticazione e varie applicazioni nella sicurezza informatica. Un hash può anche agire come una rappresentazione concisa del messaggio o del documento da cui è stato calcolato, permettendo un facile indicizzamento di file dati unici o duplicati. In diversi standard ed applicazioni le due funzioni crittografiche di hash più utilizzate sono MD5 ed SHA-1. Esempio di uso di Hash = CTSS + hashing Il CTSS visto prima per mantenere le password può essere potenziato con una funzione hash : il file delle password memorizza l'hash di ciascuna password. Quando l'utente inserisce la password si calcola l'hash su quella inserita e si confronta con quella memorizzata, se sono uguali allora viene autenticato. Salting Salt indica quel messaggio random aggiunto a uno password per proteggerla da attacchi dizionario prima che si applichi l'hash. Storicamente il messaggio era di 12 bit, oggi sono insuffiscenti. In particolare, Unix genera salt per ciascuna nuova password da memorizzare (mettendo il file delle password nel file /etc/passwd sul quale tutti possono leggere ma solo root può scrivere); viene usata la password per codificare una stringa di 0 insieme a salt mediante la password enctyption function crypt(3) basata su DES.