Κατασκευή πρότυπου αλγορίθμου παραγωγής συνθηματικών για την

Κατασκευή πρότυπου αλγορίθμου
παραγωγής συνθηματικών για την
αποτελεσματικότερη αυθεντικοποίηση σε
πληροφοριακά συστήματα.
Αριστειδάκης Ιωάννης1 και Ασσιόγλου Γεώργιος2
[email protected]
, [email protected]
Επιβλέπων Καθηγητής: Λάζαρος Τζήμκας
[email protected]
Εκπαιδευτήρια “O Απόστολος Παύλος”
Ταυτοποίηση και Αυθεντικοποίηση
• Ταυτοποίηση (identification) ενός λογικού υποκειμένου
καλείται η διαδικασία εκείνη, κατά την οποία το λογικό
υποκείμενο παρέχει σε ένα Πληροφοριακό Σύστημα (στο
εξής θα αναφέρεται ως ΠΣ) τις πληροφορίες που
απαιτούνται προκειμένου να συσχετιστεί με ένα από τα
αντικείμενα που δικαιούνται προσπέλασης στους πόρους
(resources) του.
• Αυθεντικοποίηση
(authentication)
ενός
λογικού
υποκειμένου, καλείται η διαδικασία εκείνη, κατά την οποία
ένα λογικό υποκείμενο παρέχει σε ένα ΠΣ τις πληροφορίες
που απαιτούνται προκειμένου να ελεγχθεί η βασιμότητα της
συσχέτισης που επιτεύχθηκε κατά τη διαδικασία της
ταυτοποίησης.
Τεχνικές επίτευξης της Αυθεντικοποίησης
• Τεχνική I: Κάτι που το λογικό υποκείμενο γνωρίζει (πχ.
ένα συνθηματικό ή ένα PIN).
• Τεχνική II: Κάτι που το λογικό υποκείμενο κατέχει
(μαγνητική συσκευή αναγνώρισης πχ έξυπνη κάρτα ή
ψηφιακό πιστοποιητικό ).
• Τεχνική III: Κάτι που χαρακτηρίζει το λογικό
υποκείμενο με βάση μονοσήμαντα βιομετρικά
χαρακτηριστικά
του
(συστήματα
βιομετρικής
τεχνολογίας, πχ. εφαρμογές δακτυλικών αποτυπωμάτων,
αναγνώριση φωνής και ίριδας ματιού)
Πλεονεκτήματα-Μειονεκτήματα Τεχνικών Αυθεντικοποίησης
Τεχνική
I: Κάτι που
γνωρίζει
Πλεονεκτήματα
• Εύκολη υλοποίηση
και εφαρμογή
• Δε χάνονται ή
κλέβονται
IΙ: Κάτι που
 Δεν αντιγράφονται
κατέχει
εύκολα
IΙΙ: Κάτι που  Μεγαλύτερη
το
ασφάλεια από τις
χαρακτηρίζει Τεχνικές I και II.
Μειονεκτήματα
 Εύκολο να μαντευθούν
 Μπορούν να
αποκαλυφθούν με
αυτοματοποιημένες
μεθόδους
 Υψηλό κόστος
 Μπορούν να χαθούν ή να
κλαπούν
 Δυσκολίες στην
κατασκευή
 Δεν είναι αλάνθαστα
 Υψηλό κόστος
