Η στεγανογραφία είναι η διαδικασία κατά την οποία αποκρύπτεται κάποια πληροφορία, που πρέπει να αποσταλεί σε κάποιον παραλήπτη μέσα σε ένα μέσο. Στον σημερινό οδηγό θα δούμε πως μπορούμε να κρύψουμε μηνύματα μέσα σε κάποια εικόνα ή ένα αρχείο ήχου.
Τι είναι η Στεγανογραφία;
Ο σκοπός της στεγανογραφίας είναι η αποστολή της επιθυμητής πληροφορίας κρυμμένης μέσα στο μέσο, έτσι ώστε να μην γίνει αντιληπτή από ανεπιθύμητα άτομα, άλλα μόνο από τον παραλήπτη για τον οποίο προορίζεται.
Σε αντίθεση με την κρυπτογράφηση, όπου είναι προφανές ότι υπάρχει ένα κρυφό μήνυμα, η στεγανογραφία κρύβει τα δεδομένα «μπροστά στα μάτια μας», μέσα σε ένα αρχείο όπως μια φωτογραφία. Έτσι, σε όποιον δεν γνωρίζει ότι περιέχει κρυφά δεδομένα π.χ. η εικόνα, μοιάζει με μια απλή, φυσιολογική εικόνα.
Η στεγανογραφία είναι χρήσιμη σε καταστάσεις όπου η αποστολή κρυπτογραφημένων μηνυμάτων μπορεί να προκαλέσει καχυποψία, όπως σε χώρες όπου η ελευθερίες καταστέλλονται. Χρησιμοποιείται επίσης συχνά ως ψηφιακό υδατογράφημα για να εντοπίσετε πότε κλέβονται εικόνες ή αρχεία ήχου. Advertisements
Πώς εφαρμόζεται η Στεγανογραφία;
Υπάρχουν αρκετές διαφορετικές τεχνικές για την απόκρυψη δεδομένων μέσα σε αρχεία. Ένα από τα πιο ευρέως χρησιμοποιούμενα και ίσως απλούστερα να κατανοηθεί είναι η τεχνική του least significant bit, γνωστού συνήθως ως LSB.
Αυτή η τεχνική αλλάζει τα τελευταία δυαδικά ψηφία σε ένα byte για να κωδικοποιήσει ένα μήνυμα, τα οποία είναι σημαντικά για κάτι σαν μια εικόνα, όπου οι κόκκινες, πράσινες και μπλε τιμές κάθε εικονοστοιχείου αντιπροσωπεύονται από οκτώ bits (ένα byte) που κυμαίνονται από 0 έως 255 σε δεκαδικό ή 00000000 έως 11111111 σε δυαδικό.
Η αλλαγή των δύο τελευταίων δυαδικών ψηφίων σε ένα κόκκινο εικονοστοιχείο π.χ. από 11111111 σε 11111101 αλλάζει μόνο την κόκκινη τιμή από 255 σε 253, κάτι το οποίο σε γυμνό μάτι είναι ανεπαίσθητη αλλαγή στο χρώμα, οπότε και μας επιτρέπει να κωδικοποιούμε δεδομένα μέσα στην εικόνα.
Αυτό το διάγραμμα δείχνει δύο εικόνες απο 4-pixel. Δείχνει και στις δύο τα χρώματα και τις αντίστοιχες δυαδικές τιμές. Κάθε μπλοκ δυαδικής τιμή αντιστοιχεί στην τιμή του αντίστοιχου εικονοστοιχείου.
Η τεχνική του ελάχιστου σημαντικού bit λειτουργεί καλά για αρχεία πολυμέσων, όπου οι ελαφρώς μεταβαλλόμενες τιμές byte δημιουργούν μόνο μικρές ανεπαίσθητες αλλαγές. Παρόλα αυτά σε αρχεία κειμένου (ASCII) δεν λειτουργεί τόσο καλά διότι μπορεί να αλλάξει εντελώς έναν χαρακτήρα/γράμματοσειρά.
Πρέπει επίσης να αναφέρουμε ότι τα δεδομένα που αποκρύπτονται χρησιμοποιώντας τη στεγανογραφία LSB είναι αρκετά εύκολο να ανιχνευθούν, αν φυσικά κάποιος το ψάξει.
Για το λόγο αυτό, υπάρχει μια πληθώρα άλλων τεχνικών στεγανογραφίας με το καθένα να έχει τα δικά του πλεονεκτήματα και μειονεκτήματα.
Χρησιμοποιώντας αποτελεσματικά τη Στεγανογραφία
Λαμβάνοντας υπόψη ότι ορισμένες τεχνικές ψηφιακής στεγανογραφίας είναι καλύτερες από άλλες, γενικά, είναι καλύτερο να αποφύγετε την τεχνική LSB και να πάτε για κάτι πιο περίπλοκο. Στην αρχή βέβαια και η μεθοδολογίες που θα δείξουμε, θα είναι για αρχάριους και θα το χρησιμοποιήσουμε ώστε να πάρετε μια γεύση. Advertisements
Επίσης, πρέπει να λάβετε υπόψιν την κρυπτογράφηση και τη συμπίεση. Η κρυπτογράφηση δεδομένων πριν από την ενσωμάτωσή τους προσθέτει ένα επιπλέον επίπεδο ασφάλειας, ενώ η συμπίεση των δεδομένων σας, θα σας επιτρέψει προφανώς να χωρέσετε περισσότερα στο αρχείο κάλυψης. Και τα δύο προγράμματα κρυπτογράφησης και συμπίεσης μπορούν να συμπεριληφθούν ως προαιρετικές παράμετροι τα οποία και θα καλύψουμε παρακάτω.
Εγκατάσταση και χρήση εργαλείο στεγανογραφίας
Για την χρήση της στεγανογραφίας θα χρησιμοποιήσουμε το εργαλείο Steghide το οποίο είναι πολύ εύκολο στην χρήση του. Για να το εγκαταστήσετε από το τερματικό στο Linux μιας Debian/Ubuntu διανομής.
1 | sudo apt install steghide |
Βήμα 1: Ενσωματώστε τα κρυμμένα δεδομένα σε ένα αρχείο
Αφού εγκατασταθεί, βρείτε ένα αρχείο π.χ. μια εικόνα και ένα αρχείο που θέλετε να ενσωματώσετε στην εικόνα. Για να ενσωματώσετε δεδομένα σε ένα αρχείο, η εντολή έχει την μορφή:
1 | steghide embed -ef απόρρητο_αρχείο -cf αρχείο_εικόνας -sf τελικό_αρχείο -z επίπεδο_συμπίεσης -e τύπος_κρυπτογράφησης |
Τα ορίσματα είναι τα εξής:
- -ef καθορίζει τη διαδρομή του αρχείου που θέλετε να κρύψετε. Μπορείτε να ενσωματώσετε οποιοδήποτε αρχείο, π.χ. κείμενο, κώδικας Python ή bash script.
- -cf είναι το αρχείο στο οποίο θα είναι ενσωματωμένα τα δεδομένα. Αυτό περιορίζεται σε αρχεία τύπου εικόνας (.bmp, .jpg), ήχου (.wav, .au).
- -sf είναι ένα προαιρετικό όρισμα που καθορίζει το αρχείο εξόδου. Εάν παραλείψετε αυτό, το πρωτότυπο αρχείο θα αντικατασταθεί από το νέο σας αρχείο που έχει «στεγανογραφηθεί».
- -z καθορίζει το επίπεδο συμπίεσης μεταξύ 1 και 9. Αν προτιμάτε να μην συμπιέσετε το αρχείο σας, χρησιμοποιήστε το όρισμα -Z (κεφαλαίο).
- -e καθορίζει τον τύπο κρυπτογράφησης. Το Steghide υποστηρίζει μια πληθώρα τεχνικών κρυπτογράφησης και αν το όρισμα παραλειφθεί θα χρησιμοποιήσει κρυπτογράφηση AES 128 bit. Αν προτιμάτε να μην χρησιμοποιείτε κρυπτογράφηση, απλά πληκτρολογήστε -e none.
Στο παράδειγμά μου, μέσα στον /tmp
φάκελο, κρύβω ένα
απόρρητο κείμενο μέσα σε μια εικόνα του φόντου που χρησιμοποιώ στο
desktop μου. Επίσης, χάριν απλότητας, δεν συμπιέζω ενώ παράλληλα δεν
χρησιμοποιώ και την κρυπτογράφηση.
1 | steghide embed -ef krifo_arxeio.txt -cf cerebrux-linux.jpg -e none -Z |
Φαντάζομαι η γραμμή είναι επεξηγηματική από μόνη της.
Αφού εκτελέσετε την εντολή Steghide, θα σας ζητηθεί να ορίσετε έναν κωδικό πρόσβασης που θα σας επιτρέψει να εξαγάγετε αργότερα τα ενσωματωμένα δεδομένα.
Αφού ολοκληρώσετε την διαδικασία, ανοίξτε το τελικό αρχείο… μπορείτε να εντοπίσετε τυχόν διαφορά;
Βήμα 2: Εξαγωγή κρυφών δεδομένων από το αρχείο στεγανογραφίας
Η εξαγωγή κρυφών δεδομένων από μια στερεογραφική εικόνα είναι ακόμα ευκολότερη. Η εντολή έχει την παρακάτω μορφή
1 | $ steghide extract -sf αρχείο_στεγανογρ -xf τελικό_αρχείο |
Μόλις εκτελέσετε αυτήν την εντολή, θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης που βάλατε παραπάνω για να δημιουργήσετε το αρχείο που εξάγεται. Είναι τόσο απλό!
Η απόκρυψη δεδομένων σε εικόνες είναι πολύ εύκολη
Το πλεονέκτημα της στεγανογραφίας είναι ότι μπορείτε να αποκρύψετε τα δεδομένα από το γυμνό μάτι, αλλά αν δεν ακολουθήσετε ορισμένους κανόνες κοινής λογικής μπορεί να την πατήσετε.
Οι μικρές διαφορές που εισάγει η στερεογραφία είναι όντως δύσκολο να ανιχνευθούν, εκτός για παράδειγμα αν κάποιος έχει το πρωτότυπο αρχείο. Χρησιμοποιώντας μια εικόνα που βρήκατε από το διαδίκτυο για να αποκρύψετε μέσα του δεδομένα, το καθιστά εύκολο να εντοπίσετε ότι έχει κρυφές πληροφορίες. Για να το ελέγξει κάποιος, αρκεί να κάνει μια αντίστροφη αναζήτηση εικόνων στο Google για να βεβαιωθεί ότι το πρωτότυπο υπάρχει κάπου.
Πηγή άρθρου: https://cerebrux.net/