• Non ci sono risultati.

Crime Scene Reporting in ambiente Android

N/A
N/A
Protected

Academic year: 2021

Condividi "Crime Scene Reporting in ambiente Android"

Copied!
113
0
0

Testo completo

(1)

Indice

Capitolo  1  ...  4  

1  INTRODUZIONE  ...  4  

Capitolo  2  ...  7  

2  COMPUTER  FORENSICS  ...  7  

2.1  Che  cos'è  la  Computer  Forensics  ...  7  

2.2  Prova  Digitale  ...  9  

2.3  Fasi  Della  Computer  Forensics  ...  11  

2.3.1  Identificazione  ...  11   2.3.2  Preservazione  ...  12   2.3.3  Acquisizione  ...  13   2.3.3.1  Sequestro  ...  13   2.3.3.2  Duplicazione  ...  15   2.3.4  Analisi  ...  16   2.3.5  Documentazione  ...  18  

2.4  Standard  ISO  e  panorama  giuridico  italiano  in  tema  di  investigazioni  digitali  ...  21  

2.5  Integrità  del  reperto  ...  24  

2.5.1  Hashing  ...  25  

2.5.2  MD5  e  SHA-­‐1  ...  27  

2.6  Autenticazione  di  un’immagine  digitale  ...  30  

2.6.1  Metodi  di  autenticazione  basati  sulla  crittografia  convenzionale  ...  31  

2.6.2  Watermarking  ...  33  

2.6.2.1  Watermarking  fragile  ...  38  

2.6.2.2  Watermarking  robusto  ...  40  

2.6.3  Autenticazione  di  immagini  tramite  firma  digitale  ...  42  

(2)

Capitolo  3  ...  52  

3  Progetto  di  un’applicazione  per  la  Computer  Forensics  ...  52  

3.1  Obiettivi  ...  52  

3.2  Analisi  ...  55  

3.2.1  Analisi  dei  requisiti  funzionali  ...  55  

3.2.2  Analisi  dei  requisiti  non  funzionali  ...  56  

3.2.3  Use  Case  Diagram:  Generale  ...  57  

3.2.4  Use  Case  Diagram:  Acquisizione  di  immagine  ...  58  

3.2.5  Use  Case  Diagram  Acquisizione  di  Video  ...  59  

3.3  Progettazione  ...  59  

3.3.1  Il  database  e  la  struttura  dei  dati  ...  59  

3.3.1.1  Tabella  Casi  ...  60   3.3.1.2  Tabella  Label  ...  61   3.3.1.3   Tabella  Markers  ...  62   3.3.2  L'applicazione  Mobile  ...  63   3.4  Tecnologie  utilizzate  ...  67   3.4.1  Android  ...  67  

3.4.2  Architettura  di  Android  ...  68  

3.4.3  Struttura  a  componenti  delle  applicazioni  ...  69  

3.4.4  Activity  ...  70  

3.4.5  Intent  e  intent  filter  ...  71  

3.4.6  Broadcast  intent  receiver  ...  72  

3.4.7  Service  ...  72  

3.4.8  Content  Provider  ...  73  

3.4.9  Android  SDK  (Software  development  kit)  ...  73  

3.4.10  OpenCV  ...  74  

3.4.11  SQLite  ...  75  

3.4.12  JNI  (JAVA  NATIVE  INTERFACE)  ...  76  

(3)

3.4.14  Nyartoolkit  ...  78   3.4.15  Metasequoia  4.0  ...  80   3.5  Implementazione  ...  81   3.5.1  TesiDB  ...  81   3.5.2  Android  Manifest  ...  83   3.5.3  MainActivity  ...  85   3.5.4  DataCaseActivity  ...  87   3.5.5  OpenCaseActivity  ...  89   3.5.6  ListElementActivity  ...  90   3.5.7  CameraActivity  ...  92   3.5.7.1  Modalità  singola  ...  93   3.5.7.2  Modalità  sequenziale  ...  94   3.5.8  GalleryActivity  ...  96   3.5.9  PreviewActivity  ...  97   3.5.10  MarkerPlanActivity  ...  99   3.6  Testing  ...  103   Capitolo  4  ...  105  

4  Overview  dell’applicazione  sviluppata  ...  105  

4.1  User  Story  1:  Creazione  Caso  ...  105  

4.2  User  Story  2:  Effettuare  acquisizione  singola  ed  etichettatura  ...  106  

4.3  User  Story  3:  Effettuare  acquisizione  automatica  ...  108  

Capitolo  5  ...  109  

5  Conclusioni  e  sviluppi  futuri  ...  109  

(4)

Capitolo 1

1 INTRODUZIONE

Intendo la parola prova non nel senso degli avvocati, che sommano due mezze prove per ottenerne una intera, ma nel senso dei matematici, dove una mezza prova vale zero, e viene richiesto per una prova che ogni dubbio si dimostri impossibile.”

Carl Friedrich Gauss

Le possibilità investigative offerte dai progressi della tecnologia e dall’evoluzione scientifica, ed oggi a disposizione delle parti nel processo, erano impensabili solo venti o trent’anni fa quando ancora la scienza non aveva fatto capolino nella giurisprudenza e non si conosceva il concetto di prova scientifica.

La concezione moderna dell’investigazione scientifica è oggi incentrata sulle risultanze della prova scientifica, ossia “quella prova che, partendo da un fatto dimostrato, utilizza una legge tratta dalla scienza per accertare l’esistenza di un ulteriore fatto da provare”.

(5)

Basti pensare agli accertamenti sul DNA, alle moderne tecniche di riconoscimento della voce, all’analisi tossicologica dei capelli, all’utilizzo del computer per la ricostruzione dei più svariati avvenimenti, per capire come la scienza, attraverso la prova scientifica, sia diventata oggi uno strumento indispensabile per la legge.

Non v’è dubbio infatti che la prova scientifica abbia assunto un rilievo di grande importanza nell’ambito del processo e l’accresciuto peso probatorio delle indagini scientifiche va di pari passo con l’evoluzione dei vari settori della scienza applicati all’investigazione che consentono, con tecniche sempre più sofisticate, di ridurre l’area del ragionevole dubbio, e di passare dal concetto giuridico di probabilità a quel grado di certezza necessario ai fini dell’esistenza della prova.

Oggetto di studio di questa tesi è la Computer Forensics, una delle tecniche più sofisticate che la scienza mette a disposizione della giurisprudenza, intesa come individuazione, repertamento, estrazione ed analisi delle evidenze digitali da potenziali fonti di prova, secondo metodologie ben definite e tecniche standardizzate, con lo scopo di fornire ad una corte giudiziaria informazioni aventi valore probatorio.

Più nello specifico il presente lavoro di tesi si prefigge la risoluzione di problematiche legate alle prime due fasi della Computer Forensics attraverso lo sviluppo di un'applicazione mobile che permetta di effettuare le operazioni di individuazione e repertamento nel rispetto delle metodologie standard.

La necessità di tale sviluppo, è stata individuata e proposta dagli esperti di Computer Forensics appartenenti all'IPLAB (Image Processing Laboratory dell'università di Catania) che nel corso della loro esperienza hanno rilevato alcune criticità intrinseche alle tradizionali metodologie adottate durante le fasi di individuazione e repertamento delle

(6)

prove effettuate durante i sopralluoghi sulle scene del crimine, ed in particolare è emersa la necessità di effettuare l'individuazione e il repertamento di prove evitando di contaminare la scena del crimine, in quanto la contaminazione di alcune fonti di prove potrebbe rendere inutile tutto il lavoro di Computer Forensics compromettendo il castello probatorio creando problemi con riferimento alla credibilità dell'intero caso.

L'idea alla base dello sviluppo è stata, quindi, quella di creare un nuovo strumento tecnologico che permetta agli operatori delle forze dell'ordine di effettuare sopralluoghi non invasivi e validi al fine del prosieguo dell'indagine.

Questo elaborato organizzato in cinque capitoli è così strutturato:

