Notice icon attention yellow.png Τα περιεχόμενα του ιστότοπου δεν ανανεώνονται από το καλοκαίρι του 2015. Τα άρθρα πιθανόν να έχουν ελλείψεις ή ανακρίβειες. Συμβουλευτείτε και μια δεύτερη πηγή γνώσης πριν εφαρμόσετε πρακτικές οδηγίες.

Ασφαλής επικοινωνία μέσω Instant Messaging και Chat

Από Skytales
Μετάβαση σε: πλοήγηση, αναζήτηση
Notice icon rfc purple.png Ζητούνται σχόλια και παρατηρήσεις.

Το άρθρο αυτό έχει προσφάτως πάρει μία ολοκληρωμένη μορφή.

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

Αφήστε τα σχόλια σας στη σελίδα συζήτησης αυτού του άρθρου.

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

Γενικά[επεξεργασία]

Im-icon.png

Ως Instant Messaging ορίζουμε μια μορφή άμεσης, βασισμένης σε κείμενο, αμφίδρομης επικοινωνίας σε πραγματικό χρόνο. Γνωστές εμπορικές πλατφόρμες instant messaging είναι το msn ή windows live messenger, το google talk, το skype.

Πρέπει να γνωρίζουμε όμως πως κάθε φορά που στέλνουμε ένα μήνυμα μέσω instant messaging, το μήνυμα αυτό δε φτάνει μαγικά στον προορισμό του. Θα περάσει από πολλούς κόμβους στο διαδίκτυο μέχρι να φτάσει στον παραλήπτη. Έτσι τα μηνύματα μπορούν να υποκλαπούν ή να αλλοιωθούν από κυβερνητικές υπηρεσίες στο πλαίσιο στοχευμένης ή μαζικής παρακολούθησης, από αφεντικά που ελέγχουν την κίνηση του δικτύου της εταιρίας στην οποία μπορεί να εργαζόμαστε, από κάποιον υπάλληλο του ISP μας ή του παρόχου υπηρεσιών email, από κάποιον περίεργο γείτονα που έχει συνδεθεί στο ασύρματο τοπικό μας δίκτυο.

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

Πρωτόκολλα Instant messaging[επεξεργασία]

MSN, Skype, GoogleTalk, Yahoo, Facebook[επεξεργασία]

Prism-slide-5.jpg

Άκρως απόρρητη διαφάνεια που διέρρευσε στον τύπο ο Edward Snowden, πρώην διαχειριστής συστημάτων στην NSA. Η διαφάνεια αναφέρεται σε μυστικό πρόγραμμα της NSA, το Prism, το οποίο περιλαμβάνει τη συλλογή δεδομένων χρηστών από τους κεντρικούς servers των αναγραφόμενων παρόχων (με τη συνεργασία τους).

XMPP ή Jabber[επεξεργασία]

XMPP logo.png

Το XMPP (Extensible Messaging and Presence Protocol), αρχικά με ονομασία Jabber, είναι ένα ανοιχτού προτύπου, πρωτόκολλο επικοινωνίας πραγματικού χρόνου με μηνύματα. Το XMPP σε αντίθεση με τα περισσότερα πρωτόκολλα, χρησιμοποιεί μια ανοιχτή προσέγγιση για την ανάπτυξη και την εφαρμογή του. H IETF μέσω της ομάδας εργασίας για το XMPP, ορίζει ανοιχτά το πρότυπο πάνω στο οποίο ο καθένας μπορεί να υλοποιήσει τις υπηρεσίες του.

Τα δυνατά σημεία του XMPP/jabber είναι :

Αποκέντρωση[επεξεργασία]

