Photo Forensics – Εξακρίβωση της γνησιότητας μιας ψηφιακής φωτογραφίας με χρήση μαθηματικών αλγορίθμων

13 Φεβρουαρίου 2013

Γράφει ο Γεώργιος Αραβίδης / Ερευνητής Ασφάλειας Πληροφοριών

Η εποχή στην οποία βρισκόμαστε, επιτρέπει την καθημερινή χρήση της τεχνολογίας σε διάφορους τομείς της καθημερινής μας ζωής (αν όχι σε όλους σχεδόν τους τομείς). Και φυσικά όταν μιλάμε για χρήση της τεχνολογίας εννοούμε προφανώς την επιστήμη της πληροφορικής σε συνδυασμό πάντα με τα μαθηματικά.

Ερωτήματα στα οποία δεν μπορούσαμε παλαιότερα να απαντήσουμε τουλάχιστον γρήγορα, σήμερα , εν έτη 2013, στα ίδια ερωτήματα πλέον υπάρχει η απάντηση και απλόχειρα και πολύ γρήγορα , διαμέσου της τεχνολογίας των υπολογιστών.

Το παρόν άρθρο θα εξετάσει το γεγονός κατά πόσο μπορεί κάποιος να διαπιστώσει , αν μια οποιαδήποτε ψηφιακή φωτογραφία έχει υποστεί επεξεργασία με ηλεκτρονικό τρόπο. Και προφανώς όταν αναφερόμαστε σε ηλεκτρονική επεξεργασία, βάζουμε αμέσως στο μυαλό μας το πρόγραμμα Adobe PhotoShop CS.

Βλέποντας μια φωτογραφία, ο ανθρώπινος παράγοντας ( νους ) τις περισσότερες φορές αδυνατεί να διαπιστώσει , αν αυτή έχει υποστή επεξεργασία, τουλάχιστον με την πρώτη ματιά.

Το ίδιο όμως δεν συμβαίνει και με έναν ψηφιακό υπολογιστή , ο οποίος εξετάζει την φωτογραφία κάτω απο ένα αυστηρό μαθηματικό πρίσμα με ειδικούς αλγόριθμους φτιαγμένους για τον σκοπό αυτό.

Λόγος λοιπόν γίνεται για την επιστήμη των Photo-Forensics. Γενικότερα, σε προηγούμενο άρθρο , έχουμε αναφέρει ότι η επιστήμη των Forensics γενικά, είναι ένα απο τα κυριότερα εργαλεία σε μια εγκληματολογική έρευνα πάνω σε μια σκηνή ηλεκτρονικού εγκλήματος στο παράδειγμα μας .
Έτσι , η επιστήμη των Digital Computer Forensics , αβίαστα έχει και ένα παρακλάδι που λέγεται Digital Photo Forensics.

Πριν ξεκινήσουμε με την ανάλυση των αλγορίθμων, ας πούμε πρώτα λίγα λόγια για τον πιο γνωστό τύπο αρχείου εικόνας που είναι το πρότυπο JPEG, και γενικά για το τι προσφέρει το πρότυπο αυτό.

Όπως γνωρίζουν οι περισσότεροι, τα πρότυπα εικόνας που γενικά διαχειρίζονται τα Windows ( και γενικά κάθε λειτουργικό σύστημα ) , είναι τα γνωστά σε όλους μας: JPEG , BMP , TIFF , ICO, PNG αρχεία. Υπάρχουν και άλλα, αλλά χάριν του άρθρου ας σταθούμε σε αυτά.

Ειδικότερα τα αρχεία JPEG, είναι τα πλέον ιδανικά για το ηλεκτρονικό ταχυδρομείο εξαιτίας του μικρού μεγέθους τους , και επίσης έχει κανείς την δυνατότητα ρύθμισης του επιπέδου της συμπίεσης για την αποθήκευση τους, με στόχο των έλεγχο του μέγεθος του αρχείου και την ποιότητα της εικόνας.

Πιο απλά, το πρότυπο JPEG συμπιέζει αυτόματα τις εικόνες σας όταν τις αποθηκεύετε, με αποτέλεσμα να μειώνεται κατά ένα μικρό ποσοστό η οπτική ποιότητα. Εάν χρησιμοποιήσετε υψηλά επίπεδα συμπίεσης, τότε η ποιότητα της εικόνας ενδέχεται να μειωθεί σημαντικά. Όλα αυτά με την χρήση ενός  λογισμικού όπως για παράδειγμα το Adobe Photoshop CS.

Σε αυτό λοιπόν το σημείο, ήρθε η στιγμή να πούμε και την πιο σημαντική λεπτομέρεια.

Ο Αλγόριθμος JPEG , “χωρίζει“ την φωτογραφία , σε πλέγματα των 8×8 Pixel , με σκοπό κάθε τετράγωνο να συμπιεστεί ανεξάρτητα.

Αν λοιπόν εφαρμόσουμε το πρότυπο JPEG , σε μια αρχική φωτογραφία, τότε όλα τα πλέγματα των 8×8 pixel στα οποία χωρίστηκε η φωτογραφία, θα έχουν το ίδιο επίπεδο συμπίεσης και άρα το ίδιο επίπεδο σφάλματος παντού.

Πάνω λοιπόν σε αυτό το σημείο που είδαμε μόλις και το θεωρήσαμε σημαντικό, έρχεται και ο πρώτος αλγόριθμος που θα γνωρίσουμε και ακούει στο όνομα
“Error Level Analysis” ¨η εν συντομία E.L.A