Nel capitolo 2 verrà introdotto il concetto di Computer Forensics, delle fasi che la compongono, di come il panorama giuridico internazionale ed italiano le regolarizza e delle problematiche che ognuna di queste fasi può avere. Nello stesso capitolo verranno quindi proposte le possibili soluzioni al trattamento di dati digitali e nello specifico a come garantire l'integrità di queste ultime attraverso tecniche di crittografia e di steganografia. Nel capitolo 3 verrà, innanzitutto, esplicato il progetto oggetto della tesi; in particolare verranno presentati gli obiettivi e i requisiti che l'applicativo si prefigge di garantire. Successivamente verranno presentate le tecnologie necessarie per lo sviluppo del progetto e l'implementazione dell'applicativo. Nel capitolo 4 verrà data una presentazione dell'applicazione realizzata, attraverso users story per concludere con il capitolo 5 in cui si discutono i possibili sviluppi futuri del progetto.

(7)

Capitolo 2

2 COMPUTER FORENSICS

In questo capitolo verrà introdotto il concetto di Computer Forensics, su come si colloca nel mondo della Digital Forensics e di come viene regolarizzata in ambito giuridico. In particolar modo verranno descritte le fasi che racchiudono l'essenza della Computer Forensics, il concetto di prova digitale e le tecniche utilizzate per il loro trattamento ai fini investigativi.

2.1 Che cos'è la Computer Forensics

Oramai da qualche anno nelle aule di tribunale viene sempre più utilizzata l'espressione “Digital Forensics”.

Tuttavia, sebbene la materia sia in continuo sviluppo, è difficile darne una semplice ed univoca definizione. A tal proposito, infatti, esistono opinioni poco concordanti, se non per certi versi del tutto opposte che hanno portato alla mancata standardizzazione di tale definizione.

Senza dubbio si ha a che fare con una nuova specializzazione dell'attività di polizia scientifica, che nasce negli anni 80 nei laboratori scientifici dell’FBI, al pari delle ormai note attività investigative come la balistica, la genetica e l'entomologia applicata, ed entra

(8)

in gioco nel momento in cui le evidenze dell'azione criminosa sono reperibili “nel mondo digitale” [1].

In termini informatici la Computer Forensics è considerata una sotto branca della “Digital Forensics” (Fig. 2.1), una macro disciplina a cui appartengono le seguenti sotto-categorie:

• Computer Forensics, la cui attività di verifica ha per oggetto i supporti di memorizzazione dei dati, memorie di massa, storage rimovibili, personal computer, ecc.

• Mobile Forensics, dove i reperti d’indagine sono costituiti da telefoni cellulari, SIM card e smartphone;

• Database Forensics, che si concentra sulle tecniche e gli strumenti per la verifica e l’analisi dei database;

• Network Forensics, che ha come ambito la verifica delle attività svolte in reti di comunicazione pubbliche e private;

• Cloud Forensics, l’ultima nata in ordine di tempo e che, partendo dalle tradizionali metodiche della Digital Forensics, cerca di adattarsi alle novità investigative introdotte dal nuovo paradigma di erogazione di servizi informatici denominato Cloud Computing.

(9)

Fig. 2.1 Digital Forensics e sue specializzazioni.

Una possibile definizione di “Computer Forensics”, sufficientemente universale, tra le tante esistenti in letteratura, potrebbe essere la seguente:

“La Computer Forensics è la scienza che si occupa della preservazione, dell'identificazione, della documentazione, dello studio, delle informazioni contenute nei computer, o nei sistemi informativi in generale, al fine di evidenziare l'esistenza di prove utili allo svolgimento dell'attività investigativa” [2].

Tenendo come riferimento questa definizione, nei prossimi paragrafi verrà introdotto il concetto di “prova” sia in senso lato del termine che nello specifico della prova digitale e di come essa debba essere trattata affinché possa avere valenza in ambito giuridico.

2.2 Prova Digitale

Dal punto di vista della terminologia giuridica corrente, con il termine “prova” si indica non tanto il procedimento dimostrativo dell’esistenza di un fatto, quanto il suo risultato finale, idoneo a rappresentare al giudicante l’esistenza (o l’inesistenza) di quei fatti che le

(10)

parti affermano (o negano) a fondamento del diritto azionato ovvero delle eccezioni sollevate, concorrendo così a formare il convincimento del Giudice in base alle modalità con le quali si sono svolti avvenimenti accaduti in passato e che egli non ha percepito personalmente [3].

Più precisamente, con il termine prova possono designarsi due concetti ontologicamente distinti: da un lato, esso viene utilizzato per indicare il giudizio di veridicità ovvero falsità dei fatti (o meglio delle asserzioni) dedotti dalle parti; dall’altro, esso identifica il risultato conclusivo di tale giudizio (la c.d. prova raggiunta), cioè il probatum sul quale il Giudice deve fondare la propria decisione.

La funzione principale della prova è, dunque, quella di permettere al giudice la corretta ricostruzione e dimostrazione dei fatti affermati dalle parti nel corso del processo.

La prova informatica, caratterizzata dalle qualità proprie del dato informatico, ovvero l’immaterialità e la fragilità, assolve alla medesima funzione di tutte le altre prove anche se, per le sue caratteristiche intrinseche, presenta problematiche particolarmente delicate e complesse. In particolare, la facilità con cui tali informazioni possono essere manipolate, alterate o distrutte rende necessarie specifiche procedure per la loro acquisizione analisi e conservazione.

Obiettivo della Computer Forensics, nonché condicio sine qua non di ogni perizia in materia di investigazioni informatiche, ai fini della piena validità della prova in giudizio, sono la verificabilità, la trasparenza e la ripetibilità delle procedure attuate durante l’intera indagine informatica.

Definito il concetto di prova digitale, nei prossimi paragrafi verranno analizzate le principali fasi della Computer Forensics che si occupano, appunto, di individuare ed

(11)

elaborare le prove digitali avendo come fine ultimo quello di mantenere la validità delle stesse in giudizio.

2.3 Fasi Della Computer Forensics

Dalla definizione data precedentemente è possibile estrapolare quattro fasi principali che racchiudono l'essenza della Computer Forensics (Fig. 2.2). In questo paragrafo e nei sotto paragrafi successivi, verranno presentate e descritte le singole fasi e le linee guida a cui bisogna attenersi, a livello tecnico, per il corretto flusso di lavoro e per garantire, come detto precedentemente, l'ammissione in sede processuale delle prove raccolte.

2.3.1 Identificazione

Per identificazione si intende l'individuazione singola dei reperti da analizzare, attraverso acquisizioni di immagini e descrizioni analitiche. Essa è la prima fase del processo di

(12)

investigazione nonché la più delicata che un “digital forensic expert”1 deve compiere prima di iniziare la sua investigazione.

In questa fase vengono individuate anche le caratteristiche tecniche del reperto e viene tracciato, quando tecnicamente possibile, un profilo digitale dell'utilizzatore al fine di individuarne le potenzialità tecniche. Tale profilo risulta poi indispensabile per consentire una metodologia di analisi che non tralasci nessun aspetto significativo ai fini delle evidenze digitali ricercate.

La difficoltà sta nel capire dove si trovano i dati che si stanno cercando, utili ai fini investigativi. Non è infatti difficile rendersi conto che, in un’era in cui si è circondati dalla tecnologia, le apparecchiature candidate a contenere le informazioni ricercate sono molteplici rischiando di sottoporre ad analisi dispositivi di nessun rilievo ai fini dell'indagine. Una prova digitale può essere infatti contenuta in diverse tipologie di supporti, come hard disk, media rimovibili, smartphone oppure un log file su un server. Trovare il dato informatico è quindi una condizione necessaria per l'inizio dell'attività investigativa.

2.3.2 Preservazione

Una volta identificata la prova, il digital forensics expert dovrà garantire il massimo impegno per conservarne l'integrità. La prova va infatti preservata, tecnicamente, attraverso l'utilizzo di dispositivi hardware/software write blocker2, attraverso la sua duplicazione ed attraverso l'analisi delle sole copie forensi in modo tale da non alterare ne danneggiare il dato originale dopo l'acquisizione [4].

1 Digital forensics expert: identifica la figura professionale che presta la sua opera nell’ambito dei reati informatici o della computer crime.

2 write blocker: dispositivo utilizzato per prevenire eventuali scritture su hard disk o più in genericamente dispositivi di memorie di massa.

(13)

Un'ulteriore forma di preservazione si ottiene documentando le attività svolte sulle prove, sulle copie che rappresentano anch'esse prove, e sui passaggi di mano in mano. Tale attività si concretizza nella chain of custody3, documento atto a fornire informazioni su come, quando e da chi la prova è stata acquisita e custodita.

2.3.3 Acquisizione

