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


Security and privacy, Slide di Sistemi Informatici

Questo documento contiene una raccolta discorsiva delle slide offerte dal professore e degli appunti presi durante le lezioni. Spero possano aiutare.

Tipologia: Slide

2022/2023

In vendita dal 23/03/2024

giustinoross
giustinoross 🇮🇹

11 documenti

1 / 8

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SECURITY & PRIVACY – RIASSUNTO
ELEMENTI DI BASE
Una primaria differenza da sottolineare è quella tra un dato e un’informazione: il dato è semplicemente una
parola che, se non è contestualizzata, può non avere alcun valore. Un insieme di dati ben contestualizzati
costituisce un’informazione. L’informatica tratta la trasmissione delle informazioni tramite l’utilizzo di
macchine automatiche, i calcolatori, le quali mediano i vari rapporti sociali tra più persone. Un calcolatore è
composto dall’hardware, cioè le componenti fisiche del computer, dal software, cioè l’insieme dei
programmi, e dal firmware, cioè la parte di software direttamente inserita nell’hardware, e quindi
difficilmente modificabile. I dati vengono elaborati tramite degli algoritmi, cioè una successione di
operazioni attuate per risolvere un problema: nel caso di un programma, esso è il risultato di una codifica di
un algoritmo in un determinato linguaggio di programmazione. Un programma è composto dalla sintassi e
dalla semantica: il programma con errata sintassi non funzionerà, quello con errata semantica funzionerà in
maniera errata, cioè non risolverà il problema preposto. L’unità di misura delle informazioni digitali è il Bit,
che permette di codificare un’informazione usando un codice binario, cioè a due valori 0 e 1. Maggiori sono
le informazioni da rappresentare, maggiore è il numero di bit che bisogna utilizzare: se bisogna
rappresentare M=25 informazioni, bisognerà seguire la formula
2N
fin quando
2N M
. L’unità più utilizzata
è però il byte, composto da 8 bit (
28
). Di seguito i multipli del bit:
I sistemi di codifica maggiormente utilizzati sono lASCII standard, che utilizza 7 bit, l’ASCII esteso, che
utilizza un 8 bit, e l’UNICODE, che utilizza 16 bit. LASCII, per la codifica dei numeri interi, rappresenta i
numeri da 0 a 9 ognuno in un byte.
È presente la codifica decimale (a base 10), secondo la quale il valore di ogni cifra è dato dalla sua
posizione, e va alla fine sommato per ottenere la cifra finale: ad esempio
234=2102+3101+4100
. Vi
è, inoltre, la codifica binaria (a base 2), anch’essa basata su una notazione posizionale che, in base alla
posizione degli 0 e degli 1, li moltiplica per 2 elevato alle sue varie potenze decrescenti: ad esempio
10110=124+023+122+121+020=22
. Esiste anche la codifica ottale (a base 8), basata su 8 cifre
(da 0 a 7) e le varie potenze di 8: ad esempio,
1101=183+182+081+180=577
. Per evitare
problemi e capire quale base è utilizzata, si inserisce il pedice al valore binario di riferimento,
1101211018110110
. La codifica esadecimale (a base 16) considera 16 valori (0...9, A, B, C…), ad esempio
. È possibile effettuare una conversione dalla codifica decimale
alla codifica binaria (a base 2) dividendo il numero per 2 e considerando man mano il resto che si ottiene.
pf3
pf4
pf5
pf8

Anteprima parziale del testo

Scarica Security and privacy e più Slide in PDF di Sistemi Informatici solo su Docsity!

SECURITY & PRIVACY – RIASSUNTO

ELEMENTI DI BASE

Una primaria differenza da sottolineare è quella tra un dato e un’informazione: il dato è semplicemente una parola che, se non è contestualizzata, può non avere alcun valore. Un insieme di dati ben contestualizzati costituisce un’ informazione. L’informatica tratta la trasmissione delle informazioni tramite l’utilizzo di macchine automatiche, i calcolatori , le quali mediano i vari rapporti sociali tra più persone. Un calcolatore è composto dall’ hardware , cioè le componenti fisiche del computer, dal software , cioè l’insieme dei programmi, e dal firmware , cioè la parte di software direttamente inserita nell’hardware, e quindi difficilmente modificabile. I dati vengono elaborati tramite degli algoritmi , cioè una successione di operazioni attuate per risolvere un problema: nel caso di un programma , esso è il risultato di una codifica di un algoritmo in un determinato linguaggio di programmazione. Un programma è composto dalla sintassi e dalla semantica : il programma con errata sintassi non funzionerà, quello con errata semantica funzionerà in maniera errata, cioè non risolverà il problema preposto. L’unità di misura delle informazioni digitali è il Bit , che permette di codificare un’informazione usando un codice binario, cioè a due valori 0 e 1. Maggiori sono le informazioni da rappresentare, maggiore è il numero di bit che bisogna utilizzare: se bisogna

