ΑΝΑΛΥΣΗ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΗΣ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ IPSEC ΣΕ LINUX

Σχετικά έγγραφα
Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά

Διπλωματική Εργασία. Γεώργιου Γκίτσα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4α: VPN on IPSec

Σχεδιασμός Εικονικών Δικτύων Ενότητα 4β: VPN on IPSec (Μέρος 2ο)

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Επαναληπτικές Ασκήσεις Μαθήματος

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

Πρωτόκολλα Διαδικτύου

Ασφάλεια Υπολογιστικών Συστηµάτων

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Διαφορές single-processor αρχιτεκτονικών και SoCs

Δίκτυα Θεωρία

Επίπεδο Δικτύου: Διαδικτύωση

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

7.9 ροµολόγηση. Ερωτήσεις

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων SSL/TLS

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

Μάθημα 6: Αρχιτεκτονική TCP/IP

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Πρόγραμμα Μεταπτυχιακών Σπουδών (Π.Μ.Σ.) Ασφάλεια Δικτύων. Δρ. Κωνσταντίνος Παπαπαναγιώτου

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Cryptography and Network Security Chapter 19

Δίκτυα Υπολογιστών I

ΔΙΚΤΥΑ (15-17) Π. Φουληράς

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

γ. Αυθεντικότητα (authentication) δ. Εγκυρότητα (validity) Μονάδες 5

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Συμμετρικά κρυπτοσυστήματα

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Ασφάλεια Υπολογιστικών Συστημάτων

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

ΣΕΜΙΝΑΡΙΟ. ΠΑΡΟΥΣΙΑΣΗ 19/5/11 Αµφιθέατρο

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΣΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Γ Τάξη Ε.Π.Α.Λ.

Επιχειρησιακή ιαδικτύωση

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Network Address Translation (NAT)

Διαδίκτυα και το Διαδίκτυο (Internetworking and the Internet)

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

Πρωτόκολλα Διαδικτύου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

Cryptography and Network Security Chapter 16. Fifth Edition by William Stallings

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου

8.3 Ασφάλεια ικτύων. Ερωτήσεις

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Λειτουργικά Συστήματα (ΗΥ321)

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΝΑΛΥΣΗ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΗΣ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ IPSEC ΣΕ LINUX ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΙΧΑΗΛ ΙΑΤΡΟΥ του ΓΕΩΡΓΙΟΥ ΦΟΙΤΗΤΗ ΤΟΥ ΤΜΗΜΑΤΟΣ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΠΙΒΛΕΠΩΝ: ΚΑΘΗΓΗΤΗΣ Δ. ΣΕΡΠΑΝΟΣ ΑΡΙΘΜΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: ΟΚΤΩΒΡΙΟΣ 2008

ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωματική εργασία με θέμα: ΑΝΑΛΥΣΗ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΗΣ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ IPSEC ΣΕ LINUX του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Μιχαήλ Ιατρού του Γεωργίου (Α.Μ. 4536) παρουσιάστηκε δημόσια και εξετάσθηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 15.10.2008 Ο Επιβλέπων Ο Διευθυντής του Τομέα Καθηγητής Δ. Σερπάνος Καθηγητής K. Γκούτης

Περίληψη Το IPsec είναι ένα σύνολο πρωτοκόλλων με σκοπό να παρέχονται υπηρεσίες ασφάλειας σε επίπεδο πακέτων IP και εμπίπτει στη κατηγορία των εφαρμογών VPN. Το Linux είναι ένα σύγχρονο λειτουργικό σύστημα, ανοιχτού κώδικα με μεγάλη ευελιξία για χρήση σε διαφορετικές αρχιτεκτονικές και εξαιρετική απόδοση σε πρωτόκολλα δικτύων. Αυτή η εργασία είναι προσανατολισμένη στην μελέτη της απόδοσης της υλοποίησης του IPsec σε Linux. Ορίζουμε τα μεγέθη που είναι σημαντικά για την αξιολόγηση της απόδοσης του IPsec, την μεθοδολογία των μετρήσεων, καθώς και τις παραμέτρους που καθορίζουν την απόδοση και στις οποίες μπορούμε να επέμβουμε με σκοπό να τη βελτιώσουμε. Μελετάμε τη συμπεριφορά σε διαφορετικά υπολογιστικά συστήματα και συγκρίνουμε την απόδοση με αυτή μια εναλλακτικής τεχνολογίας VPN, το OpenVPN. i

Πρόλογος Η εργασία εκπονήθηκε στο Εργαστήριο Συστηµατων Υπολογιστών του τµήµατος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστηµίου Πατρών υπό την επίβλεψη του καθηγητή Δημητρίου Σερπάνου. Θα ήθελα να ευχαριστήσω τον καθηγητή Δημήτριο Σερπάνο για τη καθοδήγηση και τη στήριξη που μου παρείχε κατά την εκπόνηση της εργασίας. Επίσης θα ήθελα να ευχαριστήσω τον μεταπτυχιακό φοιτητή Αρτέμιο Βογιατζή για τη συνεργασία, τις πολύωρες συζητήσεις και την ευχάριστη παρέα του. ii

Περιεχόμενα 1 Εισαγωγή 1 1.1 Περίληψη της εργασίας............................... 2 1.2 Η δομή της εργασίας................................. 3 2 Υπόβαθρο 4 2.1 VPN: Ορισμός, εφαρμογές και πρότυπα...................... 4 2.2 IPsec.......................................... 5 2.2.1 Αρχιτεκτονική IPsec............................. 6 2.2.2 IPsec modes.................................. 6 2.2.3 Security Associations και Security Policy................. 9 2.2.4 Πρωτόκολλα IPsec.............................. 11 2.2.5 Κρυπτογραφία σε IPsec........................... 14 2.3 OpenVPN....................................... 16 2.4 Θέματα απόδοσης.................................. 16 3 Μελέτη απόδοσης 17 3.1 Τοπολογία και παράμετροι απόδοσης δικτύου.................. 17 3.1.1 Παραμετροποίηση του TCP......................... 19 3.1.2 Κρυπτογραφικοί αλγόριθμοι IPsec..................... 19 3.1.3 Διαχείριση των interrupts.......................... 19 3.1.4 Μέγεθος MTU................................. 20 3.1.5 Κάρτες δικτύου................................ 20 3.2 Υπολογιστικά συστήματα.............................. 20 3.3 Λογισμικό....................................... 22 3.3.1 Περιβάλλον GNU/Linux........................... 22 3.3.2 netperf..................................... 23 3.3.3 oprofile..................................... 24 3.3.4 Εξειδικευμένα εργαλεία........................... 24 3.4 Μεθοδολογία μετρήσεων............................... 25 iii

4 Αποτελέσματα 27 4.1 Απόδοση IP, IPsec και IPsec ESP NULL...................... 27 4.2 Αξιολόγηση απόδοσης IPsec............................. 28 4.2.1 Απόδοση Ethernet 10 Mbit......................... 28 4.2.2 Απόδοση Fast Ethernet 100 Mbit...................... 35 4.2.3 Σχέση throughput - CPU.......................... 45 4.2.4 Απόδοση Gigabit Ethernet 1000 Mbit.................... 46 4.3 Βελτίωση του throughput του IPsec........................ 52 4.3.1 Παραμετροποίηση του TCP......................... 52 4.3.2 Διαχείριση των interrupts.......................... 53 4.3.3 Μέγεθος MTU................................. 57 4.3.4 Επίδραση των καρτών δικτύου (NIC).................... 58 4.3.5 Συνολική βελτίωση.............................. 65 4.4 Σύγκριση απόδοσης IPsec και OpenVPN..................... 65 5 Επίλογος 68 5.1 Συμπεράσματα.................................... 68 iv

Κατάλογος σχημάτων 2.1 Μοντέλα ασφάλειας.................................. 5 2.2 Δομικά στοιχεία του IPsec.............................. 7 2.3 IPsec Transport mode................................ 8 2.4 IPsec ESP Transport mode............................. 8 2.5 IPsec Tunnel mode.................................. 9 2.6 IPsec ESP Tunnel mode............................... 10 2.7 IPsec ESP protocol header............................. 12 2.8 ESP σε transport και tunnel mode......................... 12 2.9 IPsec AH protocol header.............................. 13 2.10 AH σε transport και tunnel mode......................... 14 2.11 Λειτουργία του HMAC................................ 15 3.1 Τοπολογίες δικτύου................................. 18 3.2 Σύνδεση συστημάτων και τερματικού ελέγχου................... 26 4.1 IPsec throughput (transport), 10 Mbit, (P2, P4M)................ 28 4.2 IPsec CPU usage (transport), 10 Mbit, (P2, P4M)................. 29 4.3 IPsec throughput (tunnel), 10 Mbit, (P2, P4M).................. 29 4.4 IPsec CPU usage (tunnel), 10 Mbit, (P2, P4M).................. 30 4.5 IPsec throughput (transport), 10 Mbit, (Χ1, Χ2).................. 31 4.6 IPsec CPU usage (transport), 10 Mbit, (Χ1, Χ2).................. 31 4.7 IPsec throughput (tunnel), 10 Mbit, (Χ1, Χ2)................... 32 4.8 IPsec CPU usage (tunnel), 10 Mbit, (Χ1, Χ2).................... 32 4.9 IPsec throughput (transport), 100 Mbit, (P2, P4M)................ 35 4.10 IPsec CPU usage (transport), 100 Mbit, (P2, P4M)................ 35 4.11 IPsec throughput (tunnel), 100 Mbit, (P2, P4M).................. 36 4.12 IPsec CPU usage (tunnel), 100 Mbit, (P2, P4M).................. 36 4.13 IPsec throughput (transport), 100 Mbit, (A, P4M)................ 38 4.14 IPsec CPU usage (transport), 100 Mbit, (A, P4M)................. 38 4.15 IPsec throughput (tunnel), 100 Mbit, (A, P4M).................. 39 4.16 IPsec CPU usage (tunnel), 100 Mbit, (A, P4M).................. 39 v

