Ασφάλεια στο ιαδίκτυο. Ασφάλεια στο διαδίκτυο. Λόγοι αύξησης περιστατικών. Επιθέσεις µέσω ηλεκτρονικού ταχυδροµείου. Πρώτο µείζον πρόβληµα: 1988

Σχετικά έγγραφα
Κλάσεις και Αντικείµενα

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες Εισαγωγή... 19

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

Αποµακρυσµένη κλήση διαδικασιών

Αντικειµενοστρεφής Προγραµµατισµός

Γενικά (για τις γραπτές εξετάσεις)

International Diploma in IT Skills Proficiency Level

Προσοµοίωση λειτουργίας επιπέδων OSI

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Α. Ερωτήσεις Ανάπτυξης

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Σκοπιµότητα των firewalls

Κατανεµηµένασυστήµατα αρχείων

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

Για παράδειγµα ένα µήνυµα το οποίο θα ενηµερώνει τον καταναλωτή ότι πρόκειται να λήξει η πίστωσή του δε θα σβήνεται από την οθόνη, αλλά ένα µήνυµα

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

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

Σύστηµα µετάδοσης µετεωρολογικών δεδοµένων σε πραγµατικό χρόνο µέσω του Internet

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Σύστηµα Java RMI. Κατανεµηµένα Συστήµατα 17-1

Διαγράμματα Κλάσεων στη Σχεδίαση

Προσοµοίωση λειτουργίας επικοινωνίας δεδοµένων (µόντεµ)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Κεφάλαιο 10 ο Υποπρογράµµατα

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Κατανεµηµένα Αντικείµενα 16-1

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

ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ "ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ" ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ιδάσκων: Β.Βεσκούκης

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα

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

Λειτουργικά Συστήµατα

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

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

Ε-85: Ειδικά Θέµατα Λογισµικού

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

MICROSOFT OFFICE 2003 MICROSOFT WORD 2003

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

Ανάπτυξη Plugins για το AgentSheets

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

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

Browsers. Λειτουργικότητα και Παραμετροποίηση

Περιεχόµενα. Ξεκίνηµα µε τα Windows XP 1. Αποδοτική εργασία µε τα Windows ΧΡ 19

Περιεχόµενα. 1 Εισαγωγή: Λίγα λόγια για το βιβλίο Τι νέο υπάρχει στο Outlook Ξεκίνηµα Ευχαριστίες...

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


ΠΕΡΙΕΧΟΜΕΝΑ Χρήση Ηλεκτρονικού Υπολογιστή

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004)

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

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

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

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Πανεπιστήµιο Θεσσαλίας

Λογισµικό (Software SW) Γλώσσες

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΓΙΑ ΜΑΡΚΕΤΙΝΓΚ ( ιδάσκ. Καθηγητής: Α.Α. Οικονοµίδης) ΑΞΙΟΛΟΓΗΣΗ ΠΑΚΕΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΕΜΠΟΡΙΟΥ Product Scope 32 Bookmarks

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

Το 2ο παραδοτέο αυτού του πακέτου εργασίας περιλαµβάνει τα αρχεία java και jsp

Πώς να προστατευτείτε από τους ιούς

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εικονική Μνήμη (1/2)

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

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Το Ηλεκτρονικό Ταχυδροµείο ( ) είναι ένα σύστηµα που δίνει την δυνατότητα στον χρήστη να ανταλλάξει µηνύµατα αλλά και αρχεία µε κάποιον άλλο

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

1 Tο βιβλίο Ξεκίνηµα Προγράµµατα και παιχνίδια Περιεχόµενα. Ευχαριστίες... x

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

XAMPP Apache MySQL PHP javascript xampp

ΕΓΧΕΙΡΙ ΙΟ Ο ΗΓΙΩΝ. Ηλεκτρονική Υποβολή Α.Π.. Κοινών Επιχειρήσεων

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

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

Ο ηλεκτρονικός υπολογιστής µπορεί να επεξεργάζεται δεδοµένα βάσει ενός συνόλου προκαθορισµένων οδηγιών Το κυριότερο πρόβληµα που αντιµετωπίζουν οι

Certified Java Programmer (CJP)

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Μεταγλωττιστής. Μεταφραστές. Γλώσσες. Είδη Μεταγλωττιστών. Μεταγλωττιστής Τελικό πρόγραµµα (object program) Εισαγωγή Αρχικό πρόγραµµα (source program)

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

