Ασφάλεια Πληροφοριακών Συστημάτων Δρ. Γιώργος Αγγελινός Μηχανισμοί ελέγχου προσπέλασης
Εισαγωγή (1/2) Έλεγχος Προσπέλασης: μηχανισμοί που υλοποιεί κάποιο υπολογιστικό σύστημα, με σκοπό να προστατεύσει από μη εξουσιοδοτημένη προσπέλαση τα δεδομένα εκείνα τα οποία επηρεάζουν την ασφάλεια του συστήματος και είναι αποθηκευμένα στη μνήμη, στους καταχωρητές ή σε οποιοδήποτε άλλο τμήμα του. 2 Τμήμα Ψηφιακών Συστημάτων
Εισαγωγή (2/2) Παραδοσιακά λειτουργικά συστήματα: προσφέρουν διαφορετικούς γενικούς τρόπους προσπέλασης των διαθέσιμων πόρων κοινοί για όλες τις κατηγορίες χρηστών και ανεξάρτητοι του τύπου των δεδομένων. Σύγχρονα λειτουργικά συστήματα: προσφέρουν λειτουργίες προσπέλασης προσανατολισμένες στις συγκεκριμένες ανάγκες κάθε ανεξάρτητου χρήστη. 3 Τμήμα Ψηφιακών Συστημάτων
Ορισμοί K t =η κατάσταση ενός συστήματος τη χρονική στιγμή t Κατάσταση προστασίας: το υποσύνολο των τιμών που σχετίζεται με την προστασία του συστήματος P=το σύνολο όλων των πιθανών καταστάσεων προστασίας Q ⊂ P =τ ο σύνολο των καταστάσεων προστασίας που είναι εξουσιοδοτημένο το σύστημα να βρίσκεται Κάθε φορά που η κατάσταση του συστήματος ανήκει στο Q το σύστημα είναι ασφαλές Κάθε φορά που η κατάσταση του συστήματος ανήκει στο [P-Q] το σύστημα είναι ανασφαλές 4 Τμήμα Ψηφιακών Συστημάτων
Εννοιολογική Θεμελίωση (1/3) Ένα υποκείμενο προσπαθεί να προσπελάσει ένα αντικείμενο αξιοποιώντας κάποια λειτουργία προσπέλασης που προσφέρει το υπολογιστικό σύστημα. S Ένα σύνολο υποκειμένων S ( χρήστες, διεργασίες ) O Ένα σύνολο αντικειμένων O ( αρχεία και άλλοι υπολογιστικοί πόροι ) Α Ένα σύνολο λειτουργιών προσπέλασης Α 5 Τμήμα Ψηφιακών Συστημάτων
Εννοιολογική Θεμελίωση (2/3) Κάθε οντότητα του υπολογιστικού συστήματος μπορεί να δρα ως υποκείμενο (ενεργή οντότητα) ή ως αντικείμενο (παθητική οντότητα). Δικαιώματα προσπέλασης: Οι ενέργειες που επιτρέπεται να εκτελέσει κάποιο υποκείμενο Οι ενέργειες που επιτρέπεται να εκτελεστούν σε κάποιο αντικείμενο Ιδιοκτήτης (owner) & ιδιοκτησία Διαχειριστής (administrator) = ή ≠ Ιδιοκτήτης ; 6 Τμήμα Ψηφιακών Συστημάτων
Εννοιολογική Θεμελίωση (3/3) Ο καθορισμός και ο έλεγχος των τρόπων εκχώρησης δικαιωμάτων προσπέλασης, καθώς και των τρόπων που τα υποκείμενα μπορούν να προσπελάσουν κάποια αντικείμενα, υλοποιείται μέσω της πολιτικής ασφάλειας. Πολιτική Διακριτικού Ελέγχου Προσπέλασης, Discretionary Access Control – DAC Πολιτική Υποχρεωτικού Ελέγχου Προσπέλασης, Mandatory Access Control – MAC 7 Τμήμα Ψηφιακών Συστημάτων
Λειτουργίες Προσπέλασης Λειτουργίες για την προσπέλαση των πόρων του υπολογιστικού συστήματος: Λειτουργίες ανάγνωσης/εγγραφής της μνήμης Κλήσεις μεθόδων σε αντικειμενοστραφή συστήματα κ.λπ. Σημαντικές διαφοροποιήσεις των λειτουργιών προσπέλασης μεταξύ υπολογιστικών συστημάτων. Περιπτώσεις λειτουργιών που φαίνονται ίδιες, ενώ στην πράξη υλοποιούνται διαφορετικά σε κάθε υπολογιστικό σύστημα. 8 Τμήμα Ψηφιακών Συστημάτων
Λειτουργίες Προσπέλασης: Τρόποι Προσπέλασης (Access Modes) Τρόποι προσπέλασης: Παρατήρηση (Observe): Ανάγνωση των περιεχομένων του αντικειμένου Τροποποίηση (Alter): Τροποποίηση των περιεχομένων του αντικειμένου Αν και η πλειονότητα των πολιτικών ελέγχου προσπέλασης θα μπορούσαν να εκφραστούν μέσω των δύο αυτών τρόπων προσπέλασης, το πρόβλημα είναι ότι η περιγραφή μιας τέτοιας πολιτικής είναι εξαιρετικά δύσκολο να συσχετιστεί με τις εφαρμογές στις οποίες αναφέρεται. Προκύπτει λοιπόν η ανάγκη για ένα ευρύτερο φάσμα λειτουργιών προσπέλασης. 9 Τμήμα Ψηφιακών Συστημάτων
Λειτουργίες Προσπέλασης Δικαιώματα Προσπέλασης του μοντέλου Bell- LaPadula (1/2) Σε επόμενο επίπεδο πολυπλοκότητας κατατάσσονται τα δικαιώματα προσπέλασης του μοντέλου ασφάλειας Bell-LaPadula, που είναι: Εκτέλεση (Execute) Ανάγνωση (Read) Προσθήκη (Append) Εγγραφή (Write) 10 Τμήμα Ψηφιακών Συστημάτων
Λειτουργίες Προσπέλασης Δικαιώματα Προσπέλασης του μοντέλου Bell- LaPadula (2/2) Η συσχέτισή τους με τους δύο βασικούς τρόπους προσπέλασης είναι: 11 Τμήμα Ψηφιακών Συστημάτων ΠαρατήρησηΤροποποίηση Εκτέλεση ΠροσθήκηΧ ΑνάγνωσηΧ ΕγγραφήΧΧ
Λειτουργίες Προσπέλασης Χαρακτηριστικά Προσπέλασης του ΛΣ Multics (1/2) Το λειτουργικό σύστημα Multics διαφοροποιεί τα χαρακτηριστικά προσπέλασης για τα τμήματα δεδομένων και τους καταλόγους. Για τα τμήματα δεδομένων ορίζονται τα: Ανάγνωση (Read) Εγγραφή (Write) Εκτέλεση (Execute) ενώ για τους καταλόγους τα: Κατάσταση (Status) Προσθήκη (Append) Εύρεση (Search) Αλλαγή (Modify) 12 Τμήμα Ψηφιακών Συστημάτων
Λειτουργίες Προσπέλασης Χαρακτηριστικά Προσπέλασης του ΛΣ Multics (1/2) Η συσχέτιση των χαρακτηριστικών προσπέλασης του λειτουργικού συστήματος Multics με τα δικαιώματα προσπέλασης του μοντέλου Bell-LaPadula παρουσιάζεται στον παρακάτω πίνακα: 13 Τμήμα Ψηφιακών Συστημάτων Multics Τμήματα Δεδομένων Bell- LaPadula Ανάγνωση ΕκτέλεσηΕκτέλεση, Ανάγνωση Ανάγνωση, Εγγραφή Εγγραφή Προσθήκη Multics Κατάλογοι Bell- LaPadula ΚατάστασηΑνάγνωση Κατάσταση, Αλλαγή Εγγραφή Προσθήκη ΕύρεσηΕκτέλεση
Λειτουργίες Προσπέλασης: Λειτουργικό Σύστημα UNIX (1/2) Μηχανισμός ελέγχου προσπέλασης του ΛΣ UNIX για αρχεία: Ανάγνωση: Ανάγνωση από κάποιο αρχείο Εγγραφή:Εγγραφή σε κάποιο αρχείο Εκτέλεση: Εκτέλεση ενός προγράμματος – αρχείου Οι λειτουργίες αυτές διαφέρουν από αυτές που ορίζει το μοντέλο Bell-LaPadula. Για παράδειγμα, στο Unix η λειτουργία εγγραφής δε σημαίνει ότι αυτομάτως κάποιος αποκτά και δικαίωμα ανάγνωσης του αντικειμένου. 14 Τμήμα Ψηφιακών Συστημάτων
Λειτουργίες Προσπέλασης: Λειτουργικό Σύστημα UNIX (2/2) Για λειτουργίες προσπέλασης που αναφέρονται σε καταλόγους, το νόημά τους διαφοροποιείται: Ανάγνωση: Ανάγνωση των περιεχομένων του καταλόγου Εγγραφή: Δημιουργία νέου αρχείου ή μετονομασία ενός υπάρχοντος αρχείου στον κατάλογο Εκτέλεση: Αναζήτηση στον κατάλογο Το UNIX δεν υποστηρίζει τη λειτουργία Διαγραφή, καθώς την υλοποιεί μέσω της λειτουργίας Εγγραφή στον κατάλογο. 15 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (1/10) Το μοντέλο του Πίνακα Ελέγχου Προσπέλασης (Access Control Matrix Model) είναι το πλέον ακριβές για την περιγραφή μιας Κατάστασης Προστασίας ενός υπολογιστικού συστήματος. Προσδιορίζει τα δικαιώματα κάθε υποκειμένου σε σχέση με όλα τα αντικείμενα του συστήματος. Προτάθηκε από τον B. Lampson και βελτιώθηκε από τους G. Graham και P. Denning. 16 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (2/10) Τα δικαιώματα προσπέλασης απεικονίζονται μέσω ενός Πίνακα Μ = (M so ) s S, o O όπου M so Α M so Α s ο Ο όρος M so που είναι υποσύνολο του συνόλου των λειτουργιών προσπέλασης Α που υποστηρίζονται από το σύστημα, καθορίζει όλα τα δικαιώματα - λειτουργίες προσπέλασης που το υποκείμενο s μπορεί να εκτελέσει στο αντικείμενο ο. (S, O, M) Συνεπώς οι καταστάσεις προστασίας του εν λόγω συστήματος αποδίδονται από την ομάδα (S, O, M) 17 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (3/10) Δ Χ Α Ο Πίνακας που ακολουθεί απεικονίζει την κατάσταση προστασίας για ένα σύστημα με μία διεργασία Δ, ένα χρήστη Χ, δύο αρχεία και ένα σύνολο λειτουργιών προσπέλασης Α = {Ανάγνωση, Εγγραφή, Εκτέλεση, Προσθήκη}. 18 Τμήμα Ψηφιακών Συστημάτων Υποκ. / AντικΑρχείο 1Αρχείο 2Διεργασία ΔΧρήστης Χ Διεργασία ΔΑνάγνωση Εγγραφή ΑνάγνωσηΑνάγνωση Εγγραφή Εκτέλεση Ανάγνωση Χρήστης ΧΠροσθήκηΑνάγνωσηΕγγραφήΑνάγνωση Εγγραφή Εκτέλεση
Πίνακας Ελέγχου Προσπέλασης (4/10) Δ αρχείο 1Χ αρχείο 1 αρχείο 2Δ ΧΧ Δ Η διεργασία Δ έχει δικαίωμα Ανάγνωσης και στα δύο αρχεία και Εγγραφής μόνο στο αρχείο 1. Ο χρήστης Χ έχει δικαίωμα Προσθήκης στο αρχείο 1 και Ανάγνωσης στο αρχείο 2. Επίσης η διεργασία Δ έχει δικαίωμα επικοινωνίας και συγκεκριμένα Ανάγνωσης δεδομένων από το χρήστη Χ, ενώ ο χρήστης Χ μπορεί να επικοινωνήσει με τη διεργασία Δ Εγγράφοντας δεδομένα. Δ Χ Ενδιαφέρον παρουσιάζει το γεγονός ότι η διεργασία Δ και ο χρήστης Χ αντιμετωπίζονται τόσο ως υποκείμενα (γραμμές του πίνακα) όσο και ως αντικείμενα (στήλες του πίνακα). 19 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (5/10) Το ακριβές νόημα των λειτουργιών προσπέλασης - δικαιωμάτων που απαντώνται σε έναν Πίνακα Ελέγχου Προσπέλασης, εξαρτάται από τον τρόπο υλοποίησής τους από το συγκεκριμένο σύστημα στο οποίο αναφέρονται. Συνεπώς ο Πίνακας Ελέγχου Προσπέλασης αποτελεί ένα αφηρημένο μοντέλο της κατάστασης προστασίας κάποιου συστήματος, το οποίο αποκτά πρακτική σημασία μόνον αν μελετηθεί αναφορικά με κάποιο συγκεκριμένο υπολογιστικό σύστημα. 20 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (6/10) Τα αντικείμενα που εμφανίζονται σε έναν Πίνακα Ελέγχου Προσπέλασης είναι, συνήθως, αρχεία και διεργασίες. Θα μπορούσαν, χωρίς κανένα πρόβλημα, να είναι και μηνύματα που ανταλλάσσουν κάποιες διεργασίες μεταξύ τους, ή ακόμη και υπολογιστικά συστήματα. 21 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (7/10) Παράδειγμα: Πίνακας Ελέγχου Προσπέλασης για τρία συστήματα ενός τοπικού δικτύου: Α Το σύνολο των λειτουργιών προσπέλασης Α αφορά στο πρωτόκολλο επικοινωνίας που χρησιμοποιείται στο τοπικό δίκτυο και περιλαμβάνει τις λειτουργίες: ftp (δυνατότητα προσπέλασης του συστήματος χρησιμοποιώντας το πρωτόκολλο ftp) nfs (δυνατότητα προσπέλασης του συστήματος χρησιμοποιώντας το πρωτόκολλο nfs) mail (δυνατότητα αποστολής και λήψης ηλεκτρονικών μηνυμάτων χρησιμοποιώντας το πρωτόκολλο SMTP) 22 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (8/10) Κόμβος 1 Κόμβος 2Κόμβος 3 ftp Κόμβος 2 nfs Κόμβο 1 Κόμβο 3Κόμβος 3 nfs Κόμβος 2 Κόμβος 2 Κόμβος 3 ftp Το υποκείμενο Κόμβος 1 είναι ένα υπολογιστικό σύστημα, το οποίο δεν είναι προσπελάσιμο από άλλα συστήματα του τοπικού δικτύου, ενώ εκείνο μπορεί να προσπελάσει τα συστήματα Κόμβος 2 και Κόμβος 3 μέσω του πρωτοκόλλου ftp. Το σύστημα Κόμβος 2 προσφέρει υπηρεσίες nfs σε κάποιους κόμβους του δικτύου που όμως δεν περιλαμβάνουν τον Κόμβο 1 και τον Κόμβο 3. Αντίστοιχα, ο Κόμβος 3 προσφέρει nfs υπηρεσίες σε κάποια ομάδα υπολογιστών στην οποία συμπεριλαμβάνεται και ο Κόμβος 2. Επίσης, τα συστήματα Κόμβος 2 και Κόμβος 3 μπορούν να ανταλλάξουν ηλεκτρονικά μηνύματα και να επικοινωνήσουν μέσω ftp. 23 Τμήμα Ψηφιακών Συστημάτων Υπ. / Σύστ.Κόμβος 1Κόμβος 2Κόμβος 3 Κόμβος 1ftp Κόμβος 2ftp, nfs, mail Κόμβος 3ftp, mailftp, nfs, mail
Πίνακας Ελέγχου Προσπέλασης (9/10) Ο Πίνακας Ελέγχου Προσπέλασης μπορεί να αξιοποιηθεί για τη μοντελοποίηση γλωσσών προγραμματισμού. Στην περίπτωση αυτή, ως αντικείμενα νοούνται οι μεταβλητές, ενώ ως υποκείμενα οι διάφορες ρουτίνες ( procedures, functions και modules ). shift-leftshift-right shift- variableshift-left shift-right A<> κλήση Παράδειγμα: ας θεωρήσουμε ένα πρόγραμμα το οποίο περιλαμβάνει δύο συναρτήσεις shift-left και shift-right για την αριστερή και δεξιά ολίσθηση, αντιστοίχως, των περιεχομένων μιας τοπικής μεταβλητής του προγράμματος. Επίσης υποθέτουμε ότι υπάρχει μία τρίτη ρουτίνα shift- variable, από την οποία γίνονται οι κλήσεις των shift-left και shift-right και ότι το σύνολο των λειτουργιών προσπέλασης είναι A = {, κλήση} όπου αναπαριστούν το δικαίωμα εκτέλεσης αριστερής και δεξιάς ολίσθησης αντιστοίχως και κλήση το δικαίωμα κλήσης κάποιας συνάρτησης 24 Τμήμα Ψηφιακών Συστημάτων
Πίνακας Ελέγχου Προσπέλασης (10/10) Ο Πίνακας Ελέγχου Προσπέλασης για το προαναφερόμενο παράδειγμα ακολουθεί: 25 Τμήμα Ψηφιακών Συστημάτων Τοπική μεταβλητή Shift-LeftShift-Right Shift-Left> Shift-Right< Shift-Variableκλήση
Πίνακας Ελέγχου Προσπέλασης: Προβλήματα Πρακτικά προβλήματα στην υλοποίηση: Μεγάλο πλήθος υποκειμένων και αντικειμένων. Τα περισσότερα στοιχεία του πίνακα είναι είτε κενά, είτε όμοια. Δημιουργία νέων ή η διαγραφή υπαρχόντων υποκειμένων και αντικειμένων – Πολυπλοκότητα. Παρά τα προβλήματα αυτά, η πλειονότητα των μηχανισμών ελέγχου προσπέλασης που εφαρμόζονται σήμερα αξιοποιούν βελτιστοποιημένες εκδόσεις του μοντέλου του Πίνακα Ελέγχου Προσπέλασης. 26 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (1/5) Η Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης (Access Control List – acl) αποθηκεύει τα δικαιώματα προσπέλασης σε κάποιο αντικείμενο μαζί με το ίδιο το αντικείμενο. Μία Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης αντιστοιχεί με μία στήλη του Πίνακα Ελέγχου Προσπέλασης. Κάθε αντικείμενο του συστήματος συσχετίζεται με μία ομάδα από ζεύγη, κάθε ζεύγος αποτελείται από ένα υποκείμενο και ένα σύνολο λειτουργιών - δικαιωμάτων προσπέλασης. 27 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (2/5) l Η Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης (acl), l ορίζεται ως: SA όπου S το σύνολο των υποκειμένων του συστήματος και A το σύνολο των υποστηριζόμενων λειτουργιών προσπέλασης - δικαιωμάτων. acl l o Αν υποθέσουμε ότι η acl είναι μία συνάρτηση που συνθέτει τη Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης l κάποιου συγκεκριμένου αντικειμένου o, η παράσταση s i o ai σημαίνει ότι το υποκείμενο s i μπορεί να προσπελάσει το αντικείμενο o αξιοποιώντας οποιαδήποτε λειτουργία προσπέλασης - δικαίωμα αποτελεί μέλος του συνόλου ai 28 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (3/5) Οι Λίστες Ελέγχου Δικαιωμάτων για τα αντικείμενα του παραδείγματος του Πίνακα Ελέγχου Προσπέλασης που είχαμε δει, θα ήταν: 29 Τμήμα Ψηφιακών Συστημάτων Υπ. / Αντικ.Αρχείο 1Αρχείο 2Διεργασία ΔΧρήστης Χ Διεργασία ΔΑνάγνωση Εγγραφή ΑνάγνωσηΑνάγνωση Εγγραφή Εκτέλεση Ανάγνωση Χρήστης ΧΠροσθήκηΑνάγνωσηΕγγραφήΑνάγνωση Εγγραφή Εκτέλεση
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (4/5) Εξ ορισμού δικαιώματα προσπέλασης (By default). “wildcards” 30 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (5/5) Παράδειγμα η λίστα Υπ1 Αντικείμενο 1 Υπ2Υπ30 Αντικειμένου 1 αναφέρεται σε κάποιο σύστημα με τριάντα υποκείμενα, εκ των οποίων το υποκείμενο 1 (Υπ1) έχει δικαίωμα Ανάγνωσης και Εγγραφής στο Αντικείμενο 1, ενώ τα υποκείμενα 2 έως και 30 (Υπ2,..., Υπ30) έχουν μόνο δικαίωμα Ανάγνωσης του Αντικειμένου 1. Χρησιμοποιώντας τα εξ ορισμού δικαιώματα προσπέλασης η παραπάνω λίστα θα μπορούσε να γίνει: όπου το ‘*’ αντιπροσωπεύει όλα τα υπόλοιπα υποκείμενα του συστήματος τα οποία δεν αναφέρονται ονομαστικά στη λίστα. 31 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Δημιουργία και Διαχείριση (1/4) Υποκείμενα που μπορούν να τροποποιήσουν τη λίστα ενός αντικειμένου Α Όταν δημιουργείται μία Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης, αρχικοποιείται ταυτόχρονα και το σύνολο των λειτουργιών προσπέλασης - δικαιωμάτων Α, που υποστηρίζει το συγκεκριμένο σύστημα. Α Το ισχυρότερο δικαίωμα, μέλος του συνόλου Α, είναι αυτό της Ιδιοκτησίας. Όποιο υποκείμενο διαθέτει το δικαίωμα της Ιδιοκτησίας μπορεί να τροποποιήσει τη Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης του αντικειμένου. Συνήθως ο δημιουργός ενός αντικειμένου θεωρείται ιδιοκτήτης του Υπάρχουν αρκετά συστήματα που επιτρέπουν την τροποποίηση της λίστας ενός αντικειμένου από όλους όσους έχουν το δικαίωμα προσπέλασης στο αντικείμενο. 32 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Δημιουργία και Διαχείριση (2/4) Εφαρμογή της λίστας σε προνομιούχους χρήστες Όλα τα συστήματα υποστηρίζουν κάποιους χρήστες με αυξημένα προνόμια που συνήθως είναι υπεύθυνοι για τη διαχείρισή τους (root στο UNIX και administrator στα Windows). Η εφαρμογή της λίστας σε προνομιούχους χρήστες αυτού του τύπου είναι περιορισμένη. Για παράδειγμα, ο administrator θα μπορέσει να προσπελάσει κάποιο αρχείο ακόμη και αν, σύμφωνα με τη λίστα του συγκεκριμένου αντικειμένου – αρχείου, το δικαίωμα Ανάγνωσης έχει εκχωρηθεί μόνο στον ιδιοκτήτη του αρχείου. Υπάρχουν περιπτώσεις που οι περιορισμοί προσπέλασης του αντικειμένου, όπως προκύπτουν από τη σχετική λίστα, εφαρμόζονται ακόμη και σε προνομιούχους χρήστες. 33 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Δημιουργία και Διαχείριση (3/4) Υποστήριξη Ομάδων Υποκειμένων και Wild Cards Με την αυστηρή έννοια του ορισμού της Λίστας Ελέγχου Δικαιωμάτων Προσπέλασης δεν υποστηρίζονται ούτε οι Ομάδες Υποκειμένων (Groups) ούτε τα Wildcards. Στην πράξη, σχεδόν το σύνολο των υπολογιστικών συστημάτων υποστηρίζουν είτε το ένα, είτε το άλλο, είτε κάποιο συνδυασμό τους. Ο στόχος είναι να διατηρηθεί το μέγεθος της λίστας όσο το δυνατόν μικρότερο και να απλοποιηθεί η διαχείρισή της. 34 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Δημιουργία και Διαχείριση (4/4) Διαχείριση Συγκρούσεων Δικαιωμάτων Σύγκρουση δικαιωμάτων προκύπτει όταν δύο ή περισσότερες καταχωρήσεις στη Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης έχουν ως αποτέλεσμα την εκχώρηση διαφορετικών δικαιωμάτων στο ίδιο υποκείμενο. Συνήθως τα συστήματα διαχειρίζονται συγκρούσεις δικαιωμάτων ως εξής: Το υποκείμενο έχει δικαίωμα προσπέλασης στο αντικείμενο αν υπάρχει τουλάχιστον μία καταχώρηση στη λίστα που εκχωρεί το δικαίωμα αυτό. Το υποκείμενο δεν έχει δικαίωμα προσπέλασης στο αντικείμενο αν υπάρχει τουλάχιστον μία καταχώρηση στη λίστα που απαγορεύει το δικαίωμα αυτό. Η δυνατότητα προσπέλασης του υποκειμένου στο αντικείμενο καθορίζεται από την πρώτη σχετική καταχώρηση στη λίστα. 35 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Ανάκληση Δικαιωμάτων Προσπέλασης (1/3) Η ανάκληση (revocation) των δικαιωμάτων προσπέλασης ενός υποκειμένου σε κάποιο αντικείμενο προϋποθέτει τη διαγραφή της σχετικής καταχώρησης, που εκχωρούσε τα δικαιώματα στο εν λόγω υποκείμενο, από τη Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης του συγκεκριμένου αντικειμένου. Αν η ανάκληση αφορά μόνο σε συγκεκριμένα δικαιώματα τότε αρκεί να διαγραφούν τα δικαιώματα αυτά από την καταχώρηση που αφορά το εν λόγω υποκείμενο. Η πολυπλοκότητα της ανάκλησης δικαιωμάτων έγκειται στο γεγονός ότι έχει αναδρομικό χαρακτήρα. Αυτό σημαίνει ότι αν ανακληθούν κάποια δικαιώματα από κάποιο υποκείμενο Α, θα πρέπει να ανακληθούν τα ίδια δικαιώματα και από όλα τα υπόλοιπα υποκείμενα του συστήματος στα οποία δευτερογενώς είχαν εκχωρηθεί τα συγκεκριμένα δικαιώματα από το υποκείμενο Α. 36 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Ανάκληση Δικαιωμάτων Προσπέλασης (2/3) t = 0 Χρήστης 1 Αρχείο Χρήστες 23Αρχείο Παράδειγμα: ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Ανάγνωση και Εγγραφή) στο Αρχείο. Στη συνέχεια εκχωρούνται, στους Χρήστες 2 και 3, δικαιώματα προσπέλασης στο ίδιο Αρχείο, ως εξής: t = 20Χρήστης 1 Χρήστη 3 Χρήστη 2Χρήστη 3 Χρήστη 2 Χρήστη 3Χρήστη 1 Τη χρονική στιγμή t = 20, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 3. Επακόλουθο είναι και η ανάκληση των δικαιωμάτων που είχαν εκχωρηθεί στο Χρήστη 2 από το Χρήστη 3. Όμως από το Χρήστη 2 ανακαλείται τελικά μόνο το δικαίωμα της Ανάγνωσης, καθώς αυτό της Εγγραφής του είχε εκχωρηθεί εκτός από το Χρήστη 3 και από το Χρήστη 1 και συνεπώς το διατηρεί. 37 Τμήμα Ψηφιακών Συστημάτων
Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης: Ανάκληση Δικαιωμάτων Προσπέλασης (3/3) 38 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων (1/6) Η Λίστα Δυνατοτήτων (Capabilities) αποθηκεύει τα δικαιώματα προσπέλασης κάποιου υποκειμένου. Μία Λίστα Δυνατοτήτων αντιστοιχεί με μία γραμμή του Πίνακα Ελέγχου Προσπέλασης. περιέχει πληροφορίες σχετικά με τα αντικείμενα, τα οποία μπορεί να προσπελάσει κάποιο συγκεκριμένο υποκείμενο. Κάθε υποκείμενο του συστήματος συσχετίζεται με μία ομάδα από ζεύγη. κάθε ζεύγος αποτελείται από ένα αντικείμενο και ένα σύνολο λειτουργιών προσπέλασης - δικαιωμάτων προσπέλασης. Το συσχετιζόμενο υποκείμενο έχει τη δυνατότητα να προσπελάσει το συγκεκριμένο αντικείμενο με οποιαδήποτε από τις αναφερόμενες λειτουργίες προσπέλασης. 39 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων (2/6) c Η Λίστα Δυνατοτήτων, c, ορίζεται ως: ΟA όπου Ο το σύνολο των αντικειμένων του συστήματος και A το σύνολο των υποστηριζόμενων λειτουργιών προσπέλασης - δικαιωμάτων. cap c s Αν υποθέσουμε ότι η cap είναι μία συνάρτηση που συνθέτει τη Λίστα Δυνατοτήτων c κάποιου συγκεκριμένου υποκειμένου s, η παράσταση s o i a i σημαίνει ότι το υποκείμενο s μπορεί να προσπελάσει το αντικείμενο o i αξιοποιώντας οποιαδήποτε λειτουργία προσπέλασης - δικαίωμα αποτελεί μέλος του συνόλου a i. 40 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων (3/6) Οι Δυνατότητες για τα υποκείμενα του παραδείγματος του Πίνακα Ελέγχου Προσπέλασης που είχαμε δει, θα ήταν: 41 Τμήμα Ψηφιακών Συστημάτων Υπ. / Αντ.Αρχείο 1Αρχείο 2Διεργασία ΔΧρήστης Χ Διεργασία ΔΑνάγνωση Εγγραφή ΑνάγνωσηΑνάγνωση Εγγραφή Εκτέλεση Ανάγνωση Χρήστης ΧΠροσθήκηΑνάγνωσηΕγγραφήΑνάγνωση Εγγραφή Εκτέλεση
Λίστες Δυνατοτήτων (4/6) Οι δυνατότητες εμπεριέχουν την ταυτότητα των αντικειμένων. Παράδειγμα: αν κάποιο υποκείμενο έχει δικαίωμα ανάγνωσης κάποιας μεταβλητής στη μνήμη του υπολογιστή, η διεύθυνση της θέσης μνήμης στην οποία είναι αποθηκευμένη η συγκεκριμένη μεταβλητή - αντικείμενο εμπεριέχεται στη δυνατότητα. Συνεπώς, το λειτουργικό σύστημα, μετά τη γνωστοποίηση κάποιας δυνατότητας, είναι σε θέση να ελέγξει τόσο το ίδιο το αντικείμενο, όσο και τα συγκεκριμένα δικαιώματα προσπέλασης του υποκειμένου. 42 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων (5/6) Η λίστα ελέγχου δικαιωμάτων προσπέλασης και η ταυτότητα κάποιας διεργασίας δε συσχετίζονται με κανένα τρόπο. Επομένως, τροποποιήσεις της λίστας από κάποια διεργασία είναι δυνατές μόνο μέσω των σχετικών υπηρεσιών του λειτουργικού συστήματος και φυσικά με την προϋπόθεση ότι η διεργασία έχει εξουσιοδότηση για κάτι τέτοιο. 43 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων (1/6) Στην περίπτωση των Δυνατοτήτων, υπάρχει κάποια στοιχειώδης συσχέτιση δυνατοτήτων – διεργασιών: μία διεργασία πρέπει να έχει την ικανότητα να αναγνωρίσει τις δυνατότητές της ώστε να μπορεί να τις αξιοποιήσει Έμμεσα, αυτό σημαίνει ότι οι διεργασίες έχουν εξ ορισμού κάποιο βαθμό ελέγχου των δυνατοτήτων. Αν κάποια διεργασία καταφέρει να τροποποιήσει με μη εξουσιοδοτημένο τρόπο τις δυνατότητές της και στη συνέχεια να τις χρησιμοποιήσει, είναι σαφές ότι ο μηχανισμός ελέγχου προσπέλασης έχει αποτύχει. Είναι προφανές ότι οι δυνατότητες χρήζουν προστασίας με σκοπό τη διατήρηση της ακεραιότητας των δεδομένων τους. 44 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Υλοποίηση (1/3) Μηχανισμοί υλοποίησης και προστασίας των δυνατοτήτων: οι ετικέτες (tags), η προστατευμένη μνήμη (protected memory) και η κρυπτογράφηση (cryptography). Ετικέτες (tags): Μία ομάδα bits συσχετίζεται με τις λέξεις μνήμης που χρησιμοποιούνται για την αποθήκευση των δυνατοτήτων. setunset Το κάθε bit (ετικέτα) έχει δύο καταστάσεις: set και unset. set Αν η ετικέτα βρίσκεται στην κατάσταση set, οι διεργασίες μπορούν να προσπελάσουν - για ανάγνωση - τη λέξη μνήμης που έχει συσχετισθεί με τη συγκεκριμένη ετικέτα, αλλά δεν μπορούν να τροποποιήσουν τα περιεχόμενά της. unset Αν η ετικέτα βρίσκεται στην κατάσταση unset, τότε οι διεργασίες μπορούν να προσπελάσουν τόσο για ανάγνωση όσο και για τροποποίηση τη συγκεκριμένη λέξη. Οι διεργασίες δεν έχουν δικαίωμα αλλαγής της κατάστασης της ετικέτας, εκτός αν έχουν σχετική εξουσιοδότηση. 45 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Υλοποίηση (2/3) Μία πιο διαδεδομένη τεχνική είναι η χρήση των bits προστασίας των σελίδων (pages) και τμημάτων (segments) της μνήμης. Όλες οι δυνατότητες αποθηκεύονται σε μία σελίδα ή σε ένα τμήμα, ανάλογα με τον τρόπο διαχείρισης μνήμης του συστήματος, όπου οι διεργασίες έχουν δικαίωμα ανάγνωσης αλλά όχι τροποποίησης. Για την υλοποίηση της συγκεκριμένης τεχνικής δεν απαιτείται εξειδικευμένο υλικό, πέραν αυτού που αξιοποιείται για την υλοποίηση των μηχανισμών διαχείρισης μνήμης. Υπάρχει το μειονέκτημα ότι τις περισσότερες φορές οι διεργασίες μπορούν να προσπελάσουν τις δυνατότητες μόνο έμμεσα (indirect access), δηλαδή με χρήση δεικτών. 46 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Υλοποίηση (3/3) Η προστασία της ακεραιότητας των δυνατοτήτων μπορεί να εξασφαλιστεί με χρήση κρυπτογραφικών αθροισμάτων ελέγχου. Μαζί με κάθε δυνατότητα αποθηκεύεται και ένα άθροισμα ελέγχου το οποίο έχει πρώτα κρυπτογραφηθεί από κάποιο κρυπτοσύστημα, το κλειδί του οποίου είναι γνωστό στο λειτουργικό σύστημα. Όταν κάποια διεργασία παρουσιάζει μία δυνατότητά της στο λειτουργικό σύστημα, αυτό υπολογίζει το άθροισμα ελέγχου για τη συγκεκριμένη δυνατότητα. Στη συνέχεια, είτε κρυπτογραφεί το άθροισμα ελέγχου που υπολόγισε με το κλειδί που γνωρίζει και συγκρίνει το αποτέλεσμα με αυτό που ήταν αποθηκευμένο με τη δυνατότητα, είτε αποκρυπτογραφεί το άθροισμα ελέγχου της δυνατότητάς και το συγκρίνει με αυτό που υπολόγισε. Αν τα αθροίσματα ελέγχου ταυτίζονται, η δυνατότητα γίνεται αποδεκτή, διαφορετικά απορρίπτεται. 47 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (1/7) Η αντιγραφή δυνατοτήτων είναι μία ενέργεια αντίστοιχη με αυτή της εκχώρησης δικαιωμάτων. set Για να προληφθεί η ανεξέλεγκτη εκχώρηση δικαιωμάτων από κάποια διεργασία, κάθε δυνατότητα συσχετίζεται με ένα ενδεικτικό bit αντιγραφής. Μία διεργασία μπορεί να αντιγράψει μία δυνατότητά της σε κάποια άλλη διεργασία μόνον αν το ενδεικτικό bit αντιγραφής είναι 1 (set). Σε περίπτωση που πραγματοποιηθεί η αντιγραφή, η κατάσταση του ενδεικτικού bit αντιγραφής μπορεί να αλλαχθεί σε 0 (reset), είτε από τη διεργασία, είτε από το λειτουργικό σύστημα, απαγορεύοντας έτσι στη διεργασία-παραλήπτη να αντιγράψει δευτερογενώς τη δυνατότητα που της εκχωρήθηκε σε κάποια άλλη διεργασία. 48 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (2/7) Η ενίσχυση δυνατοτήτων αφορά περιπτώσεις αύξησης των δικαιωμάτων κάποιου υποκειμένου. Τις περισσότερες φορές η ενίσχυση των δυνατοτήτων είναι προσωρινή, έχοντας ως στόχο την ολοκλήρωση κάποιας συγκεκριμένης λειτουργίας. Παράδειγμα: ας θεωρήσουμε την παρακάτω κλάση: και ότι σε κάποιο σημείο του προγράμματος υπάρχουν οι εντολές: 49 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (3/7) αντικείμενο i Το αντικείμενο i, μπορεί να προσπελασθεί μόνον από την κλάση Integer. αντικείμενο i αντικείμενο i Αν θεωρήσουμε τις δύο μεθόδους setValue και addValue ως δύο διεργασίες, αυτές δεν έχουν κανένα δικαίωμα προσπέλασης στο αντικείμενο i όσο είναι ανενεργές. Όταν όμως ενεργοποιηθούν (i.setValue(1) και i.addValue(10)), είναι απαραίτητο να αποκτήσουν δικαιώματα Ανάγνωσης και Εγγραφής στο αντικείμενο i. Συνεπώς οι δυνατότητές τους πρέπει να ενισχυθούν προσωρινά, όσο διάστημα είναι ενεργές, με τα προαναφερόμενα δικαιώματα. 50 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (4/7) Ένα από τα βασικότερα προβλήματα των δυνατοτήτων είναι ο έλεγχος αντιγραφής τους σε λίστες δυνατοτήτων τρίτων υποκειμένων. 51 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (5/7) Μια τεχνική που έχει προταθεί για την αντιμετώπιση του προβλήματος προϋποθέτει την κατηγοριοποίηση των υποκειμένων και αντικειμένων του συστήματος σε μία ιεραρχία επιπέδων ασφάλειας. Χρήστης 1Χ Χρήστης 2ΑρχείοΥ Ας υποθέσουμε, στα πλαίσια του προηγούμενου παραδείγματος, ότι ο Χρήστης 1 βρίσκεται στο χαμηλότερο επίπεδο ασφάλειας Χ, ενώ ο Χρήστης 2 και το Αρχείο στο υψηλότερο επίπεδο ασφάλειας Υ Όταν δημιουργείται μία δυνατότητα, κατατάσσεται στο ίδιο επίπεδο ασφάλειας με την αιτούμενη διεργασία και περιέχει δικαιώματα Ανάγνωσης, ή Ανάγνωσης και Εγγραφής, ή Εγγραφής, ανάλογα με το αν το επίπεδο ασφάλειάς της είναι ανώτερο, το ίδιο, ή χαμηλότερο από το επίπεδο ασφάλειας του αντικειμένου στο οποίο αναφέρεται. 52 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (6/7) Χρήστης 1 c2Αρχείο Ακριβώς η ίδια λογική ισχύει για την αντιγραφή των δυνατοτήτων. Όταν ο Χρήστης 1 αντιγράψει τη δυνατότητα c2 από το Αρχείο στη δική του λίστα δυνατοτήτων, ισχύουν τα ακόλουθα: c2Υ Χρήστη 2 Η δυνατότητα c2 ανήκει στο επίπεδο ασφάλειας Υ, δηλαδή ίδιο επίπεδο ασφάλειας με το Χρήστη 2 από τον οποίο δημιουργήθηκε. Χρήστης 1 Αρχείο Κατά την αντιγραφή, το επίπεδο ασφάλειας του προορισμού (Χρήστης 1) είναι κατώτερο από το επίπεδο ασφάλειας της πηγής (Αρχείο). Χρήστη 1 Συνεπώς η δυνατότητα που τελικά θα αντιγραφεί στη λίστα δυνατοτήτων του Χρήστη 1 θα περιλαμβάνει μόνο δικαίωμα Ανάγνωσης. 53 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Αντιγραφή και Ενίσχυση Δυνατοτήτων (7/7) Μια άλλη τεχνική που έχει προταθεί είναι πριν επιτραπεί η αντιγραφή μιας δυνατότητας σε κάποιο άλλο υποκείμενο - διεργασία, το λειτουργικό σύστημα να ελέγχει πιθανές παραβιάσεις των παραμέτρων ασφάλειας. Μία τρίτη απλούστερη προσέγγιση είναι η διαφοροποίηση μεταξύ των δικαιωμάτων Αντιγραφή Δυνατότητας και Ανάγνωση Δυνατότητας. Χρήστης 1 c2 Στο παράδειγμά μας, η τεχνική αυτή θα είχε ως αποτέλεσμα ο Χρήστης 1 να έχει δικαίωμα Ανάγνωσης της δυνατότητας c2 από το Αρχείο, αλλά να μην έχει δικαίωμα Αντιγραφής της, στη Λίστα Δυνατοτήτων του. 54 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Ανάκληση Δικαιωμάτων Προσπέλασης (1/2) Η ανάκληση δικαιωμάτων προσπέλασης σε κάποιο αντικείμενο προϋποθέτει ότι όλες οι δυνατότητες που εξασφαλίζουν σε κάποια υποκείμενα προσπέλαση στο συγκεκριμένο αντικείμενο πρέπει να ανακληθούν. Θεωρητικά ο μόνος τρόπος να επιτευχθεί κάτι τέτοιο είναι να ελεγχθούν οι Λίστες Δυνατοτήτων όλων των υποκειμένων του συστήματος και να διαγραφούν οι σχετικές δυνατότητες. Επειδή το κόστος μιας τέτοιας διαδικασίας είναι εξαιρετικά υψηλό έχουν υιοθετηθεί εναλλακτικές τεχνικές. 55 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Ανάκληση Δικαιωμάτων Προσπέλασης (2/2) Η απλούστερη τεχνική στηρίζεται στην αρχή της έμμεσης (indirect) αναφοράς των αντικειμένων από τις δυνατότητες. Συγκεκριμένα, δημιουργείται ένας ή περισσότεροι καθολικοί (global) πίνακες αντικειμένων και κάθε αντικείμενο του συστήματος συσχετίζεται με μία καταχώρηση σε έναν από τους πίνακες αυτούς. Οι δυνατότητες, αντί να αναφέρονται στο αντικείμενο άμεσα, αναφέρονται στις σχετικές καταχωρήσεις του καθολικού πίνακα αντικειμένων. Για την ανάκληση των δικαιωμάτων προσπέλασης σε κάποιο αντικείμενο, αρκεί να ακυρωθεί η σχετική καταχώρηση στον πίνακα αντικειμένων. 56 Τμήμα Ψηφιακών Συστημάτων
Λίστες Δυνατοτήτων: Σύγκριση με τις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης Τα βασικά ερωτήματα στα οποία προσπαθούν να απαντήσουν οι μηχανισμοί ελέγχου προσπέλασης είναι: Ποια είναι τα αντικείμενα που μπορεί να προσπελάσει κάποιο συγκεκριμένο υποκείμενο και με ποιο τρόπο; Ποια είναι τα υποκείμενα που μπορούν να προσπελάσουν κάποιο συγκεκριμένο αντικείμενο και με ποιο τρόπο; Για την πρώτη περίπτωση οι Λίστες Δυνατοτήτων είναι οι καταλληλότερες ( απαιτείται απλώς να ελεγχθούν οι καταχωρήσεις της Λίστας Δυνατοτήτων του συγκεκριμένου υποκειμένου ) Για τη δεύτερη περίπτωση η απλούστερη λύση είναι οι Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης ( απαιτείται απλώς να ελεγχθούν οι καταχωρήσεις της Λίστας Ελέγχου Δικαιωμάτων Προσπέλασης του συγκεκριμένου αντικειμένου ) 57 Τμήμα Ψηφιακών Συστημάτων
Ομάδες και Αρνητικά Δικαιώματα (1/2) Για την αντιμετώπιση της πολυπλοκότητας που δημιουργεί ο πολύ μεγάλος αριθμός των Υποκειμένων ενός συστήματος, αξιοποιούνται οι Ομάδες Υποκειμένων. Όλοι οι χρήστες που έχουν παρόμοια δικαιώματα προσπέλασης στους πόρους ενός συστήματος δημιουργούν μία ομάδα και τα δικαιώματα για προσπέλαση των αντικειμένων του συστήματος εκχωρούνται πλέον στην ομάδα και όχι ανεξάρτητα σε κάθε χρήστη. Οι χρήστες μπορεί να έχουν δικαίωμα συμμετοχής μόνο σε μία ή σε περισσότερες από μία ομάδες. Οι ομάδες μπορεί να αποτελέσουν ένα ενδιάμεσο επίπεδο ελέγχου μέσω του οποίου εκχωρούνται δικαιώματα προσπέλασης στα αντικείμενα του συστήματος. 58 Τμήμα Ψηφιακών Συστημάτων
Ομάδες και Αρνητικά Δικαιώματα (2/2) 59 Τμήμα Ψηφιακών Συστημάτων Τα υποκείμενα Y1, Y2, Y3 απαρτίζουν την Ομάδα 1, ενώ τα υποκείμενα Υ3, Υ4, Υ5 την Ομάδα 2. Τα Υ1, Υ2 έχουν δικαίωμα προσπέλασης στα αντικείμενα Α1 και Α2, τα Υ4, Υ5 στα Α2 και Α3, και το Υ3 σε όλα τα αντικείμενα. Στο μέλος κάποιας ομάδας μπορεί να γίνει απευθείας εκχώρηση κάποιου δικαιώματος ή απευθείας αφαίρεση κάποιου δικαιώματος που απέκτησε ως μέλος της ομάδας (Αρνητικό Δικαίωμα). Το Υ3 έχει δικαίωμα προσπέλασης στο Α3, ενώ το Υ1 δεν έχει δικαίωμα προσπέλασης στο Α1 κι ας είναι μέλος της Ομάδας 1.
Αξιοποίηση των Ομάδων στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (1/5) Οι Ομάδες μπορούν να αξιοποιηθούν για την απλοποίηση της διαχείρισης στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης. Τυπικό παράδειγμα αποτελεί η χρήση τους στο μηχανισμό ελέγχου προσπέλασης στα αρχεία του συστήματος, από το λειτουργικό σύστημα UNIX. Το UNIX κατατάσσει όλους τους χρήστες στις παρακάτω κατηγορίες: Ιδιοκτήτης του αρχείου (Owner) Ομάδα Ιδιοκτήτη του αρχείου (Group Owner), που είναι η ομάδα στην οποία ανήκει ο Ιδιοκτήτης του αρχείου Ομάδα όλων των υπόλοιπων χρηστών (Others) του συστήματος 60 Τμήμα Ψηφιακών Συστημάτων
Αξιοποίηση των Ομάδων στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (2/5) Οι λειτουργίες προσπέλασης που υποστηρίζονται από το λειτουργικό σύστημα UNIX είναι: Ανάγνωση, Εγγραφή και Εκτέλεση, τα δικαιώματα προσπέλασης σε κάποιο αρχείο αντιπροσωπεύονται από τρεις τριμελείς ομάδες γραμμάτων, μία για κάθε κατηγορία, ως εξής: r w x Το πρώτο στοιχείο κάθε τριάδας, r, αντιπροσωπεύει το δικαίωμα της Ανάγνωσης του αρχείου, το δεύτερο, w, το δικαίωμα Εγγραφής στο αρχείο και το τρίτο, x, το δικαίωμα Εκτέλεσης του αρχείου 61 Τμήμα Ψηφιακών Συστημάτων
Αξιοποίηση των Ομάδων στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (3/5) Χ ΑΠΣtest test Παράδειγμα: αν ο χρήστης Χ, που ανήκει στην Ομάδα ΑΠΣ, δημιουργήσει ένα αρχείο test, και επιθυμεί: ο ίδιος να έχει το σύνολο των δικαιωμάτων προσπέλασης στο αρχείο, η ομάδα του μόνο δικαίωμα Ανάγνωσης και οι υπόλοιποι χρήστες να μην έχουν κανένα δικαίωμα προσπέλασης, τα δικαιώματα προσπέλασης του αρχείου test θα είναι: 62 Τμήμα Ψηφιακών Συστημάτων
Αξιοποίηση των Ομάδων στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (4/5) Η χρήση Ομάδων Υποκειμένων εισάγει και κάποια προβλήματα με πιο σημαντικό την αδυναμία εκχώρησης διαφορετικών δικαιωμάτων σε περισσότερες ομάδες υποκειμένων από το μέγιστο αριθμό που υποστηρίζει το σύστημα. Χ ΥΑΠΣ Ζ Θεωρείστε ότι στο προηγούμενο παράδειγμα ο χρήστης Χ επιθυμούσε να εκχωρήσει και το δικαίωμα Εγγραφής σε ένα χρήστη Υ που ανήκει στην ομάδα ΑΠΣ, αφαιρώντας του όμως το δικαίωμα Ανάγνωσης, καθώς και το δικαίωμα Εκτέλεσης σε ένα χρήστη Ζ που ανήκει στην ομάδα των Υπολοίπων Χρηστών. Στο UNIX δεν είναι δυνατόν να υλοποιηθεί, καθώς υποστηρίζονται μόνο τρεις κατηγορίες δικαιωμάτων, ενώ τώρα απαιτούνται πέντε. 63 Τμήμα Ψηφιακών Συστημάτων
Αξιοποίηση των Ομάδων στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης (5/5) Κάποια λειτουργικά συστήματα όπως το AIX της IBM επιλύει το πρόβλημα αυτό διευρύνοντας ή τροποποιώντας τα δικαιώματα προσπέλασης που εκχωρούνται μέσω των βασικών κατηγοριών που υποστηρίζει το σύστημα. test Επανερχόμενοι στο προηγούμενο παράδειγμα, τα δικαιώματα προσπέλασης του αρχείου test, όπως θα καθοριστούν από το λειτουργικό σύστημα AIX, θα είναι: 64 Τμήμα Ψηφιακών Συστημάτων
Προστατευτικοί Δακτύλιοι (1/2) Ένας άλλος τρόπος απλοποίησης της διαδικασίας εκχώρησης δικαιωμάτων προσπέλασης, είναι η χρήση των προστατευτικών δακτυλίων. r0 Μπορούμε να φανταστούμε τους προστατευτικούς δακτυλίους ως ομόκεντρους κύκλους, με το δακτύλιο r0 στο κέντρο, να παρέχει το μεγαλύτερο βαθμό προστασίας 65 Τμήμα Ψηφιακών Συστημάτων
Προστατευτικοί Δακτύλιοι (2/2) r n Κάθε υποκείμενο και αντικείμενο του συστήματος συσχετίζεται με κάποιο Δακτύλιο r n ανάλογα με το πόσο σημαντικό είναι. r 0 Για παράδειγμα, ο πυρήνας του λειτουργικού συστήματος συσχετίζεται με το Δακτύλιο r 0. r i r j Αν κάποιο υποκείμενο έχει συσχετισθεί με το Δακτύλιο r i και το αντικείμενο με το Δακτύλιο r j, δικαίωμα προσπέλασης έχουν μόνον τα υποκείμενα για τα οποία ισχύει i j. 66 Τμήμα Ψηφιακών Συστημάτων
Προστατευτικοί Δακτύλιοι Λειτουργικό Σύστημα Multics (1/4) Ο αριθμός των Προστατευτικών Δακτυλίων που υποστηρίζει το συγκεκριμένο λειτουργικό σύστημα είναι 64 (0 έως 63). r (r1, r2) Ας υποθέσουμε ότι κάποια διαδικασία που εκτελείται στο δακτύλιο r, χρειάζεται να προσπελάσει κάποιο τμήμα δεδομένων. Για κάθε τμήμα δεδομένων, το Multics ορίζει ένα ζεύγος δακτυλίων (r1, r2) με r1<= r2, το οποίο ονομάζεται αγκύλη προσπέλασης. Επίσης ας υποθέσουμε, ότι τα δικαιώματα προσπέλασης (Ανάγνωση, Εγγραφή, Εκτέλεση, Προσθήκη) του τμήματος δεδομένων, τα οποία εκχωρούνται μέσω σχετικής λίστας ελέγχου δικαιωμάτων προσπέλασης, επιτρέπουν στη συγκεκριμένη διαδικασία να εκτελέσει τις λειτουργίες προσπέλασης που επιθυμεί. Οι προστατευτικοί δακτύλιοι, μέσω της αγκύλης προσπέλασης, εισάγουν έναν ακόμα περιορισμό. 67 Τμήμα Ψηφιακών Συστημάτων
Προστατευτικοί Δακτύλιοι Λειτουργικό Σύστημα Multics (2/4) Συγκεκριμένα αν: r <= r1, η προσπέλαση επιτρέπεται r1 < r <= r2, επιτρέπεται μόνο η προσπέλαση για Ανάγνωση και Εκτέλεση r2 <= r, η προσπέλαση απαγορεύεται r (c1, c2) Αν η ίδια διαδικασία εκτελείται ξανά στο δακτύλιο r και χρειάζεται να προσπελάσει κάποια άλλη διαδικασία, σε αντιστοιχία με τα τμήματα δεδομένων, το λειτουργικό σύστημα ορίζει για κάθε διαδικασία μία αγκύλη προσπέλασης και επιπροσθέτως μπορεί να ορίσει και μία αγκύλη κλήσης (c1, c2) με c1<= c2 και c1 = r2. (r1, r2, r3) Όταν για μία διαδικασία έχει οριστεί αγκύλη κλήσης, χρησιμοποιείται ο συμβολισμός (r1, r2, r3) όπου (r1, r2) είναι η αγκύλη προσπέλασης και (r2, r3) είναι η αγκύλη κλήσης (άρα c2 = r3). 68 Τμήμα Ψηφιακών Συστημάτων
Προστατευτικοί Δακτύλιοι Λειτουργικό Σύστημα Multics (3/4) Οι περιορισμοί δικαιωμάτων προσπέλασης που προκύπτουν στην περίπτωση αυτή διαφοροποιούνται ελαφρά από τους αντίστοιχους για προσπέλαση σε τμήμα δεδομένων. Συγκεκριμένα, αν: r < r1, η προσπέλαση επιτρέπεται, αλλά ταυτόχρονα σηματοδοτείται ένα λάθος διασταύρωσης δακτυλίων r1 <= r <= r2, η προσπέλαση επιτρέπεται r2 < r <= r3, η προσπέλαση επιτρέπεται μόνον αν διενεργηθεί μέσω μιας έγκυρης πύλης r3 < r, η προσπέλαση απαγορεύεται 69 Τμήμα Ψηφιακών Συστημάτων
Προστατευτικοί Δακτύλιοι Λειτουργικό Σύστημα Multics (4/4) r Υπάρχουν περιπτώσεις που οι διαδικασίες μπορούν να διασταυρώσουν τα όρια των δακτυλίων. Στην περίπτωση μάλιστα που ο δακτύλιος r της εκτελούμενης διαδικασίας βρίσκεται εσωτερικά της αγκύλης προσπέλασης της καλούμενης διαδικασίας, σηματοδοτείται λάθος διασταύρωσης δακτυλίων το οποίο εξετάζεται από τον πυρήνα του λειτουργικού συστήματος με στόχο την τελική αποδοχή ή απόρριψη της επιχειρούμενης προσπέλασης. r Ένας ακόμα περιορισμός είναι όταν ο δακτύλιος r της εκτελούμενης διαδικασίας βρίσκεται μέσα στην αγκύλη κλήσης της καλούμενης διαδικασίας. Η προσπέλαση θα επιτραπεί μόνον αν διενεργηθεί μέσω κάποιου συγκεκριμένου σημείου εισόδου, που πρέπει να έχει δηλωθεί στον πηγαίο κώδικα της καλούμενης διαδικασίας, γνωστό ως πύλη. 70 Τμήμα Ψηφιακών Συστημάτων
Έλεγχος Βασισμένος σε Ρόλους (1/2) Οι μηχανισμοί ελέγχου προσπέλασης που εξετάστηκαν εξειδικεύονται στο σύστημα στο οποίο θα εφαρμοστούν καθώς επικοινωνούν άμεσα. Απαιτούν γνώση των υποκειμένων, αντικειμένων και των υποστηριζόμενων λειτουργιών προσπέλασης. Η νέα τάση είναι η υλοποίηση μηχανισμών που είναι ανεξάρτητοι από τα συστήματα στα οποία εφαρμόζονται, με στόχο την υλοποίηση του ελέγχου προσπέλασης σε επίπεδο εφαρμογών και όχι συστημάτων. Στη περίπτωση αυτή θα πρέπει να επικεντρωθούμε στις λειτουργίες (operations) του συστήματος και όχι στα αντικείμενά του. 71 Τμήμα Ψηφιακών Συστημάτων
Έλεγχος Βασισμένος σε Ρόλους (2/2) Με οποιαδήποτε εφαρμογή, η ολοκλήρωση μιας εργασίας από κάποιο χρήστη προϋποθέτει την εκτέλεση, με αυστηρά προκαθορισμένη σειρά, κάποιας ομάδας λειτουργιών. Αυτές οι ομάδες λειτουργιών ονομάζονται ρόλοι. Τα δικαιώματα προσπέλασης των υποκειμένων του συστήματος καθορίζονται από τους ρόλους που έχουν εξουσιοδοτηθεί να εκτελούν (συσχέτιση υποκειμένων – ρόλων). Προκύπτει λοιπόν ένας νέος μηχανισμός ελέγχου προσπέλασης βασισμένος σε ρόλους (Role-Based Access Control – RBAC), ο οποίος εστιάζει στους χρήστες και στις εργασίες που αυτοί εκτελούν. Κάποιος χρήστης μπορεί να συσχετισθεί με περισσότερους από ένα ρόλους και φυσικά κάποιος ρόλος μπορεί να συσχετισθεί με περισσότερους από ένα χρήστες 72 Τμήμα Ψηφιακών Συστημάτων
73 Τμήμα Ψηφιακών Συστημάτων Ευχαριστώ!