Η αρχιτεκτονική του είναι αποκεντρωμένη και μοιάζει με την λογική των emails. Οι διευθύνσεις είναι όπως και στα emails @something.org. Έτσι ένας XMPP είναι σε θέση να διαβάζει και να προωθεί κατάλληλα, μηνύματα που προορίζονται για ένα άλλο σύστημα, για παράδειγμα της μορφής @different.net . Ο καθένας μπορεί να διατηρεί τον δικό του XMPP server, ο οποίος να επικοινωνεί ομότιμα με τους υπόλοιπους. Δεν υπάρχει κεντρικό σημείο στην αρχιτεκτονική.

Ανοιχτό Πρότυπο[επεξεργασία]

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

Ασφάλεια[επεξεργασία]

Η υποστήριξη και χρήση κρυπτογραφημένης σύνδεσης ανάμεσα σε client και server, προβλέπεται στον πυρήνα του πρωτοκόλλου και ενθαρρύνεται από το XMPP Standards Foundation. Ένας XMPP server, μπορεί να υλοποιηθεί και αποκομμένος από τους υπόλοιπους στο Internet, δρώντας σαν ιδιωτικός server για την επικοινωνία μεταξύ ατόμων ενός οργανισμού, εταιρείας κοκ.

Χρήση[επεξεργασία]