Transcript:

Ασφάλεια στο διαδίκτυο Πρώτο µείζον πρόβληµα: 1988 Επίθεση µε το «σκουλήκι» έθεσε εκτός λειτουργίας το 1% των υπολογιστών του Internet (6. από 6.) ηµιουργία της οµάδας CERT (Computer Emergency Response Team)»6 περιστατικά το 1988» 2412 περιστατικά το 1995 µε επιπτώσεις σε 12. δικτυακές περιοχές 12 1 8 6 4 2 1988 Ασφάλεια στο ιαδίκτυο 199 1992 1994 1996 1998 2 22 Περιστατικά ασφάλειας στο Internet 45 4 35 3 25 2 15 1 5 Πηγή: CERT 1995 1996 1997 1998 1999 2 21 22 Ευπάθειες που αναφέρθηκαν Ασφάλεια στο ιαδίκτυο Λόγοι αύξησης περιστατικών 9 8 7 6 5 4 3 2 1 1998 1999 2 21 22 Επισηµάνσεις ασφάλειας Οι υπολογιστές του Internet έχουν πολλαπλασιαστεί Οι χρήστες οµοίως Παρέχονται πολύ περισσότερες υπηρεσίες Κάθε υπολογιστής, χρήστης και υπηρεσία παρέχει θαυµάσιες ευκαιρίες στους επίδοξους εισβολείς Πηγή: CERT ταχυδροµείου Αρχικά: ηλεκτρονικό ταχυδροµείο = απλό κείµενο Συνέχεια: δυνατότητα επισύναψης εγγράφων Οι χρήστες αποθηκεύουν σε αρχείο και ανοίγουν µε την κατάλληλη εφαρµογή «Ευχρηστία» Οι εφαρµογές ηλεκτρονικού ταχυδροµείου επιτρέπουν άµεση εκτέλεση της σχετιζόµενης εφαρµογής και εµφάνιση του εγγράφου, χωρίς ενδιάµεση αποθήκευση Τα αρχεία προγραµµάτων θεωρούνται και αυτά έγγραφα «Φιλική» παρουσίαση ονοµάτων των εγγράφων ταχυδροµείου Ο «κακός» επισυνάπτει έγγραφο-πρόγραµµα και το µεταµφιέζει σε άλλο τύπο εγγράφου Ο ανυποψίαστος χρήστης ανοίγει το έγγραφο, εκτελώντας έτσι το πρόγραµµα του κακού Αποστολή µηνυµάτων σε άλλους Αποστολή πληροφοριών στον «κακό» Σβήσιµο αρχείων ή µόλυνσή τους Μετάδοση µόλυνσης σε άλλους υπολογιστές 1

