Μηχανισμοί Ελέγχου Προσπέλασης

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ασκήσεις

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

Μηχανισµοί Ελέγχου Προσπέλασης

Ασφάλεια Πληροφοριακών και Επικοινωνιακών Συστημάτων

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

Εισαγωγή στην Πληροφορική

ENOTHTA 9 AΣΦAΛEIA KAI ΠPOΣTAΣIA

ΔΙΑΧΕΙΡΙΣΗ ΚΟΙΝΟΧΡΗΣΤΩΝ ΦΑΚΕΛΩΝ ΚΑΙ ΑΡΧΕΙΩΝ

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

3 Μοντέλα Ελέγχου Προσπέλασης

Εργαστήριο Βάσεων Δεδομένων. Δικαιώματα Χρηστών Προβολές

Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Privilege Separation. Dimitris Mitropoulos

Κεφάλαιο 4: Λογισμικό Συστήματος

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

Λιβανός Γιώργος Εξάμηνο 2017Β

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

Οδηγίες για την Διαδικασία αποθήκευσης στοιχείων ελέγχου πινάκων για επίλυση θέματος Οριοθέτησης.

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Λίγα λόγια από το συγγραφέα...7

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Επιτεύγµατα των Λ.Σ.

Lect_Systems_Networks_Security PartB

Οδηγίες αξιοποίησης για τον Εκπαιδευτικό

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εργαστήριο Βάσεων Δεδομένων

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Εισαγωγή στην Πληροφορική

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 10

Εισαγωγή στους Υπολογιστές

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο. Πίνακες. Επικοινωνία:

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 3. Διδακτικοί Στόχοι

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

Σχεσιακό Μοντέλο Περιορισμοί Μετατροπή ER σε Σχεσιακό Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Relational Model

Εργαστηριακές Ασκήσεις Σελίδα 1

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση

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

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Τ.Ε.Ι ΘΕΣΣΑΛΟΝΙΚΗΣ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΔΒΔ (ΕΡΓΑΣΤΗΡΙΟ 4) Τελευταία ενημέρωση: 11/2011. Μετασχηματισμός διαγράμματος ER σε σχεσιακό σχήμα ΒΔ

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ

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

