Εργαστήριο: Ασφάλεια Πληροφοριακών Συστημάτων
Η στεγανογραφία είναι η τέχνη, που στις μέρες μας έχει εξελιχθεί και σε τεχνική, της επικοινωνίας κατά τρόπο τέτοιο που να κρύβεται η ίδια η ύπαρξη της επικοινωνίας. Σε αντίθεση με τη κρυπτογράφηση, όπου επιτρέπεται στον "εχθρό" να ανιχνεύσει και να παρεμβληθεί ή να αιχμαλωτίσει τη πληροφορία, ο στόχος της στεγανογραφίας είναι να κρύψει την πληροφορία μέσα σε άλλη "αθώα" πληροφορία με τέτοιο τρόπο που δεν αφήνει περιθώρια στον "εχθρό" ούτε να ανιχνεύσει την ύπαρξή της
Χρησιμοποιείται η απόκρυψη πληροφορίας μέσα σε μία άλλη πληροφορία. Εναλλακτικός τρόπος απόκρυψης μηνύματος Το μήνυμα κρύβεται με διάφορους τρόπους Κανείς δεν υποπτεύεται την ύπαρξή του. Στηρίζεται στο γεγονός ότι οι ανθρώπινες αισθήσεις δεν είναι δυνατό αντιληφθούν μικρές αλλαγές. Η στεγανάλυση αναφέρεται σε μεθόδους που διαχωρίζουν την κρυμμένη πληροφορία από την ορατή πληροφορία
Μία άλλη περίπτωση απόκρυψης πληροφορίας μέσα σε μία άλλη είναι το Ψηφιακό Υδατογράφημα Πληροφορία εισηγμένη σε ένα μέσο με τέτοιο τρόπο ώστε να μην είναι δυνατή η απομάκρυνσή της Θα μπορούσε να περιγράφει τα πνευματικά δικαιώματα Στόχος του επιτιθέμενου είναι να απομακρυνθεί το υδατογράφημα Η υδατογραφία και η στεγανογραφία μοιράζονται μεταξύ τους πολλά κοινά στοιχεία. Διαφέρουν ωστόσο στο σκοπό, στα χαρακτηριστικά και στις μεθόδους εντοπισμού και εξαγωγής.
Πίνακες με κερί Ένα από τα πρώτα κείμενα που περιγράφουν τη στεγανογραφία έρχεται από τον Ηρόδοτο. Στην αρχαία Ελλάδα τα κείμενα γράφονταν σε πίνακες καλυμμένους με κερί. Σε μια αφήγηση ιστορικού γεγονότος αναφέρεται ότι ο Δημάρατος ήθελε να ειδοποιήσει τη Σπάρτη ότι ο Ξέρξης προτίθετο να εισβάλει στην Ελλάδα. Για να αποφύγει την κλοπή του μηνύματος έγραψε το μήνυμά του σε ξύλινη πινακίδα, αφού έξυσε το κερί που αυτή είχε και την οποία μετά κάλυψε πάλι με κερί. Οι πινακίδες φαίνονταν λευκές και αχρησιμοποίητες και με αυτό το τρόπο πέρασαν κάθε έλεγχο.
Αόρατο μελάνι. Δημοφιλής μέθοδος μέχρι και στον 2ο Παγκόσμιο Πόλεμο. Αρχικά με μελάνι από φρούτα, ξύδι, γάλα και άλλα συστατικά που σκουραίνουν όταν θερμαίνονται. Αργότερα αναπτύχθηκαν νέα, χημικά, υλικά που ήθελαν συγκεκριμένη διαδικασία για να εμφανίσουν αυτά που κρύβανε.
"Null ciphers" μη κρυπτογραφημένων μηνυμάτων Ένα τυχαίο κείμενο στο οποίο η πληροφορία βρίσκεται σε κάθε δεύτερο, για παράδειγμα, γράμμα των λέξεων του κειμένου Οι Γερμανοί ανέπτυξαν τη τεχνολογία των μικροτελειών (microdots). Οι μικροτελείες είναι φωτογραφίες υψηλής ανάλυσης και ασήμαντου μεγέθους τελείες. Αυτό το σύστημα χρησιμοποιήθηκε από Γερμανούς κατασκόπους κατά τον δεύτερο παγκόσμιο πόλεμο.
Έχουμε το αθώο, φαινομενικά, κείμενο: Παίρνοντας το πρώτο γράμμα από κάθε λέξη του παραπάνω κειμένου διαβάζουμε το κρυμμένο μήνυμα:
Οι παρούσες μέθοδοι παροχής πρακτικών στεγανογραφικών υπηρεσιών έχουν δύο κύριους άξονες κατευθύνσεων: Ο πρώτος, ο οποίος δεν είναι και τόσο αποδοτικός, απογυμνώνει τα κρυπτογραφημένα μηνύματα από οποιαδήποτε πληροφορία που αναφέρεται στη ταυτότητά τους. Για παράδειγμα το πρόγραμμα Stealth επεξεργάζεται κατά τέτοιο τρόπο τα κρυπτογραφημένα με PGP μηνύματα που φαίνονται σαν άχρηστη πληροφορία. Ο δεύτερος άξονας της στεγανογραφίας είναι η απόκρυψη δεδομένων μέσα σε άλλα αρχεία.
Κείμενο Υποσύνολο γραμμάτων ή λέξεων σε ένα ανεξάρτητο μεγάλο μήνυμα (π.χ. NullCipher) Αόρατη μελάνη Μικρές τρύπες πάνω σε σελίδες κειμένου Αχρησιμοποίητος χώρος Αποθηκευτικά μέσα Εικόνες, μουσικά κομμάτια, βίντεο Στο LSB (Least Significant Bit) Πρωτόκολλα επικοινωνίας Επικεφαλίδες πακέτων Κανάλια επικοινωνίας Όπως οι τηλεφωνικές γραμμές και οι εκπομπές ράδιο εκπέμπουν σήματα που συνοδεύονται πάντα από κάποιο θόρυβο. Αυτός ο θόρυβος μπορεί να αντικατασταθεί από κάποιο μυστικό σήμα που έχει τη μορφή θορύβου για κάποιον που δεν γνωρίζει το μυστικό κλειδί.
Πλεονεκτήματα Η χρήση της κρυπτογραφίας είναι σε κάποιες περιπτώσεις προβληματική επειδή η παρουσία κρυπτογραφημένης πληροφορίας αποτελεί στόχο. Με τη στεγανογραφία η πληροφορία δεν κρυπτογραφείται, απλά κρύβεται. Βασίζει την ασφάλειά της στο γεγονός ότι κάποιος δεν μπορεί να ψάξει για κάτι που δεν γνωρίζει εάν υπάρχει. Είναι πολύ πιο εύκολο για κάποιον να αρνηθεί την αποστολή ενός κρυμμένου στεγανογραφικά μηνύματος από το να το κάνει για ένα κρυπτογραφημένο. Μειονεκτήματα Υψηλή επιβάρυνση για λίγη πληροφορία Αν η μέθοδος αποκαλυφθεί τότε δεν παρέχεται καμιά προστασία
Εάν κάποιος ήθελε να εξετάσει ένα αρχείο με κρυμμένες πληροφορίες θα μπορούσε να τις βρει. Στη χειρότερη περίπτωση θα μπορούσε να καταλάβει ότι αυτές υπάρχουν έστω και αν δεν τις έβλεπε. Εάν οι κρυμμένες πληροφορίες είναι κρυπτογραφημένες τότε σίγουρα θα φτάσει μέχρι αυτό το σημείο και θα σταματήσει. Ωστόσο εάν δεν είναι κρυπτογραφημένες τότε θα είναι σε θέση να εξετάσει όλο το "κρυμμένο" μήνυμα. Για το λόγο αυτό δεν θα πρέπει να θεωρούμε τη στεγανογραφία σαν αντικαταστάτη της κρυπτογραφίας αλλά ως συμπλήρωμά της.
Ας πάρουμε το παράδειγμα μιας εικόνας JPEG. Για να εξηγήσουμε πως είναι δυνατή η απόκρυψη πληροφοριών σε ένα τέτοιο αρχείο, θα πρέπει να περιγράψουμε από τι αποτελείται.
Γενικά ένα αρχείο εικόνας είναι στην πραγματικότητα αριθμοί! Κάθε εικόνα αποτελείται από ένα συγκεκριμένο αριθμό pixels. Αρκεί λοιπόν να περιγράψουμε το χρώμα που θα έχει κάθε pixel σε αυτήν. Οι υπολογιστές αντιλαμβάνονται τα χρώματα με έναν συνδυασμό τριών βασικών χρωμάτων (RGB = Red, Green, Blue). Αν μια εικόνα είναι αποθηκευμένη με 24bit Color Depth, αυτό αυτομάτως σημαίνει ότι κάθε pixel της περιγράφεται με 24 bits. Kάθε χρώμα μπορεί να περιγραφεί με 256 διαφορετικές τιμές. Έτσι ένα μαύρο εικονοστοιχείο θα έχει (0,0,0) ενώ ένα άσπρο (255,255,255), όπου σε δυαδικό είναι ο αριθμός (11111111, 11111111, 11111111).
Το ανθρώπινο μάτι καταλαβαίνει χρώματα που μπορούν να περιγραφούν με μονάχα 16 bits (και εδώ δε μπορείτε να κάνετε καμία αναβάθμιση!). Συγκεκριμένα 5 για το κόκκινο, 6 για το μπλε και 5 για το πράσινο. Αν λοιπόν μια εικόνα είναι αποθηκευμένη σε 24bit, όπως είδαμε παραπάνω, τότε έχουμε στη διάθεσή μας 8 bits από κάθε εικονοστοιχείο που μπορούμε να μεταβάλουμε, χωρίς οι αλλαγές να γίνουν αντιληπτές! Μία διαδεδομένη στεγανογραφική τεχνική χρησιμοποιεί το λιγότερο σημαντικό ψηφίο (Least Significant Bit - LSB) για να αποθηκεύει ένα κρυφό μήνυμα, μέσα σε ένα άλλο αρχείο. Αλλάζοντας λοιπόν το ψηφίο αυτό για κάθε ένα από τα 3 χρώματα ενός pixel, το αποτέλεσμα δεν θα ήταν ορατό στο ανθρώπινο μάτι, αλλά θα ήταν ικανό για να αποθηκεύσει ένα κρυφό μήνυμα. Αν λοιπόν κρυπτογραφήσουμε ένα μήνυμα, χρησιμοποιώντας μια αρκετά μεγάλη κωδική λέξη, θα είναι δύσκολο να αποκρυπτογραφηθεί από έναν μη εξουσιοδοτημένο παραλήπτη. Θα καταλάβει όμως ότι το μήνυμα που στείλαμε είναι κρυπτογραφημένο! Αν όμως το αποθηκεύσουμε σε ένα αρχείο υπεράνω πάσης υποψίας (πχ. ένα παιδικό σχέδιο), τότε θα είναι πολύ δύσκολο να καταλάβει ότι αυτό που έλαβε κρύβει πληροφορίες! Δύσκολο αλλά όχι αδύνατο
Όπως ακριβώς η κρυπτανάλυση εφαρμόζει διάφορες τεχνικές με σκοπό την αποκρυπτογράφηση της πληροφορίας, έτσι και η στεγανάλυση εφαρμόζοντας δικές της τεχνικές αποσκοπεί στην ανίχνευση της κρυμμένης πληροφορίας. Υπάρχουν δύο τύποι επιθέσεων κατά των στεγανογραφικά κρυμμένων μηνυμάτων: η ανίχνευση και η απόσπαση τους. Κάθε εικόνα μπορεί να τροποποιηθεί με στόχο την καταστροφή κάποιας κρυμμένης πληροφορίας που πιθανόν να υπάρχει μέσα της. Η ανίχνευση της ύπαρξης κρυμμένης πληροφορίας εξοικονομεί χρόνο από τη διαδικασία καταστροφής ή ανάκτησής της αφού αυτή θα γίνεται μόνο όταν η πληροφορία βρεθεί.
Η ορολογία των στεγαναλυτικών τεχνικών είναι παρόμοια με αυτή των τεχνικών κρυπτανάλυσης, υπάρχουν ωστόσο και σημαντικές διαφορές. Ισχύει η παρακάτω, περιγραφική της λειτουργίας του συστήματος, εξίσωση : Μέσο μεταφοράς + Μήνυμα + Στεγο-κλειδί = Στεγο-μέσο όπου : Μέσο μεταφοράς: εικόνα, ήχος, κείμενο ή κάποιος άλλος ψηφιακός κώδικας Μήνυμα: η πληροφορία που θέλουμε να κρύψουμε που μαζί με το μέσο μεταφοράς αποτελούν το στεγο-φορέα (stego-carrier) Στεγο-κλειδί: επιπλέον πληροφορία ασφάλειας
S-Tool Το S-Tools είναι ένα λογισμικό κρυπτογράφησης με στεγανογραφικές ικανότητες. Κρύβει αρχεία σε αρχεία τύπου BMP, GIF και WAV αφού πρώτα τα συμπιέσει και τα κρυπτογραφήσει. Τρέχει σε Windows και υποστηρίζει την τεχνική drag and drop. Χρησιμοποιεί τις εγκαταστάσεις που παρέχονται σε μια ελεύθερα διαθέσιμη βιβλιοθήκη κρυπτογράφησης cryptlib (η οποία υποστηρίζει γνωστούς αλγόριθμους κρυπτογράφησης όπως AES, Blowfish, κ.λπ.) για να εκτελέσουν την κρυπτογράφησή του. Πριν το χρησιμοποιήσετε, διαβάστε το αρχείο βοήθειας. Είναι freeware. SpamMimic Δέχεται σαν είσοδο μία φράση και από το κείμενο αυτό δημιουργεί ένα spam Email. Η φράση μπορεί να αποκαλυφθεί με password αλλά και χωρίς ανάλογα από το επίπεδο ασφάλειας που επιλέγουμε.
JPG: Μέχρι στιγμής το μόνο στεγανογραφικό πρόγραμμα που κρύβει δεδομένα σε κωδικοποίηση JPEG είναι το Jpeg-Jsteg. GIF: Το καλύτερο εργαλείο για στεγανογράφηση σε GIF μορφή είναι το S- Tools 4. BMP: Στη περίπτωση αυτή η δουλειά μπορεί να γίνει με συνδυασμό των S- Tools 4 και Hide4PGP. WAV: Ισχύει ότι και στη περίπτωση των αρχείων BMP. VOC: Μόνο το Hide4PGP μπορεί να επεξεργαστεί αρχεία φωνής.
GZ: Ο τύπος αυτός αντιστοιχεί σε αρχεία που προκύπτουν από τον αλγόριθμο συμπίεσης του Linux και άλλων UNIX συστημάτων. Το GZ σημαίνει Gnu Zip ή Gzip. Στα PC τα αρχεία που συμπιέζονται με το GZ διατηρούν τα πρώτα δύο γράμματα της κατάληξής τους και το τρίτο αντικαθίσταται με το γράμμα "z". Για παράδειγμα το αρχείο README.TXT θα γινότανε README.TXZ. Τέλος, το πρόγραμμα που χρησιμοποιείται είναι το GZSteg. TXT: Το "Texto" είναι ένα πρόγραμμα που παίρνει σαν είσοδο κρυπτογραφημένα με PGP (ASCII) αρχεία και παράγει ένα αρχείο αποτελούμενο από ακατανόητες φράσεις. Το "Snow" είναι ένα πρόγραμμα που κρύβει δεδομένα χρησιμοποιώντας tabs και κενά στο τέλος των γραμμών ενός αρχείου κειμένου.
Ένα εύκολο στη χρήση εργαλείο στεγανογραφίας για Linux (και άλλα UNIXoειδή) είναι το Outguess, το οποίο κρύβει μηνύματα μέσα σε εικόνες. Μπορείτε να κρύψετε ένα κείμενο σε μια εικόνα δίνοντας απλά την εντολή: outguess -d message.txt picturein.jpg pictureout.jpg Οποιοσδήποτε όμως πάρει το αρχείο pictureout.jpg και τρέξει το outguess για να εξάγει κάποιο κρυμμένο μήνυμα που ίσως υπάρχει, δεν θα αντιμετωπίσει κανένα εμπόδιο. Για αυτό, υπάρχει και η επιλογή -k για τον ορισμό ενός κωδικού: outguess -k abcdefg123 -d message.txt picturein.jpg pictureout.jpg
Προσπαθώντας τώρα κάποιος να αποκρυπτογραφήσει την εικόνα, θα του ζητηθεί πρώτα ο κωδικός. Μπορείτε επίσης να κρύψετε δύο διαφορετικά αρχεία με κάποιο μήνυμα μέσα στην ίδια εικόνα: outguess -k "abcd123" -d message.txt -E -K efg456" -D message2.txt picturein.jpg pictureout.jpg Για να εξάγετε το πρώτο μήνυμα αρκεί να δώσετε την εντολή: outguess -k "abcd123" -e -r pictureout.jpg message1.txt Και για το δεύτερο: outguess -k "efg456" -e -r pictureout.jpg message2.txt Η επιλογή -e χρησιμοποιείτε για διόρθωση σφαλμάτων κατά την κωδικοποίηση και αποκωδικοποίηση του μηνύματος μέσα στην εικόνα.
Για να εξάγετε το ένα και μοναδικό μήνυμα από μια εικόνα δίνετε την ίδια εντολή, με παράληψη τηςεπιλογής -e: outguess -k "abcdefg123" -r pictureout.jpg message.txt Εάν δεν έχετε ορίσει κωδικό τότε παραλείπεται η επιλογή -k. Μια άλλη χρήσιμη διαθέσιμη επιλογή είναι η -p η οποία ορίζει την ποιότητα της εικόνας. Παίρνει τιμές από 75 μέχρι 100. Όσο μεγαλύτερη είναι η ποιότητα της εικόνας αυξάνονται τα bits της εικόνας, πράγμα που κάνει δυσκολότερη την ανίχνευση των αλλαγμένων bits. Εάν δεν ορίσετε το τύπο του αρχείου, το outguess προσπαθήσει να κάνει χρήση του pixmap file format - PPM. Άτομα που εργάζονται για την ανάπτυξη του outguess, έχουν δημιουργήσει ένα άλλο εργαλείο, το stegdetect το οποίo μπορεί και ανιχνεύει εάν κάποια εικόνα κρύβει κάποιο μήνυμα ή όχι. Στη συνέχεια τρέχει το stegbreak το οποίο με τη σειρά του προσπαθεί μέσω brute-force να βρεί τον κωδικό. Για αυτό λοιπόν, επιλέξτε κάποιον σύνθετο κωδικό και όχι αυτούς των παραδειγμάτων. Το outguess, καθώς και το stegdetect, είναι διαθέσιμο από τη σελίδα: http://www.outguess.org/
Η επιθέσεις brute-force περιλαμβάνουν την εξαντλητική δοκιμή πιθανών κλειδιώνπου παράγουν ένα κρυπτογράφημα, ώστε να αποκαλυφθεί το αρχικό μήνυμα. Τέτοιου είδους επιθέσεις, οι οποίες χρησιμοποιούν όλα τα δυνατά κλειδιά, μπορούν πάντοτε να πραγματοποιηθούν. Συχνά, όμως, ο επιτιθέμενος ξεκινά την επίθεση χρησιμοποιώντας πιο "πιθανά", κατά την άποψή, του κλειδιά, προσπαθώντας με αυτό τον τρόπο να βρεί το κλειδί πιο γρήγορα. Πρακτικά, η αναζήτηση σταματά μόλις βρεθεί το κλειδί, χωρίς να χρειαστεί περαιτέρω ενημέρωση της λίστας κλειδιών. Στην ακαδημαϊκή βιβλιογραφία η μέθοδος brute-force είναι ένα μέτρο της ασφάλειας ενός αλγόριθμου κρυπτογράφησης. Ένας αλγόριθμος κρυπτογράφησης θεωρείται "σπασμένος" αν υπάρχει αλγόριθμος κρυπτανάλυσης, ο οποίος μπορεί να βρει το κλειδί με μικρότερη πολυπλοκότητα από τη μέθοδο brute-force, ανεξαρτήτως εάν αυτή η προσπάθεια υπολογισμού είναι εφικτή στην πράξη. Συνήθως, το μήκος των κρυπτογραφικών κλειδιών επιλέγεται με τρόπο τέτοιο, ώστε να απαιτείται υπερβολικά μεγάλος χρόνος υπολογισμών (με βάση τις τρέχουσες υπολογιστικές δυνατότητες) και άρα να μην έχει χρηστική αξία μία τέτοιου είδους επίθεση.
Κατεβάστε από το eclass (Έγγραφα Σημειώσεις Εργαστηρίου) τις παρακάτω εικόνες στο computer σας: Cherry-blossoms.bmp Cherry-hidden.bmp Κατόπιν τρέξτε το S-Tools 4.0. Χρησιμοποιώντας το S-tools, αποσπάστε το κρυφό αρχείο μέσα από τις εικόνες cherry-hidden.bmp χρησιμοποιώντας το password "hy-457" και αλγόριθμό IDEA. Χρησιμοποιώντας το Notepad ή κάποιο άλλο editor, δημιουργείστε ένα αρχείο κειμένου με το ΑΜ σας σαν όνομά του και κατάληξη ".txt". Γράψτε το όνομά σας μέσα στο αρχείο, το ΑΜ σας και ότι άλλο θέλετε. Κρύψτε το αρχείο αυτό μέσα στην εικόνα cherry-blossoms.bmp χρησιμοποιώντας το password test1. Αυτό μπορείτε να το πετύχετε με το να κάνετε drag την εικόνα cherry-blossoms.bmp στο παράθυρο του S-Tools window και μετά να κάνετε drag το αρχείο σας πάνω από το προηγούμενο αρχείο. Η εικόνα που προκύπτει είναι δυνατό να σταλεί με email ή να αποθηκευτεί. Σώστε την εικόνα με το κρυμμένο αρχείο σε ένα αρχείο με όνομα το ΑΜ σας και κατάληξη ".bmp". Ο παραλήπτης μπορεί να εξαγάγει την κρυμμένη πληροφορία.
Βρείτε στο internet ένα πρόγραμμα διαφορετικό του S-tools (google "steganography tools") το οποίο μπορεί να χρησιμοποιηθεί για το κρύψιμο πληροφορίας μέσα σε άλλη πληροφορία. Τέτοια tools υπάρχουν π.χ. στα παρακάτω links: http://www.cotse.com/tools/stega.htm http://www.jjtc.com/security/stegtools.htm http://www.softpedia.com/hubs/steganography-tools http://lmgtfy.com/?q=steganography+tools+download
Κρύψτε ένα αρχείο (πχ text, image) μέσα σε μία εικόνα, αρχείο ήχου ή άλλο κείμενο χρησιμοποιώντας το πρόγραμμα που βρήκατε. a) Ποιο είναι το πρόγραμμα που χρησιμοποιήσατε και από ποιο site το κατεβάσατε; b) Υπάρχει κάποιος περιορισμός όσο αφορά το μέγεθος του αρχείου που θέλετε να κρύψετε; c) Το πρόγραμμα παρέχει χρήση κωδικού για περισσότερη ασφάλεια; Στην αναφορά σας περιγράψτε αναλυτικά τον τρόπο με τον οποίο είναι δυνατό να κρυφτεί αλλά και να αποκαλυφθεί η κρυμμένη πληροφορία (τόσο από άποψη interface όσο και αλγόριθμου). Δείξτε με screenshots την όλη διαδικασία (και κρύψιμο και αποκάλυψη).