Ο Αλγόριθμος E.L.A , προσδιορίζει τους τομείς μέσα σε μια εικόνα JPEG  που είναι σε διαφορετικά επίπεδα συμπίεσης.  Εάν λοιπόν, τουλάχιστον ένα τμήμα της εικόνας αυτής είναι σε σημαντικά διαφορετικό επίπεδο σφάλματος (σε μεγαλύτερο δυναμικό σφάλματος), τότε αυτό δείχνει ότι πιθανόν η εικόνα έχει υποστεί ψηφιακή επεξεργασία. Έτσι , οι τροποποιημένες περιοχές της εικόνας θα εμφανίζονται με μεγαλύτερο δυναμικό σφάλματος και οι υπόλοιπες περιοχές θα έχουν τις αρχικές τιμές σφάλματος και επομένως οι διαφορές θα είναι ορατές σε ένα έμπειρο μάτι.

Επόμενο είναι λοιπόν, οι αρχικές εικόνες από μια ψηφιακή φωτογραφική μηχανή να έχουν εξ ορισμού υψηλές τιμές E.L.A. Κάθε επόμενη αποθήκευση ύστερα απο τροποποίηση,  θα μειώσει το δυναμικό επίπεδο σφαλμάτων, παρέχοντας ένα πιο σκούρο αποτέλεσμα κατα Error Level Analysis.

Ας δούμε λοιπόν τον αλγόριθμο E.L.A σε δράση με ένα παράδειγμα:

Έστω η παρακάτω αρχική φωτογραφία όπως βγήκε απο μια ψηφιακή φωτογραφική μηχανή σε πρωτογενές επίπεδο.

 

 

 

 

 

 

 

 

 

 

 

 

Η παρακάτω φωτογραφία , είναι με υψηλές τιμές E.L.A , που δηλώνει ότι είναι μη τροποποιημένη φωτογραφία. H φωτογραφία μπορεί να φαίνεται σκουρόχρωμη στο παράδειγμα μας , όμως οι τιμές E.L.A είναι υψηλές.

 

 

 

 

 

 

 

 

 

 

 

Ανοίξαμε την αρχική φωτογραφία και την αποθηκεύσαμε απλά εκ νέου. Παρόλα αυτά, δείτε ότι στο αριστερό και δεξιό μέρος του στήθους, η παρακάτω φωτογραφία είναι πολύ πιο σκουρόχρωμη , δηλαδή με πιο χαμηλές τιμές E.L.A , απο ότι η αμέσως παραπάνω φωτογραφία, κάτι που δηλώνει ότι έχουμε κάνει επεξεργασία.

Γενικότερα , κάθε φορά που η φωτογραφία θα τροποποιείται και θα σώζεται εκ νέου διορθωμένη, θα αποκτά ακόμα πιο χαμηλότερες τιμές E.L.A (δηλαδή θα γίνεται σχετικά ακόμα πιο σκουρόχρωμη ) , και θα φτάσει τελικά στο ελάχιστο επίπεδο σφαλμάτων, όπου αυτό δεν θα μπορεί να αλλάξει πια !

Επιπρόσθετα, με την χρησιμοποίηση του αλγόριθμου E.L.A και με συνεχής αποθηκεύση των φωτογραφιών εκ νέου, μπορεί να υπάρχει ορατή απόσταση μεταξύ των καναλιών χρωματικής φωτεινότητας ως (μπλε / μωβ / κόκκινο) χρώμα που ονομάζεται rainbowing.

Σε γενικές γραμμές, το Adobe Photoshop και άλλα προϊόντα της Adobe παράγουν ένα μεγάλο ποσό rainbowing, ενώ για παράδειγμα το OpenSource πρόγραμμα GIMP παράγει ελάχιστα. Μερικά εργαλεία σχεδίασης, όπως το Paint της Microsoft, δεν παράγουν καθόλου rainbowing.

Η ισχυρή παρουσία ποσών rainbowing λοιπόν μας δείχνει ότι μόνο ένα προϊόν της Adobe, όπως το Photoshop ή Lightroom, χρησιμοποιήθηκε για να αποθηκευθεί η εν λόγο φωτογραφία.

Τελειώνοντας, πέρα απο τους προχωρημένους αλγόριθμους , οι οποίοι εξετάζουν την γνησιότητα μιας φωτογραφίας, δύο επίσης εύκολοι τρόποι για να διαπιστώσει κανείς ότι η εικόνα δεν είναι η πρωτότυπη είναι οι ακόλουθοι:

1 ) Η εξέταση του μεγέθους της εικόνας
Σε γενικές γραμμές, οι ψηφιακές φωτογραφικές μηχανές δεν παράγουν μικρές εικόνες, αλλά το μέγεθος συνήθως είναι 3 – 4 MegaBytes ή πιο σωστά , σίγουρα είναι πάνω απο 1 MegaByte. Οι εικόνες που είναι βελτιστοποιημένες όμως για την χρήση τους στο διαδίκτυο, συνήθως δεν ξεπερνούν τα 500 Kilobyte (optimized for Web ).

2) Αντίστροφη αναζήτηση στο Google
Αν ο ερευνητής δώσει ως είσοδο στο Google την φωτογραφία, και πάρει ως αποτέλεσμα, ότι η φωτογραφία υπάρχει σε εκατοντάδες άλλους ιστότοπους, τότε ξέρει ότι η φωτογραφία δεν είναι η πρωτότυπη.

George Aravidis / Ερευνητής Ασφάλειας Πληροφοριών
Email : aravidis@yahoo.com
PGP Key : www.dailysecurity.eu/sarss.asc
PGP Fingerprint : 5879 7721 B9B2 853C 9F86  EB94 45C0 2D6D 5B4A 7C3C

.