Διαχείριση Δικτύων με τη χρήση SNMP (5η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο,

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πεδί α

Εικονική Μνήμη (Virtual Μemory)

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

Active Directory Users and Computers. Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Δικαιώματα Πρόσβασης στο Λειτουργικό Σύστημα UNIX. Χρήστες και Ομάδες στο Unix. Δικαιώματα στο Unix. Παράδειγμα Δένδρου Συστήματος Αρχείων

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

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

Κεφάλαιο 4. Λογισμικό Συστήματος

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ. Οδηγίες προς τις Συνεργαζόμενες Τράπεζες

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Εισαγωγή στα Λειτουργικά Συστήματα

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

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

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Transcript:

Μηχανισμοί Ελέγχου Προσπέλασης 2 ο Εργαστήριο Ελίνα Μακρή elmak@unipi.gr

Περιεχόμενα Έλεγχος Προσπέλασης Βασικές Έννοιες Πολιτικές Ελέγχου Προσπέλασης DAC MAC RBAC Λειτουργίες & Τρόποι Προσπέλασης Δικαιώματα Προσπέλασης του μοντέλου Bell-LaPadula Χαρακτηριστικά Προσπέλασης των ΛΣ Multics UNIX Windows NT Πίνακας Ελέγχου Προσπέλασης (Access Control Matrix Model - ACM) 2

Περιεχόμενα Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης (Access Control List ACL) Περιγραφή Τύπος Δικαιώματα Παραδείγματα Wildcards Ανάκληση Δικαιωμάτων Προσπέλασης Λίστα Δυνατοτήτων (Capability List C-List) Περιγραφή Τύπος Δικαιώματα Παραδείγματα Ομάδες Υποκειμένων και Αρνητικά Δικαιώματα Προστατευτικοί Δακτύλιοι Διαφορές ACL & C-List 3

Έλεγχος Προσπέλασης Ο όρος Έλεγχος Προσπέλασης αφορά τους συγκεκριμένους μηχανισμούς που υλοποιεί κάποιο υπολογιστικό σύστημα, με σκοπό να προστατεύσει από μη εξουσιοδοτημένη προσπέλαση τα δεδομένα εκείνα, τα οποία επηρεάζουν την ασφάλεια του συστήματος και είναι αποθηκευμένα στη μνήμη, στους καταχωρητές ή σε οποιοδήποτε άλλο τμήμα του. Με τον τρόπο αυτό τα υπολογιστικά συστήματα προσπαθούν να προστατεύσουν τόσο την ακεραιότητα όσο και την εμπιστευτικότητα των δεδομένων που ανακτούν, αποθηκεύουν ή επεξεργάζονται. 4

Βασικές Έννοιες (1/4) Προσπέλαση: Ο όρος προσπέλαση υποδηλώνει ότι υπάρχει κάποιο υποκείμενο (subject) που προσπαθεί να προσπελάσει κάποιο αντικείμενο (object) αξιοποιώντας κάποια λειτουργία προσπέλασης (access operation) που προσφέρει το υπολογιστικό σύστημα. 5

Βασικές Έννοιες (2/4) Υποκείμενο (Subject): Ο όρος υποκείμενο αντιπροσωπεύει τους χρήστες και τις διεργασίες ενός συστήματος (είναι κάτι ενεργό στο σύστημα). Π.χ. διεργασίες (processes), χρήστες (users), προγράμματα (programs), ρόλοι (roles), modules. Αντικείμενο (Object): Ο όρος αντικείμενο αντιπροσωπεύει τα αρχεία και άλλους υπολογιστικούς πόρους όπως μνήμη, εκτυπωτές κ.λπ. (είναι κάτι στο οποίο ενεργεί το υποκείμενο). Π.χ. αρχεία (files), κατάλογοι (directories), συσκευές (devices), υποδοχές (sockets), παράθυρα (windows), μηνύματα που ανταλλάσουν κάποιες διεργασίες μεταξύ τους ή ακόμη και υπολογιστικά συστήματα. Κάθε οντότητα του υπολογιστικού συστήματος ανάλογα με τις εκτελούμενες λειτουργίες μπορεί να δρα ως υποκείμενο (ενεργή οντότητα) αιτείται προσπέλασης σε κάποιον πόρο ή ως αντικείμενο (παθητική οντότητα). 6

Βασικές Έννοιες (3/4) Ένα σύνολο υποκειμένων S (χρήστες, διεργασίες). Ένα σύνολο αντικειμένων O που σχετίζονται με την κατάσταση προστασίας του συστήματος. Ένα σύνολο λειτουργιών προσπέλασης Α. Ιδιοκτήτης Αντικειμένου (Owner): Ο ιδιοκτήτης ενός αντικειμένου έχει τη δυνατότητα να τροποποιεί τα δικά του δικαιώματα και να εκχωρεί ή να ανακαλεί δικαιώματα προσπέλασης σε/από άλλα υποκείμενα. Ο διαχειριστής ενός συστήματος θα μπορούσε να θεωρηθεί ως ιδιοκτήτης όλων των αντικειμένων, καθώς μπορεί να προσπελάσει τα αντικείμενα ανεξάρτητα από τα δικαιώματα που του έχουν εκχωρηθεί από τους ιδιοκτήτες. 7

Βασικές Έννοιες (4/4) Μέσω της πολιτικής ασφάλειας υλοποιείται ο καθορισμός και ο έλεγχος των τρόπων εκχώρησης δικαιωμάτων προσπέλασης, καθώς και των τρόπων που τα υποκείμενα μπορούν να προσπελάσουν κάποια αντικείμενα. Υπεύθυνοι για τον καθορισμό της πολιτικής ασφάλειας είναι οι ιδιοκτήτες των υπολογιστικών πόρων (Πολιτική Διακριτικού Ελέγχου Προσπέλασης - DAC) Κεντρική απόφαση σε επίπεδο συστήματος (Πολιτική Υποχρεωτικού Ελέγχου Προσπέλασης - MAC) 8

Πολιτικές Ελέγχου Προσπέλασης Έλεγχος Προσπέλασης (ISO) Access Control Decision Facility Access Control Enforcement Facility Οι Πολιτικές Ελέγχου Προσπέλασης διακρίνονται με βάση τον βαθμό ευαισθησίας της πληροφορίας και τον βαθμό εμπιστοσύνης. Βαθμός ευαισθησίας πληροφορίας & Βαθμός εμπιστοσύνης Άκρως Απόρρητη Απόρρητη Εμπιστευτική Αδιαβάθμητη 9

Πολιτικές Ελέγχου Προσπέλασης Πολιτική Υποχρεωτικού Ελέγχου Προσπέλασης (MAC) Η εφαρμογή της είναι υποχρεωτική για όλους τους χρήστες του συστήματος. Άδεια προσπέλασης στην πολιτική MAC χορηγείται αν: Ο βαθμός εμπιστοσύνης του χρήστη που ζητά την άδεια είναι τουλάχιστον ίσος με το βαθμό ευαισθησίας της πληροφορίας για τουλάχιστον όλα τα διαμερίσματα στα οποία ανήκει η προς προσπέλαση πληροφορία, και Η άδεια προσπέλασης δεν παρέχει, άμεσα ή έμμεσα, δυνατότητα υποβιβασμού του βαθμού ευαισθησίας μιας πληροφορίας μέσω εγγραφής της σε πληροφορία χαμηλότερου βαθμού ευαισθησίας. H MAC χρησιμοποιείται στα στρατιωτικά πληροφοριακά συστήματα ασφάλειας. 10

Πολιτικές Ελέγχου Προσπέλασης Πολιτική Διακριτικού Ελέγχου Προσπέλασης (DAC) Η διακίνηση της πληροφορίας είναι βασικά ελεύθερη. Οι κανόνες της διακίνησης αυτής καθορίζονται αποκλειστικά και μόνο από τους ιδιοκτήτες (ή παραγωγούς) της πληροφορίας. Η απόφαση για τη χορήγηση ή όχι άδειας προσπέλασης βασίζεται μόνο στην ταυτότητα των χρηστών ή/και των ομάδων στις οποίες αυτοί ανήκουν. Η δυνατότητα ενός χρήστη που έχει ήδη κάποιο συγκεκριμένο δικαίωμα προσπέλασης να το μεταβιβάσει σ έναν άλλο χρήστη επαφίεται στη διακριτική ευχέρεια του χρήστη, χωρίς να απαιτείται η διαμεσολάβηση του διαχειριστή συστήματος. Η DAC χρησιμοποιείται στα πληροφοριακά συστήματα ασφάλειας ακαδημαϊκού περιβάλλοντος. 11

Πολιτικές Ελέγχου Προσπέλασης Πολιτική Ρολοκεντρικού Ελέγχου Προσπέλασης (RBAC) Η έννοια του ρόλου συμπεριλαμβάνει τα καθήκοντα, αρμοδιότητες, αλλά και τα προσόντα που κάποιος (π.χ. ένας χρήστης) έχει. Μπορεί να θεωρηθεί ως ένα σύνολο ενεργειών που μπορεί να κάνει ένας χρήστης. Η πολιτική Ρολο-Κεντρικού Ελέγχου Προσπέλασης βασίζει τις αποφάσεις για τη χορήγηση άδειας προσπέλασης στις ενέργειες που ένας χρήστης επιτρέπεται να εκτελέσει, ενώ δεν αφήνεται στη διακριτική ευχέρεια των χρηστών η μεταβίβαση δικαιωμάτων προσπέλασης σε άλλους χρήστες. Η RBAC πολιτική εφαρμόζεται σε διάφορους οργανισμούς, για παράδειγμα σε ένα νοσοκομείο (ρόλοι: γιατρός, νοσοκόμα, φαρμακοποιός, διοικητικός υπάλληλος). 12

Λειτουργίες & Τρόποι Προσπέλασης Κάθε υπολογιστικό σύστημα υποστηρίζει συγκεκριμένες λειτουργίες για την προσπέλαση των πόρων του, όπως: Λειτουργίες ανάγνωσης/εγγραφής της μνήμης Κλήσεις μεθόδων σε αντικειμενοστρεφή συστήματα Ένα υποκείμενο μπορεί να παρατηρήσει ή να τροποποιήσει κάποιο αντικείμενο. Δύο είναι οι τρόποι προσπέλασης: Παρατήρηση (observe): Ανάγνωση των περιεχομένων του αντικειμένου Τροποποίηση (alter): Αλλαγή των περιεχομένων του αντικειμένου 13

Δικαιώματα Προσπέλασης του μοντέλου Bell-LaPadula Τα τέσσερα δικαιώματα προσπέλασης (access rights) του μοντέλου ασφαλείας Bell-LaPadula είναι: Εκτέλεση (execute) Ανάγνωση (read) Προσθήκη (append) Εγγραφή (write) Η συσχέτισή τους με τους δύο βασικούς τρόπους προσπέλασης είναι: Εκτέλεση Ανάγνωση Προσθήκη Εγγραφή Παρατήρηση Χ Χ Τροποποίηση Χ Χ 14

Bell-LaPadula: Δικαίωμα Εγγραφής Όταν ένας χρήστης θέλει να προσπελάσει ένα αρχείο, πρέπει πρώτα να το ανοίξει και μετά του δίνεται προσπέλαση για ανάγνωση ή εγγραφή. Με αυτό τον τρόπο το λειτουργικό σύστημα προλαβαίνει πιθανές συγκρούσεις προσπέλασης. Το δικαίωμα της εγγραφής συμπεριλαμβάνει και τους 2 βασικούς τρόπους προσπέλασης (παρατήρηση και τροποποιήση). Αυτό γίνεται, γιατί όταν ένας χρήστης θέλει να επεξεργαστεί ένα αρχείο, όταν ανοίγει το αρχείο δεν του ζητείται να το ανοίξει 2 φορές, μια για ανάγνωση και μια για εγγραφή. Εκτέλεση Ανάγνωση Προσθήκη Εγγραφή Παρατήρηση Χ Χ Τροποποίηση Χ Χ 15

Bell-LaPadula: Δικαίωμα Ανάγνωσης Το δικαίωμα ανάγνωσης περιλαμβάνει μόνο τον ένα τρόπο προσπέλασης, της παρατήρησης. Ο χρήστης μόνο βλέπει το αρχείο χωρίς να έχει δικαίωμα να το τροποποιήσει. Εκτέλεση Ανάγνωση Προσθήκη Εγγραφή Παρατήρηση Χ Χ Τροποποίηση Χ Χ 16

Bell-LaPadula: Δικαίωμα Προσθήκης Το δικαίωμα της προσθήκης υποστηρίζει μόνο τον ένα τρόπο προσπέλασης, της τροποποίησης. Υποστηρίζεται από πολύ λίγα συστήματα. Αυτό συμβαίνει, γιατί δεν είναι πολύ χρήσιμο στις εφαρμογές να τροποποιεί ένας χρήστης τα περιεχόμενα ενός αρχείου χωρίς να μπορεί να τα διαβάσει. Εκτέλεση Ανάγνωση Προσθήκη Εγγραφή Παρατήρηση Χ Χ Τροποποίηση Χ Χ 17

Bell-LaPadula: Δικαίωμα Εκτέλεσης Το δικαίωμα της εκτέλεσης δεν υποστηρίζει κανένα τρόπο προσπέλασης. Αυτό συμβαίνει, γιατί αφορά τις περιπτώσεις όπου το λειτουργικό σύστημα μπορεί να εκτελέσει κάποιο αρχείο χωρίς να απαιτηθεί να το ανοίξει. Π.χ. Εκτέλεση κρυπτογραφικού αλγορίθμου, ο οποίος χρησιμοποιεί κάποιο μυστικό κλειδί και δεν πρέπει να διαρρεύσει. Εκτέλεση Ανάγνωση Προσθήκη Εγγραφή Παρατήρηση Χ Χ Τροποποίηση Χ Χ 18

Χαρακτηριστικά Προσπέλασης του ΛΣ Multics Το λειτουργικό σύστημα Multics διαφοροποιεί τα χαρακτηριστικά προσπέλασης για τα τμήματα δεδομένων και τους καταλόγους. Για τα τμήματα δεδομένων ορίζονται τα δικαιώματα προσπέλασης: Ανάγνωση (read) Εγγραφή (write) Εκτέλεση (execute) Για τους καταλόγους ορίζονται τα δικαιώματα προσπέλασης : Κατάσταση (status) Προσθήκη (append) Εύρεση (search) Αλλαγή (modify) 19

Multics vs Bell-LaPadula Multics Τμήματα Δεδομένων Multics Κατάλογοι Multics Τμήματα Δεδομένων Bell-LaPadula Multics Κατάλογοι Bell-LaPadula Ανάγνωση Ανάγνωση Κατάσταση Ανάγνωση Εκτέλεση Εκτέλεση, Ανάγνωση Κατάσταση, Αλλαγή Εγγραφή Ανάγνωση, Εγγραφή Εγγραφή Προσθήκη Προσθήκη Εγγραφή Προσθήκη Εύρεση Εκτέλεση 20

Χαρακτηριστικά Προσπέλασης του ΛΣ UNIX O μηχανισμός ελέγχου προσπέλασης του ΛΣ UNIX υποστηρίζει τρεις λειτουργίες προσπέλασης: Ανάγνωση (read): Ανάγνωση από κάποιο αρχείο Εγγραφή (write): Εγγραφή σε κάποιο αρχείο Εκτέλεση (execute): Εκτέλεση ενός προγράμματος αρχείου Οι προαναφερόμενες λειτουργίες διαφέρουν από αυτές που ορίζει το μοντέλο Bell- LaPadula. Για παράδειγμα, στο Unix η λειτουργία εγγραφής δε σημαίνει ότι αυτομάτως κάποιος αποκτά και δικαίωμα ανάγνωσης του αντικειμένου. Όταν οι λειτουργίες προσπέλασης αναφέρονται σε καταλόγους, τότε το νόημα τους διαφοροποιείται: Ανάγνωση (read): Ανάγνωση των περιεχομένων του καταλόγου Εγγραφή (write): Δημιουργία νέου αρχείου ή μετονομασία ενός υπάρχοντος αρχείου στον κατάλογο Εκτέλεση (execute): Αναζήτηση στον κατάλογο Το UNIX δεν υποστηρίζει τη λειτουργία Διαγραφή, καθώς την υλοποιεί μέσω της λειτουργίας Εγγραφή στον κατάλογο. 21

Χαρακτηριστικά Προσπέλασης του ΛΣ Windows NT Άδειες Προσπέλασης: Ανάγνωση (read) Εγγραφή (write) Εκτέλεση (execute) Διαγραφή (delete) Αλλαγή Άδειας Προσπέλασης (change permission) Νέες λειτουργίες για την αλλαγή των Αλλαγή Ιδιοκτησίας (change ownership) δικαιωμάτων προσπέλασης. Λειτουργίες διαχείρισης δικαιωμάτων προσπέλασης ενός υποκειμένου: Εκχώρηση (grant) και Ανάκληση (revoke), όταν τα δικαιώματα του υποκειμένου τροποποιούνται από κάποιον τρίτο Επιβολή (assert) και Απάρνηση (deny), όταν το ίδιο το υποκείμενο αλλάζει τα δικαιώματά του 22

Πίνακας Ελέγχου Προσπέλασης

Πίνακας Ελέγχου Προσπέλασης Πίνακας Ελέγχου Προσπέλασης (Access Control Matrix - ACM): Το μοντέλο του Πίνακα Ελέγχου Προσπέλασης (Access Control Matrix Model) είναι το πλέον ακριβές για την περιγραφή μιας Κατάστασης Προστασίας ενός υπολογιστικού συστήματος. Συγκεκριμένα, προσδιορίζει τα δικαιώματα κάθε υποκειμένου σε σχέση με όλα τα αντικείμενα του συστήματος. Το συγκεκριμένο μοντέλο προτάθηκε από τον B. Lampson και βελτιώθηκε από τους G. Graham και P. Denning. 24

Υποκείμενα Πίνακας Ελέγχου Προσπέλασης Περιγραφή s 1 s 2 s n Αντικείμενα (οντότητες) & Υποκείμενα o 1 o m s 1 s n Υποκείμενα S = { s 1,,s n } Αντικείμενα O = { o 1,,o m } Δικαιώματα R = { r 1,,r k } Είσοδοι A[s i, o j ] R A[s i, o j ] = { r x,, r y } σημαίνει ότι το υποκείμενο s i έχει δικαιώματα r x,, r y πάνω στο αντικείμενο o j 25

Πίνακας Ελέγχου Προσπέλασης - Παράδειγμα Διεργασίες p, q Αρχεία f, g Δικαιώματα r, w, x, a, o f g p q p rwo r rwxoa w q a ro r rwxoa 26

Πίνακας Ελέγχου Προσπέλασης Τύπος Ο Πίνακας που ακολουθεί απεικονίζει την κατάσταση προστασίας για ένα σύστημα με μία διεργασία Δ, ένα χρήστη Χ, δύο αρχεία και ένα σύνολο λειτουργιών προσπέλασης Α = {Ανάγνωση, Εγγραφή, Εκτέλεση, Προσθήκη}. Αρχείο 1 Αρχείο 2 Διεργασία Δ Χρήστης Χ Διεργασία Δ Ανάγνωση, Εγγραφή Ανάγνωση Ανάγνωση, Εγγραφή, Εκτέλεση Ανάγνωση Χρήστης Χ Προσθήκη Ανάγνωση Εγγραφή Ανάγνωση, Εγγραφή, Εκτέλεση 27

Πίνακας Ελέγχου Προσπέλασης Δικαιώματα Η διεργασία Δ έχει δικαίωμα Ανάγνωσης και στα δύο αρχεία και Εγγραφής μόνο στο αρχείο 1. Ο χρήστης Χ έχει δικαίωμα Προσθήκης στο αρχείο 1 και Ανάγνωσης στο αρχείο 2. Επίσης η διεργασία Δ έχει δικαίωμα επικοινωνίας και συγκεκριμένα Ανάγνωσης δεδομένων από το χρήστη Χ, ενώ ο χρήστης Χ μπορεί να επικοινωνήσει με τη διεργασία Δ Εγγράφοντας δεδομένα. Ενδιαφέρον παρουσιάζει το γεγονός ότι η διεργασία Δ και ο χρήστης Χ αντιμετωπίζονται τόσο ως υποκείμενα (γραμμές του πίνακα) όσο και ως αντικείμενα (στήλες του πίνακα). Αρχείο 1 Αρχείο 2 Διεργασία Δ Χρήστης Χ Διεργασία Δ Ανάγνωση, Εγγραφή Ανάγνωση Ανάγνωση, Εγγραφή, Προσθήκη Ανάγνωση Χρήστης Χ Προσθήκη Ανάγνωση Εγγραφή Ανάγνωση, Εγγραφή, Προσθήκη 28

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 1 Η διεργασία 1 έχει δικαίωμα Ανάγνωσης και στα δύο αρχεία και Εγγραφής και Ιδιοκτησίας μόνο στο αρχείο 1. Η διεργασία 2 έχει δικαίωμα Προσθήκης στο αρχείο 1 και Ανάγνωσης και Ιδιοκτησίας στο αρχείο 2. Επίσης η διεργασία 1 έχει δικαίωμα επικοινωνίας και συγκεκριμένα Ανάγνωσης δεδομένων από την διεργασία 2, ενώ η διεργασία 2 μπορεί να επικοινωνήσει με τη διεργασία 1 Εγγράφοντας δεδομένα. Ενδιαφέρον παρουσιάζει το γεγονός ότι η διεργασία 1 και η διεργασία 2 αντιμετωπίζονται τόσο ως υποκείμενα (γραμμές του πίνακα) όσο και ως αντικείμενα (στήλες του πίνακα). Προσθέστε στον πίνακα ελέγχου προσπέλασης το δικαίωμα της ιδιοκτησίας. File 1 File 2 Process 1 Process 2 Process 1 Read, Write Read Read, Write, Append Read Process 2 Append Read Write Read, Write, Append 29

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 1 - Λύση Η διεργασία 1 έχει δικαίωμα Ανάγνωσης και στα δύο αρχεία και Εγγραφής και Ιδιοκτησίας μόνο στο αρχείο 1. Η διεργασία 2 έχει δικαίωμα Προσθήκης στο αρχείο 1 και Ανάγνωσης και Ιδιοκτησίας στο αρχείο 2. Επίσης η διεργασία 1 έχει δικαίωμα επικοινωνίας και συγκεκριμένα Ανάγνωσης δεδομένων από την διεργασία 2, ενώ η διεργασία 2 μπορεί να επικοινωνήσει με τη διεργασία 1 Εγγράφοντας δεδομένα. Ενδιαφέρον παρουσιάζει το γεγονός ότι η διεργασία 1 και η διεργασία 2 αντιμετωπίζονται τόσο ως υποκείμενα (γραμμές του πίνακα) όσο και ως αντικείμενα (στήλες του πίνακα). Προσθέστε στον πίνακα ελέγχου προσπέλασης το δικαίωμα της ιδιοκτησίας. S= {process 1, process 2} O= {file 1, file 2, process 1, process 2} A= {read, write, execute, append, own} File 1 File 2 Process 1 Process 2 Process 1 Read, Write, Own Read Read, Write, Append, Own Read Process 2 Append Read, Own Write Read, Write, Append, Own 30

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 2 Στον προηγούμενο πίνακα: Η Process 1 μπορεί να δώσει δικαίωμα στην Process 2 να διαβάσει το File 1. Τι αλλαγή θα γίνει στον παρακάτω πίνακα; S= {process 1, process 2} O= {file 1, file 2, process 1, process 2} A= {read, write, execute, append, own} File 1 File 2 Process 1 Process 2 Process 1 Read, Write, Own Read Read, Write, Append, Own Read Process 2 Append Read, Own Write Read, Write, Append, Own 31

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 2 Λύση Στον προηγούμενο πίνακα: Η Process 1 μπορεί να δώσει δικαίωμα στην Process 2 να διαβάσει το File 1. Τι αλλαγή θα γίνει στον παρακάτω πίνακα; S= {process 1, process 2} O= {file 1, file 2, process 1, process 2} A= {read, write, execute, append, own} File 1 File 2 Process 1 Process 2 Process 1 Read, Write, Own Read Read, Write, Append, Own Read Process 2 Append, Read Read, Own Write Read, Write, Append, Own 32

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 3 Θεωρήστε οτι ένα υπολογιστικό σύστημα έχει 3 χρήστες: Alice, Bob, and Cyndy. Η Alice έχει στην ιδιοκτησία της το αρχείο με όνομα alicerc και ο Bob και η Cyndy μπορούν να το διαβάσουν. Η Cyndy μπορεί να διαβάσει και να γράψει στο αρχείο του Bob με όνομα bobrc, αλλά η Alice μπορεί μόνο να το διαβάσει. Μόνο η Cyndy μπορεί να διαβάσει και να γράψει στο αρχείο της με όνομα cyndyrc. Επίσης, λαμβάνουμε υπόψη ότι μόνο ο ιδιοκτήτης του κάθε αρχείου μπορεί να εκτελέσει αυτά. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. 33

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 3 - Λύση Θεωρήστε οτι ένα υπολογιστικό σύστημα έχει 3 χρήστες: Alice, Bob, and Cyndy. Η Alice έχει στην ιδιοκτησία της το αρχείο με όνομα alicerc και ο Bob και η Cyndy μπορούν να το διαβάσουν. Η Cyndy μπορεί να διαβάσει και να γράψει στο αρχείο του Bob με όνομα bobrc, αλλά η Alice μπορεί μόνο να το διαβάσει. Μόνο η Cyndy μπορεί να διαβάσει και να γράψει στο αρχείο της με όνομα cyndyrc. Επίσης, λαμβάνουμε υπόψιν οτι μόνο ο ιδιοκτήτης του κάθε αρχείου μπορεί να εκτελέσει αυτά. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. S= {Alice, Bob, Cyndy} O= {alicerc, bobrc, cyndyrc, Alice, Bob, Cyndy} A= {read, write, execute, own} alicerc bobrc cyndyrc Alice o,e r Bob Cyndy r o,e r r,w o,r,w,e 34

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 4 Στον πίνακα του προηγούμενου παραδείγματος που φαίνεται παρακάτω ενσωματώστε την εξής αλλαγή: Η Cyndy εκχωρεί το δικαίωμα στην Alice να διαβάσει το αρχείο με όνομα cyndyrc και η Alice διαγράφει το δικαίωμα ανάγνωσης που έχει ο Bob στο αρχείο alicerc. Να φτιαχτεί ο καινούριος πίνακας ελέγχου προσπέλασης. alicerc bobrc cyndyrc Alice o,e r Bob Cyndy r o,e r r,w o,r,w,e 35

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 4 - Λύση Στον πίνακα του προηγούμενου παραδείγματος που φαίνεται παρακάτω ενσωματώστε την εξής αλλαγή: Η Cyndy εκχωρεί το δικαίωμα στην Alice να διαβάσει το αρχείο με όνομα cyndyrc και η Alice διαγράφει το δικαίωμα ανάγνωσης που έχει ο Bob στο αρχείο alicerc. Να φτιαχτεί ο καινούριος πίνακας ελέγχου προσπέλασης. alicerc bobrc cyndyrc Alice Bob Cyndy o,e r r - o,e r r,w o,r,w,e 36

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 5 Τριών Συστημάτων Ενός Τοπικού Δικτύου (1/2) Το σύνολο των λειτουργιών προσπέλασης Α, αφορά το πρωτόκολλο επικοινωνίας που χρησιμοποιείται στο τοπικό δίκτυο και περιλαμβάνει τις λειτουργίες: ftp: Χρήση πρωτοκόλλου ftp (File Transfer Protocol) για προσπέλαση του συστήματος. nfs: Χρήση πρωτοκόλλου nfs (Network File System Protocol) για προσπέλαση του συστήματος. mail: Χρήση πρωτοκόλλου SMTP (Simple Mail Transfer Protocol) για αποστολή και λήψη ηλεκτρονικών μηνυμάτων. 37

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 5 Τριών Συστημάτων Ενός Τοπικού Δικτύου (2/2) Το υποκείμενο Κόμβος 1 είναι ένα υπολογιστικό σύστημα, το οποίο δεν είναι προσπελάσιμο από άλλα συστήματα του τοπικού δικτύου, ενώ εκείνο μπορεί να προσπελάσει τα συστήματα Κόμβος 2 και Κόμβος 3 μέσω του πρωτοκόλλου ftp. Το σύστημα Κόμβος 2 προσφέρει υπηρεσίες nfs σε κάποιους κόμβους του δικτύου που όμως δεν περιλαμβάνουν τον Κόμβο 1 και τον Κόμβο 3. Αντίστοιχα, ο Κόμβος 3 προσφέρει nfs υπηρεσίες σε κάποια ομάδα υπολογιστών στην οποία συμπεριλαμβάνεται και ο Κόμβος 2. Επίσης, τα συστήματα Κόμβος 2 και Κόμβος 3 μπορούν να ανταλλάξουν ηλεκτρονικά μηνύματα και να επικοινωνήσουν μέσω ftp. Κόμβος 1 Κόμβος 2 Κόμβος 3 Κόμβος 1 ftp ftp Κόμβος 2 ftp, nfs, mail ftp, nfs, mail Κόμβος 3 ftp, mail ftp, nfs, mail 38

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 6 Το υποκείμενο Telegraph είναι ένα υπολογιστικό σύστημα, το οποίο δεν είναι προσπελάσιμο από άλλα συστήματα του τοπικού δικτύου, ενώ εκείνο μπορεί να προσπελάσει τα συστήματα Nob και Toadflax μέσω του πρωτοκόλλου ftp. Το σύστημα Nob προσφέρει υπηρεσίες nfs σε κάποιους κόμβους του δικτύου που όμως δεν περιλαμβάνουν τον Telegraph και τον Toadflax. Αντίστοιχα, το σύστημα Toadflax προσφέρει nfs υπηρεσίες σε κάποια ομάδα υπολογιστών στην οποία συμπεριλαμβάνεται και ο Nob. Επίσης, τα συστήματα Nob και Toadflax μπορούν να ανταλλάξουν ηλεκτρονικά μηνύματα και να επικοινωνήσουν μέσω ftp. Ο καθένας απο τους 3 κόμβους (Telegraph, Nob και Toadflax) έχει δικαίωμα ιδιοκτησίας μόνο στον εαυτό του. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. 39

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 6 Λύση Το υποκείμενο Telegraph είναι ένα υπολογιστικό σύστημα, το οποίο δεν είναι προσπελάσιμο από άλλα συστήματα του τοπικού δικτύου, ενώ εκείνο μπορεί να προσπελάσει τα συστήματα Nob και Toadflax μέσω του πρωτοκόλλου ftp. Το σύστημα Nob προσφέρει υπηρεσίες nfs σε κάποιους κόμβους του δικτύου που όμως δεν περιλαμβάνουν τον Telegraph και τον Toadflax. Αντίστοιχα, το σύστημα Toadflax προσφέρει nfs υπηρεσίες σε κάποια ομάδα υπολογιστών στην οποία συμπεριλαμβάνεται και ο Nob. Επίσης, τα συστήματα Nob και Toadflax μπορούν να ανταλλάξουν ηλεκτρονικά μηνύματα και να επικοινωνήσουν μέσω ftp. Ο καθένας απο τους 3 κόμβους (Telegraph, Nob και Toadflax) έχει δικαίωμα ιδιοκτησίας μόνο στον εαυτό του. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. S= {Telegraph, Nob, Toadflax} O= {Telegraph, Nob, Toadflax} A= {ftp, nfs, mail, own} Hostnames Telegraph Nob Toadflax Telegraph own ftp ftp Nob ftp, nfs, mail, own ftp, nfs, mail Toadflax ftp, mail ftp, nfs, mail, own 40

Πίνακας Ελέγχου Προσπέλασης Μοντελοποίηση Γλωσσών Προγραμματισμού Αντικείμενα: οι μεταβλητές Υποκείμενα: οι διάφορες ρουτίνες (procedures, functions και modules). Ας θεωρήσουμε ένα πρόγραμμα το οποίο περιλαμβάνει δύο συναρτήσεις shift-left και shiftright για την αριστερή και δεξιά ολίσθηση, αντιστοίχως, των περιεχομένων μιας τοπικής μεταβλητής του προγράμματος. Επίσης υποθέτουμε ότι υπάρχει μία τρίτη ρουτίνα shiftvariable, από την οποία γίνονται οι κλήσεις των shift-left και shift-right και ότι το σύνολο των λειτουργιών προσπέλασης είναι A = { <, >, κλήση} όπου < και > αναπαριστούν το δικαίωμα εκτέλεσης αριστερής και δεξιάς ολίσθησης αντιστοίχως και κλήση το δικαίωμα κλήσης κάποιας συνάρτησης. Τοπική Μεταβλητή Shift-Left Shift-Right Shift-Left < Shift-Right > Shift-Variable κλήση κλήση 41

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 7 Έστω ότι έχουμε ένα πρόγραμμα το οποίο περιλαμβάνει δύο συναρτήσεις inc_ctr και dec_ctr και έναν μετρητή counter. Επίσης, υποθέτουμε ότι υπάρχει μία τρίτη ρουτίνα manager, από την οποία γίνονται οι κλήσεις των inc_ctr και dec_ctr. Κάθε φορά που η ρουτίνα manager καλεί τον εαυτό της ο μετρητής counter αυξάνεται ή μειώνεται ανάλογα με το ποια συνάρτηση καλείται. Το σύνολο των λειτουργιών προσπέλασης είναι A = { +, -, κλήση} όπου + και αναπαριστούν την αύξηση του counter όταν καλείται η συνάρτηση inc_ctr και την μείωση του counter όταν καλείται η συνάρτηση dec_ctr και κλήση όταν η ρουτίνα manager καλεί κάποια από τις 2 συναρτήσεις. Η συνάρτηση manager είναι αναδρομική. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. 42

Πίνακας Ελέγχου Προσπέλασης Παράδειγμα 7 - Λύση Έστω ότι έχουμε ένα πρόγραμμα το οποίο περιλαμβάνει δύο συναρτήσεις inc_ctr και dec_ctr και έναν μετρητή counter. Επίσης, υποθέτουμε ότι υπάρχει μία τρίτη ρουτίνα manager, από την οποία γίνονται οι κλήσεις των inc_ctr και dec_ctr. Κάθε φορά που η ρουτίνα manager καλεί τον εαυτό της ο μετρητής counter αυξάνεται ή μειώνεται ανάλογα με το ποια συνάρτηση καλείται. Το σύνολο των λειτουργιών προσπέλασης είναι A = { +, -, κλήση} όπου + και αναπαριστούν την αύξηση του counter όταν καλείται η συνάρτηση inc_ctr και την μείωση του counter όταν καλείται η συνάρτηση dec_ctr και κλήση όταν η ρουτίνα manager καλεί κάποια από τις 2 συναρτήσεις. Η συνάρτηση manager είναι αναδρομική. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. S {procedures} (or modules) O {procedures, shared counter} A = {+,-,call} 43

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης (Access Control List ACL): Η Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης (Access Control List ACL) αποθηκεύει τα δικαιώματα προσπέλασης σε κάποιο αντικείμενο μαζί με το ίδιο το αντικείμενο. Μία λίστα ελέγχου δικαιωμάτων προσπέλασης αντιστοιχεί με μία στήλη του πίνακα ελέγχου προσπέλασης και εμπεριέχει πληροφορίες σχετικά με το ποιος μπορεί να προσπελάσει κάποιο συγκεκριμένο αντικείμενο. Κάθε αντικείμενο του συστήματος συσχετίζεται με μία ομάδα από ζεύγη, κάθε ζεύγους αποτελούμενου από ένα υποκείμενο και ένα σύνολο λειτουργιών - δικαιωμάτων προσπέλασης. Το συγκεκριμένο υποκείμενο έχει τη δυνατότητα να προσπελάσει το συσχετιζόμενο αντικείμενο με οποιεσδήποτε από τις αναφερόμενες λειτουργίες προσπέλασης. 45

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Περιγραφή Είναι μια λίστα με δικαιώματα που έχει ένα αντικείμενο (column). Η λίστα καθορίζει ποιος ή τι επιτρέπεται να έχει πρόσβαση στο αντικείμενο και τι λειτουργίες επιτρέπονται να εκτελεστούν σε αυτό το αντικείμενο. Access Control Matrix Access Control List Κάθε αντικείμενο ο σχετίζεται με μια λίστα από υποκείμενα s μαζί με τα δικαιώματα που έχουν αυτά πάνω στο αντικείμενο ο. A[s 1,o], A[s 2,o],, A[s n,o], όπου {s 1, s 2,, s n } τα υποκείμενα S 46

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Τύπος όπου S το σύνολο των υποκειμένων του συστήματος και A το σύνολο των υποστηριζόμενων λειτουργιών προσπέλασης - δικαιωμάτων. Αρχείο 1 Αρχείο 2 Διεργασία Δ Χρήστης Χ Διεργασία Δ Ανάγνωση, Εγγραφή Ανάγνωση Ανάγνωση, Εγγραφή, Εκτέλεση Ανάγνωση Χρήστης Χ Προσθήκη Ανάγνωση Εγγραφή Ανάγνωση, Εγγραφή, Εκτέλεση 47

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Δικαιώματα Οι λίστες ελέγχου δικαιωμάτων για τα αντικείμενα του παραδείγματος του πίνακα ελέγχου προσπέλασης που είδαμε πριν είναι: Διεργασία Δ Αρχείο 1 Αρχείο 2 Διεργασία Δ Χρήστης Χ Ανάγνωση, Εγγραφή Ανάγνωση Ανάγνωση, Εγγραφή, Εκτέλεση Ανάγνωση Χρήστης Χ Προσθήκη Ανάγνωση Εγγραφή Ανάγνωση, Εγγραφή, Εκτέλεση acl (Αρχείο 1) = { (Διεργασία Δ, {Ανάγνωση, Εγγραφή}), (Χρήστης Χ, {Προσθήκη}) } acl (Αρχείο 2) = { (Διεργασία Δ, {Ανάγνωση}), (Χρήστης Χ, {Ανάγνωση}) } acl (Διεργασία Δ) = { (Διεργασία Δ, {Ανάγνωση, Εγγραφή, Εκτέλεση}), (Χρήστης Χ, {Εγγραφή}) } acl (Χρήστης Χ) = { (Διεργασία Δ, {Ανάγνωση}), (Χρήστης Χ, { Ανάγνωση, Εγγραφή, Εκτέλεση }) } 48

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Εναλλακτικός Τρόπος Παρουσίασης (1/2) Πίνακας Ελέγχου Προσπέλασης Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης 49

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Εναλλακτικός Τρόπος Παρουσίασης (2/2) Από το σχήμα παρατηρούμε οτι υπάρχουν 3 υποκείμενα (Alice, Bob and Fred) και 3 αντικείμενα (file1, file 2, and file 3). Κάθε αντικείμενο έχει ένα σύνολο απο δικαιώματα στο κάθε υποκείμενο. Σύμφωνα με το σχήμα κάθε αρχείο ή αντικείμενο έχει τη δική του λίστα ACL. Το File 1 συνδέεται με 2 υποκείμενα, την Alice και τον Fred. Επίσης, το File 1 επιτρέπει δικαιώματα ανάγνωσης για τα 2 υποκείμενα. Το File 2 δίνει στην Alice δικαίωμα εγγραφής στο File2 και στον Bob δικαίωμα ανάγνωσης στο αρχείο αυτό. 50

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 1 Από τον πίνακα ελέγχου προσπέλασης που φαίνεται παραπάνω να γραφεί η λίστα ελέγχου δικαιωμάτων προσπέλασης για το αντικείμενο Insurance Data. acl (Insurance Data) : { (Alice, {rw}), (Sam, {rw}), (Accounting Program, {rw}) } 51

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 2 Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Να φτιαχτούν οι λίστες ελέγχου δικαιωμάτων προσπέλασης. 52

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 2 - Λύση Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: S = {process 1, process 2} O = {file 1, file 2, process 1, process 2} A = {read, write, execute, append, own} Οι λίστες ελέγχου δικαιωμάτων προσπέλασης είναι: acl (file 1) = { (process 1, { read, write, own }), (process 2, { append }) } acl (file 2) = { (process 1, { read }), (process 2, { read, own }) } acl (process 1) = { (process 1, { read, write, execute, own }), (process 2, { read }) } acl (process 2) = { (process 1, { write }), (process 2, { read, write, execute, own }) } 53

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rwo Betty rwxo r Charlie rx rwo w Να φτιαχτούν οι λίστες ελέγχου δικαιωμάτων προσπέλασης. 54

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 3 - Λύση Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rwo Betty rwxo r Charlie rx rwo w Οι λίστες ελέγχου δικαιωμάτων προσπέλασης είναι: acl (Αρχείο 1): { (Andy, {rx}), (Betty, {rwxo}), (Charlie, {rx}) } acl (Αρχείο 2): { (Andy, {r}), (Betty, {r}), (Charlie, {rwo}) } acl (Αρχείο 3): { (Andy, {rwo}), (Charlie, {w}) } 55

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 4 Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Τοπική Μεταβλητή Shift-Left Shift-Right Shift-Left < Shift-Right > Shift-Variable κλήση κλήση Να φτιαχτούν οι λίστες ελέγχου δικαιωμάτων προσπέλασης. 56

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 4 - Λύση Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Τοπική Μεταβλητή Shift-Left Shift-Right Shift-Left < Shift-Right > Shift-Variable κλήση κλήση Οι λίστες ελέγχου δικαιωμάτων προσπέλασης είναι: acl (Τοπική Μεταβλητή): { (Shift-Left, {<}), (Shift-Right, {>}) } acl (Shift-Left): { (Shift-Variable, {κλήση}) } acl (Shift-Right): { (Shift-Variable, {κλήση}) } 57

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 5 H Alice μπορεί να διαβάσει τα αρχεία x και y και να γράψει μόνο στο αρχείο x. Επίσης, μπορεί να εκτελέσει το αρχείο z. Ο Bob μπορεί να διαβάσει το αρχείο x, να διαβάσει και να γράψει στο αρχείο y, αλλά δεν μπορεί να έχει πρόσβαση στο αρχείο z. 1. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης (ACM). 2. Να φτιαχτούν οι λίστες ελέγχου δικαιωμάτων προσπέλασης (ACL). Ποιές λίστες σχετίζονται με ποιά αρχεία; 58

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 5 - Λύση Ο πίνακας ελέγχου προσπέλασης είναι: Αρχείο x Αρχείο y Αρχείο z Alice rw r e Bob r rw Οι λίστες ελέγχου δικαιωμάτων προσπέλασης είναι: acl (Αρχείο x): { (Alice, {rw}), (Bob, {r}) } acl (Αρχείο y): { (Alice, {r}), (Bob, {rw}) } acl (Αρχείο z): { (Alice, {e}) } 59

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards (1/2) Συνήθως, ένα σύστημα έχει μεγάλο αριθμό υποκειμένων. Αυτό που συμβαίνει στην πράξη, είναι ότι πολλά υποκείμενα έχουν ακριβώς τα ίδια δικαιώματα προσπέλασης αναφορικά με κάποιο συγκεκριμένο αντικείμενο, εισάγοντας την έννοια των εξ ορισμού δικαιωμάτων προσπέλασης. Αν κάποιο υποκείμενο δεν αναφέρεται στη λίστα αυτό σημαίνει ότι δεν έχει δικαιώματα προσπέλασης στο συγκεκριμένο αντικείμενο. Μπορούν να οριστούν wildcards για την αντιπροσώπευση όλων των υποκειμένων που δεν αναφέρονται ονομαστικά στη λίστα και τον καθορισμό εξ ορισμού δικαιωμάτων προσπέλασης. 60

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards (2/2) Για παράδειγμα η λίστα acl (Αντικείμενο 1) = {(Υπ1, {Ανάγνωση, Εγγραφή}), (Υπ2, {Ανάγνωση}), (Υπ3, {Ανάγνωση}),..., (Υπ30, {Ανάγνωση}) } αναφέρεται σε κάποιο σύστημα με τριάντα υποκείμενα, εκ των οποίων το υποκείμενο 1 (Υπ1) έχει δικαίωμα Ανάγνωσης και Εγγραφής στο Αντικείμενο 1, ενώ τα υποκείμενα 2 έως και 30 (Υπ2,..., Υπ30) έχουν μόνο δικαίωμα Ανάγνωσης του Αντικειμένου 1. Χρησιμοποιώντας τα εξ ορισμού δικαιώματα προσπέλασης η παραπάνω λίστα θα μπορούσε να γίνει: acl (Αντικείμενο 1) = {(Υπ1, {Ανάγνωση, Εγγραφή}), (*, {Ανάγνωση}) } όπου το * (wildcard) αντιπροσωπεύει όλα τα υπόλοιπα υποκείμενα του συστήματος τα οποία δεν αναφέρονται ονομαστικά στη λίστα. 61

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 1 acl (Insurance Data) : { (Bob, {-}), (Alice, {rw}), (Sam, {rw}), (Accounting Program, {rw}) } Από τον πίνακα ελέγχου προσπέλασης που φαίνεται παραπάνω να γραφεί η λίστα ελέγχου δικαιωμάτων προσπέλασης με χρήση wildcards για το αντικείμενο Insurance Data. acl (Insurance Data) : {(*, {rw}), (Bob, {-}) } 62

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 2 Στο προηγούμενο παράδειγμα είχαμε καταλήξει από τον πίνακα ελέγχου προσπέλασης στις λίστες ελέγχου δικαιωμάτων προσπέλασης. Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rwo Betty rwxo r Charlie rx rwo w acl (Αρχείο 1): { (Andy, {rx}), (Betty, {rwxo}), (Charlie, {rx}) } acl (Αρχείο 2): { (Andy, {r}), (Betty, {r}), (Charlie, {rwo}) } acl (Αρχείο 3): { (Andy, {rwo}), (Charlie, {w}) } Να διαμορφωθούν οι λίστες σύμφωνα με τη χρήση wildcards. 63

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 2 Λύση Στο προηγούμενο παράδειγμα είχαμε καταλήξει από τον πίνακα ελέγχου προσπέλασης στις λίστες ελέγχου δικαιωμάτων προσπέλασης. Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rwo Betty rwxo r Charlie rx rwo w acl (Αρχείο 1): { (Andy, {rx}), (Betty, {rwxo}), (Charlie, {rx}) } acl (Αρχείο 2): { (Andy, {r}), (Betty, {r}), (Charlie, {rwo}) } acl (Αρχείο 3): { (Andy, {rwo}), (Charlie, {w}) } Να διαμορφωθούν οι λίστες σύμφωνα με τη χρήση wildcards. acl (Αρχείο 1): { (*, {rx}), (Betty, {rwxo}) } acl (Αρχείο 2): { (*, {r}), (Charlie, {rwo}) } acl (Αρχείο 3): { (Andy, {rwo}), (Charlie, {w}) } 64

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 3 Στο προηγούμενο παράδειγμα είχαμε καταλήξει από τον πίνακα ελέγχου προσπέλασης στις λίστες ελέγχου δικαιωμάτων προσπέλασης. Αρχείο x Αρχείο y Αρχείο z Alice rw r e Bob r rw acl (Αρχείο x): { (Alice, {rw}), (Bob, {r}) } acl (Αρχείο y): { (Alice, {r}), (Bob, {rw}) } acl (Αρχείο z): { (Alice, {e}) } Να διαμορφωθούν οι λίστες σύμφωνα με τη χρήση wildcards. 65

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 3 Λύση Στο προηγούμενο παράδειγμα είχαμε καταλήξει από τον πίνακα ελέγχου προσπέλασης στις λίστες ελέγχου δικαιωμάτων προσπέλασης. acl (Αρχείο x): { (Alice, {rw}), (Bob, {r}) } acl (Αρχείο y): { (Alice, {r}), (Bob, {rw}) } acl (Αρχείο z): { (Alice, {e}) } Αρχείο x Αρχείο y Αρχείο z Alice rw r e Bob r rw Να διαμορφωθούν οι λίστες σύμφωνα με τη χρήση wildcards. ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΓΙΝΕΙ ΧΡΗΣΗ ΤΩΝ WILDCARDS!!!! 66

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 4 Από έναν πίνακα ελέγχου προσπέλασης προέκυψε η παρακάτω λίστα ελέγχου δικαιωμάτων προσπέλασης. acl (Παρουσίαση Μαθήματος): { (ΦοιτητήςΑ.Μ.1, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.2, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.3, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.4, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.5, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.6, {Ανάγνωση}) } Να διαμορφωθεί η λίστα σύμφωνα με τη χρήση wildcards. 67

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 4 - Λύση Από έναν πίνακα ελέγχου προσπέλασης προέκυψε η παρακάτω λίστα ελέγχου δικαιωμάτων προσπέλασης. acl (Παρουσίαση Μαθήματος): { (ΦοιτητήςΑ.Μ.1, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.2, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.3, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.4, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.5, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.6, {Ανάγνωση}) } Να διαμορφωθεί η λίστα σύμφωνα με τη χρήση wildcards. acl (Παρουσίαση Μαθήματος): { (*, {Ανάγνωση}) } 68

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 5 Από έναν πίνακα ελέγχου προσπέλασης προέκυψε η παρακάτω λίστα ελέγχου δικαιωμάτων προσπέλασης. acl (Παρουσίαση Μαθήματος): { (ΦοιτητήςΑ.Μ.1, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.2, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.3, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.4, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.5, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.6, {Ανάγνωση}) } Θεωρούμε οτι το σύνολο των φοιτητών είναι 15 και ξέρουμε τα δικαιώματα για τους 6 από αυτούς. Να διαμορφωθεί η λίστα των φοιτητών με τη χρήση wildcards. 69

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Wildcards Παράδειγμα 5 - Λύση Από έναν πίνακα ελέγχου προσπέλασης προέκυψε η παρακάτω λίστα ελέγχου δικαιωμάτων προσπέλασης. acl (Παρουσίαση Μαθήματος): { (ΦοιτητήςΑ.Μ.1, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.2, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.3, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.4, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.5, {Ανάγνωση}), (ΦοιτητήςΑ.Μ.6, {Ανάγνωση}) } Θεωρούμε οτι το σύνολο των φοιτητών είναι 15 και ξέρουμε τα δικαιώματα για τους 6 απ αυτούς. Να διαμορφωθεί η λίστα των φοιτητών των οποίων τα δικαιώματα ξέρουμε σύμφωνα με τη χρήση wildcards. ΔΕΝ ΜΠΟΡΕΙ ΝΑ ΔΗΜΙΟΥΡΓΗΘΕΙ Η ΛΙΣΤΑ ΕΛΕΓΧΟΥ ΔΙΚΑΙΩΜΑΤΩΝ ΠΡΟΣΠΕΛΑΣΗΣ!!! Εξήγηση: Από την λίστα ελέγχου που μας δίνεται γνωρίζουμε το είδος των δικαιωμάτων μόνο 6 φοιτητών. Δίνεται σαν δεδομένο ότι ξέρουμε τα δικαιώματα 15 φοιτητών (γενικά), ΧΩΡΙΣ να αναφέρει πουθενά το ποιά είναι αυτά τα δικαιώματα. Επομένως, δεν μπορεί να γίνει ομαδοποίηση με wildcards. 70

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Η ανάκληση (revocation) των δικαιωμάτων προσπέλασης ενός υποκειμένου σε κάποιο αντικείμενο προϋποθέτει τη διαγραφή της σχετικής καταχώρησης, που εκχωρούσε τα δικαιώματα στο εν λόγω υποκείμενο, από τη Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης του συγκεκριμένου αντικειμένου. Αν η ανάκληση αφορά μόνο συγκεκριμένα δικαιώματα τότε αρκεί να διαγραφούν τα δικαιώματα αυτά από την καταχώρηση που αφορά το εν λόγω υποκείμενο. Η πολυπλοκότητα της ανάκλησης δικαιωμάτων έγκειται στο γεγονός ότι έχει αναδρομικό χαρακτήρα. Αυτό σημαίνει ότι αν ανακληθούν κάποια δικαιώματα από κάποιο υποκείμενο Α, θα πρέπει να ανακληθούν τα ίδια δικαιώματα και από όλα τα υπόλοιπα υποκείμενα του συστήματος στα οποία δευτερογενώς είχαν εκχωρηθεί τα συγκεκριμένα δικαιώματα από το υποκείμενο Α. 71

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα Ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Ανάγνωση και Εγγραφή) στο Αρχείο. Στη συνέχεια εκχωρούνται, στους Χρήστες 2 και 3, δικαιώματα προσπέλασης στο ίδιο Αρχείο, ως εξής: t = 5: Ο Χρήστης 1 εκχωρεί {Ανάγνωση, Εγγραφή} για το Αρχείο στο Χρήστη 3 t = 7: Ο Χρήστης 1 εκχωρεί {Εγγραφή} για το Αρχείο στο Χρήστη 2 Τη χρονική στιγμή t = 10, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 2. Να δημιουργηθεί το διάγραμμα πριν και μετά τη χρονική στιγμή t=10. 72

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα - Λύση Αρχικό Στάδιο Τελικό Στάδιο Χρήστης 1 Χρήστης 1 {{Ανάγνωση, Εγγραφή} (t=0)} {{Ανάγνωση, Εγγραφή} (t=10)} Αρχείο Αρχείο Χρήστης 2 Χρήστης 3 Χρήστης 2 Χρήστης 3 Εκχώρηση από Χρήστη 1 {{Εγγραφή} (t=7)} Εκχώρηση από Χρήστη 1 {{Ανάγνωση, Εγγραφή} (t=5)} {--(t=10)} Εκχώρηση από Χρήστη 1 {{Ανάγνωση, Εγγραφή} (t=10)} 73

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 1 Ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Ανάγνωση και Εγγραφή) στο Αρχείο. Στη συνέχεια εκχωρούνται, στους Χρήστες 2 και 3, δικαιώματα προσπέλασης στο ίδιο Αρχείο, ως εξής: t = 5: Ο Χρήστης 1 εκχωρεί {Ανάγνωση, Εγγραφή} για το Αρχείο στο Χρήστη 3 t = 7: Ο Χρήστης 1 εκχωρεί {Ανάγνωση} για το Αρχείο στο Χρήστη 2 Τη χρονική στιγμή t = 10, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 2. Να δημιουργηθεί το διάγραμμα πριν και μετά τη χρονική στιγμή t=10. 74

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 1 - Λύση Αρχικό Στάδιο Τελικό Στάδιο Χρήστης 1 Χρήστης 1 {{Ανάγνωση, Εγγραφή} (t=0)} {{Ανάγνωση, Εγγραφή} (t=10)} Αρχείο Αρχείο Χρήστης 2 Χρήστης 3 Χρήστης 2 Χρήστης 3 Εκχώρηση από Χρήστη 1 {{Ανάγνωση} (t=7)} Εκχώρηση από Χρήστη 1 {{Ανάγνωση, Εγγραφή} (t=5)} {--(t=10)} Εκχώρηση από Χρήστη 1 {{Ανάγνωση, Εγγραφή} (t=10)} 75

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 2 Ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Ανάγνωση και Εγγραφή) στο Αρχείο. Στη συνέχεια εκχωρούνται, στους Χρήστες 2 και 3, δικαιώματα προσπέλασης στο ίδιο Αρχείο, ως εξής: t = 5: Ο Χρήστης 1 εκχωρεί {Ανάγνωση, Εγγραφή} για το Αρχείο στο Χρήστη 3 t = 7: Ο Χρήστης 1 εκχωρεί {Ανάγνωση} για το Αρχείο στο Χρήστη 2 t = 10: Ο Χρήστης 3 εκχωρεί {Ανάγνωση, Εγγραφή} για το Αρχείο στο Χρήστη 2 Τη χρονική στιγμή t = 20, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 3. Να δημιουργηθεί το διάγραμμα πριν και μετά τη χρονική στιγμή t=20. 76

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 2 - Λύση Αρχικό Στάδιο Τελικό Στάδιο Χρήστης 1 Χρήστης 1 {{Ανάγνωση, Εγγραφή} (t=0)} {{Ανάγνωση, Εγγραφή} (t=20)} Αρχείο Αρχείο Χρήστης 2 Χρήστης 3 Χρήστης 2 Χρήστης 3 Εκχώρηση από Χρήστη 1 {{Ανάγνωση} (t=7)} Εκχώρηση από Χρήστη 3 {{Ανάγνωση, Εγγραφή} (t=10)} Εκχώρηση από Χρήστη 1 {{Ανάγνωση, Εγγραφή} (t=5)} {Ανάγνωση (t=20)} {-- (t=20)} Επακόλουθο είναι και η ανάκληση των δικαιωμάτων που είχαν εκχωρηθεί στο Χρήστη 2 από το Χρήστη 3. Επομένως, από το Χρήστη 2 ανακαλείται 77 τελικά μόνο το δικαίωμα της Εγγραφής, καθώς αυτό της Ανάγνωσης του είχε εκχωρηθεί εκτός από το Χρήστη 3 και από το Χρήστη 1 και άρα το διατηρεί.

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Τη χρονική στιγμή t = 0 ισχύει ο παρακάτω πίνακας: File 1 File 2 Andy rwa a Betty r Charlie rx x Τη χρονική στιγμή t=1 ο χρήστης Andy εκχωρεί στο χρήστη Betty δικαίωμα εγγραφής (w) στο αρχείο file 1 και δικαίωμα προσθήκης (a) στο αρχείο file 2. Τη χρονική στιγμή t=2, ο χρήστης Betty εκχωρεί στον Charlie δικαίωμα προσθήκης (a) στο αρχείο file 2. Τη χρονική στιγμή t=3 ο χρήστης Andy ανακαλεί τα δικαιώματα που είχε εκχωρήσει στον χρήστη Betty. i. Δώστε την λίστα ελέγχου προσπέλασης την χρονική στιγμή t=0 ii. Δώστε τον καινούριο πίνακα ελέγχου προσπέλασης τη χρονική στιγμή t=3 iii. Δώστε την λίστα ελέγχου προσπέλασης την χρονική στιγμή t=3. iv. Να δημιουργηθεί το διάγραμμα τις χρονικές στιγμές t=1 και t=3 για το αρχείο file 1. 78

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Λύση (1/5) Δώστε την λίστα ελέγχου προσπέλασης την χρονική στιγμή t=0 File 1 File 2 Andy rwa a Betty r Charlie rx x acl (File 1): { (Andy, {rwa}), (Betty, {r}), (Charlie, {rx}) } acl (File 2): { (Andy, {a}), (Charlie, {x}) 79

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Λύση (2/5) Τη χρονική στιγμή t = 0 ισχύει ο παρακάτω πίνακας: File 1 File 2 Andy rwa a Betty r Charlie rx x Τη χρονική στιγμή t=1 ο χρήστης Andy εκχωρεί στο χρήστη Betty δικαίωμα εγγραφής (w) στο αρχείο file 1 και δικαίωμα προσθήκης (a) στο αρχείο file 2. Τη χρονική στιγμή t=2, ο χρήστης Betty εκχωρεί στον Charlie δικαίωμα προσθήκης (a) στο αρχείο file 2. File 1 File 2 Andy rwa a Betty rw a Charlie rx xa Τη χρονική στιγμή t=3 ο χρήστης Andy ανακαλεί τα δικαιώματα που είχε εκχωρήσει στον χρήστη Betty. Δώστε τον καινούριο πίνακα ελέγχου προσπέλασης τη χρονική στιγμή t=3. File 1 File 2 Andy rwa a Betty r Charlie rx x 80

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Λύση (3/5) Δώστε την λίστα ελέγχου προσπέλασης την χρονική στιγμή t=3 File 1 File 2 Andy rwa a Betty r Charlie rx x acl (File 1): { (Andy, {rwa}), (Betty, {r}), (Charlie, {rx}) } acl (File 2): { (Andy, {a}), (Charlie, {x}) 81

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Λύση (4/5) Τη χρονική στιγμή t = 0 ισχύει ο παρακάτω πίνακας: File 1 File 2 Andy rwa a Betty r Charlie rx x Τη χρονική στιγμή t=1 ο χρήστης Andy εκχωρεί στο χρήστη Betty δικαίωμα εγγραφής (w) στο αρχείο file 1 και δικαίωμα προσθήκης (a) στο αρχείο file 2. Τη χρονική στιγμή t=2, ο χρήστης Betty εκχωρεί στον Charlie δικαίωμα προσθήκης (a) στο αρχείο file 2. Τη χρονική στιγμή t=3 ο χρήστης Andy ανακαλεί τα δικαιώματα που είχε εκχωρήσει στον χρήστη Betty. Να δημιουργηθεί το διάγραμμα τις χρονικές στιγμές t=1 και t=3 για το αρχείο file 1. 82

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 3 Λύση (5/5) Αρχικό Στάδιο Τελικό Στάδιο Andy Andy {{r,w,a} (t=0)} {{r,w,a} (t=3)} File 1 File 1 Betty Charlie Betty Charlie {{r} (t=0)} {{r,x} (t=0)} {{r} (t=3)} {{r,x} (t=3)} Εκχώρηση από Andy {{w} (t=1)} 83

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 4 Ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Εγγραφή και Εκτέλεση) στα Αρχεία 1 και 2. Στη συνέχεια εκχωρούνται, στο Χρήστη 2 δικαιώματα προσπέλασης σε αυτά τα Αρχεία, ως εξής: t = 5: Ο Χρήστης 1 εκχωρεί {Εγγραφή} για το Αρχείο 1 στο Χρήστη 2 t = 7: Ο Χρήστης 1 εκχωρεί {Εγγραφή, Εκτέλεση} για το Αρχείο 2 στο Χρήστη 2 Τη χρονική στιγμή t = 15, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 2 στο Αρχείο 2. Να δημιουργηθεί το διάγραμμα πριν και μετά τη χρονική στιγμή t=15. 84

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 4 - Λύση Αρχικό Στάδιο Τελικό Στάδιο Χρήστης 1 Χρήστης 1 {{Εγγραφή, Εκτέλεση} (t=0)} {{Εγγραφή, Εκτέλεση} (t=0)} {{Εγγραφή, Εκτέλεση} (t=15)} {{Εγγραφή, Εκτέλεση} (t=15)} Αρχείο 1 Αρχείο 2 Αρχείο 1 Αρχείο 2 Εκχώρηση από Χρήστη 1 {{Εγγραφή} (t=5)} Εκχώρηση από Χρήστη 1 {{Εγγραφή, Εκτέλεση} (t=7)} {{Εγγραφή} (t=15)} {--(t=15)} Χρήστης 2 Χρήστης 2 85

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 5 Ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Εγγραφή και Εκτέλεση) στα Αρχεία 1 και 2. Στη συνέχεια εκχωρούνται, στους Χρήστες 2 και 3, δικαιώματα προσπέλασης σε αυτά τα Αρχεία, ως εξής: t = 5: Ο Χρήστης 1 εκχωρεί {Εγγραφή} για το Αρχείο 2 στο Χρήστη 3 t = 7: Ο Χρήστης 1 εκχωρεί {Εγγραφή, Εκτέλεση} για το Αρχείο 1 στο Χρήστη 2 Τη χρονική στιγμή t = 15, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 2. Να δημιουργηθεί το διάγραμμα πριν και μετά τη χρονική στιγμή t=15. 86

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 5 - Λύση Αρχικό Στάδιο Τελικό Στάδιο Χρήστης 1 Χρήστης 1 {{Εγγραφή, Εκτέλεση} (t=0)} {{Εγγραφή, Εκτέλεση} (t=0)} {{Εγγραφή, Εκτέλεση} (t=15)} {{Εγγραφή, Εκτέλεση} (t=15)} Αρχείο 1 Αρχείο 2 Αρχείο 1 Αρχείο 2 Χρήστης 2 Χρήστης 3 Χρήστης 2 Χρήστης 3 Εκχώρηση από Χρήστη 1 {{Εγγραφή, Εκτέλεση} (t=7)} Εκχώρηση από Χρήστη 1 {{Εγγραφή} (t=5)} {--(t=15)} {{Εγγραφή} (t=15)} 87

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 6 Ας υποθέσουμε ότι τη χρονική στιγμή t = 0, μόνον ο Χρήστης 1 έχει δικαίωμα προσπέλασης (Εγγραφή και Εκτέλεση) στα Αρχεία 1 και 2. Στη συνέχεια εκχωρούνται, στους Χρήστες 2 και 3, δικαιώματα προσπέλασης σε αυτά τα Αρχεία, ως εξής: t = 5: Ο Χρήστης 1 εκχωρεί {Εγγραφή} για το Αρχείο 2 στο Χρήστη 3 t = 7: Ο Χρήστης 1 εκχωρεί {Εγγραφή, Εκτέλεση} για το Αρχείο 1 στο Χρήστη 2 t = 10: Ο Χρήστης 3 εκχωρεί {Εγγραφή} για το Αρχείο 2 στο Χρήστη 2 Τη χρονική στιγμή t = 20, ο Χρήστης 1 αποφασίζει να ανακαλέσει τα δικαιώματα που είχε εκχωρήσει στο Χρήστη 3 για εγγραφή στο Αρχείο 2. Να δημιουργηθεί το διάγραμμα πριν και μετά τη χρονική στιγμή t=20. 88

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Ανάκληση Δικαιωμάτων Προσπέλασης Παράδειγμα 6 - Λύση Αρχικό Στάδιο Τελικό Στάδιο Χρήστης 1 Χρήστης 1 {{Εγγραφή, Εκτέλεση} (t=0)} {{Εγγραφή, Εκτέλεση} (t=0)} {{Εγγραφή, Εκτέλεση} (t=20)} {{Εγγραφή, Εκτέλεση} (t=20)} Αρχείο 1 Αρχείο 2 Αρχείο 1 Αρχείο 2 Χρήστης 2 Χρήστης 3 Χρήστης 2 Χρήστης 3 Εκχώρηση από Χρήστη 1 {{Εγγραφή, Εκτέλεση} (t=7)} Εκχώρηση από Χρήστη 1 {{Εγγραφή} (t=5)} {{Εγγραφή, Εκτέλεση} (t=20)} {--(t=20)} Εκχώρηση από Χρήστη 3 {{Εγγραφή} (t=10)} 89