Una volta identificati i possibili supporti contenenti le informazioni rilevanti all’indagine, bisogna procedere all'acquisizione del reperto.

L'acquisizione è la fase più delicata tra quelle sopra elencate, in quanto, se svolta da personale non dovutamente formate, può portare alla distruzione di dati potenzialmente rilevanti o all'invalidazione del supporto e/o dei dati in esso contenuti. Scelta delicata, a tal proposito, è quella della modalità d'acquisizione che può essere differente in base a circostanze che dovrebbero essere chiare all'investigatore una volta superata la fase di ricerca e individuazione del dato.

Di seguito verranno presentate le modalità d'acquisizione utilizzate dagli investigatori, i contesti in cui si usano e le relative problematiche che possono verificarsi a causa della scelta sbagliata della modalità da utilizzare.

2.3.3.1 Sequestro

Il sequestro è la forma di acquisizione solitamente più utilizzata dalle forze dell'ordine e consiste nel prendere fisicamente il supporto su cui il dato stesso risiede e trasportarlo in sede operativa.

3

chain of custody: documentazione cronologica cartacea contenente informazioni sulle modalità di sequestro, custodia, trasferimento e analisi dei supporti fisici presi in esame.

(14)

Rispetto agli altri sistemi presenta i seguenti vantaggi:

Semplicità: sequestrando il supporto fisico non si va incontro a tutte le complicazioni derivanti dalla duplicazione del dato, ovvero la copia bit a bit e la validazione tramite hash. È sufficiente infatti acquisire l'oggetto e preoccuparsi solamente di trattare il supporto fisico in maniera idonea e di produrre un'attenta catena di custodia.

Riguardo per le evidenze fisiche: potrebbe essere necessario rilevare delle evidenze anche dalla parte fisica del dispositivo come impronte digitali o esaminando quanto contenuto all'interno, per tale motivo vengono utilizzati strumenti che permettono di non perdere tali tracce (Fig. 2.3).

Naturalmente esistono casi in cui tale modalità non è applicabile, basti pensare a scenari in cui i dati risiedono su sistemi dipartimentali assolutamente inamovibili, o ancora, casi in cui i dati risiedono su sistemi che non possono essere spenti o addirittura casi in cui i dati sono in transito nel luogo fisico in cui si procede al sequestro (esempio il dispositivo da sequestrare è un semplice nodo di collegamento tra più reti).

Il sequestro, quindi, non è la soluzione definitiva a ogni problema riguardante l'acquisizione dei dati, anche se è indubbio che sia il sistema più veloce e pratico. È bene

(15)

considerare, dunque, le accortezze necessarie per effettuare un sequestro di materiale informatico nella maniera più corretta possibile, così da evitare errori che possano inficiare l'indagine.

2.3.3.2 Duplicazione

Una valida alternativa al sequestro, per evitare i problemi sopra elencati, è la duplicazione. L'acquisizione tramite duplicazione consiste nel creare una copia 1:1 del dispositivo incriminato su un supporto equivalente in modo da ricreare un supporto perfettamente identico, a livello logico, all’originale.

Questo processo impone che sia fatta la copia non solo dei dati, ma di qualunque informazione presente sul supporto (comprese le strutture di gestione, tabelle delle partizioni, metadati del file system ecc.). È necessario inoltre che la copia sia sempre della stessa grandezza (in termini logici) del supporto, indipendentemente dalla quantità di informazioni in esso contenute. Tale accortezza è importante, in quanto il calcolo degli hash di dispositivi di grandezze differenti non sarebbero identici.

Il metodo migliore per effettuare tale copia rispettando le condizioni sopra citate è quello di considerare qualunque supporto come ad accesso sequenziale, così da poter leggere il disco bit-a-bit partendo dal primo blocco e procedendo sino all'ultimo. Infine, la fase determinante e necessaria affinché la prova possa assumere valore probatorio in una corte giudiziaria, è l'operazione di verifica dell'integrità dei dati acquisiti che dovrà essere effettuata su ogni duplicazione. Questa fase si concretizza nel calcolo, attraverso appositi strumenti software, di digest dei dati originali e di quelli copiati, per poi confrontarli per appurare eventuali alterazioni [5].

(16)

Fig. 2.4 Esempio di duplicazione di un hard disk.

Come si può notare anche quando si opta per la duplicazione è necessario operare in modo che il dato ricavato non sia contestabile.

L'acquisizione, sia essa effettuata sotto forma di sequestro o di duplicazione, deve essere realizzata con tutte le garanzie di legge al fine di consentire ripetibilità e replicabilità ma soprattutto utilizzabilità probatoria.

2.3.4 Analisi

Una volta acquisiti i dispositivi ed estratte le informazioni, ritenute importanti per l’indagine forense, si dovrà eseguire uno studio ed un’analisi dettagliata delle evidenze digitali.

Le tecniche che vengono impiegate in questa fase hanno lo scopo di rintracciare tutte le possibili prove informatiche utili ai fini probatori e di studiare ed interpretare tutti gli attributi e le caratteristiche dei singoli dati estratti, che potranno essere utili anche per stabilire ad esempio relazioni, abitudini e capacità tecniche del sospettato.

(17)

Spesso, però, questo processo si complica, come nel caso di dati parzialmente cancellati che potrebbero fornire le informazioni più interessanti. In tal caso gli operatori forensi possono avvalersi di alcune basilari linee guida e di appositi tool forensi, da utilizzare per orientarsi su cosa e dove andare a ricercare eventuali prove informatiche, garantendo sempre la ripetibilità e la replicabilità di quanto è stato fatto.

Le problematiche di maggiore rilievo per la fase di analisi sono dovute a una molteplicità di cause: la variegata tipologia di dispositivi, sistemi operativi differenti, diversa modalità di memorizzazione dei dati, diverse tipologie di file system e di organizzazione della memoria. Spesso, quindi, gli operatori forensi sono costretti ad utilizzare, per uno stesso caso, differenti toolkit o addirittura effettuare alcune delicate operazioni di analisi in modo manuale.

Inoltre a seconda dello stato in cui si trova il dispositivo da esaminare, l’analisi forense può essere condotta in due diverse modalità: post-mortem o live (Fig. 2.5).

Nel primo caso lo strumento sul quale eseguire il processo di investigazione forense si trova in uno stato di inattività (es. computer o cellulare spento); viene, quindi, sequestrato dalle autorità preposte e trasportato presso i laboratori di analisi forense per essere processato seguendo le fasi sopra citate.

Il secondo caso è quello in cui le forze dell’ordine si ritrovano a dover operare sulla scena del crimine. Un esempio è il caso in cui il dispositivo è in uno stato di attività o non può essere fisicamente rimosso o ancora se le informazioni volatili vengono ritenute utili ai fini dell’indagine.

(18)

Fig. 2.5 Metodi di Analisi.

A differenza dell’analisi post-mortem, quella live presenta una complessità maggiore, in quanto vista la pervasività delle azioni che vengono intraprese, spesso si viene a perdere l’irripetibilità e quindi l’impossibilità di utilizzo diretto in sede dibattimentale. In tal caso, l’attività di documentazione dettagliata di tutte le operazioni che vengono espletate assume un rilievo maggiore, così come è improcrastinabile il mantenimento della catena di custodia.

2.3.5 Documentazione

Le sopra citate attività tecniche (identificazione, preservazione ed analisi del sistema informatico) trovano, nel settore informatico forense, sfogo unico e sostanziale nell’esposizione dibattimentale e quindi un errore espositivo e/o formale può vanificare mesi di analisi ed invalidare anche prove digitali molto evidenti.

Le presentazioni delle prove digitali (in genere tramite relazioni tecniche e discussioni) vengono preparate basandosi su aspetti sociali e psicologici, informatici e legali imponendo la costituzione di un gruppo di lavoro interdisciplinare il più delle volte

(19)

difficile da integrare a causa delle evidenti differenze di approccio professionali nei singoli settori.

Una valida e completa relazione tecnica di un'attività forense dovrebbe contenere:

• la sintesi dei principi scientifici accademicamente riconosciuti su cui l’analisi ed il repertamento si basano,

• la catena di custodia dei reperti (generalmente formata dai verbali che ne testimoniano prelievi, trasferimenti e luoghi di permanenza e la loro accurata descrizione ) (Fig. 2.6),

• le specifiche richieste dell’Autorità Giudiziaria (in breve A.G.) con annesse le necessarie e precise autorizzazioni della Procura competente,