rappresentare M=25 informazioni, bisognerà seguire la formula 2 N^ fin quando 2 N^ ≥ M. L’unità più utilizzata

è però il byte , composto da 8 bit ( 28 ). Di seguito i multipli del bit:

I sistemi di codifica maggiormente utilizzati sono l’ ASCII standard , che utilizza 7 bit, l’ ASCII esteso , che utilizza un 8 bit, e l’ UNICODE , che utilizza 16 bit. L’ASCII, per la codifica dei numeri interi, rappresenta i numeri da 0 a 9 ognuno in un byte. È presente la codifica decimale (a base 10) , secondo la quale il valore di ogni cifra è dato dalla sua

posizione, e va alla fine sommato per ottenere la cifra finale: ad esempio 234 = 2 ∗ 102 + 3 ∗ 101 + 4 ∗ 100. Vi

è, inoltre, la codifica binaria (a base 2) , anch’essa basata su una notazione posizionale che, in base alla posizione degli 0 e degli 1, li moltiplica per 2 elevato alle sue varie potenze decrescenti: ad esempio

4

3

2

1

0

= 22. Esiste anche la^ codifica ottale (a base 8) , basata su 8 cifre

(da 0 a 7) e le varie potenze di 8: ad esempio, 1101 = 1 ∗ 83 + 1 ∗ 82 + 0 ∗ 81 + 1 ∗ 80 = 577. Per evitare

problemi e capire quale base è utilizzata, si inserisce il pedice al valore binario di riferimento,

11012 11018 110110. La codifica esadecimale (a base 16) considera 16 valori (0...9, A, B, C…), ad esempio

C 3 B 5 = 12 ∗ 16

3

2

1

(^0). È possibile effettuare una conversione dalla codifica decimale alla codifica binaria (a base 2) dividendo il numero per 2 e considerando man mano il resto che si ottiene.

Ogni tipo di file digitalizzato diventa una sequenza di bit, che costituisce quello che viene chiamato un file , ognuno con una sua estensione, cioè un’informazione sul tipo di file che si ha. Il campo è un insieme di byte che serve per codificare una singola informazione, che può essere numerica, alfanumerica, un’immagine o un suono. Il record , invece, è un insieme di campi, e generano un’informazione complessa: ad esempio, le schede di registrazione ai siti web richiedono che siano compilati vari tipi di campi. I file possono essere distinti in file strutturati se composti da più record o in file non strutturati , nel caso in cui sia contenuta solo una sequenza di caratteri. Inoltre i file possono essere composti da record a lunghezza costante o record a lunghezza variabile : per quelli a lunghezza variabile si usa & come segnale di inizio e fine record, e # per distinguere ogni campo dal precedente. Per accedere a questi tipi di file sono presenti vari tipi di accessi:

  • accesso sequenziale : si legge il record dall’inizio alla fine (non è molto comodo perché la ricerca viene effettuata ogni volta dall’inizio alla fine);
  • accesso diretto : il punto d’inizio di un record viene chiamato indirizzo. Essendo un file una serie di byte, l’indirizzo del byte sarà dato dalla sua posizione nella sequenza (0 il primo byte, 1 il secondo byte, e così via). Allo stesso modo, l’indirizzo di un campo sarà dato dalla posizione del primo byte del campo, e l’indirizzo di un record sarà dalla posizione del primo campo del record. Per accedere all’indirizzo di un record in n-esima posizione è necessario conoscere la posizione del byte che si

trova in posizione lr ∗( n −^1 ), dove lr è la lunghezza del record e n è la posizione del record nel file