4.17 IPsec throughput (transport), 100 Mbit, (Χ1, Χ2)................. 41 4.18 IPsec CPU usage (transport), 100 Mbit, (Χ1, Χ2)................. 41 4.19 IPsec throughput (tunnel), 100 Mbit, (Χ1, Χ2)................... 42 4.20 IPsec CPU usage (tunnel), 100 Mbit, (Χ1, Χ2)................... 42 4.21 IPsec throughput και CPU, 100 Mbit, (P2, P4M), (A, P4M), (Χ1, Χ2)...... 45 4.22 IPsec throughput (transport), 1000 Mbit, (P41, P42)............... 46 4.23 IPsec CPU usage (transport), 1000 Mbit, (P41, P42)............... 46 4.24 IPsec throughput (tunnel), 1000 Mbit, (P41, P42)................. 47 4.25 IPsec CPU usage (tunnel), 1000 Mbit, (P41, P42)................. 47 4.26 IPsec throughput (transport), 1000 Mbit, (X1, X2)................ 49 4.27 IPsec CPU usage (transport), 1000 Mbit, (X1, X2)................. 49 4.28 IPsec throughput (tunnel), 1000 Mbit, (X1, X2).................. 50 4.29 IPsec CPU usage (tunnel), 1000 Mbit, (X1, X2).................. 50 4.30 TCP: Μεταβολή IPsec throughput (transport), 1000 Mbit, (X1, X2)....... 52 4.31 NAPI: Μεταβολή IPsec throughput (transport), MTU 1500, 1000 Mbit, (X1, X2) 54 4.32 NAPI: Μεταβολή IPsec throughput (tunnel), MTU 1500, 1000 Mbit, (X1, X2).. 54 4.33 NAPI: Μεταβολή IPsec throughput (transport), MTU 9000, 1000 Mbit, (X1, X2) 55 4.34 NAPI: Μεταβολή IPsec throughput (tunnel), MTU 9000, 1000 Mbit, (X1, X2).. 55 4.35 NAPI: Μεταβολή IPsec throughput (transport), MTU 16110, 1000 Mbit, (X1, X2) 56 4.36 NAPI: Μεταβολή IPsec throughput (tunnel), MTU 16110, 1000 Mbit, (X1, X2). 57 4.37MTU: Μεταβολή IPsec throughput (tunnel), 1000 Mbit, (X1, X2)........ 58 4.38 NIC: Μεταβολή IPsec throughput (transport), e1000-sk98lin, MTU 1500, 1000 Mbit, (P41, P42).................................... 59 4.39 NIC: IPsec CPU usage (transport), e1000, MTU 1500, 1000 Mbit, (P41, P42).. 59 4.40 NIC: IPsec CPU usage (transport), sk98lin, MTU 1500, 1000 Mbit, (P41, P42). 60 4.41 NIC: Μεταβολή IPsec throughput (tunnel), e1000-sk98lin, MTU 1500, 1000 Mbit, (P41, P42).................................... 60 4.42 NIC: IPsec CPU usage (tunnel), e1000, MTU 1500, 1000 Mbit, (P41, P42).... 61 4.43 NIC: IPsec CPU usage (tunnel), sk98lin, MTU 1500, 1000 Mbit, (P41, P42).. 61 4.44 NIC: Μεταβολή IPsec throughput (transport), e1000-sk98lin, MTU 9000, 1000 Mbit, (P41, P42).................................... 62 4.45 NIC: IPsec CPU usage (transport), e1000, MTU 9000, 1000 Mbit, (P41, P42).. 63 4.46 NIC: IPsec CPU usage (transport), sk98lin, MTU 9000, 1000 Mbit, (P41, P42). 63 4.47 NIC: Μεταβολή IPsec throughput (tunnel), e1000-sk98lin, MTU 9000, 1000 Mbit, (P41, P42).................................... 64 4.48NIC: IPsec CPU usage (tunnel), e1000, MTU 9000, 1000 Mbit, (P41, P42).... 64 4.49 NIC: IPsec CPU usage (tunnel), sk98lin, MTU 9000, 1000 Mbit, (P41, P42).. 65 4.50 Συνολική μεταβολή IPsec throughput (transport), MTU 1500-9000, 1000 Mbit, (X1, X2)........................................ 66 vi

4.51 Συνολική μεταβολή IPsec throughput (transport), MTU 1500-16110, 1000 Mbit, (X1, X2)........................................ 66 4.52 Σύγκριση OpenVPN και IPsec throughput (transport), 1000 Mbit, (PD1, PD2) 67 vii

Κατάλογος πινάκων 3.1 Υπολογιστικά συστήματα.............................. 21 4.1 Σύγκριση throughput IP-IPsec, 10 Mbit, (P2, P4M)................ 33 4.2 Σύγκριση throughput IP-IPsec, 10 Mbit, (Χ1, Χ2)................. 34 4.3 Σύγκριση throughput IP-IPsec, 100 Mbit, (P2, P4M)............... 40 4.4 Σύγκριση throughput IP-IPsec, 100 Mbit, (A, P4M)................ 43 4.5 Σύγκριση throughput IP-IPsec, 100 Mbit, (Χ1, Χ2)................ 44 4.6 Σύγκριση throughput IP-IPsec, 1000 Mbit, (P41, P42).............. 48 4.7 Σύγκριση throughput IP-IPsec, 1000 Mbit, (X1, X2)............... 51 4.8 TCP: Μεταβολή IP-IPsec throughput (transport), 1000 Mbit, (X1, X2)..... 53 4.9 NAPI: Μεταβολή IPsec throughput, 1000 Mbit, (X1, X2)............. 56 viii

Κεφάλαιο 1 Εισαγωγή Whoever wishes to keep a secret must hide the fact that he possesses one. Johann Wolfgang Von Goethe Ανέκαθεν μεταξύ των ανθρώπων υπήρχε η ανάγκη ή η επιθυμία να υπάρχουν μυστικά. Κάποια απ αυτά τα κρατούσαν μόνο για τον εαυτό τους, άλλα πάλι ήταν αντικείμενο επικοινωνίας με άλλους. Η ανάγκη να διατηρηθεί ο χαρακτήρας ενός μυστικού έδωσε αφορμή στη δημιουργία της κρυπτογραφίας, ενός μετασχηματισμού που επιτρέπει επιλεκτική πρόσβαση στη πληροφορία. Παρά το γεγονός ότι τα επικοινωνιακά μέσα εξελίχθηκαν από τον πάπυρο στο τηλέφωνο και το email, η ανάγκη τα μυστικά να παραμείνουν μυστικά και να υπάρχει έλεγχος στο ποίος έχει πρόσβαση σε αυτά παραμένει και είναι περισσότερο επίκαιρη από ποτέ. Το TCP/IP είναι η γλώσσα του Internet και επιτρέπει διαφορετικά είδη υπολογιστικών συστημάτων και συσκευών, με διαφορετικά λειτουργικά συστήματα να επικοινωνούν απροβλημάτιστα πάνω από ένα τεράστιο δίκτυο. Η ευελιξία και η συμβατότητα ήταν τα κύρια χαρακτηριστικά στα οποία στόχευε ο σχεδιασμός του. Αυτό που απέτυχε να καλύψει, και αυτό άρχισε να φαίνεται από νωρίς, ήταν η παροχή ενός μηχανισμού ασφάλειας. Ασφάλεια εννοούμε το τρίπτυχο των χαρακτηριστικών: Εμπιστευτικότητα (confidentiality), ακεραιότητα δεδομένων (data integrity) και ταυτοποίηση (authentication). To IPsec έρχεται να δώσει λύσεις και στις τρεις πτυχές της ασφάλειας, με έναν τρόπο κομψό, επεκτάσιμο και αποτελεσματικό, επιδιώκοντας να γίνει το defacto πρότυπο ασφαλούς επικοινωνίας, χωρίς να θυσιάσει τα χαρακτηριστικά που έκαναν το TCP/IP καθολικά αποδεκτό και επιτυχημένο. Η ευκαιρία γι αυτό δόθηκε στα πλαίσια της εξέλιξης του IP από IPv4 σε IPv6. Συγκεκριμένα το IPsec σχεδιάστηκε με σκοπό να χρησιμοποιείται υποχρεωτικά στο IPv6, αλλά υποστηρίζει και το IPv4. Το IPsec είναι ένα σύνολο πρωτοκόλλων που παρέχουν το σύνολο των απαιτούμενων υπηρεσιών ώστε να είναι εφικτή η ασφαλής επικοινωνία μεταξύ δύο οποιονδήποτε κόμβων, σε οποιοδήποτε δίκτυο. Στον πυρήνα του βρίσκονται δύο πρωτόκολλα, το AH και το ESP που παρέχουν το γενικό πλαίσιο λειτουργίας και τη βάση για το μετασχηματισμό των δεδομένων ώστε να εξασφαλίζεται η εμπιστευτικότητα και 1