Λίστα Δυνατοτήτων

Λίστα Δυνατοτήτων Λίστα Δυνατοτήτων (Capability List - C-List): Η Λίστα Δυνατοτήτων (Capabilities) αποθηκεύει τα δικαιώματα προσπέλασης κάποιου υποκειμένου. Μία Λίστα Δυνατοτήτων αντιστοιχεί με μία γραμμή του Πίνακα Ελέγχου Προσπέλασης και εμπεριέχει πληροφορίες σχετικά με τα αντικείμενα, τα οποία μπορεί να προσπελάσει κάποιο συγκεκριμένο υποκείμενο. Κάθε υποκείμενο του συστήματος συσχετίζεται με μία ομάδα από ζεύγη, κάθε ζεύγους αποτελούμενου από ένα αντικείμενο και ένα σύνολο λειτουργιών προσπέλασης - δικαιωμάτων προσπέλασης. Το συσχετιζόμενο υποκείμενο έχει τη δυνατότητα να προσπελάσει το συγκεκριμένο αντικείμενο με οποιαδήποτε από τις αναφερόμενες λειτουργίες προσπέλασης. 91

Λίστα Δυνατοτήτων - Περιγραφή Κάθε υποκείμενο σχετίζεται με ένα σύνολο από ζευγάρια, όπου κάθε ζευγάρι περιέχει ένα αντικείμενο και ένα σύνολο από δικαιώματα. Το υποκείμενο που σχετίζεται με αυτή τη λίστα μπορεί να έχει πρόσβαση στο συγκεκριμένο αντικείμενο σύμφωνα με τα δικαιώματα που ορίζονται. Access Control Matrix Capability Lists Κάθε υποκείμενο s σχετίζεται με μια λίστα από αντικείμενα ο A[s,o1], A[s,o2],, A[s,on]], όπου {ο 1, ο 2,, ο n } τα αντικείμενα Ο 92