• la descrizione delle operazioni tecniche svolte in laboratorio e l’esito finale.

Di dette parti le richieste della A.G. e l’esito finale rappresentano gli elementi chiave che vengono presi in considerazione da avvocati, giudici e pubblici ministeri al fine di trarre conclusioni di ordine legale. Tutte le altre vengono riportate in maniera da rendere agevole lo studio e l’eventuale ripetizione delle analisi da parte di ulteriori organi tecnici forensi. In particolare, l’esito finale deve avere le seguenti caratteristiche:

• Sintetico: dato che non necessita di riportare eccessivi particolari tecnici dell’analisi ma solo ciò che interessa dal punto di vista giuridico.

• Semplificato: colui che legge e valuta l’esito è di principio un fruitore inesperto nel settore informatico e quindi, se possibile, occorre eliminare terminologie non consuete e spiegare a livello elementare quanto rilevato.

(20)

• Asettico: non deve contenere giudizi personali dell’operatore né tanto meno valutazioni legali sulle informazioni rilevate a meno che tali considerazioni non siano state espressamente richieste.

Fig. 2.6 Documento di reperto e catena di custodia.

La relazione tecnica è quindi, assieme ad altri elementi provenienti dalle indagini classiche, la base per il dibattimento e non dovrebbe suggerire considerazioni di tipo legale che invece sono da formarsi in tale frangente processuale [6].

Finora è stata presentata la Computer Forensics e sono state analizzate le fasi che la costituiscono mettendo in risalto la loro importanza. Nel paragrafo successivo vedremo come la Computer Forensics viene regolarizzata a livello giuridico sia in ambito internazionale che nel quadro giuridico italiano.

(21)

2.4 Standard ISO e panorama giuridico italiano in tema di

investigazioni digitali

La delicatezza nell'eseguire le fasi sopra descritte ha portato la comunità scientifica a fornire e standardizzare delle specifiche linee guide.

Nel 45° Meeting dell’ISO/IEC SC 274, il Sottocomitato ISO che si occupa di normazione in tema di sicurezza delle informazioni ha, infatti, pubblicato la norma ISO/IEC 27037:2012 in tema di identificazione, raccolta, acquisizione e conservazione delle prove.

Il lavoro prosegue inoltre su altre quattro linee guida, ancora in fase di sviluppo, che andranno a completare un sistema organico di norme internazionali sulle investigazioni digitali:

• ISO 27042 - “Analisi e interpretazione delle prove digitali”. Questa norma fornisce linee guida per i processi che logicamente si collocano nel flusso di lavoro dopo quelli coperti dalla ISO 27037: l’analisi delle evidenze e la loro interpretazione, oltre alla comunicazione dei risultati.

• ISO 27035 - “Gestione degli incidenti (incident management)”. Nella seconda parte di questo documento vengono descritti i processi di preparazione che devono venire sviluppati ed implementati prima del verificarsi di qualsiasi incidente (investigative readiness), in modo da poter effettuare in modo efficace le investigazioni in risposta ad un incidente senza pregiudicare la ripresa delle attività. Questo costituisce anche uno dei processi di controllo previsti dalla norma ISO 27001 per la mitigazione del rischio.

4

45° Meeting dell’ISO/IEC SC 27: convegno tenutosi a Roma, 2012, per introdurre i nuovi standard ISO in tema di investigazioni digitali.

(22)

• ISO 27041 - “Linee guida per valutare l’idoneità e l’adeguatezza dei metodi di investigazione”. Questa norma delinea come i metodi e gli strumenti usati nelle investigazioni digitali possano essere “validati”, un concetto già presente anche nella ISO 27037 ma che necessitava di specifiche dettagliate.

• ISO 27043 - “Principi e processi delle investigazioni”. Definisce i principi generali e i processi di cui si compone un’investigazione.

Nella descrizione del flusso di lavoro (workflow) di un’investigazione, le prime due norme si collocano rispettivamente prima e dopo i processi trattati nell’ISO 27037, mentre le ultime due contengono principi trasversali da applicare a tutte le fasi. Insieme, quando saranno pubblicate, queste linee guida andranno a formare un corpus coerente che costituirà un riferimento per la conduzione di investigazioni digitali in tutti gli ambiti, quindi non solo nei processi penali ma anche in quelli civili e nelle indagini condotte internamente nelle varie organizzazioni pubbliche o private che possono anche non finire mai davanti ad un tribunale.

La pubblicazione dell’ISO/IEC 27037:2012 costituisce, quindi, solo il primo tassello di un sistema di linee guida sulla digital forensics per la prima volta concordato a livello mondiale e non ristretta ad un singolo ambito di applicazione.

In Italia, la legge di riferimento che definisce come utilizzare a livello giuridico i risultati di un'attività di analisi forense in tribunale, è la legge 18 marzo 2008 n. 48 nota come "legge di ratifica della Convenzione di Budapest".

Tale legge prevede alcune modifiche ai codici penale e di procedura penale, al decreto legislativo 231/2001 (responsabilità degli enti da reato) ed al decreto legislativo 196/2003 (codice della privacy) [7].

(23)

Per quanto riguarda le varie ipotesi di reato, oltre alla "Diffusione di programmi diretti a

danneggiare o interrompere un sistema informatico o telematico", vengono punite alcune

condotte specifiche di danneggiamento dei sistemi informatici, la falsa dichiarazione o attestazione al certificatore di firma elettronica e la frode informatica del certificatore di firma elettronica.

Le modifiche al decreto legislativo 231/2001 riguardano nuove ipotesi di responsabilità degli enti e delle società nel caso di commissione, da parte dei soggetti apicali o sottoposti a vigilanza e controllo dei seguenti reati:

• accesso abusivo ad un sistema informatico o telematico,

• detenzione o diffusione abusiva dei codici di accesso a sistemi informatici o telematici,

• intercettazione, impedimento o interruzione illecita di comunicazioni informatiche e telematiche,

• installazione di apparecchiature atte ad intercettare, impedire od interrompere comunicazioni informatiche o telematiche.

Oltre alle sanzioni pecuniarie, nei casi di condanna potranno essere applicate le sanzioni interdittive. Alla luce di queste ultime modifiche gli enti e le società avranno l'onere di modificare o adottare nuovi modelli organizzativi e di controllo che prendano in adeguata considerazione i rischi di commissione dei reati informatici ed adottino le opportune contromisure per prevenirli.

Di fondamentale importanza è senza dubbio la sopra enunciata linea guida descritta nell'ISO 27041 che definisce le tecniche e le metodologie da utilizzare al fine di dimostrare l'integrità di un reperto. Vista tale importanza, soprattutto in ambito

(24)

processuale, nel paragrafo successivo verrà introdotto il concetto di integrità e verranno descritte differenti tecniche che vengono adoperate al fine di dimostrare l'integrità del reperto.

2.5 Integrità del reperto

Come ogni altra tipologia di prova utilizzata in giudizio, le informazioni generate come risultato di un'indagine informatica forense devono rispondere agli standard di prove ammesse a giudizio definiti dalla Corte di Giustizia. Particolare cura deve essere pertanto posta nella gestione dei file e degli archivi sospetti, al fine di evitare manipolazioni che ne possano alterare lo stato originario e gestire le problematiche derivanti dalla presenza di virus, danneggiamenti fisici ed elettromagnetici.

Nonostante la Corte di Giustizia applichi alle prove digitali le stesse regole di gestione delle cosiddette prove tradizionali, si è notato come in realtà esse presentano caratteristiche diverse da quest'ultime: le prove digitali, infatti, tendono a produrre una grande mole di informazioni, sono più difficili da distruggere ma anche facilmente alterabili, sono di diverso tipo (es. immagini, file musicali, files system etc.), copiabili, potenzialmente più espressive, disponibili nell'immediato e presentano alcune caratteristiche peculiari.

Come per ogni altra tipologia di prova, il proponente di una prova digitale deve provarne la relativa fondatezza, veridicità ed integrità affinché essa possa essere ammessa come prova. A tal proposito, per dimostrare l'integrità di una prova digitale vengono utilizzate tecniche differenti in base al tipo di dato che si sta trattando.

Nei prossimi paragrafi analizzeremo nel dettaglio tali tecniche, il contesto d'utilizzo, e le eventuali problematiche che si possono presentare.

(25)