ταχυδροµείου - αντιµετώπιση Έλεγχος των συνηµµένων εγγράφων Για γνωστά επικίνδυνα προγράµµατα Για απόπειρες απόκρυψης του πραγµατικού ονόµατος Αυτόµατη µετονοµασία των συνηµµένων εγγράφων Κατά προτίµηση στους κεντρικούς υπολογιστές διακίνησης ηλεκτρονικού ταχυδροµείου ταχυδροµείου - Αντιµετώπιση Εγκατάσταση προγραµµάτων προστασίας στους υπολογιστές των χρηστών Ευαισθητοποίηση των χρηστών Να φαίνονται τα πλήρη ονόµατα των αρχείων Πρώτα να αποθηκεύετε τα αρχεία και κατόπιν να τα εκτελείτε Μην ανοίγετε συνηµµένα µε άγνωστη προέλευση ή αν έχετε αµφιβολίες για το περιεχόµενό τους Ασφάλεια σε προγράµµατα πλοήγησης Τα πρώτα προγράµµατα πλοήγησης απλά παρουσίαζαν κείµενο και εικόνες και προσέφεραν δυνατότητες πλοήγησης Οι νέες εκδόσεις κάνουν πολύ περισσότερα εκτελώντας κώδικα Javascript, Java, ActiveX, plugins, κ.λπ. Ουσιαστικά εκτελούµε κώδικα για τον οποίο δεν είµαστε σίγουροι Απλή γλώσσα για ενεργή συµπεριφορά Πιθανά προβλήµατα Ανάγνωση ή τροποποίηση στοιχείων του προγράµµατος πλοήγησης» Π.χ. Αλλαγή αρχικής σελίδας, προσθήκη σελιδοδεικτών Αποστολή µηνυµάτων Ανάγνωση στοιχείων του συστήµατος» Ανάγνωση του αρχείου συνθηµατικών Ανάγνωση ή τροποποίηση στοιχείων άλλων προγραµµάτων Javascript που εκτελούνται σε άλλα παράθυρα του προγράµµατος πλοήγησης Η Javascript δεν έχει τυπικό µοντέλο ασφάλειας, βασίζεται στους κατασκευαστές Ορισµός επιπέδων προστασίας για διάφορα αντικείµενα και δικαιωµάτων για τα προγράµµατα Javascript UniversalBrowserRead, UniversalBrowserWrite, UniversalBrowserAccess UniversalFileRead UniversalPreferencesRead, UniversalPreferencesWrite UniversalSendMail Οι κατασκευαστές των προγραµµάτων πλοήγησης δεν ελέγχουν πάντα όλες τις περιπτώσεις window.open('about:javascript', 'stealproperties'); URL Πολιτική ίδιας προέλευσης Ένα πρόγραµµα Javascript δεν µπορεί να διαβάσει ή να γράψει µεταβλητές άλλου προγράµµατος, εκτός αν προέρχονται από τον ίδιο εξυπηρέτη Παράδειγµα» Πρόγραµµα στη σελίδα URL http://company.com/dir/page.html http://company.com/dir2/this.html http://company.com/dir3/dir4/that.html http://www.company.com/dir/pg.html file://d /mypage.htm http://company.com:88/dir/etc.html Αποτέλεσµα Λόγος ιαφορετικοί εξυπηρέτες ιαφορετικό πρωτόκολλο ιαφορετική θύρα 2

Η πολιτική ίδιας προέλευσης είναι πολύ περιοριστική» www1.ibm.com, www2.ibm.com» www.symantec.com, www.sarc.com document.domain = "ibm.com"; Υπογεγραµµένα προγράµµατα Εξαγωγή, εισαγωγή διαδικασιών Απαγόρευση διαρροής ευαίσθητων πληροφοριών Το πρόγραµµα πρέπει να έχει πρόσβαση σε πληροφορίες, δεν πρέπει όµως να τις στείλει στο δίκτυο «Σεσηµασµένες» πληροφορίες (tainted information) Υπολογισµοί που περιλαµβάνουν σεσηµασµένες πληροφορίες δίνουν σεσηµασµένα αποτελέσµατα Ο χρήστης ειδοποιείται για προσπάθειες διαρροής σεσηµασµένων πληροφοριών Ασφάλεια για Java Πλήρης γλώσσα προγραµµατισµού Οι εφαρµογές µπορούν να εκτελεστούν αυτόνοµα (applications) ή στο περιβάλλον ενός προγράµµατος πλοήγησης (applets) Πηγαίος κώδικας Μεταγλωττιστής + Εκτέλεση Η Java στους εξυπηρέτες Προγράµµατα Java µπορούν να εκτελεσθούν και στους εξυπηρέτες Εξυπηρετούµενος µε Java Applet Εξυπηρέτης µε Java Servlet, JSP, κ.λπ. JDBC Βάση δεδοµένων Java Πιθανά προβλήµατα ιαρροή πληροφοριών ιαθεσιµότητα πόρων (Denial of Service) Ακεραιότητα πληροφοριών (καταστροφή, παραφθορά) Ενόχληση του χρήστη Πόρος Σύστηµα αρχείων ίκτυο Μνήµη Συσκευές εξόδου Συσκευές εισόδου ιαχείριση διεργασιών Περιβάλλον χρήστη Κλήσεις συστήµατος Επίπεδο άµυνας Java ιαρροή Υψηλό ιαθεσιµότ. Χαµηλό Ακεραιότητα Υψηλό Ενόχληση Χαµηλό Java Μοντέλο ασφάλειας Κώδικας που εµπιστευόµαστε Κώδικας που δεν εµπιστευόµαστε Η εκτέλεση του κώδικα που δεν εµπιστευόµαστε γίνεται σε ένα περιβάλλον αυξηµένης ασφάλειας το sandbox Κώδικας που εµπιστευόµαστε Πλήρης πρόσβαση Κώδικας που δεν εµπιστευόµαστε Τοπικοί πόροι συστήµατος Java Τι απαγορεύεται Ανάγνωση, διαγραφή, µετονοµασία, έλεγχος ύπαρξης, αναφορά ιδιοτήτων αρχείων ηµιουργία ή αναφορά περιεχοµένων για καταλόγους Σύνδεση προς διαφορετικό υπολογιστή από τον εξυπηρέτη προέλευσής του και δηµιουργία θυρών προς υποδοχή συνδέσεων ηµιουργία παραθύρου πρώτου επιπέδου χωρίς προειδοποίηση ότι πρόκειται για ανασφαλή εφαρµογή Συλλογή πληροφοριών για τον χρήστη (όνοµα, προσωπικός κατάλογος) Ορισµός ιδιοτήτων του συστήµατος Εκτέλεση προγραµµάτων Τερµατισµός της εκτέλεσης της εικονικής µηχανής Φόρτωση δυναµικών βιβλιοθηκών ηµιουργία και πρόσβαση νηµάτων ελέγχου εκτός των δικών της ηµιουργία περιβάλλοντος φόρτωσης κλάσεων ή διαχείρισης ασφάλειας ηµιουργία διαδικασιών ελέγχου δικτύου π.χ. URLStreamHandlerFactory Ορισµός κλάσεων που ενσωµατώνονται στις κλάσεις του υπολογιστή 3

