Ασφάλεια στο Internet

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Τα πρωτόκολλα του Internet

Εφαρμογή

Το επίπεδο εφαρμογής στο Internet καλύπτει τα επίπεδα εφαρμογής και παρουσίασης του OSI. Τα πιο συχνά πρωτόκολλα που χρησιμοποιούνται από τους χρήστες είναι:
Telnet
χρήση από απόσταση
FTP
μεταφορά αρχείων
SMTP
μεταφορά email
POP/IMAP
ανάγνωση email
HTTP/HTML
πρόσβαση στο Web

Μια σειρά από πρωτόκολλα στο επίπεδο αυτό υποστηρίζουν τη λειτουργία και τη διαχείριση του δικτύου:

DNS
Κατανεμημένος κατάλογος ονομάτων
SNMP
Διαχείριση από απόσταση
BOOTP
Αρχικό φόρτωμα κώδικα
RARP
Αντίστροφη μετατροπή διευθύνσεων

Μεταφορά

Στο επίπεδο της μεταφοράς χρησιμοποιούνται δύο πρωτόκολλα:
TCP
Transmission Control Protocol
UDP
User Datagram Protoco

Δίκτυο

Στο επίπεδο του δικτύου το Internet Protocol (IP) μαζί με το Internet Control Message Protocol εξασφαλίζουν τη μεταφορά δεδομένων από τον αποστολέα στον παραλήπτη. Το παρακάτω σχήμα παριστάνει τη σχέση ανάμεσα στα διάφορα πρωτόκολλα του internet:
                                    
	 +------+ +-----+ +-----+     +-----+  
	 |Telnet| | FTP | | TFTP| ... | ... |  
	 +------+ +-----+ +-----+     +-----+  
	       |   |         |           |     
	      +-----+     +-----+     +-----+  
	      | TCP |     | UDP | ... | ... |  
	      +-----+     +-----+     +-----+  
		 |           |           |     
	      +--------------------------+----+
	      |    Internet Protocol & ICMP   |
	      +--------------------------+----+
			     |                 
		+---------------------------+  
		|   Local Network Protocol  |  
		+---------------------------+  
Σημείωση: Τα σχήματα της ενότητας αυτής προέρχονται από τα έντυπα RFC που αναφέρονται στη βιβλιογραφία.

IP

Πακέτα στο επίπεδο του δικτύου internet έχουν την παρακάτω μορφή:
    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version|  IHL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Οι διευθύνσεις αποστολέα και παραλήπτη χωρίζονται στις παρακάτω κατηγορίες:
      Αρχικά bit        Μορφή                            Κλάση
      ---------------   -------------------------------  -----
            0            7 bit δίκτυο, 24 υπολογιστής    A
            10          14 bit δίκτυο, 16 υπολογιστής    B
            110         21 bit δίκτυο,  8 υπολογιστής    C
            1110        Πολλαπλοί παραλήπτες         	 D

ICMP

Το Internet Control Message Protocol (ICMP) επιτρέπει την επικοινωνία ανάμεσα σε υπολογιστές και δίκτυα για την ομαλή λειτουργία του IP. Αν και το ICMP χρησιμοποιεί το IP για τη μεταφορά του, αποτελεί τμήμα του IP. Το ICMP ορίζει τα παρακάτω μηνύματα:
0
Echo Reply
3
Destination Unreachable
4
Source Quench
5
Redirect
8
Echo
11
Time Exceeded
12
Parameter Problem
13
Timestamp
14
Timestamp Reply
15
Information Request
16
Information Reply

UDP

Το πρωτόκολλο UDP επιτρέπει τη μεταφορά πακέτων μέσω ενός δικτύου IP. Τα πακέτα μπορούν να χαθούν, να παραδοθούν με διαφορετική σειρά, ή να εμφανιστούν διπλά. Έτσι το πρωτόκολλο εξασφαλίζει αποδοτικότητα σε βάρος όμως της αξιοπιστίας. Ένα πακέτο UDP μαζί με την επικεφαλίδα IP έχει την παρακάτω μορφή:
	  0      7 8     15 16    23 24    31  
	 +--------+--------+--------+--------+
	 |          source address           |  IP
	 +--------+--------+--------+--------+  IP
	 |        destination address        |  IP
	 +--------+--------+--------+--------+ 
	 |  zero  |protocol|   UDP length    |  UDP
	 +--------+--------+--------+--------+  UDP
	 |     Source      |   Destination   |  UDP
	 |      Port       |      Port       |  UDP
	 +--------+--------+--------+--------+  UDP
	 |                 |                 |  UDP
	 |     Length      |    Checksum     |  UDP
	 +--------+--------+--------+--------+  UDP
	 |                                      UDP
	 |          data octets ...             UDP
	 +---------------- ...               

TCP