Λίστα Δυνατοτήτων - Τύπος όπου Ο το σύνολο των αντικειμένων του συστήματος και A το σύνολο των υποστηριζόμενων λειτουργιών προσπέλασης - δικαιωμάτων. Αν υποθέσουμε ότι η cap είναι μία συνάρτηση που συνθέτει τη Λίστα Δυνατοτήτων c κάποιου συγκεκριμένου υποκειμένου s, η παράσταση σημαίνει ότι το υποκείμενο s μπορεί να προσπελάσει το αντικείμενο oi. Αρχείο 1 Αρχείο 2 Διεργασία Δ Χρήστης Χ Διεργασία Δ Ανάγνωση, Εγγραφή Ανάγνωση Ανάγνωση, Εγγραφή, Εκτέλεση Ανάγνωση Χρήστης Χ Προσθήκη Ανάγνωση Εγγραφή Ανάγνωση, Εγγραφή, Εκτέλεση 93

Λίστα Δυνατοτήτων - Δικαιώματα Οι Λίστες Δυνατοτήτων για τα υποκείμενα του παραδείγματος του πίνακα ελέγχου προσπέλασης που είδαμε πριν είναι: Διεργασία Δ Αρχείο 1 Αρχείο 2 Διεργασία Δ Χρήστης Χ Ανάγνωση, Εγγραφή Ανάγνωση Ανάγνωση, Εγγραφή, Εκτέλεση Ανάγνωση Χρήστης Χ Προσθήκη Ανάγνωση Εγγραφή Ανάγνωση, Εγγραφή, Εκτέλεση cap (Διεργασία Δ) = { (Αρχείο 1, {Ανάγνωση, Εγγραφή }), (Αρχείο 2, {Ανάγνωση }), (Διεργασία Δ, {Ανάγνωση, Εγγραφή, Εκτέλεση }), (Χρήστης Χ, {Ανάγνωση}) } cap (Χρήστης Χ) = { (Αρχείο 1, {Προσθήκη }), (Αρχείο 2, {Ανάγνωση }), (Διεργασία Δ, { Εγγραφή }), (Χρήστης Χ, {Ανάγνωση, Εγγραφή, Εκτέλεση }) } 94