Java Τι επιτρέπεται Κεντρική µονάδα επεξεργασίας Μνήµη Οι προγραµµατιστές θεωρούν το µοντέλο περιοριστικό Προσωρινά αρχεία Στη δεύτερη έκδοση της Java µία ψηφιακά υπογεγραµµένη εφαρµογή µπορεί να ζητήσει περισσότερα προνόµια µε επιβεβαίωση από τον χρήστη Όσο αυξάνονται τα προνόµια, τόσο µειώνεται η ασφάλεια Java Ασφάλεια µέσω σχεδιασµού της γλώσσας Η Java είναι αντικειµενοστρεφής γλώσσα µε πακέτα, κλάσεις, στιγµιότυπα, µεταβλητές Πληροφορία Ιδιωτική µεταβλητή Προστατευµένη µεταβλητή ηµόσια µεταβλητή Εξ ορισµού συµπεριφορά Προσπελαύνεται από Την ίδια την κλάση Την ίδια την κλάση, τις υποκλάσεις και κλάσεις στο ίδιο πακέτο Όλες τις κλάσεις Την ίδια την κλάση και κλάσεις στο ίδιο πακέτο Java Ασφάλεια µέσω σχεδιασµού της γλώσσας ήλωση αντικειµένων και µεθόδων ως final δεν µπορούν να τροποποιηθούν ή να επανορισθούν Τα όρια των πινάκων ελέγχονται σε κάθε πρόσβαση Η µετατροπή τύπων είναι ιδιαίτερα περιορισµένη Οι µεταβλητές δεν µπορούν να χρησιµοποιηθούν πριν αρχικοποιηθούν Η αυτόµατη συλλογή απορριµάτων ελευθερώνει τη µνήµη που δεν χρειάζεται Τα τµήµατα του Sandbox Επαληθευτής: ασφάλεια µορφής και τύπων δεδοµένων Φορτωτής κλάσεων: φορτώνει δυναµικά κλάσεις από το περιβάλλον εκτέλεσης : αποτρέπει ενδεχοµένως επισφαλή λειτουργικότητα Internet Sandbox Ο επαληθευτής Επαληθευτής Byte code Φορτωτής Ο επαληθευτής είναι τµήµα του περιβάλλοντος εκτέλεσης, απροσπέλαστο για τα προγράµµατα, και ελέγχει: Αν η µορφή του κώδικα είναι σωστή Αν ο κώδικας παραποιεί δείκτες, παραβιάζει περιορισµούς πρόσβασης ή χρησιµοποιεί λάθος πληροφορίες τύπων Έλεγχος συνέπειας εκδόσεων κλάσεων» ιαγραφή µεθόδων που χρησιµοποιούνται Η διαδικασία είναι σχετικά χρονοβόρα Πολλές φορές διαρκεί περισσότερο από το «κατέβασµα» Sandbox Ο επαληθευτής Μετά το πέρας της επαλήθευσης είναι βέβαιο ότι: Το αρχείο έχει τη σωστή µορφή εν θα υπάρξει υπερχείλιση ή εξάντληση της στοίβας Όλοι οι τύποι των παραµέτρων είναι σωστοί εν υπάρχουν παράνοµες µετατροπές τύπων δεδοµένων Οι προσπελάσεις σε µεταβλητές υπακούνε στους κανόνες πρόσβασης της γλώσσας (public, private, κ.λπ.) Οι αναγνώσεις και εγγραφές σε καταχωρητές είναι έγκυρες 4

