Πιστοποίηση - Αυθεντικοποίηση Μηλιώνης Ματθαίος, Sc CISSP Ασφάλεια Πληροφοριών ΤΕΙ Καλαµάτας (Πρ. Σπάρτης)
Υπηρεσίες Πιστοποίησης Authentication από το Ελληνικό «αυθεντικό» (γνήσιος) Το να µπορεί κάποια οντότητα να αποδείξει σε µία άλλη ποια είναι
Απλοί Κωδικοί (passwords) Η παλαιότερη µορφή αυθεντικοποίησης Username (ταυτότητα χρήστη) Password (µυστική λέξη, αριθµός φράση) Απλή µορφή (στηρίζεται σε «κάτι που ξέρεις») Τα δύο συναλλασσόµενα µέρη ξέρουν ένα µυστικό Το ένα µέρος λέει το µυστικό και το άλλο συγκρίνει αν είναι ίδιο Προβλήµατα ικτυακά το µυστικό µπορεί να υποκλαπεί, Χιάζεται να ξέρουν και οι δύο το ίδιο µυστικό στον υπολογιστή αποθηκεύεται ο ίδιος ο κωδικός Καλύτερα να αποδείξεις ότι το γνωρίζεις χωρίς να το αποκαλύψεις
Χρήση - AS Αποδεικνύουµε την γνώση του µυστικού χωρίς να το αποκαλύπτουµε Αντί για τον κωδικό αποθηκεύουµε την AS αυτού (πχ D5) Password = s3cret12 ash(s3cret12) = 40ff08ad983 Συνηθισµένη µέθοδος σε interactive συνδέσεις. Επαλήθεση Χρήστης δίνει AS(password) και αυτό συγκρίνεται µε την hash που είναι φυλαγµένη στον ΗΥ Προβλήµατα Αν δύο έχουν το ίδιο κωδικό τότε και την ίδια AS εν µπορεί να χρησιµοποιεί από το δίκτυο. Αν υποκλαπεί η AS είναι σαν να έχεις το κωδικό.
Φύλαξη κωδικών Τα AS των κωδικών πρέπει να φυλάσσονται στον υπολογιστή ώστε να ελέγχονται Στο Unix (passwd, shadow file) Windows (C:\WINDOWS\system32\config\SA) Passwd file username:passwd:uid:gid:full_name:directory:shell root:x:0:1:super-user:/:/sbin/sh fred:6k/7kcfrpnvxg:508:10:& Fredericks:/usr2/fred:/bin/csh smith:*:100:100:8a-74(office):/home/smith:/usr/bin/sh guest:*:200:0::/home/guest:/usr/bin/sh Shadow username:password:lastchg:min:max:warn:inactive:expire:flag root:npge08pfz4wuk:9479:0:10000::::
Χρήση Αλατιού (Salt, IV) Κοιτώντας σε ένα αρχείο κωδικών θα παρατηρούσαµε ότι αν δύο έχουν την ίδια hash σε κωδικό έχουν τον ίδιο κωδικό. Λύση Χρήση IV, (Salt) AS (pass IV) = C md5( s3cret 1023) md5( s3cret 2134) Unix χρησιµοποιεί SAT 4096 πιθανοτήτων (12 bit salt) 2 χαρακτήρες Α-Ζ, a-z, 0-9 Επαλήθευση Πριν τον υπολογισµό της AS του κωδικού λαµβάνεται υπόψη και το SAT
Μη ασφαλή κανάλια Σε αυτό το σενάριο το κανάλι επικοινωνίας ΕΝ είναι ασφαλές. εν µπορούµε να στείλουµε ούτε ον κωδικό ούτε και την AS. Challenge Response Ο Β ζητάει να συνδεθεί στον Α. O A στέλνει έναν τυχαίο αριθµό Challenge στον B. Ο Β κρυπτογραφεί τον κωδικό µε το µυστικό κλειδί που γνωρίζουν και οι δύο και τον αποστέλλει (response) Ο Α, συγκρίνει την απάντηση αν είναι αυτή που θα έπρεπε. Προβλήµατα Ο Β δεν ξέρει αν µιλάει µε το πραγµατικό Α. Χρειάζεται αµοιβαία αυθεντικοποίηση (mutual authentication) Τα ίδια βήµατα από την ανάποδη
Challenge response Απλή διαδικασία, µπορεί να ολοκληρωθεί σε τρία στάδια 1. ello. I am A, please log me in 2. Really? Challenge : Timestamp 3. Check for your self. Response OK
Επιθέσεις σε κωδικούς Κάτι που ξέρεις = Κάτι που µπορεί ο άλλος να µαντέψει ή να βρει Σπάνια οι χρήστες επιλέγουν καλούς κωδικούς. Συχνά επιλέγουν 1980, 123456, qwerty, maria, olympiakos, abc Επιθέσεις λεξικού (dictionary attacks): δοκιµάζονται όλες οι λέξεις που υπάρχουν σε ένα (πχ αγγλικό λεξικό) 30000 λέξεις στην αγγλική γλώσσα. Ένας τέτοιος κωδικός (µια αγγλική λέξη όπως η λέξη unbreakable) σπάει σε 3 Επιθέσεις ωµής βίας (brute force): δοκιµάζονται όλοι οι πιθανοί συνδυασµοί Κωδικοί µικρού µήκους (qwerty, abc, 1980a, aa) σπάνε σχετικά γρήγορα Υποκλοπή πλήκτρων (key-loggers) Υποκλέπτεται το πληκτρολόγιο και καταγράφονται όλα τα πλήκτρα (και άρα οι κωδικοί) που πληκτρολογεί ένας χρήστης Phishing Attacks. Ο χρήστης αποκαλύπτει τον κωδικό του
Καλοί κωδικοί εν υπάρχουν. Η µέθοδος των κωδικών έχει εγγενείς αδυναµίες (για αυτό ονοµάζεται και weak authentication). Βελτίωση αντοχής Dictionary attack: Αποφυγή απλών λέξεων (tree, secret, onica) Brute force attack: επιλογή µεγάλων και πολύπλοκων κωδικών Χρήση άλλων µεθόδων αυθεντικοποίησης (πχ δύο παραγόντων) Συχνή αλλαγή
Καλοί κωδικοί ύναµη ενός κωδικού!bze-bra12 (10 χαρακτήρες, 26+26+10+20) = 10^82= Ένας cracker δοκιµάζει 2.400.000 κωδικούς/δευτερόλεπτο Οι δυνατοί κωδικοί έχουν σχέση µε το πλήθος των χαρακτήρων (5 χαρακτήρες ασθενέστερο του 12 χαρακτήρες) Τη διαφορετικότητα των χαρακτήρων (Α..Ζ, a..z, 0..9,!@#$%) Τυχερότατα (άλλο abc123, άλλο a-!1wg0a,e) Συχνότητα αλλαγών Προβλήµατα Ξεχνιούνται, και άρα σηµειώνονται Καλύτερα η χρήση φράσεων. pass phrase «toykitsouimanaka8ontan»
Αυθεντικοποίηση πολλών παραγόντων Οι πιστοποίηση στηρίζεται σε κάποιους παράγοντες Κάτι που ξέρεις (πχ ένας µυστικός κωδικός) Κάτι που έχεις (πχ. Έξυπνη κάρτα, OTP) Κάτι που είσαι (πχ δακτυλικό αποτύπωµα, φωνή) Κάπου που είσαι (GPS δεδοµένα) Two-factor authentication (T-FA) υο παράγοντες (πχ έξυπνη κάρτα και PIN) ulty factor Περισσότεροι παράγοντες. Κάρτα και PIN και βιοµετρικό
Έξυπνες κάρτες Μικροί υπολογιστές ικιά τους µνήµη, Cpu, I/O Ασφάλεια Το µυστικό κλειδί, παράγεται και φυλάσσεται εντός To challenge εισέρχεται στην κάρτα και παράγεται το response Αποθήκες Ψ.Π. και µυστικών κλειδιών Χιάζονται PIN για λειτουργήσουν (πιστοποίηση του ιδιοκτήτη τους σε αυτές) Ασφαλές υλικό (δεν παραβιάζονται) Προβλήµατα Θέλουν ειδικό υλικό (SC readers) εν λειτουργούν σε παλιά πρωτόκολλα, η δύσκολα ενσωµατώνονται (telnet, http) Κόστος (20 ) Τώρα και σε USB και ασύρµατες (RF)
One time passwords Σαν έννοια είναι οι κωδικοί που χρησιµοποιούνται µια φορά ΤΑΝ (Transaction authentication number). Σε χαρτί τυπωµένοι κωδικοί που ισχύουν µια φορά Συσκευές OTP κωδικών. Συσκευές που αλλάζουν κωδικό κάθε Ν δευτερόλεπτα. Σε περίπτωση σύνδεσης χρησιµοποιείς τον τρέχον κωδικό (µαζί µε τον κωδικό-pin σαν δεύτερο παράγοντα) Πλεονεκτήµατα Ότι περίπου και οι έξυπνες κάρτες. Λειτουργούν και σε TEXT πρωτόκολλα (telnet, http) Μειονεκτήµατα Κόστος Συγχρονισµός µε ρολόγια (απορυθµίζονται) ιαδικασία έκδοσης διανοµής. Ένα ανά σύστηµα
Βιοµετρικά - biometrics Ο χρήστης αναγνωρίζεται από κάποιο βιολογικό χαρακτηριστικό του φυσικό ή συµπεριφοράς (something you are) ακτυλικά αποτυπώµατα Φωνή Ίριδα Ταχύτητα και κινήσεις υπογραφής Προβλήµατα False Rejection Rate (FRR) or Type I Error False Acceptance Rate (FAR) or Type II Error Αποδοχή -µοναδικότητα
Βιοµετρικά - biometrics Ear Canal Gait DNA Odor Facial thermograph Voice Signature Retinal scan Iris and veins Keystrokes and geometry Fingerprint Face Circumvention* Circumvention* Acceptability Acceptability Performance Performance Collectability Collectability Permanence Permanence Uniqueness Uniqueness Universality Universality Biometrics: Biometrics: Σύγκριση βιοµετρικών
Kerberos (protocol) Στηρίζεται στα εισιτήρια και σε συγχρονισµένα ωρολόγια Συντοµογραφίες AS = Authentication Server TGS = Ticket Granting Server SS = Service Server TGT = Ticket Granting Ticket Εν, κατακλείδι Ο cilent πιστοποιείτε στον AS µε κάποιο µυστικό (πχ κωδικό) που γνωρίζουν και οι δύο Ο AS δίνει ένα «εισιτήριο» στον client, το οποίο µπορεί να το χρησιµοποιήσει για να πάρει και αλλα «εισιτήρια» από τον SS (χωρίς τώρα να χιάζεται να δώσει τον κωδικό του) Αυτά τα νέα εισιτήρια µπορούν να χρησιµοποιηθούν για να του παρέχουν «υπηρεσίες» στο δίκτυο
Client Authentication Steps: The client sends a cleartext message to the AS requesting services on behalf of the user. Sample message: "User XYZ would like to request services". Note: Neither the secret key nor the password is sent to the AS. The AS checks to see if the client is in its database. If it is, the AS sends back the following two messages to the client: essage A: Client/TGS Session Key encrypted using the secret key of the client/user. essage B: Ticket-Granting Ticket (which includes the client ID, client network address, ticket validity period, and the client/tgs session key) encrypted using the secret key of the TGS. Once the client receives messages A and B, it decrypts message A to obtain the Client/TGS Session Key. This session key is used for further communications with TGS. (Note: The client cannot decrypt essage B, as it is encrypted using TGS's secret key.) At this point, the client has enough information to authenticate itself to the TGS.
Client Service Authorization Steps: When requesting services, the client sends the following two messages to the TGS: essage C: Composed of the Ticket-Granting Ticket from message B and the ID of the requested service. essage D: Authenticator (which is composed of the client ID and the timestamp), encrypted using the Client/TGS Session Key. Upon receiving messages C and D, the TGS retrieves message B out of message C. It decrypts message B using the TGS secret key. This gives it the "client/tgs session key". Using this key, the TGS decrypts message D (Authenticator) and sends the following two messages to the client: essage E: Client-to-server ticket (which includes the client ID, client network address, validity period and Client/Server Session Key) encrypted using the service's secret key. essage F: Client/server session key encrypted with the Client/TGS Session Key.
Client Service Request Steps: Upon receiving messages E and F from TGS, the client has enough information to authenticate itself to the SS. The client connects to the SS and sends the following two messages: essage E from the previous step (the client-to-server ticket, encrypted using service's secret key). essage G: a new Authenticator, which includes the client ID, timestamp and is encrypted using client/server session key. The SS decrypts the ticket using its own secret key to retrieve the Client/Server Session Key. Using the sessions key, SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client: essage : the timestamp found in client's Authenticator plus 1, encrypted using the Client/Server Session Key. The client decrypts the confirmation using the Client/Server Session Key and checks whether the timestamp is correctly updated. If so, then the client can trust the server and can start issuing service requests to the server. The server provides the requested services to the client.
Drawbacks Single point of failure: It requires continuous availability of a central server. When the Kerberos server is down, no one can log in. This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms. Kerberos requires the clocks of the involved hosts to be synchronized. The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock, the authentication will fail. The default configuration requires that clock times are no more than 10 minutes apart. In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized. The administration protocol is not standardized and differs between server implementations. Password changes are described in RFC 3244. Since the secret keys for all users are stored on the central server, a compromise of that server will compromise all users' secret keys. A compromised client will compromise the user's password