(questo tipo di accesso non è fattibile nei record a lunghezza variabile, non essendo lr un valore

fisso).

  • accesso con chiave : è un accesso veloce che mantiene le informazioni sugli indirizzi dei record in un campo specifico della tabella, chiamato campo chiave. Una volta fatto questo si crea un file a parte, chiamato file delle chiavi , in cui è presente un record a lunghezza costante formato da due campi: uno che contiene tutti i valori dei campi chiave, l’altro che contiene l’indirizzo dei record all’interno del file. Nel caso dell’accesso con chiave, è utile stabilire un metodo di ricerca per risalire al record che si sta cercando. La ricerca sequenziale è quella più semplice da attuare, che riguarda la lettura sequenziale dei record fin quando non si trova il valore desiderato (metodo che non ha vantaggi).

La ricerca binaria , invece, è più utile, perché si cerca il valore k che si sta cercando, considerando il valore

medio della tabella, chiamato k^ medio :

- se k^ medio = k , abbiamo trovato il valore che stavamo cercando;

- se k^ <^ kmedio , il valore che cerchiamo sarà nella prima parte della tabella;

- se k^ >^ kmedio , il valore che cerchiamo sarà nella seconda parte della tabella.

Per quanto riguarda la codifica delle immagini , si divide l’immagine su una griglia, in cui ogni quadratino è un pixel , che avrà valore 0 se il pixel è bianco e 1 se il pixel è nero. L’estensione del file ci dice da quale quadratino partire per la codifica, ma tendenzialmente si parte dal quadratino in basso a sinistra. Per la codifica dei suoni , si considera un’onda che descrive la variazione di pressione dell’aria, ponendo sull’asse

  • veloce , a prescindere della quantità di file di input;
  • deterministica , perché allo stesso file di input corrisponderà sempre la stessa stringa;
  • a senso unico , dalla stringa non si può risalire al file di input;
  • unica , non è possibile ritrovare una stringa per due distinti file di input;
  • lunghezza costante , indipendentemente dalla lunghezza dei file di output. L’ ingegneria sociale è lo studio del comportamento di un utente per capire le sue debolezze e vulnerabilità, il tutto orientato a compiere delle truffe: è noto il caso di Edward Snowden , system administrator dell’NSA che tramite l’attività di ingegneria sociale ha reso noti dei dati privati, essendo successivamente accusato di spionaggio. HARDWARE E SOFTWARE La macchina di Von Neumann è la struttura che seguono i moderni elaboratori, che sono composti da memoria principale , processore , memoria secondaria e dispositivi i/o. La memoria principale e il processore costituiscono la parte fondamentale della macchina, chiamata unità centrale. Tutto l’elaboratore è contenuto in un case, utile per raffreddare le componenti dell’elaboratore, che contiene l’ alimentatore , la scheda madre , che contiene dei bus nei quali sono presenti dei chip s, che hanno il compito di mettere in comunicazione le varie componenti del pc. La memoria principale è la RAM , concepita come una sequenza di celle in cui si immagazzinano dati: la RAM è. Però, una memoria volatile, perché si resetta ogni qual volta il pc viene spento. La CPU è la componente che elabora le informazioni contenute nella RAM, e lo fa tramite i programmi contenuti nella RAM stessa. La memoria secondaria è una memoria più lenta e più grande, che contiene tutti i programmi e i file caricati sul pc: nel momento in cui si avvia un programma, questo viene preso dall’hard disk e trasportato sulla RAM, generando il caricamento. La proprietà più importante è l’ astrazione delle macchine, cioè la possibilità di gestire queste componenti meccaniche tramite l’utilizzo di software , che creano delle macchine virtuali : esse sono organizzate a cipolla, cioè più ci si allontana dall’hardware, più aumenta il livello di astrazione. Il vantaggio è che si può generare un linguaggio macchina generico da applicare a sistemi di ogni tipo, modificandone alcuni aspetti per il linguaggio macchina corrispondente. Ogni pc ha un software di base che dispone di un linguaggio comandi , i quali permettono di utilizzare una specifica componente fisica (es. il comando “print” fa si che la stampante si attivi). Il sistema operativo ha il compito di utilizzare efficientemente le componenti varie del pc. Nel momento in cui si avvia, si entra nella fase di bootstrap , in cui si inizializza l’elaboratore e si preparano le sue eventuali periferiche. Questa componente è inutilizzata la maggior parte del tempo, ma si sveglia quando si presentano determinati eventi: eventi hardware , segnali inviati dai controller delle componenti hardware, ed eventi software , che possono essere accidentali , quando un programma in esecuzione incontra un errore, o volontari quando si chiede al sistema di eseguire operazioni delicate. Il modo per capire se l’elaboratore sta agendo per conto dell’utente o del sistema operativo è il bit di modalità b : se b=0 si è in modalità utente, mentre se b=1 si sta agendo per conto del kernel (so). Il processore , invece, ha il compito di gestire i processi, cioè la corretta esecuzione dei programmi aperti: bisogna distinguere i sistemi monotasking e quelli multitasking. I sistemi monotasking sono quelli che permettono di eseguire un programma alla volta, quelli multitasking riescono a gestire più programmi nello stesso momento, e per questo motivo ogni processore può attraversare diversi stati: pronto , in esecuzione , in attesa (nel caso in cui si aspetti un evento esterno). I processi possono essere divisi per tipologia progettuale : ci sono processi compute bond , che effettuano lunghe computazioni matematiche, e processi i/o bound , che richiedono input e output frequenti con l’utente. Essi possono essere anche diversi per esigenza elaborativa : modello a batch , pensati per processi molto lunghi, modello interattivo , per la gestione di programmi i/o con multi utenze, e il modello real-time , in cui i programmi devono essere eseguiti immediatamente. Il PCBT ( Process Control Block Table ) è una parte riservata della memoria in cui vengono registrate tutte le informazioni sui processi attivi, dai file utilizzati allo stato del processo. Ogni qual volta si cambia processo e se ne passa da uno all’altro avviene un insieme di operazioni chiamato context switch : quando il processo P1 viene

