Το μέλλον της Java Security

 


Ψηφιακές υπογραφές και αρχεία JAR


Υπάρχει ένα είδος επίθεσης στο οποίο όλα τα δίκτυα είναι ευαίσθητα. Ονομάζεται “ο άνθρωπος στο μέσον” ή ο ενδιάμεσος. Λειτουργεί δε ως εξής, ένας πελάτης κάνει μια αίτηση σε έναν server. Χωρίς να αντιληφθούν οτιδήποτε ούτε ο πελάτης ούτε ο server, μια κακόβουλη εφαρμογή παρακολουθεί την αίτηση και περιμένει την απάντηση του server. Όταν αυτό γίνει, η εφαρμογή αυτή υποκλέπτει την απάντηση και την αντικαθιστά με μια δική της και ο πελάτης νομίζει φυσικά ότι αυτή είναι και η σωστή. Φανταστείτε την ζημιά που θα γίνει εάν αυτό που περιμένει να λάβει ο πελάτης είναι ένα applet το οποίο πια κάνει ό,τι η κακόβουλη εφαρμογή του έχει υποδείξει να κάνει.

Η λύση σε ένα τέτοιο πρόβλημα είναι τα applets με υπογραφή. Όπως ακριβώς όταν αγοράζουμε ένα προϊόν λογισμικού στο κουτί του και ξέρουμε τον κατασκευαστή του, έτσι ακριβώς και τα applets θα φέρουν μια υπογραφή, όχι φυσική αλλά ψηφιακή η οποία θα βεβαιώνει το “καλώς έχει”. Για να γίνει αυτό πρακτικά θα πρέπει ο κατασκευαστής του applet να τοποθετήσει τον κώδικα της Java και οποιαδήποτε σχετικά αρχεία σε ένα αρχείο JAR (Java Archive). Ακολούθως ο κατασκευαστής υπογράφει αυτό το αρχείο με ψηφιακή υπογραφή. Τέλος ο πελάτης ελέγχει την ταυτότητα του κατασκευαστή απ’ την ψηφιακή υπογραφή.

 

 

Java Protected Domains (Προστατευμένες Περιοχές)


Ένα ουσιώδες στοιχείο στην εξέλιξη της Java Security είναι οι προστατευμένες περιοχές. Αυτές είναι συστατικά στα οποία έχουν πρόσβαση συγκεκριμένα αντικείμενα που ονομάζονται αρχές. Αρχή είναι οποιαδήποτε οντότητα σε έναν Η/Υ που είναι άξια εμπιστοσύνης και όπου μπορεί να δοθεί εξουσιοδότηση. Ένα παράδειγμα μιας τέτοιας αρχής είναι το αμμοδοχείο.

Εξ’ ορισμού οι προστατευμένες περιοχές είναι εντελώς διαχωρισμένες. Η τυχόν αλληλεπίδραση τους μπορεί να γίνεται είτε με την βοήθεια ασφαλή κώδικα συστήματος, ή όταν σαφώς επιτρέπεται και απ’ τις δύο προστατευόμενες περιοχές. Αυτό το μοναδικό χαρακτηριστικό μπορεί να επεκτείνει το αμμοδοχείο στο σύστημα αρχείων, μια δυνατότητα ισχυρή αλλά και ευέλικτη. Για παράδειγμα δύο διαφορετικά applets μπορούν να γράψουν στην ίδια περιοχή του συστήματος αρχείων αλλά δεν μπορούν να αλληλεπιδράσουν μεταξύ τους. Αυτό θα μπορούσε να ρυθμίζεται απ’ τον χρήστη ή να είναι προρυθμισμένο. Αυτός ο τύπος της διευκόλυνσης επεκτείνει τον έλεγχο της Java επιτρέποντας πολλαπλά και μοναδικά δικαιώματα για ξεχωριστές εφαρμογές.

Οι προστατευμένες περιοχές ανήκουν σε δύο κλάσεις, συστήματος και εφαρμογών. Σχεδιαστικά όλοι οι πόροι του συστήματος (αρχεία, συνδέσεις στο δίκτυο, οθόνη κ.λ.π) είναι προσβάσιμες μέσα από περιοχές του συστήματος.