η ταυτοποίηση. Προς το παρόν το IPsec είναι το μόνο πρωτόκολλο που προσφέρει υπηρεσίες ασφάλειας στο επίπεδο Δικτύου κατά OSI. Αυτό σημαίνει ότι είναι το μοναδικό πρωτόκολλο το οποίο προσφέρει καθολική ασφάλεια μεταξύ των συστημάτων, ανεξάρτητα από τις εφαρμογές που κάνουν χρήση των υπηρεσιών του δικτύου. Ασφαλίζοντας το επίπεδο Δικτύου, ασφαλίζουμε κάθε δίκτυο. 1.1 Περίληψη της εργασίας Στη παρούσα εργασία εξετάζουμε την επίδραση που έχει η χρήση του IPsec στη στοίβα του TCP/IP στο λειτουργικό σύστημα Linux από τη σκοπιά της απόδοσης. Συγκεκριμένα, τα ερωτήματα που θα μας απασχολήσουν και θα προσπαθήσουμε να απαντήσουμε είναι: Ποία είναι η επίδραση που έχει στο throughput του IP η χρήση του IPsec; Το IPsec είναι ένα επιπλέον πρωτόκολλο για το οποίο απαιτείται επεξεργασία για κάθε ένα πακέτο που υπάρχει στο δίκτυο. Επιπλέον, είναι σχετικά πολύπλοκο και ορίζει ποικίλους τρόπους λειτουργίας και μετασχηματισμούς, για τους οποίους δεν είναι εύκολο να αντιληφθούμε την επίδραση στο throughput διαισθητικά. Πώς επηρεάζουν οι διάφοροι κρυπτογραφικοί αλγόριθμοι την απόδοση του δικτύου και τις ανάγκες σε υπολογιστική ισχύ; Το IPsec είναι αρκετά ευέλικτο σε ότι αφορά τους μετασχηματισμούς δεδομένων που χρησιμοποιεί: ενώ ο βασικό σκελετός επεξεργασίας ενός πακέτου παραμένει ο ίδιος, οι μετασχηματισμοί των δεδομένων αλλάζουν και παραμετροποιούνται εύκολα, στα πλαίσια πάντα των προτύπων και των πρωτοκόλλων. Δεν είναι όλοι οι μετασχηματισμοί (αλγόριθμοι) ισοδύναμοι, και συνεπώς αναζητούμε τον καλύτερο συνδυασμό απόδοσης και ασφάλειας. Υπάρχει διαφορά στο throughput ή τις υπολογιστικές απαιτήσεις ανάμεσα στο transport και το tunnel mode; Το IPsec καλύπτει διαφορετικές ανάγκες συνδέσεων με δύο διαφορετικούς μηχανισμούς, το transport και το tunnel mode, με το δεύτερο να παρέχει λειτουργικότητα που μπορεί να θεωρηθεί υπερσύνολο του πρώτου. Θα διερευνήσουμε αν αυτή η διαφοροποίηση έχει νόημα από άποψη απόδοσης. Υπάρχει τρόπος να βελτιωθεί η απόδοση της τρέχουσας υλοποίησης; Ο φόβος του καλού είναι το καλύτερο. Το IPsec αναπόδραστα θα έχει επίδραση στο throughput του δικτύου, στις ανάγκες για επεξεργαστική ισχύ ή και στα δύο. Θα δούμε αν είναι εφικτό να βελτιώσουμε κάποια πτυχή της απόδοσης στα πλαίσια του λειτουργικού συστήματος Linux και του υλικού (hardware) που έχουμε στη διάθεση μας. 2

1.2 Η δομή της εργασίας Σε αυτό το κεφάλαιο κάναμε μια γενική εισαγωγή στις ανάγκες που επιτάσσουν τις υπηρεσίες του IPsec και στις πτυχές της επίδρασης της χρήσης του που θα μας απασχολήσουν. Στο Κεφάλαιο 2 θα δούμε το γενικότερο πλαίσιο του IPsec, τις VPN εφαρμογές και πρότυπα, στη συνέχεια θα εξετάσουμε το σύνολο των τεχνολογιών που απαρτίζουν το IPsec, τη δομή του και τέλος θα αναφερθούμε σε μια εναλλακτική λύση VPN που προσπαθεί να προσεγγίσει τα ίδια προβλήματα από διαφορετική προοπτική, το OpenVPN. Στο Κεφάλαιο 3 θα παρουσιάσουμε την υποδομή που χρησιμοποιήσαμε σε hardware και software για τη μελέτη μας, όπως επίσης και τη μεθοδολογία που αναπτύξαμε για τη συλλογή και επεξεργασία και ερμηνεία των δεδομένων. Στο Κεφάλαιο 4 αναλύουμε τα αποτελέσματα, εξετάζουμε την επίδραση σε throughput και υπολογιστική ισχύ και δείχνουμε πως μπορούμε υπό συνθήκες να τα βελτιώσουμε. Τέλος, στο Κεφάλαιο 5 συγκεντρώνουμε τις παρατηρήσεις από τα αποτελέσματα και δίνουμε, όπου αυτό είναι εφικτό, απαντήσεις στα ερωτήματα που θέσαμε. 3

Κεφάλαιο 2 Υπόβαθρο If you reveal your secrets to the wind you should not blame the wind for revealing them to the trees. Khalil Gibran Σε αυτό το κεφάλαιο κάνουμε μια εισαγωγή στις τεχνολογίες VPN, καθώς και τα IPsec και OpenVPN σας αντιπροσωπευτικά παραδείγματα αυτών. Παρουσιάζεται συνοπτικά η αρχιτεκτονική του IPsec, καθώς και τα επιμέρους πρωτόκολλα και αλγόριθμοι που θα μας απασχολήσουν σε αυτή την εργασία. Γίνεται μια σύντομη αναφορά στα χαρακτηριστικά του OpenVPN και τη διαφορετική φιλοσοφία με την οποία προσεγγίζει το ίδιο πρόβλημα. Τέλος θα δούμε πιθανά προβλήματα που εισάγουν στην απόδοση του δικτύου οι τεχνολογίες VPN γενικά και το IPsec ειδικότερα. 2.1 VPN: Ορισμός, εφαρμογές και πρότυπα Το ακρωνύμιο VPN (Virtual Private Network) απαντάται συχνά, αλλά σε διαφορετικές συνθήκες έχει και διαφορετική σημασία. Εν γένει ο όρος αναφέρεται σε ένα σύνολο πρωτοκόλλων και των υλοποιήσεων αυτών σε συγκεκριμένες τεχνολογίες. Μπορούμε να πούμε ότι το VPN είναι μια τεχνολογία που μας επιτρέπει να δημιουργήσουμε μια ιδιωτική συνεδρία (private session) σε λογικό επίπεδο ανάμεσα σε δύο άκρα ενός πολύπλοκου φυσικού δικτύου. Ένα απλό νοητικό ισοδύναμο του VPN είναι μια τηλεφωνική κλίση: Αυτός που καλεί έχει ένα μοναδικό αναγνωριστικό, τον τηλεφωνικό αριθμό, γι αυτόν με τον οποίο θέλει να συνομιλήσει. Στο επόμενο βήμα, το αναγνωριστικό χρησιμοποιείται από έναν πολύπλοκο μηχανισμό από διασυνδεδεμένα δίκτυα που προωθούν τη κλίση πάνω από τηλεφωνικές γραμμές. Τόσο αυτός που καλεί όσο και ο παραλήπτης της κλήσης δεν γνωρίζουν τον ακριβή τρόπο με τον οποίο πραγματοποιείται η τηλεφωνική σύνδεση. Όταν όμως ο παραλήπτης της κλήσεις σηκώσει το τηλέφωνο που χτυπάει, έχουν στη διάθεση τους ένα ιδιωτικό κανάλι επικοινωνίας. Τελευταία υπάρχει άμεσος συσχετισμός των VPN με το Internet, γεγονός φυσιολογικό αφού το τελευταίο είναι σχεδόν καθολικά διαθέσιμο και αποτελεί ένα εξαιρετικό μέσο για τη 4