Λίστα Δυνατοτήτων Εναλλακτικός Τρόπος Παρουσίασης Πίνακας Ελέγχου Προσπέλασης Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Λίστα Δυνατοτήτων 95

Λίστα Δυνατοτήτων Παράδειγμα 1 Από τον πίνακα ελέγχου προσπέλασης που φαίνεται παραπάνω να γραφεί η λίστα δυνατοτήτων για την Alice. cap (Alice) = { (OS, {rx}), (Accounting Program, {rx}), (Accounting Data, {r}), (Insurance Data, {rw}), (Payroll Data, {rw}) } 96

Λίστα Δυνατοτήτων Παράδειγμα 2 Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Να φτιαχτούν οι λίστες δυνατοτήτων. 97

Λίστα Δυνατοτήτων Παράδειγμα 2 Λύση Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: S = {process 1, process 2} O = {file 1, file 2, process 1, process 2} A = {read, write, execute, append, own} Οι λίστες δυνατοτήτων είναι: cap(process 1) = { (file 1, {read, write, own}), (file 2, {read}), (process 1, {read, write, execute, own}), (process 2, {write}) } cap(process 2) = { (file 1, {append}), (file 2, {read, own}), (process 1, {read}), (process 2, {read, write, execute, own}) } 98

Λίστα Δυνατοτήτων Παράδειγμα 3 Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rwo Betty rwxo r Charlie rx rwo w Να φτιαχτούν οι λίστες δυνατοτήτων. 99

