Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος ttouskas@aueb.gr Διάλεξη 1-1
Περιεχόµενα Βασικές ρυθµίσεις Opessl Βασικές εντολές Opessl για την δηµιουργία πιστοποιητικών Βασικές εντολές Opessl για την δηµιουργία ψηφιακών υπογραφών Βασικές εντολές Keytool Διάλεξη 7-2
Βασικές λειτουργίες Opessl Δηµιουργία πιστοποιητικώνx.509 Δηµιουργία αιτηµάτων πιστοποίησης Πιστοποίηση κλειδιών χρηστών Δηµιουργία λιστών ανάκλησης πιστοποιητικών (CRLs) Κρυπτογράφηση-αποκρυπτογράφηση Διάλεξη 7-3
Βασικά αρχεία του OpeSSL lab: βασικός κατάλογος για την δοκιµαστικη Α.Π. lab\certs: περιέχει τα πιστοποιητικα που έχει εκδώσει η Α.Π. lab\crl: Λίστα ανάκλησης πιστοποιητικών lab\ewcerts: νέα πιστοποιητικα lab\private: ιδιωτικα κλειδια για την Α.Π. lab\public: δηµόσια κλειδια lab\req: αιτήµατα πιστοποιητικών προς υπογραφη (csr) lab\cacf.txt: αρχείο διαµόρφωσης λειτουργίας Α.Π. lab\usercf.txt: αρχείο διαµόρφωσης για έκδοση πιστοποιητικών χρήστη Διάλεξη 7-4
1 Δηµιουργία RSA κλειδιού και πιστοποιητικού Αρχής Πιστοποίησης 1.1 Δηµιουργία ιδιωτικού κλειδιού και αυτο-υπογεγγραµένου πιστοποιητικού για Αρχή Πιστοποίησης µε RSA και md5 opessl req -ew -x509 -keyout private/cakey.pem -out private/cacert.pem - days 365 -cofig CAcf.txt md5 1.2 Επισκόπηση πιστοποιητικού Αρχής Πιστοποίησης opessl x509 i private/cacert.pem text 1.3 Μετατροπή πιστοποιητικού Αρχής Πιστοποίησης απο PEM σε DER opessl x509 i private/cacert.pem outform DER out private/cacert.cer 1.4 Επισκόπηση ιδιωτικού κλειδιού Αρχής Πιστοποίησης opessl rsa i private/cakey.pem text Διάλεξη 7-5
2 Δηµιουργία DSA κλειδιών και πιστοποιητικού χρήστη 2.1 Δηµιουργία παραµέτρων DSA opessl dsaparam -out dsaparam.txt -gekey 1024 2.2 Δηµιουργία ιδιωτικού κλειδιού DSA και αυτο-υπογεγγραµένου πιστοποιητικού χρήστη µε αλγόριθµο κατακερµατισµού md5 opessl req ew x509 keyout testprivatekey.pem out testselfcert.pem days 365 ewkey dsa:dsaparam.txt cofig usercf.txt md5 2.3 Επισκόπηση αυτο-υπογεγραµµένου πιστοποιητικού χρήστη opessl x509 i testselfcert.pem -text 2.4 Δηµιουργία αίτησης πιστοποιητικού προς υπογραφή απο την Αρχή Πιστοποίησης opessl x509 x509toreq i testselfcert.pem sigkey testprivatekey.pem out testcertreq.pem 2.5 Επισκόπηση αίτησης πιστοποιητικού opessl req -i testcertreq.pem text 2.6 Δηµιουργία πιστοποιητικού χρήστη και υπογραφή του απο την Αρχή Πιστοποίησης opessl ca cofig usercf.txt policy policy_aythig out testsigedcert.pem ifiles testcertreq.pem 2.7 Επισκόπηση πιστοποιητικού χρήστη opessl x509 i testsigedcert.pem -text 2.8 Μετατροπή του πιστοποιητικού χρήστη απο PEM σε DER opessl x509 i testsigedcert.pem outform DER out testsigedcert.cer 2.9 Λήψη δηµόσιου κλειδιού χρήστη απο το ιδιωτικό opessl dsa -i testprivatekey.pem -pubout -out testpublickey.pem Διάλεξη 7-6
3 Δηµιουργία και επαλήθευση ψηφιακής υπογραφής DSA 3.1 Δηµιουργία ψηφιακής υπογραφής µε DSS1 και DSA opessl dgst -dss1 -sig testprivatekey.pem -out DSAsigature.bi plai.txt 3.2 Επαλήθευση ψηφιακής υπογραφής µε DSS1 και DSA opessl dgst -dss1 -verify testpublickey.pem -sigature DSAsigature.bi plai.txt Διάλεξη 7-7
4 Δηµιουργία RSA κλειδιών και πιστοποιητικού χρήστη 4.1 Δηµιουργία ιδιωτικού κλειδιού RSA και αυτο-υπογεγγραµένου πιστοποιητικού χρήστη µε αλγόριθµο κατακερµατισµού md5 opessl req ew x509 keyout testprivatekey.pem out testselfcert.pem days 365 ewkey rsa:1024 cofig usercf.txt md5 4.2 Επισκόπηση αυτο-υπογεγραµµένου πιστοποιητικού χρήστη opessl x509 i testselfcert.pem -text 4.3 Δηµιουργία αίτησης πιστοποιητικού προς υπογραφή απο την Αρχή Πιστοποίησης opessl x509 x509toreq i testselfcert.pem sigkey testprivatekey.pem out testcertreq.pem 4.4 Επισκόπηση αίτησης πιστοποιητικού opessl req -i testcertreq.pem text 4.5 Δηµιουργία πιστοποιητικού χρήστη και υπογραφή του απο την Αρχή Πιστοποίησης opessl ca cofig usercf.txt policy policy_aythig out testsigedcert.pem ifiles testcertreq.pem 4.6 Επισκόπηση πιστοποιητικού χρήστη opessl x509 i testsigedcert.pem -text 4.7 Μετατροπή του πιστοποιητικού χρήστη απο PEMσε DER opessl x509 i testsigedcert.pem outform DER out testsigedcert.cer 4.8 Λήψη δηµόσιου κλειδιού χρήστη απο το ιδιωτικό opessl rsa i testprivatekey.pem pubout out testpublickey.pem 5 Δηµιουργία και επαλήθευση ψηφιακής υπογραφής RSA 5.1 Δηµιουργία αποτελέσµατος της συνάρτησης κατακερµατισµού sha1 opessl sha1 out digest.txt plai.txt 5.2 Δηµιουργία ψηφιακής υπογραφής µε sha1 και RSA opessl dgst -sha1 sig testprivatekey.pem out rsasigature.bi plai.txt 5.3 Επαλήθευση ψηφιακής υπογραφής µε SHA-1 και RSA opessl dgst -sha1 verify testpublickey.pem sigature rsasigature.bi plai.txt Διάλεξη 7-8
6 Κρυπτογράφηση και αποκρυπτογράφηση µε RSA 6.1 Κρυπτογράφηση τυχαίου κειµένου opessl rsautl ecrypt pubi ikey testpublickey.pem i plai.txt out cipher.txt 6.2 Αποκρυπτογράφηση κρυπτο-κειµένου opessl rsautl decrypt ikey testprivatekey.pem i cipher.txt out decryptedplai.txt 7 Λίστες Ανάκλησης Πιστοποιητικών (Σηµείωση: πριν ξεκινήσουν οι ασκήσεις, δηµιουργείστε ένα δεύτερο RSA πιστοποιητικό υπογεγραµµένο απο την CA) 7.1 Δηµιουργία Λίστας Ανάκλησης Πιστοποιητικών (χωρίς να έχουν ανακληθεί πιστοποιητικά) opessl ca -gecrl -out crl1.pem -cofig cacf.txt 7.2 Επισκόπηση Λίστας opesslcrl -i crl1.pem text 7.3 Ανάκληση πιστοποιητικού opessl ca -gecrl -revoke sigedcert2.pem -cofig cacf.txt 7.4 Δηµιουργία Λίστας Ανάκλησης Πιστοποιητικών opessl ca -gecrl -out crl2.pem -cofig cacf.txt 7.5 Μετατροπή Λίστας σε DER opessl crl -i crl2.pem -outformder -out crl2.crl 7.6 Έλεγχος κατάστασης πιστοποιητικών opessl ca -status 01 -cofig cacf.txt opessl ca -status 02 -cofig cacf.txt Διάλεξη 7-9
Δηµιουργία RSA πιστοποιητικού για Server Δηµιουργία αίτησης πιστοποίησης προς την Α.Π. ü opesslreq-ew-cofigcacf.txt-odes-keyoutprivate/server.key out req/server.csr -days 365 -md5 odes :δενθακρυπτογραφηθείτοιδιωτικόκλειδι.απαραίτητοσε ορισµένους server. Απαιτείται όµως προστασία των δικαιωµάτων πρόσβασης Επισκόπηση ιδιωτικου κλειδιου server ü Opessl rsa i private/server.key text Υπογραφη αίτησης απο την Α.Π. ü opessl ca cofig CAcf.txt policy policy_aythig -out certs/server.crt -ifiles req/server.csr Επισκόπηση πιστοποιητικου του server ü opessl x509 subject issuer eddate oout i./certs/server.crt Διάλεξη 7-10
Δηµιουργία πιστοποιητικού για Server Πιστοποιητικό Αρχής Πιστοποίησης ü opessl req -ew -x509 -keyout askisi/cakey.pem -out askisi/cacert.pem -days 365 -cofig CAcf.txt -md5 Server certificate ü opessl gersa -des3 -out apache.key 2048 request ü opessl req -ew -key apache.key -out apache.csr opessl ca -cofig CAcf.txt -policy policy_aythig -out certs/apache.crt -ifiles apache.csr Διάλεξη 7-11
Τι είναι το Keytool? Το keytool αποτελεί µια εφαρµογή Java που διαχειρίζεται ένα keystore (αρχείο φύλαξης) των ιδιωτικών κλειδιών και των συνδεόµενων µε αυτά αλυσίδων X.509 πιστοποιητικών τους, επικυρώνοντας τα αντίστοιχα δηµόσια κλειδιά. Επιπλέον το keytool διαχειρίζεται τα πιστοποιητικά από τις έµπιστες οντότητες (trusted etities). Επιτρέπει στους χρήστες να διαχειριστούν τα ζεύγη των δηµόσιων / ιδιωτικών τους κλειδιών και τα συνδεόµενα µε αυτά πιστοποιητικά Το keytool αποθηκεύει τα κλειδιά και τα πιστοποιητικά σε ένα «keystore», το οποίο στην προκαθορισµένη µορφή του είναι ένα αρχείο. Στο keystore αποθηκεύονται και προστατέυονται τα ιδιωτικά κλειδιά ώστε κάθε προσπέλασή τους να απαιτεί την εισαγωγή ενός κωδικού πρόσβασης. Διάλεξη 7-12
Keytool Δηµιουργία ενός keystore και παραγωγή ενός ζεύγους κλειδιών. ü keytool -gekey -alias team_ame ( keystore fileame) -keypass keypassword ü keytool -gekey -alias askisi1 keystore SecurityLab -keypass 010101 Αλλαγή του κωδικού πρόσβασης στο keystore. ü keytool ( keystore fileame) -storepass keystore_password -ew ew_keystore_password Διάλεξη 7-13
Δηµιουργήστε µια αίτηση πιστοποιητικού χρήστη µε τα ακόλουθα χαρακτηριστικά: ü Αλγόριθµος ζεύγους κλειδιών: RSA ü Αλγόριθµος κατακερµατισµού υπογραφής: md5 ü Μέγεθος κλειδιού: 1046 bits ü Coutry: GR ü Provice: Attica ü Locality: Athes ü Orgaizatio: OPA ü Orgaizatioal uit: IT Security Lab ü Commo ame: <κωδικός οµάδας> ü E-mail address: διεύθυνση ενός µέλους της οµάδας ü ü keytool keystore SecurityLab -storepass mystorepass -gekey -alias askisi2 - keypass 020202 keysize 1046 keyalg RSA validity 365 Δηµιουργία αίτησης προς την Αρχή Πιστοποίησης keytool keystore SecurityLab -storepass mystorepass certreq alias askisi2 -file cert_request_askisi2 Εξαγωγή πιστοποιητικού keytool keystore SecurityLab -storepass mystorepass export alias askisi2 -file askisi2_certificate.cer Διάλεξη 7-14
Άσκηση Δηµιουργήστε πιστοποιητικά µε τα προσωπικά σας κάθε φορά χαρακτηριστικά, όπου αυτά ζητούνται, και µε γενικά χαρακτηριστικά τα ακόλουθα: ü Αλγόριθµος ζεύγους κλειδιών: DSA ü Αλγόριθµος κατακερµατισµού υπογραφής: md5 ü Μέγεθος κλειδιού: 2048 bits ü Coutry: GR ü Provice: Attica ü Locality: Athes ü Orgaizatio: AUEB ü Orgaizatioal uit: IT Security Lab ü Commo ame: <κωδικός οµάδας> ü E-mail address: διεύθυνση µέλους της οµάδας για τον οποίο δηµιουργείται το πιστοποιητικό. Διάλεξη 7-15
Εµφάνιση του πλήθους των πιστοποιητικών που βρίσκονται στο keystore. ü keytool ( keystore fileame) -storepass keystore_password -list Εξαγωγή πιστοποιητικού και αποθήκευση του σε ένα αρχείο. ü keytool ( keystore fileame) -storepass keystore_password export alias certificate_alias -file certificate_ame.cer Εµφάνιση του περιεχοµένου του πιστοποιητικού του αρχείου που είχε εξαχθεί από το keystore. ü keytool ( keystore fileame) storepass keystore_password export -pritcert file certificate_ame.cer Διάλεξη 7-16
Διαγραφή πιστοποιητικού από το keystore. ü keytool ( keystore fileame) -storepass keystore_password delete alias certificate_alias Δηµιουργία πιστοποιητικού µε συγκεκριµένες παραµέτρους (RSA - 2048). ü keytool ( keystore fileame) -storepass keystore_password -gekey -alias ewcertificate keypass key_password keysize 2048 keyalg RSA validity 365 Αίτηση έκδοσης πιστοποιητικού από την Αρχή Πιστοποίησης ü keytool ( keystore fileame) -storepass keystore_password certreq alias certificate_alias file cert_request_ame (Το αρχείο που παράγεται αποστέλλεται στην Αρχή Πιστοποίησης) Εισαγωγή πιστοποιητικού στο keystore από ένα αρχείο (πιθανόν αυτό που έχει αποσταλεί από την Αρχή Πιστοποίησης). ü keytool -import -alias certificate_alias file certificate_ame.cer Διάλεξη 7-17
Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής ΠΜΣ στα Πληροφοριακά Συστήματα Κρυπτογραφία και Εφαρμογές Διαλέξεις Ακ. Έτους 2015-2016 Μαρκάκης Ευάγγελος markakis@aueb.gr Ντούσκας Θεόδωρος ttouskas@aueb.gr Διάλεξη 1-18