χρήση VPN. Παρόλα αυτά, οι τεχνολογίες VPN μπορούν να χρησιμοποιηθούν σε οποιασδήποτε μορφής δίκτυο, είτε το Internet, είτε WAN (Wide Area Network), είτε LAN (Local Area Network). 2.2 IPsec To IPsec είναι ένα σύνολο πρωτοκόλλων που παρέχουν ασφαλείς συνδέσεις. Τα χαρακτηριστικά του ορίζονται από αρκετά RFC [20] [21] [13] [19] [17] [18] [16] [24] [15] που προσδιορίζουν τις λεπτομέρειες για τα διαφορετικά τμήματα του πρωτοκόλλου, ενώ όλα ορίζουν πως αυτά αλληλεπιδρούν μεταξύ τους. Σκοπός του IPsec είναι να παρέχει ασφάλεια σε επίπεδο πακέτων IP. Αυτό το επιτυγχάνει παρέχοντας υπηρεσίες ακεραιότητας δεδομένων με πιστοποίηση αυθεντικότητας χωρίς σύνδεση (connectionless data integrity authentication), προαιρετική προστασία anti-replay, ταυτοποίηση προέλευσης δεδομένων (data origin authentication) και εμπιστευτικότητα ροής δεδομένων (data flow confidentiality). Το IPsec λειτουργεί σε ε- πίπεδο Δικτύου και αυτό του επιτρέπει να παρέχει τις παραπάνω υπηρεσίες ανεξάρτητα από τα πρωτόκολλα που χρησιμοποιούνται σε παραπάνω επίπεδα. Εναλλακτικά μοντέλα ασφάλειας παρουσιάζονται στο σχήμα 2.1. Σε σχέση με αυτά το IPsec έχει το σημαντικό πλεονέκτημα ότι προστατεύει όλη τη κίνηση του δικτύου, μειώνοντας το συνολικό overhead για τη δημιουργία ασφαλών καναλιών επικοινωνίας για τις εφαρμογές. Τέλος απλοποιεί την υ- λοποίηση υπηρεσιών ασφάλειας αφού συνήθως αυτή είναι πιο πολύπλοκή όταν οι υπηρεσίες υλοποιούνται σε υψηλά επίπεδα σε σχέση με τα χαμηλά [5]. Σχήμα 2.1: Μοντέλα ασφάλειας Όμως, η υλοποίηση υπηρεσιών ασφαλείας σε επίπεδο δικτύου δυσκολεύει πολύ τη διαχείριση τους σε επίπεδο εφαρμογής για πολυχρηστικά συστήματα. Παρά την ύπαρξη αυτής της αδυναμίας, μπορούμε να υποθέσουμε ότι άλλοι μηχανισμοί μπορούν να χρησιμοποιηθούν για τον έλεγχο από τις εφαρμογές και τη διαχείριση από τους χρήστες ώστε να επιτυγχάνεται η ισορροπία ασφάλειας και ευχρηστίας που κάθε σύστημα απαιτεί. 5

Για τη προστασία των πακέτων IP το IPsec παρέχει ένα σύνολο επιπλέον επικεφαλίδες (headers). Αυτές υποστηρίζουν και υλοποιούν δύο πρωτόκολλα, το AH (Authentication Header) και το ESP (Encapsulating Security Payload). To AH παρέχει data integrity, data origin authentication και προστασία anti-replay. To ESP παρέχει τα ίδια χαρακτηριστικά με το AH και επιπλέον data confidentiality. Τα ΑΗ και ESP δεν ορίζουν ποιοι ακριβώς αλγόριθμοι θα παρέχουν αυτές τις υπηρεσίες, αλλά τον τρόπο που θα το κάνουν. Οι κρυπτογραφικοί αλγόριθμοι που συνήθως χρησιμοποιούνται για το AH είναι οι MD5 και SHA1 και για το ESP οι DES, 3DES και AES. Αυτοί οι αλγόριθμοι λειτουργούν με τρόπο που απαιτεί την ύπαρξη μυστικών κλειδιών τα οποία μπορούν είτε να δημιουργούνται δυναμικά κατά τη διαπραγμάτευση (negotiation) μιας σύνδεσης ή να είναι προμοιρασμένα (preshared). H τελευταία λύση δεν είναι κατάλληλη για ευρεία εφαρμογή και γι αυτό συνήθως χρησιμοποιούμε τη δυναμική ανάθεση χρησιμοποιώντας λύσεις που ορίζει το πρωτόκολλο IKE (Internet Key Exchange). 2.2.1 Αρχιτεκτονική IPsec Όπως αναφέρθηκε εισαγωγικά, το IPsec είναι ένα σύνολο πρωτοκόλλων που περιλαμβάνει τα AH, ESP, IKE, ISAKMP/Oakley καθώς και διάφορους μετασχηματισμούς που είναι απαραίτητοι γι αυτά [5]. Το IPsec ορίζει πώς αυτά τα διαφορετικά πρωτόκολλα αλληλεπιδρούν μεταξύ τους για να παρέχουν την επιθυμητή λειτουργικότητα. Το σχήμα 2.2 δείχνει πως τα ε- πιμέρους συστατικά συνδέονται. Τα πρωτόκολλα ESP και AH ορίζουν τη δομή των headers, τους κανόνες επεξεργασίας των πακέτων και τις διάφορες υπηρεσίες που παρέχουν. Δεν περιγράφουν όμως τους απαραίτητους μετασχηματισμούς για τη παροχή αυτών των δυνατοτήτων. Οι παράμετροι που απαιτούνται από τους αλγορίθμους που χρησιμοποιούνται για authentication, όπως o MD5 και για κρυπτογράφηση, όπως ο AES, ορίζονται στο Domain of Interpretation (DOI). Επιπλέον ορίζεται η πολιτική ασφάλειας (Security Policy, SP) η ο- ποία προσδιορίζει ποίους μετσχηματισμούς θα πρέπει να χρησιμοποιήσουν δύο οντότητες για να επικοινωνήσουν. Με βάση το Security Policy γίνεται η δημιουργία και η διαχείριση των κλειδιών από το IKE. Όλες οι παράμετροι που χρησιμοποιούνται για διαπραγματεύσεις μεταξύ οντοτήτων ορίζονται από το DOI. 2.2.2 IPsec modes Το IPsec έχει δύο τρόπους λειτουργίας (modes), τον Τρόπο Μεταφοράς (transport mode) και τον Τρόπο Σήραγγας (tunnel mode). Συνδυάζοντας τα modes λειτουργίας με τα πρωτόκολλα AH και ESP που μπορούμε να χρησιμοποιήσουμε παίρνουμε συνολικά έξι διαφορετικούς συνδυασμούς: 1. ΑΗ σε transport mode 2. ESP σε transport mode 6

Σχήμα 2.2: Δομικά στοιχεία του IPsec 3. ΑΗ και ESP σε transport mode 4. AH σε tunnel mode 5. ESP σε tunnel mode 6. AH και ESP σε tunnel mode Συνήθως η ιδέα στη οποία βασίζονται οι τεχνολογίες VPN είναι αυτή του tunnel (packet encapsulation) όπου ολόκληρο το πακέτο που έχει προκύψει από την επεξεργασία των παραπάνω επιπέδων ενσωματώνεται σε ένα καινούριο πακέτο για την επίτευξη διαφανούς συνδεσιμότητας (transparent connectivity). Το IPsec με το transport mode όμως πρωτοτυπεί: δεν υπάρχει encapsulation σε ολόκληρο το πακέτο και ο αρχικός IP header διατηρείται. Η λειτουργία του transport mode φαίνεται στο σχήμα 2.3. To IPsec απομονώνει τον IP header από το payload που έχει προκύψει από το encapsulation των ωφέλιμων δεδομένων από τα παραπάνω επίπεδα, εφαρμόζει τον μετασχηματισμό για το AH/ESP που έχει οριστεί, προσθέτει το κατάλληλο header/trailer και επαναπροσαρτεί τον IP header αλλάζοντας μόνο τον τύπο του επόμενου πρωτοκόλλου Η επεξεργασία του header για ESP σε transport mode φαίνεται στο σχήμα 2.4. Ο βασικός περιορισμός του transport mode είναι ότι δεν είναι συμβατό με υπηρεσίες gateway, δηλαδή είναι κατάλληλο μόνο για end-to-end επικοινωνία. Αυτό συμβαίνει επειδή 7

Σχήμα 2.3: IPsec Transport mode Σχήμα 2.4: IPsec ESP Transport mode 8

η επεξεργασία για το IPsec στη λήψη των πακέτων γίνεται αφού έχει προηγηθεί η επεξεργασία του IP και ως εκ τούτου δεν υπάρχει πλέον διαθέσιμη πληροφορία διευθυνσιοδότησης. Σχήμα 2.5: IPsec Tunnel mode Για τη κάλυψη των περιπτώσεων όπου είναι αναγκαία host-to-network και network-tonetwork επικοινωνία, κάτι που συμβαίνει παραδοσιακά στις VPN λύσεις υπάρχει το tunnel mode. Η λειτουργία του tunnel mode φαίνεται στο σχήμα 2.5. Το IPsec παραλαμβάνει το πλήρες πακέτο IP και εφαρμόζει επάνω του τον απαραίτητο μετασχηματισμό για το AH/ESP που έχει οριστεί, προσθέτει το κατάλληλο AH/ESP header/trailer, και δημιουργεί ένα καινούριο IP header. Έτσι το πακέτο έχει δύο IP headers που παρέχουν πληροφορία διευθυνσιοδότησης και μπορεί να χρησιμοποιηθεί για να παρέχει υπηρεσίες gateway. 2.2.3 Security Associations και Security Policy Τα Security Associations (SA, Συσχετίσεις Ασφάλειας) είναι το «συμβόλαιο» ανάμεσα σε δύο οντότητες που επικοινωνούν για να παρέχουν υπηρεσίες ασφάλειας. Τα SA προσδιορίζουν τα IPsec πρωτόκολλα, τους μετασχηματισμούς, τα κλειδιά και τη διαχείριση των κλειδιών μεταξύ των οντοτήτων. Τα SA έχουν μονοκατευθυντικό χαρακτήρα, που σημαίνει ότι υπάρχουν ξεχωριστά SA για την επεξεργασία της εισερχόμενης κίνησης και ξεχωριστά γι αυτή της εξερχόμενης. Τα SA αποθηκεύονται σε μια βάση δεδομένων (SADB) η οποία χρησιμοποιείται σε συνδυασμό με τη Security Policy Database (SPD). Τα SA μπορούν να δημιουργούνται και να διαγράφονται με δύο τρόπους: αυτόματα και μη αυτόματα. Όταν εφαρμόζεται μη αυτόματη ανταλλαγή κλειδιών μεταξύ δύο οντοτήτων, τα δύο μέρη συμφωνούν στις παραμέτρους επικοινωνίας χωρίς να γίνεται χρήση του δικτύου. Επειδή αυτή η διαδικασία είναι επιρρεπής σε σφάλματα και χρονοβόρα, χρησιμοποιείται κυρίως σε LAN και δοκιμαστικές εγκαταστάσεις ή σε διαδικασία αποσφαλμάτωσης. Η 9