Λίστα Δυνατοτήτων Παράδειγμα 3 - Λύση Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rwo Betty rwxo r Charlie rx rwo w Οι λίστες δυνατοτήτων είναι: cap (Andy): { (Αρχείο 1, {rx}), (Αρχείο 2, {r}), (Αρχείο 3, {rwo}) } cap (Betty): { (Αρχείο 1, {rwxo}), (Αρχείο 2, {r}) } cap (Charlie): { (Αρχείο 1, {rx}), (Αρχείο 2, {rwo}), (Αρχείο 3, {w}) } 100

Λίστα Δυνατοτήτων Παράδειγμα 4 Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: counter inc_ctr dec_ctr manager inc_ctr + dec_ctr - manager call call call Να φτιαχτούν οι λίστες δυνατοτήτων. 101

Λίστα Δυνατοτήτων Παράδειγμα 4 - Λύση Δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: counter inc_ctr dec_ctr manager inc_ctr + dec_ctr - manager call call call Οι λίστες δυνατοτήτων είναι: cap (inc_ctr): { (counter, {+}) } cap (dec_ctr): { (counter, {-}) } cap (manager): { (inc_ctr, {call}), (dec_ctr, {call}), (manager, {call}) } 102

Λίστα Δυνατοτήτων Παράδειγμα 5 O Bart μπορεί να διαβάσει και να γράψει στο αρχείο File 1, αλλά και να διαβάσει το ημερολόγιο της Lisa. H Lisa μπορεί να διαβάσει και να γράψει στο ημερολόγιό της. Τα υποκείμενα δεν αντιμετωπίζονται ως αντικείμενα. 1. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. 2. Να φτιαχτούν οι λίστες δυνατοτήτων. 103