Internet Byte code Περιβάλλον εκτέλεσης Java Πιθανότατα πρόβληµα ασφάλειας Πιθανώς όµως και όχι! Πρωταρχικός φορτωτής Java.Lang.ClassLoader Java.Security.ClassLoader Φορτώνει τις βασικές κλάσεις από τον δίσκο. Οι κλάσεις αυτές δεν ελέγχονται από τον επαληθευτή Γενική λειτουργικότητα φόρτωσης κλάσεων Όµοια µε appletloader, περιορισµός να προέρχονται από java.app.class.path Τελικά εξαρτάται από το πόσο εµπιστευόµαστε τον συγγραφέα Java.Net.URLClassLoader AppletClassLoader Όµοια µε appletloader, περιορισµός να προέρχονται από rmi.server.codebase Φορτώνει κώδικα των applets. Οι κλάσεις πρώτα ζητούνται από τον πρωταρχικό φορτωτή και µετά από το applet Περιοχές ονοµατολογίας Μία κλάση µπορεί να χρησιµοποιείται από πάνω από µία εφαρµογές δικτύου» ΕύρεσηΜετοχής σε λεξικό ρηµάτων και εφαρµογή χρηµατιστηρίου Η ίδια κλάση µπορεί να είναι ενσωµατωµένη στη Java και να χρησιµοποιείται από εφαρµογή Μπορεί να ορίζεται περιοχή ονοµατολογίας Τοπικές κλάσεις Κλάσεις περιοχής 1 Κλάσεις περιοχής 2 Κατά την αναφορά σε κλάσεις ελέγχονται και πάλι πρώτα οι ενσωµατωµένες κλάσεις και κατόπιν οι κλάσεις στην περιοχή ονοµατολογίας Περιβάλλον εκτέλεσης Java Έλεγχος αν η κλάση έχει φορτωθεί αν ναι, επιστρέφεται η φορτωµένη Απόπειρα φόρτωσης της κλάσης από τον πρωταρχικό φορτωτή Έλεγχος αν ο φορτωτής έχει το δικαίωµα δηµιουργίας της κλάσης ιάβασµα της κλάσης σε έναν πίνακα από bytes, είτε από το δίκτυο είτε από αρχεία ηµιουργία του αντικειµένου και των µεθόδων Προσδιορισµός των κλάσεων που απαιτούνται άµεσα από την κλάση (π.χ. πρόγονοι, εκφράσεις αρχικοποίησης) και έλεγχος γι αυτές Έλεγχος του αρχείου κλάσης από τον επαληθευτή Sandbox Οι βιβλιοθήκες της Java παρέχουν πλήρη λειτουργικότητα... η οποία δεν πρέπει να είναι προσπελάσιµη στον καθένα! Ο διαχειριστής ασφάλειας ελέγχει ποιος µπορεί να κάνει τι Κώδικας Ακίνδυνα Επικίνδυνα ιαχειριστής ασφάλειας ; Επιτρέπεται Υπηρεσίες Λ.Σ. Απαγορεύεται, σήµα εξαίρεσης Sandbox Λειτουργία διαχειριστή Ένα πρόγραµµα Java καλεί µία εν δυνάµει επικίνδυνη λειτουργία στη διασύνδεση της Java Ο κώδικας βιβλιοθήκης της Java ρωτά τον διαχειριστή ασφάλειας αν επιτρέπεται ή όχι Αν όχι, δεν εκτελείται η λειτουργία και δηµιουργείται ένα σήµα εξαίρεσης που διαδίδεται στη στοίβα εκτέλεσης Αν ναι, η διαδικασία εκτελείται κανονικά Στην απόφαση συµµετέχουν ο χρήστης και η προκαθορισµένη πολιτική 5