Σχήμα 2.6: IPsec ESP Tunnel mode 10

αυτόματη ανταλλαγή κλειδιών και διαπραγμάτευση παραμέτρων γίνεται χρησιμοποιώντας κάποιο πρωτόκολλο διαχείρισης κλειδιών όπως το IKE. Το IPsec καλεί το IKE όταν χρειάζεται να δημιουργήσει μια ασφαλή σύνδεση, το IKE διαπραγματεύεται τις παραμέτρους για το SA και το δημιουργεί με βάση το policy που έχει οριστεί. To Security Policy (SP, Πολιτική ασφάλειας) ορίζει το είδος των υπηρεσιών που μπορούν να χρησιμοποιηθούν για ένα πακέτο. Συγκεκριμένα ορίζει πως θα γίνει η μεταχείριση των IP πακέτων, ποία πρωτόκολλα θα χρησιμοποιηθούν, σε τι modes και με ποίους μετασχηματισμούς. To SP μπορεί να είναι διαφορετικό για την επεξεργασία της εισερχόμενης κίνησης και διαφορετικό για την επεξεργασία της εξερχόμενης. Η διαχείριση του SP επιτυγχάνεται μεταβάλλοντας τη SPD (Security Policy Database). Η υλοποίηση του IPsec οφείλει να παρέχει τη κατάλληλη διεπαφή για τη διαχείριση της SPD. 2.2.4 Πρωτόκολλα IPsec ESP Το Encapsulating Security Payload (ESP) [18] είναι ένα πρωτόκολλο header που προσαρτάται στο πακέτο IP για να το προστατέψει. To είδος των υπηρεσιών που παρέχει εξαρτάται από τις ρυθμίσεις. Μπορεί να παρέχει εμπιστευτικότητα (confidentiality), data origin authentication, ακεραιότητα δεδομένων (integrity) και προστασία anti-replay. Η εμπιστευτικότητα εξασφαλίζεται με τη χρήση κρυπτογραφικών αλγορίθμων, η ακεραιότητα υπολογίζοντας ένα μοναδικό κρυπτογραφικό αναγνωριστικό και η προστασία anti-replay με την ύπαρξη ενός μονοτονικά αύξοντος αριθμού στον header ο οποίος ελέγχεται από τον παραλήπτη σε κάθε πακέτο. Όταν γίνεται χρήση μόνο του ESP ενδείκνυται να είναι ενεργοποιημένες τόσο οι υπηρεσίες confidentiality όσο και οι data origin authentication και integrity, ώστε να παρέχεται προστασία από γνωστές [3] επιθέσεις. Η τυπική δομή ενός ESP header φαίνεται στο σχήμα 2.7. Το πεδίο SPI είναι ένα αριθμός που ορίζεται από τον παραλήπτη κατά τη διαδικασία ανταλλαγής κλειδιών. Χρησιμοποιείται σε συνδυασμό το πεδίο proto του IP header που περικλείει τον ESP και την IP διεύθυνση του παραλήπτη, για να προσδιορίζει το SA που θα χρησιμοποιηθεί για κάθε πακέτο. Το πεδίο Sequence Number είναι ένας μονοτονικά αύξοντα αριθμός και χρησιμοποιείται για την προστασία anti-replay. Το πεδίο των προστατευμένων δεδομένων (Encrypted Payload) έχει μεταβλητό μέγεθος και περιλαμβάνει το IV (Initialization vector) που είναι απαραίτητο στη λειτουργία των κρυπτογραφικών αλγορίθμων. Το πεδίο padding χρησιμοποιείται στη περίπτωση που ο κρυπτογραφικός αλγόριθμος απαιτεί τα δεδομένα είναι πάντα ακέραιο πολλαπλάσιο ενός συγκεκριμένου μεγέθους. Το πεδίο pad len ορίζει πόσα bytes έχουν χρησιμοποιηθεί για padding. Το πεδίο next hdr ορίζει το είδος του πρωτοκόλλου του header που υπάρχει μέσα στο payload και η τιμή του εξαρτάται από το αν χρησιμοποιούμε transport mode ή tunnel mode. Τέλος το πεδίο Authentication Data περιέχει το ICV που παρέχει την υπηρεσία data integrity check. 11

Σχήμα 2.7: IPsec ESP protocol header Σχήμα 2.8: ESP σε transport και tunnel mode 12

Το ESP μπορεί να χρησιμοποιηθεί σε transport ή tunnel mode. Στο σχήμα 2.8 φαίνεται σε κάθε περίπτωση ποία τμήματα του header και του payload είναι κρυπτογραφημένα και ποία προστατεύονται από encryption. Αξίζει να σημειωθεί ότι παρόλο που στο tunnel mode κρυπτογραφείται ολόκληρο το πακέτο IP αλλά το authentication του ESP ισχύει μόνο για το encrypted payload. Αν είναι απαραίτητο το authentication και για τον IP header, τότε πρέπει να χρησιμοποιηθεί και AH. AH Το Authentication Header [17] είναι ένα πρωτόκολλο header που χρησιμοποιείται για να παρέχει data origin authentication, connectionless data integrity και προστασία anti-replay. Δηλαδή παρέχει υπηρεσίες authentication, αλλά όχι encryption. Η προστασία anti-replay επιτυγχάνεται με την ύπαρξη ενός μονοτονικά αύξοντος αριθμού στον header ο οποίος ελέγχεται από τον παραλήπτη κάθε πακέτου. Το AH παρέχει προστασία στο τόσο στο payload του IP, όσο και στα αμετάβλητα πεδία του ίδιου του IP header. Αυτό συμβαίνει διότι ορισμένα πεδία του IP header, όπως το TTL για παράδειγμα, δεν παραμένουν σταθερά κατά τη διαδρομή από τον αποστολέα στον παραλήπτη. Το authentication επιτυγχάνεται υπολογίζοντας ένα μοναδικό κρυπτογραφικό αναγνωριστικό (ICV) χρησιμοποιώντας το payload και τα κατάλληλα πεδία του IP. Σχήμα 2.9: IPsec AH protocol header Η τυπική δομή ενός AH header φαίνεται στο σχήμα 2.9. Το πεδίο next hdr (next header) ορίζει τον τύπο του payload μετά το AH. Το πεδίο ΑΗ len ορίζει το μέγεθος ολόκληρου του AH header. Το πεδίο Reserved είναι αχρησιμοποίητο, προορίζεται για μελλοντική χρήση και τίθεται σε μηδέν. Το πεδίο SPI είναι ένα αριθμός που χρησιμοποιείται σε συνδυασμό με την IP διεύθυνση του παραλήπτη και το SP για να προσδιορίσει το SA για το κάθε πακέτο. Το πεδίο Sequence Number είναι ένας μονοτονικά αύξοντας αριθμός και χρησιμοποιείται 13

ακόμη και στην περίπτωση που δεν είναι ενεργοποιημένη η προστασία anti-replay. Το πεδίο Authentication Data είναι μεταβλητού μήκους και περιέχει το ICV (Integrity Check Value) για το πακέτο. Σχήμα 2.10: AH σε transport και tunnel mode Το AH μπορεί να χρησιμοποιηθεί σε transport ή tunnel mode. Στο σχήμα 2.10 φαίνεται σε ποία τμήματα του header και του pay load παρέχεται authentication σε κάθε περίπτωση. 2.2.5 Κρυπτογραφία σε IPsec Οι κρυπτογραφικοί αλγόριθμοι για authentication που χρησιμοποιούνται για το ICV συνήθως ορίζονται από τα SA. Δύο οντότητες που μοιράζονται ένα κλειδί μπορούν να χρησιμοποιήσουν Message Authentication Codes (MAC) για να επιβεβαιώσουν την αυθεντικότητα των μηνυμάτων που στέλνουν μεταξύ τους. Κατάλληλοι αλγόριθμοι για authentication είναι και οι αλγόριθμοι Keyed-Hashing Message Authentication [20] (HMAC) που βασίζονται σε αλγόριθμους συμμετρικής κρυπτογραφίας. To HMAC παρέχει την υποδομή για χρήση ο- ποιουδήποτε αλγορίθμου κρυπτογραφικού hash, όπως οι MD5 και SHA1. Η λειτουργία του HMAC φαίνεται στο σχήμα 2.11. Σκοπός του HMAC είναι να χρησιμοποιηθούν οι υπάρχοντες κρυπτογραφικοί αλγόριθμοι για hashing χωρίς αλλαγές και χωρίς να μειωθεί η αξιοπιστία ή η απόδοση τους. Με αυτόν τον τρόπο παρέχεται η δυνατότητα εύκολης αντικατάστασης αλγορίθμων αν αποδειχθεί στη πορεία ότι δεν είναι αρκούντος ασφαλείς. Για τους συνήθεις αλγόριθμους που χρησιμοποιούνται, MD5 και SHA1 έχουμε αντίστοιχα τα HMAC-MD5-96 και HMAC-SHA1-96. Ο αριθμός «96» σημαίνει ότι μόνο τα 96 από τα 128 και 160 bits αντίστοιχα χρησιμοποιούνται. MD5 Ο MD5 αναπτύχθηκε από τον Rivest το 1991 [25]. Είναι σχεδιασμένος σαν επέκταση του MD4 και υποτίθεται ότι είναι πιο αργός απ αυτόν και πιο «συμβατικός», με σκοπό να είναι πιο 14