2.5.1 Hashing

Uno dei metodi matematici più utilizzati in Computer Forensics per dimostrare l'integrità e quindi l'autenticità di una prova digitale è basato sull’utilizzo delle funzioni hash.

Una funzione hash 𝑓: 𝑋 → 𝑌 è definita per un dominio 𝑋 e un codominio 𝑌 finiti e tali che 𝑛 = |𝑋|   ≫  𝑚 = |𝑌|. Nella costruzione di algoritmi queste funzioni sono impiegate per operare su elementi 𝑥 ∈ 𝑋 attraverso la loro immagine (o fingerprint)    𝑦 = 𝑓(𝑥) ∈ 𝑌 essenzialmente per due scopi. Anzitutto la rappresentazione di 𝑦 richiede log!𝑚 ed è

quindi più breve di quella di 𝑥 che ne richiede log!𝑛; inoltre 𝑌 può avere una struttura assente in 𝑋: per esempio gli elementi 𝑦 corrispondono alle posizioni di un vettore di 𝑚 celle in cui memorizzare informazioni associate a 𝑚 diversi elementi di 𝑋.

La differenza di cardinalità tra i due insiemi 𝑋 e 𝑌 implica che esiste una partizione di 𝑋 in sottoinsieme disgiunti 𝑋!, … , 𝑋! tali che , per ogni valore dell’indice 𝑖, tutti gli elementi in 𝑋!   hanno come immagine uno stesso elemento di 𝑌.

Una buona funzione hash deve avere le seguenti proprietà :

1. Per ogni elemento 𝑥 ∈ 𝑋 è computazionalmente facile calcolare 𝑓(𝑥).

2. Per la maggior parte degli elementi 𝑦 ∈ 𝑌 è computazionalmente difficile determinare un 𝑥 tale che 𝑓 𝑥 = 𝑦.

3. È computazionalmente difficile determinare una coppia di elementi 𝑥!,  𝑥! in 𝑋 tali che 𝑓 𝑥! = 𝑓(𝑥!) [8].

Queste proprietà rendono le funzioni di hash lo strumento ideale per la verifica di una copia forense.

(26)

Una volta acquisita la copia bit-a-bit, infatti, è possibile effettuare un'operazione di hashing sul dato originale e sul duplicato creando una sorta di impronta digitale dell'evidenza. Successivamente, confrontando i due “valori di hash” si ottiene la conferma che le due copie sono uguali e quindi autentiche.

Il limite principale della funzione di hash è implicito nella sua stessa definizione: essendo il numero di dati possibili infinito ed essendo, nel contempo, il numero risultante di grandezza fissa (quindi invariabilmente un numero finito di valori) esiste la probabilità che dati diversi generino uno stesso valore di hash. Tale problema è noto come collision. Il compito della matematica e della crittografia moderna è di generare funzioni di hash per le quali sia impossibile predeterminare una condizione di collisione. Nel caso in cui tale collisione fosse predeterminabile, infatti, la validazione non avrebbe più alcun senso dato che sarebbe possibile variare ad hoc il dato validato e calcolare poi la condizione necessaria per generare la collisione con il valore calcolato sul dato originale. Si otterrebbe quindi un dato modificato che risulterebbe identico all'originale nel momento all'applicazione della validazione.

È evidente, inoltre, come la crescente potenza di calcolo dei moderni computer possa contribuire allo sviluppo di sistemi per generare collisioni ma nello stesso tempo quanto sia complesso riuscire a sviluppare algoritmi che forniscano una validazione per lungo tempo.

I modi per ovviare al problema delle collisioni sono essenzialmente due:

1. Utilizzare algoritmi sempre più sofisticati. Questo metodo non sempre può essere applicato, dal momento che spesso le leggi considerano validi solo alcuni algoritmi, non sempre tra i più innovativi.

2. Validare i risultati con due diversi algoritmi. Convalidare un dato contemporaneamente con due differenti algoritmi (es. SHA-1 e MD5) rende

(27)

praticamente impossibile calcolare una collisione che sia valida al contempo per entrambi gli hash.

Al momento gli algoritmi più utilizzati per la validazione delle evidenze digitali sono MD5 e SHA- 1. Nonostante in entrambi gli algoritmi siano stati trovati dei sistemi per generare delle collisioni, anche se con dati casuali non partendo da un dato precedentemente validato e poi modificato ad hoc, la legge li ritiene ancora validi ed efficienti.

2.5.2 MD5 e SHA-1

La funzione MD55 riceve in ingresso una sequenza 𝑆 di 512 bit e produce un’immagine 𝑀𝐷5(𝑆) di 128 bit. La sequenza viene appunto “digerita” riducendone la lunghezza a un quarto e decomposta in 16 blocchi di 32 bit ciascuno, indicati con 𝑆!,  𝑆!, … ,  𝑆!". La funzione impiega altre quattro sequenze 𝐴, 𝐵, 𝐶, 𝐷 di 32 bit ciascuna che hanno inizialmente valori predefiniti e pubblici. Queste quattro sequenze vengono trasformate in 16 passi consecutivi, combinandole in ciascun passo con uno dei blocchi 𝑆!, attraverso un opportuno parametro 𝑡! e tra loro, mediante complicate operazioni booleane e shift ciclici. Il procedimento viene ripetuto per quattro round utilizzando come ingresso le quattro sequenze prodotte dal round precedente, nuovamente i blocchi 𝑆! e i nuovi paramentri 𝑡!. Le quattro sequenze di 32 bit che emergono dal procedimento vengono infine concatenate tra di loro per produrre l’immagine  𝑀𝐷5(𝑆) di 128 bit.

Se la 𝑆 è più corta di 512 bit, essa viene completata con una sequenza binaria 100, … ,0  (padding) prima di calcolarne l’immagine. Una 𝑆 più lunga di 512 bit viene invece decomposta in blocchi 𝐵!, … , 𝐵! di 384 bit ciascuno, completando se necessario 𝐵! con la sequenza 100, .., 0. I blocchi 𝐵! vengono concatenati con sequenze ℎ!!! di 128 bit,

(28)

per ottenere sequenze di 512 bit cui si applica la funzione 𝑀𝐷5 secondo la regola: ℎ!   ← 𝑆 (cioè la lunghezza di S codificata in binario, più un eventuale padding),

 ℎ!   ← 𝑀𝐷5(𝐵!,!!!) . Il valore ℎ!  generato per ultimo è impiegato come immagine dell’intera sequenza [8].

Un’ulteriore funzione ritenuta crittograficamente sicura (nel senso che soddisfa tutti i requisiti richiesti per le funzioni hash) è SHA6.

L'algoritmo più utilizzato di questa famiglia è SHA-1 il cui funzionamento è molto simile a quello dell'MD5 differendo (come mostrato in Tabella 2.9) solamente per la lunghezza massima delle sequenze, per la dimensione dell’immagine prodotta (160 bit) e per il numero di operazioni e di parametri che vengono utilizzati durante il processo di elaborazione.

Tabella 2.9 Differenze tra MD5 e SHA-1.

6

SHA: Secure Hash Algorithm, famiglia di cinque diverse funzioni crittografiche di hash progettata da National Institute of Standards and Technology nel 1992.

(29)

Nonostante la lunghezza dell’immagine prodotta (160 bit) diminuisca la probabilità di collisione, così come l'MD5 anche per SHA-1 sono stati trovati dei modi per generare delle collisioni rendendo l’algoritmo teoricamente vulnerabile [9] [10].

Come detto precedentemente esistono svariati algoritmi di hash con caratteristiche differenti, dei quali non sono stati trovati metodi per generare collisioni (tabella 2.10), che non vengono ritenuti un valido strumento ai fini giuridici.

In questo paragrafo si è visto come le funzioni di hash siano uno strumento veloce ed efficiente da utilizzare al fine di provare l'integrità di un reperto digitale. Non tutti i reperti digitali però si prestano correttamente a tali tecniche come ad esempio le immagini e i video. L'integrità di tali dati, pertanto, viene spesso verificata con ulteriori tecniche che vengono a volte combinate con operazioni di hashing.

Nei paragrafi successivi verrà affrontato il tema dell'autenticazione di immagini digitali descrivendo le tecniche più utilizzate ai fini dell'autenticazione.

Algoritmo Grandezza del dato finale computato