sospeso e si sceglie il processo P2, il processore è svuotato dei registri legati a P1 e vengono caricati i registri del P2, riprendendo il processo da dove era stato sospeso. Le politiche di scheduling del processore sono quelle strategie scelte nel cambio di processore, che mirano a massimizzare il grado di utilizzo del processore e a velocizzare i processi. Esistono due tipi di scheduling: lo scheduling a breve e a lungo termine. Lo scheduling a breve termine si attua quando si ha un processo pronto da mandare in esecuzione, e si divide in due famiglie: politiche non-preemptive , per cui un processo si può sostituire solo se si ferma volontariamente, o politiche preemptive , per cui i processi si scambiano indipendentemente da tutto. Di seguito le politiche di scheduling a breve termine più utilizzate:

  • la first-come first-served è una politica non-preemptive per cui i processi sono eseguiti nell’ordine in cui sono presentati dal sistema operativo, e quelli successivi si mettono in coda a quelli già presenti;
  • la shortest-job-first è una politica non-preemptive, in cui la coda dei processi tratta prima il processo più veloce da terminare per passare ai successivi;
  • la shortest remaining time first è una politica preemptive in cui si sceglie il processo più breve, ma questo viene interrotto se sopraggiunge un processo ancor più breve da portare a termine;
  • la selezione con priorità , che permette all’utente di individuare processi con alta priorità, che quindi vengono eseguiti prima. Questa selezione può adottare sia una politica preemptive, nel caso in cui un processo P2 di più alta priorità diventi pronto prima del termine del processo P1, adottando un context switch, oppure può adottare una politica non-preemptive, per cui il processo iniziato termina anche se sono pronti processi con priorità maggiore.
  • la round robin è una politica preemptive che si basa sul quanto di tempo : ad ogni processo è assegnato un quanto di tempo, se questo non si conclude, dovrà abbandonare lo stato di esecuzione. Tutte queste politiche possono essere divise tra le politiche eque , che garantiscono che ogni processo selezionato sarà prima o poi eseguito, e le politiche non-eque , in cui alcuni processi potrebbero non essere mai eseguiti a causa della potenziale aggiunta di altri processi. Esiste anche lo scheduling a lungo termine , che tratta l’esecuzione di più processi contemporaneamente: per evitare tempi molto lunghi nelle code di processi da eseguire, si crea un’altra coda, chiamata anticamera , all’interno della quale sono posti i processi creati, che man mano saranno inseriti nella coda dei processi pronti. In questo caso è suggerita una politica mista che mescola la round robin e la politica di priorità, data ai processi i/o bound, e nel caso in cui sia presente un processo compute bond in esecuzione, viene applicato un context switch. Quando si eseguono più processi contemporaneamente, c’è rischio di conflitti , la cui unica soluzione è quella dei semafori che regolano l’accesso ad una risorsa condivisa: se la luce è verde, è permesso l’accesso alla risorsa, se il semaforo è rosso, il processo viene messo in attesa. Serve introdurre la bipartizione della memoria principale in memoria reale e memoria virtuale : la prima valuta la suddivisione dei processi nella memoria principale, la seconda considera una visione astratta della memoria principale, che ne considera le potenzialità. Partiamo con la gestione della memoria reale. In un sistema monotasking la memoria principale divide i due tipi di processi (del so e dell’utente) in due sezioni contigue: da 0 a X si hanno i processi del so, da X+1 a N si hanno i processi dell’utente (X è chiamato indirizzo fence ).