Σχήμα 2.11: Λειτουργία του HMAC ασφαλής. Ο MD5 δεν απαιτεί μεγάλους πίνακες αντικατάστασης και είναι σχετικά γρήγορος σε 32 bit επεξεργαστές. Ο αλγόριθμος παίρνει σαν είσοδο δεδομένα οποιουδήποτε μεγέθους και παράγει σαν έξοδο ένα message digest μήκους 128 bit. Η εικασία είναι πως είναι υπολογιστικά ανέφικτο να παραχθούν δύο ίδια message digest από διαφορετικά δεδομένα. SHA1 O SHA1 ανήκει στην ομάδα κρυπτογραφικών αλγορίθμων hash που έχει σχεδιάσει η NSA και έχει κοινοποιήσει το NIST. Τα αρχικά σημαίνουν Secure hash Algorithm και η οικογένεια περιλαμβάνει 5 αλγορίθμους: SHA1, SHA224, SHA256, SHA384 και SHA512. O SHA1 είναι σχεδιασμένος βάσει των ίδιων αρχών με τις οποίες έχει σχεδιαστεί και ο MD4. Ο αλγόριθμος δέχεται σαν είσοδο ένα μήνυμα μήκους μικρότερου από 2 64 bits και παράγει σαν έξοδο ένα message digest μήκους 160 bits. DES, 3DES Οι πιο συνηθισμένοι αλγόριθμοι κρυπτογραφίας είναι οι DES και Triple DES (3DES). O DES αναπτύχθηκε το 1974 από τις IBM, NSA και NIST και υιοθετήθηκε ως το πρότυπο FIPS 46-1. Η αρχική σχεδίαση είχε προσανατολισμό την υλοποίηση σε hardware. Αυτή τη στιγμή ο DES δεν θεωρείται ασφαλής λόγω του μεγέθους του κλειδιού που χρησιμοποιεί που είναι μόνο 56 bit. Ο 3DES χρησιμοποιεί κλειδιά μήκους 112 bits και θεωρείται ασφαλής από άμεσες επιθέσεις (brute force attacks) αλλά παρόλα αυτά είναι αναποτελεσματικός από 15

άποψη απόδοσης. Και οι δύο είναι παρωχημένοι με τα σημερινά δεδομένα και τείνουν να αντικατασταθούν από τον AES. AES Τον Ιανουάριο του 1997 το NIST ανακοίνωσε την έναρξη των εργασιών για τη δημιουργία ενός αλγορίθμου που ουσιαστικά θα αντικαθιστά τον DES. Η διαδικασία ανάπτυξης θα ή- ταν ανοιχτή και ο τελικός αλγόριθμος θα ήταν διαθέσιμος χωρίς χρέωση. Οι προδιαγραφές απαιτούσαν τη χρήση κλειδιών 128, 192 και 256 bits, συμμετρικού κλειδιού (symmetric key) και block cipher. O αλγόριθμος που τελικά επικράτησε ήταν ο Rijndael. Ο αλγόριθμος χρησιμοποιεί block μεγέθους 128bit και υποστηρίζει κλειδιά μήκους 128, 192 και 256 bit. Αν και είναι εξαιρετικά πολύπλοκος, μπορεί να υλοποιηθεί ικανοποιητικά σε λογισμικό. 2.3 OpenVPN Το OpenVPN [26] είναι μια εφαρμογή που υλοποιεί VPN για τη δημιουργία συνδέσεων pointto-point, point-to-network και network-to-network (server-to-multiclient). Οι συνδέσεις είναι κρυπτογραφημένες και παρέχεται η υπηρεσία authentication. To OpenVPN βασίζεται στη βιβλιοθήκη TLS/SSL και επιτρέπει τη σύνδεση ακόμη και πίσω από firewalls και NAT. Το σημαντικότερο πλεονέκτημα του είναι η ευκολία εγκατάστασης και ρύθμισης, όπως και η ευελιξία του. Είναι λογισμικό ανοιχτού κώδικα και διανέμεται δωρεάν. 2.4 Θέματα απόδοσης Οι κρυπτογραφικοί αλγόριθμοι που χρησιμοποιούνται τόσο στο IPsec όσο και στο OpenVPN έχουν υψηλές απαιτήσεις σε επεξεργαστική ισχύ. Στις μέρες μας οι περισσότεροι γενικού σκοπού επεξεργαστές έχουν εξαιρετικές επιδόσεις, αλλά ακόμη και υπ αυτές τις συνθήκες τίθεται προς αμφισβήτηση στο κατά πόσο μπορούν να ανταποκριθούν στις ανάγκες των ταχυτήτων των σύγχρονων δικτύων, τη στιγμή που ο υπολογισμός του CRC checksum για το TCP ακόμη χαρακτηρίζεται ως ισχυοβόρα λειτουργία και γίνονται προσπάθειες να χρησιμοποιηθεί hardware acceleration πάνω στις κάρτες δικτύου (TCP Checksum Offloading). Η απόδοση των αλγορίθμων, οι δυνατότητες των υπολογιστικών συστημάτων, η επίδραση που έχει το IPsec στο δίκτυο και η βελτίωση της απόδοσης του θα μας απασχολήσουν στα επόμενα κεφάλαια 16

Κεφάλαιο 3 Μελέτη απόδοσης When you can measure what you are speaking about and express it in numbers, you know something about it. Lord Kelvin Αυτό το κεφάλαιο περιγράφει την υποδομή σε hardware, το software, καθώς και τη μεθοδολογία που αναπτύχθηκε για να πραγματοποιηθεί η μελέτη της απόδοσης του IPsec. Αρχικά παρουσιάζεται η τοπολογία του δικτύου καθώς και οι παράμετροι που επηρεάζουν την απόδοση του. Στη συνέχεια γίνεται μια αναλυτική παρουσίαση του εξοπλισμού που χρησιμοποιήθηκε, όπως και τα κριτήρια για την επιλογή των χαρακτηριστικών του. Τέλος αναλύονται τα μετρητικά προγράμματα και οι απαραίτητες ρυθμίσεις των υπολογιστικών συστημάτων για τη χρήση του IPsec και την ανάλυση της απόδοσης του. 3.1 Τοπολογία και παράμετροι απόδοσης δικτύου Το IPsec είναι, όπως είδαμε στο 2.2, προαπαιτούμενο για το IPv6. Δεδομένου ότι το τελευταίο έχει σχεδιαστεί με σκοπό να αποτελέσει το καθολικό (universal) πρωτόκολλο επιπέδου Δικτύου κατά OSI, είναι ζητούμενο το IPsec να μπορεί να χρησιμοποιηθεί σε κάθε τοπολογία δικτύου. To IPsec καλύπτει αυτή την απαίτηση παρέχοντας συνδεσιμότητα host to host, network to network και host to network (σχήμα 3.1). Για τη μελέτη της απόδοσης του IP έχουν οριστεί γενικές οδηγίες [23] που καθορίζουν τον τρόπο με τον οποίο προσδιορίζονται τα χαρακτηριστικά των κριτηρίων απόδοσης. Κατά τη διεκπεραίωση αυτής της εργασίας δεν υπήρχαν πρότυπα που να προσδιορίζουν τα κριτήρια και τη μεθοδολογία για τη μέτρηση της απόδοσης του IPsec. Υπήρχαν όμως παρεμφερή πρότυπα [14] [22] για να μας καθοδηγήσουν στην επιλογή τόσο των κριτηρίων απόδοσης όσο και στη στοιχειοθεσία της μεθοδολογίας. Στην εργασία αυτή θα επικεντρωθούμε στο ρυθμό διαμεταγωγής δεδομένων (throughput) ως βασικού κριτηρίου για την απόδοση του IPsec. Ο ρυθμός διαμεταγωγής δεδομένων δεν εννοείται αυστηρά όπως ορίζεται σε άλλες περιπτώσεις [4] αλλά ως ο μέσος ρυθμός διαμεταγωγής δεδομένων σε ικανό χρονικό διάστημα, 17

Σχήμα 3.1: Τοπολογίες δικτύου 18

