Download as pdf or txt
Download as pdf or txt
You are on page 1of 357

Ασφάλεια Υπολογιστικών

Συστημάτων

Νικολάου Σπύρος
Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ενότητα 1: Εισαγωγή
Σκοποί ενότητας
• Σε αυτή την ενότητα πραγματοποιείται
εισαγωγή στο μάθημα «Ασφάλεια
Υπολογιστικών Συστημάτων».

Περιεχόμενα ενότητας (1/2)


• Χαρακτηριστικά μαθήματος.
• Τάσεις στο χώρο της ασφάλειας.
• Επιθέσεις, Υπηρεσίες & Μηχανισμοί.
• Επιθέσεις.
• Υπηρεσίες Ασφάλειας.
• Πιστοποίηση Ταυτότητας.
• Έλεγχος Πρόσβασης.
• Απόρρητο Δεδομένων.
Περιεχόμενα ενότητας (2/2)
• Ακεραιότητα Δεδομένων.
• Μη αποποίηση.
• Υπηρεσία Διαθεσιμότητας.
• Μηχανισμοί Ασφάλειας.
• Ανάπτυξη Προτύπων και RFC.
• Βιβλιογραφία.

Τάσεις στο χώρο της ασφάλειας


• Η εποχή της παγκόσμιας συνδεσιμότητας, των ιών και των
χάκερ, της ηλεκτρονικής παρακολούθησης και της
ηλεκτρονικής απάτης έχει οδηγήσει σε μια αυξημένη
ανάγκη προστασίας των δεδομένων και των πόρων από
την παράνομη αποκάλυψη, καθώς και στην ανάγκη
διασφάλισης της αυθεντικότητας των δεδομένων και των
μηνυμάτων, αλλά και της προστασίας των συστημάτων
από επιθέσεις μέσω δικτύων.
• Η αύξηση των επιθέσεων συνάδει με την αυξανόμενη
χρήση του Διαδικτύου, ενώ παράλληλα αυξάνεται η
πολυπλοκότητα των πρωτοκόλλων, των εφαρμογών, αλλά
και του ίδιου του Διαδικτύου.
Επιθέσεις, Υπηρεσίες &
Μηχανισμοί (1/2)
• Απειλή (threat).
– Κίνδυνος εκμετάλλευσης ευπάθειας συστήματος.
• Επίθεση (attack).
– Σκόπιμη απόπειρα παράκαμψης υπηρεσιών
ασφάλειας και παραβίαση συστήματος.
• Επίθεση Ασφάλειας (security attack).
– Κάθε πράξη που θέτει σε κίνδυνο υπονόμευσης της
ασφάλειας πληροφοριών.

Επιθέσεις, Υπηρεσίες &


Μηχανισμοί (2/2)
• Μηχανισμός Ασφάλειας (security mechanism).
– Ένας μηχανισμός που έχει στόχο τον εντοπισμό, την
αποτροπή, ή την ανάκαμψη μετά από μια επίθεση
ασφάλειας.
• Υπηρεσία Ασφάλειας (security service).
– Βελτιώνει την ασφάλεια συστημάτων επεξεργασίας
δεδομένων και μετάδοσης πληροφοριών.
– Χρησιμοποιεί έναν ή περισσότερους μηχανισμούς
ασφαλείας.
Επιθέσεις (1/3)
• Διακοπή:
– Μία επίθεση ως προς τη διαθεσιμότητα.
• Υποκλοπή:
– Μία επίθεση ως προς το απόρρητο - την
εμπιστευτικότητα.
• Τροποποίηση:
– Μία επίθεση ως προς την ακεραιότητα δεδομένων.
• Προσποίηση:
– Μία επίθεση στην αυθεντικότητα.

Επιθέσεις (2/3)
• Παθητικές επιθέσεις.
– Σκοπός: Απόκτηση πληροφοριών κατά τη μετάδοσή
τους.
– Δύσκολες στη ανίχνευση.
– Κρυπτογράφηση
– Παραδείγματα:
• Απελευθέρωση - Αποκάλυψη περιεχομένου μηνύματος
(release of message contents).
• Ανάλυση κίνησης (traffic analysis).
Επιθέσεις (3/3)
• Ενεργητικές επιθέσεις.
– Σκοποί:
• Τροποποίηση ροής δεδομένων.
• Δημιουργία ψεύτικης ροής δεδομένων.
• Παραδείγματα:
– Μεταμφίεση (masquerade).
– Επανεκπομπή (reply).
– Τροποποίηση μηνυμάτων (modification of messages).
– Άρνηση εξυπηρέτησης (denial of service).

Υπηρεσίες Ασφάλειας
• Πιστοποίηση ταυτότητας (authentication).
• Έλεγχος πρόσβασης .
• Απόρρητο δεδομένων.
• Ακεραιότητα δεδομένων.
• Μη αποποίηση.
• Υπηρεσία διαθεσιμότητας.
Πιστοποίηση Ταυτότητας
• Διασφάλιση ότι η οντότητα είναι αυτή που
ισχυρίζεται ότι δημιούργησε ή έστειλε τα
στοιχεία.
• Διασφάλιση ότι δεν υπάρχουν παρεμβολές από
τρίτους.
• Δυο υπηρεσίες:
– Πιστοποίηση ταυτότητας ομότιμης οντότητας (peer
entity authentication).
– Πιστοποίηση ταυτότητας προέλευσης δεδομένων
(data origin authentication).

Έλεγχος Πρόσβασης
• Περιορισμός/έλεγχος πρόσβασης.
• Ταυτοποίηση οντοτήτων.
• Χρήση πόρων μόνο από εξουσιοδοτημένες
οντότητες.
Απόρρητο Δεδομένων (1/2)
• Εμπιστευτικότητα σύνδεσης (Connection
Confidentiality).
– Προστασία δεδομένων όλων των χρηστών μιας
σύνδεσης.
• Ασυνδεσμική εμπιστευτικότητα (Connectionless
Confidentiality).
– Προστασία δεδομένων όλων των χρηστών
μεμονωμένου τμήματος δεδομένων.

Απόρρητο Δεδομένων (2/2)


• Εμπιστευτικότητα επιλεγμένου πεδίου (Selective-
Field Confidentiality).
– Εμπιστευτικότητα επιλεγμένων πεδίων δεδομένων σε
μια σύνδεση ή τμήμα δεδομένων.
• Εμπιστευτικότητα ροής κίνησης (Traffic-Flow
Confidentiality).
– Προστασία πληροφοριών από παρατήρηση ροών
επικοινωνίας.
Ακεραιότητα Δεδομένων
• Ακεραιότητα σύνδεσης με αποκατάσταση
(Connection integrity with Recovery).
• Ακεραιότητα σύνδεσης χωρίς αποκατάσταση
(Connection Integrity without Recovery).
• Ακεραιότητα σύνδεσης επιλεγμένου πεδίου
(Selective-Field Connection Integrity).
• Ασυνδεσμική ακεραιότητα (Connectionless Integrity).
• Ασυνδεσμική ακεραιότητα επιλεγμένου πεδίου
(Selective-Field Connectionless Integrity).

Μη αποποίηση
• Αποτρέπει αποστολέα/παραλήπτη από άρνηση
μηνύματος που μεταδόθηκε.
• Μη αποποίηση, προέλευση (Origin).
– Απόδειξη ότι το μήνυμα στάλθηκε από το καθορισμένο
μέλος.
• Μη αποποίηση, προορισμός (Destination).
– Απόδειξη ότι το μήνυμα παραλήφθηκε από το
καθορισμένο μέλος.
Υπηρεσία Διαθεσιμότητας
• Διαθεσιμότητα για χρήση από εξουσιοδοτημένη
οντότητα.
• Αφορά σύστημα ή πόρο συστήματος.
• Επιθέσεις οδηγούν σε απώλεια ή μείωση
διαθεσιμότητας.
– Επιθέσεις άρνησης εξυπηρέτησης.
– Ιός που σβήνει αρχεία.

Μηχανισμοί Ασφάλειας
• Κρυπτογράφηση (Encipherment/Encryption).
• Ψηφιακή Υπογραφή (Digital Signature).
• Έλεγχος Πρόσβασης (Access Control).
• Ακεραιότητα δεδομένων (Data Integrity).
• Ανταλλαγή πιστοποίησης ταυτότητας (Authentication
Exchange).
• Προσαύξηση κίνησης (Traffic Padding).
• Έλεγχος δρομολόγησης (Routing Control).
• Μηχανισμός επικύρωσης (Notarization).
Ανάπτυξη Προτύπων και RFC
• Επιτροπή Αρχιτεκτονικής Διαδικτύου.
– Internet Architecture Board (IAB).
• Ομάδα Σχεδιασμού του Διαδικτύου.
– Internet Engineering Task Force (IETF).
• Καθοδηγητική Ομάδα Οργάνωσης του Διαδικτύου.
– Internet Engineering Steering Group (IESG).

Βιβλιογραφία
1. Κρυπτογραφία για Ασφάλεια Δικτύων Αρχές και
Εφαρμογές, Stallings.
2. Βασικές Αρχές Ασφάλειας Δικτύων: Εφαρμογές και
Πρότυπα, William Stallings.
3. Ασφάλεια δικτύων 6η Έκδοση, McClure Stuart, Scambray
Joel, Kurtz George.
4. Ασφάλεια Πληροφοριακών συστημάτων, Παγκαλος Γ.,
Μαυριδης Ι.
Ενότητα 2: Συμμετρική κρυπτογραφία

Περιεχόμενα ενότητας (1/4)


• Αρχές συμμετρικής κρυπτογράφησης.
• Ταξινόμηση Κρυπτογραφικών Συστημάτων.
• Κρυπτανάλυση.
• Τύποι επιθέσεων κρυπτογραφημένων μηνυμάτων.
• Εξαντλητική Αναζήτηση Κλειδιού.
• Πότε ένα σύστημα θεωρείται ασφαλές;
• Δομή Κρυπτογραφίας Feistel.
Περιεχόμενα ενότητας (2/4)
• Παράμετροι Feistel.
• Συμμετρικοί αλγόριθμοι κρυπτογράφησης
τμημάτων.
• Πρότυπο κρυπτογράφησης δεδομένων - DES.
• Κρυπτογράφηση Δεδομένων DES.
• Τριπλό DES.
• Εξελιγμένο Πρότυπο Κρυπτογράφησης - AES.
• Κωδικοποιητές ροής και RC4.

Περιεχόμενα ενότητας (3/4)


• Δομή Κωδικοποιητών Ροής.
• Σημαντικά Σχεδιαστικά Ζητήματα.
• Κωδικοποιητές Ροής και Κωδικοποιητές Τμημάτων.
• Σύγκριση Ταχύτητας Συμμετρικών Κωδικοποιητών.
• Αλγόριθμος RC4.
• Περιγραφή Αλγορίθμου RC4.
• Βήματα Αλγορίθμου RC4.
Περιεχόμενα ενότητας (4/4)
• Μέθοδος Αλυσιδωτής Κρυπτογράφησης
Τμημάτων.
• Τοποθέτηση Συσκευών Κρυπτογράφησης.
• Κρυπτογράφηση Συνδέσμου.
• Κρυπτογράφηση από άκρο σε άκρο.
• Διανομή Κλειδιών.
• Βιβλιογραφία.

Αρχές συμμετρικής
κρυπτογράφησης (1/3)
• Συμβατική κρυπτογράφηση.
• Κρυπτογράφηση μυστικού κλειδιού.
• Κρυπτογράφηση ενός κλειδιού.
• Ο μόνος τύπος κρυπτογραφίας στα τέλη του ’70.
• Σήμερα ο ευρύτερα χρησιμοποιούμενος τρόπος
κρυπτογραφίας.
Αρχές συμμετρικής
κρυπτογράφησης (2/3)
• Ένα σύστημα κρυπτογράφησης έχει πέντε
συστατικά:
1. Αρχικό απλό κείμενο (plain text).
2. Αλγόριθμος κρυπτογράφησης (encryption algorithm).
3. Μυστικό κλειδί (secret key).
4. Κρυπτογράφημα (ciphertext).
5. Αλγόριθμος αποκρυπτογράφησης (decryption
algorithm).

Αρχές συμμετρικής
κρυπτογράφησης (3/3)
• Δυο απαιτήσεις.
– Ισχυρός αλγόριθμος κρυπτογράφησης.
• Να μην αποκρυπτογραφείται εύκολα το μήνυμα.
• Να μην βρίσκεται εύκολα το κλειδί.
– Ακόμα και αν κάποιος κατέχει πολλά κρυπτογραφημένα
μηνύματα και το αρχικό.
– Ασφάλεια κλειδιού.
• Παράδοση κλειδιού με μυστικό τρόπο σε
αποστολέα/παραλήπτη.
• Διατήρηση κλειδιού σε ασφαλές μέρος.
Ταξινόμηση Κρυπτογραφικών
Συστημάτων (1/4)
• Τρεις ανεξάρτητες διαστάσεις με βάση:
– Τον τύπο των λειτουργιών που χρησιμοποιούνται για
το μετασχηματισμό του αρχικού μηνύματος σε
κρυπτογράφημα.
– Τον αριθμό των κλειδιών που χρησιμοποιούνται.
– Τον τρόπο με τον οποίο γίνεται η επεξεργασία του
αρχικού μηνύματος.

Ταξινόμηση Κρυπτογραφικών
Συστημάτων (2/4)
• Με βάση τον τύπο των λειτουργιών που
χρησιμοποιούνται για το μετασχηματισμό του
αρχικού μηνύματος σε κρυπτογράφημα.
– Οι αλγόριθμοι βασίζονται σε 2 αρχές.
• Αντικατάσταση.
• Μετάθεση .
Ταξινόμηση Κρυπτογραφικών
Συστημάτων (3/4)
• Με βάση τον αριθμό των κλειδιών που
χρησιμοποιούνται.
– Αν χρησιμοποιείται το ίδιο κλειδί.
• Συμμετρικό σύστημα ή μοναδικού κλειδιού ή μυστικού
κλειδιού ή συμβατικής κρυπτογραφίας.
– Αν χρησιμοποιείται διαφορετικό κλειδί.
• Ασύμμετρο σύστημα ή διπλού κλειδιού ή κρυπτογραφίας
δημόσιου κλειδιού.

Ταξινόμηση Κρυπτογραφικών
Συστημάτων (4/4)
• Τον τρόπο με τον οποίο γίνεται η επεξεργασία
του αρχικού μηνύματος.
– Κωδικοποιητής τμημάτων (block cipher).
• Για κάθε τμήμα εισόδου ένα τμήμα εξόδου.
– Κωδικοποιητής ροής (stream cipher).
• Ένα στοιχείο εξόδου για μια ροή στοιχείων εισόδου.
Κρυπτανάλυση
• Προσπάθεια αποκάλυψης του αρχικού
μηνύματος ή του κλειδιού κρυπτογράφησης.
• Εξαρτάται:
– Από την φύση του κρυπτογραφικού συστήματος.
– Από τις διαθέσιμες πληροφορίες.

Τύποι επιθέσεων κρυπτογραφημένων


μηνυμάτων (1/2)
• Κρυπτογραφήματος.
– Αλγόριθμος κρυπτογράφησης.
– Κρυπτογράφημα.
• Γνωστού αρχικού κειμένου.
– Αλγόριθμος κρυπτογράφησης.
– Κρυπτογράφημα.
– Κομμάτια αρχικού κειμένου κρυπτογραφημένα με το
ίδιο κλειδί.
Τύποι επιθέσεων κρυπτογραφημένων
μηνυμάτων (2/2)
• Επιλεγμένου αρχικού κειμένου.
– Αλγόριθμος κρυπτογράφησης.
– Κρυπτογράφημα.
– Επιλεγμένο αρχικό κείμενο και κρυπτογράφημα που
προκύπτει.
• Επιλεγμένου κρυπτογραφήματος και Επιλεγμένου
κειμένου.
– Σπάνιες κρυπταναλυτικές τεχνικές.

Εξαντλητική Αναζήτηση
Κλειδιού
Πίνακας 1. Εξαντλητική αναζήτηση κλειδιού. Πηγή: Διδάσκων (2015).
Key Size (bits) Number of Time required at
Alternative Keys 106 Decryption/µs
32 232 = 4.3 x 109 2.15 milliseconds
56 256 = 7.2 x 1016 10 hours
128 2128 = 3.4 x 1038 5.4 x 1018 years
168 2168 = 3.7 x 1050 5.9 x 1030 years
Πότε ένα σύστημα θεωρείται
ασφαλές;
• Κόστος παραβίασης κρυπτογραφήματος >> αξία
κρυπτογραφημένων πληροφοριών.
• Χρόνος «σπασίματος» >> διάρκειας ζωής
πληροφοριών.
– Όπου >> μεταφράζεται ως «πολύ μεγαλύτερο»!

Δομή Κρυπτογραφίας Feistel


• Οι περισσότεροι αλγόριθμοι κρυπτογράφησης
τμημάτων ακολουθούν την δομή που περίγραψε
ο Γερμανός κρυπτογράφος της IBM Horst Feistel
το 1973.
• Η υλοποίηση του δικτύου Feistel εξαρτάται από
την επιλογή των παραμέτρων και των
χαρακτηριστικών (δείτε την επόμενη διαφάνεια).
Παράμετροι Feistel (1/2)
• Μέγεθος Τμημάτων.
– Όσο μεγαλύτερα τόσο μεγαλύτερη ασφάλεια.
• Μέγεθος κλειδιού.
– Μεγαλύτερο κλειδί = μεγαλύτερη ασφάλεια.
– Συνήθως 128 bit.
• Αριθμός γύρων.
– Όσο περισσότεροι τόσο μεγαλύτερη ασφάλεια.
– Συνήθως 16 γύροι.

Παράμετροι Feistel (2/2)


• Αλγόριθμος παραγωγής υποκλειδιών.
– Μεγαλύτερη πολυπλοκότητα = δυσκολότερη
κρυπτανάλυση.
• Συνάρτηση γύρου.
– Μεγαλύτερη πολυπλοκότητα = μεγαλύτερη
ανθεκτικότητα στην κρυπτανάλυση.
Συμμετρικοί αλγόριθμοι
κρυπτογράφησης τμημάτων
• Data Encryption Standard (DES).
• 3 Data Encryption Standard (3DES).
• Advanced Encryption Standard (AES).

Πρότυπο κρυπτογράφησης
δεδομένων - DES
• Το πιο διαδεδομένο (αρχικά) σύστημα κρυπτογράφησης.
• Βασίζεται στον αλγόριθμο Data Encryption Algorithm
(DEA).
• Αρχικό κείμενο 64 bit.
– Κείμενα μεγαλύτερα των 64 bit υφίστανται επεξεργασία σε
τμήματα των 64 bit.
• Κλειδί 56 bit.
– Σχετικά μικρό κλειδί και αυτό θεωρείται αδυναμία του.
• 16 γύροι επεξεργασίας.
• Το 1999 «έσπασαν» κλειδί του αλγορίθμου σε 22 ώρες και
15 λεπτά.
Κρυπτογράφηση Δεδομένων
DES
• Επαναληπτικοί Κανόνες.
– Li = Ri-1.
– Ri = Li-1, F(Ri-1, Ki).
• Ανησυχίες για τον αλγόριθμο.
– Όσον αφορά την ισχύ του.
• Δεν έχει ανακαλυφθεί σημαντική αδυναμία.
– Όσον αφορά το μέγεθος κλειδιού.
• 256 (7,2x1016) πιθανά κλειδιά – χίλια χρόνια για να
κρυπταναλυθεί.

Τριπλό DES (1/3)


• Χρησιμοποιεί τρία κλειδιά.
• Τρεις εκτελέσεις του αλγορίθμου DES.
• Κρυπτογράφηση – Αποκρυπτογράφηση –Κρυπτογράφηση.
C = E(K3, D(K2 , E (K1 , P)))
– C = κρυπτογράφημα.
– Ρ = αρχικό κείμενο.
– Ek [Χ] = η κρυπτογράφηση του Χ με χρήση κλειδιού Κ.
– Dk [Y] = η αποκρυπτογράφηση του Υ με χρήση κλειδιού Κ.
Τριπλό DES (2/3)
• Πραγματικό μέγεθος κλειδιού: 3 Χ 56 = 168.

Εικόνα 1. Τριπλό DES. Πηγή: Διδάσκων (2015).

Τριπλό DES (3/3)


• Πλεονεκτήματα:
– Μήκος Κλειδιού 168 bits.
– Έγινε εξονυχιστικός έλεγχος αλγορίθμου.
• Δεν υπάρχει αποδοτική μέθοδος κρυπτανάλυσης.

• Μειονεκτήματα:
– Αργός στις υλοποιήσεις λογισμικού.
– Μέγεθος τμήματος 64 bit.
• Θα θέλαμε μεγαλύτερο μέγεθος για λόγους ασφάλειας και
απόδοσης.
Εξελιγμένο Πρότυπο
Κρυπτογράφησης - AES
• Εξέλιξη του 3DES.
• Μήκος κλειδιού 128, 192 ή 256 bit.
• Μέγεθος τμήματος 128 bit.

Κωδικοποιητές ροής και RC4


• Κωδικοποιητές Ροής.
– Επεξεργάζονται στοιχεία εισόδου συνέχεια.
– Παράγουν στην έξοδο ένα στοιχείο την φορά.
– Αλγόριθμος RC4: Ο πιο διαδεδομένος συμμετρικός
κωδικοποιητής ροής.
Δομή Κωδικοποιητών Ροής
• Παράδειγμα.
– Κρυπτογράφηση:
11001100 Αρχικό Κείμενο
⊗ 01101100 Ροή κλειδιών
10100000 Κρυπτογράφημα

– Αποκρυπτογράφηση:
10100000 Κρυπτογράφημα
⊗ 01101100 Ροή κλειδιών
11001100 Αρχικό Κείμενο

Σημαντικά Σχεδιαστικά
Ζητήματα
• Η γεννήτρια παράγει ψευδοτυχαία byte.
– Κάποια στιγμή θα αρχίσουν να επαναλαμβάνονται.
– Όσο μεγαλύτερη ακολουθία τόσο δυσκολότερη κρυπτανάλυση.
• Απαιτείται ισοκατανομή μεταξύ των 256 συνδυασμών των
8 bit.
– Θα φαίνεται πιο τυχαίο το κρυπτογράφημα άρα θα είναι
δυσκολότερη η κρυπτανάλυση.
• Όσο μεγαλύτερο είναι το κλειδί τόσο μεγαλύτερη η
προστασία από επιθέσεις εξαντλητικής αναζήτησης
κλειδιού.
Κωδικοποιητές Ροής
και Κωδικοποιητές Τμημάτων (1/2)
• Κωδικοποιητές Ροής:
– Με σωστά σχεδιασμένη γεννήτρια εξίσου ασφαλείς με
τον αποκωδικοποιητή τμημάτων.
– Πλεονεκτήματα.
• Ταχύτεροι.
• Χρησιμοποιούν πολύ μικρότερο κώδικα.

Κωδικοποιητές Ροής
και Κωδικοποιητές Τμημάτων (2/2)
• Κωδικοποιητές Τμημάτων:
– Επαναχρησιμοποίηση ίδιων κλειδιών.
– Μειονέκτημα.
• Αν δυο αρχικά κείμενα κρυπτογραφηθούν με το ίδιο
κλειδί, η κρυπτανάλυση είναι πολύ απλή.
– Ειδικά αν είναι πολύ απλά τα κείμενα π.χ. αριθμοί
πιστωτικών καρτών.
Σύγκριση Ταχύτητας
Συμμετρικών Κωδικοποιητών
Πίνακας 2. Σύγκριση ταχύτητας συμμετρικών κωδικοποιητών
(Μετρήσεις σε Pentium II). Πηγή: Διδάσκων (2015).
Κώδικας Μήκος Κλειδιού Ταχύτητα* (Mbps)
DES 56 9
3DES 168 3
AES μεταβλητό 0,9
RC4 μεταβλητό 45

Αλγόριθμος RC4
• Μεταβλητό μήκος κλειδιού.
• Βασίζεται στην χρήση μιας τυχαίας μετάθεσης
(permutation).
• Γρήγορος ως λογισμικό.
• Χρησιμοποιείται:
– Συστήματα SSL/TLS (Secure Sockets Layer/Transport
Layer Security) στο Web.
– Πρωτόκολλο WEP (Wireless Equivalent Protocol).
– Πρωτόκολλο WPA (WiFi Protected Access).
Περιγραφή Αλγορίθμου RC4
• Κλειδί μήκους 1-256 byte δίνει τιμές σε διάνυσμα
S (S[0], S[1],...,S[255]).
• Ανά πάσα στιγμή το S περιέχει μετάθεση όλων
των 8μπιτων αριθμών.
• Παράγεται συστηματικά ένα byte k από τα
στοιχεία του S.
• Μετά από κάθε παραγωγή ενός k, γίνεται νέα
μετάθεση των στοιχείων του S.

Βήματα Αλγορίθμου RC4 (1/2)


/*Αρχικές Τιμές */
for i=0 to 255 do
S[i] = i;
T[i] = K [i mod keylen];
/* Αρχική Μετάθεση του S*/
j=0;
for i=0 to 255 do
j= (j+S[i] + T[i]) mod 255;
Swap(S[i], S[j]);
Βήματα Αλγορίθμου RC4 (2/2)
/*Δημιουργία Ροής*/
i,j = 0;
while (true)
i = (i+1) mod 256;
j = (j+S[i]) mod 256;
Swap(S[i], S[j]);
t=(S[i]+S[j])mod 256;
k=S[t];

Μέθοδος Αλυσιδωτής
Κρυπτογράφησης Τμημάτων
• Είσοδος Αλγορίθμου:
– (Τρέχον τμήμα κειμένου) XOR (Προηγούμενο τμήμα
κρυπτογραφήματος).
Χ ι  Ε κ [Χ ι 1  Π ι ]

Δ Κ [Χ ι ]  Δ Κ [Ε Κ (Χ ι 1  Π ι )]
Δ Κ [Χ ι ]  (Χ ι 1  Π ι )
Χ ι 1  Δ Κ [Χ ι ]  Χ ι 1  Χ ι 1  Π ι  Π ι
Τοποθέτηση Συσκευών
Κρυπτογράφησης
• Κρυπτογράφηση Συνδέσμου.
– Link encryption.
• Κρυπτογράφηση από άκρο σε άκρο.
– End-to-end encryption.

Κρυπτογράφηση Συνδέσμου
• Κάθε τηλεπικοινωνιακός σύνδεσμος εξοπλίζεται
με συσκευή κρυπτογράφησης και στα δυο άκρα
του.
• Προσφέρει υψηλό επίπεδο ασφάλειας.
• Αποκρυπτογράφηση πακέτου κατά την είσοδό
του σε μεταγωγέα.
– Για να διαβάσει την επικεφαλίδα.
– Ευπάθεια στους μεταγωγείς.
Κρυπτογράφηση από άκρο σε
άκρο
• Η πηγή κρυπτογραφεί.
• Ο παραλήπτης αποκρυπτογραφεί.
• Τα δεδομένα μεταδίδονται κρυπτογραφημένα.
• Αδυναμία σε περίπτωση εικονικού κυκλώματος:
– Κρυπτογραφούνται μόνο τα δεδομένα του χρήστη.
– Δεν κρυπτογραφείται η επικεφαλίδα.
– Το μοτίβο της κίνησης δεν είναι ασφαλές.
– Λύση: Ταυτόχρονη χρήση Κρυπτογράφησης Συνδέσμου και
Κρυπτογράφησης από άκρο σε άκρο.

Διανομή Κλειδιών (1/3)


• Στη συμμετρική κρυπτογράφηση απαιτείται ανταλλαγή
κλειδιών.
– Απαιτείται ασφάλεια.
• Διάφοροι τρόποι ανταλλαγής κλειδιού:
– Επιλέγεται από τον Α και παραδίδεται με φυσικό τρόπο στον Β.
– Κάποιος τρίτος το επιλέγει και το διανέμει με φυσικό τρόπο στους
Α, Β.
– Αν Α, Β ήδη χρησιμοποίησαν κάποιο κλειδί, επιλέγει ο ένας από
τους δυο νέο κλειδί και το στέλνει κρυπογραφημένο με το παλιό
στον άλλο.
– Αν Α, Β έχουν κρυπτογραφημένη σύνδεση με Γ, ο Γ παραδίδει ένα
κλειδί μέσω της σύνδεσης σε Α, Β.
Διανομή Κλειδιών (2/3)
• Κλειδί περιόδου εργασίας (session key).
– Τα δεδομένα κρυπτογραφούνται με ένα μόνο κλειδί.
– Στο τέλος της εργασίας το κλειδί αυτοκαταστρέφεται.
• Μόνιμο Κλειδί (permanent key).
– Χρησιμοποιείται για την διανομή κλειδιών περιόδου
εργασίας.

Διανομή Κλειδιών (3/3)


• Κέντρο διανομής κλειδιών (key distribution center - KBC).
– Καθορίζει ποια συστήματα επιτρέπεται να επικοινωνήσουν
μεταξύ τους.
– Αφού δοθεί άδεια σύνδεσης στα 2 συστήματα παρέχει το
μιας χρήσης κλειδί περιόδου εργασίας σε αυτά.
• Μονάδα υπηρεσιών ασφάλειας (secure service module -
SSM).
– Εκτελεί την κρυπτογράφηση από άκρο σε άκρο.
– Λαμβάνει τα κλειδιά περιόδου εργασίας για λογαριασμό
των χρηστών.
Ενότητα 3: Κρυπτογραφία δημόσιου κλειδιού

Περιεχόμενα ενότητας (1/5)


• Πιστοποίηση Αυθεντικότητας Μηνυμάτων.
• Προσεγγίσεις Πιστοποίησης Αυθεντικότητας
Μηνυμάτων.
• Πιστοποίηση με χρήση συμβατικής
κρυπτογράφησης.
• Πιστοποίηση αυθεντικότητας χωρίς
κρυπτογράφηση.
• Παραδείγματα.
Περιεχόμενα ενότητας (2/5)
• Message Authentication Code - MAC.
• Μονόδρομη Συνάρτηση Κατακερματισμού.
• Απαιτήσεις Συναρτήσεων Κατακερματισμού.
• Απλές συναρτήσεις κατακερματισμού.
• Ασφαλής Συνάρτηση Κατακερματισμού SHA-1.
• Ασφαλής Συνάρτηση Κατακερματισμού SHA-512.
• Άλλοι ασφαλείς αλγόριθμοι κατακερματισμού.

Περιεχόμενα ενότητας (3/5)


• HMAC.
• Ιστορία Κρυπτογραφίας.
• Αλγόριθμος Καίσαρα.
• Permutation Algorithm.
• Αρχές κρυπτογραφίας δημόσιου κλειδιού.
• Δομή κρυπτογράφησης δημόσιου κλειδιού.
• Γενικός αλγόριθμος κρυπτογράφησης δημόσιου
κλειδιού.
Περιεχόμενα ενότητας (4/5)
• Εφαρμογές κρυπτογραφικών συστημάτων
δημοσίου κλειδιού.
• Απαιτήσεις κρυπτογραφίας δημόσιου κλειδιού.
• Ο αλγόριθμος δημόσιου κλειδιού RSA.
• Κατάρριψη αλγορίθμου RSA.
• Ανταλλαγή κλειδιών Diffie-Hellman.
• Ανταλλαγή κλειδιών Diffie-Hellman - Παράδειγμα.
• Άλλοι κρυπτογραφικοί αλγόριθμοι.

Περιεχόμενα ενότητας (5/5)


• Ψηφιακές υπογραφές.
• Προβλήματα Ψηφιακής Υπογραφής.
• Νομικό Πλαίσιο.
• Ηλεκτρονικά Υπογεγραμμένο Έγγραφο.
• Πιστοποιητικά δημόσιων κλειδιών.
• Βιβλιογραφία.
Κρυπτογραφία δημόσιου
κλειδιού

Πιστοποίηση Αυθεντικότητας
Μηνυμάτων
• Ένα μήνυμα/αρχείο/έγγραφο θεωρείται γνήσιο
όταν.
– Προέρχεται όντως από την προέλευση που δηλώνει.
– Τα περιεχόμενά του δεν έχουν μεταβληθεί.
– Δεν έχει σκόπιμα καθυστερήσει/αναμεταδοθεί.
• Η Πιστοποίηση Αυθεντικότητας Μηνυμάτων
(message authentication) προστατεύει από
ενεργητικές επιθέσεις.
– Σε αντίθεση με την κρυπτογράφηση.
Προσεγγίσεις Πιστοποίησης
Αυθεντικότητας Μηνυμάτων
• Με χρήση συμβατικής κρυπτογράφησης
(Authentication Using Conventional Encryption).
• Χωρίς κρυπτογράφηση (Authentication without
Message Encryption).
• Message Authentication Code - MAC.

Πιστοποίηση με χρήση
συμβατικής κρυπτογράφησης
• Μόνο αποστολέας και παραλήπτης μοιράζονται κάποιο
κλειδί.
– Άρα μόνο ο αυθεντικός αποστολέας μπορεί να
κρυπτογραφήσει επιτυχώς το μήνυμα.
• Για περεταίρω επιβεβαίωση της αυθεντικότητας της
αποστολής, μπορούν να χρησιμοποιηθούν επιπλέον:
– Κώδικας ανίχνευσης σφαλμάτων (error-detection code).
– Αριθμός ακολουθίας (Sequence Number).
– Χρονοσήμανση (Timestamp).
Πιστοποίηση αυθεντικότητας
χωρίς κρυπτογράφηση
• Προσαρτάται ετικέτα πιστοποίησης
αυθεντικότητας (authentication tag) στα
μηνύματα.
• Τα μηνύματα δεν είναι κρυπτογραφημένα.
– Δεν εξασφαλίζεται το απόρρητο της επικοινωνίας.
• Τότε για ποιο λόγο να χρησιμοποιηθεί;
– Ακολουθούν 3 παραδείγματα.

Παραδείγματα
• Εφαρμογές εκπομπής μηνύματος σε πολλούς
παραλήπτες.
– Είναι πιο φθηνό και αξιόπιστο να υπάρχει μόνο ένας
προορισμός που θα ελέγχει την πιστοποίηση
αυθεντικότητας.
• Επικοινωνία ανάμεσα σε μέλη με μεγάλο φόρτο
εργασίας.
– Στην οποία κάποιο μέλος δεν προλαβαίνει να
αποκρυπτογραφήσει όλα τα εισερχόμενα μηνύματα.
• Πιστοποίηση αυθεντικότητας προγράμματος
υπολογιστή.
Message Authentication Code -
MAC (1/3)
• Χρήση μυστικού κλειδιού για την παραγωγή του κωδικού
πιστοποίησης αυθεντικότητας μηνυμάτων (MAC).
– Προσαρτάται στο μήνυμα.
• Τα επικοινωνούντα μέλη μοιράζονται το ίδιο κλειδί KAB.
• MACM = F( KAB,M ).
• O κωδικός MAC αποστέλλεται μαζί με το μήνυμα.
• Ο παραλήπτης κάνει την ίδια διαδικασία και συγκρίνει τον
κωδικό που υπολόγισε με τον κωδικό που παρέλαβε.

Message Authentication Code -


MAC (2/3)
• Βεβαιώνεται ότι το μήνυμα.
– Δεν τροποποιήθηκε.
• Ο επιτιθέμενος μπορεί να αλλάξει το μήνυμα αλλά όχι και τον
κωδικό με αντίστοιχο τρόπο αφού δεν γνωρίζει το κλειδί.
– Προέρχεται από τον σωστό αποστολέα.
• Μόνο αυτός γνωρίζει το μυστικό κλειδί.
– Αν περιέχει το μήνυμα αριθμό ακολουθίας
βεβαιώνεται και η σωστή ακολουθία του μηνύματος.
• Ο αριθμός ακολουθίας δεν μπορεί να αλλαχθεί επιτυχώς.
Message Authentication Code -
MAC (3/3)
• Παρόμοια διαδικασία με κρυπτογράφηση.
– Ο αλγόριθμος όμως εδώ δεν είναι απαραίτητα
αντιστρέψιμος.
– Λιγότερο ευπαθής από την κρυπτογράφηση.

Μονόδρομη Συνάρτηση
Κατακερματισμού
• Εναλλακτική της MAC.
• Είσοδος: Αρχείο Μ.
• Έξοδος: Σύνοψη μηνύματος H(M).
– Message digest.
• Δεν χρησιμοποιείται μυστικό κλειδί.
• Ο τρόπος αποστολής της σύνοψης με το μήνυμα
την καθιστά αυθεντική.
Απαιτήσεις Συναρτήσεων
Κατακερματισμού
• Σκοπός: η παραγωγή “fingerprint”.
• Ιδιότητες Συναρτήσεων Κατακερματισμού Η().
– Εφαρμόζονται σε οποιουδήποτε μεγέθους τμήματα
δεδομένων.
– Παράγει έξοδο συγκεκριμένου σταθερού μεγέθους.
– Εύκολος υπολογισμός του H(x) για οποιοδήποτε x.
– Για οποιοδήποτε h να είναι αδύνατο να βρεθεί το x για το
οποίο Η(x) = h (ιδιότητα one way).
– Για οποιοδήποτε x να είναι αδύνατο να βρεθεί y ≠ x με H(x)
= H(y) (ιδιότητα ασθενούς ανθεκτικότητας).
– Eίναι αδύνατον να βρεθεί ζευγάρι (x,y) ώστε Η(x) = H(y)
(ιδιότητα ισχυρής ανθεκτικότητας).

Απλές Συναρτήσεις
Κατακερματισμού (1/4)
• Όλες οι συναρτήσεις κατακερματισμού
λειτουργούν με βάση τις ακόλουθες αρχές:
– Η είσοδος αντιμετωπίζεται σαν ακολουθία από
τμήματα των n bit.
– Η επεξεργασία της εισόδου γίνεται κατά ένα τμήμα τη
φορά, με επαναληπτικό τρόπο.
– Στο τέλος παράγεται έξοδος των n bits.
Απλές Συναρτήσεις
Κατακερματισμού (2/4)
• Ci = bi1 ⊕ bi2 ⊕ ... ⊕ bim.
– Ci: Το i bit του κωδικού κατακερματισμού.
– m: Ο αριθμός των τμημάτων των n bit στην
είσοδο.
– bij: Το i bit του j τμήματος.
– ⊕: Ο συντελεστής XOR.

Απλές Συναρτήσεις
Κατακερματισμού (3/4)
• Longitudinal Redundancy Check - LRC.
– Έλεγχος ακεραιότητας τυχαίων δεδομένων.
– Η πιθανότητα λάθος δεδομένα να οδηγήσουν στην
ίδια τιμή κατακερματισμού είναι 2-n.
– Όχι αποτελεσματική σε δεδομένα με προβλέψιμη
μορφή.
• Κείμενα αρχείου MSB = 0.
Απλές Συναρτήσεις
Κατακερματισμού (4/4)
• Longitudinal Redundancy Check - LRC (Συνέχεια).
– Λύση: Κυκλική ολίσθηση.
• Αρχική τιμή κατακερματισμού = 0.
• Για κάθε τμήμα.
– Μεταφέρουμε την τρέχουσα τιμή προς τα αριστερά κατά
1 bit.
– Εφαρμόζουμε στο τμήμα XOR με την τιμή
κατακερματισμού.

Ασφαλής Συνάρτηση
Κατακερματισμού SHA-1
• Παράγει τιμή κατακερματισμού μήκους 160 bit.
• Εκδόσεις SHA-256, SHA-384, SHA-512.
– Τιμή κατακερματισμού 256, 384, 512 bit, αντίστοιχα.
– Ίδια βασική δομή με την SHA-1.
• Για την SHA-512 ισχύει.
– Είσοδος: μήνυμα με μέγιστο μήκος 2128 bit.
– Έξοδος: σύνοψη μήκους 512 bit.
– Επεξεργασία εισόδου σε block των 1024 bit.
Ασφαλής Συνάρτηση
Κατακερματισμού SHA-512 (1/4)
• Βήμα 1: Προσάρτηση των bit συμπλήρωσης.
– Μήκος μηνύματος ≡ 896 (mod 1024).
– Bit συμπλήρωσης: 1000…0.
• Βήμα 2: Προσάρτηση του μήκους.
– Προσάρτηση block 128 bit (μη προσημασμένος
ακέραιος) που περιέχει το μήκος του μηνύματος πριν
την συμπλήρωση.

Ασφαλής Συνάρτηση
Κατακερματισμού SHA-512 (2/4)
• Βήμα 3: Απόδοση αρχικών τιμών στην περιοχή
προσωρινής αποθήκευσης κατακερματισμού.
– Buffer αποθήκευσης αποτελεσμάτων.
– 8 καταχωρητές των 64 bit (a, b, c, d, e, f, g, h).
– Αρχικοποίηση με δεκαεξαδικές τιμές.
• 64 πρώτα bit του δεκαδικού μέρους της τετραγωνικής
ρίζας των πρώτων 8 πρώτων αριθμών.
Ασφαλής Συνάρτηση
Κατακερματισμού SHA-512 (3/4)
• Βήμα 4: Επεξεργασία του μηνύματος σε τμήματα
των 1024 bit.
– 80 γύροι επεξεργασίας.
– Είσοδος κάθε γύρου: Τα περιεχόμενα του buffer.
– Wi: Προκύπτει από επεξεργασία του Mi.
– Ki: 64 πρώτα bit του δεκαδικού μέρους της ρίζας των
πρώτων 80 πρώτων αριθμών – χρησιμοποιείται για να
απαλείψει τυχόν κανονικότητες στα δεδομένα εισόδου.
– Η έξοδος του 80ου γύρου προστίθεται στην είσοδο του
1ου γύρου του επόμενου «κομματιού».

Ασφαλής Συνάρτηση
Κατακερματισμού SHA-512 (4/4)
• Βήμα 5: Έξοδος.
– Το Βήμα 4 πραγματοποιείται για τα Ν τμήματα.
– Η έξοδος του σταδίου Ν είναι και η σύνοψη του
μηνύματος.
Άλλοι ασφαλείς αλγόριθμοι
κατακερματισμού
Πίνακας 1. Άλλοι ασφαλείς αλγόριθμοι κατακερματισμού. Πηγή: Διδάσκων (2015).
SHA-512 MD5 Whirlpool
Μέγεθος 512 bits 128 bits 512 bits
σύνοψης
Μέγεθος 1024 bits 512 bits 512 bits
μονάδας
επεξεργασίας
Μέγιστο 2128 bits ∞ ∞
μέγεθος
αρχικού
μηνύματος

HMAC
• Ανάπτυξη κωδικών πιστοποίησης αυθεντικότητας
μηνυμάτων (MAC) με βάση έναν κρυπτογραφικό
κωδικό κατακερματισμού π.χ. SHA-1.
• Κίνητρα.
– Πιο γρήγορη εκτέλεση συναρτήσεων κατακερματισμού
σε σχέση με αλγορίθμους κρυπτογραφίας (π.χ. DES).
– Ευρέως διαθέσιμες βιβλιοθήκες κώδικα για
συναρτήσεις κατακερματισμού.
HMAC – Περιγραφή
• Η: Συνάρτηση κατακερματισμού.
• Μ: Μήνυμα εισόδου.
• Υi: Το τμήμα i του Μ.
• L: Ο αριθμός τμημάτων του Μ.
• b: Αριθμός bit ενός τμήματος.
• n: Μέγεθος κωδικού κατακερματισμού από την Η.
• K: Μυστικό κλειδί.
• Κ+: Το Κ συμπληρωμένο με 0 ώστε να έχει μήκος b bits.
• ipad: 00110110 b/8 φορές.
• opad: 0101100 b/8 φορές.

HMAC - Βήματα
HMAC(K,M) = H[(K+⊕opad) || H[(K+⊕ ipad)||M]]

• Προσάρτηση 0 στο αριστερό άκρο του Κ για την δημιουργία


του K+.
• XOR στο K+ με το ipad για την παραγωγή του Si μήκους b bit.
• Προσάρτηση Μ στο Si.
• Εφαρμογή του Η στη ροή που δημιουργείται στο βήμα 3.
• XOR στο K+ με το opad για την παραγωγή του So μήκους b bit.
• Προσάρτηση αποτελέσματος κατακερματισμού από το βήμα 4
στο So.
• Εφαρμογή της Η στη ροή που δημιουργείται στο βήμα 6 και
έξοδος του αποτελέσματος.
Ιστορία Κρυπτογραφίας
• Αλγόριθμος αντικατάστασης.
– Caesar’s cipher.
• Αλγόριθμος μετάθεσης.
– Permutation algorithm.

Αλγόριθμος Καίσαρα
• Κάθε γράμμα του αλφάβητου αντικαθίσταται από
το γράμμα βρίσκεται x θέσεις πιο κάτω στο ίδιο
αλφάβητο.
• Το όνομά του οφείλεται στο Ιούλιο Καίσαρα.
– Τον χρησιμοποιούσε για να επικοινωνεί με τους
στρατηγούς του με ασφάλεια.
Permutation Algorithm
• Κάθε γράμμα του αρχικού κειμένου
αντικαθίσταται από κάποιο άλλο γράμμα του
αρχικού κειμένου.
• Δεν αλλάζει τους ίδιους τους χαρακτήρες απλά
αλλάζει την θέση τους στο κείμενο.
– Άρα μπορεί εύκολα να ανιχνευθεί με βάση την
συχνότητα εμφάνισης των γραμμάτων.

Αρχές κρυπτογραφίας δημόσιου


κλειδιού
• Οι αλγόριθμοι δημοσίου κλειδιού βασίζονται σε
μαθηματικές συναρτήσεις και όχι πράξεις bit.
• Ασύμμετρη κρυπτογράφηση.
• Περιλαμβάνει χρήση 2 ξεχωριστών κλειδιών.
– Συνέπειες σε:
• Εμπιστευτικότητα.
• Διανομή κλειδιών.
• Πιστοποίηση αυθεντικότητας.
– Υπολογιστικά αδύνατο να υπολογιστεί το κλειδί
αποκρυπτογράφησης από την γνώση του κλειδιού
κρυπτογράφησης και του αλγορίθμου που
χρησιμοποιήθηκε.
Δομή κρυπτογράφησης
δημόσιου κλειδιού
• Το σύστημα κρυπτογράφησης έχει 5 στοιχεία:
1. Αρχικό κείμενο (plaintext).
2. Αλγόριθμος κρυπτογράφησης (encryption algorithm).
3. Δημόσιο και ιδιωτικό κλειδί (public and private key).
• Για κρυπτογράφηση/αποκρυπτογράφηση.
4. Κρυπτογράφημα (ciphertext).
5. Αλγόριθμος αποκρυπτογράφησης (decryption
algorithm).

Γενικός αλγόριθμος κρυπτογράφησης


δημόσιου κλειδιού
• Γενικά:
– Το δημόσιο κλειδί κοινοποιείται.
– Το ιδιωτικό είναι γνωστό μόνο στον ιδιοκτήτη.
– Κάθε χρήστης δημιουργεί ζεύγος κλειδιών.
– Κάθε χρήστης τοποθετεί το δημόσιο κλειδί σε δημόσιο
καταχωρητή ή προσπελάσιμο αρχείο.
– Το μήνυμα που αποστέλλεται κρυπτογραφείται με το δημόσιο
κλειδί του παραλήπτη.
– Ο παραλήπτης αποκρυπτογραφεί το μήνυμα με το ιδιωτικό του
κλειδί.
– Κανείς άλλος δεν μπορεί να το διαβάσει γιατί δεν έχει το ιδιωτικό
κλειδί του παραλήπτη.
• Το ιδιωτικό κλειδί μπορεί να αντικατασταθεί.
– Ο χρήστης πρέπει να κοινοποιήσει το νέο δημόσιο κλειδί.
Εφαρμογές κρυπτογραφικών
συστημάτων δημοσίου κλειδιού
• Τρεις κατηγορίες:
1. Κρυπτογράφηση/αποκρυπτογράφηση.
• Αποστολέας υπογράφει με δημόσιο κλειδί παραλήπτη .
2. Ψηφιακή υπογραφή.
• Αποστολέας «υπογράφει» με ιδιωτικό κλειδί.
3. Ανταλλαγή κλειδιών.
• Δύο πλευρές συνεργάζονται για την ανταλλαγή κλειδιού
περιόδου εργασίας (session key).

Απαιτήσεις κρυπτογραφίας
δημόσιου κλειδιού (1/2)
• Να είναι υπολογιστικά εύκολο για ένα μέλος Β να
δημιουργεί ένα ζεύγος PUb, PRb.
• Να είναι υπολογιστικά εύκολο για τον αποστολέα
να δημιουργεί το κρυπτογράφημα .
– C = E( PUb, M ).
• Να είναι υπολογιστικά εύκολο για τον παραλήπτη
να αποκρυπτογραφεί το κρυπτογράφημα με το
ιδιωτικό κλειδί.
– Μ = D(PRb, C) = D [ PRb, E( PUb, M ) ].
Απαιτήσεις κρυπτογραφίας
δημόσιου κλειδιού (2/2)
• Να είναι υπολογιστικά αδύνατο για κάποιον επιτιθέμενο
που γνωρίζει το δημόσιο κλειδί να βρίσκει το ιδιωτικό
κλειδί.
• Να είναι υπολογιστικά αδύνατο για κάποιον επιτιθέμενο
που γνωρίζει το δημόσιο κλειδί και ένα κρυπτογράφημα
να ανακτήσει το αρχικό μήνυμα.
• Οποιοδήποτε από τα δυο συσχετισμένα κλειδιά μπορεί
να χρησιμοποιηθεί για κρυπτογράφηση, με το άλλο να
χρησιμοποιείται για αποκρυπτογράφηση.
– Μ = D [ PUb, E( PRb, M ) ] = D [ PRb, E( Pub, M ) ].

Αλγόριθμοι κρυπτογραφίας
δημόσιου κλειδιού
• Οι πιο συχνά χρησιμοποιούμενοι είναι οι RSA και Hellman.
• RSA.
– Ron Rivest, Adi Shamir, Led Adleman MIT, 1977.
– O RSA είναι κωδικοποιητής τμημάτων.
– Η πιο ευρέως αποδεκτή κρυπτογράφηση δημόσιου κλειδιού.
• Diffie – Hellman.
– Επιτρέπει την ανταλλαγή κλειδιών με ασφάλεια.
– Βασίζεται στην δυσκολία υπολογισμού διακριτών
λογαρίθμων.
Ο αλγόριθμος δημόσιου
κλειδιού RSA
• Επιλέγουμε 2 πρώτους αριθμούς p, q.
• Υπολογίζουμε το n=pq.
• Υπολογίζουμε το φ(n) = (p-1)(q-1).
• Επιλέγουμε e τέτοιο ώστε gcd(φ(n),e) = 1 και 1<e< φ(n).
• Ορίζουμε d ώστε de mod φ(n) = 1 και d< φ(n).
• Δημόσιο κλειδί PU = {e,n}.
• Ιδιωτικό κλειδί PR = {d,n}.
• C = Me mod n.
• M = Cd mod n = (Me)d mod n = Med mod n.

Κατάρριψη αλγορίθμου RSA


• Εξαντλητική αναζήτηση κλειδιών.
– Όσο μεγαλύτερα e, d τόσο ασφαλέστερος
αλγόριθμος.
– Αλλά: Όσο μεγαλύτερο μήκος κλειδιού τόσο
πιο αργή η εκτέλεση.
Ανταλλαγή κλειδιών Diffie-
Hellman (1/2)
• q: Πρώτος αριθμός.
• α : α < q και α πρωτογενής ρίζα του q.
• Δημιουργία κλειδιού χρήστη Α.
– Επιλογή ιδιωτικού αριθμού ΧΑ με ΧΑ < q.
– Υπολογισμός δημόσιου ΥΑ με ΥΑ = α ΧΑ mod q.
• Δημιουργία κλειδιού χρήστη Β.
– Επιλογή ιδιωτικού αριθμού ΧΒ με ΧΒ < q.
– Υπολογισμός δημόσιου ΥΒ με ΥΒ = α ΧΒ mod q.

Ανταλλαγή κλειδιών Diffie-


Hellman (2/2)
• Δημιουργία μυστικού κλειδιού από χρήστη Α.
– Κ = (ΥΒ)ΧΑ mod q.
• Δημιουργία μυστικού κλειδιού από χρήστη B.
– Κ = (ΥA)ΧB mod q.
Ανταλλαγή κλειδιών Diffie-
Hellman - Παράδειγμα (1/2)
• q: Πρώτος αριθμός, q = 353.
• α: α < q και α πρωτογενής ρίζα του q, α = 3.
• Δημιουργία κλειδιού χρήστη Α.
– Επιλογή ιδιωτικού αριθμού ΧΑ με ΧΑ < q, ΧΑ= 97.
– Υπολογισμός δημόσιου ΥΑ με ΥΑ = α ΧΑ mod q, ΥΑ=397
mod 353 = 40.

Ανταλλαγή κλειδιών Diffie-


Hellman - Παράδειγμα (2/2)
• Δημιουργία κλειδιού χρήστη Β.
– Επιλογή ιδιωτικού αριθμού ΧΒ με ΧΒ < q, ΧB= 233.
– Υπολογισμός δημόσιου ΥΒ με ΥΒ = α ΧΒ mod q,
ΥB=3233 mod 353 = 248.
• Δημιουργία μυστικού κλειδιού από χρήστη Α.
– Κ = (ΥΒ)ΧΑ mod q = 24897 mod 353 = 160.
• Δημιουργία μυστικού κλειδιού από χρήστη B.
– Κ = (ΥA)ΧB mod q = 40233 mod 353 = 160.
Άλλοι κρυπτογραφικοί
αλγόριθμοι
• Πρότυπο Ψηφιακής Υπογραφής (Digital Signature
Standard).
– Χρησιμοποιεί τον αλγόριθμο SHA-1.
– Δεν μπορεί να χρησιμοποιηθεί για κρυπτογράφηση ή
ανταλλαγή κλειδιών.
• Κρυπτογραφία ελλειπτικής καμπύλης (Elliptic-curve
cryptography).
– Προσφέρει την ίδια ασφάλεια με τον RSA αλλά με πολύ
μικρότερο αριθμό bit.
– Χαμηλό επίπεδο εμπιστοσύνης.
– Μεγάλη πολυπλοκότητα.

Ψηφιακές υπογραφές (1/2)


• Κρυπτογράφηση με ιδιωτικό κλειδί αποστολέα.
• Αποκρυπτογράφηση με δημόσιο κλειδί
αποστολέα.
• Αποδεικνύει ποιος κρυπτογράφησε το μήνυμα.
• Ποιο αποτελεσματικό: κρυπτογράφηση ενός μόνο
μικρού τμήματος bit του εγγράφου.
• Δεν προσφέρει ασφάλεια για υποκλοπή.
Ψηφιακές υπογραφές (2/2)
• Λειτουργίες.
– Επικυρώνει το κείμενο και επαληθεύει την προέλευσή
του.
– Χρησιμοποιείται από τον παραλήπτη ως αποδεικτικό
στοιχείο.
– Χρησιμοποιείται από τρίτο πρόσωπο με σκοπό την
λύση παρεξηγήσεων.

Προβλήματα Ψηφιακής
Υπογραφής
• Ο Κώστας θέλει να πλαστογραφήσει την ψηφιακή υπογραφή
της Μαρίας.
• Μπορεί να υπογράψει μια επιταγή με το δικό του ιδιωτικό
κλειδί και στη συνέχεια να παρουσιάσει το δημόσιο κλειδί του
σαν να είναι της Μαρίας.
• Εάν οι υπόλοιποι βασιστούν στα λεγόμενά του, η
πλαστογράφηση είναι πετυχημένη.
• Άρα χρειάζεται να υπάρχει εμπιστοσύνη απέναντι στην
αντιστοίχηση κλειδιού και ταυτότητας.
• Η ψηφιακή υπογραφή δημιουργεί πρόβλημα αντιστοίχισης
κλειδιών.
• Οπότε απαιτείται η ύπαρξη μιας τρίτης, έμπιστης οντότητας.
Νομικό Πλαίσιο
• Διεθνής αναγνώριση ψηφιακών υπογραφών ως ισότιμες
με τις χειρόγραφες και σε μερικές περιπτώσεις ως
ισχυρότερες.
• Η Ευρωπαϊκή οδηγία EC/93/99 για τις ηλεκτρονικές
υπογραφές έχει ήδη υιοθετηθεί από όλα τα κράτη μέλη.
• Στην Ελλάδα υιοθετήθηκε με το ΠΔ150/2001.
• Η ΕΕΤΤ με την απόφαση 248/71 (ΦΕΚ 603/Β’/16-5-2002)
ρυθμίζει την διαπίστευση των παρόχων υπηρεσιών
πιστοποίησης και την έκδοση αναγνωρισμένων
πιστοποιητικών.

Ηλεκτρονικά Υπογεγραμμένο
Έγγραφο
• Αποτελείται από τα στοιχεία:
– Κύριο έγγραφο οποιασδήποτε ηλεκτρονικής μορφής.
– Συνημμένη ηλεκτρονική υπογραφή.
– Χρονοσήμανση της υπογραφής.
• Αποδίδεται από τρίτο πάροχο υπηρεσιών.
• Καθορίζει την ακριβή ώρα δημιουργίας της υπογραφής.
– Πιστοποιητικό δημόσιου κλειδιού του υπογραφόντα.
• Αποδεικνύει ότι το κλειδί του υπογράφοντα ανήκει όντως σε
αυτόν, ότι δηλαδή αυτός που υπογράφει είναι όντως αυτός ο
οποίος ισχυρίζεται ότι είναι.
Πιστοποιητικά δημόσιων
κλειδιών (1/3)
• Πρόβλημα:
– Εάν κάποιος προσποιηθεί ότι είναι ο χρήστης Α και
δημοσιοποιήσει το δημόσιο κλειδί του, μπορεί να
διαβάσει όλα τα μηνύματα που προορίζονται για τον Α.
• Λύση:
– Πιστοποιητικό δημόσιου κλειδιού.
• Αποτελείται από ένα δημόσιο κλειδί και ένα userID
υπογεγραμμένα από τρίτο, έμπιστο μέλος (Certificate
Authority).

Πιστοποιητικά δημόσιων
κλειδιών (2/3)
• Ψηφιακά υπογεγραμμένη δομή δεδομένων που
αντιστοιχίζει μία ή περισσότερες ιδιότητες μιας φυσικής
οντότητας στο δημόσιο κλειδί που της ανήκει.
• Υπογράφονται από μια τρίτη, έμπιστη οντότητα (Trusted
Third Party - TTP).
• Διασφαλίζει με τεχνικά, νομικά μέσα ότι ένα δημόσιο
κλειδί ανήκει σε μια συγκεκριμένη οντότητα.
– Άρα η οντότητα αυτή είναι ο νόμιμος κάτοχος του
αντίστοιχου ιδιωτικού κλειδιού.
Πιστοποιητικά δημόσιων
κλειδιών (3/3)
• Στοιχεία πιστοποιητικού:
– Πληροφοριακά στοιχεία για τον χρήστη.
– Το δημόσιο κλειδί του χρήστη.
– Το όνομα μιας Αρχής Πιστοποίησης (CA).
– Την ψηφιακή υπογραφή της CA.

Ενότητα 4: Pretty Good Privacy (PGP)


Περιεχόμενα ενότητας (1/3)
• Ασφάλεια Ηλεκτρονικού Ταχυδρομείου.
• Pretty Good Privacy.
• Γιατί είναι το PGP τόσο διαδεδομένο;
• Περιγραφή λειτουργίας.
• Πιστοποίηση.
• Εμπιστευτικότητα.
• Ταυτόχρονη Πιστοποίηση και Εμπιστευτικότητα.

Περιεχόμενα ενότητας (2/3)


• Συμπίεση.
• Συμβατότητα με ηλεκτρονικό ταχυδρομείο.
• Μετατροπή σε Radix-64.
• Κατάτμηση.
• Κρίκοι κλειδιών.
• Κρίκος ιδιωτικών κλειδιών.
• Κρίκος δημόσιων κλειδιών.
Περιεχόμενα ενότητας (3/3)
• Χρήση Κρίκων Κλειδιών.
• Προσεγγίσεις για την διαχείριση δημόσιων
κλειδιών.
• S/MIME.
• Βιβλιογραφία.

Ασφάλεια Ηλεκτρονικού
Ταχυδρομείου
• Δύο βασικές τεχνικές για εμπιστευτικότητα και
αυθεντικοποίηση ηλεκτρονικού
ταχυδρομείου.
– Pretty Good Privacy (PGP).
– Secure/Multipurpose Internet Mail Extension
(S/MIME).
Pretty Good Privacy
• Δημιουργία του Phillip R. Zimmerman (1995).
• Παρέχει υπηρεσίες:
– Εξασφάλισης απορρήτου.
– Πιστοποίησης αυθεντικότητας.
• Μπορεί να χρησιμοποιηθεί σε εφαρμογές:
– Email.
– Αποθήκευσης αρχείων.

Γιατί είναι το PGP τόσο


διαδεδομένο; (1/2)
• Δωρεάν λογισμικό ανοιχτού κώδικα.
• Ανεξάρτητο πλατφόρμας και επεξεργαστή.
• Η εμπορική έκδοση διαθέτει και υποστήριξη από τον
κατασκευαστή.
• Συνδυάζει τους καλύτερους διαθέσιμους
κρυπτογραφικούς αλγορίθμους για ασφάλεια.
– RSA, DSS, Diffie-Hellman για κρυπτογράφηση δημοσίου
κλειδιού.
– CAST-128, IDEA, 3DES για συμμετρική κρυπτογράφηση.
– SHA-1 για κωδικοποίηση κατακερματισμού.
Γιατί είναι το PGP τόσο
διαδεδομένο; (2/2)
• Έχει ευρύ πεδίο εφαρμογών και χρησιμοποιείται
από:
– Εταιρείες για κρυπτογράφηση αρχείων, μηνυμάτων.
– Μεμονωμένους χρήστες για ασφάλεια επικοινωνίας
μέσω Διαδικτύου.
• Δεν ελέγχεται από κυβερνητικό φορέα,
οργανισμό προτύπων.

Περιγραφή λειτουργίας
• Αποτελείται από 5 υπηρεσίες:
1. Πιστοποίηση (Authentication).
2. Εμπιστευτικότητα (Confidentiality).
3. Συμπίεση (Compression).
4. Συμβατότητα με ηλεκτρονικό ταχυδρομείο (Email
compatibility).
5. Κατάτμηση (Segmentation).
Πιστοποίηση (1/5)
• Υπηρεσία ψηφιακής υπογραφής.
• Ενέργειες:
– Δημιουργία μηνύματος από αποστολέα.
– Χρήση SHA-1 για παραγωγή κωδικού κατακερματισμού
μήκους 160 bit.
– Κρυπτογράφηση του κωδικού κατακερματισμού με
RSA και ιδιωτικό κλειδί του αποστολέα.
• Προσάρτηση αποτελέσματος στο μήνυμα.

Πιστοποίηση (2/5)
• Ενέργειες (Συνέχεια):
– Χρήση RSA και δημοσίου κλειδιού αποστολέα για
αποκρυπτογράφηση από τον παραλήπτη.
• Ανάκτηση κωδικού κατακερματισμού.
– Δημιουργία νέου κωδικού κατακερματισμού για το
μήνυμα από παραλήπτη και σύγκριση με τον
αποκρυπτογραφημένο κωδικό κατακερματισμού.
• Αν ταιριάζουν, το μήνυμα είναι αυθεντικό.
Πιστοποίηση (3/5)
• Παράδειγμα.
– Η Αλίκη κατέχει ζευγάρι δημόσιου/ιδιωτικού
(PUA/PRA) κλειδιού και θέλει να στείλει ένα
υπογεγραμμένο μήνυμα m στον Βασίλη.
– Η Αλίκη παράγει την σύνοψη μηνύματος SHA(m).
– Η Αλίκη κρυπτογραφεί την σύνοψη (RSA) με το
ιδιωτικό της κλειδί για να πάρει το κρυπτογράφημα c =
E [PRA, SHA(m)].
– Η Αλίκη στέλνει στον Βασίλη το ζευγάρι (m, c).

Πιστοποίηση (4/5)
• Παράδειγμα (Συνέχεια).
– Ο Βασίλης λαμβάνει το ζευγάρι και αποκρυπτογραφεί
(RSA) το c χρησιμοποιώντας το PUA για να λάβει την
ψηφιακή υπογραφή s=D[PUA,c].
– Ο Βασίλης υπολογίζει την σύνοψη του m
χρησιμοποιώντας το SHA-1.
– Αν η σύνοψη που βρίσκει είναι όμοια με το s, τότε το
μήνυμα είναι αυθεντικό και:
• Πραγματικά προέρχεται από την Αλίκη.
– Η Αλίκη δεν μπορεί αργότερα να αρνηθεί την
αποστολή του μηνύματος.
Πιστοποίηση (5/5)
• Χρήση αποδοτικού συνδυασμού RSA SHA-1.
– RSA: Ο παραλήπτης είναι βέβαιος ότι μόνο ο κάτοχος
του ιδιωτικού κλειδιού μπορεί να παραγάγει την
ψηφιακή υπογραφή.
– SHA-1: O παραλήπτης είναι βέβαιος ότι κανείς άλλος
δεν μπορεί να παραγάγει μήνυμα που να ταιριάζει
στον κωδικό κατακερματισμού.
– Εναλλακτικά, οι ψηφιακές υπογραφές μπορούν να
παραχθούν με χρήση των DSS/SHA-1.

Εμπιστευτικότητα (1/2)
• Επιτυγχάνεται με την κρυπτογράφηση των μηνυμάτων.
• Διανομή κλειδιών:
– Κάθε συμμετρικό κλειδί χρησιμοποιείται μόνο μία φορά.
• Διαδικασία διανομής κλειδιών:
– Δημιουργία τυχαίου 128 bit αριθμού (κλειδί περιόδου εργασίας)
από αποστολέα.
– Κρυπτογράφηση μηνύματος με το κλειδί.
– Κρυπτογράφηση κλειδιού με RSA με το δημόσιο κλειδί του
παραλήπτη.
– Xρήση RSA από παραλήπτη με το ιδιωτικό του κλειδί για να
αποκρυπτογραφήσει το κλειδί περιόδου εργασίας.
– Αποκρυπτογράφηση του μηνύματος με το κλειδί περιόδου
εργασίας.
Εμπιστευτικότητα (2/2)
• Παράδειγμα.
– Η Αλίκη θέλει να στείλει ένα εμπιστευτικό μήνυμα m στον Βασίλη.
– Η Αλίκη δημιουργεί ένα τυχαίο session key k.
– Η Αλίκη κρυπτογραφεί (π.χ. 3DES) το k με το δημόσιο κλειδί του
Βασίλη k’=E[PUB, k ].
– Η Αλίκη κρυπτογραφεί (RSA) το m με το k και παίρνει το
κρυπτογράφημα c=E[k, m].
– Η Αλίκη στέλνει στον Βασίλη το ζευγάρι (k’, c).
– Ο Βασίλης λαμβάνει το ζευγάρι και αποκρυπτογραφεί (RSA) το k’ με
το ιδιωτικό του κλειδί για να λάβει το session key: k = D[PRB, k’].
– Ο Βασίλης χρησιμοποιεί το k για να αποκρυπτογραφήσει το m=D[k,
c].

Ταυτόχρονη Πιστοποίηση και


Εμπιστευτικότητα
• Η Αλίκη δημιουργεί ψηφιακή υπογραφή c για το μήνυμα m
που θέλει να στείλει c=E[PRA, SHA(m)].
• Η Αλίκη δημιουργεί ένα τυχαίο session key k και κρυπτογραφεί
το μήνυμα και την υπογραφή C = E[k, m, c].
• Η Αλίκη κρυπτογραφεί το session key με το δημόσιο κλειδί του
Βασίλη k’=[PUB, k].
• Η Αλίκη στέλνει στον Βασίλη τις τιμές (k’, C).
• Ο Βασίλης λαμβάνει το ζευγάρι και αποκρυπτογραφεί το k’ με
το ιδιωτικό του κλειδί: k=D(PRB, k’).
• Ο Βασίλης αποκρυπτογραφεί το C με το k: (m,c)=D[k, C].
• Ο Βασίλης αποκρυπτογραφεί με το δημόσιο κλειδί της Αλίκης
την υπογραφή c χρησιμοποιώντας SHA-1: SHA(m) = D[PUA, c].
Συμπίεση
• Το μήνυμα συμπιέζεται μετά την ψηφιακή
υπογραφή και πριν την κρυπτογράφηση.
– Εξοικονόμηση χώρου.
• Χρησιμοποιείται ο αλγόριθμος συμπίεσης ZIP και
αποσυμπίεσης UNZIP.
• Το μήνυμα συμπιέζεται αφού υπογραφεί και πριν
κρυπτογραφηθεί.

Συμβατότητα με ηλεκτρονικό
ταχυδρομείο
• Πολλά συστήματα email μεταφέρουν μηνύματα
μόνο σε μορφή ASCII.
– Μπορεί να δημιουργήσει πρόβλημα σε
κρυπτογραφημένα μηνύματα γιατί το κρυπτογράφημα
ίσως δεν αντιστοιχεί σε χαρακτήρες ASCII.
• To PGP λύνει το πρόβλημα χρησιμοποιώντας
μετατροπή σε radix-64.
Μετατροπή σε Radix-64
• Έστω ότι το κείμενο που πρέπει να
κρυπτογραφηθεί έχει μετατραπεί σε κώδικα ASCII.
• Η μετατροπή σε radix-64 γίνεται ως εξής.
– Το μήνυμα χωρίζεται σε τμήματα των 24 bits (3 bytes).
– Κάθε τμήμα χωρίζεται σε 4 κομμάτια των 6 bits.
– Κάθε τμήμα θα έχει μια τιμή στο εύρος 0 έως 26-1 (=63).
– Η κάθε τιμή κωδικοποιείται σε έναν εκτυπώσιμο
χαρακτήρα με βάση τον πίνακα που ακολουθεί.

Κατάτμηση
• Πολλές υπηρεσίες Διαδικτύου επιβάλλουν
μέγιστο μέγεθος μηνυμάτων.
– Μεγαλύτερα μηνύματα διασπώνται.
• Το PGP υποδιαιρεί αυτόματα τα μεγάλα
μηνύματα σε μικρότερα.
• Στον παραλήπτη αφαιρούνται όλες οι
επικεφαλίδες email και επανασυναρμολογείται το
αρχικό μήνυμα.
Κρίκοι κλειδιών
• Δομές δεδομένων του PGP για την αποθήκευση
των κλειδιών σε κάθε κόμβο.
– Κρίκος ιδιωτικών κλειδιών.
• Αποθήκευση δημόσιου/ιδιωτικού κλειδιού του ίδιου
του κόμβου.
– Κρίκος δημόσιων κλειδιών.
• Αποθήκευση δημόσιων κλειδιών για άλλους γνωστούς
προς τον κόμβο χρήστες.

Κρίκος ιδιωτικών κλειδιών


• Timestamp.
– Πότε δημιουργήθηκε το ζευγάρι κλειδιών.
• ID κλειδιού.
– Τα 64 LS bits του δημοσίου κλειδιού.
• Δημόσιο Κλειδί.
• Ιδιωτικό κλειδί (κρυπτογραφημένο).
• Αναγνωριστικό χρήστη.
– Π.χ. email.
Κρίκος δημόσιων κλειδιών
• Timestamp.
– Πότε δημιουργήθηκε η συγκεκριμένη καταχώρηση.
• ID κλειδιού.
– Τα 64 LS bits του δημοσίου κλειδιού.
• Δημόσιο Κλειδί.
• Αναγνωριστικό χρήστη.
– Ο κάτοχος του κλειδιού.
– Μπορεί περισσότερα από ένα ID χρηστών να
συσχετίζονται με ένα δημόσιο κλειδί.

Χρήση Κρίκων Κλειδιών (1/4)


• Ψηφιακή υπογραφή.
• Το PGP ανακτά το ιδιωτικό κλειδί του αποστολέα
από τον κρίκο ιδιωτικών κλειδιών μέσω του ID
του.
• Το PGP προτρέπει τον χρήστη να δώσει τη
συνθηματική φράση για να ανακτήσει το μη
κρυπτογραφημένο κλειδί.
• Κατασκευάζεται το τμήμα της υπογραφής του
μηνύματος.
Χρήση Κρίκων Κλειδιών (2/4)
• Κρυπτογράφηση μηνύματος.
– Το PGP παράγει session key και κρυπτογραφεί το
μήνυμα.
– Το PGP ανακτά το δημόσιο κλειδί του παραλήπτη από
τον κρίκο δημόσιων κλειδιών μέσω του ID του.

Χρήση Κρίκων Κλειδιών (3/4)


• Αποκρυπτογράφηση μηνύματος.
– Το PGP ανακτά το ιδιωτικό κλειδί του παραλήπτη από
τον κρίκο ιδιωτικών κλειδιών μέσω του ID του
κλειδιού.
– Το PGP προτρέπει τον χρήστη να δώσει τη
συνθηματική φράση ώστε να ανακτήσει το μη
κρυπτογραφημένο ιδιωτικό κλειδί.
– Το PGP ανακτά το session key και αποκρυπτογραφεί το
μήνυμα.
Χρήση Κρίκων Κλειδιών (4/4)
• Πιστοποίηση αυθεντικότητας μηνύματος.
– Το PGP ανακτά το δημόσιο κλειδί του αποστολέα από
τον κρίκο δημόσιων κλειδιών μέσω του ID κλειδιού.
– Το PGP ανακτά τη μεταδιδόμενη σύνοψη.
– Το PGP υπολογίζει τη σύνοψη μηνύματος για το
μήνυμα που παρέλαβε και τη συγκρίνει με τη
μεταδιδόμενη σύνοψη μηνύματος.
• Αν είναι ίδιες, πιστοποιείται η αυθεντικότητα του
μηνύματος.

Προσεγγίσεις για την διαχείριση


δημόσιων κλειδιών (1/5)
• Σκοπός: η ελαχιστοποίηση του κινδύνου ύπαρξης
ψεύτικων δημόσιων κλειδιών στους κρίκους
δημόσιων κλειδιών.
• 4 πιθανές προσεγγίσεις.
• Πώς δηλαδή μπορεί ο χρήστης Α να αποκτήσει
έμπιστο δημόσιο κλειδί για τον Β;
Προσεγγίσεις για την διαχείριση
δημόσιων κλειδιών (2/5)
• 1η προσέγγιση: Με φυσικό τρόπο.
• Ο Β αποθηκεύει το δημόσιο κλειδί του σε μέσο
αποθήκευσης και το δίνει στον Β.
– Π.χ. φορητό σκληρό δίσκο.
• Ο Α φορτώνει στο σύστημα το κλειδί από το μέσο
αποθήκευσης.
• Ασφαλής μέθοδος.
– Αλλά όχι πολύ πρακτική!

Προσεγγίσεις για την διαχείριση


δημόσιων κλειδιών (3/5)
• 2η προσέγγιση: Τηλεφωνικά.
• O Β μεταδίδει το κλειδί του στον Α μέσω email.
• Tο PGP παράγει «αποτύπωμα» του κλειδιού.
• 160 bit σύνοψη του κλειδιού με SHA-1.
• Ο Α τηλεφωνεί στον Β, ζητάει το αποτύπωμα και
το συγκρίνει με αυτό που παρέλαβε.
Προσεγγίσεις για την διαχείριση
δημόσιων κλειδιών (4/5)
• 3η προσέγγιση: Παραλαβή από αμοιβαία έμπιστο άτομο Δ.
• Ο Δ δημιουργεί υπογεγραμμένο πιστοποιητικό.
– Περιλαμβάνει το δημόσιο κλειδί του Β, το χρόνο δημιουργίας
και την περίοδο εγκυρότητας του κλειδιού.
• Ο Δ παράγει σύνοψη του πιστοποιητικού με SHA-1, την
κρυπτογραφεί με το ιδιωτικό του κλειδί και την επισυνάπτει
στο πιστοποιητικό.
• Το κλειδί ανακοινώνεται στον Α είτε απευθείας από τον Β
είτε από τον Δ, ή αναρτιέται σε πίνακα ανακοινώσεων.

Προσεγγίσεις για την διαχείριση


δημόσιων κλειδιών (5/5)
• 4η προσέγγιση: Δημιουργία κλειδιού από αρχή
πιστοποίησης (CA).
• Η CA δημιουργεί και υπογράφει πιστοποιητικό
δημόσιου κλειδιού.
• Ο Α επικοινωνεί με την CA, δίνει όνομα χρήστη
και παραλαμβάνει το υπογεγραμμένο
πιστοποιητικό.
S/MIME
• Χρησιμοποιεί πιστοποιητικά δημόσιου
κλειδιού σύμφωνα με το Χ.509
υπογεγραμμένα από κάποια CA.
• Στις υπόλοιπες λειτουργίες είναι όμοιο με το
PGP.

Ενότητα 5: IPSec
Περιεχόμενα ενότητας
• Επισκόπηση IPSec.
• Αρχιτεκτονική IPSec.
• Υπηρεσίες IPSec.
• Συσχετίσεις ασφάλειας.
• Αλγόριθμοι κρυπτογράφησης και πιστοποίησης
ταυτότητας.
• Διαχείριση κλειδιών.
• Oakley.
• Βιβλιογραφία.

Επισκόπηση IPSec (1/3)


• Το IPSec δεν είναι ένα πρωτόκολλο.
Αντιθέτως, παρέχει ένα σύνολο
αλγορίθμων ασφάλειας, καθώς και ένα
γενικό πλαίσιο, που επιτρέπει την
επικοινωνία δύο οντοτήτων με χρήση
οποιωνδήποτε αλγορίθμων που παρέχουν
κατάλληλη ασφάλεια για
την επικοινωνία.
Επισκόπηση IPSec (2/3)
• Εφαρμογές του IPSec:
– Ασφαλής επικοινωνία δύο τμημάτων της
εταιρείας μέσω του Διαδικτύου.
– Ασφαλής τηλεπρόσβαση μέσω του Διαδικτύου.
– Συνδεσιμότητα extranet (υπερενδοδικτύων) και
intranet (ενδοδικτύων) με συνεργάτες.
– Βελτίωση της ασφάλειας για το ηλεκτρονικό
εμπόριο.

Επισκόπηση IPSec (3/3)


• Πλεονεκτήματα του IPSec:
– Διαφανές ως προς τις εφαρμογές (κάτω από το επίπεδο
μεταφοράς TCP, UDP).
– Παρέχει ασφάλεια για μεμονωμένους χρήστες.
• Το IPSec μπορεί να εξασφαλίσει ότι:
– Μια αναγγελία δρομολογητή ή γείτονα προέρχεται από έναν
πιστοποιημένο δρομολογητή.
– Ένα μήνυμα ανακατεύθυνσης προέρχεται από το δρομολογητή
στον οποίο είχε σταλεί αρχικά το πακέτο.
– Μια ενημέρωση δρομολόγησης δεν είναι πλαστή.
Αρχιτεκτονική IPSec
• Τεκμηρίωση IPSec:
– RFC 2401: Επισκόπηση της αρχιτεκτονικής ασφαλειας.
– RFC 2402: Περιγραφή μιας επέκτασης
κρυπτογράφησης πακέτων στα IPv4 και IPv6.
– RFC 2406: Περιγραφή μιας επέκτασης
κρυπτογράφησης πακέτων στα IPv4 και IPv6.
– RFC 2408: Προδιαγραφές για δυνατότητες διαχείρισης
κλειδιών.

Υπηρεσίες IPSec
• Έλεγχος πρόσβασης.
• Ασυνδεσμική ακεραιότητα.
• Πιστοποίηση προέλευσης δεδομένων.
• Απόρριψη πακέτων επανεκπομπής.
• Απόρρητο (κρυπτογράφηση).
• Εμπιστευτικότητα περιορισμένης δικτυακής
κίνησης.
Συσχετίσεις ασφάλειας (1/2)
• Μία μονοσήμαντη σχέση μεταξύ ενός αποστολέα
και ενός παραλήπτη.
• Ορίζεται από τρεις παραμέτρους:
– Δείκτης Παραμέτρων Ασφάλειας (Security Parameter
Index, SPI).
– Διεύθυνση IP προορισμού.
– Προσδιοριστικό πρωτοκόλλου ασφάλειας.

Συσχετίσεις ασφάλειας (2/2)


Πίνακας 1. Συσχετίσεις ασφάλειας. Πηγή: Διδάσκων (2015).
SA σε κατάσταση μεταφοράς SA σε κατάσταση σήραγγας

AH Πιστοποιείται το φορτίο ΙΡ, μέρος της Πιστοποιείται ολόκληρο το


κεφαλίδας IP, και οι κεφαλίδες εσωτερικό πακέτο ΙΡ, καθώς
επέκτασης IPv6. και επιλεγμένα τμήματα της
εξωτερικής κεφαλίδας και οι
κεφαλίδες επέκτασης IPv6.

ESP Κρυπτογραφείται το φορτίο ΙΡ και όλες Κρυπτογραφείται ολόκληρο


οι κεφαλίδες επέκτασης IPv6 που το εσωτερικό πακέτο IP
ακολουθούν την κεφαλίδα ESP.
ESP με Κρυπτογραφείται το φορτίο ΙΡ και όλες Κρυπτογραφείται ολόκληρο
πιστοποίηση οι κεφαλίδες επέκτασης IPv6 που το εσωτερικό πακέτο ΙΡ.
ακολουθούν την κεφαλίδα ESP. Πιστοποιείται το εσωτερικό
Πιστοποιείται το φορτίο ΙΡ, αλλά όχι η πακέτο ΙΡ.
εσωτερική κεφαλίδα ΙΡ.
Αλγόριθμοι κρυπτογράφησης
και πιστοποίησης ταυτότητας
• Κρυπτογράφηση:
– Τριπλός DES τριών κλειδιών.
– RC5.
– IDEA.
– Τριπλός IDEA τριών κλειδιών.
– CAST.
– Blowfish.
• Πιστοποίηση:
– HMAC-MD5-96.
– HMAC-SHA-1-96.

Διαχείριση κλειδιών
• Δύο τύποι:
– Χειρονακτική.
– Αυτόματη.
• Πρωτόκολλο προσδιορισμού κλειδιών Oakley.
• Πρωτόκολλο Διαχείρισης Συσχετίσεων Ασφάλειας
Διαδικτύου και Κλειδιών (ISAKMP).
Oakley
• Τρεις μέθοδοι πιστοποίησης:
– Ψηφιακές υπογραφές.
– Κρυπτογράφηση δημόσιου κλειδιού.
– Κρυπτογράφηση συμμετρικού κλειδιού.

Ενότητα 6: SSL
Περιεχόμενα ενότητας (1/2)
• Θέματα Ασφάλειας Ιστού.
• Το πρωτόκολλο SSL.
• Δύο σημαντικές έννοιες για το SSL.
• Λειτουργία SSL.
• Υπηρεσίες Διαπραγμάτευσης SSL.
• Χειραψία SSL.
• Επιβάρυνση από την χρήση SSL.
• Ενεργοποίηση SSL.

Περιεχόμενα ενότητας (2/2)


• Ασφαλής ηλεκτρονική συναλλαγή.
• Υπηρεσίες SET.
• Επισκόπηση του SET.
• Απαιτήσεις SET.
• Συμμετέχοντες στο SET.
• Βήματα συναλλαγής.
• Χρήση SET σε άλλες ηλεκτρονικές συναλλαγές.
• Βιβλιογραφία.
Θέματα Ασφάλειας Ιστού (1/2)
• Ο Παγκόσμιος Ιστός παρουσιάζει προκλήσεις που δεν
υπάρχουν στον χώρο των υπολογιστών και της ασφάλειας
των δικτύων:
– Ορατή τοποθέτηση πληροφοριών εταιρειών σε servers 
κίνδυνος υπονόμευσης server (χρηματικές απώλειες, συνέπειες
στη φήμη).
– Web browsers: Εύκολη διαμόρφωση, διαχείριση αλλά πολύπλοκο
λογισμικό με ελαττώματα στην ασφάλεια.
– Servers: Επίδοξος στόχος με σκοπό την πρόσβαση σε συστήματα
συνδεδεμένα με αυτούς.
– Ανεκπαίδευτοι πελάτες που αγνοούν θέματα ασφάλειας.

Θέματα Ασφάλειας Ιστού (2/2)


• Τεχνικές ασφάλειας πληροφοριών
Διαδικτύου:
– Εφαρμογές κρυπτογράφησης για
αυθεντικοποίησης χρηστών.
– Κρυπτογραφημένη μεταφορά δεδομένων.
– Έλεγχος πρόσβασης.
– Ασφαλή δικτυακά πρωτόκολλα.
Το πρωτόκολλο SSL (1/2)
• Secure Socket Layer.
– Πρωτόκολλο ασφάλειας.
– Δημιουργήθηκε από τη Netscape για ασφάλεια
δεδομένων με βάση το TCP/IP.
– Παρέχει υπηρεσίες.
• Κρυπτογράφησης δεδομένων.
• Αυθεντικοποίησης εξυπηρετητή και πελάτη.
• Ακεραιότητας (integrity) των μηνυμάτων που μεταδίδονται
στο διαδίκτυο.

Το πρωτόκολλο SSL (2/2)


• Secure Socket Layer (Συνέχεια).
– Ανεξάρτητο από την εφαρμογή που χρησιμοποιείται
από τον τελικό χρήστη.
• Γι’ αυτό παρέχει υπηρεσίες ασφάλειας σε πρωτόκολλα
υψηλού επιπέδου, π.χ. telnet, ftp, http .
– Εκδόσεις: SSL 2.0 – server authentication, SSL – 3.0
client/server authentication.
Δύο σημαντικές έννοιες για το
SSL (1/2)
• Σύνδεση (Connection).
– Μεταφορά που παρέχει κατάλληλο τύπο υπηρεσιών.
– Για το SSL είναι ομότιμη σχέση (P2P).
– Προσωρινή.
– Σχετίζεται με ένα Session.
– Δυνατότητα ύπαρξης πολλών, ταυτόχρονων
συνδέσεων για ένα ζευγάρι συμμετεχόντων.

Δύο σημαντικές έννοιες για το


SSL (2/2)
• Σύνοδος (Session).
– Συσχέτιση μεταξύ client-server.
– Δημιουργείται με το Πρωτόκολλο Χειραψίας.
– Ορίζει κρυπτογραφικές παραμέτρους ασφάλειας.
– Χρησιμοποιείται για την αποφυγή «δαπανηρών»
διαπραγματεύσεων νέων παραμέτρων ασφάλειας για
κάθε νέα σύνδεση.
Λειτουργία SSL
• Χρησιμοποιεί RSA κρυπτογράφηση δημόσιου κλειδιού.
– Χρήση δημόσιου και ιδιωτικού κλειδιού για κρυπτογράφηση και
αποκρυπτογράφηση.
• Χρησιμοποιεί session key για κάθε σύνοδο client-server.
– 24 ώρες ζωής.
– Ανταλλάσσεται με κρυπτογραφία δημόσιου κλειδιού.
• Χρησιμοποιεί κρυπτογραφία δημόσιου κλειδιού για την
αμοιβαία ταυτοποίηση των συμμετεχόντων.
• Χρησιμοποιεί συμμετρική κρυπτογραφία για την
κρυπτογράφηση της συνόδου SSL.
– Σαφώς γρηγορότερη.

Λειτουργία SSL - Βήματα (1/2)


• Ο client επιχειρεί σύνδεση με SSL-προστατευμένη
σελίδα.
• O SSL-server στέλνει αίτηση για έναρξη SSL-
συνόδου.
• Ο client ενημερώνει τον server αν υποστηρίζει το
SSL και πιο συγκεκριμένα για.
– Την ταυτότητα της συνόδου (session id).
– Τους αλγόριθμους κρυπτογράφησης που υποστηρίζει.
– Τις μεθόδους συμπίεσης που υποστηρίζει.
Λειτουργία SSL - Βήματα (2/2)
• Ο server κάνει τις αντίστοιχες επιλογές και αρχίζει
η επικοινωνία.
• Ο client καθορίζει ένα session key κατάλληλο για
τον αλγόριθμο κρυπτογράφησης που επιλέχθηκε.
• O client κρυπτογραφεί το session key με το
δημόσιο κλειδί του server.
• O server ανακτά το session key με το ιδιωτικό του
κλειδί.

Υπηρεσίες Διαπραγμάτευσης
SSL
• Χειραψία (handshake).
– Αυθεντικοποίηση client, server.
– Καθορισμός αλγόριθμων κρυπτογράφησης.
– Καθορισμός συμμετρικών κλειδιών.
• Μεταφορά δεδομένων.
– Κρυπτογράφηση.
– Έλεγχος ακεραιότητας.
Χειραψία SSL
• Client Hello.
• Server Hello.
• Client Master Key.
• Client Finished.
• Server Verify.
• Request Certificate (Προαιρετικά).
• Client Certificate (Προαιρετικά).
• Server Finished.

Χειραψία SSL – Client Hello


• Η σύνοδος ξεκινά με αίτηση του πελάτη.
– Π.χ. ο browser κάνει μια HTTPs αίτηση.
• Client Hello είναι μη κρυπτογραφημένο μήνυμα με:
– Έκδοση του SSL.
– Δυνατότητες κρυπτογράφησης του πελάτη (αλγόριθμοι,
μήκη κλειδιών).
– Ταυτότητα συνόδου (Session ID).
• Είναι δυνατό να χρησιμοποιηθεί προηγούμενη σύνοδος που
υπήρχε ανάμεσα σε client και server.
– Μια τυχαία δημιουργημένη ακολουθία χαρακτήρων (Client
Challenge).
Χειραψία SSL – Server Hello
• Εάν δημιουργηθεί νέα σύνοδος το Server Hello
είναι μη κρυπτογραφημένο μήνυμα με:
– Δυνατότητες κρυπτογράφησης του server.
– Ταυτότητα σύνδεσης (Connection ID).
– Ψηφιακό πιστοποιητικό server.

Χειραψία SSL – Client Master


Key
• Μετά την εγκατάσταση της νέας συνόδου:
– Ο client εξετάζει την εγκυρότητα του πιστοποιητικού
του server.
– Δημιουργεί το κλειδί συνόδου (Session key).
• Συμμετρικό κλειδί για την κρυπτογράφηση δεδομένων
εφαρμογής.
– Κρυπτογραφεί το κλειδί συνόδου με το δημόσιο κλειδί
του server.
Χειραψία SSL – Client Finished
• Σηματοδοτεί την ετοιμότητα του client να στείλει/λάβει
δεδομένα.
• Κρυπτογράφηση του Session ID με χρήση του session key
και αποστολή του στον server.
• Σε κάθε σύνδεση δημιουργείται διαφορετικό session key.
• Χρησιμοποιείται κρυπτογραφία δημόσιου κλειδιού για
ανταλλαγή του session key και αυθεντικοποίηση.
• Χρησιμοποιείται συμμετρική κρυπτογραφία (ταχύτητα)
για την κρυπτογράφηση της συνόδου.

Χειραψία SSL – Server Verify


• O server κρυπτογραφεί το client challenge με το
session key και το στέλνει στον client.
• Εφόσον το session key είχε σταλεί προηγουμένως
από τον client κρυπτογραφημένο με το δημόσιο
κλειδί του server με αυτό το μήνυμα
αποδεικνύεται η αυθεντικότητα του server.
Χειραψία SSL – Request
Certificate
• Αίτηση server για αυθεντικοποίηση του client:
– Ζητά να χρησιμοποιήσει ο client το ιδιωτικό του κλειδί
για να υπογράψει ψηφιακά τα:
• Κλειδί συνόδου.
• Μια τυχαία ακολουθία χαρακτήρων (Certificate Challenge
Data).
• Το πιστοποιητικό του server.
– Ζητά μια λίστα των αποδεκτών CA.

Χειραψία SSL – Client Certificate


• O client αποστέλλει:
– Το ψηφιακό πιστοποιητικό του.
– Ψηφιακά υπογεγραμμένα τα Challenge Data.
• Αν το πιστοποιητικό του δεν έχει εκδοθεί από
αποδεκτή CA, η σύνοδος τερματίζεται.
Χειραψία SSL – Server Finished
• O server αποστέλλει κρυπτογραφημένο μήνυμα
με το Session ID.
• Το μήνυμα σηματοδοτεί την ετοιμότητα του
server να στείλει λάβει δεδομένα.
• Όλα τα δεδομένα επιπέδου εφαρμογής
κρυπτογραφούνται με το session key.

Επιβάρυνση από την χρήση SSL


• Το SSL αυξάνει την ποσότητα δεδομένων που
διακινούνται καθυστερώντας την μετάδοση
πληροφοριών.
• Αιτίες καθυστέρησης:
– Αρχική σύνδεση (Χειραψία).
– Διαδικασία κρυπτογράφησης δεδομένων.
– Τα κρυπτογραφημένα δεδομένα είναι μεγαλύτερα σε μέγεθος.
• Μεγαλύτερος χρόνος μεταφοράς στο δίκτυο.
• Γι’ αυτό πρέπει να χρησιμοποιείται μόνο όταν
πραγματικά απαιτείται μυστικότητα.
– Π.χ σε συγκεκριμένες ιστοσελίδες και όχι σε ολόκληρο το
website.
Ενεργοποίηση SSL (1/3)

Εικόνα 1. Ενεργοποίηση SSL. Πηγή: Διδάσκων (2015).

Ενεργοποίηση SSL (2/3)

Εικόνα 2. Ενεργοποίηση
SSL (Συνέχεια).
Πηγή: Διδάσκων (2015).
Ενεργοποίηση SSL (3/3)
• Απαίτηση: Να διαθέτει ο server πιστοποιητικό (server
certificate).
– Ταυτοποιεί τον server σε κάθε ενδιαφερόμενο client.
– Παρέχει τον μηχανισμό για να ξεκινήσει μια ασφαλής σύνοδος.
• Βήματα ενεργοποίησης.
– Δημιουργία ζεύγους κλειδιών του server.
– Αίτηση για πιστοποιητικό σε κάποια Αρχή Πιστοποίησης (CA).
– Εγκατάσταση του πιστοποιητικού.
– Ενεργοποίηση του SSL για τον server.

Ασφαλής ηλεκτρονική
συναλλαγή
• Secure Electronic Transaction - SET.
– Ανοιχτή προδιαγραφή κρυπτογράφησης και ασφάλειας.
– Προστατεύει τις συναλλαγές στο Διαδίκτυο με πιστωτικές
κάρτες.
– Συσχετιζόμενες εταιρείες.
• Mastercard, Visa, IBM, Microsoft, Netscape, RSA, Terisa and
Verisign.
• Επιπλέον έχει γίνει αποδεκτό και από American Express,
Diners, JCB και Europay.
– Δεν αποτελεί από μόνο του σύστημα πληρωμής.
– Σύνολο από πρωτόκολλα ασφαλείας και μορφές
συναλλαγών.
Υπηρεσίες SET
• Παρέχει ασφαλές κανάλι επικοινωνίας μεταξύ
όλων των μερών που συμμετέχουν στη
συναλλαγή.
• Παρέχει εξασφάλιση εμπιστοσύνης με χρήση
ψηφιακών πιστοποιητικών Χ.509v3.
• Εξασφαλίζει το απόρρητο, καθώς οι πληροφορίες
είναι διαθέσιμες μόνο στα συναλλασσόμενα
μέρη όταν και όπου είναι απαραίτητο.

Επισκόπηση του SET (1/2)


• Βασικά χαρακτηριστικά:
– Εμπιστευτικότητα πληροφοριών.
• Κρυπτογράφηση με DES.
– Ακεραιότητα δεδομένων.
• Π.χ. πληροφορίες παραγγελίας, προσωπικά δεδομένα,
οδηγίες πληρωμής.
• Ψηφιακές υπογραφές, RSA, χρήση κωδικών κατακερματισμού
με SHA-1.
Επισκόπηση του SET (2/2)
• Βασικά χαρακτηριστικά (Συνέχεια).
– Πιστοποίηση λογαριασμού κατόχου πιστωτικής κάρτας.
• Επαλήθευση ότι ο κάτοχος είναι νόμιμος χρήστης έγκυρου
λογαριασμού κάρτας.
• Ψηφιακά πιστοποιητικά X.509v3.
– Πιστοποίηση εμπόρου.
• Επαλήθευση ότι ο έμπορος έχει σχέση με τον
χρηματοοικονομικό οργανισμό και ότι του επιτρέπεται να
δέχεται πληρωμές με κάρτες.
• Ψηφιακά πιστοποιητικά X.509v3.

Απαιτήσεις SET (1/2)


• Το SET ανταποκρίνεται στις ακόλουθες
απαιτήσεις:
– Παρέχει εμπιστευτικότητα των πληροφοριών των
συναλλαγών.
– Διασφαλίζει την ακεραιότητα όλων των
μεταδιδόμενων δεδομένων.
– Παρέχει αυθεντικοποίηση για τη νόμιμη χρήση του
λογαριασμού της πιστωτικής κάρτας.
– Παρέχει αυθεντικοποίηση ότι ο έμπορος μπορεί να
γίνει αποδέκτης συναλλαγών με πιστωτική κάρτα.
Απαιτήσεις SET (2/2)
• Διασφαλίζει ότι γίνεται χρήση των καλύτερων
πρακτικών ασφάλειας και τεχνικών σχεδιασμού
συστημάτων για την προστασία όλων των νόμιμων
μερών της συναλλαγής.
• Δημιουργεί πρωτόκολλο ανεξάρτητο από τους
μηχανισμούς ασφάλειας που, όμως, δεν εμποδίζει
την χρήση τους.
• Διευκολύνει την διαλειτουργικότητα μεταξύ των
προμηθευτών λογισμικού και δικτυακού εξοπλισμού.

Συμμετέχοντες στο SET (1/4)


• Κάτοχος κάρτας (Cardholder).
• Έμπορος (Merchant).
• Εκδότης (Issuer).
• Μεσολαβητής συναλλαγών (Acquirer).
• Πύλη πληρωμών (Payment Gateway).
• Αρχή Πιστοποίησης (Certificate Authority - CA).
Συμμετέχοντες στο SET (2/4)
• Κάτοχος κάρτας (Cardholder).
– Ο εξουσιοδοτημένος κάτοχος κάρτας πληρωμών που
εκδόθηκε από κάποιον Issuer.
• Έμπορος (Merchant).
– Άτομο ή οργανισμός που πουλάει αγαθά ή υπηρεσίες.
– Η πώληση γίνεται μέσω Web sites ή email.
– Θα πρέπει να έχει σχέση με κάποιον Issuer.
• Εκδότης (Issuer).
– Χρηματοοικονομικός οργανισμός (π.χ. τράπεζα) που παρέχει
στον κάτοχο την κάρτα πληρωμής.
– Είναι υπεύθυνος για την πληρωμή των οφειλών του κάτοχου
της κάρτας.

Συμμετέχοντες στο SET (3/4)


• Μεσολαβητής συναλλαγών (Acquirer).
– Χρηματοοικονομικός οργανισμός που:
• Εγκαθιδρύει λογαριασμό για τον έμπορο.
• Επεξεργάζεται εγκρίσεις και πληρωμές.
• Παρέχει πιστοποίηση ότι κάποιος λογαριασμός είναι ενεργός.
• Παρέχει πιστοποίηση ότι η αγορά δεν ξεπερνά το πιστωτικό
όριο.
• Παρέχει ηλεκτρονική μεταφορά των πληρωμών στον
λογαριασμό του εμπόρου.
• Εξοφλείται από τον εκδότη μέσω δικτύου πληρωμής για
ηλεκτρονικές μεταφορές χρημάτων.
Συμμετέχοντες στο SET (4/4)
• Πύλη πληρωμών (Payment Gateway).
– Λειτουργία που εκτελεί ο Acquirer ή κάποιο τρίτο μέρος.
– Διασύνδεση μεταξύ SET και υπάρχοντος δικτύου πληρωμών.
– Ο έμπορος ανταλλάσσει μηνύματα SET με την πύλη
πληρωμών μέσω Διαδικτύου.
– Η πύλη πληρωμών έχει απευθείας ή δικτυακή σύνδεση με το
χρηματοοικονομικό σύστημα επεξεργασίας του Acquirer.
• Αρχή Πιστοποίησης (Certificate Authority - CA).
– Οντότητα που θεωρείται έμπιστη για την έκδοση
πιστοποιητικών δημόσιου κλειδιού.
– Ιεραρχία SET.
• Οι συμμετέχοντες δεν χρειάζεται να πιστοποιούνται άμεσα από
την CA.

Βήματα συναλλαγής (1/4)


• Ο πελάτης ανοίγει λογαριασμό πιστωτικής κάρτας.
– Π.χ. Mastercard ή Visa.
– Η τράπεζα θα πρέπει να υποστηρίζει ηλεκτρονικές πληρωμές.
• Ο πελάτης λαμβάνει πιστοποιητικό.
– Επαληθεύεται η ταυτότητά του.
– Λαμβάνει πιστοποιητικό υπογεγραμμένο από την τράπεζα.
– Το πιστοποιητικό επικυρώνει το δημόσιο κλειδί του και την
ημερομηνία λήξης του.
Βήματα συναλλαγής (2/4)
• Οι έμποροι έχουν τα δικά τους πιστοποιητικά.
– 2 πιστοποιητικά: 1 για την υπογραφή των μηνυμάτων, 1 για την
ανταλλαγή κλειδιών.
• Ο πελάτης κάνει την παραγγελία του.
– Επισκέπτεται την ιστοσελίδα και επιλέγει τα προϊόντα.
– Στέλνει στον έμπορο λίστα με τα προϊόντα που θα αγοράσει.
– Του επιστρέφεται φόρμα με τα στοιχεία της παραγγελίας.
• Γίνεται επαλήθευση του εμπόρου.
– Ο έμπορος στέλνει αντίγραφο του πιστοποιητικού του ώστε να
πιστοποιήσει ότι το κατάστημα είναι έγκυρο.

Βήματα συναλλαγής (3/4)


• Γίνεται αποστολή της παραγγελίας και πληρωμή.
– Ο πελάτης στέλνει την παραγγελία με το πιστοποιητικό του.
– Οι πληροφορίες της πληρωμής περιέχουν τις λεπτομέρειες της
πιστωτικής.
– Οι πληροφορίες πληρωμής κρυπτογραφούνται .
– Ο έμπορος επαληθεύει την ταυτότητα του πελάτη από το
πιστοποιητικό του.
• Ο έμπορος απαιτεί έγκριση πληρωμής.
– Στέλνει τις πληροφορίες πληρωμής στην πύλη πληρωμών.
– Ζητάει έγκριση σχετικά το πιστωτικό όριο του πελάτη.
Βήματα συναλλαγής (4/4)
• Ο έμπορος επικυρώνει την παραγγελία.
– Στέλνει επικύρωση της παραγγελίας.
• Ο έμπορος προμηθεύει τα αγαθά ή τις υπηρεσίες.
• Ο έμπορος ζητά την πληρωμή.
– Στέλνει αίτηση στην πύλη πληρωμών.

Χρήση SET σε άλλες


ηλεκτρονικές συναλλαγές
• E-banking.
• Electronic wallets.
• Επαγγελματικές συναλλαγές επιχειρήσεων.
– Ηλεκτρονικές προσφορές (electronic tenders).
– Εταιρικές πληρωμές (corporate payments).
– Ηλεκτρονικά συμβόλαια (electronic contracts) κ.α.
Ενότητα 7: Εισβολείς

Σκοποί ενότητας
• Αυτή η ενότητα πραγματεύεται ζητήματα
σχετικά με τους εισβολείς σε ένα σύστημα.
Περιεχόμενα ενότητας (1/3)
• Εισαγωγή.
• Μεταμφιεσμένος.
• Παράνομος.
• Κρυφός χρήστης.
• Απειλές Εισβολέων.
• Κλασικά Παραδείγματα Εισβολέων.
• Τεχνικές Εισβολής.

Περιεχόμενα ενότητας (2/3)


• Ανίχνευση και Αποτροπή Εισβολών.
• Προσεγγίσεις Ανίχνευσης Εισβολών.
• Εγγραφές Παρακολούθησης.
• Δολώματα.
• Διαχείριση Συνθηματικών.
• Unix passwords.
• Unix Loading a new password.
Περιεχόμενα ενότητας (3/3)
• Salt.
• Αδυναμίες Συνθηματικών.
• Στρατηγικές επιλογής password.
• Προσεγγίσεις προληπτικού ελέγχου password.
• Βιβλιογραφία.

Εισαγωγή
• Μια από τις δύο πιο διάσημες απειλές
ασφάλειας.
– Η άλλη είναι το κακόβουλο λογισμικό.
• Κοινώς γνωστοί ως hackers, crackers.
• O Anderson1 προσδιόρισε 3 κατηγορίες.
– Μεταμφιεσμένος (masquerader).
– Παράνομος (misfeasor).
– Κρυφός χρήστης (clandestine user).
Μεταμφιεσμένος
• Άτομο μη εξουσιοδοτημένο να χρησιμοποιεί
κάποιο υπολογιστή.
• Διαπερνά τους ελέγχους πρόσβασης του
συστήματος.
• Εκμεταλλεύεται το λογαριασμό ενός νόμιμου
χρήστη.
• Συνήθως κάποιος εξωτερικός παρείσακτος.

Παράνομος
• Νόμιμος χρήστης.
– Άρα κάποιος εκ των «έσω».
• Προσπελάσει δεδομένα, προγράμματα ή πόρους
για τα οποία δεν έχει εξουσιοδότηση.
• Ή είναι εξουσιοδοτημένος για πρόσβαση σε αυτά
αλλά κακομεταχειρίζεται τα προνόμιά του.
Κρυφός χρήστης
• Άτομο που αποκτά τον γενικό έλεγχο εποπτείας
ενός συστήματος (supervisor).
– Τον χρησιμοποιεί για να αποφύγει την
παρακολούθηση και τους ελέγχους πρόσβασης.
– Ή για να εμποδίσει την συλλογή δεδομένων
παρακολούθησης.
– Μπορεί να είναι είτε εξωτερικός είτε εσωτερικός.

Απειλές Εισβολέων
• Ήπιες.
– Π.χ. κάποιοι θέλουν απλά να εξερευνήσουν κάποιο
δίκτυο.
• Σοβαρές.
– Π.χ. άτομα που επιδιώκουν.
• Πρόσβαση σε απόρρητα δεδομένα.
• Ή μη εξουσιοδοτημένες τροποποιήσεις.
• Ή διάρρηξη συστήματος.
Κλασικά Παραδείγματα
Εισβολέων (1/2)
• Περιστατικό “Wily Hacker”.
– Lawrence Berkeley Lab (LBL) το 1986-1987.
– Αποφασίστηκε να παρατηρήσουν τον επιτιθέμενο πριν τον
αντιμετωπίσουν.
– Συνεργάστηκαν FBI και πολλοί στρατιωτικοί οργανισμοί.
– Χρησιμοποιήθηκαν offline-monitors για να παρατηρούν όλες
τις ενέργειες του επιτιθέμενου.
– Τελικά δεν αποδείχθηκε και πολύ πεπειραμένος ο
επιτιθέμενος.
• Απλά χρησιμοποιούσε κοινά «τυφλά σημεία» ασφάλειας των ΛΣ.
– Πραγματοποιήθηκαν 3 συλλήψεις το 1988.

Κλασικά Παραδείγματα
Εισβολέων (2/2)
• Πανεπιστήμιο Texas Α&Μ – 1992 – 2000 διασυνδεδεμένα
μηχανήματα.
– Καταγράφθηκε επίθεση από υπολογιστή του Πανεπιστημίου σε
απομακρυσμένη τοποθεσία.
– Οι επιθέσεις γινόταν από εξωτερικούς εισβολείς που έσπαζαν
συνθηματικά σε διάφορους υπολογιστές.
– Αποσυνδέθηκαν τα επηρεασμένα μηχανήματα και
επιδιορθώθηκαν τα κενά ασφάλειας.
– Λίγες μέρες μετά η επίθεση ξανάρχισε.
– Βρέθηκαν αρχεία με εκατοντάδες κλεμμένα συνθηματικά.
– Επιπλέον ένα τοπικό μηχάνημα λειτουργούσε σαν πίνακας
ανακοινώσεων των χάκερ, που χρησιμοποιούνταν για επικοινωνία
μεταξύ τους.
Τεχνικές Εισβολής (1/3)
• Σκοπός: Να αποκτήσει πρόσβαση σε ένα σύστημα ή να
αυξήσει τα προνόμιά του σε αυτό.
– Απαιτείται από τον εισβολέα να αποκτήσει πρόσβαση σε
πληροφορίες οι οποίες προστατεύονται π.χ. Password.
• Τυπικά κάθε σύστημα διατηρεί αρχείο συσχέτισης
συνθηματικών με χρήστες που μπορεί να προστατευτεί
με:
– Μονόδρομη κρυπτογράφηση.
• Κρυπτογράφηση του συνθηματικού.
– Έλεγχος πρόσβασης.
• Η πρόσβαση στο αρχείο των συνθηματικών περιορίζεται σε έναν
ή πολύ λίγους λογαριασμούς.

Τεχνικές Εισβολής (2/3)


• Δοκιμή προεπιλεγμένων συνθηματικών.
• Εξαντλητική δοκιμή όλων των μικρών συνθηματικών (1-4
χαρακτήρες).
• Δοκιμή λέξεων από ηλεκτρονικό λεξικό ή από λίστα με
πιθανά συνθηματικά.
• Συλλογή πληροφοριών από χρήστες (ονόματα των ίδιων,
συζύγων και παιδιών, φωτογραφίες, βιβλία κτλ).
• Δοκιμή τηλεφωνικών αριθμών, αριθμών μητρώου
ασφάλειας, αριθμοί δωματίου κτλ.
Τεχνικές Εισβολής (3/3)
• Δοκιμή αριθμών πινακίδων όλης της χώρας.
• Χρήση Δούρειου Ίππου για παράκαμψη
περιορισμών πρόσβασης.
• Κρυφή παρακολούθηση της τηλεπικοινωνιακής
ζεύξης ενός απομακρυσμένου χρήστη και του
εξυπηρετητή.

Ανίχνευση και Αποτροπή


Εισβολών
• Αναπόφευκτα και το καλύτερο σύστημα αποτροπής
εισβολών θα αποτύχει.
• Άρα είναι πολύ σημαντική και η ανίχνευσή τους.
– Έγκαιρο μπλοκάρισμα εισβολής πριν προκαλέσει ζημιά.
– Μπορεί να αποθαρρύνει τις προσπάθειες εισβολών.
– Η συλλογή πληροφοριών σχετικά με τις ανιχνευθείσες
εισβολές μπορεί να χρησιμοποιηθεί για την ενδυνάμωση της
υπηρεσίας αποτροπής εισβολών.
• Υπόθεση: Οι εισβολείς συμπεριφέρνονται διαφορετικά
από τους νόμιμους χρήστες.
Προσεγγίσεις Ανίχνευσης
Εισβολών (1/2)
• Ανίχνευση στατιστικών ανωμαλιών.
– Συλλογή δεδομένων σχετικών με την συμπεριφορά
νόμιμων χρηστών.
– Εφαρμογή στατιστικών ελέγχων για να ελεγχθεί αν η
συμπεριφορά δεν είναι νόμιμου χρήστη.
• Ανίχνευση με κατώφλια: Ορισμός κατωφλίων για την
συχνότητα εμφάνισης συμβάντων.
• Ανίχνευση βασισμένη σε προφίλ: Αναπτύσσεται προφίλ
συμπεριφοράς για κάθε χρήστη και επιδιώκεται η ανίχνευση
αλλαγών σε αυτό.

Προσεγγίσεις Ανίχνευσης
Εισβολών (2/2)
• Ανίχνευση βασισμένη σε κανόνες.
– Ανίχνευση ανωμαλιών: Αναπτύσσονται κανόνες για
ανίχνευση της απόκλισης από προηγούμενα μοτίβα
χρήσης.
– Ανίχνευση διείσδυσης: Βασίζεται σε έμπειρα
συστήματα και ψάχνει για ύποπτη συμπεριφορά.
Εγγραφές Παρακολούθησης
(1/2)
• Βασικό εργαλείο ανίχνευσης εισβολών.
• Καταγράφουν την συνεχή δραστηριότητα των χρηστών.
• Δίδονται σαν είσοδος στο σύστημα ανίχνευσης εισβολών.
• Εγγενείς εγγραφές παρακολούθησης.
– Κομμάτι σχεδόν όλων των λειτουργικών συστημάτων.
– Δεν απαιτείται πρόσθετο λογισμικό συλλογής
πληροφοριών.
– Μπορεί να μην περιέχουν τις απαιτούμενες πληροφορίες
σε βολική μορφή.

Εγγραφές Παρακολούθησης
(2/2)
• Εγγραφές παρακολούθησης ειδικά για την
ανίχνευση.
– Κατασκευάζει εγγραφές μόνο με εκείνες τις
πληροφορίες που απαιτούνται από το σύστημα
ανίχνευσης.
– Προσέγγιση ανεξάρτητη πλατφόρμας.
– Προσδίδει επιπλέον φόρτο στο σύστημα.
Δολώματα
• Σχετικά πρόσφατη καινοτομία στην τεχνολογία ανίχνευσης
εισβολών.
• Συστήματα δελεασμού των δυνητικών επιτιθέμενων.
– Συλλέγουν πληροφορίες για την δραστηριότητα του
επιτιθέμενου.
– Ενθαρρύνουν τον επιτιθέμενο να παραμείνει για αρκετό
χρόνο στο σύστημα ώστε να ανταποκριθούν οι διαχειριστές.
• Περιέχουν φαινομενικά πολύτιμες πληροφορίες στις οποίες
ένας νόμιμος χρήστης δεν έχει πρόσβαση.
– Άρα όλες οι προσπελάσεις των πληροφοριών είναι ύποπτες.

Διαχείριση Συνθηματικών
• Τα passwords παρέχουν ασφάλεια με τους
ακόλουθους τρόπους.
– Καθορίζουν αν ο χρήστης είναι εξουσιοδοτημένος να
αποκτήσει πρόσβαση σε ένα σύστημα -
αυθεντικοποίηση- πιστοποίηση ταυτότητας χρήστη.
– Καθορίζει τα προνόμια που αντιστοιχούν σε κάθε
χρήστη.
– Χρησιμοποιείται για διακριτικό έλεγχο πρόσβασης.
• Π.χ. για εκχώρηση δικαιωμάτων από έναν χρήστη σε άλλους
σε σχέση με τα προσωπικά του αρχεία.
Unix passwords
• Αρχικά αποθηκεύονταν σε ένα δημόσιο αρχείο
etc/passwords.
• Σήμερα διατηρούνται σε ένα “shadow” directory
το οποίο είναι προσβάσιμο μόνο από το root.

Unix Loading a new password


• Salt:
– Σχετίζεται με τον χρόνο που ανατέθηκε το
password στον χρήστη.
• Η crypt(3) βασίζεται στον DES.
– Περιλαμβάνει 25 γύρους κρυπτογράφησης.
Salt
• Εξυπηρετεί 3 σκοπούς.
– Αποτρέπει τα διπλότυπα passwords.
• Αν 2 χρήστες επιλέξουν το ίδιο password, αυτά θα ανατεθούν
σε διαφορετικό χρόνο.
– Αυξάνει το μήκος του συνθηματικού από 8 χαρακτήρες
σε 10 χωρίς να απαιτείται από τον χρήστη να θυμάται
τους 2 επιπλέον.
– Αποτρέπει την χρήση DES η οποία θα έκανε πιο εύκολη
την εξαντλητική επίθεση.

Αδυναμίες Συνθηματικών
• Εύκολη απομνημόνευση  εύκολη μαντεψιά.
• Δύσκολη απομνημόνευση  εγγραφή τους σε χαρτάκια
και ατζέντες.
• Λεξικογραφική επίθεση (dictionary attack).
– Επιλογή συνόλου συνθηματικών και δοκιμή όλων.
– Αυτόματο σύστημα που δοκιμάζει όλες τις λέξεις που περιέχονται
σε ένα λεξικό.
• Εξαντλητική έρευνα (brute force attack).
– Δοκιμή όλων των δυνατών συνδυασμών συμβόλων.
– Αποτελεσματική για την εικασία συνθηματικών με μικρό μήκος
και περιορισμένο δείγμα συμβόλων (π.χ. “1234” ή “ABCD”).
– Π.χ. L0phtCrack.exe για Unix και Windows.
Στρατηγικές επιλογής password
(1/4)
• Σκοπός: Η εξάλειψη των προβλέψιμων
συνθηματικών και παράλληλα η επιλογή
ευκολομνημόνευτων συνθηματικών.
• 4 βασικές τεχνικές.
1. Εκπαίδευση χρηστών .
2. Συνθηματικά παραγόμενα από υπολογιστή
(computer generated passwords).
3. Αντιδραστικός (reactive) έλεγχος συνθηματικού.
4. Προληπτικός (proactive) έλεγχος συνθηματικού.

Στρατηγικές επιλογής password


(2/4)
• Εκπαίδευση χρηστών.
– Ανεπιτυχής σε περίπτωση πολλών χρηστών.
– Πολλοί χρήστες αγνοούν τις οδηγίες.
– Πολλοί χρήστες δεν μπορούν να διακρίνουν τα
«δύσκολα» συνθηματικά.
• Συνθηματικά παραγόμενα από υπολογιστή.
– Δυσκολία στην απομνημόνευση.
– Οι χρήστες μπορεί να παρασυρθούν και να τα
καταγράψουν κάπου.
– FIPS PUB 181 – αυτόματη γεννήτρια password.
• Παράγει λέξεις που μπορούν να προφερθούν.
Στρατηγικές επιλογής password
(3/4)
• Αντιδραστικός (reactive) έλεγχος συνθηματικού.
– Το σύστημα εκτελεί έλεγχο με πρόγραμμα σπασίματος
κωδικών.
– Εντοπίζονται τα αδύναμα passwords και ειδοποιείται ο
χρήστης.
– Απαιτητική σε πόρους.
– Τα αδύναμα passwords παραμένουν ευάλωτα μέχρι να
εντοπιστούν.

Στρατηγικές επιλογής password


(4/4)
• Προληπτικός (proactive) έλεγχος συνθηματικού.
– Ο χρήστης επιλέγει το password του.
– Την ώρα της επιλογής το password ελέγχεται.
• Αν είναι αδύναμο απορρίπτεται.
– Πρέπει να υπάρχει ισορροπία ανάμεσα στην αποδοχή
από τον χρήστη και την ισχύ του password.
• Ο χρήστης θα παραπονεθεί σε περίπτωση πολλαπλής
αποτυχίας στην επιλογή του password.
Προσεγγίσεις προληπτικού
ελέγχου password (1/3)
• 1η προσέγγιση: Επιβολή κάποιων απλών κανόνων.
– Π.χ.:
• «Όλα τα passwords πρέπει να έχουν μήκος τουλάχιστον 8
χαρακτήρες».
• «Στο password πρέπει να περιλαμβάνεται τουλάχιστον ένα από
τα κεφαλαία γράμματα, τα πεζά, τους αριθμούς και τα σημεία
στίξης».
• Η προσέγγιση θα μπορούσε να συνοδεύεται και
από συμβουλές προς τους χρήστες.
• Μειονέκτημα: προειδοποιεί τους crackers για το
ποια passwords να μην δοκιμάσουν.

Προσεγγίσεις προληπτικού
ελέγχου password (2/3)
• 2η προσέγγιση: σύνταξη λεξικού με τα «κακά»
passwords.
– Το σύστημα ελέγχει αν οι χρήστες επέλεξαν κάποιο
password που υπάρχει στο λεξικό.
• Προβλήματα:
– Το λεξικό θα πρέπει να καταλαμβάνει πολύ χώρο.
• Π.χ. Purdue 30MB.
– Ο χρόνος αναζήτησης στο λεξικό είναι πολύ μεγάλος.
Προσεγγίσεις προληπτικού
ελέγχου password (3/3)
• 3η προσέγγιση: Μοντέλο Markov.
– Παράγει προβλέψιμα passwords.
– Μ = [m, A, T, k].
• m= Αριθμός καταστάσεων.
• A = Χώρος καταστάσεων.
• Τ = Πίνακας πιθανοτήτων μεταβάσεων.
• k = Τάξη του μοντέλου.
– Τα αλφαριθμητικά που παράγονται από το
μοντέλο αποτελούν αδύναμα συνθηματικά.

Ενότητα 8: Malware
Περιεχόμενα ενότητας (1/4)
• Κακόβουλα προγράμματα.
• Σκουλήκια - worms.
• Σκουλήκια - Δράση.
• Σκουλήκια - Κατηγορίες.
• Σκουλήκια - Αντιμετώπιση.
• Σκουλήκια – Παραδείγματα.
• Τεχνολογίες σκουληκιών.
• Κερκόπορτα - backdoor ή trap door.
• Λογική βόμβα - Logic Bomb.

Περιεχόμενα ενότητας (2/4)


• Δούρειος Ίππος - Trojan Horse.
• Ζόμπι.
• Dialers.
• Άλλα κακόβουλα προγράμματα.
• Ιοί - Γενικά.
• Ιοί - Μόλυνση.
• Η νέα φιλοσοφία των ιών.
• Φάσεις του Ιού.
• Δομή των Ιών.
Περιεχόμενα ενότητας (3/4)
• Ιός Συμπίεσης.
• Είδη Ιών.
• Ιοί Μακροεντολών.
• Ιοί Μακροεντολών – Παράδειγμα.
• Ιοί Ηλεκτρονικού Ταχυδρομείου.
• Μέτρα αντιμετώπισης Ιών.
• Γενιές λογισμικού αντιβιοτικών.
• Προηγμένες τεχνικές αντιβιοτικών.
• Κατανεμημένες επιθέσεις άρνησης εξυπηρέτησης.

Περιεχόμενα ενότητας (4/4)


• Επίθεση DDoS.
• Επίθεση DDos εσωτερικού πόρου.
• Άλλες επιθέσεις DDoS.
• Δημιουργία δικτύου επίθεσης.
• Αντίμετρα DDoS.
• Βιβλιογραφία.
Κακόβουλα προγράμματα
• 2 βασικές κατηγορίες:
– Βασιζόμενα σε πρόγραμμα – ξενιστή.
• Ιοί, λογικές βόμβες, κερκόπορτες κτλ.
– Ανεξάρτητα.
• Σκουλήκια, ζόμπι κτλ.

Σκουλήκια - worms
• Λογισμικά που εξαπλώνονται μέσω
δικτυακών επικοινωνιών αντιγράφοντας
επαναληπτικά τον εαυτό τους.
• Απαιτούνται ειδικές γνώσεις πρωτοκόλλων
επικοινωνίας, ευπαθειών δικτύων και
λειτουργικών συστημάτων.
Σκουλήκια - Δράση
• Αμέσως μετά την μόλυνση συστήματος, αναζητεί
συνδέσεις του με άλλους υπολογιστές.
– Αν εντοπιστούν, αντιγράφει τον εαυτό του σε αυτούς.
• Σκοπεύουν στην:
– Καταστροφή αρχείων.
– Υποκλοπή πληροφοριών.
– Αποδιοργάνωση λειτουργικού συστήματος με σκοπό
πρόκληση DoS.

Σκουλήκια - Κατηγορίες
• 2 κατηγορίες:
– Host Computer Worms (ή rabbits).
• Λειτουργούν σε ένα μόνο υπολογιστή.
– Network Worms (ή octopuses).
• Χωρισμένα σε τμήματα.
• Απλωμένα σε δίκτυο υπολογιστών (συνήθως LAN).
• Εξαπλώνονται συνήθως μέσω κοινών μέσων πρόσβασης.
– Π.χ. σκληρός δίσκος με κοινή πρόσβαση από πολλούς
χρήστες.
Σκουλήκια - Αντιμετώπιση
• Δύσκολος εντοπισμός σημείων προσβολής.
• Πρέπει να εντοπιστούν και αντιμετωπιστούν όλα τα
σημεία προσβολής του συστήματος ή δικτύου.
• Επιβάλλεται η χρήση δύσκολων συνθηματικών.
– Έτσι θα είναι πιο δύσκολη η απόκτηση πρόσβασης από τα
σκουλήκια σε ένα δίκτυο.
• Ιδιαίτερα αποτελεσματική η χρήση Τείχους Προστασίας
(firewall).
• Προσοχή! Δεν ανοίγουμε emails από άγνωστους
αποστολείς.
– Ούτε φυσικά συνημμένα εκτελέσιμα αρχεία και links!

Σκουλήκια – Παραδείγματα
(1/3)
• ILOVEYOU (ή LoveLetter).
– Μόλυνε 10.000.000 χρήστες Windows τo 2000.
– Email με subject “ILOVEYOU” και attachment “LOVE-
LETTER-FOR-YOU.TXT.vbs”.
• Η κατάληξη του αρχείου δεν ήταν ορατή για να παραπλανεί
τους χρήστες.
– Το άνοιγμα του αρχείου είχε σαν αποτέλεσμα.
• Την αποστολή του μηνύματος σε όλες τις διευθύνσεις-
επαφές του χρήστη με αποστολέα τον μολυσμένο χρήστη.
• Την δημιουργία σοβαρών αλλαγών στο ΛΣ του χρήστη.
Σκουλήκια – Παραδείγματα
(2/3)
• Code Red.
– Προκάλεσε μεγάλη δημοσιότητα και ανησυχία για τα
αποτελέσματά του το 2001.
– Επιβράδυνε την κυκλοφορία στο Διαδίκτυο
αναπαράγοντας τον εαυτό του.
• Έψαχνε συστήματα στο Διαδίκτυο με Windows NT ή Windows
2000 που να μην έχουν εγκατεστημένο το security patch της
Microsoft.
• Μόλις εντόπιζε ευπαθή server αντέγραφε τον εαυτό του σε
αυτόν.

Σκουλήκια – Παραδείγματα
(3/3)
• Code Red (Συνέχεια).
– Σκοπός.
• Να αναπαράγει τον εαυτό του κατά τις 20 πρώτες μέρες
του μήνα.
• Να αντικαθιστά τις σελίδες των μολυσμένων servers με
μια σελίδα με το μήνυμα “HELLO! Welcome to
http://www.worm.com! Hacked By Chinese”.
• Να ξεκινήσει οργανωμένη επίθεση κατά του Web server
του Λευκού Οίκου με σκοπό την κατάρρευσή του.
Τεχνολογίες σκουληκιών
• Πολλαπλές πλατφόρμες (multiplatform).
• Πολλαπλές τεχνικές (multiexploit).
• Ταχεία Εξάπλωση (ultrafast spreading).
• Πολυμορφισμός (polymorphic).
• Μεταμορμφισμός (metamorphic).
• Οχήματα για μεταφορά (transport vehicles).
• Εκμετάλλευση αδυναμίας την «Ημέρα-Μηδέν»
(Zero-day exploit).

Κερκόπορτα - Backdoor ή trap


door (1/2)
• Μυστικό σημείο εισόδου σε λογισμικό.
– Πρόσβαση παρακάμπτοντας τις διαδικασίες
ασφαλείας.
• Χρησιμοποιούνται νόμιμα για διόρθωση/έλεγχο
προγραμμάτων (π.χ. στο debugging).
– Υπάρχουν λογισμικά για δημιουργία backdoor σε ένα
σύστημα.
• Π.χ. BO (Back Orifice), Netbus.
Κερκόπορτα - Backdoor ή trap
door (2/2)
• Χρησιμοποιούνται παράνομα για απόκτηση μη
εξουσιοδοτημένης πρόσβασης.
• Αποτελούνται από 2 τμήματα:
– Server: Εγκαθίσταται και λειτουργεί στον υπολογιστή-
στόχο.
– Client: Χρησιμοποιείται από τον επιτιθέμενο για να
επικοινωνεί με τον server αποκτώντας πρόσβαση σε
ευαίσθητα δεδομένα και αρχεία.

Λογική βόμβα - Logic Bomb


• Από τα παλαιότερα είδη απειλής.
• Κώδικας ενσωματωμένος σε άλλο πρόγραμμα
προγραμματισμένος να «εκραγεί» σε κατάλληλες
συνθήκες.
– Παρουσία/απουσία συγκεκριμένων αρχείων.
– Συγκεκριμένη ημερομηνία.
– Εκτέλεση από συγκεκριμένους χρήστες.
• Τροποποιεί/διαγράφει δεδομένα, παγώνει τον
υπολογιστή κτλ.
Δούρειος Ίππος - Trojan Horse
(1/4)
• Κρυφός κώδικας που όταν καλείται
πραγματοποιεί ανεπανόρθωτη βλάβη.
– Π.χ. αλλαγή δικαιωμάτων πρόσβασης σε αρχεία ώστε
να είναι αναγνώσιμα από όλους.
• Συνήθως είναι ενσωματωμένος σε φαινομενικά
χρήσιμα προγράμματα (droppers) σαν δέλεαρ.
– Π.χ. σε πρόγραμμα αριθμομηχανή.ς
• Πολλές φορές το κίνητρο είναι η καταστροφή
δεδομένων.

Δούρειος Ίππος - Trojan Horse


(2/4)
• Συνήθως αποτελείται από 2 τμήματα: client,
server:
– Οι επιτιθέμενοι επιδιώκουν την εγκατάσταση server σε
κάποιο υπολογιστή.
– Ο εισβολέας επικοινωνεί μέσω client από τον
υπολογιστή του.
Δούρειος Ίππος - Trojan Horse
(3/4)
• Επικαλούνται ότι εκτελούν μια λειτουργία αλλά
στην πραγματικότητα εκτελούν και άλλες.
– Π.χ. κλοπή συνθηματικών.
• Πολλές φορές η υποτιθέμενη εργασία που
εκτελούν δεν υπάρχει καθόλου.
• Πολλές φορές λειτουργούν με συγκαλυμμένο
τρόπο, χωρίς να προκαλούν υποψίες.

Δούρειος Ίππος - Trojan Horse


(4/4)
• Δούρειος Ίππος μπορεί να θεωρηθεί
οποιοδήποτε πρόγραμμα με επιπρόσθετες
λειτουργίες από αυτές που αναφέρονται στο
εγχειρίδιο χρήσης.
• Δεν είναι απαραίτητο να αντιγράφουν τον εαυτό
τους.
• Βασικές μέθοδοι πρόληψης.
– Ενημέρωση.
– Χρήση αυθεντικών προγραμμάτων.
Ζόμπι (1/2)
• Κομμάτι λογισμικού που αναλαμβάνει κρυφά τον
έλεγχο κάποιου υπολογιστή στο Διαδίκτυο.
– Στη συνέχεια τον χρησιμοποιεί για επιθέσεις.
• Δύσκολος ο εντοπισμός της προέλευσης.

• Χρησιμοποιούνται συνήθως σε επιθέσεις DoS


ενάντια σε ιστοσελίδες.
• Χρησιμοποιούνται και για την αποστολή spam
emails.

Ζόμπι (2/2)
• Εγκαθίστανται σε εκατοντάδες υπολογιστές.
– Συνήθως οι χρήστες αυτών των υπολογιστών δεν
γνωρίζουν/αντιλαμβάνονται την ύπαρξή τους.
• Δημιουργούν τεράστιο δικτυακό φόρτο εργασίας.
Dialers (1/2)
• Διαδεδομένη μορφή κακόβουλου λογισμικού.
• Σκοπός δεν είναι η υποκλοπή δεδομένων ή
πρόκληση ανεπιθύμητων ενεργειών στο ΛΣ μας.
– Αλλά η χρέωσή μας!
• Αρχικά δημιουργήθηκαν για την πληρωμή
μικροποσών από υπηρεσίες του Διαδικτύου μέσω
τηλεφωνικού λογαριασμού.

Dialers (2/2)
• Σήμερα αποτελούν λογισμικά που αναγκάζουν τον
υπολογιστή μας να συνδεθεί χωρίς την άδειά μας με ISPs
διαφορετικούς από τον τοπικό μας πάροχο (π.χ. ΟΤΕΝΕΤ,
CYTA, Forthnet κτλ).
– Αυτό συνήθως έχει σαν αποτέλεσμα την υψηλή χρέωσή μας από τον
απομακρυσμένο πάροχο.
• Προέρχονται από επισκέψεις σε συγκεκριμένες ιστοσελίδες.
– Κατά την επίσκεψη του χρήστη εγκαθίσταται στο σύστημά του χωρίς
να γίνει αντιληπτό.
• Μερικές φορές υπάρχουν και σε αρχεία συνημμένα σε e-
mail.
• Συνήθως απειλούν συνδρομητές PSTN ή ISDN.
Άλλα κακόβουλα προγράμματα
(1/2)
• Spammer.
– Στέλνει μεγάλο όγκο e-mail.
• Kit.
– Δημιουργεί αυτόματα νέους ιούς.
• Rootkit.
– Χρησιμοποιείται μετά από διείσδυση σε ένα σύστημα
για απόκτηση σε αυτό δικαιωμάτων διαχειριστή.

Άλλα κακόβουλα προγράμματα


(2/2)
• Exploits (Σημεία εκμετάλλευσης).
– Προγράμματα που εκμεταλλεύονται συγκεκριμένες
αδυναμίες με σκοπό την εκτέλεση ανεπιθύμητων
ενεργιών, DoS κ.α.
• Flooder.
– Για μαζικές επιθέσεις εναντίον δικτύων, προκαλούν
άρνηση εξυπηρέτησης.
• Keylogger.
– Καταγράφει τη χρήση του πληκτρολογίου.
Ιοί - Γενικά (1/2)
• Ο συνηθέστερος τρόπος μόλυνσης υπολογιστή.
• Συνήθως μεταδίδονται μέσω e-mail, από
συνημμένα εκτελέσιμα αρχεία.
• Για να εκτελεστούν θα πρέπει πρώτα να
εκτελεστεί το αρχείο-ξενιστής.
– Το αρχείο ξενιστής συνήθως είναι ένα φαινομενικά
«φυσιολογικό» πρόγραμμα.

Ιοί - Γενικά (2/2)


• Εκμεταλλεύονται τις αδυναμίες του λειτουργικού
συστήματος και τις αδυναμίες των πρωτοκόλλων
επικοινωνίας.
• Έχουν αναφερθεί περίπου 90.000 είδη ιών τα
τελευταία 15 χρόνια.
– 400 περίπου ενεργοί.
Ιοί - Μόλυνση
• Ένας υπολογιστής μπορεί να μολυνθεί από ιό
μέσω.
– Δισκέτα, CD, DVD ή οποιοδήποτε άλλο μέσο
αποθήκευσης.
– Μέσω ηλεκτρονικού ταχυδρομείου.
– Μέσω αρχείων που κάνουμε download από το
Διαδίκτυο.
– Μέσω επίσκεψης κάποιας Ιστοσελίδας.

Η νέα φιλοσοφία των ιών


• Οι νέοι ιοί έχουν σαν σκοπό την υποκλοπή και
αξιοποίηση πληροφοριών και δεδομένων.
– Εγκληματικοί, στρατηγικοί λόγοι.
• Στο μέλλον πολύ πιθανό να χρησιμοποιηθούν
εκτενώς για κατασκοπεία και στον στρατό για
καταστροφή αρχείων ή συλλογή πληροφοριών.
• Πολύ αναλυτές αναφέρονται στους ιούς νέας γενιάς
με νέους όρους.
– Blended Threats (συνδυασμένες απειλές).
– Flash Threats (ακαριαίες απειλές).
Φάσεις του Ιού
• Φάση ύπνωσης (dormant phase).
– Ιός σε αδράνεια.
– Περιμένει κάποιο γεγονός προς ενεργοποίηση.
• Φάση διάδοσης (propagation phase).
– Ο ιός τοποθετεί ακριβές αντίγραφό του σε άλλα
προγράμματα ή περιοχές στον δίσκο (κλώνοι).
• Φάση πυροδότησης (triggering phase).
– Ενεργοποίηση ιού για εκτέλεση της λειτουργίας για την
οποία προορίζεται.
• Φάση εκτέλεσης (execution phase).
– Εκτέλεση λειτουργίας.

Δομή των Ιών


• Τοποθετούνται στην αρχή ή το τέλος εκτελέσιμου
προγράμματος ή ενσωματώνονται σε αυτό.
• Όταν καλείται το μολυσμένο πρόγραμμα εκτελείται
πρώτα ο ιός και μετά το ίδιο.
• Ψάχνει για αρχεία που δεν έχουν μολυνθεί και τα
μολύνει.
• Στην φάση πυροδότησης εκτελεί την ζημιά για την οποία
δημιουργήθηκε.
• Αν η φάση μόλυνσης είναι γρήγορη, ο χρήστης δεν θα
αντιληφθεί διαφορά.
Ιός Συμπίεσης
• Στο προηγούμενο παράδειγμα η μολυσμένη
έκδοση του προγράμματος είναι μεγαλύτερη από
την αμόλυντη.
– Εύκολος εντοπισμός ιού.
• Λύση: Συμπίεση του εκτελέσιμου αρχείου.
• Ο ιός συμπιέζει το αρχείο που θέλει να μολύνει.
• Τοποθετεί αντίγραφό του στην αρχή του
συμπιεσμένου αρχείου.
• Αποσυμπιέζει το καινούριο αρχείο.
• Εκτελεί το αποσυμπιεσμένο αρχικό πρόγραμμα.

Είδη Ιών (1/2)


• Παρασιτικός ιός (parasitic virus).
– Προσαρτάται σε εκτελέσιμα, χωρίς να τα καταστρέφει.
• Ιός μόνιμα εγκατεστημένος στη μνήμη (memory
resident virus).
– Εγκαθίσταται στην ΚΜ ως τμήμα μόνιμου προγράμματος
συστήματος.
• Ιός τομέα εκκίνησης (boot sector virus).
– Μολύνει τον κύριο τομέα εκκίνησης.
– H εκτέλεσή τους προηγείται αυτής του λειτουργικού
συστήματος.
– Μπορούν να χρησιμοποιήσουν του BIOS.
Είδη Ιών (2/2)
• Αόρατος ιός (stealth virus).
– Κρύβεται από τον εντοπισμό από αντιβιοτικά.
• Πολυμορφικός ιός (polymorphic virus).
– Μεταλλάσσεται με κάθε μόλυνση (κρύβουν τον κώδικά
τους με διαφορετικό τρόπο κάθε φορά), αδύνατος ο
εντοπισμός του.
• Μεταμορφικός ιός (metamorphic virus).
– Μεταλλάσσεται πλήρως αυξάνοντας την δυσκολία
ανίχνευσης.

Ιοί Μακροεντολών
• Είναι γραμμένοι σε γλώσσα υψηλού επιπέδου.
• Εκμεταλλεύονται τις μακροεντολές (macros) του
Word κτλ.
– Τα macros χρησιμοποιούνται για αυτοματοποίηση
επαναλαμβανόμενων διαδικασιών.
• Είναι ανεξάρτητοι πλατφόρμας.
• Μολύνουν έγγραφα, όχι εκτελέσιμα.
• Διαδίδονται εύκολα.
– Κυρίως μέσω e-mail.
Ιοί Μακροεντολών –
Παράδειγμα
• Melissa.
– Iός μακροεντολών του Word.
– Μόλυνε έγγραφα δημιουργημένα με τις
εκδόσεις του Office 97 και 2000.
– Έστελνε αυτόματα τον εαυτό του με email στις
50 πρώτες επαφές του Βιβλίου Διευθύνσεων
του Outlook του μολυσμένου υπολογιστή.

Ιοί Ηλεκτρονικού Ταχυδρομείου


• Χρησιμοποιούν μακροεντολή συνημμένου
εγγράφου.
• Στέλνονται σε όλα τα άτομα των επαφών.
• Προκαλούν τοπική ζημιά.
Μέτρα αντιμετώπισης Ιών
• Ιδανική λύση: Η αποτροπή.
• Άλλη λύση.
– Ανίχνευση.
– Αναγνώριση.
– Κατάργηση.
• 4 γενιές λογισμικού αντιβιοτικών:
– 1η γενιά: Απλοί ανιχνευτές.
– 2η γενιά: Ευρετικοί ανιχνευτές.
– 3η γενιά: Παγίδες δραστηριότητας.
– 4η γενιά: Πλήρης προστασία.

Γενιές λογισμικού αντιβιοτικών


(1/2)
• 1η γενιά.
– Χρειαζόταν υπογραφή του ιού για να αναγνωριστεί.
– Το μοτίβο του ιού ήταν σταθερό.
– Ανίχνευαν μόνο γνωστούς ιούς.
– Ψάχνουν για αλλαγή στο μήκος του προγράμματος.
• 2η γενιά.
– Δεν βασίζονταν σε υπογραφή.
– Χρησιμοποιεί checksum για να ελέγξει πιθανή αλλαγή
στο πρόγραμμα.
Γενιές λογισμικού αντιβιοτικών
(2/2)
• 3η γενιά.
– Τα αντιβιοτικά παραμένουν στη μνήμη.
– Αναγνωρίζουν τον ιό από τις ενέργειες και όχι από την
δομή.
• 4η γενιά.
– Πακέτα αποτελούμενα από ποικιλία αντιβιοτικών τεχνικών.
– Περιλαμβάνουν ανιχνευτές και παγίδες δραστηριότητας.
– Περιλαμβάνουν δυνατότητες ελέγχου πρόσβασης.
• Περιορίζεται η ικανότητα των ιών να διεισδύουν σε σύστημα.
• Περιορίζεται η ικανότητα των ιών να ενημερώνουν αρχεία και
να εξαπλώνονται.

Προηγμένες τεχνικές
αντιβιοτικών
• Γενική αποκρυπτογράφηση (generic decryption).
– Τα αντιβιοτικά εντοπίζουν εύκολα και τους πιο
σύνθετους ιούς.
– Περιλαμβάνει.
• Εξομοιωτής CPU.
– Εικονικός υπολογιστής.
– Τα εκτελέσιμα διερμηνεύονται από τον εξομοιωτή.
• Ανιχνευτής υπογραφής ιού.
– Εξετάζει τον κώδικα αναζητώντας γνωστές υπογραφές ιών.
• Υπομονάδα ελέγχου προσομοίωσης.
– Ελέγχει την εκτέλεση κώδικα.
Κατανεμημένες επιθέσεις
άρνησης εξυπηρέτησης
• Distributed Denial of Service (DDoS).
• Σημαντική απειλή για εταιρείες.
• 2001: Περισσότερες από 12000 επιθέσεις σε
περισσότερους από 5000 στόχους.
– Amazon, hotmail, απλές τηλεφωνικές συνδέσεις κτλ.
• Καθιστούν τα συστήματα μη προσπελάσιμα.
– Πλημμυρίζουν διακομιστές, τερματικά με άχρηστη κίνηση.
– Στέλνουν άχρηστα πακέτα.
– Παρεμποδίζουν έτσι τους χρήστες να προσπελάσουν
υπηρεσίες.

Επίθεση DDoS
• Στόχος: Η κατανάλωση των πόρων του
στόχου.
• Πόροι:
– Εσωτερικοί.
– Χωρητικότητα δικτύου.
Επίθεση DDos εσωτερικού
πόρου
• Σε πολλά συστήματα υπάρχει περιορισμένος
αριθμός δομών δεδομένων για διατήρηση
πληροφοριών διεργασιών.
– Ο εισβολέας εξαντλεί τις δομές αντιγράφοντας συνέχεια
τον εαυτό του.
• Ο εισβολέας καταναλώνει χώρο σε σκληρούς.
– Υπερβολικά μεγάλο πλήθος μηνυμάτων ηλ.
ταχυδρομείου.
– Εσκεμμένη πρόκληση σφαλμάτων για τα οποία πρέπει
να γίνει καταγραφεί (log).
– Τοποθέτηση αρχείων σε κοινόχρηστες περιοχές.

Άλλες επιθέσεις DDoS (1/2)


• Άμεσες επιθέσεις.
– Ο επιτιθέμενος τοποθετεί ζόμπι σε διάφορες θέσεις
στο Διαδίκτυο.
• Κύρια ζόμπι και ζόμπι σκλάβοι.
• Ο επιτιθέμενος συντονίζει τα κύρια ζόπι και αυτά τα ζόμπι
σκλάβους.
• 2 επίπεδα  δυσκολότερος εντοπισμός, πιο ανθεκτικό δίκτυο
επιτιθέμενων.
Άλλες επιθέσεις DDoS (2/2)
• Ανακλαστικές επιθέσεις.
– Τα ζόμπι σκλάβοι δημιουργούν πακέτα που ζητούν
απάντηση με ΙΡ προέλευσης αυτή του στόχου.
– Τα πακέτα στέλνονται στους «ανακλαστήρες», που
είναι καθαροί υπολογιστές.
– Ακόμα δυσκολότερος ο εντοπισμός προέλευσης της
επίθεσης αφού αυτή προέρχεται από διάσπαρτούς, μη
μολυσμένους υπολογιστές.

Δημιουργία δικτύου επίθεσης


(1/3)
• Απαραίτητα στοιχεία.
– Κατάλληλο λογισμικό που θα εκτελεστεί σε μεγάλο αριθμό
υπολογιστών.
– Το λογισμικό να μπορεί να συγκαλύπτει την ύπαρξή του.
– Το λογισμικό να μπορεί να επικοινωνεί με τον επιτιθέμενο ή
να διαθέτει μηχανισμό πυροδότησης.
– Ο επιτιθέμενος πρέπει να γνωρίζει κάποια ευπάθεια που
δεν την γνωρίζουν ή δεν έχουν διορθώσει οι διαχειριστές.
– Πρέπει να υπάρχει στρατηγική για τον εντοπισμό ευπαθών
συστημάτων (scanning).
Δημιουργία δικτύου επίθεσης
(2/3)
• Στρατηγικές σάρωσης.
– Τυχαία.
• Οι προσβεβλημένοι υπολογιστές δοκιμάζουν τυχαίες
διευθύνσεις ΙΡ.
– Λίστα στόχων.
• Κατασκευάζεται λίστα με ευπαθή συστήματα.
– Χρονοβόρα διαδικασία.
• Κάθε μολυσμένο σύστημα παίρνει μέρος της λίστας.

Δημιουργία δικτύου επίθεσης


(3/3)
• Στρατηγικές σάρωσης (Συνέχεια).
– Τοπολογική.
• Χρησιμοποιεί πληροφορίες που βρίσκονται στο
μολυσμένο υπολογιστή για να εντοπίσει άλλους
στόχους.
– Τοπικό δίκτυο.
• Αν υπολογιστής που χρησιμοποιεί firewall μπορεί να
προσβληθεί, τότε μπορεί να ψάξει στόχους στο
τοπικό του δίκτυο.
Αντίμετρα DDoS (1/2)
• Αποτροπή και προεκτοπισμός επίθεσης.
– Το θύμα έχει αντοχή σε απόπειρες επίθεσης.
– Εφαρμογή πολιτικής σχετικά με την δέσμευση πόρων.
– Ύπαρξη εφεδρικών πόρων.
– Χρησιμοποιούν πρωτόκολλα Διαδικτύου για να
ελαττώσουν την πιθανότητα επίθεσης.
• Ανίχνευση και φιλτράρισμα επίθεσης.
– Προσπάθεια ανίχνευσης της επίθεσης όταν ξεκινά.
– Παρακολούθηση για ύποπτα μοτίβα συμπεριφοράς.
• Φιλτράρισμα πακέτων.

Αντίμετρα DDoS (2/2)


• Εντοπισμός και αναγνώριση προέλευσης
επίθεσης.
– Προσπάθεια αναγνώρισης της πηγής της επίθεσης.
• Σκοπός: Η αποφυγή μελλοντικών επιθέσεων.
– Συνήθως δεν δίνει γρήγορα (ή και καθόλου)
αποτελέσματα.
Ενότητα 9: Τείχη Προστασίας (Firewalls)

Περιεχόμενα ενότητας (1/5)


• Firewalls.
• Εξέλιξη πληροφοριακών συστημάτων.
• Ορισμός Firewall.
• Παρεχόμενη Ασφάλεια.
• Στόχοι σχεδιασμού των firewalls.
• Τεχνικές.
• Τί περιμένουμε από ένα firewall;
Περιεχόμενα ενότητας (2/5)
• Περιορισμοί firewall.
• Τύποι firewall.
• Packet-filtering router.
• Επιθέσεις σε packet filters και αντίμετρα.
• Πλεονεκτήματα - Μειονεκτήματα.
• Πύλες επιπέδου εφαρμογής.
• Πύλες επιπέδου κυκλώματος.

Περιεχόμενα ενότητας (3/5)


• Υπολογιστής προμαχώνα.
• Διευθετήσεις firewalls.
• Screened-host firewall system / single-homed
bastion.
• Screened-host firewall system / dual-homed
bastion.
• Screened subnet.
• Γενικές Κατευθύνσεις για χρήση firewall.
Περιεχόμενα ενότητας (4/5)
• Πλεονεκτήματα Firewall.
• Μειονεκτήματα firewall.
• Έμπιστα συστήματα.
• Έλεγχος πρόσβασης σε δεδομένα.
• Πίνακας πρόσβασης.
• Λίστες ελέγχου πρόσβασης.
• Εισιτήρια δυνατοτήτων.

Περιεχόμενα ενότητας (5/5)


• Η έννοια των έμπιστων συστημάτων.
• Έμπιστα συστήματα - επίπεδα.
• Ελεγκτής αναφοράς.
• Αρχείο Παρακολούθησης.
• Βιβλιογραφία.
Firewalls (1/3)
• Γενικά.
– Πυρίμαχοι τοίχοι για προστασία από εξάπλωση φωτιάς.
• Στα υπολογιστικά συστήματα.
– «Φράγμα» από το οποίο περνάει η δικτυακή
πληροφορία.
• Και προς τις 2 κατευθύνσεις (Inbound / Incoming and Outbound
/ Outgoing traffic).
– Ορίζει ποια κίνηση μπορεί να περνάει.
– Λειτουργεί σαν φίλτρο σε επίπεδο πακέτων ΙΡ.

Firewalls (2/3)
• Στα υπολογιστικά συστήματα (Συνέχεια).
– Ή λειτουργεί σαν πρωτόκολλο ανώτερου επιπέδου.
– Προστατεύει από δικτυακές απειλές (επόμενη
διαφάνεια).
– Επιτρέπει την πρόσβαση στον έξω κόσμο.
• Μέσω WAN ή Internet.
Firewalls (3/3)
• Το firewall προστατεύει τα εσωτερικά δίκτυα από
απειλές.
– Μη εξουσιοδοτημένη προσπέλαση δικτυακών πόρων.
• Π.χ. μη εξουσιοδοτημένη πρόσβαση σε αρχεία.
– Denial of Service (DoS).
• Π.χ. υπερφόρτωση δικτύου από εξωτερική οντότητα.
– Προσποίηση (masquerade).
• Π.χ. αποστολή μηνυμάτων από φαινομενικά νόμιμο
χρήστη.

Εξέλιξη πληροφοριακών
συστημάτων (1/2)
• Κεντρικοποιημένα συστήματα επεξεργασίας δεδομένων,
με κεντρικό mainframe.
• Τοπικά δίκτυα που συνδέουν υπολογιστές και τερματικά.
• Δίκτυο κτιριακών εγκαταστάσεων.
– Αποτελείται από πολλά τοπικά δίκτυα.
• Εταιρικό δίκτυο.
– Αποτελείται από διάσπαρτα γεωγραφικά δίκτυα.
• Συνδεσιμότητα Διαδικτύου.
– Κτιριακά δίκτυα συνδέονται στο Διαδίκτυο.
Εξέλιξη πληροφοριακών
συστημάτων (2/2)
• Πρόσβαση στο Internet = όφελος για τους
οργανισμούς.
• Πρόσβαση στο Internet = απειλή για τους
οργανισμούς.
• Λύση: Ισχυρή ασφάλεια σε κάθε σταθμό
εργασίας.
– Πρακτικό πρόβλημα: απαιτείται συχνή αναβάθμιση.
• Εναλλακτική λύση: Firewall.
– Μοναδικό σημείο ελέγχου, ευκολότερη επίβλεψη
– Εγκαθίσταται σε ένα ή περισσότερα συστήματα.

Ορισμός Firewall
• Υλικό ή/και λογισμικό που επιτρέπει την προσπέλαση ενός
δικτύου από εξωτερικούς χρήστες μόνο εφόσον αυτοί
διαθέτουν συγκεκριμένα χαρακτηριστικά.
• Ως σύστημα firewall μπορεί να θεωρηθεί:
– Μια διάταξη δρομολόγησης (router).
– Ένας ΗΥ.
– Ένας διακομιστής ή ένα σύνολο διακομιστών που
οχυρώνουν μια δικτυακή τοποθεσία ή ένα υποδίκτυο από
πρωτόκολλα και υπηρεσίες που μπορούν να προσβληθούν
από διακομιστές εκτός του υποδικτύου.
Παρεχόμενη Ασφάλεια
• Προστατεύει:
– Πόρους από φθορά, κατάχρηση, κλοπή.
– Την υπόληψη του δικτύου από δημοσιοποίηση
αδυναμιών της ασφάλειάς του.
– Την επικρατούσα πολιτική ορθής χρήσης των
υπηρεσιών διαδικτύου από τους χρήστες.

Στόχοι σχεδιασμού των firewalls


• Όλη η κίνηση θα πρέπει να διέρχεται από το
firewall.
– Είτε προς το εσωτερικό είτε προς το εξωτερικό του
δικτύου.
• Επιτρέπεται να διέρχεται μόνο εξουσιοδοτημένη
κίνηση.
– Διάφορες πολιτικές ασφάλειας.
• Το firewall πρέπει να είναι αδιαπέραστο.
– Χρήση έμπιστου συστήματος με ασφαλές λειτουργικό
σύστημα.
Τεχνικές
• Έλεγχος υπηρεσιών (service control).
– Καθορίζει τα είδη υπηρεσιών που μπορούν να
προσπελαστούν.
• Έλεγχος κατεύθυνσης (direction control).
– Καθορίζει την κατεύθυνση προς την οποία επιτρέπεται να
περάσουν συγκεκριμένες αιτήσεις υπηρεσιών.
• Έλεγχος χρήστη (user control).
– Ελέγχει την πρόσβαση σε μια υπηρεσία ανάλογα με το ποιος
χρήστης προσπαθεί να την προσπελάσει.
• Έλεγχος συμπεριφοράς (behavior control).
– Ελέγχει με ποιον τρόπο χρησιμοποιούνται συγκεκριμένες
υπηρεσίες.
• Π.χ. φιλτράρισμα e-mail.

Τί περιμένουμε από ένα


firewall;
• Να καθορίσει ένα μοναδικό σημείο ελέγχου πρόσβασης
στο δίκτυο.
– Απλοποίηση σχεδίασης.
• Κρατά τους μη εξουσιοδοτημένους χρήστες μακριά.
• Παρακολουθεί συμβάντα σχετικά με την ασφάλεια.
• Αποτελεί βολική πλατφόρμα για λειτουργίες άσχετες με
την ασφάλεια.
– Μετάφραση διευθύνσεων Διαδικτύου σε τοπικές διευθύνσεις
(NAT).
• Μπορεί να χρησιμοποιηθεί για την υλοποίηση VPN.
Περιορισμοί firewall
• Δεν μπορούν να προστατέψουν από επιθέσεις
που τα παρακάμπτουν.
• Δεν προστατεύουν από εσωτερικές απειλές.
• Δεν προστατεύουν από μεταφορά μολυσμένων
με ιούς προγραμμάτων ή αρχείων.

Τύποι firewall
• Φίλτρα πακέτων (packet filters).
• Πύλες επιπέδου εφαρμογής (application-level
gateways).
• Πύλες επιπέδου κυκλώματος (circuit-level
gateways).
• Μία ολοκληρωμένη υπηρεσία firewall συνήθως
παρέχεται με συνδυασμό των παραπάνω
τεχνικών.
Packet-filtering router (1/3)
• Εφαρμόζει σύνολο κανόνων σε
εισερχόμενα/εξερχόμενα πακέτα ΙΡ.
– Προωθεί ή απορρίπτει τα πακέτα.
• Φιλτράρει και προς τις δύο κατευθύνσεις.
• Τοποθετείται στο σημείο σύνδεσης του
εσωτερικού δικτύου με το εξωτερικό δίκτυο
(π.χ. Internet).

Packet-filtering router (2/3)


• Οι κανόνες φιλτραρίσματος βασίζονται σε
πληροφορίες των πακέτων.
– IP source address.
– IP destination address.
– Source/destination transport level address (ports).
– IP protocol field.
• Καθορίζει το πρωτόκολλο επιπέδου μεταφοράς.
– Interface δρομολογητή.
• Από πού προήλθε ή για πού προορίζεται το πακέτο.
Packet-filtering router (3/3)
• Το φίλτρο βασίζεται σε ταιριάσματα με τα πεδία
της επικεφαλίδας.
– 2 πολιτικές:
• Απόρριψη: Ό,τι δεν επιτρέπεται ρητά, απαγορεύεται.
• Προώθηση: Ό,τι δεν απαγορεύεται ρητά, επιτρέπεται.

Επιθέσεις σε packet filters και


αντίμετρα
Πίνακας 1. Επιθέσεις σε packet filters και αντίμετρα. Πηγή: Διδάσκων (2015).
Επίθεση Περιγραφή Αντίμετρα
ΙΡ address spoofing Μετάδοση από εξωτερική Απόρριψη πακέτων με
(πλαστογράφηση ΙΡ) σύνδεση, πακέτων με εσωτερική source IP όταν
(ψεύτικη) ΙΡ εσωτερικού προέρχονται από
υπολογιστή εξωτερική σύνδεση
Source routing attacks Η πηγή καθορίζει την Απόρριψη πακέτων που
(επιθέσεις δρομολόγησης διαδρομή, ελπίζοντας να υποστηρίζουν αυτή την
προέλευσης) παρακάμψει μέτρα επιλογή
ασφαλείας
Tiny fragment attacks Κατάτμηση IP και Επιβολή κανόνα που το
(επιθέσεις μεταφορά επικεφαλίδας πρώτο πακέτο θα πρέπει
μικροσκοπικών σε ξεχωριστό τμήμα να περιλαμβάνει κάποια
τμημάτων) (fragment) ελάχιστη πληροφορία
από την επικεφαλίδα
Πλεονεκτήματα -
Μειονεκτήματα
• Πλεονεκτήματα.
– Γρήγορες τεχνικές.
– Δρουν στα χαμηλά επίπεδα OSI (network-transport
layers).
• Μειονεκτήματα.
– Δεν εξετάζεται το περιεχόμενο του πακέτου.
– Δεν προσφέρει επαρκείς μηχανισμούς επίβλεψης και
ειδοποίησης του κινδύνου.
– Δύσκολη διαχείριση.

Πύλες επιπέδου εφαρμογής


(1/2)
• Χρησιμοποιούν proxy server.
• Ενδιάμεσος αναμεταδότης κίνησης επιπέδου εφαρμογής.
– Πρόσβαση σε περισσότερες πληροφορίες.
• Κάθε TCP/IP υπηρεσία που ελέγχεται έχει το δικό της
proxy.
– Πραγματοποιείται πιστοποίηση χρηστών πρώτα π.χ. telnet, ftp.
– Αν γίνει η πιστοποίηση, η πύλη επικοινωνεί με την κατάλληλη
εφαρμογή και αναμεταδίδει τα πακέτα.
• Αν η πύλη δεν περιλαμβάνει κάποια εφαρμογή, η
υπηρεσία δεν υποστηρίζεται.
• Η πύλη μπορεί να ρυθμιστεί ώστε να υποστηρίζει μόνο
συγκεκριμένες ιδιότητες της κάθε εφαρμογής.
Πύλες επιπέδου εφαρμογής
(2/2)
• Πλεονεκτήματα.
– Πιο ασφαλείς από τα φίλτρα πακέτων.
– Απαιτείται μόνο να εξετάζουν λίγες επιτρεπόμενες
εφαρμογές.
– Στο επίπεδο εφαρμογών είναι ευκολότερη η
παρακολούθηση της κίνησης.
– Γενικά εύκολη διαχείριση.
• Μειονεκτήματα.
– Πρόσθετος φόρτος επεξεργασίας σε κάθε σύνδεση.
• Η πύλη είναι σημείο συναρμογής ανάμεσα στους τελικούς
χρήστες.

Πύλες επιπέδου κυκλώματος


• Αυτόνομο σύστημα ή εξειδικευμένη λειτουργία
από πύλη επιπέδου εφαρμογής.
• Δημιουργία 2 συνδέσεων TCP.
• Δημιουργία ιδεατού κυκλώματος (virtual circuit).
• Η πύλη τυπικά αναμεταδίδει τα πακέτα TCP από
τη μία σύνδεση στην άλλη χωρίς να εξετάζει το
περιεχόμενό τους.
Υπολογιστής προμαχώνα
• Σύστημα που προσδιορίζεται από τον διαχειριστή
του firewall ως κρίσιμο, ισχυρό σημείο για την
ασφάλεια του δικτύου.
• Συνήθως λειτουργεί ως πλατφόρμα για πύλη
επιπέδου εφαρμογής ή επιπέδου κυκλώματος.
• Στο σύστημα εγκαθίστανται μόνο υπηρεσίες που
θεωρούνται απαραίτητες π.χ. Proxy services –
telnet, ftp, smtp.

Διευθετήσεις firewalls
• Εκτός από την χρήση απλών διευθετήσεων π.χ.
δρομολογητή φιλτραρίσματος, παρέχονται και
πιο περίπλοκες διευθετήσεις.
– Screened-host firewall system (single-homed bastion).
– Screened-host firewall system (dual-homed bastion).
– Screened subnet.
Screened-host firewall system /
single-homed bastion (1/2)
• 2 συστήματα:
– Δρομολογητής φιλτραρίσματος πακέτων.
– Υπολογιστής προμαχώνα.
• Κίνηση από Internet: Εισέρχονται μόνο πακέτα που
προορίζονται για τον υπολογιστή προμαχώνα.
– Ο προμαχώνας εκτελεί ενέργειες αυθεντικοποίησης και
διαμεσολάβησης (proxy).
• Κίνηση από το εσωτερικό: Εξέρχονται μόνο πακέτα από
τον υπολογιστή προμαχώνα.

Screened-host firewall system /


single-homed bastion (2/2)
• Παρέχεται μεγαλύτερη ασφάλεια από τις απλές
διευθετήσεις.
– Φιλτράρισμα και σε επίπεδο πακέτων και σε επίπεδο εφαρμογής.
– Οι εισβολείς πρέπει να διεισδύουν σε 2 ξεχωριστά συστήματα
προκειμένου να παραβιαστεί η ασφάλεια.
• Παρέχεται ευελιξία στην παροχή άμεσης πρόσβασης στο
Internet.
– Π.χ. σε περίπτωση ύπαρξης Web Server ο δρομολογητής μπορεί
να ρυθμιστεί ώστε να επιτρέπεται άμεση πρόσβαση ανάμεσα
στον Web server και το Internet.
Screened-host firewall system
/ dual-homed bastion
• Αποτρέπει το πρόβλημα της προηγούμενης
διευθέτησης που δημιουργούνταν σε περίπτωση
παραβίασης του δρομολογητή φιλτραρίσματος
πακέτων.
• Η κίνηση πρέπει οπωσδήποτε να περάσει από τον
υπολογιστή προμαχώνα.

Screened subnet
• Η πιο ασφαλής διευθέτηση.
• Χρησιμοποιούνται 2 δρομολογητές φιλτραρίσματος
πακέτων και ένας υπολογιστής προμαχώνας.
• 3 επίπεδα άμυνας προς εισβολείς.
• Ο εξωτερικός δρομολογητής προβάλλει στο διαδίκτυο
μόνο την ύπαρξη του ελεγχόμενου υποδικτύου.
• Ο εσωτερικός δρομολογητής προβάλλει στο εσωτερικό
δίκτυο μόνο την ύπαρξη του ελεγχόμενου υποδικτύου.
Γενικές Κατευθύνσεις για χρήση
firewall (1/2)
• Το σύστημα firewall να είναι η μόνη ορατή διεύθυνση
προς τον έξω κόσμο.
• Οι μηχανισμοί πιστοποίησης χρηστών να γίνονται σε
επίπεδο εφαρμογής.
• Οι proxy servers να κάνουν λεπτομερή καταγραφή σε
επίπεδο εφαρμογής.
• Όλες οι αιτήσεις για διάφορες υπηρεσίες να διέρχονται
μέσω proxy servers.
• Η διαχείριση του firewall να γίνεται από τοπικό τερματικό
και όχι απομακρυσμένα.

Γενικές Κατευθύνσεις για χρήση


firewall (2/2)
• Οι διαχειριστές να είναι έμπειροι και ενημερωμένοι.
• Να δημιουργούνται ανά τακτά χρονικά διαστήματα
backups του λογισμικού και των δεδομένων του
firewall.
• Να υπάρχει εφεδρικό σύστημα firewall με τις σωστές
ρυθμίσεις ώστε να μπορεί να χρησιμοποιηθεί ανά
πάσα στιγμή.
Πλεονεκτήματα Firewall
• Επιτρέπει αποτελεσματικά την επιβολή της πολιτικής
ασφάλειας.
• Προστατεύει από ευπαθείς υπηρεσίες δικτύων.
• Καταγράφει την διερχόμενη πληροφορία και ειδοποιεί σε
περίπτωση κινδύνου.
• Επιβάλλει ελεγχόμενη πρόσβαση στους πόρους του
εσωτερικού δικτύου.
• Κρύβει την πληροφορία του εσωτερικού δικτύου.
• Συγκεντρώνει υπηρεσίες ασφάλειας με μια καλά
ορισμένη οχυρωμένη ζώνη.
• Μπορεί να λειτουργήσει ως πύλη κρυπτογράφησης.

Μειονεκτήματα firewall
• Δεν προστατεύει από εσωτερικούς χρήστες.
• Μπορεί να διαπεραστεί.
• Αποτελεί στόχο επίδοξων επιτιθέμενων.
• Διαθέτει περιορισμένο έλεγχο πάνω στο
περιεχόμενο των μηνυμάτων (π.χ. προστασία από
ιούς).
• Απαιτεί σωστή εγκατάσταση, διαμόρφωση και
ακριβείς ρυθμίσεις.
Έμπιστα συστήματα
• Έμπιστα συστήματα: Τρόπος ενίσχυσης της
αμυντικής ικανότητας ενάντια σε εισβολείς και
κακόβουλα προγράμματα.
• Έλεγχος πρόσβασης σε δεδομένα.
– Με την διαδικασία logon οι χρήστες αναγνωρίζονται από
το σύστημα.
– Με κάθε χρήστη μπορεί να συσχετίζεται κάποιο προφίλ
που να προσδιορίζει.
• Επιτρεπόμενες λειτουργίες.
• Προσπελάσεις αρχείων.
– Το ΛΣ μπορεί επιπλέον να επιβάλλει κανόνες με βάση το
προφίλ χρήστη.

Έλεγχος πρόσβασης σε
δεδομένα
• Γενικά μοντέλα ελέγχου πρόσβασης.
– Πίνακας πρόσβασης (access matrix).
– Λίστες ελέγχου πρόσβασης (access control lists).
– Εισιτήρια δυνατοτήτων (capability tickets).
Πίνακας πρόσβασης (1/2)
• Βασικά στοιχεία:
– Υποκείμενο (subject).
• Οντότητα ικανή να προσπελαύνει αντικείμενα, ισοδυναμεί με
την έννοια της διεργασίας.
– Αντικείμενο (object).
• Οτιδήποτε για το οποίο ελέγχεται η πρόσβαση, π.χ. αρχεία,
προγράμματα, μνήμη.
– Δικαίωμα πρόσβασης (access right).
• Ο τρόπος με τον οποίο γίνεται η προσπέλαση ενός
αντικειμένου από ένα υποκείμενο, π.χ. ανάγνωση, εγγραφή,
εκτέλεση.

Πίνακας πρόσβασης (2/2)


• Γραμμές: Υποκείμενα – διεργασίες.
• Στήλες: Αντικείμενα.
– Μπορεί να είναι και μεμονωμένα πεδία δεδομένων.
• Εγγραφές: Δικαίωμα πρόσβασης του αντίστοιχου
υποκειμένου στο αντίστοιχο αντικείμενο.
Λίστες ελέγχου πρόσβασης
• Για κάθε αντικείμενο, παραθέτουν τους χρήστες
και τα επιτρεπόμενα δικαιώματα πρόσβασης.
• Μπορεί να περιέχει «δημόσια εγγραφή» (public
entry).
– Επιτρέπει στους χρήστες που δεν έχουν ρητά κάποια
δικαιώματα να έχουν προεπιλεγμένο σύνολο
δικαιωμάτων.

Εισιτήρια δυνατοτήτων
• Καθορίζουν εξουσιοδοτημένα αντικείμενα και
λειτουργίες για κάθε χρήστη.
• Κάθε χρήστης έχει κάποιο αριθμό εισιτηρίων.
• Τα εισιτήρια είναι διασκορπισμένα στο σύστημα.
– Πρόβλημα ως προς την ασφάλεια (πλαστογράφηση).
– Πρέπει να διατηρούνται σε θέσεις μνήμης που δεν
είναι προσπελάσιμες στους χρήστες.
Η έννοια των έμπιστων
συστημάτων
• Παρέχουν προστασία δεδομένων, πόρων με βάση
επίπεδα ασφάλειας (security levels).
• Οι πληροφορίες οργανώνονται σε κατηγορίες και
οι χρήστες λαμβάνουν άδεια πρόσβασης σε
συγκεκριμένες κατηγορίες.

Έμπιστα συστήματα - επίπεδα


• Πολυεπίπεδη ασφάλεια (multilevel security).
– Καθορίζονται πολλαπλές κατηγορίες ή επίπεδα δεδομένων.
• Ένα πολυεπίπεδο σύστημα ασφάλειας πρέπει να επιβάλλει:
– Όχι ανάγνωση προς τα επάνω (no read up).
• Το υποκείμενο μπορεί μόνο να διαβάσει αντικείμενα κατώτερου
ή ίδιου επιπέδου ασφάλειας (Απλή Πολιτική Ασφάλειας –
Simple Security Policy).
– Όχι εγγραφή προς τα κάτω (no write down).
• Το υποκείμενο μπορεί να γράψει μόνο σε αντικείμενα
υψηλότερου ή ίδιου επιπέδου ασφάλειας ( *-Ιδιότητα - *-
Property).
• Σωστή εφαρμογή των κανόνων παρέχει πολυεπίπεδη
ασφάλεια.
Ελεγκτής αναφοράς (1/2)
• Στοιχείο ελέγχου σε υλικό και ΛΣ.
• Ρυθμίζει την πρόσβαση των υποκειμένων σε
αντικείμενα.
• Βάση Δεδομένων Πυρήνα Ασφάλειας.
– Καταγράφονται τα δικαιώματα πρόσβασης κάθε
υποκειμένου.
• Επιβάλει τους κανόνες ασφάλειας (no read up, no
write down).

Ελεγκτής αναφοράς (2/2)


• Ιδιότητες.
– Πλήρης μεσολάβηση (complete mediation).
• Οι κανόνες ασφάλειας επιβάλλονται σε κάθε πρόσβαση.
– Απομόνωση (isolation).
• Ο ελεγκτής αναφοράς και η ΒΔ προστατεύονται από μη
εξουσιοδοτημένη τροποποίηση.
– Επαληθευσιμότητα (verifiability).
• Η ορθότητα του ελεγκτή αναφοράς πρέπει να μπορεί να
αποδειχθεί, δηλ. να μπορεί μαθηματικά να αποδειχτεί ότι
επιβάλλει τους κανόνες ασφάλειας και παρέχει πλήρη
μεσολάβηση και απομόνωση.
• Ένα σύστημα το οποίο παρέχει αυτές τις απαιτήσεις
αναφέρεται σαν έμπιστο σύστημα (trusted system).
Αρχείο Παρακολούθησης
• Αποθηκεύονται σημαντικά συμβάντα
ασφάλειας.
– Εντοπισμένες παραβιάσεις ασφάλειας.
– Εξουσιοδοτημένες αλλαγές στην ΒΔ κτλ.

Ενότητα 10: Επανάληψη


Σκοποί ενότητας
• Σε αυτή την ενότητα πραγματοποιείται
επανάληψη στο μάθημα «Ασφάλεια
Υπολογιστικών Συστημάτων».

Περιεχόμενα ενότητας (1/5)


• Επιθέσεις.
• Υπηρεσίες Ασφάλειας.
• Μηχανισμοί Ασφάλειας.
• Είδη Κακόβουλων Απειλών.
• Είδη Ιών.
• Φάσεις του Ιού.
• Εισβολείς.
Περιεχόμενα ενότητας (2/5)
• Τεχνικές Εισβολής.
• Ανίχνευση Εισβολών.
• Αδυναμίες Συνθηματικών.
• Στρατηγικές επιλογής password.
• Αρχές συμμετρικής κρυπτογράφησης.
• Πότε ένα σύστημα θεωρείται ασφαλές;
• Συμμετρικοί αλγόριθμοι κρυπτογράφησης
τμημάτων.

Περιεχόμενα ενότητας (3/5)


• Πιστοποίηση Αυθεντικότητας Μηνυμάτων.
• Message Authentication Code - MAC.
• Μονόδρομη Συνάρτηση Κατακερματισμού.
• Δομή κρυπτογράφησης δημόσιου κλειδιού.
• Γενικός αλγόριθμος κρυπτογράφησης δημόσιου
κλειδιού.
• Εφαρμογές κρυπτογραφικών συστημάτων
δημοσίου κλειδιού.
Περιεχόμενα ενότητας (4/5)
• Αλγόριθμοι κρυπτογραφίας δημόσιου κλειδιού.
• Ψηφιακές υπογραφές.
• Προβλήματα Ψηφιακής Υπογραφής.
• Περιγραφή λειτουργίας PGP.
• Κρίκοι κλειδιών - key rings.
• Firewalls.
• Περιορισμοί firewall.

Περιεχόμενα ενότητας (5/5)


• Τύποι firewall.
• Packet-filtering router.
• Πύλες επιπέδου εφαρμογής.
• Πύλες επιπέδου κυκλώματος.
• Βιβλιογραφία.
Επιθέσεις
• Παθητικές επιθέσεις.
– Απελευθέρωση περιεχομένου μηνύματος (release of
message contents).
– Ανάλυση κίνησης (traffic analysis).
• Ενεργητικές επιθέσεις.
– Μεταμφίεση (masquerade).
– Επανεκπομπή (reply).
– Τροποποίηση μηνυμάτων (modification of messages).
– Άρνηση εξυπηρέτησης (denial of service).

Υπηρεσίες Ασφάλειας
• Πιστοποίηση ταυτότητας (authentication).
• Έλεγχος πρόσβασης.
• Απόρρητο δεδομένων.
• Ακεραιότητα δεδομένων.
• Μη αποποίηση.
• Υπηρεσία διαθεσιμότητας.
Μηχανισμοί Ασφάλειας
• Κρυπτογράφηση (Encipherment/Encryption).
• Ψηφιακή Υπογραφή (Digital Signature).
• Έλεγχος Πρόσβασης (Access Control).
• Ακεραιότητα δεδομένων (Data Integrity).
• Ανταλλαγή πιστοποίησης ταυτότητας (Authentication
Exchange).
• Προσαύξηση κίνησης (Traffic Padding).
• Έλεγχος δρομολόγησης (Routing Control).
• Μηχανισμός επικύρωσης (Notarization).

Είδη Κακόβουλων Απειλών


• Σκουλήκια.
• Κερκόπορτες.
• Λογική Βόμβα.
• Δούρειος Ίππος.
• Ζομπι.
• Dialers.
• Ιοί κ.α.
Είδη Ιών (1/2)
• Παρασιτικός ιός (parasitic virus).
– Προσαρτάται σε εκτελέσιμα, χωρίς να τα καταστρέφει.
• Ιός μόνιμα εγκατεστημένος στη μνήμη (memory resident
virus).
– Εγκαθίσταται στην ΚΜ ως τμήμα μόνιμου προγράμματος
συστήματος.
• Ιός τομέα εκκίνησης (boot sector virus).
– Μολύνει τον κύριο τομέα εκκίνησης.
– H εκτέλεσή τους προηγείται αυτής του DOS.
– Μπορούν να χρησιμοποιήσουν του BIOS.

Είδη Ιών (2/2)


• Αόρατος ιός (stealth virus).
– Κρύβεται από τον εντοπισμό από αντιβιοτικά.
• Πολυμορφικός ιός (polymorphic virus).
– Μεταλλάσσεται με κάθε μόλυνση (κρύβουν τον κώδικά
τους με διαφορετικό τρόπο κάθε φορά), αδύνατος ο
εντοπισμός του.
• Μεταμορφικός ιός (metamorphic virus).
– Μεταλλάσσεται πλήρως αυξάνοντας την δυσκολία
ανίχνευσης.
Φάσεις του Ιού
• Φάση ύπνωσης (dormant phase) .
– Ιός σε αδράνεια.
– Περιμένει κάποιο γεγονός προς ενεργοποίηση.
• Φάση διάδοσης (propagation phase).
– Ο ιός τοποθετεί ακριβές αντίγραφό του σε άλλα προγράμματα ή
περιοχές στον δίσκο (κλώνοι).
• Φάση πυροδότησης (triggering phase).
– Ενεργοποίηση ιού για εκτέλεση της λειτουργίας για την οποία
προορίζεται.
• Φάση εκτέλεσης (execution phase).
– Εκτέλεση λειτουργίας.

Εισβολείς
• Μια από τις δύο πιο διάσημες απειλές
ασφάλειας.
– Η άλλη είναι οι ιοί.
• Κοινώς γνωστοί ως hackers, crackers.
• O Anderson1 προσδιόρισε 3 κατηγορίες.
– Μεταμφιεσμένος (masquerader).
– Παράνομος (misfeasor).
– Κρυφός χρήστης (clandestine user).
Τεχνικές Εισβολής
• Σκοπός: Να αποκτήσει πρόσβαση σε ένα σύστημα ή να
αυξήσει τα προνόμιά του σε αυτό.
– Απαιτείται από τον εισβολέα να αποκτήσει πρόσβαση σε
πληροφορίες οι οποίες προστατεύονται π.χ. Password.
• Τυπικά κάθε σύστημα διατηρεί αρχείο συσχέτισης
συνθηματικών με χρήστες που μπορεί να προστατευτεί με:
– Μονόδρομη κρυπτογράφηση.
• Κρυπτογράφηση του συνθηματικού.
– Έλεγχος πρόσβασης.
• Η πρόσβαση στο αρχείο των συνθηματικών περιορίζεται σε έναν
ή πολύ λίγους λογαριασμούς.

Ανίχνευση Εισβολών
• Αναπόφευκτα και το καλύτερο σύστημα αποτροπής
εισβολών θα αποτύχει.
• Άρα είναι πολύ σημαντική και η ανίχνευσή τους.
– Έγκαιρο μπλοκάρισμα εισβολής πριν προκαλέσει ζημιά.
– Μπορεί να αποθαρρύνει τις προσπάθειες εισβολών.
– Η συλλογή πληροφοριών σχετικά με τις ανιχνευθείς εισβολές
μπορεί να χρησιμοποιηθεί για την ενδυνάμωση της υπηρεσίας
αποτροπής εισβολών.
• Υπόθεση: Οι εισβολείς συμπεριφέρνονται διαφορετικά
από τους νόμιμους χρήστες.
Αδυναμίες Συνθηματικών
• Εύκολη απομνημόνευση  εύκολη μαντεψιά.
• Δύσκολη απομνημόνευση  εγγραφή τους σε χαρτάκια
και ατζέντες.
• Λεξικογραφική επίθεση (dictionary attack).
– Επιλογή συνόλου συνθηματικών και δοκιμή όλων.
– Αυτόματο σύστημα που δοκιμάζει όλες τις λέξεις που περιέχονται
σε ένα λεξικό.
• Εξαντλητική έρευνα (brute force attack).
– Δοκιμή όλων των δυνατών συνδυασμών συμβόλων.
– Αποτελεσματική για την εικασία συνθηματικών με μικρό μήκος
και περιορισμένο δείγμα συμβόλων (π.χ. “1234” ή “ABCD”).
– Π.χ. L0phtCrack.exe για Unix και Windows.

Στρατηγικές επιλογής password


• Σκοπός: Η εξάλειψη των προβλέψιμων
συνθηματικών και παράλληλα η επιλογή
ευκολομνημόνευτων συνθηματικών.
• 4 βασικές τεχνικές.
– Εκπαίδευση χρηστών.
– Συνθηματικά παραγόμενα από υπολογιστή (computer
generated passwords).
– Αντιδραστικός (reactive) έλεγχος συνθηματικού.
– Προληπτικός (proactive) έλεγχος συνθηματικού.
Αρχές συμμετρικής
κρυπτογράφησης
• Ένα σύστημα κρυπτογράφησης έχει πέντε συστατικά:
– Αρχικό απλό κείμενο (plain text).
– Αλγόριθμος κρυπτογράφησης (encryption algorithm).
– Μυστικό κλειδί (secret key).
– Κρυπτογράφημα (ciphertext).
– Αλγόριθμος αποκρυπτογράφησης (decryption algorithm).
• Δεν χρειάζεται να κρατάμε μυστικό τον αλγόριθμο
κρυπτογράφησης αλλά το κλειδί.
– Χαμηλό κόστος υλοποιήσεις αλγορίθμων.

Πότε ένα σύστημα θεωρείται


ασφαλές;
• Κόστος παραβίασης κρυπτογραφήματος >> αξία
κρυπτογραφημένων πληροφοριών.
• Χρόνος «σπασίματος» >> διάρκειας ζωής
πληροφοριών.
– Όπου >> μεταφράζεται ως «πολύ μεγαλύτερο»!
Συμμετρικοί αλγόριθμοι
κρυπτογράφησης τμημάτων
• Data Encryption Standard (DES).
• 3 Data Encryption Standard (3DES).
• Advanced Encryption Standard (AES).

Πιστοποίηση Αυθεντικότητας
Μηνυμάτων
• Ένα μήνυμα/αρχείο/έγγραφο θεωρείται γνήσιο
όταν:
– Προέρχεται όντως από την προέλευση που δηλώνει.
– Τα περιεχόμενά του δεν έχουν μεταβληθεί.
– Δεν έχει σκόπιμα καθυστερήσει/αναμεταδοθεί.
• Η Πιστοποίηση Αυθεντικότητας Μηνυμάτων
(message authentication) προστατεύει από
ενεργητικές επιθέσεις.
– Σε αντίθεση με την κρυπτογράφηση.
Message Authentication Code -
MAC (1/2)
• Χρήση μυστικού κλειδιού για την παραγωγή του κωδικού
πιστοποίησης αυθεντικότητας μηνυμάτων (MAC).
– Προσαρτάται στο μήνυμα.
• Τα επικοινωνούντα μέλη μοιράζονται το ίδιο κλειδί KAB.
• MACM = F( KAB,M ).
• O κωδικός MAC αποστέλλεται μαζί με το μήνυμα.
• Ο παραλήπτης κάνει την ίδια διαδικασία και συγκρίνει τον
κωδικό που υπολόγισε με τον κωδικό που παρέλαβε.

Message Authentication Code -


MAC (2/2)
• Βεβαιώνεται ότι το μήνυμα.
– Δεν τροποποιήθηκε.
• Ο επιτιθέμενος μπορεί να αλλάξει το μήνυμα αλλά όχι και τον
κωδικό με αντίστοιχο τρόπο αφού δεν γνωρίζει το κλειδί.
– Προέρχεται από τον σωστό αποστολέα.
• Μόνο αυτός γνωρίζει το μυστικό κλειδί.
– Αν περιέχει το μήνυμα αριθμό ακολουθίας βεβαιώνεται και η
σωστή ακολουθία του μηνύματος.
• Ο αριθμός ακολουθίας δεν μπορεί να αλλαχθεί επιτυχώς.
• Παρόμοια διαδικασία με κρυπτογράφηση.
– Ο αλγόριθμος όμως εδώ δεν είναι απαραίτητα αντιστρέψιμος.
– Λιγότερο ευπαθής από την κρυπτογράφηση.
Μονόδρομη Συνάρτηση
Κατακερματισμού
• Εναλλακτική της MAC.
• Είσοδος: Αρχείο Μ.
• Έξοδος: Σύνοψη μηνύματος H(M) - (message
digest).
• Δεν χρησιμοποιείται μυστικό κλειδί.
• Ο τρόπος αποστολής της σύνοψης με το μήνυμα
την καθιστά αυθεντική.

Δομή κρυπτογράφησης
δημόσιου κλειδιού
• Το σύστημα κρυπτογράφησης έχει 6 στοιχεία:
– Αρχικό κείμενο (plaintext).
– Αλγόριθμος κρυπτογράφησης (encryption algorithm).
– Δημόσιο και ιδιωτικό κλειδί (public and private key).
• Για κρυπτογράφηση/αποκρυπτογράφηση.
– Κρυπτογράφημα (ciphertext).
– Αλγόριθμος αποκρυπτογράφησης (decryption
algorithm).
Γενικός αλγόριθμος κρυπτογράφησης
δημόσιου κλειδιού
• Γενικά:
– Το δημόσιο κλειδί κοινοποιείται.
– Το ιδιωτικό είναι γνωστό μόνο στον ιδιοκτήτη.
– Κάθε χρήστης δημιουργεί ζεύγος κλειδιών.
– Κάθε χρήστης τοποθετεί το δημόσιο κλειδί σε δημόσιο καταχωρητή
ή προσπελάσιμο αρχείο.
– Το μήνυμα που αποστέλλεται κρυπτογραφείται με το δημόσιο κλειδί
του παραλήπτη.
– Ο παραλήπτης αποκρυπτογραφεί το μήνυμα με το ιδιωτικό του
κλειδί.
– Κανείς άλλος δεν μπορεί να το διαβάσει γιατί δεν έχει το ιδιωτικό
κλειδί του παραλήπτη.
• Το ιδιωτικό κλειδί μπορεί να αντικατασταθεί.
– Ο χρήστης πρέπει να κοινοποιήσει το νέο δημόσιο κλειδί.

Εφαρμογές κρυπτογραφικών
συστημάτων δημοσίου κλειδιού
• 3 κατηγορίες:
– Κρυπτογράφηση/αποκρυπτογράφηση.
• Αποστολέας υπογράφει με δημόσιο κλειδί παραλήπτη.
– Ψηφιακή υπογραφή.
• Αποστολέας «υπογράφει» με ιδιωτικό κλειδί.
– Ανταλλαγή κλειδιών.
• Δυο πλευρές συνεργάζονται για την ανταλλαγή κλειδιού
περιόδου εργασίας (session key).
Αλγόριθμοι κρυπτογραφίας
δημόσιου κλειδιού
• Οι πιο συχνά χρησιμοποιούμενοι είναι οι RSA και Hellman.
• RSA.
– Ron Rivest, Adi Shamir, Led Adleman MIT, 1977.
– O RSA είναι κωδικοποιητής τμημάτων.
– Η πιο ευρέως αποδεκτή κρυπτογράφηση δημόσιου κλειδιού.
• Diffie – Hellman.
– Επιτρέπει την ανταλλαγή κλειδιών με ασφάλεια.
– Βασίζεται στην δυσκολία υπολογισμού διακριτών
λογαρίθμων.

Ψηφιακές υπογραφές
• Κρυπτογράφηση με ιδιωτικό κλειδί αποστολέα.
• Αποκρυπτογράφηση με δημόσιο κλειδί
αποστολέα.
• Αποδεικνύει ποιος κρυπτογράφησε το μήνυμα.
• Ποιο αποτελεσματικό: Κρυπτογράφηση ενός
μόνο μικρού τμήματος bit του εγγράφου.
• Δεν προσφέρει ασφάλεια για υποκλοπή.
Προβλήματα Ψηφιακής
Υπογραφής (1/2)
• Ο Κώστας θέλει να πλαστογραφήσει την ψηφιακή
υπογραφή της Μαρίας.
• Μπορεί να υπογράψει μια επιταγή με το δικό του
ιδιωτικό κλειδί και στη συνέχεια να παρουσιάσει
το δημόσιο κλειδί του σαν να είναι της Μαρίας.
• Εάν οι υπόλοιποι βασιστούν στα λεγόμενά του, η
πλαστογράφηση είναι πετυχημένη.
• Άρα χρειάζεται να υπάρχει εμπιστοσύνη απέναντι
στην αντιστοίχηση κλειδιού και ταυτότητας.

Προβλήματα Ψηφιακής
Υπογραφής (2/2)
• Η ψηφιακή υπογραφή δημιουργεί
πρόβλημα αντιστοίχισης κλειδιών.
• Οπότε απαιτείται η ύπαρξη μιας τρίτης,
έμπιστης ονότητας.
Περιγραφή λειτουργίας PGP
• Αποτελείται από 5 υπηρεσίες:
– Πιστοποίηση (Authentication) - SHA-1, RSA.
– Εμπιστευτικότητα (Confidentiality) – session key, RSA.
– Συμπίεση (Compression) – ZIP, UNZIP.
– Συμβατότητα με ηλεκτρονικό ταχυδρομείο (Email
compatibility) – radix-64.
– Κατάτμηση (Segmentation).

Κρίκοι κλειδιών - key rings


• Δομές δεδομένων του PGP για την αποθήκευση
των κλειδιών σε κάθε κόμβο.
– Κρίκος ιδιωτικών κλειδιών.
• Αποθήκευση δημόσιου/ιδιωτικού κλειδιού του ίδιου του
κόμβου.
– Κρίκος δημόσιων κλειδιών.
• Αποθήκευση δημόσιων κλειδιών για άλλους γνωστούς προς
τον κόμβο χρήστες.
Firewalls (1/2)
• Γενικά.
– Πυρίμαχοι τοίχοι για προστασία από εξάπλωση φωτιάς.
• Στα υπολογιστικά συστήματα.
– «Φράγμα» από το οποίο περνάει η δικτυακή πληροφορία.
• Και προς τις 2 κατευθύνσεις.
– Ορίζει ποια κίνηση μπορεί να περνάει.
– Λειτουργεί σαν φίλτρο σε επίπεδο πακέτων ΙΡ.
– Ή λειτουργεί σαν πρωτόκολλο ανώτερου επιπέδου.
– Προστατεύει από δικτυακές απειλές (επόμενη διαφάνεια).
– Επιτρέπει την πρόσβαση στον έξω κόσμο.
• Μέσω WAN ή Internet.

Firewalls (2/2)
• Το firewall προστατεύει τα εσωτερικά δίκτυα από
απειλές.
– Μη εξουσιοδοτημένη προσπέλαση δικτυακών πόρων.
• Π.χ. μη εξουσιοδοτημένη πρόσβαση σε αρχεία.
– Denial of Service (DoS).
• Π.χ. υπερφόρτωση δικτύου από εξωτερική οντότητα.
– Προσποίηση (masquerade).
• Π.χ. αποστολή μηνυμάτων από φαινομενικά νόμιμο χρήστη.
Περιορισμοί firewall
• Δεν μπορούν να προστατέψουν από επιθέσεις
που τα παρακάμπτουν.
• Δεν προστατεύουν από εσωτερικές απειλές.
• Δεν προστατεύουν από μεταφορά μολυσμένων
με ιούς προγραμμάτων ή αρχείων.

Τύποι firewall
• Φίλτρα πακέτων (packet filters).
• Πύλες επιπέδου εφαρμογής (application-level
gateways).
• Πύλες επιπέδου κυκλώματος (circuit-level
gateways).
• Μια ολοκληρωμένη υπηρεσία firewall συνήθως
παρέχεται με συνδυασμό των παραπάνω
τεχνικών.
Packet-filtering router
• Εφαρμόζει σύνολο κανόνων σε εισερχόμενα /
εξερχόμενα πακέτα ΙΡ.
– Προωθεί ή απορρίπτει τα πακέτα.
• Φιλτράρει και προς τις 2 κατευθύνσεις.
• Τοποθετείται στο σημείο σύνδεσης του
εσωτερικού δικτύου με το εξωτερικό δίκτυο (π.χ.
Internet).

Πύλες επιπέδου εφαρμογής


• Χρησιμοποιούν proxy server.
• Ενδιάμεσος αναμεταδότης κίνησης επιπέδου εφαρμογής.
– Πρόσβαση σε περισσότερες πληροφορίες.
• Κάθε TCP/IP υπηρεσία που ελέγχεται έχει το δικό της proxy.
– Πραγματοποιείται πιστοποίηση χρηστών πρώτα π.χ. telnet, ftp.
– Αν γίνει η πιστοποίηση, η πύλη επικοινωνεί με την κατάλληλη
εφαρμογή και αναμεταδίδει τα πακέτα.
• Αν η πύλη δεν περιλαμβάνει κάποια εφαρμογή, η υπηρεσία
δεν υποστηρίζεται.
• Η πύλη μπορεί να ρυθμιστεί ώστε να υποστηρίζει μόνο
συγκεκριμένες ιδιότητες της κάθε εφαρμογής.
Πύλες επιπέδου κυκλώματος
• Αυτόνομο σύστημα ή εξειδικευμένη λειτουργία
από πύλη επιπέδου εφαρμογής.
• Δημιουργία 2 συνδέσεων TCP.
• Δημιουργία ιδεατού κυκλώματος (virtual circuit).
• Η πύλη τυπικά αναμεταδίδει τα πακέτα TCP από
τη μία σύνδεση στην άλλη χωρίς να εξετάζει το
περιεχόμενό τους.

ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 1: Κρυπτογραφία με το Symantec


Encryption Desktop (Μέρος 1)
Σκοποί ενότητας
• Σκοπός της πρώτης εργαστηριακής
άσκησης είναι η εισαγωγή στην
κρυπτογραφία και η εξοικείωση με το
εργαλείο Symantec Encryption Desktop
(πρώην PGP Desktop).

Περιεχόμενα ενότητας (1/3)


• Εισαγωγή.
• PGP.
• Ορολογία.
• Έλεγχος λεπτομερειών άδειας του Symantec
Encryption Desktop.
• Χρησιμοποιώντας το PGP tray.
• Γραφικό περιβάλλον Symantec Encryption Desktop.
• Παρακολούθηση κλειδιών.
Περιεχόμενα ενότητας (2/3)
• ∆ημιουργία ζεύγους κλειδιών - Keypair.
• Ιδιότητες κλειδιών.
• Προστασία κλειδιών και ζεύγους κλειδιών.
• Δημιουργία ασφαλών αντιγράφων των ιδιωτικών
κλειδιών.
• Εισαγωγή ζεύγους κλειδιών.
• Απώλεια κλειδιού.
• ∆ιανομή ∆ημόσιου κλειδιού.

Περιεχόμενα ενότητας (3/3)


• Λήψη δημόσιου κλειδιού από το PGP Global
Directory.
• Βιβλιογραφία.
Κρυπτογραφία με το Symantec
Encryption Desktop (Μέρος 1)

Εισαγωγή (1/2)
• Το εργαλείο υπάρχει διαθέσιμο για να το
κατεβάσετε (trialware έκδοση) στον
Ιστότοπο της Symantec:
– http://www.symantec.com/products-
solutions/families/?fid=encryption.
Εισαγωγή (2/2)
• Αφού επισκεφτείτε τον Ιστότοπο, στην περιοχή
“Email Encryption” επιλέξτε “Trialware” κάτω από
το ”Desktop Email Encryption”.
• Θα χρειαστεί να δημιουργήσετε νέο λογαριασμό
στην Symantec για να μπορέσετε να
ολοκληρώσετε την λήψη του αρχείου
εγκατάστασης του εργαλείου.
• Η τρέχουσα έκδοση του Symantec Encryption
Desktop είναι η 10.3.2.

PGP (1/3)
• Τα αρχικά PGP σημαίνουν Pretty Good Privacy.
• Το Symantec Encryption Desktop είναι ένα εργαλείο
ασφάλειας που χρησιμοποιεί κρυπτογραφία για να
προστατεύσει δεδομένα από μη εξουσιοδοτημένη
χρήση.
• Το Symantec Encryption Desktop προστατεύει
δεδομένα που στέλνονται μέσω ηλεκτρονικής
αλληλογραφίας ή μέσω άμεσων μηνυμάτων.
• Επιτρέπει επίσης την κρυπτογράφηση ολόκληρου ή
μέρους ενός partition ενός σκληρού δίσκου.
PGP (2/3)
• Μπορεί να κρυπτογραφήσει απλά ένα μέρος σκληρού
δίσκου δημιουργώντας έναν εικονικό δίσκο στον οποίο
μπορούν να αποθηκευτούν με ασφάλεια τα πιο
ευαίσθητα δεδομένα.
• Επιπλέον, μπορεί να χρησιμοποιηθεί για μοίρασμα
αρχείων ή φακέλων με ασφάλεια μέσα σε ένα δίκτυο.
• Επιτρέπει την εισαγωγή οποιουδήποτε συνδυασμού
αρχείων και φακέλων σε μια κρυπτογραφημένη,
συμπιεσμένη συσκευασία για την εύκολη διανομή ή για
δημιουργία αντιγράφων ασφαλείας.

PGP (3/3)
• Τέλος, το Symantec Encryption Desktop μπορεί να
χρησιμοποιηθεί για να διαγράψει (ασφαλή διαγραφή)
ευαίσθητων αρχείων-έτσι ώστε κανένας να μην μπορεί να
τα ανακτήσει – να ελευθερώσει χώρο στο σκληρό δίσκο
χωρίς να αφήνει κανένα αποτύπωμα.
• Τέλος, το Symantec Encryption Desktop χρησιμοποιείται
για την δημιουργία “ζευγών κλειδιών” (PGP keypairs)
καθώς επίσης και για την διαχείριση τόσο προσωπικών
κλειδιών όσο και δημόσιων κλειδιών τρίτων ατόμων.
Ορολογία
• Encryption: Κρυπτογράφηση. Decryption:
Αποκρυπτογράφηση.
• Signing: Υπογραφή δεδομένων με χρήση προσωπικού
κλειδιού.
• Verifying: Επαλήθευση ψηφιακής υπογραφής.
• Keypair: Συνδυασμός ιδιωτικού/δημόσιου κλειδιού.
• Keyring: Αποθήκη κλειδιών του Symantec Encryption
Desktop.
• Keyserver: Αποθήκη δημόσιων κλειδιών (π.χ. PGP Global
Directory https://keyserver.pgp.com/).

Έλεγχος λεπτομερειών άδειας του


Symantec Encryption Desktop (1/2)
• Για να δείτε τις λεπτομέρειες του Symantec Encryption
Desktop:
• Κάντε διπλό κλικ στο εικονίδιο του Symantec Encryption
Desktop στο system tray.
• Επιλέξτε Help->License.
• Θα εμφανιστεί η Εικόνα 1.
– Μετακινώντας το ποντίκι σας πάνω από κάθε υπηρεσία που
παρέχει το εργαλείο μπορείτε να δείτε ποιες από τις υπηρεσίες
μπορείτε να χρησιμοποιήσετε ανάλογα με το license του
εργαλείου που έχετε εγκαταστήσει.
– Στην trial έκδοση οι μόνες διαθέσιμες υπηρεσίες είναι αυτές που
αφορούν στο PGP Zip.
Έλεγχος λεπτομερειών άδειας του
Symantec Encryption Desktop (2/2)

Εικόνα 1. Symantec Encryption Desktop License. Πηγή: Διδάσκων (2015).

Χρησιμοποιώντας το PGP tray


(1/6)
• Για να ανοίξετε το Symantec Encryption Desktop μπορείτε
(Windows):
– Να κάνετε διπλό κλικ στο PGP tray icon (Εικόνα 2).
– Να κάνετε δεξί ή αριστερό κλικ στο PGP tray icon και στη
συνέχεια να επιλέξετε Open Symantec Encryption Desktop.
– Από το menu έναρξης των windows να επιλέξετε:
Programs > Symantec Encryption > Symantec Encryption
Desktop.

Εικόνα 2. Το PGP tray icon. Πηγή: Διδάσκων (2015).


Χρησιμοποιώντας το PGP tray
(2/6)
• To PGP tray μπορεί να εμφανίζεται με μία από τις
παρακάτω τέσσερις καταστάσεις:
– Κανονική λειτουργία: Το Symantec Encryption Desktop λειτουργεί
κανονικά, κανένα passphrase δεν έχει κρατηθεί, καμία διαδικασία
δεν είναι σε εξέλιξη.
– Κρατημένο passphrase: Το Symantec Encryption Desktop
δουλεύει κανονικά , έχουν κρατηθεί passphrases ενός ή
περισσοτέρων ιδιωτικών κλειδιών.
– Απενεργοποιημένος proxy: Ο Proxy για μηνύματα email έχει
απενεργοποιηθεί.
– Απασχολημένο : Το Symantec Encryption Desktop είναι
απασχολημένο με κάποια διαδικασία.

Χρησιμοποιώντας το PGP tray


(3/6)
• Με δεξί κλικ πάνω στο PGP Desktop tray εμφανίζεται το
μενού της εικόνας 3.

Εικόνα 3. Μενού PGP Desktop tray. Πηγή: Διδάσκων (2015).


Χρησιμοποιώντας το PGP tray
(4/6)
• Exit PGP Services: Σταμάτημα των υπηρεσιών του
Symantec Encryption Desktop.
• About Symantec Encryption Desktop: Παρουσιάζει
πληροφορίες για την έκδοση του PGP Desktop.
• Help: Ανοίγει την βοήθεια του Symantec Encryption
Desktop.
• Options: Ανοίγει το μενού επιλογών του Symantec
Encryption Desktop.
• View Notifier: Παρουσιάζει τις τελευταίες
εισερχόμενες/εξερχόμενες ειδοποιήσεις.

Χρησιμοποιώντας το PGP tray


(5/6)
• View Log: Παρουσιάζει το αρχείο καταγραφής ενεργειών
του Ανοίγει το κύριο παράθυρο του PGP Desktop.
Μπορείτε να το χρησιμοποιείτε το για να παρακολουθείτε
τις ενέργειες που έχουν γίνει πρόσφατα.
• Open PGP Viewer: Ανοίγει το κύριο παράθυρο του PGP
Viewer στο Symantec Encryption Desktop.
• Open PGP Desktop: Ανοίγει το κύριο παράθυρο του
Symantec Encryption Desktop.
• Clear Caches: Καθαρίζει την μνήμη από κρατημένες
πληροφορίες όπως passphrases ή δημόσια κλειδιά.
Χρησιμοποιώντας το PGP tray
(6/6)
• Unmount PGP Virtual Disks: Κλείδωμα όλων των PGP
εικονικών δίσκων.
• Current Window: Επιτρέπει την χρήση των λειτουργιών
του Symantec Encryption Desktop (Decrypt & Verify,
Encrypt & Sign, Sign, Encrypt) στο τρέχων παράθυρο.
• Clipboard: Επιτρέπει την χρήση των λειτουργιών του
Symantec Encryption Desktop (Decrypt & Verify, Encrypt &
Sign, Sign, Encrypt) στα στοιχεία που υπάρχουν στο
πρόχειρο.

Γραφικό περιβάλλον Symantec


Encryption Desktop (1/4)

Εικόνα 4. Το γραφικό
περιβάλλον του Symantec
Encryption Desktop.
Πηγή: Διδάσκων (2015).
Γραφικό περιβάλλον Symantec
Encryption Desktop (2/4)
1. Menu bar: Παρέχει πρόσβαση σε εντολές του
Symantec Encryption Desktop. Τα μενού αλλάζουν
δυναμικά ανάλογα με την διαδικασία που είναι
επιλεγμένη στο PGP Control Box.
2. PGP Keys Control Box: Παρέχει δυνατότητες διαχείρισης
των κλειδιών.
3. PGP Messaging Control Box: Διαχείριση του PGP
Messaging.
4. PGP Zip Control Box: Δημιουργία κρυπτογραφημένων
ψηφιακά υπογεγραμμένων συμπιεσμένων αρχείων
χρησιμοποιώντας κλειδί ή passphrase.

Γραφικό περιβάλλον Symantec


Encryption Desktop (3/4)
5. PGP Disk Control Box: ∆ιαχείριση και δημιουργία
κρυπτογραφημένων σκληρών δίσκων.
6. PGP Viewer Control Box: Δίνει την δυνατότητα
αποκρυπτογράφησης, επαλήθευσης (verification) και
προβολής μηνυμάτων εκτός του πλαισίου του
ηλεκτρονικού ταχυσδρομειου.
7. Symantec File Share Encryption Control Box:
∆ημιουργία και διαχείριση κρυπτογραφημένων
φακέλων.
Γραφικό περιβάλλον Symantec
Encryption Desktop (4/4)
8. PGP Keys Find box: Χρησιμοποιείται για εύρεση
κλειδιών από τα ζεύγη κλειδιών (keyrings) που είναι
αποθηκευμένα στο σύστημά σας.
9. Symantec Encryption Desktop Work area:
Προβάλλει πληροφορίες και ενέργειες που μπορούν
να γίνουν με το επιλεγμένο Control Box.

Παρακολούθηση κλειδιών (1/2)


• Για να δείτε τα κλειδιά που έχετε αποθηκευμένα ,
ανοίξτε το Symantec Encryption Desktop και
κάντε κλικ στο PGP Keys Control box (Εικόνα 5).
• Στη συνέχεια επιλέξτε:
– All Keys: Για να δείτε όλα τα κλειδιά στο σύστημά σας.
– My Private Keys: Για να δείτε μόνο τα ιδιωτικά κλειδιά
στο σύστημά σας.
– Search for Keys: Για να ψάξετε για κλειδιά στο
σύστημά σας βασισμένοι στα κριτήρια που επιλέγετε.
Παρακολούθηση κλειδιών (2/2)

Εικόνα 5. PGP Keys Control box.


Πηγή: Διδάσκων (2015).

∆ημιουργία ζεύγους κλειδιών -


Keypair (1/10)
• Επιλέξτε το PGP Keys Control box.
• Επιλέξτε File > New PGP Key ή πατήστε Ctrl+N. Η πρώτη οθόνη
του οδηγού εμφανίζεται.
• ∆ιαβάστε τις πληροφορίες που εμφανίζονται.
• Πατήστε Επόμενο. Η οθόνη Name and Email Assignment
εμφανίζεται.
• Πληκτρολογήστε το όνομά στο πεδίο Full Name και τη
διεύθυνση email στο πεδίο Primary Email.
• Προσοχή! Φροντίστε να καταχωρήσετε έγκυρη διεύθυνση
ηλεκτονικού ταχυδρομείου για να μπορέσετε να
ολοκληρώσετε επιτυχώς την δημιουργία του ζεύγους
κλειδιών σας.
∆ημιουργία ζεύγους κλειδιών -
Keypair (2/10)
• Αν θέλετε να προσθέσετε και άλλες διευθύνσεις email
addresses στο κλειδί που δημιουργείται πατήστε More
πληκτρολογήστε ‘τες στα πεδία που εμφανίζονται.
• Για να καθορίσετε εξελιγμένα χαρακτηριστικά επιλέξτε
Advanced.
• Τότε εμφανίζεται το παράθυρο Advanced Key Settings
(Εικόνα 6).
• Χρησιμοποιείστε το για να ορίσετε τον τύπο και το
μέγεθος του κλειδιού, την ημερομηνία λήξης αυτού και
άλλα χαρακτηριστικά.

∆ημιουργία ζεύγους κλειδιών -


Keypair (3/10)

Εικόνα 6. Advanced Key Settings.


Πηγή: Διδάσκων (2015).
∆ημιουργία ζεύγους κλειδιών -
Keypair (4/10)
• Επιλέξτε ένα χαρακτηριστικά για τα ακόλουθα:
– Key type: Επιλέξτε μεταξύ των Diffie-Hellman/DSS and
RSA αλγορίθμων.
– Generate separate signing subkey: Επιλέξτε αυτή την
επιλογή για να δημιουργήσετε ξεχωριστό κλειδί για
υπογραφές.
– Key size: Πληκτρολογήστε από 1024 bits έως4096 bits.
Όσο μεγαλύτερο είναι το κλειδί τόσο ισχυρότερη θα
είναι η κρυπτογράφηση αλλά τόσο μεγαλύτερος θα
είναι ο χρόνος δημιουργία του κλειδιού και ο χρόνος
κρυπτογράφησης αρχείων ή φακέλων.

∆ημιουργία ζεύγους κλειδιών -


Keypair (5/10)
• Επιλέξτε ένα χαρακτηριστικά για τα ακόλουθα:
– Expiration: Επιλέξτε Select Never ή ορίστε την
ημερομηνία που θα λήγει το ζεύγος κλειδιών που
δημιουργείτε.
– Cipher: Αποεπιλέξτε τους κρυπτογραφικούς
αλγόριθμους που δεν θέλετε το ζεύγος κλειδιών σας
να υποστηρίζει.
– Preferred Cipher: Επιλέξτε τον κρυπτογραφικό
αλγόριθμο που θέλετε να χρησιμοποιείται στις
περιπτώσεις όπου δεν καθορίζεται κάποιος
συγκεκριμένος.
∆ημιουργία ζεύγους κλειδιών -
Keypair (6/10)
• Επιλέξτε ένα χαρακτηριστικά για τα ακόλουθα
(Συνέχεια):
– Hashes: Αποεπιλέξτε τις συναρτήσεις σύνοψης που
δεν θέλετε το ζεύγος κλειδιών σας να υποστηρίζει.
– Preferred Hash: Επιλέξτε συνάρτηση σύνοψης που
θέλετε να χρησιμοποιείται στις περιπτώσεις όπου δεν
καθορίζεται κάποια συγκεκριμένη.

∆ημιουργία ζεύγους κλειδιών -


Keypair (7/10)
• Πατήστε OK για να κλείσετε το παράθυρο Advanced Key
Settings.
• Πατήστε Επόμενο.
• Εμφανίζεται το παράθυρο της επιλογής Passphrase
• Πληκτρολογήστε την passphrase που θέλετε για να έχετε
αποκλειστική πρόσβαση στο ιδιωτικό κλειδί του ζεύγους
κλειδιών που δημιουργείτε. (Εμφανίζεται η ισχύς της
passphrase στην Passphrase Quality Bar). Το passphrase
θα πρέπει να είναι μεγέθους τουλάχιστον 8 χαρακτήρων.
∆ημιουργία ζεύγους κλειδιών -
Keypair (8/10)
• Για επιβεβαίωση επαναπληκτρολογείστε το passphrase
που δώσατε στο πεδίο Re-enter Passphrase.
• Προσοχή! Το passphrase προστατεύει το ζεύγος κλειδιών
σας. Είναι πολύ σημαντικό να απομνημονεύσετε το
passphrase που βάλατε για να μπορείτε να
χρησιμοποιείτε τα κλειδιά σας. Αν ξεχάσετε το
passphrase τα κλειδιά σας καθίστανται αυτομάτως
άχρηστα.
• Αρχίζει η διαδικασία δημιουργίας του ζεύγους κλειδιών.
• Όταν ολοκληρωθεί η διαδικασία πατήστε Επόμενο και
μετά Τέλος.

∆ημιουργία ζεύγους κλειδιών -


Keypair (9/10)
• Στη συνέχεια επιλέξτε το κλειδί που δημιουργήσατε και
με δεξί κλικ επιλέξτε:
Send to-> Idap://keyServer.pgp.com:3389
• Δηλαδή στο PGP Global Directory. Αυτό που αποστέλλεται
στην ουσία είναι μόνο το δημόσιο κλειδί σας.
• ∆ιαβάστε τις οδηγίες και πατήστε Επόμενο.
• Στη συνέχεια πατήστε Επόμενο και μετά Τέλος και η
διαδικασία έχει ολοκληρωθεί.
• Στη συνέχεια θα έρθει ένα mail επικύρωσης στην
διεύθυνση του email.
∆ημιουργία ζεύγους κλειδιών -
Keypair (10/10)
• Πατήστε πάνω στον δεσμό «Complete the
Verification Process» που υπάρχει στο σώμα του
email.
• Στην νέα καρτέλα που θα ανοίξει στον browser
σας επιλέξτε Accept και στην επόμενη Done.
• Το ζεύγος κλειδιών σας έχει δημιουργηθεί, και το
δημόσιο κλειδί σας έχει δημοσιοποιηθεί στο PGP
Global Directory.

Ιδιότητες κλειδιών (1/2)


• Για να δείτε τις ιδιότητες κάποιου κλειδιού
επιλέξτε το αντίστοιχο κλειδί που σας ενδιαφέρει
και στη συνέχεια με δεξί κλικ επιλέξτε Key
Properties (Εικόνα 7), οπότε και εμφανίζονται οι
ιδιότητες του κλειδιού.
Ιδιότητες κλειδιών (2/2)

Εικόνα 7. Key properties. Πηγή: Διδάσκων (2015).

Προστασία κλειδιών και


ζεύγους κλειδιών
• Τα ιδιωτικά και δημόσια κλειδιά σας
αποθηκεύονται σε ξεχωριστά αρχεία.
• Εξ ορισμού τα ιδιωτικά κλειδιά αποθηκεύονται
στο αρχείο secring.skr και τα δημόσια στο αρχείο
pubring.pkr στον φάκελο Τα έγγραφά μου/PGP
(Windows).
Δημιουργία ασφαλών αντιγράφων
των ιδιωτικών κλειδιών
• Για να μπορέσετε να δημιουργήσετε ένα αντίγραφο
ασφαλείας του κλειδιού σας:
– Στο PGP Keys control box, επιλέξτε My Private Keys.
– Επιλέξτε το δικό σας ζεύγος (keypair).
– Επιλέξτε File -> Export.
– Πληκτρολογήστε το όνομα του αρχείου.
– Επιλέξτε Include Private Key(s) . Αυτό είναι σημαντικό γιατί
διαφορετικά δεν θα εξαχθούν τα ιδιωτικά σας κλειδιά αλλά μόνο
τα δημόσια.
– Επιλέξτε Αποθήκευση.
– Αντιγράψτε το αρχείο (το οποίο έχει επέκταση .asc) σε μια
ασφαλή τοποθεσία., π.χ. ένα USB flash drive. Μην ανταλλάσετε
αυτό το αρχείο με άλλους!

Εισαγωγή ζεύγους κλειδιών


• Για να εισάγετε ζεύγος κλειδιών(ιδιωτικό και
δημόσιο) επιλέξτε το αρχείο με επέκταση.asc και
με δεξί κλικ επιλέξτε Symantec Encryption
Desktop ->Import Keys και επιλέξτε Import.
Απώλεια κλειδιού
• Αν χάσετε το ιδιωτικό σας κλειδί και δεν έχετε
αντίγραφό ασφαλείας αυτού δεν θα μπορέσετε
ποτέ να αποκρυπτογραφήσετε αρχεία που έχουν
κρυπτογραφηθεί με αυτό.
• Εν τούτοις μπορείτε να αναδημιουργήσετε το
κλειδί με την διαδικασία ανάκτησης κλειδιών
όπου απαιτείται η passphrase και οι απαντήσεις
των προσωπικών σας ερωτήσεων.

∆ιανομή ∆ημόσιου κλειδιού


• Υπάρχουν τρεις τρόποι διανομής του δημόσιου
κλειδιού σας.
1. ∆ημοσίευση στο PGP Global Directory (π.χ. όπως
περιγράφτηκε πριν).
2. Αποστολή με email.
3. Εξαγωγή δημοσίου κλειδιού ή αντιγραφή σε αρχείο
κειμένου.
Λήψη δημόσιου κλειδιού από
το PGP Global Directory
• Ανοίξτε το Symantec Encryption Desktop.
– Επιλέξτε το PGP Keys Control Box.
– Επιλέξτε Search for Keys . Εμφανίζεται το αντίστοιχο
παράθυρο.
– Καθορίστε τα κριτήρια αναζήτησης και πατήστε Search
οπότε και εμφανίζονται τα αποτελέσματα της
αναζήτησής σας.
– Στο ζητούμενο δημόσιο κλειδί πατήστε και επιλέξτε
Add to My Keyring στο PGP Keys Control Box.
– Το επιλεγμένο δημόσιο κλειδί έχει προστεθεί στα
κλειδιά σας.

ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 2: Κρυπτογραφία με το Symantec


Encryption Desktop (Μέρος 2)
Περιεχόμενα ενότητας (1/2)
• Εισαγωγή.
• Είδη αρχείων PGP Zip.
• Δημιουργία PGP Zip αρχείου.
• Κρυπτογράφηση με κλειδί παραλήπτη - Recipient
Keys.
• Κρυπτογράφηση με passphrase.
• Δημιουργία PGP SDA Zip αρχείου.
• Κρυπτογράφηση μόνο για υπογραφή αρχείου.

Περιεχόμενα ενότητας (2/2)


• Άνοιγμα ενός PGP Zip αρχείου.
• Άνοιγμα ενός PGP SDA Zip αρχείου.
• Επιβεβαίωση υπογεγραμμένων PGP Zip αρχείων.
• Βιβλιογραφία.
Κρυπτογραφία με το Symantec
Encryption Desktop (Μέρος 2)

Εισαγωγή
• Σε αυτή την άσκηση θα εφαρμόσετε κρυπτογραφικές
μεθόδους για δημιουργία κρυπτογραφημένων αρχείων
τόσο για προστασία της εμπιστευτικότητας όσο και για
προστασία της ακεραιότητας των δεδομένων που
περιέχονται σε αυτά.
• Θα χρησιμοποιήσετε το PGP Zip για να δημιουργήσετε, να
ανοίξετε και να τροποποιήσετε κρυπτογραφημένα και
συμπιεσμένα αρχεία τα οποία ονομάζονται PGP Zip
archives.
• Στα πλαίσια επίλυσης της συγκεκριμένης άσκησης θα
χρησιμοποιηθεί το χαρακτηριστικό PGP Zip του Symantec
Encryption Desktop.
Είδη αρχείων PGP Zip (1/2)
• Στο Symantec Encryption Desktop μπορείτε να
δημιουργήσετε τεσσάρων ειδών αρχεία PGP Zip.
• Συμπιεσμένα και κρυπτογραφημένα αρχεία με το δημόσιο
κλειδί ενός ή περισσοτέρων παραληπτών (οι οποίοι
πρέπει να έχουν εγκατεστημένο το Symantec Encryption
Desktop).
• Συμπιεσμένα και κρυπτογραφημένα αρχεία με χρήση
passphrase ( ο/οι παραλήπτες πρέπει να έχουν
εγκατεστημένο το Symantec Encryption Desktop και
να γνωρίζουν την passphrase).

Είδη αρχείων PGP Zip (2/2)


• Συμπιεσμένα και κρυπτογραφημένα αρχεία SDA - Self
Decrypting Archives, με χρήση passphrase (ο/οι
παραλήπτες δεν χρειάζεται να έχουν εγκατεστημένο
το Symantec
• Encryption Desktop αλλά πρέπει να έχουν λειτουργικό
Microsoft Windows και να γνωρίζουν το passphrase).
• Μη κρυπτογραφημένα, μη συμπιεσμένα αλλά
υπογεγραμμένα αρχεία, ώστε ο παραλήπτης να μπορεί να
επικυρώσει την ταυτότητα του αποστολέα.
Δημιουργία PGP Zip αρχείου
(1/5)
• Ανοίξτε το Symantec Encryption Desktop και επιλέξτε το
PGP Zip control Box.
• Επιλέξτε New PGP Zip.
• Κάντε ένα από τα ακόλουθα:
– Για να προσθέσετε έναν ολόκληρο φάκελο στο PGP Zip αρχείο
κάντε κλικ στο Add directory
– Για να προσθέσετε ένα αρχείο στο PGP Zip αρχείο κάντε κλικ στο
Add files
– Εναλλακτικά μπορείτε να χρησιμοποιήσετε την μέθοδο “drag
and drop” για να προσθέσετε ένα νέο αρχείο στο ενεργό
παράθυρο του PGP Zip.

Δημιουργία PGP Zip αρχείου


(2/5)
• Για να δημιουργήσετε ένα νέο αρχείο PGP Zip:
– Για να διαγράψετε με ασφάλεια το αρχικό αρχείο
αφού έχει δημιουργηθεί το αρχείο PGP Zip επιλέξτε
Shred Originals.
– Για να καθορίσετε ιδιαίτερες λεπτομέρειες της
συγκεκριμένης υπηρεσίας επιλέξτε PGP Zip advanced
options:
Δημιουργία PGP Zip αρχείου
(3/5)

Εικόνα 1. PGP Zip advanced options. Πηγή: Διδάσκων (2015).

Δημιουργία PGP Zip αρχείου


(4/5)
• Πατήστε Ok ή Cancel αν δεν θέλετε να αλλάξετε αυτές τις
ρυθμίσεις.
• Όταν τελειώσετε την επιλογή των αρχείων πατήστε Επόμενο.
• Επιλέξτε τον επιθυμητό τύπο κρυπτογράφησης (Εικόνα 2).
– Recipient Keys: Δημιουργεί συμπιεσμένα και κρυπτογραφημένα
αρχεία με το δημόσιο κλειδί ενός ή περισσοτέρων παραληπτών.
– Passphrase: Δημιουργεί συμπιεσμένα και κρυπτογραφημένα
αρχεία με χρήση passphrase.
– PGP Self-Decrypting Archive: Δημιουργεί συμπιεσμένα και
κρυπτογραφημένα αρχεία SDA- Self Decrypting Archives, με χρήση
passphrase.
– Sign Only: Δημιουργεί μη κρυπτογραφημένα, συμπιεσμένα και
υπογεγραμμένα αρχεία.
Δημιουργία PGP Zip αρχείου
(5/5)

Εικόνα 2. PGP Zip - Επιλογή τρόπου κρυπτογράφησης. Πηγή: Διδάσκων (2015).

Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (1/7)
• Ακολουθήστε τα 8 βήματα της δημιουργία PGP
Zip αρχείου.
• Επιλέξτε Recipient Keys και πατήστε Επόμενο.
• Εμφανίζεται το παράθυρο Add User Keys (Εικόνα
3).
Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (2/7)

Εικόνα 3. PGP Zip Recipient Keys - Επιλογή κλειδιών κρυπτογράφησης.


Πηγή: Διδάσκων (2015).

Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (3/7)
• Επιλέξτε τα κλειδιά των παραληπτών του PGP Zip
αρχείου. Κάντε ένα από τα ακόλουθα:
– Για να διαλέξετε κλειδί από τα κλειδιά που είναι στο δικό
σας Keyring , πατήστε το βελάκι της αναπτυσσόμενης
λίστας.
– Για να στείλετε το αρχείο σε παραλήπτη του οποίου το
κλειδί δεν έχετε πατήστε Add, οπότε και ανοίγει το
παράθυρο Recipient Selection (Εικόνα 4). Μπορείτε να
αναζητήσετε κλειδιά απευθείας από το PGP Global
Directory επιλέγοντας το αντίστοιχο πεδίο πάνω δεξιά και
εισάγοντας π.χ. το email του παραλήπτη που ψάχνετε στο
αντίστοιχο search box.
Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (4/7)

Εικόνα 4. PGP Zip Recipient Keys - Επιλογή κλειδιών εκτός PGP.


Πηγή: Διδάσκων (2015).

Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (5/7)
• Αφού επιλέξετε τους παραλήπτες πατήστε Ok.
• Πατήστε Επόμενο.
• Εμφανίζεται το παράθυρο Sign and Save (Εικόνα 5).
• Αν επιθυμείτε μπορείτε να καθορίστε το ιδιωτικό κλειδί
που θα υπογράψει το PGP Zip αρχείο.
• Επιλέξτε από το μενού Signing Key το ιδιωτικό κλειδί του
οποίου το passphrase χρειάζεται να πληκτρολογήσετε
στον χώρο passphrase.
• Σημείωση: Αν το passphrase του κλειδιού σας είναι
κρατημένη δεν χρειάζεται να την ξαναπληκτρολογήσετε.
Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (6/7)

Εικόνα 5. PGP Zip Recipient Keys - Sign and save. Πηγή: Διδάσκων (2015).

Κρυπτογράφηση με κλειδί
παραλήπτη - Recipient Keys (7/7)
• Επιλέξτε το όνομα του αρχείου και την θέση που
θα δημιουργηθεί από το μενού Browse.
• Πατήστε Επόμενο.
• Το αρχείο PGP Zip δημιουργήθηκε.
• Πατήστε Τέλος.
• Το αρχείο PGP Zip είναι έτοιμο για χρήση και
αποστολή.
Κρυπτογράφηση με passphrase
(1/2)
• Ακολουθήστε τα 8 βήματα της δημιουργία PGP Zip
αρχείου.
• Επιλέξτε Passphrase και πατήστε Επόμενο.
• Στο επόμενο παράθυρο πληκτρολογήστε δύο φορές το
passphrase που θέλετε να εισάγετε.
• Προσοχή: Αυτό το passphrase είναι μόνο για το PGP Zip
αρχείο. ∆εν πρέπει να είναι το passphrase του ζεύγους
κλειδιών σας και επίσης πρέπει να το γνωρίζει και ο
παραλήπτης.
• Πατήστε Επόμενο. Εμφανίζεται το παράθυρο Sign and
Save.

Κρυπτογράφηση με passphrase
(2/2)
• Αν επιθυμείτε καθορίστε το ιδιωτικό κλειδί που θα
υπογράψει το PGP Zip αρχείο. Επιλέξτε από το μενού
Signing Key το ιδιωτικό κλειδί του οποίου το passphrase
χρειάζεται να πληκτρολογήσετε στον χώρο passphrase.
• Σημείωση: Αν το passphrase του κλειδιού σας είναι
κρατημένο δεν χρειάζεται να το ξαναπληκτρολογήσετε.
• Επιλέξτε το όνομα του αρχείου και την θέση που θα
δημιουργηθεί από το μενού Browse.
• Πατήστε Επόμενο. Το αρχείο PGP Zip δημιουργήθηκε.
• Πατήστε Τέλος. Το αρχείο PGP Zip είναι έτοιμο για χρήση
και αποστολή.
Δημιουργία PGP SDA Zip
αρχείου (1/2)
• Ακολουθήστε τα 8 βήματα της δημιουργία PGP Zip
αρχείου.
• Επιλέξτε PGP Self-Decrypting Archive και πατήστε
Επόμενο.
• Στο επόμενο παράθυρο πληκτρολογήστε δύο φορές το
passphrase.
• Προσοχή: Αυτό το passphrase είναι μόνο για το PGP SDA
Zip αρχείο. ∆εν πρέπει να είναι το passphrase του ζεύγους
κλειδιών σας και επίσης πρέπει να το γνωρίζει και ο
παραλήπτης.

Δημιουργία PGP SDA Zip


αρχείου (2/2)
• Πατήστε Επόμενο. Εμφανίζεται το παράθυρο Sign and
Save.
• Επιλέξτε το όνομα του αρχείου και την θέση που θα
δημιουργηθεί από το μενού Browse.
• Πατήστε Επόμενο. Το αρχείο PGP Zip δημιουργήθηκε.
• Πατήστε Τέλος. Το αρχείο PGP SDA Zip είναι έτοιμο για
χρήση και αποστολή.
Κρυπτογράφηση μόνο για
υπογραφή αρχείου (1/2)
• Ακολουθήστε τα 8 βήματα της δημιουργία PGP Zip
αρχείου.
• Επιλέξτε Sign Only και πατήστε Επόμενο.
• Εμφανίζεται το παράθυρο Sign and Save.
• Καθορίστε το ιδιωτικό κλειδί που θα υπογράψει το PGP
Zip αρχείο. Επιλέξτε από το μενού Signing Key το ιδιωτικό
κλειδί του οποίου το passphrase χρειάζεται να
πληκτρολογήσετε στον χώρο passphrase.
• Σημείωση: Αν το passphrase του κλειδιού σας είναι
κρατημένο δεν χρειάζεται να το ξαναπληκτρολογήσετε.

Κρυπτογράφηση μόνο για


υπογραφή αρχείου (2/2)
• Επιλέξτε το όνομα του αρχείου και την θέση που θα
δημιουργηθεί από το μενού Browse.
• Αν θέλετε να δημιουργήσετε ξεχωριστή αρχείο με την
υπογραφή επιλέξτε Save Detached Signatures.
• Πατήστε Επόμενο. Το αρχείο PGP Zip δημιουργήθηκε.
• Πατήστε Τέλος. Το αρχείο PGP Sing Only Zip είναι έτοιμο
για χρήση και αποστολή.
Άνοιγμα ενός PGP Zip αρχείου
(1/3)
• Κάντε διπλό κλικ πάνω στο PGP Zip αρχείο (έχει
επέκταση .pgp)
– Αν το PGP Zip αρχείο είναι ασφαλισμένο με κλειδί
εμφανίζεται το παράθυρο PGP Enter Passphrase for
Listed Key.
– Αν το PGP Zip αρχείο είναι ασφαλισμένο με passphrase
εμφανίζεται το παράθυρο PGP Enter Passphrase.

Άνοιγμα ενός PGP Zip αρχείου


(2/3)
• Για να εξάγετε αντικείμενα κάντε ένα από τα ακόλουθα:
– Για να εξάγετε ένα αντικείμενο, με δεξί κλικ πάνω σε αυτό
επιλέξτε Extract.
– Για να εξάγετε περισσότερα αντικείμενα, με δεξί κλικ
πάνω σε αυτά επιλέξτε Extract.
• Εξακριβώστε τον φάκελο στον οποίο θέλετε να εξάγετε
το/τα αντικείμενα και πατήστε Ok.
• Για να δημιουργήσετε έναν καινούριο φάκελο επιλέξτε
New Folder.
• Τα αρχεία εξάγονται στην επιλεγμένη τοποθεσία.
Άνοιγμα ενός PGP Zip αρχείου
(3/3)
• Κάντε διπλό κλικ πάνω στο PGP SDA Zip αρχείο (έχει
επέκταση .exe).
• Ανοίγει το παράθυρο PGP Self Decrypting Archive - Enter
Passphrase.
• Επιβεβαιώστε την τοποθεσία που θα γίνει η εξαγωγή του
αρχείου ή επιλέξτε Browse για να ορίσετε κάποια άλλη.
• Πληκτρολογήστε την passphrase του PGP SDA Zip αρχείου
και πατήστε Ok.

Επιβεβαίωση υπογεγραμμένων
PGP Zip αρχείων (1/3)
• Αν λάβετε ένα υπογεγραμμένο PGP Zip αρχείο πρέπει
να εξακριβώσετε την υπογραφή του αποστολέα.
• Στο περιβάλλον του PGP Desktop, επιλέξτε από το menu
Tools -> Verify Files.
• Ανοίγει το παράθυρο αναζήτησης.
• Βρείτε το υπογεγραμμένο .pgp αρχείο και πατήστε
Άνοιγμα.
Επιβεβαίωση υπογεγραμμένων
PGP Zip αρχείων (2/3)
• Αν το αρχείο είναι κρυπτογραφημένο (εκτός από το να
είναι υπογεγραμμένο) παρακινήστε να πληκτρολογήσετε
την passphrase του ιδιωτικού κλειδιού σας ή
οποιουδήποτε ιδιωτικού κλειδιού που ανταποκρίνεται
στο δημόσιο κλειδί με το οποίο κρυπτογραφήθηκε το PGP
Zip αρχείο.
• Αν δεν μπορείτε να το κάνετε αυτό πατήστε Cancel.
• Πληκτρολογήστε την passphrase του παραπάνω ιδιωτικού
κλειδιού.
• Πατήστε Ok.

Επιβεβαίωση υπογεγραμμένων
PGP Zip αρχείων (3/3)
• Τα περιεχόμενα του αρχείου σώζονται στον ίδια
θέση με το PGP Zip αρχείο και το παράθυρο
Verification History σας πληροφορεί για την
επαλήθευση της υπογραφής.
• Για να καθαρίσετε το ιστορικό του Verification History
επιλέξτε Clear Verification History.
ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 3: Ψηφιακά πιστοποιητικά

Σκοποί ενότητας
• Σκοπός αυτού του εργαστηρίου είναι η
απόκτηση εμπειρίας πάνω στην χρήση των
συναρτήσεων κατακερματισμού στα πλαίσια
της εξασφάλισης και του ελέγχου της
ακεραιότητας των δεδομένων αλλά και της
αυθεντικοποίησης του ιδιοκτήτη τους.
• Επιπλέον, θα γίνει μια γνωριμία των ψηφιακών
πιστοποιητικών (digital certificates).
Περιεχόμενα ενότητας
• Ψηφιακά πιστοποιητικά.
• Μορφή ψηφιακού πιστοποιητικού.
• Συναρτήσεις κατακερματισμού - hash functions.
• Ασκήσεις.
• Βιβλιογραφία.

Ψηφιακά πιστοποιητικά (1/10)


• Προκειμένου να καταλάβουμε την αξία της
χρήσης των ψηφιακών πιστοποιητικών ας
εξηγήσουμε πως αυτά χρησιμοποιούνται στο
πρωτόκολλο TLS/SSL.
• TLS σημαίνει Transport Layer Security.
• Το πρωτόκολλο TLS/SSL είναι ένα σύνολο
κανόνων που χρησιμοποιείται τόσο από τους
clients όσο και από servers όταν κάποιος client
επισκεφτεί έναν Ιστότοπο https.
Ψηφιακά πιστοποιητικά (2/10)
• Πριν ο client και o server ξεκινήσουν την
πραγματική επικοινωνία μεταξύ τους θα πρέπει
να πραγματοποιήσουν την λεγόμενη «χειραψία
TLS».
• Το αποτέλεσμα αυτής της χειραψίας είναι η
δημιουργία ενός κλειδιού συνόδου (session key)
το οποίο θα επιτρέπει την κρυπτογραφημένη
αποστολή δεδομένων μεταξύ του client και του
server.

Ψηφιακά πιστοποιητικά (3/10)


• Στην ουσία δηλαδή ο client και ο server μπορούν να
χρησιμοποιήσουν το κλειδί συνόδου έτσι ώστε να
κρυπτογραφούν μηνύματα που μόνο όποιος έχει το κλειδί
συνόδου μπορεί να αποκρυπτογραφήσει.
• Με αυτόν τον τρόπο προστατεύουν τα δεδομένα που
ανταλλάσσονται έτσι ώστε να μην μπορούν να
αναγνωστούν από τρίτους.
• Στην περίπτωση αυτή η κρυπτογραφία ονομάζεται
συμμετρική, εφόσον απαιτείται το ίδιο κλειδί για την
κρυπτογράφηση και αποκρυπτογράφηση των δεδομένων
(σε αντίθεση με την ασύμμετρη κρυπτογραφία).
Ψηφιακά πιστοποιητικά (4/10)
• Ας δούμε όμως λίγο πιο αναλυτικά πως ακριβώς
εκτελείται μια ασφαλής ανταλλαγή δεδομένων σε μια
τέτοια περίπτωση.
• Ας υποθέσουμε ότι θέλετε να συνδεθείτε
χρησιμοποιώντας ένα web browser (client) σε έναν
Iστότοπο χρησιμοποιώντας https.
• Για να δημιουργήσει ο browser το κλειδί συνόδου θα
πρέπει πρώτα να σιγουρευτεί οτι προσπαθεί όντως να
συνδεθεί με ένα https website και ότι τα άτομα ή η
εταιρεία που σχετίζονται με το website είναι όντως αυτά
που ισχυρίζονται ότι είναι.

Ψηφιακά πιστοποιητικά (5/10)


• Για να γίνει αυτό, κατά την διάρκεια της TLS
χειραψίας, ο browser αναζητεί στο website το
ψηφιακό του πιστοποιητικό.
• Αν το βρει, το συγκρίνει τα πιστοποιητικά που
υπάρχουν ενσωματωμένα στην λίστα του, τα
οποία θεωρούνται έμπιστα και αν βρίσκεται στην
λίστα η χειραψία συνεχίζεται και δημιουργείται
το κλειδί συνόδου.
Ψηφιακά πιστοποιητικά (6/10)
• Στην λίστα με τα έμπιστα πιστοποιητικά μπορούν οι
χρήστες να προσθέτουν και επιπλέον ψηφιακά
πιστοποιητικά τα οποία θεωρούν οι ίδιοι έμπιστα (π.χ.
στον Mozilla μπορούμε να προσθέσουμε ένα
πιστοποιητικό στην λίστα με τα έμπιστα πιστοποιητικά
επιλέγοντας Options -> Advanced).
• Σε περίπτωση που το πιστοποιητικό που έχει λάβει ο
browser δεν υπάρχει στην λίστα, τότε ο χρήστης του
browser καλείται με δική του ευθύνη να συνεχίσει ή όχι
την διαδικασία της χειραψίας.

Ψηφιακά πιστοποιητικά (7/10)


• Από την μεριά ενός server, αν θέλουμε κάποιος
Ιστότοπος να παρέχει πιστοποιητικά τα οποία
ενσωματώνονται στις λίστες των εμπορικών
browsers, τότε θα πρέπει αυτά να έχουν
υπογραφεί από μία έμπιστη certificate authority
(CA). Η υπογραφή αυτή επιβεβαιώνει οτι το
ΗTTPS website χρησιμοποιεί δημόσιο κλειδί το
οποίο αντιστοιχεί σε ένα ιδιωτικό κλειδί του
οποίου κάτοχος είναι η εταιρεία ή το άτομο στο
οποίο ανήκει το website.
Ψηφιακά πιστοποιητικά (8/10)
• Όταν λοιπόν κάποια εταιρεία ή και ιδιώτης
επιθυμεί να πιστοποιηθεί ψηφιακά θα πρέπει να
πληρώσει μια CA για αυτό.
• Υπάρχουν τρεις διαφορετικές κατηγορίες,
ανάλογα με την ισχύ της πιστοποίησης και τον
τρόπο που γίνεται η πιστοποίηση.

Ψηφιακά πιστοποιητικά (9/10)


• Κλάσης 1 (Domain Validation): O αιτούμενος την
πιστοποίηση θα πρέπει να αποδείξει οτι έχει δικαιώματα
διαχείρισης στον Ιστότοπο (domain name) π.χ. το email του
είναι αυτό το οποίο συνδέεται με το domain name του
Ιστότοπου.
• Κλάσης 2 (Extended Validation): Η εταιρεία-αιτούμενη την
πιστοποίηση θα πρέπει να αποδείξει i) ότι έχει δικαιώματα
διαχείρισης στον Ιστότοπο (domain name) και ii) την νομική
υπόσταση της εταιρείας.
• Κλάσης 3 (Extended Validation): Εκτός από τα κριτήρια των
2 προηγούμενων κλάσεων απαιτείται και η φυσική
παρουσία του ατόμου ή εκπροσώπου της εταιρείας στην CA.
Ψηφιακά πιστοποιητικά (10/10)
• H CA στην συνέχεια ελέγχει τα στοιχεία του
αιτούμενου και αν εκείνος πληροί τις
προϋποθέσεις, υπογράφει ψηφιακά το
πιστοποιητικό.
• Εφόσον οι CAs θεωρούνται έμπιστες οντότητες,
τα ψηφιακά πιστοποιητικά τα οποία υπογράφουν
θεωρούνται επίσης έμπιστα.

Μορφή ψηφιακού
πιστοποιητικού (1/9)
• Το ποιό κοινό standard για ψηφιακά
πιστοποιητικά είναι το X.509.
• Ένα ψηφιακό πιστοποιητικό περιέχει τις εξής
πληροφορίες:
– Serial Number: Χρησιμοποιείται για την μοναδική
αναγνώριση του πιστοποιητικού.
– Subject: Το άτομο ή η οντότητα για το οποίο εκδόθηκε
το πιστοποιητικό.
Μορφή ψηφιακού
πιστοποιητικού (2/9)
• Ένα ψηφιακό πιστοποιητικό περιέχει τις εξής
πληροφορίες:
– Signature Algorithm: Ο αλγόριθμος που
χρησιμοποίησε η CA για να υπογράψει το
πιστοποιητικό. Issuer: Η οντότητα που επαλήθευσε τις
πληροφορίες του πιστοποιητικού και εξέδωσε το
πιστοποιητικό. Valid-From: Η ημερομηνία από την
οποία ξεκινάει η ισχύς του πιστοποιητικού.
– Valid-To: Η ημερομηνία λήξης του πιστοποητικού.
– Key-Usage: Purpose of the public key (e.g.
encipherment, signature, certificate signing...).

Μορφή ψηφιακού
πιστοποιητικού (3/9)
• Ένα ψηφιακό πιστοποιητικό περιέχει τις εξής
πληροφορίες:
– Public Key: Το δημόσιο κλειδί του Subject του
πιστοποιητικού.
– Thumbprint Algorithm: Η συνάρτηση
κατακερματισμού (hash) που χρησιμοποιήθηκε στο
πιστοποιητικό.
– Thumbprint: Το αποτέλεσμα της συνάρτησης
κατακερματισμού έτσι ώστε να διαπιστωθεί εάν έχει
γίνει τροποποίηση του πιστοποιητικού
Μορφή ψηφιακού
πιστοποιητικού (4/9)
• Οι διακομιστές που υποστηρίζουν HTTPS και SSL είναι
απαραίτητο να κατέχουν ένα ψηφιακό πιστοποιητικό το
οποίο να αποδεικνύει την αυθεντικότητα του δημοσίου
κλειδιού του διακομιστή.
• Για να δείτε ένα παράδειγμα ψηφιακού πιστοποιητικού
διακομιστή επισκεφτείτε την σελίδα του Discover Card.
• Στη συνέχεια επιλέξτε “DFS Services” αριστερά από την
γραμμή διευθύνσεων (Εικόνα 1).

Εικόνα 1. Επιλογή DFS Services της www.discovercard.com σε Google Chrome.


Πηγή: Διδάσκων (2015).

Μορφή ψηφιακού
πιστοποιητικού (5/9)
• Ο τρόπος παρουσίασης του πιστοποιητικού διαφέρει
ανάλογα με τον τύπο του browser που χρησιμοποιείτε.
– Π.χ σε Mozilla θα βλέπετε την Εικόνα 2.

Εικόνα 2. Προβολή βασικών στοιχείων ψηφιακού πιστοποιητικού σε Mozilla.


Πηγή: Διδάσκων (2015).
Μορφή ψηφιακού
πιστοποιητικού (6/9)
• Αν επιλέξετε “Περισσότερα για αυτήν την
ιστοσελίδα…” θα σας ανοίξει το παράθυρο της
Εικόνας 3.
• Στη συνέχεια, επιλέγοντας Προβολή
πιστοποιητικού μπορείτε να δείτε το περιεχόμενο
του ψηφιακού πιστοποιητικού του
συγκεκριμένου Ιστότοπου (Εικόνα 4).

Μορφή ψηφιακού
πιστοποιητικού (7/9)

Εικόνα 3. Πληροφορίες σελίδα σε Mozilla. Πηγή: Διδάσκων (2015).


Μορφή ψηφιακού
πιστοποιητικού (8/9)

Εικόνα 4. Το ψηφιακό
πιστοποιητικό της
www.discovercard.com.
Πηγή: Διδάσκων (2015).

Μορφή ψηφιακού
πιστοποιητικού (9/9)
• Επιλέγοντας Λεπτομέρειες μπορείτε να δείτε
επιπλέον χαρακτηριστικά του ψηφιακού
πιστοποιητικού.
• Τέλος, μπορείτε να επιλέξετε το κουμπί
“Εξαγωγή…” σε περίπτωση που θέλετε να εξάγετε
το πιστοποιητικό στον υπολογιστή σας.
Συναρτήσεις κατακερματισμού -
hash functions (1/11)
• Στα προηγούμενα εργαστήρια που μιλήσαμε για την
κρυπτογράφηση δημόσιου κλειδιού είδαμε ότι υπάρχουν
δυο εφαρμογές της:
– Για την κρυπτογράφηση δεδομένων έτσι ώστε να μπορούν αυτά
να αποσταλούν στον παραλήπτη με ασφάλεια.
– Για την δημιουργία της ψηφιακής υπογραφής.
• Η χρήση της κρυπτογράφησης δημόσιου κλειδιού σε
μεγάλα μηνύματα για λόγους αυθεντικοποίησης του
ιδιοκτήτη και επικύρωσης της ορθότητας των
περιεχομένων του μηνύματος είναι μια αρκετά
χρονοβόρα διαδικασία.

Συναρτήσεις κατακερματισμού -
hash functions (2/11)
• Όταν υπογράφουμε ψηφιακά ένα έγγραφο, συνήθως (όχι
όμως και απαραίτητα) δεν αλλάζουμε την μορφή του
αρχικού εγγράφου έτσι ώστε να μπορεί οποιοσδήποτε να
το διαβάζει και απλά «επισυνάπτουμε» στο έγγραφο την
ψηφιακή υπογραφή η οποία δεν είναι τίποτα άλλο από
ένα μικρό τμήμα δεδομένων.
• Έτσι, ο παραλήπτης θα μπορεί να εξακριβώσει τόσο την
εγκυρότητα του αποστολέα του μηνύματος (στον οποίο
ανήκει η υπογραφή), όσο και την ακεραιότητα των
δεδομένων του μηνύματος (ότι δηλαδή τα δεδομένα του
μηνύματος δεν έχουν τροποποιηθεί).
Συναρτήσεις κατακερματισμού -
hash functions (3/11)
• Για να πραγματοποιηθεί η παραπάνω διαδικασία θα
πρέπει αρχικά να μετατραπεί το αρχικό έγγραφο σε ένα
μικρό, σταθερού μεγέθους τμήμα δεδομένων που
ονομάζεται αποτύπωμα (fingerprint) ή σύνοψη (digest) ή
hash code.
• Αυτό πραγματοποιείται μέσω μιας συνάρτησης
κατακερματισμού η οποία λαμβάνει το αρχικό έγγραφο
και παράγει την σύνοψη με τέτοιο τρόπο ώστε κάθε bit
της σύνοψης να εξαρτάται από όσο το δυνατόν
περισσότερα bits του εγγράφου (Εικόνα 5).

Συναρτήσεις κατακερματισμού -
hash functions (4/11)

Εικόνα 5. Συνάρτηση κατακερματισμού και σύνοψη μηνύματος.


Πηγή: Διδάσκων (2015).
Συναρτήσεις κατακερματισμού -
hash functions (5/11)
• Πρακτικά, μια συνάρτηση κατακερματισμού δημιουργεί
μια μια-προς-μια αντιστοιχία ανάμεσα στο αρχικό
έγγραφο και την σύνοψη έτσι ώστε αν κάποιος
τροποποιήσει το αρχικό έγγραφο να αλλάζει και η
σύνοψή του.
• Επιπλέον, αν κάποιος εφαρμόσει επανειλημμένα την ίδια
συνάρτηση κατακερματισμού στο ίδιο έγγραφο, τότε η
σύνοψη που παράγεται θα πρέπει να είναι πάντα η ίδια.
• Οι SHA-1 και MD5 είναι και οι 2 από τις ευρέως
χρησιμοποιούμενες συναρτήσεις κατακερματισμού.

Συναρτήσεις κατακερματισμού -
hash functions (6/11)
• Η MD5 παράγει συνόψεις των 128 bits ενώ η
SHA-1 των 160 bits.
• Ο αριθμός των bits των συνόψεων που
παράγονται θα πρέπει αν είναι αρκετά μεγάλος
έτσι ώστε να μειώνει την πιθανότητα να
παραχθεί η ίδια σύνοψη από δυο διαφορετικά
έγγραφα.
Συναρτήσεις κατακερματισμού -
hash functions (7/11)
• Η Εικόνα 6 απεικονίζει την διαδικασία της παραγωγής της
ψηφιακής υπογραφής ενός εγγράφου από τον
συγγραφέα του.
• Η συνάρτηση κατακερματισμού παράγει από το αρχικό
έγγραφο την σύνοψη, η οποία στην συνέχεια
κρυπτογραφείται με το ιδιωτικό κλειδί του συγγραφέα
παράγοντας την ψηφιακή υπογραφή.
• Η ψηφιακή υπογραφή στην συνέχεια επισυνάπτεται στο
αρχικό έγγραφο.

Συναρτήσεις κατακερματισμού -
hash functions (8/11)

Εικόνα 6. Η διαδικασία της δημιουργίας της ψηφιακής υπογραφής.


Πηγή: Διδάσκων (2015).
Συναρτήσεις κατακερματισμού -
hash functions (9/11)
• Η Εικόνα 7 απεικονίζει την διαδικασία της επαλήθευσης
της ψηφιακής υπογραφής, περιγράφοντας τόσο την
αυθεντικοποίηση του συγγραφέα αλλά και την
επαλήθευση της ακεραιότητας των δεδομένων.
• Το υπογεγραμμένο έγγραφο χωρίζεται σε 2 μέρη:
– Το αρχικό έγγραφο και την ψηφιακή υπογραφή.
• Στη συνέχεια εφαρμόζεται η ίδια συνάρτηση
κατακερματισμού έτσι ώστε να παραχθεί η σύνοψη του
αρχικού εγγράφου.

Συναρτήσεις κατακερματισμού -
hash functions (10/11)
• Η τελευταία συγκρίνεται με την ληφθείσα ψηφιακή
υπογραφή η οποία έχει πρώτα αποκρυπτογραφηθεί με το
δημόσιο κελιδί του συγγραφέα – αποστολέα.
• Αν οι δυο συνόψεις είναι πανομοιότυπες τότε το αρχικό
έγγραφο είναι όντως του αποστολέα και, επιπλέον, τα
περιεχόμενά του είναι άθικτα.
• Σε κάθε άλλη περίπτωση το αρχικό έγγραφο έχει
τροποποιηθεί.
Συναρτήσεις κατακερματισμού -
hash functions (11/11)

Εικόνα 7. Αυθεντικοποίηση και έλεγχος ακεραιότητας του αρχικού εγγράφου.


Πηγή: Διδάσκων (2015).

Ασκήσεις (1/2)
• sha1sum.exe.
– Δημιουργείστε στην επιφάνεια εργασίας ένα νέο file1.txt
αρχείο με τυχαίο περιεχόμενο.
– Κατεβάστε από την ηλεκτρονική τάξη το αρχείο
sha1sum.exe και αποθηκεύστε το και αυτό στην επιφάνεια
εργασίας.
– Ανοίξτε ένα cmd και μεταφερθείτε στο path όπου
αποθηκεύσατε τα αρχεία των προηγούμενων ερωτημάτων
(Επιφάνεια Εργασίας).
– Εκτελέστε στο cmd την εντολή: sha1sum file1.txt . Θα
δημιουργήσετε έτσι την σύνοψη του file1.txt την οποία και
θα δείτε στο cmd (στο δεκαεξαδικό).
Ασκήσεις (2/2)
• Hashcalc.
– Κατεβάστε και εγκαταστήστε από την ηλεκτρονική
τάξη το HashCalc.
– Χρησιμοποιείστε το HashCalc για να ελέγξετε την
ορθότητα της σύνοψης του file1.txt.
– Επιλέξτε να κατεβάσετε από το Web ένα από τα
αρχεία που βρίσκονται στην σελίδα:
• http://www.eclipse.org/downloads/.
• Επιλέξτε οποιοδήποτε αρχείο.
– Ελέγξτε στο HashCalc την ορθότητα των περιεχομένων
του αρχείου.

ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 4: Κρυπτανάλυση - Στεγανογραφία


Σκοποί ενότητας
• Σκοπός του εργαστηρίου είναι η απόκτηση
εμπειρίας στη χρήση εργαλείων
κρυπτανάλυσης και στεγανογραφίας.

Περιεχόμενα ενότητας
• Κρυπτανάλυση με το Advanced Archive Password
Recovery.
• Στεγανογραφία.
• Στεγανογραφία εικόνας.
• Στεγανογραφία ήχου.
• Visual Cryptography.
• Easter Eggs.
• Βιβλιογραφία.
Κρυπτανάλυση με το Advanced
Archive Password Recovery (1/6)
• Κρυπτανάλυση (cryptanalysis) είναι η διαδικασία της
μελέτης και ανεύρεσης μεθόδων και εργαλείων για την
κατανόηση του περιεχομένου μιας κρυπτογραφημένης
πληροφορίας, χωρίς να υπάρχει καμία γνώση σχετικά με
τον τρόπο της κρυπτογράφησης.
• Η κρυπτογραφημένη αυτή πληροφορία ονομάζεται
κρυπτογράφημα.
• Tο Advanced Archive Password Recovery είναι ένα
γρήγορο εργαλείο που χρησιμοποιεί επιθέσεις brute force
και dictionary για να σπάσει ή να βρει κωδικούς winzip ή
winrar αρχείων.

Κρυπτανάλυση με το Advanced
Archive Password Recovery (2/6)
• Η επίθεση brute force (ωμής βίας) στην ουσία
αναφέρεται στην εξαντλητική δοκιμή όλων των πιθανών
κλειδιών που παράγουν ένα κρυπογράφημα μέχρι να
αποκαλυφθεί το αρχικό μήνυμα.
• Γενικά μπορεί να χρησιμοποιηθεί σε οποιοδήποτε είδος
κρυπτανάλυσης.
• Συνήθως ο επιτιθέμενος ξεκινάει με την δοκιμή των πιο
πιθανών κλειδιών έτσι ώστε να μειώσει τον χρόνο της
κρυπτανάλυσης.
Κρυπτανάλυση με το Advanced
Archive Password Recovery (3/6)
• Για τον λόγο αυτό η δημιουργία του κρυπτογραφήματος
θα πρέπει να χρησιμοποιεί τέτοιο κλειδί ώστε ο χρόνος
που θα απαιτεί για να σπάσει το κλειδί με την μέθοδο
brute-force να είναι τόσο μεγάλος που να μην έχει νόημα
σε αυτή την περίπτωση η κρυπτανάλυση.
• Από την άλλη η επίθεση dictionary βασίζεται στην
προσπάθεια να σπάσει το κλειδί ή passphrase του
κρυπτογραφήματος με την δοκιμή λέξεων από μια έτοιμη
λίστα που ονομάζουμε λεξικό.
• Το λεξικό είναι ένα απλό αρχείο (.dic) το οποίο περιέχει
μια λίστα με τις πιο πιθανές λέξεις που θα μπορούσαν να
χρησιμοποιηθούν.

Κρυπτανάλυση με το Advanced
Archive Password Recovery (4/6)
• Οι χρήστες γενικά έχουν την τάση να χρησιμοποιούν
μικρά passwords (έτσι ώστε να τα θυμούνται), που
συνήθως περιέχουν λέξεις που να έχουν νόημα στις
οποίες απλά, για παράδειγμα, προσθέτουν στο τέλος ένα
ψηφίο π.χ. το όνομά τους και έναν αριθμό στο τέλος –
maria12.
• Όλα τα προηγούμενα παραδείγματα passwords είναι
πολύ εύκολο να αποκαλυφθούν από μία dictionary
επίθεση που βασίζεται σε ένα καλό λεξικό.
Κρυπτανάλυση με το Advanced
Archive Password Recovery (5/6)
• Για την εγκατάσταση του εργαλείου κατεβάστε τα 2
αρχεία setup_part1και setup_part2 και αποσυμπιέστε τα.
• Εκτελέστε στο αρχείο setup.exe.
• Αντιγράψτε από την ηλεκτρονική τάξη τα αρχεία
dictionary.txt και Makbeth.zip σε ένα φάκελο στον τοπικό
υπολογιστή.
• Χρησιμοποιώντας την επίθεση brute force, προσπαθήστε
να ανακτήσετε τον κωδικό του αρχείου Makbeth.zip.
• Θεωρήστε ότι το password αποτελείται από 4 χαρακτήρες
οι οποίοι είναι μόνο γράμματα (κεφαλαία ή/και μικρά).

Κρυπτανάλυση με το Advanced
Archive Password Recovery (6/6)
• Υλοποιήστε μια επίθεση λεξικού στο παραπάνω
αρχείο.
• Ποια μέθοδος κρυπτανάλυσης είναι ποιο αποδοτική;
• Πόσοι είναι οι πιθανοί κωδικοί που πρέπει να
ελεγχθούν σε κάθε περίπτωση;
• Προτείνετε μέτρα προστασίας του password.
• Τι μορφή πρέπει να έχει ένα password για να
θεωρείται ασφαλές;
Στεγανογραφία (1/3)
• Στεγανογραφία ονομάζεται η επιστήμη της απόκρυψης
πληροφοριών μέσα σε άλλες πληροφορίες.
• Ιστορικά, υπήρξαν τεχνικές που χρησιμοποιούσαν αόρατο
μελάνι, λεπτές εγκοπές σε έγγραφα, ακόμα και μηνύματα
σε tattoos κάτω από το τριχωτό της κεφαλής του
αγγελιοφόρου.
• Στην σημερινή ψηφιακή εποχή, η επιστήμη της
στεγανογραφίας παρέχει τεχνικές απόκρυψης μηνυμάτων
σε ψηφιακά αρχεία ήχου, σε ψηφιακές εικόνες, ακόμα και
τεχνικές παραγωγής ψευδο-μηνυμάτων κειμένου τα
οποία στην ουσία κωδικοποιούν άλλα μηνύματα.

Στεγανογραφία (2/3)
• Ιδανικά, στην στεγανογραφία στο αρχικό μήνυμα δεν θα
πρέπει να διακρίνεται η ύπαρξη του κρυμμένου
μηνύματος.
• Γι’ αυτό και χρησιμοποιούνται σαν αρχικά μηνύματα
κυρίως αρχεία που περιέχουν πλεονασμό (redundancy)
δεδομένων (π.χ. απλά αρχεία ήχου και εικόνας).
• Γενικότερα, η στεγανογραφία λειτουργεί
αποτελεσματικότερα με συμπιεσμένα αρχεία όπως είναι
τα JPEG και MPEG.
Στεγανογραφία (3/3)
• Κάποια εργαλεία στεγανογραφίας μπορείτε να
βρείτε στα παρακάτω links:
– http://www.jjtc.com/Steganography/tools.html.
– http://www.securityfocus.com/tools/category/55.
– http://www.cotse.com/tools/stega.htm.

Στεγανογραφία εικόνας (1/2)


• Κατεβάστε από την ηλεκτρονική τάξη το steg.zip,
αποσυμπιέστε τα αρχεία σε έναν υποκατάλογο, και
εκτελέστε το S-Tools.exe.
• Κατεβάστε μια εικόνα GIF (όχι animated!) ή BMP από το
internet και ανοίξτε με το εργαλείο S-Tools επιλέγοντας
και σύροντάς τη στο παράθυρο του εργαλείο S-Tools.
• Για να κρύψετε κάποιο αρχείο, επιλέξτε και σύρετέ το
πάνω στην προηγούμενη εικόνα.
• Δώστε έναν κωδικό ως στεγανο-κλειδί και παρατηρήστε
την εικόνα με το ένθετο αρχείο. Βλέπετε κάποια αλλαγή;
Υπάρχει διαφορά ως προς το μέγεθος του αρχείου;
Στεγανογραφία εικόνας (2/2)
• Δοκιμάστε να ενθέσετε άλλα, μεγαλύτερα αρχεία.
• Παράγετε τις SHA-1 συνόψεις μηνύματος των 2 αρχείων.
(Μπορείτε να χρησιμοποιήσετε ένα από τα εργαλεία π.χ.
το HashCalc που χρησιμοποιήσαμε στο προηγούμενο
εργαστήριο). Υπάρχει διαφορά ανάμεσα στις 2 συνόψεις;
Τι συμπέρασμα μπορείτε να βγάλετε από αυτό;
• Αφού ανοίξετε ένα στεγανο-φορέα (αρχική εικόνα), με
δεξί κλικ επιλέξτε “Reveal” για να εμφανιστεί το κρυμμένο
αρχείο.

Στεγανογραφία ήχου (1/3)


• Κατεβάστε από την ηλεκτρονική τάξη το
MP3Stego_1_1_18.zip και αποσυμπιέστε τα
αρχεία σε έναν υποκατάλογο.
• Επιπλέον, κατεβάστε τα αρχείο ήχου
original_file.wav και not_encrypted.mp3.
• Δημιουργήστε στον προηγούμενο υποκατάλογο
ένα αρχείο hidden.txt και γράψτε κάτι σε αυτό.
• Ανοίξτε ένα cmd και μπείτε στον υποκατάλογο.
Στεγανογραφία ήχου (2/3)
• Χρησιμοποιήστε την εντολή:
encode –E hidden.txt –P aT123 original_file.wav encrypted.mp3
• Η εντολή αυτή συμπιέζει το αρχείο ήχου original_file.wav
και κρύβει σε αυτό το hidden.txt χρησιμοποιώντας σαν
password το aT123. Το αποτέλεσμα αυτής της διαδικασίας
βρίσκεται στο encrypted.mp3 που δημιουργείται.
• Συγκρίνετε τον ήχο του encrypted.mp3 με αυτόν του
not_encrypted.mp3 που κατεβάσατε από την ηλεκτρονική
τάξη.
• Μπορείτε να καταλάβετε διαφορά στα δυο αρχεία;
Υπάρχει διαφορά στο μέγεθος των δυο αρχείων;

Στεγανογραφία ήχου (3/3)


• Χρησιμοποιήστε στo cmd την αντίστοιχη εντολή decode -X
-P aT123 encrypted.mp3.
• Η εντολή αυτή θα επιδιώξει να αποσυμπιέσει αρχικά το
.mp3 αρχείο στο αρχείο encrypted.mp3.pcm και στη
συνέχεια να εντοπίσει (αν υπάρχει) το κρυπτογραφημένο
κείμενο.
• Σε αυτή την περίπτωση, το κρυμμένο κείμενο
αποκρυπτογραφείται και αποσυμπιέζεται στο αρχείο
encrypted.mp3.txt.
Visual Cryptography (1/2)
• Μια τεχνική κρυπτογραφίας, που
πρωτοπαρουσιάστηκε το 1994, είναι η Οπτική
Κρυπτογραφία (Visual Cryptography).
• Προβλέπει την διαίρεση μιας πληροφορίας σε n
κομμάτια-εικόνες με τέτοιο τρόπο ώστε έχοντας
κανείς ένα ή m (m<n) κομμάτια να μην μπορεί να
εξάγει τα αρχικά δεδομένα και να είναι δυνατή
η ανάκτηση του πρωτότυπου χωρίς την χρήση
κάποιας μηχανής

Visual Cryptography (2/2)


• Στην ηλεκτρονική τάξη υπάρχουν 2 αρχεία, τα
shared1.bmp και shared2.bmp, τα οποία
αποτελούν κομμάτια μιας τέτοιας διαίρεσης.
• Είναι ακριβώς όσα χρειάζεστε για να ανακτήσετε
την αρχική πληροφορία.
– Μπορείτε να βρείτε το μήνυμα που είναι κρυμμένο;
• Υπόδειξη: Χρησιμοποιήστε το εργαλείο
VisualEncryptor και την μέθοδο Coalesce που
υπάρχει στην ηλεκτρονική τάξη.
Easter Eggs (1/4)
• Στα πλαίσια του λογισμικού, ένα Easter Egg είναι ένα
κρυμμένο στοιχείο που έχουν τοποθετήσει οι
προγραμματιστές στο λογισμικό που κατασκεύασαν.
• Συνήθως οι λόγοι ύπαρξης τους είναι απλά
διασκεδαστικοί.
• Το κρυμμένο στοιχείο μπορεί να είναι από μια κρυμμένη
λίστα με τα ονόματα των προγραμματιστών, έως και μια
κρυμμένη εντολή, ένα ανέκδοτο ή ένα αστείο animation.

Easter Eggs (2/4)


• Ένα πραγματικό Easter Egg θα πρέπει να πληροί τα
παρακάτω κριτήρια:
– Να είναι ένα μη καταγεγραμμένο, κρυφό και όχι προφανές
στοιχείο.
– Να είναι ένα αναπαραγώγιμο (reproducible) στοιχείο. Αυτό
υπονοεί ότι χρήστες οι οποίοι έχουν στα χέρια τους το ίδιο
λογισμικό ή συνδυασμό λογισμικών, θα πρέπει μα μπορούν
να παράγουν το ίδιο Easter Egg.
– Να έχει δημιουργηθεί για προσωπικούς λόγους.
– Να μην είναι κακόβουλο.
– Να είναι διασκεδαστικό-αστείο.
Easter Eggs (3/4)
• Οι λόγοι για τους οποίους οι προγραμματιστές
δημιουργούν τα Easter Eggs ποικίλλουν.
• Για παράδειγμα, κάποιοι τα χρησιμοποιούν σαν
υπογραφή στις δημιουργίες τους, ενώ άλλοι απλά για να
προσθέσουν κάτι προσωπικό.
• Οι περισσότερες εταιρείες δεν επιτρέπουν την
δημιουργία Easter Eggs στα προϊόντα τους και
ισχυρίζονται ότι θ προχωρήσουν στην αφαίρεση
οποιουδήποτε Easter Egg ανακαλυφθεί στα λογισμικά
τους.

Easter Eggs (4/4)


• Παραδείγματα Easter Eggs μπορείτε να βρείτε στη σελίδα
http://www.eeggs.com/tree/153.html.
• Για να αναπαράγετε ένα παράδειγμα Easter Egg ανοίξτε ένα
έγγραφο word, πληκτρολογήστε =rand(900,900) και στη
συνέχεια πατήστε Enter.
• Περιμένετε λίγα δευτερόλεπτα.
• Ξαναπροσπαθήστε αλλάζοντας τις αριθμητικές τιμές της rand.
• Τι νόημα έχει κάθε μια από τις αριθμητικές τιμές; Επιπλέον,
πληκτρολογήστε =rand.old() και πατήστε Enter.
• Σημείωση: Τα Easter Eggs που περιγράφθηκαν δεν
λειτουργούν σε όλες τις εκδόσεις του Office.
ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 5: Ασφάλεια Δικτύων

Σκοποί ενότητας
• Αυτή η εργαστηριακή ενότητα
πραγματεύεται ζητήματα σχετικά με την
ασφάλεια δικτύων.
Περιεχόμενα ενότητας
• Σάρωση δικτύων.
• Αντίμετρα έναντι του ping.
• Προσδιορισμός των υπηρεσιών που τρέχουν σε ένα
σύστημα.
• Κατάσταση θύρας.
• Τεχνικές σάρωσης θυρών.
• Βιβλιογραφία.

Σάρωση δικτύων (1/5)


• Ένα από τα πιο βασικά βήματα στην απεικόνιση ενός
δικτύου είναι η εκτέλεση μιας αυτοματοποιημένης
σάρωσης χρησιμοποιώντας το εργαλείο ping σε μια
διεύθυνση ή σε ένα εύρος IP διευθύνσεων ενός δικτύου
έτσι ώστε να προσδιοριστεί το εάν είναι ενεργές
μεμονωμένες συσκευές ή συστήματα.
• Το ping χρησιμοποιείται παραδοσιακά για να στέλνει
πακέτα ICMP ECHO σε ένα σύστημα - στόχο σε μια
προσπάθεια να πάρει μια απόκριση ICMP ECHO RELY που
αποδεικνύει ότι το σύστημα-στόχος είναι ενεργό.
Σάρωση δικτύων (2/5)
• Αν και το ping είναι αποτελεσματικό σε ένα μικρό ή
μεσαίου μεγέθους δίκτυο (Class C ή Class B), είναι
αναποτελεσματικό για μεγαλύτερα, επιχειρηματικά
δίκτυα εφόσον μπορεί να χρειασθεί ώρες, αν όχι μέρες
για να ολοκληρωθεί.
• Το ping δίνει στην πραγματικότητα 3 βασικές
πληροφορίες σχετικά με τον προορισμό:
– Το αν υπάρχει πρόσβαση σε αυτόν, την κατάσταση του δικτύου
και την απόσταση από τον προορισμό.

Σάρωση δικτύων (3/5)


• Όσον αφορά την προσβασιμότητα ενός host, το ping
επιδεικνύει το αν ήρθε ή όχι απάντηση ςτα ICMP ECHO
REQUESTS που έχει στείλει.
• Βέβαια το να μην πάρει απάντηση στα ICMP ECHO
REQUESTS δεν σημαίνει απαραίτητα και ότι κάποιος host
δεν είναι ενεργός.
• Μπορείτε να σκεφτείτε πιθανές περιπτώσεις στις οποίες
το ping δεν θα πάρει απάντηση στα ICMP ECHO
REQUESTS που έχει στείλει;
Σάρωση δικτύων (4/5)
• Για τα 2 τελευταία στοιχεία το ping μας δίνει την τιμή 2
μεταβλητών, του RTT και του TTL.
• Το RTT (Round Trip Time) είναι ο χρόνος που χρειάζεται
για να σταλεί ένα ICMP ECHO REQUEST μέχρι και να έρθει
η απάντηση ICMP ECHO REPLY.
• Υψηλές τιμές του RTT σημαίνουν και χαμηλή απόδοση του
δικτύου.
• Ποιές είναι οι παράμετροι οι οποίες πιστεύετε ότι
επηρεάζουν το RTT;

Σάρωση δικτύων (5/5)


• Από την άλλη το TTL (Time to Live) μας φανερώνει τον αριθμό
των routers ανάμεσα στην πηγή και τον προορισμό.
• Στην ουσία το TTL αποφεύγει τον κίνδυνο του looping ενός
πακέτου IP.
• Η αρχική τιμή που δίνεται στο TTL του πακέτου είναι 255 η
οποία στη συνέχεια μειώνεται σε κάθε router.
• Αν κάποια στιγμή η τιμή του φτάσει στο 0, τότε το πακέτο
απομακρύνεται από τον συγκεκριμένο router.
• Εξ’ ορισμού, τα Windows μειώνουν την τιμή του TTL κατά 128,
ενώ τα Linux κατά 192.
• Για να εκτελέσετε μια εντολή ping αρκεί σε cmd να εκτελέσετε:
Ping <όνομα host> ή ping <IP host>
Αντίμετρα έναντι του ping (1/3)
• Αν και οι σαρώσεις με το ping μπορεί να φαίνονται
ενοχλητικές, είναι σημαντικό να μπορεί να εντοπιστεί
αυτή η δραστηριότητα όταν συμβαίνει ή ακόμα και να
εμποδιστεί.
• Η κύρια μέθοδος για να εντοπίσετε επιθέσεις μέσω
σαρώσεων ping περιλαμβάνει την χρησιμοποίηση IDS
προγραμμάτων (π.χ. snort) βασισμένων σε δίκτυα, που θα
δούμε σε επόμενο εργαστήριο.
• Επιπλέον, πολλά εμπορικά δίκτυα και εργαλεία firewall
(από Cisco, Microsoft, McAfee, Symantec και ISS) μπορούν
να εντοπίσουν σαρώσεις ping.

Αντίμετρα έναντι του ping (2/3)


• Όσον αφορά την πρόληψη, η καλύτερη μέθοδος είναι η
αξιολόγηση του τύπου της ICMP κίνησης που επιτρέπετε
στα δίκτυά σας.
• Εάν και τα περισσότερα firewalls μπορούν να φιλτράρουν
πακέτα ICMP, οργανωτικές ανάγκες μπορεί να
υπαγορεύουν ότι το firewall θα πρέπει να επιτρέπει
κάποια κίνηση ICMP.
• Μπορείτε για παράδειγμα να επιτρέπετε την κίνηση ICMP
REPLY πακέτων μόνο στο δίκτυό σας και μόνο ανάμεσα σε
συγκεκριμένους υπολογιστές.
Αντίμετρα έναντι του ping (3/3)
• Γενικά, πρέπει να γνωρίζετε ότι επιτρέποντας απεριόριστη
κίνηση ICMP επιτρέπετε στους επιτιθέμενους να
πραγματοποιούν επιθέσεις DoS και, ακόμα χειρότερα, αν
καταφέρουν να μπουν στο σύστημά σας να κατορθώσουν
πραγματικά να μπουν έμμεσα στο λειτουργικό σας και
συγκαλυμμένα να στείλουν δεδομένα μέσα στο πακέτο
ICMP χρησιμοποιώντας κατάλληλα λογισμικά όπως το
loki2.

Προσδιορισμός των υπηρεσιών


που τρέχουν σε ένα σύστημα (1/2)
• Έως τώρα είδαμε πώς ένας επιτιθέμενος μπορεί να
προσδιορίσει ενεργά συστήματα.
• Το επόμενο βήμα είναι να κάνει σάρωση των θυρών και
των υπηρεσιών των συστημάτων αυτών.
• Η σάρωση θυρών (port scanning) είναι η διαδικασία
αποστολής πακέτων σε θύρες TCP και UDP του
συστήματος-στόχου έτσι ώστε να μπορέσει να
προσδιοριστεί ποιες υπηρεσίες τρέχουν σε αυτό και ποιες
είναι σε κατάσταση LISTENING.
Προσδιορισμός των υπηρεσιών
που τρέχουν σε ένα σύστημα (2/2)
• Είναι σημαντικό να προσδιοριστούν οι θύρες που
ακροάζονται έτσι ώστε να προσδιοριστούν και τα
τρωτά σημεία του συστήματος - στόχου.
• Επιπλέον, μπορεί να ανακαλυφθεί και ο τύπος και
η έκδοση του λειτουργικού συστήματος και των
εφαρμογών που εκτελούνται.

Κατάσταση θύρας (1/3)


• Μια προτεινόμενη κατηγοριοποίηση των
καταστάσεων μιας θύρας ως αποτέλεσμα μιας
σάρωσης θυρών αναγνωρίζει τις παρακάτω
καταστάσεις.
• Open: Η κατάσταση αυτή υποδεικνύει ότι υπάρχει
μια εφαρμογή η οποία δέχεται συνδέσεις στην
συγκεκριμένη θύρα.
• Closed: Μία κλειστή θύρα είναι προσβάσιμη αλλά
δεν υπάρχει κάποια εφαρμογή η οποία να την
χρησιμοποιεί.
Κατάσταση θύρας (2/3)
• Filtered: Δεν μπορεί να προσδιοριστεί το αν είναι
ενεργή η συγκεκριμένη θύρα γιατί τα μηνύματα
που αποστέλλονται προς αυτήν φιλτράρονται
από κάποιο λογισμικό (π.χ. από κάποιο firewall).
• Unfiltered: Όταν μια θύρα βρίσκεται σε
κατάσταση unfiltered σημαίνει ότι η θύρα είναι
προσβάσιμη αλλά δεν μπορεί να προσδιοριστεί
το αν είναι ανοιχτή ή κλειστή.

Κατάσταση θύρας (3/3)


• Open|filtered: Δεν μπορεί να προσδιοριστεί αν η
θύρα που χαρακτηρίζεται ότι βρίσκεται σε αυτήν
την κατάσταση είναι ανοιχτή ή filtered.
• Closed|filtered: Δεν μπορεί να προσδιοριστεί αν
η θύρα που χαρακτηρίζεται ότι βρίσκεται σε
αυτήν την κατάσταση είναι κλειστή ή filtered.
Τεχνικές σάρωσης θυρών (1/7)
• TCP Connect.
• Στην σάρωση αυτή το χρησιμοποιείται η κλήση
συστήματος (system call) connect() έτσι ώστε να
δημιουργηθούν συνδέσεις ανάμεσα στον επιτιθέμενο και
τα posts που τον ενδιαφέρουν στον στόχο.
• Ο σκοπός στην ουσία είναι να προκαλέσει ο επιτιθέμενος
την εκτέλεση της κλασικής τριμερής TCP χειραψίας.
• Η σάρωση ξεκινάει με την αποστολή ενός πακέτου SYN,
δηλαδή του πρώτου πακέτου της χειραψίας.

Τεχνικές σάρωσης θυρών (2/7)


• TCP Connect (Συνέχεια).
• Οι ανοιχτές θύρες θα αποκριθούν με ένα μήνυμα
SYN/ACK, που είναι το δεύτερο μήνυμα της χειραψίας.
Αντίστοιχα οι κλειστές θύρες θα απαντήσουν με ένα
μήνυμα RST.
• Στην συνέχεια ο η σάρωση θα απαντήσει με το τρίτο
μήνυμα της χειραψίας που είναι το ACK.
• Ο συγκεκριμένος τύπος σάρωσης μπορεί πολύ εύκολα να
ανιχνευθεί και να φανεί σε ποιά ports έχει συνδεθεί ο
επιτιθέμενος αναζητώντας τα αρχεία log που πολύ
πιθανόν να διατηρεί ο στόχος χρησιμοποιώντας κάποιο
κατάλληλο λογισμικό (π.χ. TcpLogView).
Τεχνικές σάρωσης θυρών (3/7)
• Stealth Scanning.
• Σε περίπτωση που ο επιτιθέμενος δεν θέλει να μπορεί να
ανιχνευτεί η σάρωσή του όπως στην TCP Connect μπορεί
να χρησιμοποιήσει την Stealth σάρωση (γνωστή και ως
TCP SYN).
• Εδώ η λογική είναι παρόμοια με την TCP Connect αλλά
στην ουσία η TCP χειραψία δεν ολοκληρώνεται ποτέ.
• Η σάρωση ξεκινάει και πάλι με την αποστολή ενός
πακέτου SYN, δηλαδή του πρώτου πακέτου της χειραψίας.

Τεχνικές σάρωσης θυρών (4/7)


• Stealth Scanning (Συνέχεια).
• Οι ανοιχτές θύρες θα αποκριθούν με ένα μήνυμα
SYN/ACK, που είναι το δεύτερο μήνυμα της χειραψίας.
Αντίστοιχα οι κλειστές θύρες θα απαντήσουν με ένα
μήνυμα RST.
• Στην συνέχεια όμως η Stealth σάρωση, αντί να στείλει το
πακέτο ACK και να ολοκληρωθεί η χειραψία, στέλνει ένα
πακέτο RST το οποίο τερματίζει την σύνδεση.
Τεχνικές σάρωσης θυρών (5/7)
• Stealth Scanning (Συνέχεια).
• Εφόσον δεν ολοκληρώνεται η χειραψία, στις
περισσότερες περιπτώσεις δεν διατηρούνται
πληροφορίες για την ανίχνευση σε logs οπότε
καλύπτονται και τα ίχνη του επιτιθέμενου.
• Παρόλο που οι σαρώσεις Stealth είναι λιγότερο
ανιχνεύσιμες από τις TCP Connect μπορούν και αυτές να
ανιχνευτούν για παράδειγμα παρακολουθώντας τα
μηνύματα SYN τα οποία παραλαμβάνονται από έναν host.

Τεχνικές σάρωσης θυρών (6/7)


• Stealth FIN.
• Στον τύπο αυτής της σάρωσης αποστέλλεται ένα πακέτο
FIN σε κάθε θύρα.
• Οι κλειστές θύρες αποκρίνονται με RTS μήνυμα ενώ οι
ανοιχτές απορρίπτουν το πακέτο.
• Xmas Tree.
• Στον τύπο αυτής της σάρωσης αποστέλλεται ένα πακέτο
με ενεργοποιημένα τα FIN, URG και PUSH flags σε κάθε
θύρα.
• Οι κλειστές θύρες αποκρίνονται με RST μήνυμα ενώ οι
ανοιχτές απορρίπτουν το πακέτο.
Τεχνικές σάρωσης θυρών (7/7)
• Null.
• Στον τύπο αυτής της σάρωσης αποστέλλεται πακέτο με
απενεργοποιημένα όλα τα TCP flags σε κάθε θύρα.
• Οι κλειστές θύρες αποκρίνονται με RTS μήνυμα ενώ οι
ανοιχτές απορρίπτουν το πακέτο.
• UDP Scanning.
• Σε αυτήν την σάρωση το αποστέλλεται ένα 0-byte UDP
μήνυμα σε κάθε port του στόχου.
• Σε περίπτωση που παραλειφθεί από τον επιτιθέμενο σαν
απάντηση ένα μήνυμα “port unreachable” τότε το port
θεωρείται κλειστό.

ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 6: Εργαλεία σάρωσης θυρών


Σκοποί ενότητας
• Αυτή η εργαστηριακή ενότητα
πραγματεύεται ζητήματα σχετικά με την
κρυπτογραφία με τα εργαλεία σάρωσης
θυρών.

Περιεχόμενα ενότητας
• Εισαγωγή.
• Zenmap.
• Scan.
• Ping.
• Παράδειγμα χρήσης του Zenmap.
• Βιβλιογραφία.
Εισαγωγή (1/2)
• Ένα καλό εργαλείο port scanning είναι ένα σημαντικό
συστατικό της διαδικασίας συγκέντρωσης πληροφοριών.
• Παραδείγματα αποτελούν τα strobe, netcat, SuperScan,
WUPS, ScanLine και nmap. Με το τελευταίο θα
ασχοληθούμε σε αυτό το εργαστήριο.
• Το Nmap (Network Mapper) είναι ένα ελεύθερο εργαλείο
ανοικτού κώδικα.
• Χρησιμοποιεί πακέτα IP με σκοπό την αναγνώριση των
hosts που υπάρχουν σε ένα δίκτυο, τα services που
προσφέρουν οι hosts, τα λειτουργικά συστήματα που
χρησιμοποιούν, τα είδη firewall που χρησιμοποιούν κ.α.

Εισαγωγή (2/2)
• Λειτουργεί εξίσου καλά στην ανίχνευση μεγάλων
δικτύων αλλά και απλών hosts.
• Το Nmap υπάρχει διαθέσιμο σε διάφορες
εκδόσεις καλύπτοντας κυριότερα λειτουργικά
συστήματα (Windows, Linux και Mac OS X).
• Η κλασική έκδοση του Nmap προσφέρεται σαν
εργαλείο γραμμής εντολών.
Zenmap (1/8)
• Στο εργαστήριο θα χρησιμοποιήσουμε την
έκδοση του Nmap με GUI που ονομάζεται
Zenmap την οποία μπορείτε να κατεβάσετε από
τον Ιστότοπο http://nmap.org/download.html
ενώ το επίσημο εγχειρίδιο χρήσης υπάρχει στον
Ιστότοπο http://nmap.org/book/zenmap.html.
• Η Εικόνα 1 δείχνει το περιβάλλον του εργαλείου
Zenmap.

Zenmap (2/8)

Εικόνα 1. Το GUI του


εργαλείου Zenmap.
Πηγή: Διδάσκων (2015).
Zenmap (3/8)
• Για να εκτελέσουμε μια σάρωση στο Zenmap αρκεί να
επιλέξουμε έναν από τους τρόπους σάρωσης που μας
δίνει το εργαλείο στο Profile (Εικόνα 2) ή αλλιώς να
γράψουμε μόνοι μας την κατάλληλη εντολή που να
προσδιορίζει τον τύπο της σάρωσης στο πεδίο Command.
• Γενικά, οι εντολές του nmap ξεκινάνε με την λέξη “nmap”
ακολουθούμενη προαιρετικά από κάποιες παραμέτρους
και στο τέλος την διεύθυνση του στόχου μας.
• Το nmap μας δίνει την δυνατότητα να σαρώσουμε έναν
μόνο στόχο ή και ένα πλήρες δίκτυο.

Zenmap (4/8)
• Μπορούμε και να εισάγουμε λοιπόν στο τέλος της
εντολής μια μόνο διεύθυνση IP ή και όνομα στόχου ή,
εναλλακτικά, ένα εύρος διευθύνσεων της μορφής CIDR.
• Επιπλέον, μπορούμε να χρησιμοποιήσουμε τις
παραμέτρους –o (binary), –oN (ASCII), -oM (με
στηλοθέτες) και –οΧ (σε XML) για να αποθηκεύσουμε την
έξοδο σε ξεχωριστό αρχείο στην αντίστοιχη μορφή:
nmap –sF 192.168.1.0/24 –oN outfile
Zenmap (5/8)

Εικόνα 2. Τα profiles εντολών που


προσφέρει το Zenmap.
Πηγή: Διδάσκων (2015).

Zenmap (6/8)
• Τα έτοιμα profiles που προσφέρει το Zenmap είναι:
– Intense scan (nmap -T4 -A -v).
– Intense scan plus UDP (nmap -sS -sU -T4 -A -v).
– Intense scan, all TCP ports (nmap -p 1-65535 -T4 -A -v).
– Intense scan, no ping (nmap -T4 -A -v -Pn).
– Ping scan (nmap -sn).
– Quick scan (nmap -T4 –F).
– Quick scan plus (nmap -sV -T4 -O -F --version-light).
– Quick traceroute (nmap -sn –traceroute).
– Regular scan (nmap).
– Slow comprehensive scan (nmap -sS -sU -T4 -A -v -PE -PP -
PS80,443 -PA3389 - PU40125 -PY -g 53 --script "default or
(discovery and safe).
Zenmap (7/8)
• Οι παράμετροι που υπάρχουν από δίπλα
προσδιορίζουν το πώς ακριβώς εκτελείται η
σάρωση και τι είδους πακέτα αποστέλλονται
(επεξηγούνται παρακάτω).
• Μπορείτε επίσης να δημιουργήσετε δικά σας
profiles επιλέγοντας από το menu Profile New
Profile or Command (Εικόνα 3).

Zenmap (8/8)

Εικόνα 3. Δημιουργία νέου profile στο Zenmap. Πηγή: Διδάσκων (2015).


Scan (1/4)
• Στο πεδίο Scan μπορείτε να επιλέξετε τους τύπους
σάρωσης που θέλετε να εκτελεί το profile που θα
δημιουργήσετε.
• Οι 2 βασικές κατηγορίες είναι:
– TCP scan.
– Non-TCP scan.

Scan (2/4)
• Στο TCP scan περιλαμβάνονται οι σαρώσεις:
– FIN scan (-sF) η οποία είναι η Stealth FIN σάρωση που περιγράφθηκε
παραπάνω.
– Null scan (-sN) η οποία είναι η Null σάρωση που περιγράφθηκε
παραπάνω.
– TCP SYN scan (-sS) η οποία είναι η Stealth σάρωση που περιγράφθηκε
παραπάνω.
– TCP Connect scan (-sT) η οποία είναι η TCP Connect σάρωση που
περιγράφθηκε παραπάνω.
– Xmas Tree scan (-sX) η οποία είναι η Xmas Tree σάρωση που
περιγράφθηκε παραπάνω.
– ACK scan (-sA) η οποία στέλνει μηνύματα με ενεργοποιημένο το flag
ACK.
– Maimon scan (-sM) η οποία στέλνει μηνύματα με ενεργοποιημένα τα
flags FIN και ACK κ.α.
Scan (3/4)
• Αντίστοιχα οι σαρώσεις Non-TCP περιλαμβάνουν:
– UDP scan (-sU) η οποία είναι η UDP σάρωση που
περιγράφθηκε παραπάνω.
– List scan (-sL) η οποία δεν σαρώνει στόχους αλλά απλά
δημιουργεί μια λίστα με τους στόχους που θα
σαρωθούν (με reverse DNS names) κ.α.
• Στο πεδίο Timing template μπορείτε να επιλέξετε
την ταχύτητα της σάρωσης.

Scan (4/4)
• Γενικά ο χρόνος που θα διαρκέσει μια σάρωση εξαρτάται από
την ταχύτητα του δικτύου αλλά και από τον χρόνο απόκρισης
του στόχου.
• Το nmap χρησιμοποιεί κάποιες επιπλέον πολιτικές για να
αυξομειωθεί ο χρόνος σάρωσης.
• Ενδεικτικά στην πολιτική Paranoid (-T0) αποστέλλεται κάθε ένα
από τα πακέτα της σάρωσης ανά 5 λεπτά.
• Μπορείτε να επιλέξετε και επιπλέον επιλογές όπως εάν θέλετε
να πραγματοποιηθεί αναγνώριση του λειτουργικού
συστήματος του στόχου (περιγράφεται παρακάτω) (-Ο) ή αν
θέλετε να αναγνωρίσετε την έκδοση της εκάστοτε υπηρεσίας
που εκτελείται σε κάθε port (-sV).
Ping (1/3)
• To nmap επιτρέπει επιπλέον την χρήση του εργαλείου ping
(που περιγράφτηκε στην 1η ενότητα) με σκοπό την
αναγνώριση των ενεργών στόχων.
• Αν επιλέξετε την καρτέλα ping του profile editor (Εικόνα 4)
υπάρχουν διαθέσιμες οι παρακάτω επιλογές:
– Don’t ping before scanning (-Pn) η οποία παραλείπει το βήμα της
αναγνώρισης του αν ο στόχος είναι ενεργός και εκτελεί απευθείας
την σάρωση.
– ICMP ping (-PE) η οποία στέλνει ένα ICMP Echo Request για να
αναγνωρίσει τους ενεργούς στόχους.
– ACK ping (-PA) η οποία στέλνει ένα ACK μήνυμα για να αναγνωρίσει
τους ενεργούς κόμβους (πρέπει να προσδιοριστεί συγκεκριμένο
port – ένα ή περισσότερα).

Ping (2/3)

Εικόνα 4. Δημιουργία νέου profile - Καρτέλα Ping. Πηγή: Διδάσκων (2015).


Ping (3/3)
• Το nmap προσφέρει επίσης δυνατότητες δολώματος που
έχουν σχεδιασθεί να γεμίζουν έναν δικτυακό στόχο με
περιττές πληροφορίες με την χρήση της επιλογής –D και
χρησιμοποιώντας μια ψεύτικη διεύθυνση προέλευσης
από νόμιμους διακομιστές.
• Το σύστημα στόχος θα αποκριθεί στη συνέχεια στην
ψεύτικη διεύθυνση καθώς επίσης και στην πραγματική
σάρωση της θύρας:
nmap -D 10.1.1.1 scanme.nmap.org

Εντοπισμός του λειτουργικού


συστήματος (1/2)
• Με την χρήση της σάρωσης θυρών μπορούμε να
εντοπίσουμε πιθανά τρωτά σημεία στο σύστημα-στόχο.
• Όμως τα στοιχεία που έχουμε στα χέρια μας δεν είναι
επαρκή.
• Θα πρέπει να ανακαλύψουμε επιπλέον πληροφορίες για
τον στόχο μας.
• Επόμενο βήμα είναι να ανακαλύψουμε τον τύπο του
λειτουργικού του συστήματος.
Εντοπισμός του λειτουργικού
συστήματος (2/2)
• Για την εξακρίβωση του λειτουργικού συστήματος ενός
στόχου χρησιμοποιείται η συλλογή πληροφοριών στοίβας
(stack fingerprinting).
• Η τεχνική αυτή βασίζεται στην διαφορετική ανταπόκριση
των διαφορετικών λειτουργικών συστημάτων στα
διάφορα μηνύματα.
• Για παράδειγμα όταν στέλνεται ένα πακέτο FIN σε μια
ανοιχτή θύρα, η σωστή συμπεριφορά είναι να μην σταλεί
απόκριση.
• Ωστόσο τα Windows 200X/XP/Vista στέλνουν απόκριση
FIN/ACK.

Παράδειγμα χρήσης του


Zenmap (1/13)
• Για την εκτέλεση του συγκεκριμένου παραδείγματος
δεν θα δημιουργήσουμε κάποιο συγκεκριμένο
profile στο Zenmap αλλά ούτε και θα
χρησιμοποιήσουμε κάποιο από τα υπάρχοντα
profiles.
• Θα γράψουμε κατευθείαν την εντολή σάρωσης στο
πεδίο Command του nmap.
• Πληκτρολογήστε την εντολή nmap –sN
scanme.nmap.org και πατήστε scan.
Παράδειγμα χρήσης του
Zenmap (2/13)
• Ένα ενδεικτικό αποτέλεσμα της εντολής μπορείτε να
δείτε στην Εικόνα 5.
• Στο αριστερό κομμάτι του Zenmap μπορείτε να δείτε
τα hosts που αναγνωρίστηκαν ως ενεργά και στο δεξί
(κυρίως παράθυρο του GUI) τις λεπτομέρειες της
σάρωσης.
• Πρόκειται για μια ping σάρωση οπότε απλά
αναγνωρίζει τους ενεργούς hosts που βρέθηκαν.

Παράδειγμα χρήσης του


Zenmap (3/13)

Εικόνα 5. Αποτέλεσμα
της εντολής nmap –sN
scanme.nmap.org.
Πηγή: Διδάσκων (2015).
Παράδειγμα χρήσης του
Zenmap (4/13)
• Πληκτρολογήστε την εντολή nmap -A –sΤ
scanme.nmap.org και πατήστε scan.
• Ένα ενδεικτικό αποτέλεσμα της εντολής μπορείτε να δείτε
στην Εικόνα 6.
• Στο αριστερό κομμάτι του Zenmap μπορείτε να δείτε τα
hosts που αναγνωρίστηκαν ως ενεργά και στο δεξί
(κυρίως παράθυρο του GUI) τις λεπτομέρειες της
σάρωσης.
• Πρόκειται για μια TCP Connect σάρωση και με αναζήτηση
πληροφοριών σχετικά με το λειτουργικό σύστημα του
στόχου.

Παράδειγμα χρήσης του


Zenmap (5/13)

Εικόνα 6. Ports/Hosts.
Πηγή: Διδάσκων (2015).
Παράδειγμα χρήσης του
Zenmap (6/13)
• Μόλις ολοκληρωθεί η προηγούμενη σάρωση
επιλέξτε από το κεντρικό παράθυρο του εργαλείου
την καρτέλα Posts/Hosts.
• Εδώ μπορείτε να δείτε την κατάσταση των ports που
αναγνωρίσθηκαν ανά host καθώς επίσης και τις
υπηρεσίες που εκτελούνται σε κάθε port.
• Το πράσινο κυκλάκι σημαίνει ότι η συγκεκριμένη
θύρα είναι ανοιχτή (LISTENING).

Παράδειγμα χρήσης του


Zenmap (7/13)
• Επιλέξτε από το κεντρικό παράθυρο του εργαλείου την
καρτέλα Topology. Εδώ μπορείτε να δείτε μία βασική
τοπολογία που δείχνει τις συνδέσεις μεταξύ των hosts
που αναγνωρίσθηκαν (Εικόνα 7).
• Η τοπολογία είναι δομημένη σε ομόκεντρους κύκλους
κάθε ένας από τους οποίους αντιπροσωπεύει ένα
επιπλέον hop σε σχέση με τον κεντρικό κόμβο.
• Στη συνέχεια, επιλέξτε από το κεντρικό παράθυρο του
εργαλείου την καρτέλα Host Details.
• Εδώ εμφανίζονται όλες οι πληροφορίες που έχουν
συλλεχθεί για έναν host (Εικόνα 8).
Παράδειγμα χρήσης του
Zenmap (8/13)

Εικόνα 7. Τοπολογία. Πηγή: Διδάσκων (2015).

Παράδειγμα χρήσης του


Zenmap (9/13)

Εικόνα 8. Host Details. Πηγή: Διδάσκων (2015).


Παράδειγμα χρήσης του
Zenmap (10/13)
• Εδώ παρουσιάζεται και το λειτουργικό σύστημα
του host (αν αυτό έχει αναγνωρισθεί).
• Για παράγειγμα στην Εικόνα 8 τον εικονίδιο του
Linux υποδεινύει ότι έχει αναγνωρισθεί
λειτουργικό σύστημα Linux.
• Αντίστοιχα εικονίδια ανάλογα με το λειτουργικό
σύστημα φαίνονται στην Εικόνα 9.

Παράδειγμα χρήσης του


Zenmap (11/13)

Εικόνα 9. Τα εικονίδια που υποδεικνύουν το αντίστοιχο λειτουργικό σύστημα.


Πηγή: Διδάσκων (2015).
Παράδειγμα χρήσης του
Zenmap (12/13)
• Επιπλέον, το εικονίδιο από κάτω υποδεικνύει το
πόσο ευάλωτος είναι ο συγκεκριμένος host.
• Αυτό καθορίζεται από τον αριθμο των ανοιχτών
ports που αναγνωρίσθηκαν σε αυτόν.
• Η Εικόνα 10 παρουσιάζει τα αντίστοιχα εικονίδια
που εμφανίζονται ανάλογα με τον αριθμό των
ports που αναγνωρίσθηκαν ως ανοιχτά
καθορίζοντας έτσι και το πόσο ευάλωτο είναι στο
σύστημα.

Παράδειγμα χρήσης του


Zenmap (13/13)

Εικόνα 10. Ο αριθμός των


ανοιχτών ports καθορίζει
πόσο ευάλωτο είναι το
σύστημα.
Πηγή: Διδάσκων (2015).
ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 7: Intrusion Detection Systems - Windump

Σκοποί ενότητας
• Αυτή η εργαστηριακή ενότητα
πραγματεύεται ζητήματα σχετικά με την
κρυπτογραφία με το Windump.
Περιεχόμενα ενότητας (1/2)
• Windump - Περιγραφή.
• Καθορίζοντας την ποσότητα δεδομένων που θα
συλλεχθούν.
• Αναλύοντας το output του Windump.
• Ανάλυση συνδέσεων TCP.
• Ανάλυση φίλτρων WinDump.
• Windump και ασφάλεια από συγκεκριμένες
επιθέσεις.

Περιεχόμενα ενότητας (2/2)


• SQL Slammer.
• Fragmentation Attack.
• Land Attack.
• Smurf Attack.
• Ερωτήματα.
• Βιβλιογραφία.
Intrusion Detection Systems -
Windump

Windump - Περιγραφή (1/15)


• Το πρώτο βήμα προς την υλοποίηση μιας δικτυακής
αρχιτεκτονικής, αφορά στην ικανότητα του
εκπαιδευομένου που επιθυμεί να την υλοποιήσει να
διαβάζει και να αναλύει γεγονότα δικτυακής κίνησης.
• Επιπλέον, για έναν διαχειριστή δικτύων, η έλλειψη
γνώσης σχετικά με το δίκτυό του αποτελεί πρόβλημα.
• Η συγκέντρωση πληροφοριών σχετικά με ένα δίκτυο
αποτελεί το πρώτο βήμα για έναν διαχειριστή που
επιθυμεί να διατηρεί ένα ασφαλές δίκτυο.
Windump - Περιγραφή (2/15)
• Συνήθως βέβαια το σχέδιο του δικτύου (network
layout) καθώς και οι υπολογιστικές συσκευές από τις
οποίες αποτελείται υπάρχουν καταγεγραμμένα.
• Παρ’όλα αυτά υπάρχουν και περιπτώσεις που δεν
είναι.
• Αυτό συμβαίνει γιατί οι διάφορες μικρές ή μεγάλες
αλλαγές στο δίκτυο που μπορεί να συμβαίνουν μέρα
με τη μέρα μπορεί να αμεληθούν και να μην
καταγραφούν.

Windump - Περιγραφή (3/15)


• Το εργαλείο WinDump (http://www.winpcap.org/windump),
αποτελεί την έκδοση για το λειτουργικό σύστημα Windows
του αναλυτή δικτυακής κίνηση TcpDump.
• Το συγκεκριμένο εργαλείο προσφέρεται ελεύθερα και
μπορεί να χρησιμοποιηθεί και ως ανιχνευτής μη επιθυμητής
δικτυακής κίνησης αλλά και για την ανίχνευση
προβλημάτων του δικτύου.
• Η Εικόνα 1 παρουσιάζει μια απλή δικτυακή αρχιτεκτονική
και παρουσιάζει ενδεικτικά σημεία τοποθέτησης
αισθητήρων για την καταγραφή δικτυακής κίνησης.
Windump - Περιγραφή (4/15)

Εικόνα 1. Απλή δικτυακή αρχιτεκτονική για την καταγραφή της δικτυακής κίνησης.
Πηγή: Διδάσκων (2015).

Windump - Περιγραφή (5/15)


• Η αρχιτεκτονική αποτελείται από το εσωτερικό δίκτυο
που συνδέει τρεις υπολογιστές εργασίας μέσο ενός απλού
hub, από τη ζώνη που περιλαμβάνει τον εξυπηρετητή
παροχής υπηρεσιών (π.χ. ιστοσελίδα, e-mail), από το
firewall που χωρίζει το δίκτυο σε ζώνες (λεπτομέρειες
στην επόμενη παράγραφο) και από ένα δρομολογητή
(router) που αποτελεί τον κόμβο σύνδεσης με το
Διαδίκτυο (Internet).
• Η καταγραφή δικτυακής κίνησης, μπορεί να
πραγματοποιηθεί σε οποιοδήποτε μηχάνημα της
αρχιτεκτονικής.
Windump - Περιγραφή (6/15)
• Το WinDump/tcpdump, παρουσιάζει τη δικτυακή κίνηση
στην οθόνη του υπολογιστή, ή την αποθηκεύει σε αρχείο
καταγραφής για περαιτέρω ανάλυση.
• Για την καταγραφή της επιθυμητής κίνησης, χρησιμοποιεί
ένα σύνολο κανόνων – φίλτρα, οι οποίοι το
παραμετροποιούν με στόχο την επίτευξη της καταγραφής
της επιθυμητής κίνησης ανά περίπτωση.
• Το εργαλείο αυτό, χρησιμοποιείται για ερευνητικούς
σκοπούς κατά τη δοκιμή νέων πρωτοκόλλων και κατά τη
λειτουργία ενός οργανισμού για την επαλήθευση της ορθής
παραμετροποίησης και λειτουργίας μηχανισμών δικτύου.

Windump - Περιγραφή (7/15)


• Στο χώρο της ασφάλειας, αποτελεί ένα πρώτο βήμα για την
ανίχνευση μη επιθυμητής κίνησης σε δικτυακό επίπεδο.
• Για να χρησιμοποιήσετε το εργαλείο, μπορείτε να κατεβάσετε
από την ηλεκτρονική τάξη το αρχείο WinDump.exe. Πρόκειται
για ένα εκτελέσιμο το οποίο δεν προαπαιτεί εγκατάσταση. Η
χρήση του εργαλείου απαιτεί επιπροσθέτως και την
εγκατάσταση της τελευταίας έκδοσης του WinPcap.
• Aνοίξτε ένα cmd και μπείτε στο path όπου αποθηκεύσατε το
WinDump.exe.
• Για να χρησιμοποιήσετε το Windump χρειάζεται απλά να
γράψετε στο cmd την εντολή Windump (Εικόνα 2)
Windump - Περιγραφή (8/15)

Εικόνα 2. Windump. Πηγή: Διδάσκων (2015).

• Η παραπάνω εντολή θα παρακολουθήσει και καταγράψει


όλη την κίνηση από το default network interface του
υπολογιστή σας και θα παρουσιάσει το αποτέλεσμα της
καταγραφής στην κονσόλα.
• Αν λοιπόν η κίνηση την ώρα που κάνετε την καταγραφή
είναι αυξημένη, θα παρατηρήσετε την καταγραφή πολλών
μηνυμάτων στην κονσόλα.

Windump - Περιγραφή (9/15)


• Επειδή δεν είναι και τόσο εύχρηστο να
προσπαθούμε να διαβάζουμε τα μηνύματα αυτά
την ώρα που καταγράφονται, έχουν
δημιουργηθεί κάποιες επιλογές – παράμετροι τις
οποίες μπορούμε να χρησιμοποιήσουμε στο
Windump για να διευκολύνουμε την διαδικασία
της παρουσίασης – κατανόησης της
καταγεγραμμένης κίνησης. Η γενική μορφή των
εντολών του windump είναι:
windump [<offset>:<length>] <relation> <value>
Windump - Περιγραφή (10/15)
• Επειδή ένας υπολογιστής μπορεί να έχει πολλά και διαφορετικά
network interfaces μπορείτε να χρησιμοποιήσετε την παράμετρο
–D για να δείτε τη λίστα με τα interfaces που υπάρχουν
διαθέσιμα στον υπολογιστή σας (Εικόνα 3).

Εικόνα 3. Η windump –D παρουσιάζει τα διαθέσιμα network interfaces.


Πηγή: Διδάσκων (2015).

Windump - Περιγραφή (11/15)


• Στην Εικόνα 3 για παράδειγμα, το αποτέλεσμα της εντολής υποδεικνύει
την ύπαρξη 4 διαφορετικών network interfaces.
• Αν θέλουμε να επιλέξουμε εμείς το network interface το οποίο θέλουμε
να παρακολουθούμε θα πρέπει στις εντολές του Windump να
περιλαμβάνουμε πάντα την παράμετρο –i IN, όπου ΙΝ ο αριθμός που
χαρακτηρίζει το network interface που μας ενδιαφέρει στην λίστα με τα
interfaces.
• Για παράδειγμα, αν από την λίστα με τα interfaces της Εικόνας 3 μας
ενδιαφέρει να καταγράψουμε την κίνηση του wireless interface, αρκεί
να χρησιμοποιούμε τις εντολές μας την παράμετρο –i 1 (Εικόνα 4).

Εικόνα 4. Η εντολή windump –i 1. Πηγή: Διδάσκων (2015).


Windump - Περιγραφή (12/15)
• Αν θέλουμε να καταγράψουμε κίνηση συγκεκριμένου
τύπου, μπορούμε να προσδιορίσουμε τον τύπο της κίνησης
αμέσως μετά τον προσδιορισμό του network interface.
• Για παράδειγμα αν θέλουμε να καταγράψουμε μόνο TCP
κίνηση μπορούμε να χρησιμοποιήσουμε την εντολή
windump –i 1 tcp.

Εικόνα 5. Η εντολή windump –i 1 tcp. Πηγή: Διδάσκων (2015).

Windump - Περιγραφή (13/15)


• Σε περίπτωση που θέλετε να σταματήσετε το WinDump
πατήστε ctrl-c.
• Επειδή όμως τα φίλτρα τα οποία μπορούμε να
δημιουργήσουμε μπορούν να γίνουν αρκετά περίπλοκα, το
Windump μας δίνει την δυνατότητα να καταγράφουμε τα
φίλτρα σε ένα αρχείο π.χ. filter.txt και στην συνέχεια να
χρησιμοποιούμε την παράμετρο –F filter.txt για να
φορτώσουμε το αρχείο έτσι ώστε να μην χρειάζεται κάθε
φορά να γράφουμε όλο το φίλτρο από την αρχή.
• Η εντολή τότε που θα χρησιμοποιούμε θα είναι:
windump –i 1 –F filter.txt
Windump - Περιγραφή (14/15)
• Επιπλέον, το windump μας δίνει την δυνατότητα να
καταγράφουμε τα αποτελέσματα της καταγραφής μας σε
ένα binary αρχείο το οποίο μπορούμε ανά πάσα στιγμή να
το ανοίξουμε προς ανάγνωση από το windump.
• Για την καταγραφή σε binary αρχείο χρησιμοποιούμε την
παράμετρο –w filename όπως για παράδειγμα στην
παρακάτω εντολή:
windump –i 1 –F filter.txt –w output

Windump - Περιγραφή (15/15)


• Αντίστοιχα για να διαβάσουμε ένα binary αρχείο
χρησιμοποιούμε την παράμετρο –r filename όπως για
παράδειγμα στην παρακάτω εντολή:
windump –i 1 –F filter.txt –r output
• Τέλος, μπορούμε να χρησιμοποιήσουμε την παράμετρο
“>” για να αποθηκεύσουμε το αποτέλεσμα της
καταγραφής σε ένα αρχείο το οποίο μπορούμε να
αναγνώσουμε:
windump –i 1 > output.txt
Καθορίζοντας την ποσότητα
δεδομένων που θα συλλεχθούν (1/2)
• Το Windump συλλέγει datagrams μεγέθους 68 bytes.
• Το μέγεθος αυτό ίσως σε κάποιες περιπτώσεις να μην
επαρκεί οπότε το Windump μας δίνει την δυνατότητα να
το αλλάξουμε.
• Τα 68 bytes που συλλέγει το Windump προφανώς δεν
αφορούν στο σύνολο ενός datagram αλλά μόνο σε κάποια
στοιχεία της επικεφαλίδας του.
• Αυτό συμβαίνει γιατί συνήθως μας ενδιαφέρει
περισσότερο να παρατηρήσουμε την επικεφαλίδα του
μηνύματος και όχι το υπόλοιπο περιεχόμενο.

Καθορίζοντας την ποσότητα


δεδομένων που θα συλλεχθούν (2/2)
• Τα 68 bytes που καταγράφει περιλαμβάνουν στην
ουσία 14 bytes της επικεφαλίδας του frame, 20
bytes της επικεφαλίδας του IP, 20 bytes της
επικεφαλίδας του TCP και 14 bytes της
επικεφαλίδας του Ethernet.
• Αν θέλουμε να τροποποιήσουμε το μέγεθος
καταγραφής μπορούμε να χρησιμοποιήσουμε την
παράμετρο –s length:
windump –i 1 -s 1514
Αναλύοντας το output του
Windump (1/3)
• Ας προσπαθήσουμε τώρα να αναλύσουμε το περιεχόμενο
των καταγραφών του windump.

Εικόνα 6. Παράδειγμα καταγραφής μηνύματος από το windump.


Πηγή: Διδάσκων (2015).

• 20:08:41.313149 είναι το timestamp καταγραφής του


μηνύματος σε μορφή HH:MM:SS.FFFFFF.
• rootwars.org είναι το source host name. Σε περίπτωση που
δεν θέλουμε να βλέπουμε ονόματα αλλά διευθύσνεις IP
μόνο μπορούμε να χρησιμοποιήσουμε την παράμετρο –n.

Αναλύοντας το output του


Windump (2/3)
• 1086 είναι το source port number.
• Το σύμβολο > δηλώνει την κατεύθυνση της
κίνησης από το source στο destination.
• 66.102.9.104 είναι η destination IP address.
• 80 είναι το destination port number.
• S υποδηλώνει οτι στο συγκεκριμένο μήνυμα είναι
ενεργοποιημένο το SYN FLAG.
Αναλύοντας το output του
Windump (3/3)
• 1192278531: 1192278531(0). Οι αριθμοί
1192278531 και 1192278531 υποδηλώνουν τον
πρώτο τον τελευταίο αριθμό ακολουθίας
(sequence number) του μηνύματος.
• win 1638. Προσδιορίζει τον buffer size (σε bytes)
του rootwars.org για αυτήν την σύνδεση.

Ανάλυση συνδέσεων TCP (1/4)


• Εκτελέστε την ακόλουθη εντολή (θέτοντας φυσικά
κατάλληλη τιμή στο x) η οποία θα καταγράψει
πακέτα προς ή από την θύρα 80 και θα γράψει το
αποτέλεσμα στο αρχείο out:
winDump.exe –i x port 80 > out.txt
• Ανοίξτε έναν browser και συνδεθείτε στο
informatics.teiwm.gr.
Ανάλυση συνδέσεων TCP (2/4)
• Περιμένετε περίπου 30 δευτερόλεπτα για να δείτε την
σελίδα και να κλείσει η σύνδεση HTTP. Σταματήστε το
WinDump με ctrl-c.
• Στη συνέχεια ανοίξτε το αρχείο οut για να δείτε το output
των πακέτων που καταγράφηκαν. Μπορείτε να ανοίξετε
το αρχείο π.χ. με notepad.
• Αναγνωρίστε τα πακέτα SYN που άνοιξαν την κίνηση στον
server.
• Στη συνέχεια αναγνωρίστε τα πακέτα FIN που κλείνουν
την σύνδεση με τον server.

Ανάλυση συνδέσεων TCP (3/4)


1. Ποιά είναι το όνομα του localhost του υπολογιστή
σας που εμφανίζεται στα πακέτα;
2. Ποιό είναι το όνομα του host που τρέχει στον server
που επισκεφτήκατε;
3. Ποιό είναι το αρχικό Window size του server στο
πρώτο SYN πακέτο που στέλνει στον υπολογιστή
σας;
4. Ποιό είναι το αρχικό Window size του υπολογιστή
σας στο πρώτο SYN πακέτο που στέλνει στον server;
Ανάλυση συνδέσεων TCP (4/4)
5. Πόσα bytes αποστέλλονται από τον υπολογιστή σας
στον server στο πρώτο HTTP request;
6. Πόσα συνεxόμενα πακέτα αποστέλλονται από τον server
στον υπολογιστή σας σαν απάντηση στο HTTP request
πριν να στείλει ο υπολογιστής σας επιβεβαίωση
(acknowledgement);
7. Πόσα συνεχόμενα bytes επιβεβαιώνει ο υπολογιστής
σας σε αυτήν την επιβεβαίωση;
8. Αναγνωρίστε το πακέτο FIN που στέλνει ο server
στον υπολογιστή σας. Πόσα bytes δεδομένων
περιέχονται σε αυτό;

Ανάλυση φίλτρων WinDump


(1/6)
Πίνακας 1. Ανάλυση φίλτρων WinDump. Πηγή: Διδάσκων (2015).
Φίλτρο Ιδιότητα
-a Μετατροπή διευθύνσεων δικτύου ονόματα

-c count Έξοδος μετά από την καταγραφή count


πακέτων
-F filename Χρησιμοποιεί σαν είσοδο το αρχείο filename
Προσδιορίζει τον αριθμό του
-i ΙΝ συγκεκριμένου interface στο οποίο θα
καταγραφεί η κίνηση.
-n Δεν μετατρέπει τις διευθύνσεις σε ονόματα.
-r readfile Διαβάζει τα καταγεγραμμένα μηνύματα από
το readfile.
-w writefile Ορισμός δυαδικού αρχείου καταγραφής

dst host host για τον ορισμό του κόμβου προορισμού του
πακέτου, μέσω του ονόματος αυτού
Ανάλυση φίλτρων WinDump
(2/6)
Πίνακας 2. Ανάλυση φίλτρων WinDump (Συνέχεια). Πηγή: Διδάσκων (2015).
Φίλτρο Ιδιότητα
src host host για τον ορισμό του κόμβου πηγής του
πακέτου, μέσω του ονόματος αυτού

host host για τον ορισμό του κόμβου του πακέτου, μέσω
του ονόματος αυτού
dst net net για τον ορισμό του δικτύου προορισμού του
πακέτου
src net net για τον ορισμό του δικτύου πηγής του
πακέτου
net net για τον ορισμό του δικτύου του πακέτου
dst port port για τον ορισμό της θύρας προορισμού του
πακέτου
src port port για τον ορισμό της θύρας πηγής του πακέτου
port port για τον ορισμό της θύρας του πακέτου
protocol για τον ορισμό του πρωτοκόλλου του πακέτου:
πχ icmp, ah, esp, udp, tcp.

Ανάλυση φίλτρων WinDump


(3/6)
• Επίσης χρησιμοποιούνται Boolean εκφράσεις όπως οι
παρακάτω:
host ehost and not port port
• Για να δείτε όλες τις παραμέτρους που υποστηρίζει το
WinDump πληκτρολογείστε:
WinDump.exe –help
Ανάλυση φίλτρων WinDump
(4/6)
• Γενικά είναι πολύ συνηθισμένο για έναν οργανισμό να
επιτρέπουν συγκεκριμένες υπηρεσίες μόνο σε συγκεκριμένα
hosts ή group από hosts.
• Πολλές φορές όμως είναι θεμιτό να θέλουν να γνωρίζουν εάν
κάποιο host επιχειρεί την σύνδεση με κάποιο άλλο host ή
υπηρεσία.
• Στην περίπτωση αυτή μπορούν να φτιάξουν το κατάλληλο
φίλτρο έτσι ώστε να παρακολουθούν την κίνηση που τους
ενδιαφέρει.
• Για παράδειγμα μπορούν να χρησιμοποιήσουν το φίλτρο:
tcp and (dst port 143) and not (host.goodguy.org or net
192.168.4.15)

Ανάλυση φίλτρων WinDump


(5/6)
• Γενικά, περίπου το 20% των επιθέσεων αφορούν
DNS, mail και web servers.
• Σκεφτείτε για παράδειγμα τι θα συμβεί αν χάσετε τον
έλεγχο του DNS server του δικτύου σας.
• Είναι λοιπόν θεμιτό να παρακολουθείτε στενότερα
τέτοιου είδους συστήματα του δικτύου σας.
• Προσπαθήστε για παράδειγμα να δώσετε ερμηνεία
στο παρακάτω φίλτρο.
Ανάλυση φίλτρων WinDump
(6/6)
(dst host 192.168.1.1 and (
(tcp and ((tcp[13] & 2 != 0) and (tcp[13] & 0x10 = 0)) and
(not dst port 80))
or
(udp and not dst port 53 and not dst port 137) or
(icmp and (icmp[0] != 8) and (icmp[0] != 0)
and (icmp[0] != 3) and (icmp[0] != 11)) or
(not (tcp or udp or icmp))
))

Windump και ασφάλεια από


συγκεκριμένες επιθέσεις
• Το Windump χρησιμοποιείται για αναγνώριση
πιθανόν επιθέσων δικτύου.
• Ακολουθούν οι περιγραφές τέτοιων επιθέσεων
μαζί με τα αντίστοιχα φίλτρα του Windump για
την αναγνώρισή τους.
SQL Slammer (1/3)
• Το worm SQL Slammer κατάφερε στις 25/01/2003 και
μέσα σε 30 λεπτά να μολύνει περίπου 75.000 τρωτά
συστήματα.
• Θεωρείται ένα από τα πιο γρήγορα εξαπλώμενα
worms των τελευταίων χρόνων.
• To worm μόλυνε την υπηρεσία Microsoft SQL Server
πάνω από UDP στην θύρα 1434.
• Αποτελεί το πρώτο επιτυχημένο worm σε UDP.
• Το worm περιεχόταν σε ένα 376-byte πακέτο UDP.

SQL Slammer (2/3)


• Το payload αυτού του πακέτου αναγνώριζε τρωτά σημεία,
αντέγραφε τον εαυτό του και παρήγαγε τυχαίες
διευθύνσεις IP.
• Αυτές τις διευθύνσεις θα χρησιμοποιούσε στην συνέχεια
το μολυσμένο σύστημα για να αποστείλει νέα μολυσμένα
πακέτα.
• Εφόσον λειτουργούσε με UDP, άρα δεν απαιτούσε
χειραψία, διευκόλυνε την αποστολή των μολυσμένων
πακέτων χρησιμοποιώντας την μέγιστη ταχύτητα
σύνδεσης των μολυσμένων συστημάτων, με αποτέλεσμα
την εξάπλωση του σχεδόν σε ολόκληρο το Διαδίκτυο.
SQL Slammer (3/3)
• Το φίλτρο αυτό μπορεί να έχει διάφορες μορφές,
ανάλογα με το πόσο αυστηροί και ακριβείς θέλουμε
να είμαστε.
• Πρακτικά, θα μπορούσαμε να φιλτράρουμε
οποιοδήποτε UDP πακέτο προορίζεται για την θύρα
1434 με περιεχόμενο 376 bytes:
windump udp[4:2] = 384 and dst port 1434 and src net
mynet
• Γιατί χρησιμοποιούμε στο φίλτρο τον αριθμό 384 και
όχι το 376;

Fragmentation Attack (1/4)


• Πρόκειται για είδος επίθεσης DoS όπου ο επιτιθέμενος
εκμεταλλεύεται τις «αδυναμίες» της διαδικασίας της
επανασυναρμολόγησης τμηματοποιημένων (fragmented)
πακέτων.
• Ας το δούμε με ένα παράδειγμα.
• Ας υποθέσουμε οτι ο επιτιθέμενος θέλει να επιτεθεί στην
υπηρεσία telnet (θύρα 23) του στόχου.
• Έχει όμως χρησιμοποιήσει το nmap και διαπίστωσε οτι η
θύρα αυτή είναι σε κατάσταση filtered επομένως δεν
δέχεται συνδέσεις.
• Παρ’όλ’αυτά η θύρα SMTP 25 φαίνεται να είναι open.
Fragmentation Attack (2/4)
• Ο επιτιθέμενος αποφασίζει να στείλει 2 fragments τα
οποία γνωρίζει οτι ο στόχος θα «συνενώσει» έτσι ώστε να
δημιουργήσει το αρχικό πακέτο.
• Στο πρώτο fragment το IP flag MF είναι ενεργοποιημένο
και το Offset είναι 0 και το destination port τίθεται στην
θύρα 25.
• Εφόσον η θύρα είναι ανοιχτή, το πρώτο fragment θα
φτάσει στον στόχο χωρίς πρόβλημα.
• Στο δεύτερο πακέτο το IP flag MF είναι ενεργοποιημένο
και το Offset είναι 1 και το destination port τίθεται στην
θύρα 23.

Fragmentation Attack (3/4)


• Ο στόχος, όταν λάβει το δεύτερο fragment, βλέποντας ότι
το MF είναι 0 και το offset διαφορετικό του 0 θα
καταλάβει οτι το πακέτο αυτό αποτελεί άλλο ένα
fragment από ένα πακέτο και ότι έχει ήδη φτάσει σε
αυτόν κάποιο αντίστοιχο fragment οπότε το αφήνει να
περάσει κανονικά χωρίς να ελέγξει περαιτέρω τα
υπόλοιπα πεδία του.
• Όταν όμως γίνει η επανασυναρμολόγηση, το δεύτερο
fragment εξαιτίας της τιμής του offset του θα πανωγράψει
σχεδόν όλο το πρώτο fragment με αποτέλεσμα να
διατηρηθούν τα πεδία (και κυρίως το destination port)
του δεύτερου fragment.
Fragmentation Attack (4/4)
• Το πακέτο επομένως θα παραδοθεί στην θύρα 23!
• Το φίλτρο στο windump το οποίο μπορεί να
χρησιμοποιηθεί για την αναγνώριση τέτοιου είδους
επίθεσης είναι:
windump tcp && (ip[6:2] & 16383 !=0)

Land Attack
• Στην DoS επίθεση Land ο επιτιθέμενος στέλνει
spoofed πακέτα TCP SYN στα οποία ο αποστολέας
είναι η διεύθυνση IP του στόχου.
• Αυτό έχει σαν αποτέλεσμα ο στόχος να στέλνει
συνέχεια μηνύματα στον εαυτό του.
• Το φίλτρο στο windump το οποίο μπορεί να
χρησιμοποιηθεί για την αναγνώριση τέτοιου είδους
επίθεσης είναι:
windump (ip[12:4] = ip[16:4])
Smurf Attack (1/2)
• Στην DoS επίθεση smurf ο επιτιθέμενος στέλνει
spoofed ICMP μηνύματα στα οποία ο αποστολέας
είναι η διεύθυνση IP του στόχου και παραλήπτης
είναι η broadcast διεύθυση του δικτύου του
παραλήπτη.
• Αν λοιπόν το δίκτυο του παραλήπτη αποτελείται από
έναν μεγάλο αριθμό συνδεδεμένων συσκευών, κάθε
μια από αυτές θα πρέπει να απαντήσει στα
μηνύματα αυτά υπερφορτώνοντας τον στόχο.

Smurf Attack (2/2)


• Το φίλτρο στο windump το οποίο μπορεί να
χρησιμοποιηθεί για την αναγνώριση τέτοιου
είδους επίθεσης είναι:
windump icmp && (ip[19:1] = 255)
Ερωτήματα (1/4)
• Να χρησιμοποιηθεί το WinDump με στόχο την επίτευξη
των παρακάτω.
1. Να καταγράφονται και να εμφανίζονται στην οθόνη
όλα τα μηνύματα που αποστέλλονται ή λαμβάνονται
από τον υπολογιστή σας.
2. Να καταγράφονται και να εμφανίζονται στην οθόνη όλη
η κίνηση IP ανάμεσα στον υπολογιστή σας και σε όλους
τους hosts εκτός από τον helios.
3. Να καταγράφεται και να εμφανίζεται στην οθόνη όλη η
εισερχομένη ICMP πληροφορία.
4. Να καταγράφεται και να εμφανίζεται στην οθόνη όλη η
εξερχομένη ICMP πληροφορία.

Ερωτήματα (2/4)
5. Να καταγράφεται και να εμφανίζεται στην οθόνη όλη η
κίνηση στη θύρα 23 του υπολογιστή σας.
6. Να καταγράφεται και να εμφανίζεται στην οθόνη η
κίνηση μονό προς την θύρα tcp 25 του υπολογιστή σας.
7. Να καταγράφεται και να εμφανίζεται στην οθόνη η
κίνηση από το δίκτυο 192.168.1.0 προς το δίκτυο
192.168.2.0.
8. Να καταγράφεται η κίνηση από και προς γειτονικό
υπολογιστή σε δυαδικό αρχείο καταγραφής.
9. Να καταγράφεται σε αρχείο καταγραφής η tcp κίνηση.
Ερωτήματα (3/4)
10. Να καταγράφεται και να εμφανίζεται στην οθόνη η
κίνηση μεταξύ του υπολογιστή σας και οποιουδήποτε
εκτός ενός γειτονικού υπολογιστή.
11. Να καταγράφεται και να εμφανίζεται στην οθόνη η ip
κίνηση εκτός από την κίνηση από και προς των τοπικών
κόμβων.
12. Να καταγράφεται και να εμφανίζεται στην οθόνη τα ip
πακέτα που αποστέλλονται από τον υπολογιστή σας και
έχουν μέγεθος μεγαλύτερο από 576 bytes
(συμβουλευτείτε την επικεφαλίδα του IP).

Ερωτήματα (4/4)
• Να καταγράφεται και να εμφανίζεται στην οθόνη η
κίνηση από και προς την IP 192.168.10.10, αλλά όχι
από την IP 192.168.1.11.
• Αφού εκτελέσετε το WinDump με το προηγούμενο
φίλτρο ενεργοποιημένο ανοίξτε ένα cmd και
πληκτρολογήστε:
tracert www.teikoz.gr
• Ανοίξτε το αρχείο καταγραφής. Τι παρατηρείτε;Τι
είδους μηνύματα στέλνονται όταν το TTL
εξαντλείται;
ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 8: Snort

Σκοποί ενότητας
• Αυτή η εργαστηριακή ενότητα
πραγματεύεται ζητήματα σχετικά με την
κρυπτογραφία με το Snort.
Περιεχόμενα ενότητας
• Περιγραφή.
• Snort.
• Snort vs tcpdump.
• Κανόνες Snort.
• Ασκήσεις.
• Βιβλιογραφία.

Περιγραφή (1/4)
• Στο τρίπτυχο δικτυακής ασφάλειας, τα προληπτικά αντίμετρα
συμπληρώνονται από ανιχνευτικά αντίμετρα, με στόχο την
αναγνώριση προσπαθειών ή περιστατικών εισβολής στο
σύστημα.
• Τα συστήματα ανίχνευσης εισβολών διακρίνονται σε
κατηγορίες ανάλογα με τη λειτουργία τους.
• Μία πρώτη κατηγοριοποίηση, διακρίνει τα συστήματα αυτά σε
network-based, όταν στοχεύουν στην ανίχνευση εισβολών σε
κάποιο υποδίκτυο ή στο σύνολο του δικτύου ενός
πληροφοριακού συστήματος και σε host-based, όταν
στοχεύουν στην προστασία ενός συγκεκριμένου μηχανήματος.
Περιγραφή (2/4)
• Τα πρώτα μπορούν να διακριθούν με τη σειρά τους σε
τεχνολογίες βασισμένες σε:
– Υπογραφές, δηλαδή στην ανίχνευση κάποιας συγκεκριμένη
ακολουθίας / μορφής στην επικεφαλίδα ή στο περιεχόμενο
ενός δικτυακού πακέτου
– Αναγνώριση ανωμαλιών, δηλαδή γεγονότων ή
<<συμπεριφορών>> της δικτυακής κίνησης, η οποία μπορεί
να θεωρηθεί μη ομαλή, ανάλογα με τη λειτουργία κάθε
δικτύου, όπως για παράδειγμα ιδιαίτερα αυξημένη
δικτυακή κίνηση σε ώρες μη-αιχμής.
– Υβριδικά, τα οποία αποτελούν συνδυασμό των δύο.

Περιγραφή (3/4)
• Η σημαντικότερη παράμετρος στη λειτουργία των
συστημάτων ανίχνευσης εισβολών, είναι η απόδοσή τους,
όσο αναφορά την ικανότητα αυτών να ανιχνεύουν
πραγματικά γεγονότα.
• Η ικανότητα αυτή, εξαρτάται τόσο από τη <<νοημοσύνη>>
του συστήματος, όσο και από την ορθή παραμετροποίηση
του, ανάλογα με τη φύση κάθε δικτύου.
• Εδώ εντοπίζεται και το σπουδαιότερο πρόβλημα των
συστημάτων ανίχνευσης εισβολών, τα οποία
χαρακτηρίζονται από σφάλματα με την ονομασία: False
positives.
Περιγραφή (4/4)
• Τα τελευταία, οφείλονται στην εσφαλμένη ανίχνευση
εισβολής, η οποία δημιουργεί συναγερμούς οι οποίοι όχι
μόνο δεν ανταποκρίνονται στην πραγματικότητα, αλλά και
δυσκολεύουν στην αναγνώριση των πραγματικών
συναγερμών από το πλήθος των εσφαλμένων.
• Στο προηγούμενο εργαστήριο είχατε πάρει ήδη μια γεύση
από ένα σύστημα ανίχνευσης εισβολών.
• Σε αυτό το εργαστήριο θα εξασκηθείτε στις βασικές
λειτουργίες ενός νέου συστήματος ανίχνευσης εισβολών,
που όμως παρέχει και επιπλέον λειτουργίες, με έμφαση
στην παραμετροποίηση αυτού, ώστε να γίνει κατανοητή η
θεωρία μέσα από την πράξη.

Snort (1/7)
• Το Snort (www.snort.org) είναι ένα πολύ γνωστό open
source σύστημα για με σκοπό την αποφυγή αλλά και
αναγνώριση των network intrusions (IDS/IPS) που
κατασκευάστηκε από την SourceFire.
• Κατέχοντας έως και το 2011 εκατομμύρια downloads και
περίπου 300,000 εγγεγραμμένους χρήστες, έχει γίνει το
de facto standard για συστήματα IDS/IPS.
• Το Snort χρησιμοποιείται επιπλέον και για εκπαιδευτικούς
σκοπούς σαν εργαλείο για την διδασκαλία θεμάτων
ασφάλειας δικτύων.
Snort (2/7)
• Το βασικό στοιχείο του Snort αφορά στην δημιουργία
κανόνων που καταγράφων επιθέσεις διαφόρων
ειδών.
• Παρ’ όλο που υπάρχουν διαθέσιμα επίσημα ένα
σύνολο από κανόνες στο επίσημο site του Snort, είναι
προφανώς απαραίτητη η συνεχής δημιουργία νέων
κανόνων για την αντιμετώπιση των νέων απειλών.
• Είναι επομένως σημαντικό να καταλαβαίνει κανείς
αλλά και να μπορεί να δημιουργεί κανόνες για το
Snort (Snort rules).

Snort (3/7)
• Επιπλέον από το επίσημο website του Snort, υπάρχουν
και άλλες αξιόπιστες πηγές από όπου μπορεί κανείς να
διδαχθεί τους κανόνες για το Snort.
• Για τον λόγο ότι οι κανόνες του Snort αποτελούν
πρόκληση στο να τους μάθει και δημιουργήσει κανείς,
έχουν δημιουργηθεί διάφορες εκδόσεις του Snort με GUI,
για να διευκολύνουν την διαδικασία συγγραφής των
κανόνων (π.χ. www.zeffie.com/cobalt_snort.html,
http://sourceforge.net/projects/snortcenter2,
http://andrew/cmu.edu/user/rdanyliw/snort/snortacid.ht
ml).
Snort (4/7)
• Γενικά, ενώ υπάρχουν διάφορα tutorials για το πώς
μπορεί κάποιος να μάθει να γράφει κανόνες στο
Snort, έχει αποδειχθεί ότι για να εξεταστεί η
ορθότητα ενός κανόνα είναι απαραίτητη η εφαρμογή
του κανόνα σε μια πραγματική καταγραφή.
• Είναι γεγονός ότι «οι κανόνες πρέπει να
εφαρμοστούν, αλλαχθούν, επαναεφαρμοστούν και
επαν-αλλαχθούν έτσι ώστε να μειωθούν οι
λανθασμένες ειδοποιήσεις».

Snort (5/7)
• To snort βασίζεται σε ένα σύνολο κανόνων, οι
οποίοι χρησιμοποιούνται:
– Για την παρακολούθηση δικτυακής κίνησης.
– Την καταγραφή συμβάντων.
– Την παραγωγή συναγερμών (alerts).
• Το παρακάτω σχήμα παρουσιάζει μια τυπική
αρχιτεκτονική ασφάλειας.
Snort (6/7)

Εικόνα 1. Τοπολογία. Πηγή: Διδάσκων (2015).

Snort (7/7)
• Οι αισθητήρες του snort, παρακολουθούν τη
δικτυακή κίνηση τόσο στην εξωτερική διεπαφή
του firewall, όσο και στις εσωτερικές αυτού –
στην αποστρατικοποιημένη ζώνη (DMZ), όπου
βρίσκεται ο κεντρικός server (web και mail) και
στο εσωτερικό δίκτυo.
Snort vs tcpdump
• Το Snort είναι αισθητικά αρκετά παρόμοιο με το tcpdump
που είδαμε στο εργαστήριο της προηγούμενης
εβδομάδας με βασικότερη διαφορά το ότι επικεντρώνεται
κυρίως στις εφαρμογές του packet sniffing στον τομέα της
ασφάλειας.
• Το βασικό του χαρακτηριστικό το οποίο δεν υποστηρίζεται
από το tcpdump είναι η δυνατότητα της παρακολούθησης
του payload των πακέτων.
• Το Snort μπορεί να αποκωδικοποιήσει το επίπεδο
εφαρμογής των πακέτων και υποστηρίζει κανόνες για την
συλλογή πακέτων με βάση δεδομένα του επιπέδου
εφαρμογής.

Κανόνες Snort (1/18)


• Οι κανόνες του Snort είναι σχετικά απλοί στο να τους γράψει
κανείς αλλά αρκετά αποτελεσματικοί στο να ανιχνεύσουν
εχθρικά ή απλά ύποπτα πακέτα.
• Ένας κανόνας του Snort αποτελείται από 2 λογικά μέρη το
header και τα options του κανόνα.
• Το header (Εικόνα 1) ορίζει τα χαρακτηριστικά του πακέτου,
καθώς επίσης και το πώς θα ανταποκριθεί το Snort στην
περίπτωση που καταγραφεί κάποιο πακέτο με ίδια
χαρακτηριστικά με αυτά που ορίζει ο κανόνας.
• Το πεδίο Action του header καθορίζει την αντίδραση του
Snort σε περίπτωση καταγραφής πακέτου με τα
χαρακτηριστικά του κανόνα.
Κανόνες Snort (2/18)
• Οι τιμές που μπορεί να λάβει το πεδίο Action
είναι:
– alert: Δημιουργεί μια ειδοποίηση και καταγράφει το
πακέτο.
– log: Καταγράφει το πακέτο.
– pass: Αγνοεί το πακέτο.
– activate: Δημιουργεί ειδοποίηση και στη συνέχεια
ενεργοποιεί έναν άλλο dynamic κανόνα.

Κανόνες Snort (3/18)


• Οι τιμές που μπορεί να λάβει το πεδίο Action
είναι (Συνέχεια):
– dynamic: Ο κανόνας παραμένει ανενεργός μέχρι να
ενεργοποιηθεί δυναμικά και στη συνέχεια λειτουργεί
σαν κανόνας log.
– drop: Παρεμποδίζει και καταγράφει το πακέτο.
– reject: Παρεμποδίζει και καταγράφει το πακέτο και στη
συνέχεια απαντάει με ένα TCP reset ή ICMP port
unreachable.
– sdrop: Παρεμποδίζει αλλά δεν καταγράφει το πακέτο.
Κανόνες Snort (4/18)
• Το Protocol αποτελεί το πρωτόκολλο των πακέτων που
θέλουμε να καταγράψουμε. Οι τιμές που μπορεί να λάβει
είναι TCP, UDP, ICMP ή IP.
• Source Address είναι η IP διεύθυνση του αποστολέα του
πακέτου, Source Port είναι η θύρα του αποστολέα, το
σύμβολο Direction ορίζει την κατεύθυνση της κίνησης του
πακέτου από τον αποστολέα στον παραλήπτη, και
Destination Address και Destination Port είναι η
διεύθυνση και η θύρα του παραλήπτη αντίστοιχα.

Κανόνες Snort (5/18)


• Το πεδίο Direction μπορεί να πάρει 2 τιμές: την “->”
για μονόδρομη κίνηση και την «<>» για αμφίδρομη
κίνηση.
• Για παράδειγμα το alert:
alert tcp any any -> 10.1.1.0/24 79
– Θα εμφανίσει ειδοποιήσεις για όλη την tcp κίνηση που
προορίζεται για το port 79 του κλάσης C δικτύου 10.1.1.
Κανόνες Snort (6/18)

Εικόνα 2. Το Header των κανόνων του Snort1. Πηγή: Διδάσκων (2015).

• Το πεδίο των options ενός κανόνα υπάρχει πάντα μέσα σε


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

Κανόνες Snort (7/18)


• Για παράδειγμα το alert:
alert tcp any any -> 10.1.1.0/24 80 (content: “/cgi-bin/phf”;
msg: “PHF probe!”;)
– Επιδιώκει την αναγνώριση προσπαθειών απόκτησης
πρόσβασης σε υπηρεσίες PHF σε οποιοδήποτε
σύστημα του δικτύου 10.1.1.0/24.
– Σε περίπτωση που ένα τέτοιο πακέτο ανιχνευθεί από
το Snort, θα δημιουργηθεί μια ειδοποίηση με το
μήνυμα: “PHF probe!”.
Κανόνες Snort (8/18)
• Το πεδίο που προσδιορίζει το port (είτε source είτε
destination) μπορεί να εκφραστεί και με ένα εύρος θυρών
χρησιμοποιώντας το “:”.
• Για παράδειγμα για να καταγράψουμε όλα τα μηνύματα
που προορίζονται προς ports στα οποία μπορεί να
εκτελείται ένα X Windows Service (συνήθως πρόκειται για
τις θύρες 6000 έως και 6010), μπορούμε να
χρησιμοποιήσουμε τον κανόνα:
alert tcp any any -> 10.1.1.0/24 6000:6010 (msg: “X traffic”)

Κανόνες Snort (9/18)


• Τόσο οι θύρες όσο και οι διευθύνσεις IP μπορούν να
χρησιμοποιηθούν με το σύμβολο “!” για να εκφράσουν
εξαιρέσεις.
• Για παράδειγμα στον προηγούμενο κανόνα, αν θέλουμε
να καταγράψουμε κίνηση X Windows από πηγές εκτός
δικτύου μπορούμε να γράψουμε:
alert tcp !10.1.1.0/24 any -> 10.1.1.0/24 6000:6010 (msg: “X
traffic”)
Κανόνες Snort (10/18)
• Το Snort υποστηρίζει τα παρακάτω (πιο σημαντικά) πεδία
options.
• content: Ψάχνει στο payload του πακέτου για κάποιο
συγκεκριμένο pattern.
• flags: Ελέγχει τα flags του πακέτου για συγκεκριμένα
settings.
• ttl: Ελέγχει το πεδίο ttl του πακέτου IP.
• itype: Ελέγχει το πεδίο type του πακέτου ICMP.
• minifrag: Ελέγχει την τιμή του threshold για το IP
fragment size.

Κανόνες Snort (11/18)


• id: Ελέγχει το πεδίο id του πακέτου IP.
• ack: Ελέγχει την επικεφαλίδα TCP για την τιμή πεδίου
acknowledgment number.
• seq: Ελέγχει την επικεφαλίδα TCP για την τιμή πεδίου
sequence number (αριθμός ακολουθίας).
• dsize: Ελέγχει το μέγεθος του payload του πακέτου.
• offset: Χρησιμοποιείται μαζί με το content option.
Θέτει τον αριθμό του byte από το οποίο θα αρχίσει να
ψάχνει για το συγκεκριμένο content.
Κανόνες Snort (12/18)
• depth: Χρησιμοποιείται μαζί με το content option. Θέτει
τον αριθμό του byte μέχρι το οποίο θα συνεχίσει να
ψάχνει για το συγκεκριμένο content.
• msg: Καθορίζει το μήνυμα που θα δημιουργηθεί σε
περίπτωση που κάποιο πακέτο ενεργοποιήσει κάποιον
από τους κανόνες.
• sid: Ένας μοναδικός αριθμός – ταυτότητα που
προσδιορίζει μοναδικά τον κάθε κανόνα του snort.
• Για τους κανόνες που θα χρησιμοποιούμε εμείς καλό θα
είναι να χρησιμοποιείται sid >1000000.

Κανόνες Snort (13/18)


• Τα παραπάνω πεδία μπορούν να συνδυαστούν με
οποιονδήποτε τρόπο.
• Το Snort αντιλαμβάνεται τα διάφορα options σε έναν
κανόνα με την παρουσία ενός λογικού AND ανάμεσά τους.
– Θα πρέπει να ικανοποιηθεί το κάθε ένα από αυτά για κάποιο
πακέτο έτσι ώστε να ενεργοποιηθεί ο κανόνας.
• Το Snort παρέχει την δυνατότητα της άμεσης δημιουργίας
νέων κανόνων.
• Ως γνωστό, οι διάφορες επιθέσεις που μπορούν να
πραγματοποιηθούν χαρακτηρίζονται από ένα και μοναδικό
signature.
Κανόνες Snort (14/18)
• Αν γνωρίζουμε αυτό το signature είναι πολύ
εύκολο να δημιουργήσουμε έναν κανόνα για να
το αναγνωρίζει.
• Για παράδειγμα, στην Εικόνα 3 φαίνεται η
καταγραφή ενός πακέτου “IMAP buffer overflow”.

Κανόνες Snort (15/18)

Εικόνα 3. Η καταγραφή ενός πακέτου “IMAP buffer flow”. Πηγή: Διδάσκων (2015).
Κανόνες Snort (16/18)
• Το μοναδικό signature αυτής της επίθεσης στο
επίπεδο εφαρμογής είναι το machine code πριν από
το “/bin/sh” string.
• Χρησιμοποιώντας αυτή την πληροφορία μπορούμε
εύκολα να δημιουργήσουμε έναν κανόνα:
alert tcp any any -> 192.168.1.0/24 143 (content: “|E8C0
FFFF FF|/bin/sh”; msg: “New IMAP buffer Overflow
detected!”)

Κανόνες Snort (17/18)


• Το πεδίο content του κανόνα περιέχει κείμενο τόσο
σε δεκαεξαδική όσο και σε μορφή απλού κειμένου.
• Τα δεδομένα αυτά στη συνέχεια μετατρέπονται από
το Snort σε δυαδική μορφή.
• Ένα άλλο παράδειγμα κανόνα που χρησιμοποιεί το
flag option είναι το παρακάτω:
alert tcp !172.16.210.0/24 any -> 172.16.210.0/24 any
(flags: S; msg: “SYN scan”;)
Κανόνες Snort (18/18)
• Στους κανόνες μπορείτε επιπλέον να χρησιμοποιείτε και
μεταβλητές τις οποίες όμως θα πρέπει να έχετε εκ των
προτέρων δηλώσει και αρχικοποιήσει.
• Για παράδειγμα:
var HOMENET 192.168.1.0/24
alert tcp $HOMENET any -> any any
• Όπως φαίνεται και στο παράδειγμα, αφού δηλώσετε στην
αρχή την μεταβλητή, μπορείτε στη συνέχεια να την
χρησιμοποιήσετε αναφέροντας το όνομά της μετά από το
σύμβολο “$”.

Ασκήσεις (1/9)
• Για την εκπόνηση αυτού του εργαστηρίου
μπορείτε να κατεβάσετε την από την ηλεκτρονική
τάξη το αρχείο clientToolkit.msi.
– Πρόκειται για ένα εργαλείο που υλοποιεί σε ένα
framework πολλά εργαλεία ασφάλειας δικτύων. Αφού
το εγκαταστήσετε επιλέξτε το Snort (Εικόνα 1).
• Το περιβάλλον του Snort το οποίο θα
χρησιμοποιήσουμε στα πλαίσια του εργαστηρίου
φαίνεται στην Εικόνα 4.
Ασκήσεις (2/9)

Εικόνα 4. Το περιβάλλον του Snort που θα χρησιμοποιήσουμε στο εργαστήριο.


Πηγή: Διδάσκων (2015).

Ασκήσεις (3/9)
• Στο πεδίο “Interface”μπορείτε να επιλέξετε το interface το
οποίο θέλετε να «παρακολουθεί» το snort. Επιλέγοντας
αριστερά “Show interf” μπορείτε επιπλέον να δείτε τα
διαθέσιμα network interfaces.
• Στο πεδίο “Sample rule files” μπορείτε να επιλέξετε από
την λίστα το αρχείο με τους έτοιμους κανόνες του snort το
οποίο επιθυμείτε να χρησιμοποιήσετε στην καταγραφή
σας.
• Μπορείτε να επιλέξετε ένα αρχείο από εκεί και στη
συνέχεια αν θέλετε να πατήσετε το “View” για να δείτε ή
τροποποιήσετε τα περιεχόμενα του αρχείου.
Ασκήσεις (4/9)
• Προσπαθήστε για παράδειγμα να καταλάβετε τον κανόνα
που υπάρχει στο αρχείο msn.rules.
• Για να δημιουργήσετε νέους κανόνες θα πρέπει είτε να
τους προσθέσετε σε κάποιο από τα υπάρχοντα αρχεία
.rules ή αλλιώς να φτιάξετε ένα νέο αρχείο με αυτούς
(πάντα με κατάληξη .rules) το οποίο στη συνέχεια θα
πρέπει να αποθηκεύσετε στον φάκελο rules που
βρίσκεται στον φάκελο εγκατάστασης του προγράμματος
(συνήθως στον C:/netwsimsToolkit/).
• Στη συνέχεια μπορείτε να εκτελέσετε μια καταγραφή και
να δημιουργήσετε κατάλληλη κίνηση έτσι ώστε να
ελέγξετε αν οι κανόνες λειτουργούν σωστά.

Ασκήσεις (5/9)
• Μπορείτε οποιαδήποτε στιγμή να δείτε τα alerts τα
οποία έχουν δημιουργηθεί επιλέγοντας αριστερά
«View alert.ids» ή και να «καθαρίσετε» τα
καταγεγραμμένα alerts επιλέγοντας “Delete
alert.ids”.
• Τέλος, μπορείτε οποιαδήποτε στιγμή να σταματήσετε
την καταγραφή σας επιλέγοντας “Stop Capture” ή να
την επανεκκινήσετε επιλέγοντας εκ νέου το interface
που σας ενδιαφέρει από το πεδίο “Interface”.
Ασκήσεις (6/9)
1. Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει ένα land attack.
Χρησιμοποιήστε το λογισμικό frameIP για να δημιουργήσετε την
κατάλληλη κίνηση έτσι ώστε να επαληθεύσετε τον κανόνα σας
2. Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει ένα smurf attack.
Χρησιμοποιήστε τo λογισμικό frameIP.
3. Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει ένα ping death
attack. Το ping death attack αποστέλλει icmp μηνύματα πολύ
μεγάλου μεγέθους έτσι ώστε να υπερφορτώσει τον παραλήτπτη.
Χρησιμοποιήστε τo λογισμικό frameIP ή απλά την εντολή ping –l
1000 <broadcast_ip_του_δικτύου_σας> για να δημιουργήσετε
την κατάλληλη κίνηση έτσι ώστε να επαληθεύσετε τον κανόνα
σας.

Ασκήσεις (7/9)
• Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει την λέξη
“teiwm” στο payload των πακέτων έτσι ώστε:
1. Η λέξη teiwm να υπάρχει στα εξερχόμενα από τον
υπολογιστή σας tcp πακέτα προς το port 80.
2. Στη συνέχεια αλλάξτε τον κανόνα ώστε να αναγνωρίζει την
λέξη teiwm χωρίς διαχωρισμό κεφαλαίων και μικρών
γραμμάτων ( χρησιμοποιήστε σαν παράμετρο την nocase).
3. Η λέξη teiwm να υπάρχει στα εισερχόμενα πακέτα από το
port 80.
 Ελέγξτε τους κανόνες κατάλληλα.
Ασκήσεις (8/9)
• Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει ότι και ο
4.c αλλά ξεκινώντας από το byte 40 του payload έως
και το byte 75.
• Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει το ψηφίο
0x90 στο payload ενός UDP πακέτου με μέγεθος
payload μεγαλύτερο του 6000 bytes.
• Γράψτε έναν κανόνα ο οποίος να ανιχνεύει πακέτα
που προέρχονται από τον υπολογιστή σας προς την
θύρα 53. Σε τι είδους σύστημα θα προορίζονται τα
πακέτα αυτά;

Ασκήσεις (9/9)
• Γράψτε έναν κανόνα ο οποίος θα ανιχνεύει:
Εισερχόμενη κίνηση με τις λέξεις “kastoria” και
“teikoz”. Ελέγξτε ότι ο κανόνας λειτουργεί με το
site http://kastoria.teikoz.gr και όχι με το
www.teikoz.gr.
• Μπορείτε να σκεφτείτε πως το snort
χρησιμοποιείται για την ανίχνευση port scanning
μηνυμάτων;
ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 9: Intrusion Detection Systems - Netfilter


(Μέρος 1)

Σκοποί ενότητας
• Το Linux είναι ένα λειτουργικό σύστηµα που έχει
εκτεταµένες δικτυακές δυνατότητες, εξαιτίας της ίδιας της
φιλοσοφίας µε την οποία έχει σχεδιαστεί.
• Οι πιο σηµαντικές από αυτές τις δυνατότητες είναι το
φιλτράρισµα και η προώθηση πλαισίων, µε γρήγορο και
συνάµα πολύπλευρα παραµετροποιήσιµο τρόπο.
• Σκοπός αυτής της εργαστηριακής άσκησης είναι να µας
μάθει πως να χρησιµοποιούµε αυτές τις δυνατότητες που
παρέχει ο ίδιος ο πυρήνας του Linux µέσω του λογισμικού
netfilter προκειµένου να ασφαλίσουτε το δίκτυο μας από
πιθανές επιθέσεις.
Περιεχόμενα ενότητας
• Εισαγωγή.
• Αλυσίδες του netfilter.
• Διαχείριση αλυσίδων.
• Βιβλιογραφία.

Εισαγωγή (1/3)
• Το netfilter είναι ένα πακέτο λογισµικού που επικοινωνεί
µε τον πυρήνα, επιβάλλοντάς του κανόνες (rules)
δικτυακής "συµπεριφοράς".
• Βάσει αυτών των κανόνων, που εµείς προσδιορίζουµε, ο
πυρήνας φιλτράρει όλα τα πλαίσια δικτύου, που έρχονται,
φεύγουν ή προωθούνται από ένα υπολογιστή δίνοντάς
µας έτσι τη δυνατότητα να αποτρέψουµε την κυκλοφορία
ανεπιθύµητων πακέτων.
• Αυτό το σύνολο των κανόνων, που δηµιουργούνται,
σβήνονται και επιβλέπονται χρησιμοποιώντας την εντολή
iptables, ονοµάζεται firewall και είναι από τα
σημαντικότερα θέµατα που εξετάζει η ασφάλεια δικτύων.
Εισαγωγή (2/3)
• Στις περισσότερες εκδόσεις Linux το netfilter είναι
προεγκατεστημένο.
• Σε περίπτωση που θέλετε να το εγκαταστήσετε ή να
αναβαθμίσετε την έκδοσή του μπορείτε να
χρησιμοποιήσετε την εντολή:
sudo apt-get install iptables

Εισαγωγή (3/3)
• Το netfilter είναι ένα command-line firewall.
• Υπάρχουν διαθέσιμες και αντίστοιχες GUI εκδόσεις όπως
για παράδειγμα το Firestarter (http://www.fs-security.com)
αλλά μαθαίνοντας κανείς μερικές από τις πιο βασικές
εντολές του netfilter θα καταλάβει ότι η χρήση της
command-line έκδοσης, την οποία θα χρησιμοποιήσουμε
και στο εργαστήριο, δεν είναι και τόσο δύσκολη.
• Γενικά θα πρέπει να είμαστε πολύ προσεκτικοί όταν
δημιουργούμε κανόνες στο netfilter γιατί ένας λάθος
κανόνας μπορεί να αποτρέψει όλη την κίνηση από την
υπολογιστική συσκευή μας.
Αλυσίδες του netfilter (1/8)
• Το firewall του Linux εφαρμόζει µία αρθρωτή
(modular) λογική σχεδιασµού µε την έννοια ότι
εφαρμόζουμε οµάδες κανόνων, που ονομάζονται
αλυσίδες (chains), σε πακέτα που έχουν συγκεκριμένα
χαρακτηριστικά και όχι όλους τους κανόνες σε όλα τα
πακέτα.
• Για παράδειγμα ας υποθέσουµε πως θέλουµε να
φιλτράρουµε όλα τα εισερχόµενα πακέτα.
• Το γεγονός ότι όλα εισέρχονται είναι ένα συγκεκριµένο
χαρακτηριστικό που έχουν.

Αλυσίδες του netfilter (2/8)


• Θα δημιουργήσουμε µια αλυσίδα κανόνων για τα
εισερχόµενα πακέτα στην οποία θα προσθέτουµε συνεχώς
κανόνες οι οποίοι θα εφαρµοστούν µόνο σε αυτά.
• Αυτή την αλυσίδα µας την παρέχει έτοιµη το iptables και
ονοµάζεται INPUT.
• Ακόµα ας υποθέσουµε πως θέλουµε να εφαρµοστούν
κάποιοι κανόνες για όλα τα εξερχόµενα πακέτα.
• Οπότε θα χρησιμοποιήσουμε την αλυσίδα OUTPUT
προσθέτοντας κανόνες σε αυτήν βάσει των οποίων θα
προσδιορίζουµε την συμπεριφορά του firewall σε αυτά.
Αλυσίδες του netfilter (3/8)
• Αν ένα πακέτο εισέρχεται τότε θα ελεγχθεί από
όλους τους κανόνες και ΜΟΝΟ από αυτούς που
ανήκουν στην αλυσίδα INPUΤ.
• Το ίδιο ισχύει και για την OUTPUT αν τα πακέτα είναι
εξερχόµενα.
• Όµως αν ένα πακέτο απλώς προωθείται δεν θα
ελεγχθεί από κανένα κανόνα, εκτός και αν
προσθέσουµε κανόνες στην αλυσίδα που µας
παρέχει το iptables για τα προωθούµενα πακέτα που
είναι η FORWARD.

Αλυσίδες του netfilter (4/8)


• Πρέπει να αναφέρουµε πως δεν είναι απαραίτητο να
χρησιµοποιήσουµε µόνο τις αλυσίδες που µας
παρέχονται έτοιµες, αλλά µπορούµε να
δηµιουργήσουµε και δικές µας, όπως θα δούµε
παρακάτω.
• Πρόκειται για μια δυνατότητα που παρέχει το
netfilter, ένα πολύ παραµετροποιήσιµο και πολύ
ισχυρό firewall και όχι µόνο αυτό.
Αλυσίδες του netfilter (5/8)
• Συνοψίζοντας λοιπόν υπάρχουν 3 αλυσίδες στο netfilter:
• INPUT: Η αλυσίδα αυτή χρησιμοποιείται για να ελέγχει την
συμπεριφορά των εισερχόμενων συνδέσεων.
• OUTPUT: Η αλυσίδα αυτή χρησιμοποιείται για να ελέγχει τις
εξερχόμενες συνδέσεις.
• FORWARD: Η αλυσίδα αυτή χρησιμοποιείται για να ελέγχει
εισερχόμενες συνδέσεις οι οποίες όμως παραδίδουν
μηνύματα τοπικά. Π.χ. σε έναν δρομολογητή συνήθως η
κίνηση που διέρχεται από αυτόν δεν στοχεύει στο
παραδοθεί στον ίδιο αλλά προωθείται από τον
δρομολογητή κατάλληλα έτσι ώστε να φτάσει στον προορισμό
του.

Αλυσίδες του netfilter (6/8)


• Ένας τρόπος για να καταλάβετε (σε περίπτωση που δεν το
γνωρίζετε) αν η υπολογιστική συσκευή σας λειτουργεί σαν
σταθμός που προωθεί πακέτα είναι πληκτρολογώντας την
εντολη:
iptables –L –v
• Ένα ενδεικτικό αποτέλεσμα φαίνεται στην εικόνα 1. Η
αλυσίδα INPUT έχει επεξεργαστεί πακέα συνολικού
μεγέθους 11G, η αλυσίδα OUTPUT 17G ενώ η αλυσίδα
FORWARD 0 Bytes.
• Αυτό σημαίνει οτι απο την στιγμή που ξεκίνησε να
λειτουργεί η συγκεκριμένη συσκευή δεν προώθησε κανένα
πακέτο.
Αλυσίδες του netfilter (7/8)

Εικόνα 1. Η εντολή iptables –L –v. Πηγή: Διδάσκων (2015).

Αλυσίδες του netfilter (8/8)


• Γενικά θα πρέπει να θυμόμαστε όταν θέλουμε να
χρησιμοποιήσουμε το netfilter/iptables ότι υπάρχουν
πολλές περιπτώσεις που για να χρησιμοποιηθεί ένα
πρωτόκολλο απαιτεί εισερχόμενη αλλά και
εξερχόμενη επικοινωνία, με αποτέλεσμα να
απαιτείται να ρυθμίζουμε κατάλληλα τόσο το INPUT
όσο και το OUTPUT chain (π.χ. στο SSH).
Διαχείριση αλυσίδων (1/8)
• Για να αντιληφτούμε πώς λειτουργούν οι
αλυσίδες αρκεί να κατανοήσουμε πώς γίνεται η
λογική ροή πακέτων σε ένα Linux σύστηµα, σε
σχέση µε τις αλυσίδες, η οποία φαίνεται στην
Εικόνα 2.

Διαχείριση αλυσίδων (2/8)

Εικόνα 2. Η λογική ροή πακέτων σε ένα Linux σύστημα σε σχέση με τις αλυσίδες.
Πηγή: Διδάσκων (2015).
Διαχείριση αλυσίδων (3/8)
• Για να δούµε όλες τις αλυσίδες του firewall και τους κανόνες
που έχει η κάθε µια αρκεί να πληκτρολογήσουµε:
iptables –L
• To αποτέλεσµα θα είναι παρόµοιο µε το παρακάτω:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination

Διαχείριση αλυσίδων (4/8)


• Που σηµαίνει πως οι υπαρκτές αλυσίδες INPUT,
FORWARD και OUTPUT δεν έχουν κανένα κανόνα και πως
έχουν σαν πολιτική ασφαλείας να δέχονται τα πάντα
(policy ACCEPT).
• Η πολιτική ασφαλείας προσδιορίζει πως να
συµπεριφερθεί µια αλυσίδα αν ένα πακέτο που ελέγχει
δεν ταιριάζει σε κανένα κανόνα ή δεν υπάρχει κανένας
κανόνας σε αυτήν.
• Αν δηλαδή έρθει ένα πακέτο επειδή δεν υπάρχουν
κανόνες στην INPUT αλυσίδα θα εφαρµοστεί η πολιτική
που είναι ACCEPT δηλαδή θα το δεχτούµε.
Διαχείριση αλυσίδων (5/8)
• Η αντίθετη πολιτική που µπορούµε να ορίσουµε
είναι η DROP.
• Μπορούμε να ορίσουμε μια default πολιτική για
κάποια αλυσίδα χρησιµοποιώντας την εντολή:
iptables -P <chain> <policy>
ή iptables --policy <chain> <policy>
– Π.χ. iptables -P FORWARD DROP (απαγορεύει την
προώθηση πακέτων) ή αντίστοιχα . iptables --policy
FORWARD DROP

Διαχείριση αλυσίδων (6/8)


• Θα δούµε µετά με την χρήση πάλι της εντολής
iptables –L πως µε την εµφάνιση του firewall έχει
αλλάξει η πολιτική του FORWARD:
Chain FORWARD (policy DROP)
targetprot opt source destination
• Αν θέλουμε να δούμε μόνο τα default policies για
κάθε chain μπορούμε επίσης να
χρησιμοποιήσουμε την εντολή:
iptables –L | grep policy
Διαχείριση αλυσίδων (7/8)
• Οπότε θα δούμε το παρακάτω αποτέλεσμα.
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy DROP)
Chain OUTPUT (policy ACCEPT)
• Η πρώτη απόφαση που καλούμαστε να λάβουμε
όταν ρυθμίζουμε ένα firewall είναι η default
πολιτική της κάθε αλυσίδας.
• Εξ’ ορισμού η πολιτική που ακολουθείται σε κάθε
αλυσίδα είναι η ACCEPT.

Διαχείριση αλυσίδων (8/8)


• Αν θελήσουμε να ακολουθήσουμε αυτή την πολιτική θα
πρέπει στη συνέχεια να δημιουργήσουμε κανόνες σχετικά
με την κίνηση η οποία θέλουμε να απορρίπτεται από το
firewall.
• Αν πάλι επιλέξουμε να αλλάξουμε την default πολιτική
μιας ή όλων των αλυσίδων σε DROP θα πρέπει να
ορίσουμε παρακάτω με κανόνες ποιά θα είναι η κίνηση
που θα επιτρέπουμε να περνάει από το firewall.
• Σκεφτείτε ένα ουσιαστικό παράδειγμα όπου θα θέλουμε
να χρησιμοποιήσουμε αποκλειστικά την πολιτική ACCEPT
και όχι την DROP.
ΕΡΓΑΣΤΗΡΙΟ

Ενότητα 10: Intrusion Detection Systems - Netfilter


(Μέρος 2)

Σκοποί ενότητας
• Σκοπός αυτής της εργαστηριακής άσκησης
είναι να µας μάθει πως να χρησιµοποιούµε
κάποιες επιπρόσθετες λειτουργίες του
λογισμικού netfilter.
Περιεχόμενα ενότητας
• Φιλτράρισµα πακέτων.
• Φιλτράρισμα πακέτων µε βάση την κατάσταση µίας
σύνδεσης.
• Firewall και διευθύνσεις loopback.
• Αποθήκευση, άδειασμα και διαγραφή εντολών από
το firewall.
• Βιβλιογραφία.

Φιλτράρισµα πακέτων (1/11)


• Το επόμενο βήμα είναι να δημιουργήσουμε τους κανόνες με
βάση τους οποίους θα ορίζουν πως θα αντιδρά το firewall
όταν λαμβάνει κίνηση από συγκεκρμένες IP ή/και ports.
• Οι πιθανές “αντιδράσεις” του firewall είναι οι παρακάτω:
– ACCEPT: Επιτρέπει την κίνηση.
– DROP: Αποτρέπει την κίνηση. Χρησιμοποιείται γι απαράδειγμα όταν
δεν θέλουμε η πηγή της κίνησης να γνωρίζει αν το σύστημά μας
είναι ενεργό.
– REJECT: Αποτρέπει την κίνηση αλλά απαντάει με μήνυμα error.
Χρησιμοποιείται όταν θέλουμε να αποτρέψουμε συγκεκριμένη
κίνηση αλλά θέλουμε η πηγή της κίνησης να γνωρίζει ότι το firewall
απέρριψε την κίνηση.
Φιλτράρισµα πακέτων (2/11)

Εικόνα 1. ACCEPT. Πηγή: Διδάσκων (2015).

Φιλτράρισµα πακέτων (3/11)

Εικόνα 2. DROP. Πηγή: Διδάσκων (2015).


Φιλτράρισµα πακέτων (4/11)

Εικόνα 3. REJECT. Πηγή: Διδάσκων (2015).

Φιλτράρισµα πακέτων (5/11)


• Το παρακάτω παράδειγμα μας δείχνει πως μπορούμε να
παρεμποδίσουμε όλες τις συνδέσεις από την διεύθυνση
10.10.10.10.
iptables -A INPUT -s 10.10.10.10 -j DROP
• Η παράμετρος –A προσθέτει τον συγκεκριμένο κανόνα στο τέλος
της αλυσίδας.
• Το iptables όταν ελέγχει τους κανόνες σε κάθε αλυσίδα ξεκινάει
από την αρχή και ελέγχει έναν-έναν τους κανόνες μέχρι να βρει
κάποιον που να ταιριάζει ή αλλιώς μέχρι και το τέλος.
• Αυτό σημαίνει οτι αν κατά λάθος έχουμε βάλει 2 κανόνες οι
οποίοι αναιρούν ο ένας το άλλον, αυτός που θα εφαμοστεί θα
είναι αυτός ο οποίος βρίσκεται πιο ψηλά στην αλυσίδα.
Φιλτράρισµα πακέτων (6/11)
• Αν θέλουμε λοιπόν να τοποθετήσουμε κάποιον κανόνα σε
συγκεκριμένο σημείο στην αλυσίδα θα πρέπει να
ορίσουμε τον αριθμό στην σειρά κατάταξης της αλυσίδας
που επιθυμούμε να έχει ο κανόνας που φτιάχνουμε.
• Π.χ. αν δεν επιθυμούμε να λαμβάνουμε πακέτα από την
διεύθυνση 10.10.10.10 μπορούμε να χρησιμοποιήσουμε
τον κανόνα:
iptables –I INPUT 2 –s 10.10.10.10 –j DROP

Φιλτράρισµα πακέτων (7/11)


• Επιπλέον, ας υποθέσουµε πως δεν θέλουµε καµία
εφαρµογή µας να στείλει καµίας µορφής πλαίσιο σε
αυτό τον υπολογιστή υποπτευόµενοι πως µπορεί να
έχουµε ένα trojan στο σύστηµά µας, οπότε αρκεί να
δώσουµε:
iptables -A OUTPUT -d 10.10.10.10 -j DROP
Φιλτράρισµα πακέτων (8/11)
• Μπορουμε επίσης να δημιουργήσουμε κανόνα που να
αναφέρεται σε διευθύνσεις δικτύου:
iptables -A INPUT -s 10.10.10.0/24 -j DROP ή
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
• Για να κλείσουµε ένα tcp port, για παράδειγµα το port
που χρησιµοποιεί το telnet, δηλαδή το 23, ώστε κανένας
να µην έχει αποµακρυσµένη πρόσβαση στον υπολογιστή
µας αρκεί να χρησιµοποιήσουµε την παρακάτω εντολή:
iptables -A INPUT -p tcp --dport 23 -j DROP

Φιλτράρισµα πακέτων (9/11)


• Με αυτή την εντολή είπαµε στο firewall να προσθέσει
ένα κανόνα στην αλυσίδα INPUT (-A INPUT) ο οποίος
αφορά το πρωτόκολλο tcp (-p tcp).
• Ο ίδιος ο κανόνας δηλαδή ορίζει πως όλα τα tcp
εισερχόµενα πακέτα που έχουν σαν προορισµό το
port 23 (--dport 23) να απορρίπτονται (-j DROP).
• Πρέπει να καταστήσουµε σαφές πως απορρίπτονται
µόνο τα πακέτα που έχουν σαν προορισµό το tcp port
23 του υπολογιστή µας από όποιο port και να
ξεκινούν.
Φιλτράρισµα πακέτων (10/11)
• Αν θελήσουµε για παράδειγµα να κόψουµε όλα
τα πακέτα που ξεκινούν από το port 23 και
καταλήγουν σε οποιοδήποτε δικό µας αρκεί να
πληκτρολογήσουµε:
iptables -A INPUT -p tcp --sport 23 -j DROP
• Οπότε τελικά κόβουµε και µε τους δύο αυτούς
κανόνες οποιαδήποτε εισερχόµενη ροή από το
default port του telnet.

Φιλτράρισµα πακέτων (11/11)


• Για να µην µπορεί καµία εφαρµογή µας να
δηµιουργεί εξερχόµενη κίνηση προς το 23
κάποιου υπολογιστή ή από το 23 του δικού µας
προς οποιοδήποτε, αρκεί να εφαρµόσουµε
αυτούς τους δύο κανόνες και στο OUTPUT chain.
• ∆ηλαδή:
iptables -A OUTPUT -p tcp --sport 23 -j DROP
iptables -A OUTPUT -p tcp --dport 23 -j DROP
Φιλτράρισμα πακέτων µε βάση την
κατάσταση µίας σύνδεσης (1/7)
• Όλες οι προαναφερθείσες µέθοδοι που
χρησιµοποιήσαµε µέχρι τώρα έχουν ένα πολύ
σηµαντικό κοινό χαρακτηριστικό που είναι συνάµα
και µειονέκτηµα.
• Αυτό είναι ότι όλοι οι κανόνες φιλτραρίσματος είναι
στατικοί που σημαίνει ότι τους ορίζουμε και
εφαρµόζονται µε αυτόν τον τρόπο.
• Ένα firewall που χρησιμοποιεί αποκλειστικά τέτοιους
κανόνες ονομάζεται stateless.

Φιλτράρισμα πακέτων µε βάση την


κατάσταση µίας σύνδεσης (2/7)
• Αυτό βέβαια ορισμένες φορές δεν είναι επιθυµητό
γιατί θα θέλαµε ο πυρήνας να καταλαβαίνει ορισµένα
πράγµατα από µόνος του.
• Για να καταστήσουµε σαφές τι εννοούµε αρκεί να
αναφέρουµε ένα παράδειγµα.
• Ας υποθέσουµε πως θέλουµε να εγκαταστήσουµε µια
σύνοδο telnet από τον υπολογιστή µας σε έναν άλλο.
• Για να γίνει αυτό ο υπολογιστής στέλνει και λαµβάνει
πακέτα χρησιµοποιώντας το tcp port 23.
Φιλτράρισμα πακέτων µε βάση την
κατάσταση µίας σύνδεσης (3/7)
• Ακόµα ας υποθέσουµε πως κάποιος αρχίζει µια
επίθεση στέλνοντας διάφορα κακόβουλα πακέτα στο
23 προκειµένου να δηµιουργήσει σύγχυση στη
σύνδεσή µας και να κερδίσει το µηχάνηµα.
• Αν ορίσουµε στο firewall να απορρίπτει κάθε πακέτο
που αφορά το 23 τότε αυτόµατα αποκόπτουµε και
τον εαυτό µας από τον υπολογιστή στον οποίο
συνδεόµαστε οπότε υπάρχει πρόβληµα.

Φιλτράρισμα πακέτων µε βάση την


κατάσταση µίας σύνδεσης (4/7)
• Μία πρώτη λύση που φαίνεται είναι να κόψουµε την IP
του, αλλά αν µας επιτεθούν από 15 άλλες θα χρειαστεί να
τις βάλουµε όλες και δεν είναι δυνατό να εφαρµόζουµε
την ίδια τακτική κάθε φορά.
• Αυτό που µένει λοιπόν είναι να µπορεί να καταλαβαίνει
το firewall ποια πακέτα αφορούν µια σύνδεση και να
απορρίπτει όλα όσα δεν συσχετίζονται µε κάποια.
• Ο κανόνας που εφαρµόζουµε συντάσσεται ως εξής.
iptables -A INPUT -p tcp --dport 23 -m state --state INVALID -j
DROP
Φιλτράρισμα πακέτων µε βάση την
κατάσταση µίας σύνδεσης (5/7)
• Αυτό που θα έπρεπε να µας προβληµατίζει στον
παραπάνω κανόνα είναι η παράµετρος -m state η
οποία επιβάλει τη χρήση του module για stateful
firewalling που το κάνει δηλαδή να "καταλαβαίνει"
τις ενεργές συνδέσεις και να απορρίπτει (-j DROP)
όσα πακέτα προορίζονται για το tcp port 23 και δεν
έχουν σχέση µε καµία ενεργή σύνδεση (--state
INVALID).

Φιλτράρισμα πακέτων µε βάση την


κατάσταση µίας σύνδεσης (6/7)
• Γενικά ένα πακέτο μπορεί να βρίσκεται σε μια
από τις παρακάτω καταστάσεις.
1. New: Το πακέτο δεν ανήκει σε καμία υπάρχουσα
σύνδεση ή socket και έχει ενεργοποιημένο το
TCP SYN flag.
2. Established: Tο πακέτο ανήκει σε κάποια
υπάρχουσα σύνδεση ή socket και έχει
ενεργοποιημένο κάποιο από τα TCP flags εκτός
από το SYN.
Φιλτράρισμα πακέτων µε βάση την
κατάσταση µίας σύνδεσης (7/7)
3. Related: Το πακέτο δεν ανήκει σε καμία
υπάρχουσα σύνδεση ή socket αλλά θεωρείται
αναμενόμενο από κάποιο socket. Κλασικό
παράδειγμα σε αυτήν τη κατηγορία είναι πακέτα
που ανταλλάσσονται με ftp όπου η σύνοδος FTP
δημιουργείται στο port 21 αλλά στη συνέχεια τα
πραγματικά δεδομένα μεταφέρονται από το port
20.
4. Invalid: Το πακέτο ανήκει σε αυτήν την
κατάσταση όταν δεν ανήκει σε καμία από τις
προηγούμενες.

Firewall και διευθύνσεις


loopback (1/2)
• Σκεφτείτε την περίπτωση όπου η default πολιτική για τις
αλυσίδες INPUT και OUTPUT είναι η DROP.
• Αυτό σημαίνει ότι όλη η κίνηση που διέρχεται από το
firewall από ή προς την υπολογιστική συσκευή σας
απορρίπτεται εκτός εάν υπάρχει κάποιος κανόνας ο
οποίος να την επιτρέπει ρητά.
• Σε μα τέτοια πολιτική ο διαχειριστής του firewall θα
πρέπει να μην ξεχνάει την διαχείριση κανόνων σχετικά με
το loopback interface της συσκευής μας.
• Δοκιμάστε για παράδειγμα να αλλάξετε την πολιτική των
αλυσίδων INPUT και OUTPUT σε DROP.
Firewall και διευθύνσεις
loopback (2/2)
• Στη συνέχεια κάντε μια ping στην loopback
διεύθυνση του υπολογιστή σας. Τι παρατηρείτε;
• Για να διορθώσετε το πρόβλημα εκτελέστε τις
ακόλουθες εντολές:
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o
lo -j ACCEPT
• Δοκιμάστε ξανά να εκτελέσετε ping στην loopback
διεύθυνση του υπολογιστή σας. Τι παρατηρείτε
τώρα; Γιατί;

Αποθήκευση, άδειασμα και διαγραφή


εντολών από το firewall (1/2)
• Για να αποθηκεύσετε τις εντολές που έχετε
δημιουργήσει πρέπει να εκτελέσετε:
/sbin/iptables-save ή
service iptables save
• Για να διαγράψετε όλες τις εντολές που έχετε
δημιουργήσει πρέπει να εκτελέσετε:
iptables – F
Αποθήκευση, άδειασμα και διαγραφή
εντολών από το firewall (2/2)
• Για να διαγράψετε μια συγκεκριμένη εντολή μπορείτε να
εκτελέσετε την εντολή όπως την εκτελέσατε για να την
εισάγετε στο firewall απλά αντί για την παράμετρο -Α θα
χρησιμοποιήσετε την παράμετρο -D.
• Εναλλακτικά μπορείτε να χρησιμοποιήσετε π.χ. την εντολή:
iptables -D INPUT --line-number
• Όπου --line-numbers ο αριθμός της γραμμής που βρίσκεται
ο κανόνας στην αλυσίδα.
• Αν θέλετε να δείτε τους κανόνες μιας αλυσίδας
αριθμημένους μπορείτε να εκτελέσετε π.χ. iptables -L INPUT
-n --line-numbers.

You might also like