Θεωρητικά κάθε JVM χρειάζεται μόνο μια περιοχή συστήματος. Για να επιτύχουμε όμως μεγαλύτερη ασφάλεια η JVM μπορεί να εκκινήσει πολλές περιοχές συστήματος απ’ τις οποίες κάθε μια θα είναι υπεύθυνη για μια ομάδα πόρων του συστήματος. Αυτό από μόνο του περιορίζει δραστικά τα προβλήματα που θα προκύψουν από προγραμματιστικά σφάλματα και αδυναμίες ασφάλειας. Έτσι τα προβλήματα θα περιοριστούν σε μια περιοχή χωρίς παραπέρα συνέπειες. Απ’ την άλλη, όλες οι προστατευμένες περιοχές είτε συστήματος είτε εφαρμογών μπορούν να θέσουν επιπλέον περιορισμούς στους εσωτερικούς τους πόρους.

 

 

¶λλες προβλέψεις ασφάλειας


Όλες οι πολιτικές ασφάλειας που υπήρχαν μέχρι τώρα είναι διαθέσιμες μόνο σε προγραμματιστικό επίπεδο. Έτσι προκειμένου να επωφεληθούμε απ’ αυτές θα έπρεπε να αγοράσουμε ειδικό κώδικα ή να τον παράγουμε εμείς, δηλαδή να επεκτείνουμε τις κλάσεις ασφαλείας. Μελλοντικές εκδόσεις της Java θα σχεδιαστούν για να επιτρέψουν τέτοιες πολιτικές να είναι πιο εύκολα εφαρμόσιμες απ’ τους χρήστες μέσα από έτοιμους πίνακες.

Προκειμένου να αντιμετωπιστούν μη-ασφαλή μέσα μεταφοράς (το Internet) η ίδια η Sun δημιούργησε ένα πρωτόκολλο το SKIP (Simple Key Management for Internet Protocols) που επιτρέπει στα μέρη που συνομιλούν να συμφωνήσουν σε ένα μοντέλο κρυπτογράφησης το οποίο εγγυάται απόρρητες επικοινωνίες. Το Java Encryption Extension είναι ένα πρόσθετο module που παρέχει έναν εύκολο τρόπο στους προγραμματιστές και στους διαχειριστές συστήματος να εφαρμόσουν εξελιγμένες τεχνικές κρυπτογράφησης στα προγράμματα Java.

Μια σημαντική πτυχή στην ασφάλεια συστημάτων είναι η “παρακολούθηση” (auditing) του συστήματος. Αν ο διαχειριστής ασφάλειας παρατηρήσει ή υποπτευθεί μια επίθεση η παρακολούθηση παρέχει ένα ιστορικό της επίθεσης που βοηθάει να καταλάβουμε τι πραγματικά συνέβη. Αυτή την στιγμή η Java δεν έχει τυποποιήσει αυτήν την διαδικασία παρακολούθησης. Γίνονται όμως προσπάθειες για να τυποποιηθούν κάποια τέτοια χαρακτηριστικά.

Ένα απ’ τα προβλήματα που μπορεί να παρουσιαστεί στους χρήστες όταν χρησιμοποιούν τις προστατευμένες περιοχές είναι η πιστοποίηση των μηχανών. Αυτό σημαίνει πως ο κώδικας που εκτελείται σε μια περιοχή που βρίσκεται σε ένα απομακρυσμένο μηχάνημα μπορεί να αποκτήσει πρόσβαση σε τοπικό μηχάνημα. Το τοπικό μηχάνημα θα δει τον απομακρυσμένο κώδικα σαν μη-ασφαλή και έτσι θα του αρνηθεί την πρόσβαση στους τοπικούς πόρους. Για να αντεπεξέλθει σ’ αυτόν τον περιορισμό, μια προστατευμένη περιοχή μπορεί να αποδώσει “ταυτότητα” (ID) που επιτρέπει στο τοπικό μηχάνημα να πιστοποιήσει το απομακρυσμένο μηχάνημα και να επιτρέψει στον κώδικα του να εκτελεστεί.

Αυτή την στιγμή η χρήση πιστοποίησης απαιτεί ξεχωριστή κωδικοποίηση η οποία χρειάζεται πολύ χρόνο για να υλοποιηθεί. Για την απλοποίηση αυτού του προβλήματος, η Java θα προσφέρει διεπαφές προκειμένου να υπάρχει ομοιόμορφη πρόσβαση σε κώδικα πιστοποίησης τρίτων κατασκευαστών, όπως το Χ.509v3 και θα παρέχει on-line server Αρχής Πιστοποίησης (Certificate Authority).

 

 
 
     

Αρχή σελίδας
 
(c) 2001 created by Magnet Internet Services