TOR The Second Generation Onion Router By Christos Othonos
ΚΕΦΑΛΑΙΟ 1 Εισαγωγή
Παρακαλώ φανταστείτε Μεγάλο σκάνδαλο στην χώρα Α Οι κάτοικοι της χώρας Α θα υποφέρουν Οι υπεύθυνοι (διεφθαρμένοι πολιτικοί) δεν θα αποκαλυφθούν Κύριοι: Με αυτό το σχέδιο θα πλουτίσουμε εις βάρος των πολιτών! Τα πρόβατα (πολίτες) δεν θα πάρουν χαμπάρι!
Παρακαλώ φανταστείτε Η γραμματέας Alice έχει συνείδηση Θέλει να ενημερώσει τον κόσμο Πρέπει στείλει τις πληροφορίες στον δημοσιογράφο Bob Ο Bob θα δημοσιεύσει τις πληροφορίες στον κόσμο
Παρακαλώ φανταστείτε Οι διεφθαρμένοι πολιτικοί ελέγχουν την κυβερνητική «αντιτρομοκρατική» οργάνωση MITM Οι MITM είναι ειδικοί στην παρακολούθηση internet traffic και έχουν αρκετούς πόρους. Οι δράσεις της Alice πιθανότατα να παρακολουθούνται από τους MITM
Σενάριο Α à Η Alice στέλνει το μυστικό απευθείας στον Bob Η Alice έστειλε την ΠΛΗΡΟΦΟΡΙΑ Α στον Bob
Σενάριο Β à Η Alice θα χρησιμοποιήσει TLS για να στείλει μήνυμα στον Bob Η Alice έστειλε κάτι στον Bob Ας μάθουμε τι έπιασε ο φίλος μας ο Bob TLS
Σενάριο Γ à Η Alice χρησιμοποιεί ένα Anonymity Network Τι έστειλε η Alice? Πού το έστειλε?
Τι είναι το The Onion Router (Δηλαδή έχει να κάνει με κρεμμύδια) Επιτρέπει ανώνυμη επικοινωνία Χρησιμοποιεί ένα «εικονικό δίκτυο» (Overlay Network) πάνω από το διαδίκτυο Συμμετέχουν πολλοί Onion Routers που ανταλλάζουν πληροφορίες μέχρι να καταλήξουν σε ένα Exit Node
Γιατί κρεμμύδι? κ1 κ2 κ3 κn Όπως και τα κρεμμύδια, έχουνε πολλά layers. Τα δεδομένα κρυπτογραφούνται πολλές φορές με διαφορετικά κλειδιά. DATA
Εικονικά Δίκτυα (Overlay Networks) Στέλνουμε δεδομένα στον κόμβο Β απευθείας Πραγματικότητα: πολλαπλοί ενδιάμεσοι κόμβοι EXPECTATION REALITY
Βασική ιδέα Επέλεξε N τυχαίους Onion Routers Φτιάξε κύκλωμα Πιάσε τα public keys τους
Βασική ιδέα Κey 1 Κey 2 Κey 3
Βασική ιδέα Κρυπτογράφησε το κελί με την πληροφορία πολλαπλές φορές (Με την αντίστροφη σειρά) DATA Κey 1 Κey 3 Κey 2
Βασική ιδέα DATA Κey 1 Κey 2 Κey 3
Βασική ιδέα Στείλε την πληροφορία στο πρώτο Onion Router Αυτό γίνεται μέσω του onion proxy του χρήστη DATA Proxy
Βασική ιδέα DATA Proxy
Βασική ιδέα DATA Private 1 Private 2 Private 3
Βασική ιδέα DATA Private 1 Private 2 Private 3
Βασική ιδέα DATA Private 1 Private 2 Private 3
«Ορατότητα» Έστειλα Δεδομένα Α Θα περάσει από τους Router Α,Β,Γ Τα Δεδομένα Α πάνε στον Bob Α Β Γ
«Ορατότητα» Έλαβα άγνωστα δεδομένα από Alice Πρέπει να στείλω άγνωστα δεδομένα στον Router B Α Β Γ
«Ορατότητα» Έλαβα άγνωστα δεδομένα από Router A Πρέπει να στείλω άγνωστα δεδομένα στον Router C Α Β Γ
«Ορατότητα» Έλαβα δεδομένα A από Router B Πρέπει να στείλω αυτά τα δεδομένα στον Bob Α Β Γ
«Ορατότητα» Έλαβα δεδομένα A από Router C Πρέπει να απαντήσω πίσω στον Router C Α Β Γ
Γιατί όλη αυτή η διαδικασία? Δεν εμπιστευόμαστε ΚΑΝΕΝΑ Ένα router μπορεί να είναι Man-In-The-Middle Ο Bob μπορεί να είναι Man-In-The-Middle
Popularity = Security To TOR πρέπει να είναι: Εύκολο στη χρήση Εύκολο στην εγκατάσταση Το να έχουμε περισσότερους χρήστες στο σύστημα κάνει το δίκτυο μας πιο ασφαλές και πιο ανώνυμο.
Threat Model Global Passive Adversary: Ο πιο συνηθισμένος αντίπαλος όταν γίνεται ανάλυση υπηρεσιών ανωνυμίας. Είναι ένας πολύ ισχυρός αντίπαλος Παρακολουθεί την κίνηση που εισέρχεται και βγαίνει από όλους τους routers/computers του πλανήτη. Έτσι μπορεί να βγάλει συμπεράσματα με traffic analysis attacks και timing attacks.
Global Passive Watchdog Proxy Proxy Proxy Proxy Proxy Proxy
Threat Model Δυστυχώς το TOR δεν μπορεί να αντιμετωπίσει ένα global passive adversary. Αυτό είναι σκόπιμο (Low latency anonymity) Είναι σχεδιασμένο να αντιμετωπίζει ένα αντίπαλο που μπορεί να: Παρακολουθεί μέρος του δικτύου Τροποποιεί, να διαγράφει, ή να καθυστερεί πακέτα Ελέγχει μερικούς Onion Routers
Ωραία Τώρα που πήρατε την βασική ιδέα είναι ώρα να εμβαθύνουμε
ΚΕΦΑΛΑΙΟ 2 Δυνατότητες και Χαρακτηριστικά
Second Generation TOR Η πρώτη έκδοση του TOR έχει σχεδιαστεί πριν χρόνια Το TOR που έχουμε τώρα είναι η δεύτερη έκδοση Είναι Καλύτερη, Δυνατότερη, και φυσικά Ασφαλέστερη TOR v1 TOR v2
Οι «υπερδυνάμεις» του TORv2 Τι κάνει καλύτερα ο TORv2 από τον TORv1? Τι δεν κάνει ο TORv1?
Perfect Forward Secrecy à Παλιές συνομιλίες ΔΕΝ μπορούν να αποκρυπτογραφηθούν στο μέλλον Παλιό TOR Το προσωπικό private key του Onion Router κρυπτογραφεί όλο το traffic. Πάντα. Κλειδί μικρής διάρκειας (ephemeral key) παράγεται για ΚΆΘΕ stream και hop. Το κλειδί μετά σβήνεται.
Perfect Forward Secrecy Ποιο το πρόβλημα όταν χρησιμοποιείται το ίδιο κλειδί? à Ένας MITM μπορεί να συλλέγει κρεμμύδια συνεχώς Private key
Perfect Forward Secrecy à Ο MITM παράλληλα κάνει brute force για να ανακαλύψει το κλειδί Key 0xDEAF Key 0xDEDD Key 0x9A11 Key 0xBEEF Key 0x1881 Key 0x0021 Key 0xFF55 Key 0x1011 Key 0x9AA9
Perfect Forward Secrecy à Κάποτε το ανακαλύπτει! Key 0xDEAF Key 0xDEDD Key 0x9A11 Key 0xBEEF Key 0x1881 Key 0x0021 Key 0xFF55 Key 0x1011 Key 0x9AA9
Perfect Forward Secrecy à Και τότε ΟΛΟ το traffic που πέρασε και θα περάσει από τον συγκεκριμένο Onion Router μπορεί να διαβαστεί FRESH Onions Πάμε για data shopping! OLD Onions Private key
Perfect Forward Secrecy Ενώ με ephemeral keys Private key Private key Private key Private key Private key Private key Private key
Perfect Forward Secrecy à Ο MITM πρέπει να ανακαλύψει Ν κλειδιά για Ν διαφορετικά onions Άτε και του χρόνου πάλι (το επόμενο κλειδί) Private key
Protocol Normalization à Πακέτα μπορούν να περιέχουν προσωπικές πληροφορίες Παλιό TOR Κάθε πρωτόκολλο χρειάζεται ένα ειδικά σχεδιασμένο proxy. Καθαρίζει όλες τις προσωπικές πληροφορίες που κρύβονται σε πακέτα. Χρησιμοποιεί μόνο ένα TCP proxy (τον SOCKS) Δεν καθαρίζει προσωπικές πληροφορίες από πακέτα.
Identity leakage Μερικά πρωτόκολλα μπορούν να διαρρεύσουν προσωπικές πληροφορίες. Ψηλά τα χέρια Alice! Π.χ το http μπορεί να ανταλλάξει tracker cookies με servers Ωω καλώς ήρθες πίσω κυρία Alice! http://www.cookiemonster.com
Επιτέλους κάνει και κάτι σωστά Το παλιό TOR φιλτράρει τα πακέτα και αφαιρεί στοιχεία που διαρρέουν προσωπικά στοιχεία Αα! Ένας νέος πελάτης..
Επιτέλους κάνει και κάτι σωστά? Όμως Χρειάζεται υλοποίηση proxy interface για ΚΆΘΕ εφαρμογή Υπάρχουν πολλές εφαρμογές ακόμη στο Application Layer?
Protocol Normalization Το νέο TOR χρησιμοποιεί το SOCKS proxy σαν βάση àστηρίζει όλες τις εφαρμογές που χρησιμοποιούν TCP àείναι απλούστερο στην σχεδίαση Μπορεί να γίνει χρήση άλλων εργαλείων για φιλτράρισμα Info Leaks. (π.χ Privoxy)
TCP Stream Multiplexing Ο νέος TOR κάνει καλύτερη χρήση του traffic με το να ενώνει TCP stream Παλιό TOR Ένα νέο κύκλωμα δημιουργείται κάθε φορά που ανοίγει ένα TCP stream Ένα κύκλωμα ανοίγει για πολλά TCP streams.
TCP Stream Multiplexing Χρησιμοποιούνται πολλαπλά TCP streams για να μεγιστοποιηθεί το throughput Οι χρήστες συνήθως χρησιμοποιούν πολλές υπηρεσίες ταυτόχρονα (πολλές ιστοσελίδες, e-mail, ftp κτλ.) http ftp IMAP
TCP Stream Multiplexing Έστω η Alice θέλει να κάνει browse κάτι ιστοσελίδες (http) Το παλιό TOR θα ανοίξει ένα κύκλωμα για κάθε TCP stream http Stream 1 Stream 2 Stream 3 Stream n Proxy Stream 1 Stream 2 Stream 3 Stream n
TCP Stream Multiplexing Αν είχαμε πολλούς χρήστες θα είχαμε σοβαρά σημεία συμφόρησης
TCP Stream Multiplexing Το νέο TOR μαζεύει πολλαπλά TCP streams σε ένα κύκλωμα. Το exit node θα ανοίξει τα TCP streams που χρειάζονται. Stream 1 Stream 2 http Stream 3 Stream n Proxy Stream
TCP Stream Multiplexing Έτσι μειώνονται δραματικά το traffic στο TOR network Proxy Proxy Proxy Proxy Proxy
Directory Servers à Οι χρήστες του πρέπει να ξέρουν τους διαθέσιμους TOR routers, τις πολιτικές τους και την κατάσταση τους. Παλιό TOR Κάνει flood αυτή την πληροφορία σε όλο το δίκτυο Υπάρχουν μερικοί έμπιστοι κόμβοι που αποθηκεύουν αυτές τις πληροφορίες à Οι Directory Servers
Directory Server Ένας έμπιστος κόμβος που αποθηκεύει μια λίστα από TOR routers Οι TOR router στέλνουν τις διάφορες πληροφορίες τους και μία υπογραφή Οι χρήστες επικοινωνούν με τον Directory Server για να αποφασίσουν με ποιους TOR routers να φτιάξουν το κύκλωμα τους.
Directory Server Proxy Router A Router B Router C
Integrity Checking à Τα δεδομένα των cells έμειναν άθικτα? Παλιό TOR Χρησιμοποιεί stream Δεν ελέγχει το Integrity. Χρήση TLS (data integrity) Eπιπλέον integrity check στις άκρες του δικτύου
Integrity Checking Το παλιό TOR δεν έχει καθόλου Integrity checking. Ένας attacker μπορεί να κάνει αλλαγές στα δεδομένα που περνούν! mkdir major_news rm * echo suckers! >> readme www.freedom-net.com Piece of cake!
Integrity Checking Το νέο TOR χρησιμοποιεί TLS Κάθε TOR node (είτε router, είτε proxy) ανοίγει ένα TLS session με τον επόμενο www.freedom-net.com TLS Tunnel TLS Tunnel Proxy
Integrity Checking To TLS παρέχει data integrity à Έτσι προστατεύει από attackers που θέλουν να αλλάξουν τα δεδομένα. Γιατί έπρεπε να είχε TLS? www.freedom-net.com TLS Tunnel TLS Tunnel Proxy
Integrity Checking Όμως τι γίνεται όταν έχουμε «εσωτερικούς attackers» ; Το TLS προστατεύει μόνο 1 hop, αλλά όχι ολόκληρο το κύκλωμα Oops I did it again!? TLS Tunnel TLS Tunnel Proxy Proxy
Integrity Checking Το νέο TOR προστατεύεται από τέτοιους attackers κάνοντας ένα επιπλέον end-to-end integrity check
No Mixing, Padding, or Traffic Shaping Mixing: Αναδιοργάνωση σειράς πακέτων στους routers (ή mixers) Link Padding: Προσθήκη/Αλλαγή traffic με σκοπό να γίνουν ομοιογενή οι στατιστικές ιδιότητες του αρχικού traffic. Ο νέος TOR δεν χρησιμοποιεί αυτές τις τεχνικές (προς το παρόν) Καθυστερούν το traffic (όχι πρακτικά) Οι λιγότερο ακριβές μέθοδοι δεν έχουν αποδειχτεί ότι δουλεύουν Ο νέος TOR στοχεύει για INTERACTIVE ανταπόκριση.
High Latency Anonymity Networks Κάποιες υπηρεσίες ανωνυμίας έχουν ως προτεραιότητα την Ασφάλεια. Προσθέτουν τυχαίες καθυστερήσεις στα πακέτα, αλλάζουν την σειρά τους, κτλ. Είναι καλά για εφαρμογές email. Όμως είναι ακατάλληλα για interactive applications όπως webbrowsing και streaming. Παραδείγματα: Babel, Mix-master, Mixminion
Low Latency Anonymity Networks Το TOR ανήκει σε αυτή την κατηγορία Κάνει όσα χρειάζονται για ανωνυμία, αλλά δεν κάνει μεγάλες αλλαγές στο traffic flow Είναι αρκετά γρήγορο στην λειτουργία και μπορεί να τρέξει interactive εφαρμογές Είναι ευάλωτο σε traffic analysis attacks
Leaky Pipe topology Το traffic ενός χρήστη TOR μπορεί να αλλάξει πορεία ή και να βγει από την μέση του κυκλώματος Έτσι δυσκολεύει μερικούς τύπους επιθέσεων.
Congestion Control Η συμφόρηση δημιουργεί προβλήματα στην εμπειρία του χρήστη (και κατά συνέπεια στην ασφάλεια) Το TOR ελέγχει την συμφόρηση με end-to-end acknowledgements (όπως το TCP) Επίσης αντιμετωπίζει σε κάποιο βαθμό Denial Of Service attacks.
Rendezvous Point Το TOR μπορεί να υποστηρίξει ανώνυμες ιστοσελίδες (κρυφούς servers) Αυτό το κάνει με rendezvous points. Rendezvous point Proxy Hidden Server
To Be Continued Αυτά για σήμερα Την επόμενη φορά αν θέλετε θα σας μιλήσω για επιθέσεις και άμυνες εναντίον του TOR.
Ερωτήσεις? Ή αν προτιμάτε σπίτια μας..