Το πρωτόκολλο TCP (Transmission Control Protocol) επιτρέπει τη σύνδεση δύο διεργασιών και τη μεταξύ τους επικοινωνία. Το TCP θεωρεί ότι το δίκτυο στο οποίο βασίζεται παρέχει τη δυνατότητα μεταφοράς πακέτων χωρίς εγγυήσεις σχετικά με τη σειρά που θα παραδοθούν, την απώλεια πακέτων ή τη διπλή παράδοσή τους. Πάνω από ένα τέτοιο δίκτυο το TCP παρέχει αξιόπιστη μεταφορά δεδομένων. Οι βασικές υπηρεσίες που παρέχει το TCP είναι οι παρακάτω: Η μορφή της επικεφαλίδας του TCP είναι η παρακάτω:
    0                   1                   2                   3   
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Source Port          |       Destination Port        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Sequence Number                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Acknowledgment Number                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Data |           |U|A|P|R|S|F|                               |
   | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
   |       |           |G|K|H|T|N|N|                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |         Urgent Pointer        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Τα bit URG...FIN έχουν τους παρακάτω ρόλους:
URG
Το πεδίο Urgent Pointer περιέχει δεδομένα
ACK
Το πεδίο Acknowledgment περιέχει δεδομένα
PSH
Λειτουργία Push
RST
Επαναρύθμιση της σύνδεσης
SYN
Συγχρονισμός των αριθμών της σειράς
FIN
Δεν υπάρχουν άλλα δεδομένα από τον αποστολέα

Υπηρεσίες και ασφάλεια

Οι υπηρεσίες που παρέχονται από μηχανήματα που είναι συνδεδεμένα στο Internet έχουν η κάθε μια τις δικές τους απαιτήσεις σχετικά με την προστασία τους. Οι απαιτήσεις προστασίας πρέπει να διαχωριστούν και να αντιμετωπιστούν διαφορετικά ανάλογα με το αν: Οι υπηρεσίες που είναι προσβάσιμες από όλο το Internet και ειδικά αυτές που εξυπηρετούν και χρήστες του οργανισμού μέσω του Internet πρέπει να προστατεύονται με προσοχή. Ακόμα, καλό είναι υπηρεσίες που εξυπηρετούν αποκλειστικά χρήστες μέσα στον οργανισμό να μη βρίσκονται στο ίδιο μηχάνημα με υπηρεσίες που είναι προσβάσιμες από το Internet. Τα μηχανήματα των δύο κατηγοριών καλό είναι να διαχωρίζονται με ένα (σωστά διαμορφωμένο) firewall.

Κατάλογοι ονομάτων

Η υπηρεσία Domain Name System (DNS) μεταφράζει μεταξύ άλλον ονόματα σε διευθύνσεις. Αν κάποιος εξασφαλίσει παράνομα τον έλεγχο της υπηρεσίας αυτής μπορεί να αλλάξει τη ροή των πακέτων επηρεάζοντας το σύστημα ασφάλειας. Για παράδειγμα με τον τρόπο αυτό οι χρήστες μπορεί να έχουν πρόσβαση σε ένα μηχάνημα που ελέγχει ο εχθρός νομίζοντας πως έχουν πρόσβαση σε ένα κανονικό μηχάνημα του οργανισμού. Οι δευτερεύοντες εξυπηρετητές DNS πρέπει να είναι προστατευμένοι, ενώ οι πρωτεύοντες πρέπει να προστατεύονται και από επιθέσεις άρνησης εξυπηρέτησης (denial of service attacks) με τη χρήση φίλτρων πακέτων. Η υπηρεσία DNS δεν προσφέρει εξασφάλιση ακεραιότητας και εμπιστευτικότητας, αν και η κατάσταση αυτή αλλάζει με τη χρήση ηλεκτρονικών υπογραφών (βλ. RFC 2065 (ftp://ftp.internic.net/rfc/rfc2065.txt)).

Εξυπηρετητές κλειδιών

Εξυπηρετητές ηλεκτρονικού ταχυδρομείου

Εξυπηρετητές Web

Ο δημόσιος υπηρέτης Web (σε αντίθεση με έναν εσωτερικό υπηρέτη εσωδικτύου (intranet)) είναι τυπικά προσβάσιμος απ' όλο το Internet. Οι παρακάτω συστάσεις μπορούν να ελαττώσουν τους αντίστοιχους κινδύνους:

Εξυπηρετητές FTP

Ο δημόσιος υπηρέτης για μεταφορά αρχείων μέσω του File Transfer Protocol (FTP) είναι τυπικά προσβάσιμος απ' όλο το Internet. Οι παρακάτω συστάσεις μπορούν να ελαττώσουν τους αντίστοιχους κινδύνους:

Εξυπηρετητές αρχείων

Βιβλιογραφία