Το XMPP προσφέρεται από πολλούς οργανισμούς, οργανώσεις ή εγχειρήματα ανά τον κόσμο. Ενδεικτικά: το jabber.org [1], το Chaos Computer Club (jabber.ccc.de[2]), η Riseup (https://help.riseup.net/en/chat), η Autistici/Inventati (https://autistici.org/en/services/chat.html). Μια λίστα με διαθέσιμους XMPP servers, καθώς και μια τυπική ένδειξη της ασφάλειας τους στο θέμα της σύνδεσης ενός χρήστη στον server αλλά και της σύνδεσης του server με άλλους servers, μπορεί κανείς να βρει στο xmpp.net [3]. Όσον αφορά την ασφάλεια, καλό θα είναι ο server που θα διαλέξετε να έχει τα παρακάτω χαρακτηριστικά:

  1. Να έχει υπογεγραμμένο πιστοποιητικό
  2. Να μην υποστηρίζει SSL2
  3. Να υποστηρίζει TLS 1.2
  4. Να μην υποστηρίζει αδύναμους (weak) ciphers
  5. Να υποστηρίζει Forward Secrecy ciphers

Καλό θα ήταν να αποφύγετε τους servers με βαθμολογία 'C' ή χαμηλότερη.

Για να δείτε πως μπορείτε να κάνετε chat με ασφάλεια χρησιμοποιώντας το πρωτόκολλο XMPP διαβάστε το άρθρο: οδηγός εγκατάστασης και χρήσης του Pidgin με το OTR plugin.

Πρωτόκολλα ομαδικής συζήτησης ή Chat[επεξεργασία]

IRC - Internet Relay Chat[επεξεργασία]

Το Internet Relay Chat, σύντομα IRC, είναι ένα ανοιχτό πρωτόκολλο για επικοινωνία πραγματικού χρόνου μέσω μηνυμάτων. Το IRC χρησιμοποιείται κατά κύριο λόγο για ομαδικές συζητήσεις ή αλλιώς chat. Σε αντίθεση με τα πρωτόκολλα instant messaging, στο IRC ο χρήστης δεν προσθέτει μεμονωμένα άτομα ως επαφές, αντίθετα συμμετέχει σε κανάλια συζητήσεων όπου μπορούν να υπάρχουν πολλοί χρήστες και να συνομιλούν ταυτόχρονα.

Ένα δίκτυο IRC (IRC Network), αποτελείται από έναν ή περισσότερους IRC servers συνδεδεμένους μεταξύ τους. Οι χρήστες, συνδέονται σε έναν από τους servers του δικτύου, και αποκτούν τη δυνατότητα να συμμετέχουν στα υπάρχοντα κανάλια συζήτησης του συγκεκριμένου δικτύου, να δημιουργήσουν δικά τους κανάλια ή ακόμα και να μιλήσουν κατ'ιδίαν σε συγκεκριμένο χρήστη στο IRC δίκτυο. Το πρωτόκολλο δίνει τη δυνατότητα κρυπτογράφησης της σύνδεσης ανάμεσα σε client και server, με TLS. Η υποστήριξη κρυπτογράφησης δίνεται κατά κανόνα, σε διαφορετική πόρτα(port) του server,για παράδειγμα στην 6697.

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

Αρκετά προγράμματα-clients έχουν ενσωματωμένες λίστες με υπάρχοντα IRC δίκτυα. Ενδεικτικά κάποια IRC δίκτυα : Indymedia (irc.indymedia.org/6697), Freenode(irc.freenode.net/6697).

Oδηγός εγκατάστασης και χρήσης προγράμματος για IRC chat

Πρωτόκολλο ασφαλούς κρυπτογραφημένης επικοινωνίας OTR[επεξεργασία]

Κύριο άρθρο: OTR

Το OTR (Off-the-record) [4] χρησιμοποιείται σε συνδυασμό με κάποιο από τα παραπάνω πρωτόκολλα άμεσης επικοινωνίας ή chat (για παράδειγμα πάνω από MSN ή XMPP), ως επικαλύπτον (overlay) πρωτόκολλο. Ο προσανατολισμός του OTR αφορά σε συγκεκριμένα χαρακτηριστικά ασφαλούς επικοινωνίας. Το OTR κρυπτογραφεί τα περιεχόμενα των συνομιλιών (chat messages) μεταξύ των χρηστών με τέτοιο τρόπο ώστε ακόμα και ο διαχειριστής του chat server να μην μπορεί να τα διαβάσει. Πιο συγκεκριμένα, το κρυπτογραφικό πρωτόκολλο Off-the-record Messaging προσφέρει:

  1. Εμπιστευτικότητα (confidentiality): Όλα τα μηνύματα που ανταλλάσσονται μεταξύ της Alice και του Bob κρυπτογραφούνται και αποκρυπτογραφούνται στους υπολογιστές των δύο, και άρα δε μπορούν να αναγνωστούν από την Eve στη διαδρομή.
  2. Πιστοποίηση (authentication): H Alice και ο Bob μπορούν να πιστοποιήσουν ο ένας την ταυτότητα του άλλου είτε ελέγχοντας τα fingerprints των δημόσιων κλειδιών τους μέσω κάποιου άλλου καναλιού (πχ από τηλέφωνο), είτε πολύ πιο απλά μέσω μιας κοινής μυστικής φράσης, αποφεύγοντας έτσι μία Man in the middle attack((Man in the middle attack)) από την Eve ή την Mallory.
  3. Perfect Forward Secrecy: Τα μηνύματα που ανταλλάσσονται, κρυπτογραφούνται με προσωρινά κλειδιά που συμφωνούνται αυτόματα με έναν αλγόριθμο ανταλλαγής κλειδιών. Σε περίπτωση που κάποιος τρίτος αποκτήσει το ιδιωτικό κλειδί του χρήστη, δε θα μπορεί να διαβάσει κάποια προηγούμενη συζήτηση.
  4. Αμφισβητήσιμη Πιστοποίηση (deniable authentication): Τα μηνύματα σε μία συζήτηση δεν έχουν Ψηφιακές υπογραφές και έτσι μετά το πέρας μίας συζήτησης, δεν μπορεί να αποδειχτεί ότι ένα συγκεκριμένο μήνυμα ήρθε από ένα συγκεκριμένο άτομο. Κατά τη διάρκεια της συζήτησης όμως, ο παραλήπτης μπορεί να είναι σίγουρος για την ταυτότητα του αποστολέα.

Υλοποιήσεις[επεξεργασία]

Pidgin & OTR (Linux, Windows)[επεξεργασία]

Pidgin logo small.png

Σαν instant messaging client θα χρησιμοποιήσουμε το πρόγραμμα pidgin. Το pidgin είναι ελεύθερο λογισμικό, υποστηρίζει πληθώρα πρωτοκόλλων (ενδεικτικά msn/windows live messenger, aim,google talk, irc, xmpp, yahoo! και άλλα) και είναι επίσης cross-platform.

Θα χρησιμοποιήσουμε επίσης το OTR plugin (πρόσθετο) για το Pidgin, το οποίο του παρέχει τη δυνατότητα χρήσης του πρωτοκόλλου OTR.

Λεπτομερής οδηγός εγκατάστασης και χρήσης του Pidgin με το OTR plugin.

Jitsi (Linux, Windows, Mac OS)[επεξεργασία]

Το Jitsi είναι project για τη δημιουργία ενός client που θα προσφέρει ασφαλείς επικοινωνίες όσο πιο αυτόματα και εύκολα γίνεται. Σαν υποκατάστατο του Skype, το Jitsi μπορεί να κάνει voice & video calls, χρησιμοποιώντας αυτομάτως το πρωτόκολλο ZRTP για να προστατέψει το κανάλι επικοινωνίας. Παρομοίως χρησιμοποιεί OTR για τις instant messaging λειτουργίες του, χωρίς να χρειάζεται η εγκατάσταση κάποιου plugin.

Το jitsi είναι ελεύθερο λογισμικό, υποστηρίζει πληθώρα πρωτοκόλλων (ενδεικτικά msn/windows live messenger, AIM, google talk, Facebook chat, irc, xmpp, yahoo! και άλλα) και είναι cross-platform. Αν και το jitsi είναι ανοικτού κώδικα, δεν έχει ενσωματωθεί σε διανομές Linux λόγω προβληματικών εξαρτήσεων με άλλα κομμάτια κώδικα. Έτσι το jitsi δεν είναι ακόμα ευρέως διαδεδομένο και αποδεκτό.

Adium (Mac OS)[επεξεργασία]

Το adium είναι ένας IM client ο οποίος βασίζεται στον κώδικα/βιβλιοθήκη του pidgin (libpurple) και είναι επίσης open source. Μπορεί κανείς να το κατεβάσει από εδώ [5]

Άλλοι clients / platforms[επεξεργασία]

Μία αναλυτική λίστα των clients που υποστηρίζουν OTR μπορεί να βρεθεί στην ιστοσελίδα του OTR εδώ.

Χρήση IM με Tor[επεξεργασία]

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

Οι περισσότεροι IM clients έχουν υποστήριξη για σύνδεση μέσω socks5 proxy, αυτό αρκεί για να συνδεθεί κανείς στο IM server που επιθυμεί μέσω Tor. Ενδέχεται όμως ο IM client να μην περνάει τα DNS ερωτήματα για την εύρεση της IP του IM server μέσω του Tor αλλά μέσω του resolver που χρησιμοποιεί ο υπολογιστής. Αυτό οδηγεί σε DNS leaks, κάποιος που παρακολουθεί τα DNS ερωτήματα ενός client μπορεί να δει δηλαδή σε ποιον server προσπαθεί να συνδεθεί αυτός ο client. Πολλοί IM servers λειτουργούν και ως hidden service για να αποφεύγονται αυτά τα DNS leaks.

Αν επιλέξει κανείς να χρησιμοποιεί IM μέσω Tor τότε καλό είναι να επιβεβαιώσει πως χρησιμοποιεί ασφαλή τρόπο σύνδεσης στο IM server (ssl/tls) καθώς και OTR για την επικοινωνία του με άλλους χρήστες.

Υλοποιήσεις[επεξεργασία]

Ο πλέον ενδεδειγμένος τρόπος για χρήση instant messaging σε συνδυασμό με Tor είναι το Tails. Το Tails είναι μια εξειδικευμένη διανομή Linux, στο περιβάλλον της οποίας κάθε δικτυακή κίνηση δρομολογείται μέσω Tor. Το Tails περιλαμβάνει προεγκατεστημένα και έτοιμα για χρήση το pidgin και το OTR.

Διάβασε ακόμα στο blog[επεξεργασία]