Trovati modi di generare collisioni Haval 256/224/192/160/128 Si MD5 128 Si PANAMA 256 Si RIPEMD 128 Si RIPEMD-160/320 160/320 No SHA-0 160 Si SHA-1 160 Si SHA-256/224 256/224 No SHA-512/384 512/384 No Tiger(2)-192/160/128 192/160/128 No VEST-4/8(hash mode) 160/256 No VEST-16/32(hash mode) 320/512 No

(30)

2.6 Autenticazione di un’immagine digitale

La larga diffusione di fotocamere digitali e di software per l’elaborazione di immagini sempre più facili e intuitivi da utilizzare ha reso possibile e alla portata di tutti la modifica di foto e video. Questo ha portato all’attenzione di tutti il problema della contraffazione delle immagini digitali e dei video che sempre più spesso sono elementi importanti nei dibattimenti giudiziari. Anche in questo caso, affinché “un documento visivo” possa essere utilizzato in un procedimento giudiziario è necessario provarne l'autenticità.

Sebbene molte delle tecniche che presenteremo siano ormai collaudate e forniscano risultati attendibili, è impossibile provare scientificamente l’autenticità di un'immagine, in quanto non si può escludere la possibilità che colui che ha manipolato l’immagine sia stato anche capace di nascondere le tracce a tutte le metodologie di analisi in nostro possesso. Dunque è possibile solo affermare che l’immagine è “coerente” con l’ipotesi di autenticità.

Per dimostrare la non autenticità, invece, basta avere una sola prova certa della presenza di un’alterazione, mentre la mancanza di segnalazioni in tal senso non costituisce di per se una prova di originalità. Il concetto di originalità assoluta di un’immagine è quindi un’astrazione che non ha cittadinanza nel contesto forense. In tale ambito ha senso invece parlare di originalità accertabile.

Il metodo migliore di procedere con questi tipi di dati consiste nel raggruppare i risultati dell'analisi e relazionarli tra loro, esprimendo successivamente un giudizio in base alla presenza o meno di segnali di incoerenza con l’immagine originale.

(31)

Nei sotto paragrafi successivi andremo ad analizzare alcune delle tecniche hardware/software che sono state presentate nel tempo al fine di validare le immagini digitali.

2.6.1 Metodi di autenticazione basati sulla crittografia convenzionale

Tali metodologie consistono nel calcolo di un MAC7 dell'immagine originale attraverso l'utilizzo di una funzione hash.

Il processo di elaborazione dell'immagine da parte del “mittente” consiste nei seguenti passi: prima di tutto viene calcolato l'hash h1 dell'immagine originale, successivamente si cifra quest'ultimo con la chiave pubblica del ricevente ed infine viene aggiunto l'hash criptato risultante (T1) nell'immagine originale, generando così un immagine “protetta” (Ip) (Fig. 2.11) .

Fig. 2.11 Generazione dell’autenticatore.

Il “ricevente”, una volta in possesso dell'immagine Ip verificherà l'integrità di quest'ultima calcolando l'hash h2 dell'immagine originale, estraendo e decriptando (usando la propria

(32)

chiave privata k1) l'hash h1 attaccata precedentemente a Ip, ed infine confrontando h1 ed h2 (Fig. 2.12).

Fig. 2.12 Verifica di autenticità.

Un'alternativa al calcolo dell'hash dell'intera immagine, è quella di utilizzare la tecnica line-column hash functions in cui il calcolo dell'hash avviene per ogni linea e colonna dell'immagine piuttosto che sull'intera immagine.

Il processo di validazione risulta essere uguale a quello sopra descritto con la differenza che il confronto avviene sull'intera collezione di hash generati dal mittente. In entrambi i metodi, se durante il processo di validazione, viene trovata una qualsiasi differenza degli hash l'immagine viene considerata manipolata o in caso contrario autentica.

Sfortunatamente l'individuazione dei pixel modificati di un'immagine corrotta, risulta essere difficile, se non impossibile, soprattutto quando le regioni alterate dell'immagine sono diverse [11]. Una soluzione a tale problema è stata proposta da Wolfgang Delp e consiste nel calcolo di hash su blocchi dell'immagine. In questo caso, durante la validazione, è possibile identificare i blocchi dell'immagine i cui hash non corrispondono ed individuare quindi le aree che sono state manipolate [12].

(33)

2.6.2 Watermarking

Il termine watermarking (derivante dalla lingua inglese) significava originariamente “filigranatura” e faceva riferimento al processo di marchiatura della carta in fase di produzione. Durante la marchiatura, venivano inserite nella carta, in maniera più o meno visibile, un insieme di informazioni sulla cartiera produttrice, allo scopo di tutelare il produttore da contraffazioni.

In ambito informatico con il termine digital watermarking si definisce l'insieme delle tecniche che consentono l'inclusione di informazioni all'interno di un file multimediale o di altro genere, che possono essere rilevate o estratte per trarre indicazioni sull'origine e la provenienza del file.

Tali informazioni, dette watermark, possono essere evidenti all'utente del file ad esempio

nel caso in cui ci sia un'indicazione di copyright applicata in sovraimpressione sull'immagine digitale (Fig. 2.13),

(34)

o latenti cioè nascoste all'interno del file (Fig.2.15), in questo caso il watermarking può essere considerato una forma di steganografia, ovvero quell’insieme di tecniche che consentono di nascondere messaggi, che devono essere intelligibili al solo destinatario, inserendoli all’interno di un contesto del tutto estraneo, che funge da “contenitore”, in grado non tanto di nascondere il contenuto ma la stessa esistenza della comunicazione, agli occhi di un eventuale osservatore [13].

Fig. 2.14 Schema che colloca la steganografia come intersezione tra crittografia e watermarking.

Fig. 2.15 Esempio di watermark invisibile, sx) immagine originale, dx) immagine con watermark.

A seconda del campo di applicazione (autenticazione ed integrità dei dati, copie non autorizzate, affermazione di paternità etc.) un processo di watermarking deve soddisfare differenti requisiti e di conseguenza utilizzerà diverse tecniche. Nonostante ciò, in generale

(35)

si può affermare che il watermarking è composto da due sotto-processi che prendono il nome di encoding e decoding o anche inserimento e verifica.

Il processo di encoding, effettuato da colui che vuole inserire il marchio e schematizzato in Fig. 2.16, si occupa di inserire il watermark all'interno dell'immagine e può essere formulato per mezzo della relazione:

𝐸(𝑊, 𝐼) = 𝐼!

dove 𝐸 rappresenta il processo di inserimento, 𝑊 il watermark, 𝐼 l'immagine originale e 𝐼! l'immagine marchiata.

Fig. 2.16 Processo di codifica generico.

Si tratta, tuttavia, di una generalizzazione non troppo efficace, in quanto non tiene conto di eventuali attacchi alla sicurezza del metodo. Realizzare un sistema di marchiatura più sicuro ed efficace è possibile tramite l'utilizzo di chiavi d'inserimento.

Tale tecnica, che sfrutta la codifica a chiave, consiste nell’associare ogni segnale di watermark ad una particolare sequenza di bit detta chiave. La chiave, segreta e caratterizzante univocamente il legittimo proprietario dell’immagine, serve sia per produrre il segnale di watermark che per riconoscerlo all’interno di un’immagine.

(36)

In tutti i processi di watermarking, si dovrebbe tenere conto del principio di Kerckhoffs, secondo il quale la sicurezza di un algoritmo di cifratura, così come di un algoritmo di watermarking, non deve dipendere dalla segretezza dell'algoritmo, quanto dalla robustezza della chiave utilizzata.

In questo caso il watermarking non differisce dalla crittografia e per questo motivo è lecito, nonché necessario, ridefinire lo schema presentato in precedenza come:

𝐸(𝑊, 𝐼, 𝐾) = 𝐼!

dove, come per lo schema di codifica generico, 𝐸 rappresenta il processo di inserimento, 𝑊 il watermark, 𝐼 l'immagine originale , 𝐼! l'immagine marchiata e 𝐾 la chiave segreta del mittente (Fig. 2.17).

Fig. 2.17 processo di codifica con chiave.

Per quanto riguarda il processo di decoding, che dovrà essere effettuato dal destinatario del dato, (Fig. 2.18) può essere formulato per mezzo delle seguenti relazioni:

(37)

−𝐷(𝐼!, 𝐾) = 𝑊