μετρούμενος στο επίπεδο Εφαρμογής κατά OSI. Υπολογίζεται ως ο λόγος του συνολικού μεγέθους των δεδομένων που μεταφέρθηκαν σε ένα χρονικό διάστημα, προς το διάστημα αυτό. Ικανό χρονικό διάστημα ορίζουμε ένα χρονικό διάστημα στο οποίο τα όποια μεταβατικά φαινόμενα έχουν εκλείψει ή έχουν σαφώς ορισμένη επίδραση. Είναι δηλαδή τέτοιο ώστε περαιτέρω αύξηση του να μην επιφέρει διαφοροποίηση στο μέσο ρυθμό διαμεταγωγής δεδομένων. Καθίσταται προφανές ότι ένα τέτοιο διάστημα δεν ορίζεται απόλυτα, αλλά για τον προσδιορισμό του χρησιμοποιούμε μια μίξη βάσιμων υποθέσεων και επαναληπτικών δοκιμών με σφάλμα. Συνδυάζοντας τη διαθέσιμη βιβλιογραφία και παρατηρήσεις από μετρήσεις, απομονώσαμε τις πιθανές παραμέτρους για βελτίωση της απόδοσης του δικτύου σε τρία επίπεδα κατά OSI και πέντε συνολικά παράγοντες: Transport Παραμετροποίηση του TCP Network Κρυπτογραφικοί αλγόριθμοι IPsec Data Link Διαχείριση των interrupts, Μέγεθος MTU, Κάρτες δικτύου 3.1.1 Παραμετροποίηση του TCP Το TCP είναι ένα πρωτόκολλο επιπέδου Μεταφοράς (transport) σχεδιασμένο να παρέχει αξιόπιστη μεταφορά δεδομένων αποτελεσματικά πάνω από οποιαδήποτε φυσική ζεύξη. Για να επιτύχει το κομμάτι της αποτελεσματικότητας επιτρέπει στο χρήστη να διαχειριστεί μια σειρά παραμέτρων ώστε να έχει το βέλτιστο αποτέλεσμα ανάλογα με το είδος της ζεύξης και τις ανάγκες της εφαρμογής είτε σε ρυθμό μεταφοράς δεδομένων είτε σε καθυστέρηση. Όπως θα δούμε στο 3.4 στο δικό μας περιβάλλον δοκιμών η ζεύξη χαρακτηρίζεται α- πό ελάχιστο αριθμό λαθών και μικρό χρόνο μετάδοσης. Επιπλέον ο ρυθμός διαμεταγωγής δεδομένων (throughput) έχει οριστεί ως βασικό κριτήριο. 3.1.2 Κρυπτογραφικοί αλγόριθμοι IPsec Οι κρυπτογραφικοί αλγόριθμοι, όπως έδειξε και το profiling που κάναμε, είναι η κύρια αιτία του overhead. Η συνολική απόδοση μπορεί να επωφεληθεί σημαντικά από βελτιστοποιημένες υλοποιήσεις των αλγορίθμων ώστε να χρησιμοποιούν στο μέγιστο δυνατό τις δυνατότητες του επεξεργαστή. Όντως, αυτή ήταν μια διαπίστωση που έγινε αρκετά νωρίς στην υλοποίηση του IPsec στον Linux kernel και για τους περισσότερους αλγόριθμους υπάρχουν βελτιστοποιημένες υλοποιήσεις για δημοφιλείς αρχιτεκτονικές όπως 686. 3.1.3 Διαχείριση των interrupts Τα interrupts είναι ο τρόπος με τον οποίο οι περιφερειακές συσκευές ενημερώνουν τη CPU για συγκεκριμένα γεγονότα, όπως για παράδειγμα ότι μόλις έφτασε ένα καινούριο πακέτο. 19

Στον Linux kernel έχει παρατηρηθεί στο παρελθόν το φαινόμενο όπου ένας καταιγισμός α- πό interrupts να φέρνουν το σύστημα σε μη λειτουργική κατάσταση, όπου όλος ο χρόνος της CPU αναλώνεται στη διαχείριση των interrupts και όχι των εισερχόμενων δεδομένων προς επεξεργασία. Η λύση που προτάθηκε γι αυτό το πρόβλημα ονομάζεται NAPΙ, είναι α- νεξάρτητη από τη κάρτα δικτύου (αλλά απαιτεί υποστήριξη από τον driver της) και είναι ένα υβριδικός μηχανισμός interrupt/polling που συνοπτικά λειτουργεί ως εξής: όσο ο αριθμός των interrupts που στέλνει η κάρτα δικτύου είναι χαμηλός, η CPU και το λειτουργικό τα διαχειρίζονται ικανοποιητικά. Όταν ο αριθμός των interrupts περάσει ένα όριο και αρχίσει να εμφανίζεται το πρόβλημα του live lock που περιγράψαμε παραπάνω, η CPU απενεργοποιεί τα interrupts για τη κάρτα δικτύου και έτσι τα νέα πακέτα που φτάνουν, γεμίζουν τον ring buffer της, χωρίς να «ενοχλούν» τη CPU. Περιοδικά (polling) το σύστημα αδειάζει τον ring buffer της κάρτας δικτύου, κι αν το πλήθος των πακέτων που συλλέγει πέσει κάτω από ένα όριο, τότε ενεργοποιεί και πάλι τα interrupts. Αυτός ο μηχανισμός έχει εξαιρετικά αποτελέσματα όσον αφορά την εξάλειψη του live lock, αλλά και συνολικά της απόδοσης του συστήματος. 3.1.4 Μέγεθος MTU To MTU είναι άρρηκτα συνδεδεμένο με τα interrupts: όσο μεγαλύτερο το MTU, τόσο λιγότερα πακέτα χρειάζονται για να κορέσουν το διαθέσιμο bandwidth της κάρτα δικτύου, και τόσο λιγότερα interrupts πρέπει να διαχειριστεί η CPU. Επιπλέον το MTU επηρεάζει το μέγεθος του MSS για το TCP, που σημαίνει ότι οι συναρτήσεις για «πακετάρισμα» καλούνται λιγότερες φορές. 3.1.5 Κάρτες δικτύου Παρά το γεγονός ότι δύο κάρτες δικτύου μπορεί να έχουν το ίδιο ονομαστικό bandwidth, η απόδοση τους μπορεί να διαφέρει σημαντικά. Αυτό μπορεί να οφείλεται τόσο στην ποιότητα της υλοποίησης της κάρτα όσο και στον driver που χρησιμοποιεί το λειτουργικό σύστημα για να επικοινωνήσει μαζί της. 3.2 Υπολογιστικά συστήματα Ένα πρωτόκολλο δικτύου οφείλει να μην έχει εγγενείς περιορισμούς στην απόδοση του. Επιπλέον είναι απαραίτητο να είναι ανεξάρτητο από συγκεκριμένες αρχιτεκτονικές και υ- λοποιήσεις υπολογιστικών συστημάτων. Παρόλα αυτά η υλοποίηση ενός πρωτοκόλλου υ- πόκειται στους περιορισμούς της γλώσσας προγραμματισμού, του λειτουργικού περιβάλλοντος (βιβλιοθήκες, λειτουργικό σύστημα) και του υλικού (hardware) στο οποίο εκτελείται. Για να μελετήσουμε την απόδοση του IPsec θεωρήσαμε απαραίτητο να χρησιμοποιήσουμε 20

μια ποικιλία υπολογιστικών συστημάτων, από άποψη θεωρητικής απόδοσης και αρχιτεκτονικής. Τα υπολογιστικά συστήματα στα οποία είχαμε πρόσβαση και χρησιμοποιήσαμε τα παραθέτουμε στον πίνακα 3.1. ID CPU core Clock/FSB (MHz) RAM (MB) NIC (Mbit/s) P2 Intel Pentium 2 541 / 75 384 RTL8139 10/100 A AMD Athlon XP 1667 / 266 512 RTL8139 10/100 P41, P42 Intel Pentium 4 1800 / 100 256 Intel 82546 10/100/1000 P4M Intel Pentium 4M 2200 / 266 512 BCM 4401 10/100 X1, X2 Intel Xeon 2800 / 533 512 Intel 82546EB 10/100/1000 PD1, PD2 Intel Pentium D 2800 / 800 1024 Intel 82571EB 10/100/1000 Πίνακας 3.1: Υπολογιστικά συστήματα Αρχικά αξίζει να παρατηρήσει κανείς ότι ανάμεσα στα υπολογιστικά συστήματα υπάρχει μια δεκαετία εξέλιξης επεξεργαστών: από τον Intel Pentium 2 του 1997 έως τον Intel Pentium Duo του 2007. Οι αλλαγές τόσο στην αρχιτεκτονική όσο και στη συχνότητα λειτουργίας αυτών των επεξεργαστών είναι σημαντικές και αυτό θα μας δώσει τη δυνατότητα να μελετήσουμε τις δυνατότητες για κλιμάκωση της απόδοσης του IPsec. Επιπλέον, συμπεριλαμβάνοντας στο σετ ένα υπολογιστικό σύστημα βασισμένο στον επεξεργαστή της AMD, είχαμε τη δυνατότητα να δούμε κατά πόσο μια εναλλακτική υλοποίηση της x86 αρχιτεκτονικής μπορεί να επηρεάσει την απόδοση και να διαφοροποιηθεί από την, αντίστοιχων προδιαγραφών, υλοποίηση της Intel. Στο υποσύστημα της μνήμης, δύο είναι οι βασικές παράμετροι που μεταβάλλονται: η χωρητικότητα και η συχνότητα λειτουργίας του FSB 1. Η χωρητικότητα της μνήμης είναι περίπου τριπλάσια στο σύστημα με τη μεγαλύτερη από αυτό με τη μικρότερη. Η αύξηση, παρόλο που είναι σημαντική δεν περιμένουμε να διαφοροποιήσει ουσιαστικά την απόδοση λόγω του ότι τα 384 MB RAM, που είναι η ελάχιστη χωρητικότητα που έχουμε στη διάθεση μας, καλύπτουν πλήρως τις απαιτήσεις σε μνήμη. Η συχνότητα λειτουργίας του FSB, παρόλο που δεν ακολουθεί τη ραγδαία εξέλιξη των επεξεργαστών παρουσιάζει αξιοσημείωτη αύξηση και κατ επέκταση το ίδιο συμβαίνει και στο ρυθμό διαμεταγωγής δεδομένων από και προς τη RAM. Τέλος, οι κάρτες διασύνδεσης δικτύου (NIC) υποστηρίζουν τις τυπικές ταχύτητες του Ethernet (10 Mbit/sec) και Fast Ethernet (100 Mbit/sec) που είναι defacto σε όλες τις σύγχρονες τοπικές δικτυακές εγκαταστάσεις (LAN). Επιπλέον είχαμε στη διάθεση μας και κάποια συστήματα με υποστήριξη για Gigabit Ethernet (GigE, 1000 Mbit/sec), μια τεχνολογία που φαίνεται ότι στο εγγύς μέλλον θα αντικαταστήσει ολοκληρωτικά το Fast Ethernet στα 1 Front Side Bus: Ο δίαυλος (bus) που συνδέει τη CPU με το Northbridge και ως επί το πλείστον καθορίζει τη συχνότητα λειτουργίας του διαύλου της μνήμης 21

