Τι θα χρειαστείτε;
1.Kali Linux
Εισαγωγή
Πλέον ζούμε σε μια εποχή που όλες οι επικοινωνίες μας γίνονται ψηφιακά
παρόλο που είναι εύκολος και γρήγορος ο τρόπος ,κανείς δεν σας εγγυάται ότι δεν υποκλέπτονται.
Και όπως γνωρίζετε όλοι το 2013 ο Εντουαρντ Σνοουντεν μας το επαλήθευσε.
όσοι δεν γνωρίζουν διαβάστε εδω
*(καλο θα ητανε να δειτε και το ντοκυμαντερ "Citizenfour")
Στην Ελλαδα υπήρχε το πρόγραμμα "Νόμιμη Συνακρόαση" που εφαρμόστηκε το 2004 με τους ολυμπιακούς αγώνες (Σκάνδαλο Vodafone κτλ)
σαφώς καταλαβαίνετε οτι καμία επικοινωνία δεν είναι ασφαλής
και έτσι ερχόμαστε στην κρυπτογράφηση
Η κρυπτογράφηση ονομάζεται η διαδικασια μετατροπής ενός μηνύματος σε μια ακατανόητη μορφή ώστε να μην μπορεί να διαβαστεί από κανέναν εκτός του νόμιμου παραλήπτη.
Στο παρελθόν οι ποιο αξιόλογες κρυπτογραφησεις που χρησιμοποιήθηκαν ειναι:
- Η Σπαρτιάτικη σκυτάλη
ήταν μια ξύλινη ράβδος, ορισμένης διαμέτρου, γύρω από την οποία ήταν τυλιγμένη ελικοειδώς μια λωρίδα περγαμηνής. Το κείμενο ήταν γραμμένο σε στήλες, ενα γραμμα σε κάθε έλικα, όταν δεν ξετύλιγα τη λωρίδα, το κείμενο ήταν ακατάληπτο εξαιτίας της αναδιάταξης των γραμμάτων. Το «κλειδι» ηταν η διάμετρος της σκυτάλης
πχ
- ο Κωδικας του Καισαρα
Ειναι κωδικας αντικαταστασης στον οποιο καθε γραμμα του κειμενου αντικαθισταται απο καποιο αλλο γραμμα με σταθερη αποσταση καθε φορα στο αλφαβητο. Για παραδειγμα, με μετατοπιση 3, το A θα αντικαθιστουνταν απο το D, το B απo το E, κτλ
πχ
οποτε vdlo0u ειναι η λεξη sail0r
Ο τροπος λειτουργιας του πινακα ειναι:
καθε γραμμα αναπαρισταται απο τις συντεταγμενες του στο πινακα.
Ετσι η λεξη "καλημερα" χρησιμοποιωντας τον διπλανο πινακα μετασχηματιζεται σε
25 11 31 22 32 15 42 11
- η συσκευη Enigma των Ναζι
και φτανουμε στο σημερα που η κρυπτογραφηση γινετε απο υπολογιστες
εμεις σε αυτο τον οδηγο θα χρησιμοποιησουμε το PGP (Pretty Good Privacy)
το PGP ειναι ενα εργαλειο το οποιο κρυπτογραφει τα μηνυματα σας
οποτε ας αρχισουμε
πρωτα πρεπει να δημιουργησουμε το public key μας
ανοιγουμε ενα τερματικο και γραφουμε
gpg --gen-key
επιλεγουμε 1
επιλεγουμε το μεγεθος που θελουμε να εχει το κλειδι μας οσο ποιο μεγαλο ειναι τοσο ποιο αργα θα κανει να κρυπτογραφηση η να αποκρυπτογραφηση αλλα θα ειναι σαφεστατα ποιο ασφαλη οποτε βαζουμε 4096
τωρα βαζουμε ποτε θα ληγει το κλειδι μας αναλογα με τις αναγκες σας διαλεγετε
επιλεγουμε 0
μετα θα μας ρωτισει αν ειμαστε σιγουροι οτι το κλειδι μας δεν ληγει ποτε
επιλεγουμε y
βαζουμε το ονομα μας η το ψευδωνυμο (θα βαλετε το ψευδωνυμο σας εφοσον αν προκειτε για μια μυστικη συνομιλια) και το email ,δεν εχει σημασια τι θα βαλετε φτανει ο αποδεχτης που θα στειλετε το κρυπτογραφημενο μηνυμα να αναγνωρισει οτι ειστε εσεις
γραφουμε O και πληκτρολογουμε τον κωδικο που θελουμε να εχει το κλειδι ,με αυτο το τροπο αν καποιος παρει το κλειδι μας δεν θα μπορει να υπογραψει αλλα ουτε να στηλει κρυπτογραφημενα μυνηματα εκμερους μας
τωρα ενω κανουμε τυχαιες κινησεις με το mouse η καθως γραφουμε ενα κειμενο καλη ωρα εγω τωρα που γραφω αυτο τον οδηγο δημιουργει τον αλγορυθμο
και τελος μας εχει φτιαξει το κλειδι
τωρα θα φτιαξουμε το αρχειο revoke ετσι ωστε αν το κλειδι μας εκτεθει να μπορουμε να το ανακτησουμε
οποτε τρεχουμε την εντολη ωστε να δουμε το κλειδι
gpg --list-keys
και
gpg --output anakthsh.asc --gen-revoke 99A2B6E1
επιλεγουνε τον λογο που θελουμε να δημιουργησουμε το αρχειο ανακτησης
επιλεγουμε 0 βαζουμε τον κωδικο και μας δημιουργειτε το αρχειο anakthsh,asc
περνουμε το αρχειο anakthsh,asc και το μεταφερουμε καπου ασφαλες
για να καταλαβετε πως δουλευει το pgp πχ εγω θελω να κρυπτογραφησω ενα μυνημα και να το στειλω στον Μητσο πρεπει πρωτα να επικοινωνησω με τον Μητσο ωστε να μου στηλει το public key και να του στειλω και εγω το δικο μου.δλδ στελνωντας στον Μητσο το public key μου θα μπορει να κρυπτογραφει μυνηματα εκμερους μου και να μου τα στελνει εφοσον ειναι δικο μου το public key και με το private key ΜΟΝΟ εγω μπορω να αποκρυπτογραφησω τα μυνηματα .Το ιδιο ισχυει και για τον Μητσο δλδ μου στελνει το public key του κρυπτογραφω τα μηνυματα που θελω να του στειλω και αυτος με το private key του τα αποκρυπτογραφει
τωρα εφοσον τα εχουμε ρυθμισει ολα παμε να παρουμε το public key του ανθρωπου που θελουμε να επικοινωνησουμε και να ανεβασουμε και το δικο μας public key ωστε να μπορει να το παρει και αυτος
εμεις το ανεβαζουμε με την εντολη
gpg --send-keys --keyserver pgp.mit.edu 99A2B6E1
ας πουμε οτι θελω να επικοινωνησω με τον nickthesail0r ψαχνω στο server που φοιλοξενει τα κλειδια με την εντολη
gpg --keyserver pgp.mit.edu --search-keys nickthesail0r
στο πανω παραδειγμα επητηδες δημιουργησα 5 κλειδια και τα ανεβασα στον keyserver για να δειτε το εξεις προβλημα
Παρολο που ολα λενε nickthesail0r και εχουνε το email πως ξερω εγω οτι ειναι οντως ο nickthesail0r ?
και αν παρω το public key και κρυπτογραφω εκμερους του πως θα ξερω οτι θα μπορουν να διαβαζοντε απο αυτον?και οτι επικοινωνω με τον ιδιο?
πολυ απλα δεν το ξερω γιαυτο πρεπει να επικοινωνησει μαζι μου με ασφαλη τροπο και να μου επαληθευσει το αποτυπωμα (fingerprint) απο το public key του
για να δουμε το fingerprint γραφουμε την εντολη
gpg --fingerprint
οποτε οταν καποιος κατεβασει το public key μου τοτε πρεπει να επικοινωνησει με ενα ασφαλη τροπο και να του επιβαιβεωσω το key fingerprint πχ
C130 106E B2EF 4609 1A71 156A 12B6 988A 4347 933C
μετα να το εισαγει και να το υπογραψει ετσι ωστε να ξερω οτι το μηνυμα προηλθε απο αυτον
για να καταλαβετε καλυτερα θα δημιουργησω τον Alpha και τον Bhtaa
απο την μερια του Alpha
δημιουργουμε το κλειδι
gpg --gen-key
βλεπουμε το κλειδι
gpg --list-keys
και ανεβαζουμε το κλειδι
gpg --send-keys --keyserver pgp.mit.edu BFFCC10C
απο την μερια του Βhtaa η ιδια διαδικασια
τωρα απο την μερια του Alpha ψαχνουμε για τον βητα
gpg --keyserver pgp.mit.edu --search-keys Bhtaa
επιλεγουμε 1 και εισαγουμε το κλειδι
και με την εντολη gpg --list-keys βλεπουμε οτι το εχουμε εισαγει
τωρα για να δουμε το fingerprint γραφουμε
gpg --fingerprint Bhtaa
οποτε τωρα η μεσω τηλεφωνου η οποιδηποτε αλλου τροπου που νομιζετε οτι ειναι ασφαλης επικοινωνειτε για να σας επιβεβαιωση ο Bhtaa οτι αυτο ειναι το fingerprint του
πχ
και το ιδιο κανει και ο Bhtaa
τωρα εφοσον εχουνε και οι δυοι επιβεβαιωσει το public key του καθενος τοτε πρεπει να υπογραψουνε το public key δλδ ο Alpha να υπογραψει το public key του Bhtaa ωστε ο Bhtaa να ξερει οτι το κρυπτογραφημενο μηνυμα προηλθε απο τον Alpha
οποτε ο Alpha με την εντολη
gpg --sign-key Bhtaa (*η 427AC3BB)
υπογραφη το public key του Bhtaa
τωρα ο Alpha γραφει το μηνυμα σε ενα αρχειο κειμενου το αποθηκευει και το κρυπτογραφει με την εντολη
gpg --encrypt -r Bhtaa --armor /root/Desktop/μηνυμα.txt
με την εντολη cat /root/Desktop/μηνυμα.txt.asc ο Alpha μπορει δει το κρυπτογραφημενο μνμ
και τωρα ο Alpha θα το στηλει στον Bhtaa
* o Alpha μπορει η να αντιγράψει ολο το κρυπτογραφημενο κείμενο και να το στηλει η να στηλει ολο το αρχειο (μηνυμα.txt.asc)
πως το στελνει? πολυ απλα με email
απο την μερια του o Bhtaa οταν παρει το email θα το αντιγράψει,σε ενα τερματικο θα γραψει
gpg
θα κανει επικόλληση του κρυπτογραφημενου μηνύματος ,θα βαλει τον κωδικο του και τελος θα πατησει ctrl+D , το μηνυμα θα αποκρυπτογραφηθεί
Μπορείτε να μην ανεβάστε το public key σας στους server και να το στειλετε κατευθειαν στον ανθρωπο που θελετε να επικοινωνήσετε
ο αλλος θα το αντιγράψει και με την εντολη
gpg --import
θα κανει επικόλληση και μετα ctrl+D
Προσοχή θα σας συμβούλευα να εξασκηθείτε στη χρηση του gpg πριν αρχίσετε την επικοινωνία
Το pgp μπορειτε να το κανετε εγκατάσταση και στα windows αλλα για λόγους ασφαλείας επειδή αναφέρθηκε οτι δεν σου παρέχει καθόλου ασφάλεια δεν θα αναφερθώ καν
τωρα για οσους εχουνε android μπορείτε να κατεβάσετε το OpenKeychain πατήστε εδω
αλλα αν δειτε τις άδειες που ζητάει σαν εφαρμογη
σίγουρα δεν θα νιωσετε ασφάλεια
οπως και να εχει το καλο ειναι οτι σας δινει ολο τον κώδικα της εφαρμογής και μπορείτε να τον φτιάξετε στο eclipse το οποιο θα δουμε σε επόμενο οδηγο
πατηστε εδω
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου