Σε περίπου έναν μήνα, το MSN η δημοφιλής πλατφόρμα της Microsoft για άμεση επικοινωνία μηνυμάτων (instant messaging) θα κλείσει οριστικά. Η επιλογή αυτή της Microsoft “δένει” με την εξαγορά, πριν δύο χρόνια, του Skype, το οποίο προωθείται ως αντικαταστάτης του MSN. Το Skype είναι η πλέον διαδεδομένη εφαρμογή συνομιλίας (Voice over IP) η οποία προσφέρει και instant messaging. Με αφορμή το γεγονός αυτό, για το οποίο όσοι χρησιμοποιούν hotmail θα έχουν ήδη ενημερωθεί, αποφάσισα να καταγράψω μερικές σκέψεις και παρατηρήσεις.
To Skype, αν και είναι πιασάρικη εφαρμογή, έχει δύο βασικά προβλήματα. Είναι εφαρμογή κλειστού κώδικα και υλοποιεί ένα επίσης κλειστό πρωτόκολλο.
Κλειστού κώδικα εφαρμογή σημαίνει ότι ο κώδικας δεν είναι διαθέσιμος στους χρήστες. Στην πραγματικότητα ένα τέτοιο πρόγραμμα δίδεται στον χρήστη ως κλειστό μαύρο κουτί. Δεν έχεις ιδέα τι συμβαίνει στο εσωτερικό του, από τι αποτελείται, τι λειτουργίες επιτελεί. Το μόνο που είμαστε σε θέση να καταλάβουμε για το μαύρο αυτό κουτί είναι μόνο ό,τι αναγκαστικά βγαίνει προς τα έξω. Για παράδειγμα γνωρίζουμε ότι το Skype είναι μια voip εφαρμογή, αλλά δεν γνωρίζουμε πώς είναι φτιαγμένη. Αν δεν γνωρίζουμε το πώς είναι φτιαγμένο κάτι, δεν μπορούμε να είμαστε σίγουροι ότι αυτό το κάτι εκτελεί μόνο τις λειτουργίες που διαφημίζει…
Το παραπάνω είναι το πρώτο σκέλος. Το δεύτερο σκέλος έχει να κάνει με το κλειστό πρωτόκολλο. Πρωτόκολλο είναι ένα σύνολο από κανόνες με τους οποίους λαμβάνει χώρα η επικοινωνία μεταξύ δύο ή περισσότερων μερών. Αν συναντήσουμε έναν φίλο στο δρόμο, είναι πολύ πιθανόν να του πούμε “Γεια” και να μας απαντήσει “Γεια”. Αυτές οι κουβέντες είναι μέρος ενός άτυπου πρωτοκόλλου στην επικοινωνία των ανθρώπων. Όπως και στην ανθρώπινη επικοινωνία, έτσι και στον κόσμο των υπολογιστών και των δικτύων, υπάρχει ανάγκη για πρωτόκολλα τα οποία μάλιστα είναι αυστηρώς ορισμένα. Όταν δύο χρήστες επικοινωνούν, χρησιμοποιώντας για παράδειγμα το skype, το πρόγραμμα του ενός χρήστη μιλάει με το πρόγραμμα του άλλου χρήστη, έχοντας ένα προ-συμφωνημένο τρόπο επικοινωνίας – το πρωτόκολλο.
Στην περίπτωση λοιπόν του Skype το πρωτόκολλο δεν είναι ανοικτό. Η Microsoft, μια εταιρεία που εμπορεύεται λογισμικό κλειστού κώδικα, δεν δημοσιοποιεί τον τρόπο με τον οποίο “μιλάει”το Skype. Το ίδιο συνέβαινε και με το MSN. Ανάμεσα όμως στα δύο πρωτόκολλα υπάρχει μια σημαντική διαφορά. Το MSN δεν παρείχε κανενός είδους κρυπτογράφηση, τα δεδομένα μεταδίδονταν cleartext (χύμα) στο δίκτυο. Αντίθετα, το Skype χρησιμοποιεί κρυπτογράφηση, ουτώς ώστε τα δεδομένα να μην μπορούν να διαβαστούν από κάποιον τρίτο προς την συνομιλία. Η κρυπτογράφηση του Skype υλοποιείται με τρόπο που μόνο η Microsoft γνωρίζει.
Θα μπορούσε κάποιος να σκεφτεί : “Δεν είναι καλό που η κρυπτογράφηση υλοποιείται με μυστικό τρόπο; Δεν την καθιστά ακόμα πιο ισχυρή αυτό;” Ε λοιπόν όχι, τα πράγματα δεν είναι έτσι στον κόσμο της κρυπτογραφίας. Σύμφωνα με την αρχή του Kerckhoff (
https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle), την οποία στη συνέχεια αναδιατύπωσε ο Shannon, ένας κρυπτογραφικός αλγόριθμος δεν αντλεί την δύναμή του από το να είναι μυστικός. Αντίθετα ένα κρυπτοσύστημα θα πρέπει να είναι ασφαλές όταν τα πάντα, εκτός από το κλειδί, είναι δημόσια. Αυτή η αρχή έχει αγκαλιαστεί από τους επιστήμονες που ασχολούνται με την κρυπτογραφία. Και αν το καλοσκεφτούμε, ένας κρυπτογραφικός αλγόριθμός ο οποίος είναι δημόσιος είναι εκτεθειμένος στην κρίση πολύ περισσότερων επιστημόνων από αυτούς που τον δημιούργησαν. Έτσι ένας αλγόριθμος δοκιμάζεται, διορθώνεται και αν είναι καλός επικρατεί και μένει, αν είναι κακός αποσύρεται. Οι αλγόριθμοι είναι μαθηματικά. Πέρα από την μαθηματική ισχύ ενός αλγορίθμου, πρέπει να επαληθευτεί και η προγραμματιστική υλοποίηση του αλγόριθμου αυτού.
Το πρόβλημα με ένα κλειστό πρωτόκολλο και κατά συνέπεια τον μυστικό τρόπο υλοποίησης ενός αλγόριθμου κρυπτογράφησης, όπως η υλοποίηση στο Skype, δεν είναι μόνο το ότι δεν μπορεί η επιστημονική κοινότητα να αποφανθεί για την ορθή υλοποίησή του. Είναι ότι δεν γνωρίζουμε το κατά πόσον ο αλγόριθμος αυτός, δεν έχει υλοποιηθεί με κάποιο backdoor (πίσω πόρτα). Backdoor είναι ένας τρόπος να παρακαμφθεί η κρυπτογράφηση από κάποιον που δεν έχει το κλειδί που χρησιμοποιήθηκε. Αν ισχύει κάτι τέτοιο στο skype, τότε η Microsoft ή κάποια κρατική αρχή με την οποία συνεργάζεται η εταιρεία, θα είναι σε θέση να αποκρυπτογραφήσουν τις συνομιλίες των χρηστών στο skype, εν αγνοία τους και χωρίς την συγκατάθεσή τους. Σύμφωνα με το λήμμα στη wikipedia αυτό γίνεται ήδη από τις αρχές του ρωσικού κράτους, με την αρωγή της Microsoft :
https://en.wikipedia.org/wiki/Skype_security#Eavesdropping_by_design
Συνοψίζοντας, το Skype υποτίθεται ότι χρησιμοποιεί τον κρυπτογραφικό αλγόριθμο AES-256, ο οποίος είναι γνωστός και επαληθευμένα ισχυρός. Όμως, καθώς το πρωτόκολλο είναι κλειστό, δεν είμαστε σε θέση να γνωρίζουμε α) αν πράγματι χρησιμοποιείται ο AES-256, β) τον τρόπο που υλοποιείται και ενσωματώνεται ο AES-256 στο πρωτόκολλο γ) εάν δεν υπάρχει επιπλέον κώδικας που αφήνει επίτηδες μια πίσω πόρτα στην ασφάλεια του πρωτοκόλλου.
Αυτό βεβαίως αποτελεί αρκετά σοβαρό πρόβλημα για την ιδιωτικότητα των χρηστών και είναι τραγικά λανθασμένη προσέγγιση το “εντάξει και τι με νοιάζει εμένα, δεν έχω κάτι να κρύψω”. Τα πράγματα μάλιστα είναι ακόμα χειρότερα από το MSN για παράδειγμα που δεν υπήρχε καθόλου κρυπτογράφηση. Κι αυτό διότι το Skype πλασάρεται ως πρόγραμμα ασφαλούς επικοινωνίας (λόγω της “κρυπτογράφησης”), το οποίο είναι βεβαίως ευθέως αμφισβητούμενο, για τους λόγους που περιέγραψα παραπάνω. Ένας χρήστης, που δεν έχει καλή γνώση, μπορεί να πέσει στην παγίδα της διαφήμισης του Skype και να τρέφει την ψευδαίσθηση ότι οι συνομιλίες τους είναι ιδιωτικές και ασφαλείς. Πράγμα που σε καμία περίπτωση δεν πρέπει να θεωρήσουμε για το Skype.
Ας λάβουμε ακόμα υπόψιν ότι το Skype είναι προϊόν μιας μεγάλης εταιρείας η οποία έχεις ως αποκλειστικό στόχο το κέρδος. Και το κέρδος μπαίνει πάνω από την ιδιωτικότητα και την προστασία των χρηστών (βλέπε προηγούμενο link για Ρωσία).
Ένα πρώτο λοιπόν συμπέρασμα, είναι να μην χρησιμοποιούμε το Skype. Είναι ένα ανασφαλές προϊόν μιας μεγάλης εταιρείας το οποίο αφορά τις κοινωνικές μας επαφές, τις συνομιλίες μας. Είναι απαράδεκτο για τις συνομιλίες μας, να εναποθέτουμε την εμπιστοσύνη σε έναν κολοσσό κερδοσκοπίας. Από την άλλη, το Skype έχει ήδη μεγάλη διεισδυτικότητα στις κοινωνικές ομάδες και χρησιμοποιείται ευρέως. Υλοποιεί (με ανασφαλή τρόπο) μια χρήσιμη λειτουργία, VoIP επικοινωνία, και σε συνδυασμό με την αστραφτερή εμφάνιση και την διαφήμισή του μέσα από το επίσης (επιβεβλημένα) δημοφιλές λειτουργικό σύστημα Windows, έχει “κερδίσει” ήδη πολύ κόσμο.
Όπως πολύ εύστοχα παρατήρησε ο Moxie Marlinspike (
http://youtu.be/eG0KrT6pBPk?t=9m), η τεχνολογία στις μέρες μας συνδέεται άμεσα με την δόμηση των κοινωνικών σχέσεων. Κάποια τεχνολογικά εργαλεία (ή καλύτερα κάποιες υλοποιήσεις εργαλείων), όπως το Skype, το Facebook ή το κινητό τηλέφωνο τείνουν να συνδεθούν με την κοινωνικοποίηση. Καθώς η τεχνολογία των επικοινωνιών (για παράδειγμα) αλλάζει, οι παλιοί τρόποι σύναψης σχέσεων μεταξύ των ανθρώπων, εγκαταλείπονται και αντικαθίστανται με νέους. Καθώς ένα τεχνολογικό επίτευγμα, διαδίδεται όλο και περισσότερο (πχ κινητό τηλέφωνο) γίνεται όλο και πιο δύσκολο για ένα άτομο να αποφύγει την χρήση του και ταυτόχρονα να διατηρήσει τις κοινωνικές του επαφές.
Αυτό γίνεται και με το Skype. Οι περισσότεροι από όσους καταφέρατε να διαβάσετε το άθρο μέχρι εδώ, χρησιμοποιείτε Skype και πειστήκατε ότι είναι αρκετά προβληματική η χρήση του, θα βρείτε τουλάχιστον μη-βολικό το να το εγκαταλείψετε. Λογικό σε ένα βαθμό καθώς οι περισσότερες επαφές σας το χρησιμοποιούν.
Τελικά υπάρχει (ασφαλέστερη)εναλλακτική για το instant messaging, είτε αυτό λέγεται MSN ή Skype? Ναι, υπάρχει! Για όσες και όσους, μόνο αμελητέα δεν θεωρούν την ιδιωτικότητα στην ψηφιακή τους ζωή η λύση βρίσκεται στην χρήση λογισμικού ανοικτού κώδικα και ανοιχτών πρωτοκόλλων!
To XMPP / jabber …
… σε επόμενο άρθρο πιο αναλυτικά.