LAN. Από άποψη αξιοπιστίας και ποιότητας κατασκευής παρατηρούμε ότι και πάλι έχουμε στη διάθεση μας μια μεγάλη γκάμα επιλογών: από τις «οικονομικές» που βασίζονται στο chipset RTL8139 έως τις κάρτες για εξυπηρετητές με το Intel 82546EB. 3.3 Λογισμικό 3.3.1 Περιβάλλον GNU/Linux To GNU/Linux είναι ένα λειτουργικό σύστημα βασισμένο στο μοντέλο του UNIX και σε μεγάλο βαθμό συμβατό με το POSIX. Χρησιμοποιεί τα δομικά συστατικά (components) του GNU Project [11] και τον Linux kernel [9]. Ιδρυτής του GNU Project είναι ο Richard Stallman και αρχικός σχεδιαστής και δημιουργός του Linux kernel ο Linus Torvalds. Και τα δύο ανήκουν στη κατηγορία του λογισμικού ανοιχτού κώδικα (Free Software/Open Source Software). Τα χαρακτηριστικά που κάνουν τον Linux kernel ιδανικό για δικτυακές εφαρμογές είναι η ευελιξία του, η ευρωστία του και η εξαιρετική υποστήριξη προτύπων. Χαρακτηριστικό της ευελιξίας του είναι ότι η ίδια βάση πηγαίου κώδικα (source code) μπορεί να παραμετροποιηθεί και να μεταγλωττιστεί για να λειτουργήσει από embedded συσκευή μέχρι και υπερυπολογιστή. Επιπλέον, το GNU/Linux έχει καταξιωθεί σαν λειτουργικό σύστημα για εξυπηρετητές που έχουν ανάγκη από υψηλή διαθεσιμότητα και απόδοση, και τα δύο χαρακτηριστικά της ευρωστίας του. Τέλος, μία μεγάλη κοινότητα από ελεύθερους προγραμματιστές, εταιρείες, οργανισμούς και ακαδημαϊκά ιδρύματα χρησιμοποιούν το Linux σαν μέσο ανάπτυξης νέων προτύπων και σαν πλατφόρμα πειραματισμού στη βελτίωση παλαιότερων Πολλά από τα πρότυπα της IETF [1] αρχικά υλοποιούνται στον Linux kernel, με αποτέλεσμα η υλοποίηση τους να παρουσιάζει μέγιστη συμβατότητα και σταθερότητα και βέλτιστη απόδοση. Το GNU/Linux συνήθως χρησιμοποιείται με τη μορφή μιας διανομής (distribution). Για τη μελέτη του IPsec χρησιμοποιήσαμε κυρίως τη διανομή Slackware [10]. Το Slackware είναι πόνημα του Patrick Volkerding και μια από τις πρώτες διανομές Linux που υπήρξαν. Βασικό κριτήριο για την επιλογή του ήταν η απλότητα στη παραμετροποίησης του ώστε να καλύπτονται οι ανάγκες των δοκιμών, αλλά και η πληρότητα του σε προγραμματιστικά εργαλεία που βοήθησαν στην υλοποίηση εξειδικευμένων εφαρμογών. O Linux kernel που χρησιμοποιήθηκε δεν ήταν αυτός που έρχεται μαζί με το Slackware, αλλά προτιμήθηκε η χρήση ενός «καθαρού» (vanilla) kernel, παραμετροποιημένου (configured) και μεταγλωττισμένου (compiled) ώστε να ανταποκρίνεται στις απαιτήσεις και τις ιδιαιτερότητες των δοκιμών. Για τη χρήση και παραμετροποίηση του IPsec στο GNU/Linux, πέρα από τις κατάλληλες επιλογές κατά τη παραμετροποίηση του Linux kernel, απαιτείται και μια εφαρμογή για τη ρύθμιση των παραμέτρων του. Πρόκειται για το setkey που είναι τμήμα των ipsec-tools [6]. 22

3.3.2 netperf Το netperf [12] είναι ένα μετρητικό πρόγραμμα (benchmark) που μπορεί να χρησιμοποιηθεί για τη μελέτη διαφόρων παραμέτρων της απόδοσης ενός δικτύου. Πρωτίστως χρησιμοποιείται για τη μέτρηση του ρυθμού διαμεταγωγής (throughtput) σε TCP ή UDP κίνηση. Ανεπίσημα υποστηρίζεται από το IND Networking Performance Team, είναι λογισμικό ανοιχτού κώδικα και συντηρείται από τον Rick Jones. Το netperf ακολουθεί το client-server μοντέλο. Υπάρχουν δύο εκτελέσιμα, το netperf και το netserver. Συνήθως ο netserver τρέχει με τη μορφή daemon και ο χρήστης κάνει τις ρυθμίσεις και τις δοκιμές χρησιμοποιώντας το netperf. Όταν εκτελείται το netperf, δημιουργεί ένα κανάλι επικοινωνίας ελέγχου με το netserver, που μπορεί να βρίσκεται στο ίδιο ή σε απομακρυσμένο μηχάνημα. Το κανάλι αυτό χρησιμοποιείται για να μεταφέρονται πληροφορίες ρυθμίσεων και τα αποτελέσματα των μετρήσεων από το απομακρυσμένο σύστημα. Ανεξάρτητα από το είδος του τεστ που έχει πραγματοποιηθεί, το κανάλι ελέγχου χρησιμοποιεί TCP σύνδεση και BSD sockets. Αφού έχουν μεταφερθεί οι πληροφορίες μετρήσεων, ξεκινάει μια καινούρια σύνδεση για τη πραγματοποίηση των μετρήσεων. Κατά τη διάρκεια τους, στο κανάλι ελέγχουν δεν υπάρχει κίνηση, εκτός κι αν στο σύστημα υπάρχουν επιλογές για το το TCP όπως η SO_KEEPALIVE, οπότε και περιοδικά εμφανίζεται ελάχιστη κίνηση, η οποία όμως δεν επηρεάζει ουσιαστικά τις μετρήσεις. Αφού ολοκληρωθεί η διαδικασία, το netperf εμφανίζει τα αποτελέσματατα. Ένα σημαντικό χαρακτηριστικό του netperf είναι η δυνατότητα προσδιορισμού της στατιστικής ακρίβειας των μετρήσεων, υπό τη μορφή των παραμέτρων επιπέδου εμπιστοσύνης (confidence level), διαστήματος εμπιστοσύνης (confidence interval) καθώς και μέγιστου και ελάχιστου αριθμού επαναλήψεων. Στη περίπτωση που το με το μέγιστο πλήθος επαναλήψεων δεν είναι επιτευκτή η επιθυμητή ακρίβεια, στα αποτελέσματα εμφανίζεται σχετικό προειδοποιητικό μήνυμα. Αυτός ο «εσωτερικός» μηχανισμός διαχείρισης των στατιστικών δεδομένων διευκολύνει σημαντικά τη διαδικασία των μετρήσεων και την εξαγωγή των συμπερασμάτων, χωρίς να θυσιάζει σε ακρίβεια και ελεγξιμότητα, μια και τα αποτελέσματα αναφέρουν τη μέση τιμή (mean value) και τη τυπική απόκλιση (standard deviation) όλων των επαναλήψεων. Στη συνήθη χρήση του netperf για τη μέτρηση του throughput (bulk data transfer performance) σε TCP, χρησιμοποιείται ένα unidirectional data stream με σκοπό να διαπιστωθεί πόσο γρήγορα μπορεί να στέλνει δεδομένα ένα σύστημα και πόσο γρήγορα μπορεί να τα λαμβάνει το άλλο. Η επιλογή του πρωτοκόλλου TCP είναι καθοριστικής σημασίας σε αυτή τη περίπτωση: με τη χρήση του UDP είναι διαθέσιμη μόνο η πληροφορία του πόσο γρήγορα μπορεί να στείλει πακέτα δεδομένων στο δίκτυο το σύστημα-πομπός, αγνοώντας την επίδραση στο σύστημα-δέκτη. Το TCP stream τροφοδοτείται από ένα ring buffer και ο οποίος μπορεί να περιέχει είτε δεδομένα από κάποιο αρχείο που το παρέχει ο χρήστης, είτε «τυχαία» (uninitialized) δεδομένα από τη μνήμη. Ο ring buffer δημιουργείται μόνο μια φορά, στην αρχή της μέτρησης, με το σκεπτικό ότι το netperf δεν αποσκοπεί στη μέτρηση της ταχύτητας διαμεταγωγής της μνήμης, αλλά του δικτύου. Τέλος το μέγεθος του είναι κα- 23