−𝐷(𝐼!, 𝐾, 𝑊) = 𝑡𝑟𝑢𝑒/𝑓𝑎𝑙𝑠𝑒

dove 𝐷 rappresenta la funzione di verifica del watermark, 𝐼! l'immagine da controllare, 𝐾

la medesima chiave segreta del mittente e 𝑊 il watermark.

Fig. 2.18 Processo di decodifica.

È possibile notare come lo schema comprenda anche il caso di algoritmi di watermarking in cui il risultato del decoding non sia il watermark, peraltro necessario nel processo, ma un valore booleano che identifica o meno la presenza del watermark nel dato. È importante dunque segnalare il fatto che il processo di decoding si deve aspettare in ingresso dati non necessariamente marchiati; per essere ancora più precisi, non deve essere necessario che il dato marchiato sia esattamente identico all'output dell'encoding, in quanto potrebbe aver subito attacchi.

Le tecniche di watermarking, oltre che per la visibilità del marchio, possono essere classificate in base alla robustezza che gli algoritmi di inserimento e verifica garantiscono. Con il termine robustezza di un sistema di watermarking si intende la capacità di resistenza del watermark sia verso attacchi voluti, sia nei confronti di quelli non previsti.

(38)

La caratteristica primaria, che spesso compromette la robustezza, permettendo di distinguere i sistemi di watermarking in fragili e robusti, è quella relativa al dominio in cui si opera. È possibile infatti, come vedremo nei paragrafi successivi, operare nel dominio spaziale o nel dominio delle trasformate.

2.6.2.1 Watermarking fragile

Operare nel dominio spaziale di un'immagine significa agire direttamente sui valori dei pixel che la costituiscono. Se da un lato può rendere più semplici ed immediate le operazioni di gestione del watermark, dall'altro si è dimostrato non accettabile dal punto di vista della robustezza.

Esistono due modi per effettuare l'inserimento del watermark:

1) Scegliere a caso un insieme di pixel ed apportare a questi le modifiche necessarie. 2) Aggiungere a tutti i pixel valori pseudocasuali dipendenti dalla chiave introdotta

dall'utente nelle operazioni di inserimento ed estrazione del watermark;

Di seguito verrà illustrato un algoritmo che lavora nel dominio spaziale e che utilizza la prima delle modalità sopra elencate.

Nell'algoritmo, il calcolo e l'inserimento del watermark (Fig. 2.19) avviene nel seguente modo: si determina un set di pixel con l'ausilio di una chiave segreta K1, nota anche al destinatario, si calcola un logo binario usando i bit più significativi (Most Significant Bit), si codificano con un’ulteriore chiave K3 producendo il watermarker W1 e si inserisce quest'ultimo nei bit meno significativi (Least Significant Bit) di un altro set di pixel identificato e codificato a priori tramite una chiave K2 [11].

(39)

Fig. 2.19 Calcolo e inserimento del watermark.

Lo schema di verifica (Fig. 2.20) avviene in modo del tutto simile all'inserimento. Il ricevente, infatti, non deve far altro che individuare i set di pixel dove si trova W1 usando la medesima chiave K2 utilizzata dal mittente, successivamente estrarre W1 e calcolare W2 (usando lo stesso algoritmo del mittente) ed infine confrontare i due watermark.

Fig. 2.20 Verifica di autenticità.

Nonostante l'algoritmo appena descritto sia semplice e veloce, esso può essere soggetto ad attacchi in grado di distruggere il watermark inserito e per tale motivo viene definito

(40)

fragile. Nel prossimo paragrafo verrà descritto un algoritmo robusto che opera nel dominio delle trasformate.

2.6.2.2 Watermarking robusto

Il secondo metodo utilizzato per la creazione di watermark prevede di operare nel dominio delle trasformate. Questa tecnica consiste nell'applicare in primo luogo una specifica trasformata all'immagine, successivamente eseguire le operazioni necessarie all'inserimento/rilevazione del marchio ed infine invertire la trasformata per ottenere l'immagine marchiata o per estrarre il marchio.

Le trasformate più utilizzate di supporto a tale tecnica sono: DCT (Discrete Cosine Transform), DFT (Discrete Fourier Transform) e DWT (Discrete Wavelet Transform). Prendiamo adesso in esame un sistema di watermarking in cui la trasformata applicata è la DWT. Essa è invertibile, pertanto per definizione, è possibile applicare il passo inverso e riottenere esattamente l'informazione iniziale. Questa trasformata agisce scomponendo le componenti di un segnale ad alta frequenza da quelle a bassa frequenza. Applicata ad un'immagine, la DWT divide l'immagine considerata in quattro quadranti chiamati (partendo dall'alto e muovendosi in senso orario) LL, HL, LH e HH, ognuno dei quali di dimensioni pari alla metà dell'originale.

La sottobanda LL (in alto a sinistra), attraverso l'utilizzo di un filtro passa-basso, contiene le basse frequenze del segnale analizzato, dette anche coefficienti di approssimazione. Le restanti tre sottobande contengono le alte frequenze e sono quelle meno percepibili dall'occhio umano e per questa ragione sono quelle sulle quali normalmente agiscono gli algoritmi di watermarking. In particolare, le tre bande HL, LH e HH contengono rispettivamente i coefficienti relativi ai dettagli orizzontali, verticali e diagonali dell'immagine considerata.

(41)

Da notare come la sottobanda LL possa essere divisa ulteriormente ottenendo un ulteriore livello di scomposizione. Risulta quindi possibile applicare in fasi successive la trasformata, in modo da scomporre l'immagine in una molteplicità di livelli ed applicare il procedimento di marchiatura/rilevazione in ogni livello. Il risultato di un tale metodo si traduce in una maggiore diffusione e robustezza del marchio inserito nell'immagine [15]. Per comprendere meglio il comportamento della trasformata, viene fornito in figura 2.21 lo schema generale dell'applicazione di una DWT su due livelli ed i relativi risultati ottenuti utilizzando un'immagine di test.

Fig. 2.21 Schema di suddivisione in sottobande della DWT.

Fig. 2.22 Da destra verso sinistra: immagine originale, prima applicazione della DWT, seconda applicazione della DWT.

A causa delle caratteristiche di ogni sottobanda, la scelta di quelle da utilizzare per l'embedding conduce ad una serie di vantaggi e problematiche. Ad esempio potrebbe essere molto vantaggioso utilizzare la sottobanda LL in virtù dell'importanza che possiede in

(42)

termini di quantità di informazione che contiene. Per eliminare un watermark presente in LL è infatti necessario modificare una parte molto significativa, di conseguenza visibile, dell'immagine. Per le stesse ragioni, tuttavia, è difficile effettuare un embedding senza rendere visibile il marchio inserito.

Come si è visto, la bontà dei relativi algoritmi di marchiatura viene misurata in funzione della loro capacità di resistere agli attacchi tesi ad eliminare il marchio, preservando l’informazione marchiata per eseguire operazioni di contraffazione e comunque illecite. Nei paragrafi precedenti si è mostrato come differenti algoritmi, più o meno robusti, operino nel trattare le immagini al fine di garantire l'integrità seppur con strategie differenti.

Nel prossimo paragrafo, invece, verrà presentata una tecnica di autenticazione di immagine tramite firma digitale.

2.6.3 Autenticazione di immagini tramite firma digitale

Come si è potuto notare usare il contenuto semantico delle immagini per l’autenticazione incrementa la robustezza del sistema e la possibilità di individuare e ripristinare presunte regioni corrotte. Un’ulteriore tecnica che sfrutta il contenuto semantico dell’immagine è quella basata sull’utilizzo della firma digitale.

I sistemi per l’autenticazione di un’immagine che usano la firma digitale sono composti sia dalla fase di generazione (Fig.2.23) che dalla fase di verifica (Fig.2.24).

La fase di generazione della firma consiste nei seguenti passi:

1. estrazione di feature 𝐶! di alto livello dall’immagine originale, queste includono

tipicamente contorni, colori o livelli di grigi, istogrammi, coefficienti DWT o alcune loro combinazioni.

(43)

2. Applicare una funzione hash per ridurre la loro dimensione,

3. cifrare il valore hash generato nella fase due utilizzando la chiave privata 𝐾!" del mittente generando la signature 𝑆.

Fig. 2.23 Schema di generazione della firma digitale.

Il processo di verifica, una volta ricevuta l’immagine, consiste nel decifrare la signature 𝑆 con la chiave pubblica 𝐾!" e confrontare l’hash ricavato con quello dell’immagine