Λίστα Δυνατοτήτων Παράδειγμα 5 - Λύση Ο πίνακας ελέγχου προσπέλασης είναι: File 1 Lisa s diary Bart read, write read Lisa read, write Οι λίστες δυνατοτήτων είναι: cap (Bart): { (File 1, {rw}), (Lisa s diary, {r}) } cap (Lisa): { (Lisa s diary, {rw}) } 104

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 6 H Alice, η οποία είναι ιδιοκτήτρια του αρχείου x, μπορεί να διαβάσει τα αρχεία x και y και να γράψει μόνο στο αρχείο x. Επίσης, μπορεί να εκτελέσει το αρχείο z. Ο Bob μπορεί να διαβάσει το αρχείο x, να διαβάσει και να γράψει στο αρχείο y, αλλά και να εκτελέσει το αρχείο z. Τα υποκείμενα δεν αντιμετωπίζονται ως αντικείμενα. 1. Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. 2. Να φτιαχτούν οι λίστες δυνατοτήτων. 105

Λίστα Ελέγχου Δικαιωμάτων Προσπέλασης Παράδειγμα 6 - Λύση Ο πίνακας ελέγχου προσπέλασης είναι: Αρχείο x Αρχείο y Αρχείο z Alice orw r e Bob r rw e Οι λίστες δυνατοτήτων είναι: cap (Alice): { (Αρχείο x, {orw}), (Αρχείο y, {r}), (Αρχείο z, {e}) } cap (Bob): {(Αρχείο x, {r}), (Αρχείο y, {rw}), (Αρχείο z, {e}) } 106

Λίστες Δυνατοτήτων Ομάδες και Αρνητικά Δικαιώματα (1/3) Για την αντιμετώπιση της πολυπλοκότητας που δημιουργεί ο πολύ μεγάλος αριθμός των Υποκειμένων ενός συστήματος, αξιοποιούνται οι Ομάδες Υποκειμένων. Όλοι οι χρήστες που έχουν παρόμοια δικαιώματα προσπέλασης στους πόρους ενός συστήματος δημιουργούν μία ομάδα και τα δικαιώματα για προσπέλαση των αντικειμένων του συστήματος εκχωρούνται πλέον στην ομάδα και όχι ανεξάρτητα σε κάθε χρήστη. Οι χρήστες μπορεί να έχουν δικαίωμα συμμετοχής μόνο σε μία ή σε περισσότερες από μία ομάδες. 107

Λίστες Δυνατοτήτων Ομάδες και Αρνητικά Δικαιώματα (2/3) Τα υποκείμενα Y1, Y2, Y3 απαρτίζουν την Ομάδα 1, ενώ τα υποκείμενα Υ3, Υ4, Υ5 την Ομάδα 2. Τα Υ1, Υ2 έχουν δικαίωμα προσπέλασης στα αντικείμενα Α1 και Α2, τα Υ4, Υ5 στα Α2 και Α3, και το Υ3 σε όλα τα αντικείμενα. 108

Λίστες Δυνατοτήτων Ομάδες και Αρνητικά Δικαιώματα (3/3) Στο μέλος κάποιας ομάδας μπορεί να γίνει απευθείας εκχώρηση κάποιου δικαιώματος ή απευθείας αφαίρεση κάποιου δικαιώματος που απέκτησε ως μέλος της ομάδας (Αρνητικό Δικαίωμα). Το Υ3 έχει δικαίωμα προσπέλασης στο Α3, ενώ το Υ1 δεν έχει δικαίωμα προσπέλασης στο Α1 αν και είναι μέλος της Ομάδας 1. 109

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 1 Έστω ότι δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rw Betty rwx r Charlie rx rw rw Να φτιαχτούν οι δυνατές ομάδες υποκειμένων. 110

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 1 Λύση Αρχείο 1 Αρχείο 2 Αρχείο 3 Andy rx r rw Betty rwx r Charlie rx rw rw Ομάδες Υποκειμένων: Andy Betty Charlie x wx Ομάδα 1 = { r } x w w Αρχείο 1 Αρχείο 2 Αρχείο 3 111

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 2 Έστω ότι δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: O1 O2 O3 O4 O5 S1 rw rw S2 r S3 rw rw r Να φτιαχτούν οι δυνατές ομάδες υποκειμένων. 112

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 2 Λύση O1 O2 O3 O4 O5 S1 rw rw S2 r S3 rw rw r Ομάδες Υποκειμένων: S1 S3 S2 Ομάδα 1 = { rw } Ομάδα 2 = { r } O4 O3 O2 O1 O2 O5 113

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 3 Έστω ότι δίνεται ο παρακάτω πίνακας ελέγχου προσπέλασης: counter inc_ctr dec_ctr manager inc_ctr + dec_ctr - manager call call call Να φτιαχτούν οι δυνατές ομάδες υποκειμένων. 114

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 3 Λύση inc_ctr + dec_ctr - counter inc_ctr dec_ctr manager manager call call call Ομάδες Υποκειμένων: inc_ctr dec_ctr manager Ομάδα 1 = { + } Ομάδα 2 = { - } Ομάδα 3 = { call } counter counter inc_ctr dec_ctr manager 115

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 4 Δίνονται οι παρακάτω ομάδες υποκειμένων: Y1 Y2 Y3 a Ομάδα 1 = { rwe } Ομάδα 2 = { ao } A2 A4 A1 A3 Να φτιαχτεί ο πίνακας ελέγχου προσπέλασης. 116

Ομάδες και Αρνητικά Δικαιώματα Παράδειγμα 4 Λύση Ο πίνακας ελέγχου προσπέλασης είναι: A1 A2 A3 A4 Y1 rwea Y2 rwe ao ao Y3 ao ao ao 117

Ομάδες στις ACLs (1/2) Οι Ομάδες μπορούν να αξιοποιηθούν για την απλοποίηση της διαχείρισης στις Λίστες Ελέγχου Δικαιωμάτων Προσπέλασης. Το UNIX κατατάσσει όλους τους χρήστες στις παρακάτω κατηγορίες: Ιδιοκτήτης του αρχείου (Owner) Ομάδα Ιδιοκτήτη του αρχείου (Group Owner), που είναι η ομάδα στην οποία ανήκει ο Ιδιοκτήτης του αρχείου Ομάδα όλων των υπόλοιπων χρηστών (Others) του συστήματος 118

Ομάδες στις ACLs (2/2) Επειδή οι λειτουργίες προσπέλασης που υποστηρίζονται από το λειτουργικό σύστημα UNIX είναι αυτές της Ανάγνωσης, Εγγραφής και Εκτέλεσης, τα δικαιώματα προσπέλασης σε κάποιο αρχείο αντιπροσωπεύονται από τρεις τριμελείς ομάδες γραμμάτων, μία για κάθε κατηγορία, όπως παρουσιάζεται ακολούθως. Δικαιώματα Ιδιοκτήτη Δικαιώματα Ομάδας Ιδιοκτήτη Δικαιώματα Ομάδας Υπολοίπων Χρηστών rwx rwx rwx Το πρώτο στοιχείο κάθε τριάδας, r, αντιπροσωπεύει το δικαίωμα της Ανάγνωσης του αρχείου, το δεύτερο, w, το δικαίωμα Εγγραφής στο αρχείο και το τρίτο, x, το δικαίωμα Εκτέλεσης του αρχείου. 119

Ομάδες στις ACLs Παράδειγμα 1 Ένα σύστημα UNIX περιέχει ένα εκτελέσιμο αρχείο που ονομάζεται web, του οποίου ιδιοκτήτης είναι ο Bob, ένα group με όνομα spider και τα δικαιώματα προσπέλασης στο αρχείο είναι 751. To group spider έχει σαν μέλη του την Alice και τον Bob. Υπόλοιποι χρήστες του συστήματος είναι ο Charlie και ο Dave. Να δημιουργηθεί ο πίνακας ελέχγου προσπέλασης για το αρχείο web. 120