collegano i computer di uno stesso edificio, di reti MAN quando hanno dimensioni intermedie, e collegano i computer di una stessa area urbana, e le reti WAN quando esse sono estese tra nazioni e coprono grandi distanze. Questi tipi di rete spesso sono collegate tra loro quando le comunicazioni viaggiano in tutto il mondo. La rete Internet è definita come la rete delle reti, alla quale sono collegati governi, università ed aziende da tutto il mondo: essa sfrutta i protocolli TCP/IP , che impacchettano le informazioni e le inviano per pezzi. Internet nasce grazie al progetto ARPANET nel 1969, che aveva come obiettivo iniziale quello di collegare due università. I sistemi terminali possono collegarsi ad Internet tramite gli Internet service provider (ISP) : essi possono essere di livello 1, 2 e 3 se coprono reti internazionali, nazionali o locali. Ogni rete comunica dati grazie ai protocolli , che definiscono l’ordine e il formato in cui essi sono inviati: il vantaggio è che gli stessi livelli in computer diversi comunicano tramite lo stesso protocollo. I protocolli standard sono quelli riconosciuti da tutti, ma sono presenti anche quelli “de facto”, cioè quelli non riconosciuti ma largamente utilizzati nella pratica. CONTROLLO DEGLI ACCESSI Il controllo degli accessi ha l’obiettivo di controllare chi accede ai dati e alle risorse, autenticando di fatto gli utenti che vi si approcciano. Nello studio del controllo sugli accessi possiamo dividere le politiche dai meccanismi: le politiche sono delle norme generali di controllo, mentre i meccanismi indicano in senso pratico come applicare il controllo. Tali meccanismi non devono essere bypassabili o alterabili , scongiurando due scenari possibili: il covert channel , cioè la creazione di canali occulti utilizzati per trasmettere i dati, bypassando i meccanismi di controllo, e lo storage channel , cioè la presenza di dati residui sui dispositivi di memorizzazione che possano essere intercettati da terzi. Esistono tre tipi di covert channel, tutti e tre hanno come caratteristiche la furtività , la capacità di trasmissione e l’ indistinguibilità , e sono:

  • covert timing channel , sono canali nascosti che traggono informazioni dal cambiamento del tempo di risposta di una risorsa;
  • covert storage channel , sono canali nascosti che sfruttano un processore che svela la posizione di una risorsa ogni qual volta essa viene archiviata;
  • covert behavioural channel , sono canali che sfruttano la suddivisione dei messaggi in pacchetti più piccoli. Quelli che sfruttano il protocollo ICMP, che si occupa di fornire delle informazioni su errori di comunicazione TCP/IP, sono quelli più utilizzati. Per sviluppare il controllo degli accessi è necessario un modello che definisca le azioni da compiere: questo modello deve essere completo e consistente , cioè non deve contenere contraddizioni. Il modello utilizzato è quello delle matrici di accesso , secondo cui lo stato del sistema è definito da tre elementi: il soggetto S , l’oggetto O e la matrice d’accesso A[s,o] , che modifica i privilegi del soggetto sull’oggetto. Elencare tutti i soggetti e tutti gli oggetti, anche quelli senza autorizzazioni comporterebbe uno spreco di memoria, per cui ci sono tre modi di memorizzare queste informazioni: le tabelle di autorizzazione , in cui sono riportate le matrici non nulle, l’ access control list , che ci dice su quali e quanti oggetti il soggetto ha dei privilegi, e la capability list , che ci dice per ogni oggetto chi ha dei privilegi tra i soggetti. MODELLI DI RETE Il modello ISO-OSI è un modello di rete flessibile che definisce la comunicazione fra sistemi differenti senza richiedere cambiamenti all’hardware o al software: nel momento in cui viene inviato qualsiasi tipo di messaggio, si attivano dei nodi intermedi, chiamati strati. Nella comunicazione peer to peer ogni nodo comunica con l’altro grazie a questi strati: lo strato n del primo nodo comunica con lo strato n del secondo nodo. Ogni strato ha una sua interfaccia , con la quale si comunica l’informazione e i servizi che uno strato mette a disposizione del suo strato superiore. Gli strati sono 7, e possono essere raggruppati in tre gruppi:
  • strati 1,2 e 3 ( fisico , collegamento , rete ), le cui funzionalità hanno a che fare con l’invio del messaggio
  • strati 5,6 e 7 ( sessione , presentazione , applicazione ), che permettono l’interoperabilità tra sistemi operativi diversi.
  • strato 4 ( trasporto ), di collegamento tra i due gruppi precedenti. Nel passaggio da uno strato all’altro viene aggiunta un’ intestazione che descrive il contenuto del messaggio inviato. L’ incapsulamento è il processo che si crea quando un pacchetto di dati (intestazione e dati) passa da uno strato superiore ad uno inferiore, costituendo di fatto un unico pacchetto di dati, al quale poi sarà aggiunta un’altra intestazione, e così via. Lo strato fisico sarà quello che convertirà la sequenza di bit che descrive il messaggio in impulsi elettrici, i quali subiranno l’operazione inversa una volta arrivati al destinatario: in base al mezzo trasmissivo si può definire la velocità con cui si possono spedire questi bit. Lo strato di collegamento si occupa dell’invio corretto dei dati da un nodo all’altro: l’informazione è divisa in pacchetti (framing) e viene aggiunta un’intestazione al pacchetto con l’indirizzo a cui mandare questi file, controllando il flusso di bit in fase di invio per evitare di sovraccaricare il ricevente. Lo strato di collegamento deve scongiurare eventuali errori e deve effettuare un controllo sugli accessi, nel caso in cui si tratti di una rete multipunto: in quest’ultimo caso, l’indirizzo del mittente e del destinatario saranno diversi ad ogni passaggio (da A a B, da B a C, ecc.). Lo strato di rete è quello che convoglia il pacchetto di dati inviato in una interrete grazia all’ausilio di uno o più router: questo strato non c’è se la comunicazione del messaggio avviene sulla stessa rete. In messaggi convogliati su reti diverse non si usa più un indirizzamento fisico, ma un indirizzamento logico, fatto proprio grazie alla presenza del router che instrada il messaggio. Lo stato di trasporto si occupa della consegna del file al destinatario, quindi controlla gli errori e il flusso per un servizio affidabile: il passaggio di informazioni può essere con o senza connessione, dove nel primo caso i pacchetti di dati sono inviati l’uno separatamente dall’altro. Lo stato di sessione ha il compito di sincronizzare mittente e destinatario e di mantenere la sessione di scambio attiva. Lo stato di presentazione è quella che si occupa della semantica e della sintassi dei dati in arrivo: i dati sono tradotti in stringhe tramite un processo di decrittografia e, successivamente, di compressione. Lo strato delle applicazioni si occupa di utilizzare i dati sfruttando un’interfaccia utente, un programma specifico. I protocolli TCP/IP si svilupparono quando il modello OSI non era ancora diventato uno standard, per cui i 4 strati che li compongono sono diversi: host , IP (strato di rete), TCP/UDP (strato di trasporto senza garanzie) e l’ applicazione. BIOMETRIA La biometria è una tecnologia in grande sviluppo negli ultimi anni, e gran parte dei servizi dedicati ai cittadini saranno caratterizzati dal suo implemento. Essa ha varie classificazioni: cooperativo/non cooperativo , evidente/velato , abituato/non abituato , frequentato/non frequentato , pubblico/privato , aperto/chiuso. L’ impronta digitale è unica per ogni persona: essa è composta da caratteristiche globali , come archi , cerchi e spire , e dalle minuzie , cioè tratti specifici da ricercare nelle caratteristiche globali. Per riprodurre un’impronta si può utilizzare il metodo di Matsumoto , con il quale si applica una pressione su un pezzo di plastica immerso in acqua calda, sul quale si versa un liquido resinoso che, dopo pochi minuti, produrrà il calco del dito. Il volto è una traccia unica, ed è studiabile tramite tecniche di analisi in 2D e 3D, così come possono essere analizzati la retina e l’ iride per riconoscere un individuo sfruttando la loro mappa vascolare. Le tracce comportamentali fanno riferimento a movimenti, camminata, firma, battiture tasti che sono singolari e permettono di risalire ad un’identità.