και ας δούμε πρώτα τη θεωρία για να κα-
ταλάβουμε πώς ακριβώς λειτουργεί...
ΕΔΩ ΤΑ ΚΑΛΑ «ΚΡΕΜΜΥΔΙΑ»
Το onion routing (ελληνιστί μεταφράζεται
με τον μάλλον αδόκιμο όρο «δρομολόγηση
κρεμμυδιού») είναι μία τεχνική που απο-
σκοπεί στη συγκάλυψη των πληροφοριών
που «εκπέμπει» σε κάποιο δίκτυο ένας
υπολογιστής με τελικό αποτέλεσμα να κα-
θίσταται αόρατο το κανάλι δεδομένων με-
ταξύ server και client. Αν και η τεχνική αυτή
έχει αναπτυχθεί και δημοσιευθεί ήδη από
το 1996, με άρθρο των David Goldschlag,
Michael Reed και Paul Syverson, άρχισε να
λαμβάνει δημοσιότητα επτά χρόνια αργό-
τερα με την ανακοίνωση του Tor Project
), τον Αύγουστο του
2004
από τους Roger Dingledine, Nick
Mathewson και Paul Syverson.
Μέσα από ένα δυναμικά δρομολογούμε-
νο δίκτυο τύπου peer-to-peer, οι αιτήσεις
και τα πακέτα που χρησιμοποιούν το onion
routing κρυπτογραφούνται επανειλημμένα
σε κάθε router, από τον οποίο περνούν και
διαβιβάζονται στον επόμενο. Κατ’ αυτό τον
τρόπο, οι ενδιάμεσοι υπολογιστές που
λαμβάνουν και διακινούν τα πακέτα δεν
μπορούν να γνωρίζουν τόσο τα περιεχόμε-
να του πακέτου όσο και τα σημεία έναρξης
και κατάληξής τους. Έτσι, ικανοποιούνται
οι δύο βασικές απαιτήσεις της μεθόδου
του onion routing, δηλαδή τόσο η εξασφά-
λιση της απόκρυψης του αποστολέα και
του παραλήπτη ενός πακέτου όσο και του
περιεχομένου του.
Η δρομολόγηση των πακέτων γίνεται με
τυχαίο τρόπο, έτσι ώστε να μην μπορέσει
κάποιο κακόβουλο τρίτο μέρος (βλ.
hackers ή κρατική υπηρεσία) να «κρυφα-
κούσει» τη συνολική συνομιλία μεταξύ των
δύο μερών, ακόμη και αν έχει στην κατοχή
του ένα υποσύνολο των πακέτων. Ο μόνος
μαθηματικά ασφαλής τρόπος για να επιτύ-
χει κανείς τη συλλογή και αποκρυπτογρά-
φηση του ακέραιου μηνύματος είναι να κα-
ταφέρει να συλλέξει όλα τα πακέτα που το
αποτελούν. Αυτό βέβαια απαιτεί τη δυνατό-
τητα να μπορεί κανείς να «παρακολουθεί»
την κίνηση που λαμβάνει και στέλνει καθέ-
νας από τους υπολογιστές-δρομολογητές
που ανήκει στο δίκτυο που χρησιμοποιεί
την τεχνική του onion routing, κάτι που
αποδεικνύεται αδύνατο στην πράξη, αν μη
τι άλλο, λόγω του πλήθους των onion
routers.
ΚΑΤΑΣΚΕΥΑΖΟΝΤΑΣ ΤΟ… «ΚΡΕΜΜΥΔΙ»
Το «κρεμμύδι» (onion) στην τεχνική του
onion routing είναι η δομή δεδομένων που
χρησιμοποιείται για να δημιουργηθούν μο-
νοπάτια δρομολόγησης των πακέτων που
ενώνουν τον αποστολέα με τον παραλήπτη
των δεδομένων. Αρχίζοντας από τον υπο-
λογιστή του αποστολέα, το καθαρό πακέτο
των δεδομένων (το οποίο μπορεί να είναι
μέρος μίας αίτησης HTTP ή ένα μήνυμα σε
κάποια instant messaging υπηρεσία) κρυ-
πτογραφείται με συμμετρικά κλειδιά. Στη
συνέχεια, ο υπολογιστής επιλέγει τυχαία
έναν αριθμό από γνωστούς σε αυτόν onion
routers, στους οποίους και στέλνει το
«
κρεμμύδι», το πακέτο με τα κρυπτογρα-
φημένα δεδομένα και τις πληροφορίες για
τη δρομολόγηση, αφότου τα κρυπτογρα-
φήσει εκ νέου με το δικό του δημόσιο κλει-
δί.
Μέσω αυτής της μεθόδου, κάθε «κρεμ-
μύδι» περιέχει στρώματα στρωμάτων από
κρυπτογραφημένα πακέτα, οπότε για να
«
φτάσει» κανείς στο αρχικό μήνυμα θα
πρέπει να αποκρυπτογραφηθεί καθένα
από τα στρώματα που το περιβάλλουν.
Έτσι, η πολυπλοκότητα της κρυπτογράφη-
σης αυξάνεται ραγδαία, οπότε πολλαπλα-
σιάζεται και ο απαιτούμενος χρόνος απο-
κρυπτογράφησης.
Είναι προφανές πως από αυτό το σημείο
και μόνο το onion routing προσφέρει μεγα-
λύτερη ασφάλεια από άλλες μεθόδους
εξασφάλισης της επικοινωνίας, όπως το
κρυπτογραφημένο HTTP πρωτόκολλο, ενώ
ταυτόχρονα δεν απαγορεύει την παράλλη-
λη χρήση τους στον «πυρήνα» του «κρεμ-
μυδιού».
Για να καταστεί δυνατή η δρομολόγηση
της απάντησης του παραλήπτη προς τον
αποστολέα, σε κάθε «κρεμμύδι» συμπερι-
λαμβάνονται και προτεινόμενες οδοί για τα
απαντητικά πακέτα, οι οποίες χρησιμοποι-
ούνται από τον παραλήπτη για τη σύνθεση
των δικών του μοναδιαίων «κρεμμυδιών».
ΜΕΙΟΝΕΚΤΗΜΑΤΑ ΚΑΙ ΑΔΥΝΑΜΙΕΣ ΤΗΣ
ΤΕΧΝΙΚΗΣ
Οι δύο πιθανοί τρόποι για να ξεπεράσει
κανείς την ασφάλεια που παρέχει η τεχνική
του onion routing είναι, όπως αναφέραμε,
είτε να «σπάσει» την κρυπτογράφηση όλων
των στρωμάτων που απαρτίζουν το «κρεμ-
μύδι» και καλύπτουν το μήνυμα, καθώς και
την κρυπτογράφηση που πιθανώς χρησι-
μοποιείται στο ίδιο το μήνυμα, είτε να λάβει
υπό τον έλεγχό του όλους τους χρησιμο-
ποιούμενους υπολογιστές-δρομολογητές.
Στην πρώτη περίπτωση, το κακόβουλο
τρίτο μέρος θα μπορέσει να γνωρίσει ποιο
είναι το ζεύγος αποστολέα-παραλήπτη, κα-
θώς και το περιεχόμενο του μηνύματος,
ενώ στη δεύτερη θα έχει τις πληροφορίες
που αφορούν στην πηγή και στον προορι-
σμό του πακέτου, καθώς και στο ίδιο το
μήνυμα με έναν ελάχιστο αριθμό κρυπτο-
γραφημένων στρωμάτων (τουλάχιστον
ενός), οπότε θα είναι και πιο εύκολη η δια-
δικασία της αποκρυπτογράφησης.
Και οι δύο αυτές, όμως, μέθοδοι στην
πράξη αποδεικνύονται ατελέσφορες, αφού
το κόστος είναι πράγματι υπέρογκο σε ό,τι
αφορά τους απαιτούμενους υπολογιστι-
κούς ή/και δικτυακούς πόρους.
Ο σταθερά ασθενέστερος κρίκος στη
διαδικασία του onion routing φαίνεται να εί-
ναι ο «κόμβος εξόδου», ο υπολογιστής δη-
λαδή που κατέχει την τελευταία θέση στη
δρομολόγηση των πακέτων και αναλαμβά-
νει, τελικά, να λειτουργήσει ως η έξοδος
των πακέτων από το «ψευδοδίκτυο» των
onion routers στο «πραγματικό» Internet.
Αφού σε αυτό τον κόμβο τα πακέτα απο-
κρυπτογραφούνται πλήρως για να κατα-
στούν αναγνώσιμα από τους συμβατικούς
COMPUTER ΓΙΑ ΟΛΟΥΣ
75
ΔΙΚΤΥΟ TOR
Ένα τυπικό «κρεμμύδι». Πολλαπλά στρώματα, συνοδευόμενα από τα αντίστοιχά τους κλειδιά,
αποκρύπτουν το ζεύγος αποστολέα-παραλήπτη, ενώ κρυπτογραφούν και το καθαυτό
μήνυμα, το οποίο εντοπίζεται τελικά στον «πυρήνα» του «κρεμμυδιού».