Ομάδες στις ACLs Παράδειγμα 1 Λύση Τα δικαιώματα προσπέλασης του αρχείου είναι 751. Αναλύουμε τα δικαιώματα και τα μετατρέπουμε σε δυαδικό σύστημα ως εξής: 7 = 111 (2 2 +2 1 +2 0 ). Άρα ισχύει rwx 5 = 101 (2 2 +0+2 0 ). Άρα ισχύει r - x 1 = 001 (0+0+2 0 ). Άρα ισχύει - - x Συνολικά ισχύει rwxr-x--x. Επομένως έχουμε: Δικαιώματα Ιδιοκτήτη Δικαιώματα Ομάδας Ιδιοκτήτη Δικαιώματα Ομάδας Υπολοίπων Χρηστών rwx r-x --x web Bob own, read, write, execute Ο πίνακας ελέγχου προσπέλασης είναι: Alice read, execute Charlie Dave execute execute 121

Προστατευτικοί Δακτύλιοι

Προστατευτικοί Δακτύλιοι 1(2) Προστατευτικοί Δακτύλιοι (Protection Rings): Χρησιμοποιούνται για να απλοποιήσουν την διαδικασία εκχώρησης δικαιωμάτων προσπέλασης. Μπορούμε να τους φανταστούμε σαν ομόκεντρους κύκλους, με το δακτύλιο r0 στο κέντρο, να παρέχει το μεγαλύτερο βαθμό προστασίας. r4 r5 r3 r2 r1 r0 123

Προστατευτικοί Δακτύλιοι 2(2) Κάθε υποκείμενο και αντικείμενο του συστήματος συσχετίζεται με κάποιο Δακτύλιο r n ανάλογα με το πόσο σημαντικό είναι. Για παράδειγμα, ο πυρήνας του λειτουργικού συστήματος συσχετίζεται με το Δακτύλιο r0. Αν κάποιο υποκείμενο έχει συσχετισθεί με το Δακτύλιο r i και το αντικείμενο με το Δακτύλιο r j, δικαίωμα προσπέλασης έχουν μόνο τα υποκείμενα για τα οποία ισχύει i j. 124

Προστατευτικοί Δακτύλιοι ΛΣ Multics Aριθμός Προστατευτικών Δακτυλίων που υποστηρίζει το συγκεκριμένο ΛΣ: 64 (0 έως 63). Έστω ότι κάποια διεργασία που εκτελείται στο δακτύλιο r, χρειάζεται να προσπελάσει κάποιο τμήμα δεδομένων. Για κάθε τμήμα δεδομένων, το Multics ορίζει ένα ζεύγος δακτυλίων (r1, r2) με r1<= r2, το οποίο ονομάζεται αγκύλη προσπέλασης. Επίσης ας υποθέσουμε, ότι τα δικαιώματα προσπέλασης (Ανάγνωση, Εγγραφή, Εκτέλεση, Προσθήκη) του τμήματος δεδομένων, τα οποία εκχωρούνται μέσω σχετικής λίστας ελέγχου δικαιωμάτων προσπέλασης, επιτρέπουν στη συγκεκριμένη διεργασία να εκτελέσει τις λειτουργίες προσπέλασης που επιθυμεί. Οι προστατευτικοί δακτύλιοι, μέσω της αγκύλης προσπέλασης, εισάγουν έναν ακόμα περιορισμό. 125

Προστατευτικοί Δακτύλιοι ΛΣ Multics r <= r1: Αυτό σημαίνει οτι η προσπέλαση του τμήματος δεδομένων επιτρέπεται σε όλες τις διεργασίες που είναι πριν ή ανήκουν στο δακτύλιο r1. r0 r r1 r2 r3 r5 r4 126

Προστατευτικοί Δακτύλιοι ΛΣ Multics r1 < r <= r2: Αυτό σημαίνει οτι η προσπέλαση του τμήματος δεδομένων επιτρέπεται μόνο για Ανάγνωση και Εκτέλεση σε όλες τις διεργασίες που είναι ανάμεσα στην αγκύλη προσπέλασης (r1, r2) συμπεριλαμβανομένου του δακτυλίου r2. r0 r1 r r2 r3 r4 r5 127

Προστατευτικοί Δακτύλιοι ΛΣ Multics r2 < r: Αυτό σημαίνει οτι η προσπέλαση του τμήματος δεδομένων απαγορεύεται σε όλες τις διεργασίες που είναι εκτός της αγκύλης προσπέλασης (r1, r2). r0 r1 r2 r r3 r4 r5 128

Προστατευτικοί Δακτύλιοι ΛΣ Multics Αγκύλη Κλήσης Αν η ίδια διεργασία εκτελείται ξανά στο δακτύλιο r και χρειάζεται να προσπελάσει κάποια άλλη διεργασία, σε αντιστοιχία με τα τμήματα δεδομένων, το λειτουργικό σύστημα ορίζει για κάθε διεργασία μία αγκύλη προσπέλασης και επιπροσθέτως μπορεί να ορίσει και μία αγκύλη κλήσης (c1, c2) με c1<= c2 και c1 = r2. Όταν για μία διεργασία έχει οριστεί αγκύλη κλήσης, χρησιμοποιείται ο συμβολισμός (r1, r2, r3) όπου (r1, r2) είναι η αγκύλη προσπέλασης και (r2, r3) είναι η αγκύλη κλήσης (άρα c2 = r3). 129

Προστατευτικοί Δακτύλιοι ΛΣ Multics Αγκύλη Κλήσης Ο συμβολισμός (r1, r2, r3) σημαίνει ότι (r1, r2) είναι η αγκύλη προσπέλασης και (r2, r3) είναι η αγκύλη κλήσης (άρα c2 = r3). r0 r1 r4 r5 r3=c2 r2=c1 r6 130

Προστατευτικοί Δακτύλιοι Περιορισμοί Δικαιωμάτων Προσπέλασης r < r1: Η διεργασία του βρίσκεται στον δακτύλιο r επιτρέπεται να προσπελάσει μόνο τις διεργασίες που βρίσκονται πριν τον δακτύλιο r1, αλλά ταυτόχρονα σηματοδοτείται ένα λάθος διασταύρωσης δακτυλίων. r0 r r2 r1 r3 r4 r5 131

Προστατευτικοί Δακτύλιοι Περιορισμοί Δικαιωμάτων Προσπέλασης r1 <= r <= r2: Η διεργασία του βρίσκεται στον δακτύλιο r επιτρέπεται να προσπελάσει μόνο τις διεργασίες που βρίσκονται ανάμεσα στους δακτυλίους r1 και r2, συμπεριλαμβανομένων και αυτές των ίδιων των δακτυλίων. r0 r1 r r2 r3 r4 r5 132

Προστατευτικοί Δακτύλιοι Περιορισμοί Δικαιωμάτων Προσπέλασης r2 < r <= r3: Η διεργασία του βρίσκεται στον δακτύλιο r επιτρέπεται να προσπελάσει μόνο συγκεκριμένες διεργασίες. Αυτό μπορεί να γίνει μόνο αν διενεργηθεί μέσω μιας έγκυρης πύλης. r0 r1 r2 r r3 r4 r5 133

Προστατευτικοί Δακτύλιοι Περιορισμοί Δικαιωμάτων Προσπέλασης r3< r: Η διεργασία του βρίσκεται στον δακτύλιο r απαγορεύεται να προσπελάσει διεργασίες οι οποίες βρίσκονται μετά τον δακτύλιο r3. r0 r1 r3 r2 r r4 r5 134

Προστατευτικοί Δακτύλιοι Πύλες (1/2) Στην περίπτωση r2 < r <= r3, η προσπέλαση επιτρέπεται μόνο αν διενεργηθεί μέσω μιας έγκυρης πύλης. r0 r1 r2 r r3 r4 r5 Τι σημαίνει όμως αυτό??? 135

Προστατευτικοί Δακτύλιοι Πύλες (2/2) Έστω οτι έχουμε μια βιβλιοθήκη, η οποία περιέχει διεργασίες και πύλες. Από κάθε πύλη έχουν πρόσβαση συγκεκριμένοι χρήστες και κάθε πύλη έχει πρόσβαση σε συγκεκριμένες διεργασίες με συγκεκριμένα δικαιώματα. Library Procedures 1,2,3 Procedures 4,5,6 Procedures 7,8,9 Procedures 10,11,12 r rw r e Gate 1 Gate 2 Gate 3 Gate 4 User 1 User 2 User 3 User 4 136

Προστατευτικοί Δακτύλιοι Πύλες Παράδειγμα 1 Έστω οτι έχουμε μια βιβλιοθήκη, η οποία περιέχει 15 διεργασίες, 3 πύλες και 2 χρήστες οι οποίοι θέλουν να αποκτήσουν πρόσβαση σε αυτές. Οι διεργασίες ανήκουν μεταξύ των δακτυλίων r2 και r3 (r2<r<=r3). Για τις πύλες ισχύουν: Η Gate 1 έχει δικαίωμα προσπέλασης execute σε 3 διεργασίες Η Gate 2 έχει δικαίωμα προσπέλασης read σε 5 διεργασίες Η Gate 3 έχει δικαίωμα προσπέλασης write σε 6 διεργασίες Οι χρήστες έχουν πρόσβαση στις παρακάτω πύλες: O User 1 έχει πρόσβαση μέσω της Gate 1 O User 2 έχει πρόσβαση μέσω της Gate 2 Ερωτήματα: 1. O User 2 επιθυμεί να έχει πρόσβαση μέσω της Gate 3 στις 6 διεργασίες. Μπορεί; 2. Ο User 1 επιθυμεί να αποκτήσει δικαίωμα προσπέλασης read σε μία από τις διεργασίες της Gate 2. Μπορεί; 3. Και οι 2 χρήστες επιθυμούν να προσπελάσουν διεργασίες του δακτυλίου r4 (r3<r4). Μπορούν;

Προστατευτικοί Δακτύλιοι Πύλες Παράδειγμα 1 - Λύση Σχηματικά: Library 3 Procedures 5 Procedures 6 Procedures 1 Procedure e r w Gate 1 Gate 2 Gate 3 User 1 User 2 138

Προστατευτικοί Δακτύλιοι Πύλες Παράδειγμα 1 - Λύση O User 2 επιθυμεί να έχει πρόσβαση μέσω της Gate 3 στις 6 διεργασίες. Μπορεί; ΟΧΙ δεν μπορεί να έχει πρόσβαση στις 6 διεργασίες της Gate 3, γιατί ο user 2 μπορεί να προσπελάσει ΜΟΝΟ τις 5 διεργασίες που βρίσκονται στην Gate 2 (read) και καμία άλλη. Ο User 1 επιθυμεί να αποκτήσει δικαίωμα προσπέλασης read σε μία από τις διεργασίες της Gate 2. Μπορεί; ΟΧΙ δεν μπορεί να αποκτήσει δικαίωμα πρόσβασης (read) σε καμία διεργασία της Gate 2, γιατί ο user 1 μπορεί να προσπελάσει ΜΟΝΟ τις 3 διεργασίες που βρίσκονται στην Gate 1 (execute) και καμία άλλη. Και οι 2 χρήστες επιθυμούν να προσπελάσουν διεργασίες του δακτυλίου r4 (r3<r4). Μπορούν; Εφόσον οι διεργασίες ανήκουν στους δακτυλίους r2 και r3, συμπεριλαμβανομένου και του δακτυλίου r3 (r2 < r <= r3) ΔΕΝ μπορούν να προσπελάσουν κάποια διεργασία η οποία βρίσκεται εκτός του r3. 139

Προστατευτικοί Δακτύλιοι Πύλες Συμπέρασμα: Όταν πρόκειται για προστατευτικούς δακτυλίους έχουμε τους παρακάτω περιορισμούς: Ποιά πύλη μπορεί να προσπελάσει ο κάθε χρήστης Ποιά είναι τα δικαιώματα που έχει κάθε πύλη και σε ποιές διεργασίες Σε ποιό δακτύλιο βρίσκονται οι διεργασίες 140

ACL vs C-List subjects F ACL G objects U orw Capabilities rights V r orw 141