originale.

(44)

I passi appena descritti servono esclusivamente per verificare se il documento è stato alterato o meno, un ulteriore passo successivo potrebbe consistere nel determinare quali regioni sono state manipolate provvedendo eventualmente alla correzione [13].

L’affidabilità e la robustezza del metodo di autenticazione appena descritto si basa fortemente sulla scelta dei parametri da utilizzare ad ogni passo, e.g., la scelta delle feature da utilizzare nel passo uno, la funzione di hash utilizzata nel passo due e l’algoritmo per la generazione della firma digitale.

Nel prossimo paragrafo verranno presentate tecniche di analisi utilizzate da alcuni software per dimostrare l'autenticazione di immagini.

2.6.4 Software per l’autenticazione di immagini

Nell'ultimo decennio molte case produttrici di dispositivi fotografici e di applicativi, si sono adoperate nello sviluppo di software per l'autenticazione d'immagini.

Le strategie di analisi più comunemente usate, sulla quale si basano questi software, sfruttano le tracce lasciate dai software di elaborazione interni alla fotocamera. Nel processo di acquisizione di un'immagine, infatti, la macchina fotografica “incapsula” in un file composto da un'intestazione (header) e da un corpo principale contenente l'immagine vera e propria (Fig. 2.25), una gran varietà di informazioni riguardanti il dispositivo usato (metadati) e l'immagine stessa .

(45)

Fig. 2.25 Suddivisione dei dati all’interno di un file immagine di tipo JPEG.

In commercio esistono differenti software che utilizzano tecniche diverse al fine di dimostrare l'autenticazione delle immagini, la maggior parte di questi mirano a verificare l'autenticità di un'immagine analizzando i pixel che la compongono, lavorando quindi sul contenuto visivo delle immagini.

Altri invece, così come vedremo nei sotto paragrafi successivi, utilizzano il formato e i metadati dell’immagine per identificare la sorgente che l’ha generata ignorando il contenuto vero e proprio.

Analisi sui metadati

Come precedentemente accennato, la stragrande maggioranza delle macchine fotografiche moderne inserisce automaticamente dei dati EXIF8 all'interno del file contenente l’immagine. Le specifiche EXIF definiscono sia dei campi comuni alla maggior parte dei produttori, che campi personalizzati difficilmente decodificabili.

Un dispositivo moderno può salvare all’interno dei metadati diverse informazioni [16], quali ad esempio:

(46)

• Produttore e modello di fotocamera;

• Informazioni legate alla data e all'ora di generazione e di salvataggio del file; • Informazioni sulle caratteristiche dell'immagine (risoluzione in pixel, dpi,

profondità del colore, ecc.);

• Impostazioni di scatto (tempo di scatto, apertura, flash, ISO, focale, ecc.); • Coordinate GPS;

• Seriale del dispositivo.

L'obiettivo di questo tipo di analisi è quello di riuscire a stabilire, analizzando un'immagine scattata con una macchina fotografica digitale, se è stata generata o meno da un particolare modello di fotocamera che si tratti di una reflex, di una compatta, di un telefono cellulare o di un tablet, attraverso la balistica della fotocamera, cioè analizzando i metadati dell’immagine per identificare la sorgente che l’ha generata ignorando il contenuto vero e proprio.

Tale approccio risulta comunque fragile e non garantisce l'autenticità di un'immagine in quanto un attaccante competente può modificare abbastanza facilmente il contenuto dei metadati con software accessibili a tutti.

Analisi di thumbnail e preview

La maggior parte dei dispositivi moderni salva all’interno dell’immagine principale una o due immagini secondarie dette thumbnail (miniatura) e preview (anteprima). La thumbnail e la preview non sono altro che una versione a bassa risoluzione dell’immagine principale, tipicamente con dimensioni nell’ordine di 160x120 e 640x480 pixel. Esse sono utilizzate da una macchina fotografica per presentare le immagini disponendole a griglia sul display

(47)

o come anteprima a livello di file system. Dato che tutti i dispositivi attuali salvano queste immagini “secondarie” è possibile utilizzarle per effettuare diversi tipi di analisi.

Innanzitutto, l’assenza della thumbnail è considerata il più delle volte come un segnale sospetto, tuttavia può essere valutata come una caratteristica di un determinato modello di macchina fotografica. Inoltre, la risoluzione della miniatura, il suo rapporto con l’immagine principale e l’eventuale presenza di bande nere sono tratti distintivi di specifici modelli che possono essere utilizzati in un’analisi comparativa.

Un’analisi molto utile riguarda, infine, il contenuto della thumbnail stessa. Se il contenuto dell’immagine principale è diverso da quello della thumbnail (thumbnail mismatch), ciò può essere dovuto fondamentalmente a due motivi:

1) si è tentato di nascondere un’immagine all’interno di un’altra

2) un errore del software di foto ritocco che non ha aggiornato correttamente la thumbnail in fase di salvataggio.

Anche questo tipo di analisi risulta essere inattendibile ai fini investigativi, in quanto, basterebbe semplicemente aver cura di sostituire la thumbnail con quella relativa all'immagine contraffatta per aggirare questo tipo di analisi.

Analisi sul formato JPEG

Il formato JPEG non è altro che un algoritmo di compressione che permette di ridurre le dimensioni di un’immagine spesso a discapito della qualità. Tale algoritmo composto da diverse fasi prevede il trattamento dell’immagine e lo scarto di informazioni attraverso i seguenti processi:

(48)

1. trasformazione da RGB9 a YUV10 e sottocampionamento della crominanza. Con tale processo vengono ridotte le informazioni riguardanti le componenti di crominanza, in quanto quasi impercettibile all’occhio umano.

2. Applicare la trasformata DCT; con la quale si passa da una rappresentazione del dominio spaziale a una nel dominio delle frequenze, al fine di trattare i coefficienti DCT in modo indipendente senza perdere di efficienza nella compressione.

3. Quantizzazione. In questa fase ogni elemento dell’immagine viene diviso per un coefficiente presente nella tabella di quantizzazione al fine di arrotondare i valori prodotti dalla DCT, portando a zero quelli prossimi allo zero, smorzare le alte frequenze e arrotondare con maggiore precisione le frequenze basse utilizzando una tabella di quantizzazione per la luminanza e una opportuna per le due di crominanza.

4. Codifica Huffman. L'ultima codifica entropica applicata ai dati è la classica codifica a lunghezza di codice variabile in cui i dati vengono suddivisi in “parole” (stringhe di bit), viene analizzata la frequenza statistica di ciascuna parola e ognuna viene ricodificata con un codice a lunghezza variabile in funzione della frequenza di apparizione. Un codice corto per le parole che appaiono frequentemente e via via codici più lunghi per quelle meno frequenti. Attraverso questo processo il numero di bit necessari per rappresentare i dati si riduce consistentemente [17].

9 RGB: Rappresentazione dei colori tramite le componenti Red, Green e Blue.

Riferimenti

Documenti correlati

A tal proposito, si rammenta che l’Autorità, nelle «N uove linee guida per l’attuazione in generale, della normativa in materia di prevenzione della corruzione

Pertanto, l’inserimento dei dati in questione può essere effettuato all’interno dell' “Allegato 1F - Elenco prezzi unitari offerti - CORRETTO”, scrivendoli nello

7) di non avere riportato condanne penali e di non avere carichi pendenti o, comunque, di non essere a conoscenza di essere sottoposto a procedimenti penali

l’Amministrazione Comunale giusta deliberazione di G.M. 161 del 16.09.2019 intende promuovere l’esibizione delle realtà presenti sul territorio che intendono realizzare

È un punto importante: da un lato si prende atto che l’obbligatorietà dell’azione penale, da tempo, è un valore asimmetrico rispetto alla realtà ed ampiamente derogato nella prassi,

Il 23 marzo la Corte costituzionale deciderà la sorte dell'ergastolo ostativo alla concessione della liberazione condizionale.. Sarà un'udienza pubblica, grazie all'intervento

Per i procedimenti speciali, il patteggiamento allargato - con il limite di pena applicabile su richiesta delle parti portato ad otto anni di reclusione solo o congiunta a pena

l’interesse del creditore a veder incrementare la garanzia patrimoniale del debitore deve cedere il passo di fronte all’interesse del debitore al libero esercizio dei