Μοντέλο που υλοποιήθηκε
•
•
•
•
•
•
Δημιουργήθηκε ένα γενικευμένο μοντέλο ασφαλείας
Φιλικό προς τον χρήστη
Ανθεκτικό σε κάθε είδους κακόβουλης επίθεσης.
Χρήση μεταβλητού κωδικού μικρής διάρκειας
Αξιοποίηση διαφόρων τεχνικών αυθεντικοποίησης.
Χρήση γλώσσας προγραμματισμού C++
Μέθοδος
•
•
•
Δημιουργία δύο προγραμμάτων:
1. της Γεννήτριας Κωδικών
2. του Λήπτη Κωδικών
Το πρώτο πρόγραμμα το κατέχει μόνο ο επιθυμητός
χρήστης σε προσωπικό αποθηκευτικό χώρο, λ.χ.
δίσκος τύπου flash
Το δεύτερο θα μπορούσε, να είναι συνδεδεμένο σε ένα
φάκελο, αρχείο ή άλλο πρόγραμμα που χρειάζεται
προστασία.
Σχεδιασμός της Γεννήτριας Κωδικών
• Μέσω αλγόριθμου είναι σε θέση να παράγει τον κωδικό
που ισχύει για τη συγκεκριμένη χρονική περίοδο
• Χωρίς τη γεννήτρια κωδικών, είναι αδύνατον κάποιος να
γνωρίζει το τρέχον κλειδί για την αυθεντικοποίηση.
Αρχική οθόνη Γεννήτριας Κωδικών
Εισαγωγή στη Γεννήτρια Κωδικών
• Αρχικά ζητείται από τον χρήστη ένας στατικός κωδικός
τύπου ΡΙΝ προκειμένου να μπει στο κυρίως πρόγραμμα
• Αν κωδικός είναι λάθος, η είσοδος απαγορεύεται και μετά
από 2 δευτερόλεπτα το πρόγραμμα θα κλείσει αυτόματα
• Αυτό αποτρέπει κακόβουλα προγράμματα να το
παραβιάσουν.
Αποτυχημένη προσπάθεια εισόδου στη Γεννήτρια Κωδικών
Τρόπος λειτουργίας γεννήτριας κωδικών (1)
• Αν ο κωδικός είναι σωστός ζητείται απ’ τον χρήστη να
πληκτρολογήσει τέσσερις μεταβλητές
• Οι μεταβλητές είναι ένα είδος εσωτερικού κωδικού
• Εάν δεν εισαχθούν σωστά το κλειδί που θα παραχθεί θα
είναι λανθασμένο
• Η σωστή τιμή και σειρά των μεταβλητών είναι γνωστή
μόνο από τον εξουσιοδοτημένο χρήστη
• Λόγω της φύσης τους είναι σχεδόν αδύνατον να βρεθούν
από κακόβουλα προγράμματα
Τρόπος λειτουργίας γεννήτριας κωδικών (2)
• Εάν εισαχθούν οι κατάλληλες μεταβλητές το πρόγραμμα
βγάζει το σωστό κλειδί
• Όταν πληκτρολογηθεί στον λήπτη κλειδιών θα επιτραπεί
η πρόσβαση στο υπολογιστικό σύστημα.
• Το κλειδί που παράχθηκε διαρκεί για μικρό χρονικό
διάστημα
• Το επόμενο θα είναι εντελώς διαφορετικό από το τρέχον
• Ακόμη και αν κάποιος το υποκλέψει δεν μπορεί να το
χρησιμοποιήσει μετά από ένα χρονικό διάστημα.
Τρόπος λειτουργίας γεννήτριας κωδικών (2)
Επιτυχημένη παραγωγή κωδικού
Η συνάρτηση (1)
• Η συνάρτηση η οποία παράγει το κλειδί σχεδιάστηκε
ειδικά για αυτό το σκοπό από εμάς
• Χρησιμοποιεί στοιχεία της ημερομηνίας και της ώρας
του συστήματος και τις μεταβλητές που έδωσε ο χρήστης
• Με αυτόν τον τρόπο το κλειδί μεταβάλλεται μη
περιοδικά με το χρόνο.
Η συνάρτηση (2)
key= z ∙ x + y
x=2 ∙ month+8 ∙ year-3 ∙ (62+sday) + 9 ∙ day
y = a ∙ b ∙ c ∙ month + a3+ b2+4 ∙ d ∙ c2 ∙ sday
z= 5 ∙ b ∙ c ∙ month3 - 2 ∙ sday2 - d2
• a, b, c, d: οι μεταβλητές που εισάγει ο χρήστης
• sday: η ημέρα που προκύπτει από την ημερομηνία του
συστήματος.
• month: ο μήνας του συστήματος.
• year: το έτος του συστήματος.
• day: ένας αριθμός που προκύπτει ύστερα από ένα σενάριο
επιλογών και πράξεων πάνω στη μεταβλητή sday και στη
μεταβλητή month.
Μέρος του πηγαίου κώδικα της Γεννήτριας Κωδικών
Σχεδιασμός και Λειτουργία Λήπτη Κλειδιών
• Δέχεται τον κωδικό που δόθηκε από την γεννήτρια
κωδικών
• Μέσω του ίδιου αλγόριθμου παράγει και αποθηκεύει στη
μνήμη του, τον κωδικό που αντιστοιχεί στη συγκεκριμένη
χρονική περίοδο
• Συγκρίνει το κλειδί που πληκτρολογήθηκε με αυτό που
έχει στη μνήμη του
• Αν ταυτίζονται επιτρέπει την είσοδο του χρήστη
Σχεδιασμός και Λειτουργία Λήπτη Κλειδιών
Επιτυχημένη είσοδος στον Λήπτη Κωδικών
Σχεδιασμός και Λειτουργία Λήπτη Κλειδιών
• Δέχεται τον κωδικό που δόθηκε από την γεννήτρια
κωδικών
• Μέσω του ίδιου αλγόριθμου παράγει και αποθηκεύει στη
μνήμη του, τον κωδικό που αντιστοιχεί στη συγκεκριμένη
χρονική περίοδο
• Συγκρίνει το κλειδί που πληκτρολογήθηκε με αυτό που
έχει στη μνήμη του
• Αν ταυτίζονται επιτρέπει την είσοδο του χρήστη
• Αν όχι, η είσοδος απαγορεύεται και μετά από 2
δευτερόλεπτα το πρόγραμμα θα κλείσει αυτόματα.
Σχεδιασμός και Λειτουργία Λήπτη Κλειδιών
Κλείσιμο του Λήπτη μετά από αποτυχημένη προσπάθεια εισόδου
•
•
•
•
•
•
Συμπεράσματα
Κατασκευή αξιόπιστου πρότυπου συστήματος ασφαλείας
Συνδυασμός διαφόρων τεχνικών αυθεντικοποίησης.
Μεγιστοποίηση ασφαλείας με τη χρήση μεταβλητού
κωδικού που εναλλάσσεται με το χρόνο.
Προστασία σε περίπτωση αποκάλυψης του κλειδιού αφού
αυτό διαρκεί για συγκεκριμένο χρονικό διάστημα.
Κάθε κλειδί διαφέρει ολοκληρωτικά από το
προηγούμενο, άρα πρακτικά αδύνατο να μαντευθεί.
Μέγιστοι πιθανοί συνδυασμοί για την αποκάλυψη του
κωδικού: 1091.
Προτάσεις για βελτίωση
• Χρήση μεγαλύτερου και πιο σύνθετου αλγόριθμου για
την παραγωγή δυσκολότερων κωδικών για ακόμη
μεγαλύτερη ασφάλεια
• Χρήση περαιτέρω προγραμματισμού για την σύνδεση του
λήπτη κωδικών με κάποιο αρχείο ή φάκελο για την
προστασία του
• Κανένα σύστημα ασφαλείας δεν μπορεί να είναι
τέλειο και απόλυτα ασφαλές.
Ευχαριστούμε για τον χρόνο σας