Γκλίβας Δημήτριος ΑΕΜ ΤΕΙ ΚΑΒΑΛΑΣ Τμήμα Βιομηχανικής Πληροφορικής

Σχετικά έγγραφα
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων.

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο

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

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο. Ψηφιακή Υπογραφή και Αυθεντικοποίηση Μηνύματος

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία

Κεφάλαιο 21. Κρυπτογραφία δημόσιου κλειδιού και πιστοποίηση ταυτότητας μηνυμάτων

Αλγόριθµοι δηµόσιου κλειδιού

κρυπτογραϕία Ψηφιακή ασφάλεια και ιδιωτικότητα Γεώργιος Σπαθούλας Msc Πληροφορική και υπολογιστική βιοιατρική Πανεπιστήμιο Θεσσαλίας

Εφαρμοσμένη Κρυπτογραφία Ι

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές

Συμμετρικά κρυπτοσυστήματα

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. Συναρτήσεις Κατακερματισμού

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Εισαγωγή. Χρήστος Ξενάκης

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Ασύμμετρη Κρυπτογραφία. Χρήστος Ξενάκης

Αυθεντικότητα Μηνυμάτων Συναρτήσεις Hash/MAC

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

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

Συμμετρική Κρυπτογραφία

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

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Διαχείριση Ασφάλειας και Εμπιστοσύνης σε Πολιτισμικά Περιβάλλοντα

Ασφάλεια Πληροφοριακών Συστημάτων

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Κρυπτογραφία. Κρυπτοσυστήματα τμήματος (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

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

Κρυπτογραφία. Κρυπτοσυστήματα πακέτου (Block ciphers) Άρης Παγουρτζής Στάθης Ζάχος Πέτρος Ποτίκας

Δ Εξάμηνο. Κρυπτογραφία: Συμμετρική Κρυπτογράφηση

Εφαρμοσμένη Κρυπτογραφία Ι

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Αλγόριθµοι συµµετρικού κλειδιού

Κεφάλαια 2&21. Συναρτήσεις κατακερματισμού Πιστοποίηση ταυτότητας μηνυμάτων

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή 2. Θεωρία αριθμών Αλγεβρικές δομές 3. Οι κρυπταλγόριθμοι και οι ιδιότητές τους

Εισαγωγή στην Κρυπτολογία 3. Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κωδικός DIΤ114 Σταύρος ΝΙΚΟΛΟΠΟΥΛΟΣ

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων

Εφαρμοσμένη Κρυπτογραφία Ι

Ασφάλεια στο Ηλεκτρονικό Επιχειρείν. ΤΕΙ Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων - Πάτρα Κουτσονίκος Γιάννης

Χρήστος Ξενάκης Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007

Ασφάλεια Πληροφοριακών Συστημάτων

Ασφάλεια Πληροφοριακών Συστηµάτων

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ ΣΤΗΝ ΕΕ

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Freedom of Speech. Κρυπτογραφία και ασφαλής ανταλλαγή πληροφοριών στο Internet

Κρυπτογραφία. Εργαστηριακό μάθημα 1

Ασφάλεια Τηλεπικοινωνιακών Συστημάτων ΣΤΑΥΡΟΣ Ν ΝΙΚΟΛΟΠΟΥΛΟΣ 03 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΡΥΠΤΟΛΟΓΙΑ

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

Ασφάλεια ικτύων (Computer Security)

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

Δίκτυα Υπολογιστών Ενότητα 6: Secure Sockets Layer - SSL

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο

El Gamal Αλγόριθμος. Κώστας Λιμνιώτης Κρυπτογραφία - Εργαστηριακό μάθημα 7 2

Βασικές Έννοιες Κρυπτογραφίας

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΦΑΡΜΟΓΕΣ ΤΗΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ

ΨΗΦΙΑΚΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΓΙΑ ΑΣΦΑΛΗ ΚΑΙ ΠΙΣΤΟΠΟΙΗΜΕΝΗ ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΗΝ ΤΡΑΠΕΖΑ ΤΗΣ ΕΛΛΑΔΟΣ. Οδηγίες προς τις Συνεργαζόμενες Τράπεζες

Cryptography and Network Security Chapter 9. Fifth Edition by William Stallings

Ασφάλεια Πληροφοριακών Συστηµάτων. Αυθεντικότητα Μηνυµάτων 1

Ασφάλεια Ασύρματων & Κινητών Επικοινωνιών

Παύλος Εφραιμίδης. Βασικές Έννοιες Κρυπτογραφίας. Ασφ Υπολ Συστ

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

Στοιχεία Κρυπτογραφίας

Ψηφιακά Πιστοποιητικά Ψηφιακές Υπογραφές

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Κρυπτοαλγόριθμοι. Χρήστος Ξενάκης

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ

Κεφάλαιο 1. Βασικές έννοιες στην κρυπτογραφία

7 ΔΙΑΧΕΙΡΙΣΗ ΚΛΕΙΔΙΩΝ

Hash Functions. μεγεθος h = H(M) ολους. στο μηνυμα. στο συγκεκριμενο hash (one-way property)

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Διαχείριση κλειδιών. Χρήστος Ξενάκης

Threshold Cryptography Algorithms. Εργασία στα πλαίσια του μαθήματος Τεχνολογίες Υπολογιστικού Νέφους

Transcript:

ΤΕΙ ΚΑΒΑΛΑΣ Τμήμα Βιομηχανικής Πληροφορικής Πτυχιακή Εργασία Δημιουργία λογισμικού ανοιχτού κώδικα για τη δημιουργία και επαλήθευση ψηφιακών υπογραφών Γκλίβας Δημήτριος ΑΕΜ 1958

Περιεχόμενα Περιεχόμενα... 1-1 1 Κρυπτογραφία... 1-3 1.1 Ιστορική αναδρομή στην κρυπτογραφία... 1-3 1.2 Βασικές έννοιες της Κρυπτογραφίας... 1-4 1.3 Συμμετρική Κρυπτογραφία (Κρυπτογραφία Μυστικού κλειδιού)... 1-6 1.4 Κρυπτογραφία δημόσιου κλειδιού... 1-8 1.5 Συναρτήσεις κατακερματισμού... 1-11 2 Ψηφιακές Υπογραφές... 2-13 2.1 Τι είναι η ψηφιακή υπογραφή... 2-13 2.2 Απαιτήσεις ορισμοί... 2-14 2.3 Ψηφιακές υπογραφές ασύμμετρης κρυπτογραφίας... 2-15 2.4 Σύστημα ψηφιακής υπογραφής με αυτοανάκτηση... 2-17 2.5 Σύστημα ψηφιακής υπογραφής με παράρτημα... 2-18 3 European Telecommunications Standards Institute (ETSI)... 3-21 4 Ψηφιακά πιστοποιητικά... 4-22 4.1 Εισαγωγή... 4-22 4.2 Διαχείριση Πιστοποιητικών και Αρχές Πιστοποίησης... 4-23 4.3 Το Πιστοποιητικό X.509 και η δομή του... 4-25 5 Υπογραφές XML... 5-31 5.1 Η δομή του XMLDsig... 5-31 5.1.1 Επικύρωση... 5-32 5.1.2 Κανονικοποίσηση XML... 5-32 5.2 Πλεονεκτήματα του XML Dsig... 5-33 5.3 Από το XML Dsig στο XAdES... 5-34 5.3.1 Η δομή του XAdES... 5-35 5.3.2 Η δομή του XAdES-Τ... 5-36 5.3.3 Η δομή του XAdES-C... 5-36 5.3.4 Η δομή του XAdES-Χ... 5-37 5.3.5 Η δομή του XAdES-X-L... 5-38 5.3.6 Η δομή του XAdES-Α... 5-39 6 Η εφαρμογή... 6-40 6.1 Σκοπός της εργασίας:... 6-40

6.2 To γραφικό περιβάλλον της εφαρμογής... 6-41 6.3 Τεχνικές λεπτομέρειες της εφαρμογής... 6-45 6.4 Ανάλυση των κλάσεων... 6-46 7 Βιβλιογραφία... 7-49

1 Κρυπτογραφία 1.1 Ιστορική αναδρομή στην κρυπτογραφία Η κρυπτογραφία ήταν σε χρήση από την αρχαιότητα, και έχει παίξει αποφασιστικό ρόλο για ένα εντυπωσιακά μεγάλο αριθμό στρατιωτικών και μη επιχειρήσεων. Τυπικό παράδειγμα των συστημάτων της εποχής ήταν ο αλγόριθμος αντικατάστασης του Ιούλιου Καίσαρα, στον οποίο κάθε γράμμα του αλφαβήτου κυκλικά μετατοπίζεται τρεις θέσεις, με το Α να αντικαθίσταται από D, το Β από το Ε, και ούτω καθεξής. Συστήματα που βασίζονται σε πιο αυθαίρετες αντικαταστάσεις ήταν σε χρήση από το 1300. Και ενώ οι μέθοδοι για την κρυπτανάλυσή τους, αναπτύχθηκαν το 1400, τα συστήματα αυτά συνέχισαν περιστασιακά να έχουν σοβαρή χρήση μέχρι τις αρχές του 1900. Άλλοι αλγόριθμοι εισήχθησαν το 1500, ιδίως από τον Blaise de Vigenère. Συστηματικές μέθοδοι για την κρυπτανάλυσή τους αναπτύχθηκαν στα μέσα του 1800 και στις αρχές του 1900. Μέχρι τα μέσα του 1800, ωστόσο, κώδικες που βασίζονται σε βιβλία μεταφράσεων ολόκληρες φράσεις ήταν πολύ πιο συνηθισμένοι από αλγόριθμους κρυπτογράφησης, ίσως επειδή οι πιο εξελιγμένοι αλγόριθμοι ήταν δύσκολο να εφαρμοσθούν με το χέρι. Στη δεκαετία του 1920 η ηλεκτρομηχανική τεχνολογία οδήγησε στην ανάπτυξη της μηχανής ρότορα, κατά την οποία μια ακολουθία κρυπτογράφησης με μία εξαιρετικά μεγάλη περίοδο δημιουργείτο από την περιστροφή μιας ακολουθίας από δυσανάλογους ρότορες. Ένα αξιοσημείωτο επίτευγμα της κρυπτανάλυσης ήταν το 1940 το σπάσιμο της γερμανικής μηχανής ρότορα "Αίνιγμα" χρησιμοποιώντας ένα μείγμα από στατιστική ανάλυση και την αυτόματη απαρίθμηση των κλειδιών. Ξεκινώντας τη δεκαετία του 1950, οι ηλεκτρονικές συσκευές ήταν κυρίως αυτές που χρησιμοποιούνται για την κρυπτογραφία. Γραμμικοί καταχωρητές ολίσθησης ανατροφοδότησης και ίσως μη-γραμμικοι φαίνεται να ήταν κοινοί, αν και λίγα είναι γνωστά σχετικά με τα στρατιωτικά κρυπτογραφικά συστήματα μετά τον Δεύτερο Παγκόσμιο Πόλεμο. Το 1977 η αμερικανική κυβέρνηση εισήγαγε στα δεδομένα το πρότυπο κρυπτογράφησης DES, και στη δεκαετία του 1980 αυτό έγινε η κυρίαρχη δύναμη στον αναπτυσσόμενο τομέα της εμπορικής κρυπτογραφίας. Δύο μεγάλες αλλαγές επήλθαν στην κρυπτογραφία στη δεκαετία του 1980. Πρώτον, τα κρυπτογραφικά συστήματα συνήθως άρχισαν να εφαρμόζονται σε λογισμικό και όχι σε ειδικού σκοπού hardware, και έτσι έγιναν πολύ πιο ευρέως διαθέσιμα. Και δεύτερον, μετά την εισαγωγή της κρυπτογραφίας δημόσιου κλειδιού, το 1975, η ιδέα που βασίστηκε όχι σε συστήματα με

πολύπλοκη και φαινομενικά αυθαίρετη κατασκευή, αλλά αντ 'αυτού σε συστήματα που προέρχονται από γνωστά μαθηματικά προβλήματα. Αρχικά διάφορα προβλήματα που εξετάστηκαν, αλλά μετά από λίγο καιρό οι μόνοι που επιβιώνουν ήταν λίγοι, όπως το σύστημα RSA που βασίζεται κυρίως στο πρόβλημα της παραγοντοποίησης ακεραίων. Τα σημερινά, διαθέσιμα στο κοινό κρυπτογραφικά συστήματα, σχεδόν όλα βασίζονται σε παραλλαγές είτε του DES (όπως το IDEA του συστήματος PGP), σε γραμμικούς καταχωρητές ολίσθησης ανάδρασης ή στον RSA. 1.2 Βασικές έννοιες της Κρυπτογραφίας Κρυπτογράφηση είναι η διαδικασία μετατροπής μηνύματος απλού κειμένου (Plaintext) σε μια ροή δεδομένων που μοιάζει μια τυχαία ακολουθία bits χωρίς νόημα (κρυπτογράφημα ή ciphertext). Η διαδικασία μετατροπής του ciphertext πίσω στο plaintext ονομάζεται αποκρυπτογράφηση. Η Κρυπτογραφία ασχολείται με την παραγωγή ασφαλής επικοινωνιών. Η Κρυπτανάλυση ασχολείται με το σπάσιμο κρυπτογραφημάτων, δηλαδή, την ανάκτηση του αρχικού κειμένου χωρίς να γνωρίζει το κλειδί. Κρυπτολογία είναι ένας κλάδος των μαθηματικών που ασχολείται τόσο με την κρυπτογραφία όσο και την κρυπτανάλυση. Ένας κρυπτογραφικός αλγόριθμος, επίσης γνωστός ως cipher, είναι μια μαθηματική συνάρτηση η οποία χρησιμοποιεί απλό κείμενο ως εισροή και παράγει κρυπτογράφημα, και το αντίστροφο. Όλα τα σύγχρονα ciphers χρησιμοποιούν κλειδιά μαζί με το αρχικό κείμενο σαν είσοδο για την παραγωγή του κρυπτογραφήματος. Το ίδιο ή διαφορετικό κλειδί παρέχεται στη συνάρτηση αποκρυπτογράφησης για την ανάκτηση του αρχικού κειμένου από το κρυπτογράφημα. Οι λεπτομέρειες του κρυπτογραφικού αλγόριθμου συνήθως δημοσιοποιούνται. Η ασφάλεια ενός σύγχρονου αλγόριθμου κρυπτογράφησης έγκειται στο κλειδί και όχι στις λεπτομέρειες της κρυπτογράφησης. Συμμετρικοί αλγόριθμοι χρησιμοποιούν το ίδιο κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση. Οι αλγόριθμοι αυτοί απαιτούν ο αποστολέας και παραλήπτης να συμφωνούν σε ένα βασικό κλειδί για να μπορέσουν να ανταλλάσσουν μηνύματα με ασφάλεια. Μερικοί συμμετρικοί αλγόριθμοι λειτουργούν σε 1 bit (ή μερικές φορές 1 byte), του απλού κειμένου σε μια στιγμή. Λέγονται stream ciphers. Άλλοι αλγόριθμοι λειτουργούν σε μπλοκ bit κάθε φορά. Λέγονται block ciphers. Οι

περισσότεροι σύγχρονοι αλγόριθμοι κρυπτογράφησης χρησιμοποιούν το μέγεθος μπλοκ των 64 bits. Οι Αλγόριθμοι δημοσίου κλειδιού (επίσης γνωστοί ως ασύμμετροι αλγόριθμοι) χρησιμοποιούν δύο διαφορετικά κλειδιά (ένα ζεύγος κλειδιών) για την κρυπτογράφηση και την αποκρυπτογράφηση. Τα κλειδιά σε ένα ζεύγος κλειδιών μαθηματικά συνδέονται μεταξύ τους, αλλά είναι υπολογιστικά ανέφικτο να συναγάγει ένα κλειδί από το άλλο. Οι αλγόριθμοι αυτοί καλούνται "δημόσιου κλειδιού" γιατί το κλειδί κρυπτογράφησης μπορεί να δημοσιοποιηθεί. Οποιοσδήποτε μπορεί να χρησιμοποιήσει το δημόσιο κλειδί για να κρυπτογραφήσει ένα μήνυμα, αλλά μόνο ο ιδιοκτήτης του αντίστοιχου ιδιωτικού κλειδιού μπορεί να το αποκρυπτογραφήσει. Οι Συναρτήσεις κατακερματισμού είναι αλγόριθμοι που δεν χρησιμοποιούν κλειδιά και το αποτέλεσμα τους εξαρτάται αποκλειστικά από το αρχικό κείμενο, χαρακτηριστικό τους είναι το σταθερό μήκος της εξόδου. Τα βασικά είδη της Κρυπτογραφίας

1.3 Συμμετρική Κρυπτογραφία (Κρυπτογραφία Μυστικού κλειδιού) Στην Συμμετρική Κρυπτογραφία ένα κλειδί χρησιμοποιείται και για τις δύο διαδικασίες, κρυπτογράφησης και αποκρυπτογράφησης. Όπως φαίνεται στο σχήμα 1Α, ο αποστολέας χρησιμοποιεί το κλειδί (ή κάποιο σύνολο κανόνων) για την κρυπτογράφηση του αρχικού κειμένου plaintext και στέλνει το κρυπτογράφημα στον παραλήπτη. Ο δέκτης εφαρμόζει το ίδιο κλειδί (ή σύνολο κανόνων) για να αποκρυπτογραφήσει το μήνυμα και να ανακτήσει το αρχικό κείμενο. Επειδή ένα ενιαίο κλειδί χρησιμοποιείται και για τις δύο λειτουργίες, η Συμμετρική κρυπτογράφηση καλείται επίσης Κρυπτογραφία Μυστικού κλειδιού. Με αυτή τη μορφή της κρυπτογραφίας, είναι προφανές ότι το κλειδί πρέπει να είναι γνωστό τόσο στον αποστολέα όσο και στον παραλήπτη.αυτό, στην πραγματικότητα, είναι το μυστικό. Η μεγαλύτερη δυσκολία με την προσέγγιση αυτή, βέβαια, είναι η διανομή του κλειδιού. Τα συστήματα κρυπτογραφίας Μυστικού κλειδιού γενικά κατηγοριοποιούνται σε αλγόριθμους κρυπτογράφησης stream (ρεύματος) ή Block (τούβλοκομμάτι). Οι Stream ciphers λειτουργούν σε ένα μόνο bit (byte ή word του υπολογιστή) κάθε φορά και εφαρμόζουν κάποια μορφή μηχανισμού ανατροφοδότησης έτσι ώστε το κλειδί να αλλάζει συνεχώς. Οι block αλγόριθμοι κρυπτογράφησης λέγονται έτσι επειδή το σύστημα κρυπτογραφεί ένα κομμάτι των δεδομένων σε μια χρονική στιγμή χρησιμοποιώντας το ίδιο κλειδί για κάθε μπλοκ. Σε γενικές γραμμές, το ίδιο μπλοκ αρχικού κειμένου θα κρυπτογραφείται στο ίδιο ciphertext όταν χρησιμοποιούν το ίδιο κλειδί σε έναν αλγόριθμο μπλοκ κρυπτογράφησης ενώ το ίδιο αρχικό κείμενο θα κρυπτογραφείται σε διαφορετικά ciphertext σε έναν αλγόριθμο κρυπτογράφησης ρεύματος. Οι Stream ciphers υπάρχουν σε διάφορες μορφές, αλλά δύο αξίζει να αναφερθούν εδώ. Αυτο-συγχρονιζόμενοι αλγόριθμοι κρυπτογράφησης ρεύματος υπολογίζουν κάθε bit του keystream ως συνάρτηση των n προηγούμενων bits n στο keystream. Ονομάζονται "αυτο- συγχρονιζόμενοι " διότι η διαδικασία της αποκρυπτογράφησης μπορεί να μείνει συγχρονισμένη με τη διαδικασία κρυπτογράφησης απλώς, γνωρίζοντας πόσο μακριά στην μήκους n-bit keystream είναι. Ένα πρόβλημα είναι η διάδοση των σφαλμάτων. Ένα αλλοιωμένο bit στη μετάδοση θα έχει ως αποτέλεσμα n αλλοιωμένα bits στη λαμβάνουσα πλευρά. Συγχρονισμένοι αλγόριθμοι κρυπτογράφησης ρεύματος δημιουργούν την keystream με τρόπο ανεξάρτητο από το μήνυμα αλλά χρησιμοποιώντας τον ίδιο τρόπο δημιουργίας keystream σε αποστολέα και παραλήπτη. Ενώ οι αλγόριθμοι ρεύματος δεν πολλαπλασιάζουν τα λάθη μετάδοσης, είναι από τη φύση τους την περιοδικοί και έτσι η keystream τελικά καταλήγει να επαναλαμβάνεται.

Οι Block ciphers μπορούν να λειτουργήσουν με διάφορους τρόπους, οι ακόλουθοι τέσσερεις είναι τα σημαντικότεροι: * Electronic Codebook (ECB) είναι η απλούστερη, πιο προφανής εφαρμογή: το μυστικό κλειδί χρησιμοποιείται για την κρυπτογράφηση των μπλοκ του plaintext για να σχηματίσουν ένα μπλοκ κρυπτογραφημένου κείμενου. Οπότε δύο πανομοιότυπα μπλοκ plaintext, θα δημιουργήσουν πάντα το ίδιο μπλοκ κρυπτογραφημένο. Αν και αυτός είναι ο πιο κοινός τρόπος κρυπταλγόριθμων, είναι ευπαθής σε μια ποικιλία από επιθέσεις ωμής βίας (Brute Force Attack). * Cipher Block Chaining (CBC) προσθέτει ένα μηχανισμό ανάδρασης στο σύστημα κρυπτογράφησης. Στο CBC, το plaintext γίνεται exclusive-or (XOR) με το προηγούμενο κρυπτογραφημένο μπλοκ πριν από την κρυπτογράφηση. Σε αυτή τη λειτουργία, δύο όμοια κομμάτια plaintext ποτέ δεν κρυπτογραφούνται σε ίδιο ciphertext. * Cipher Feedback (CFB) είναι μια εφαρμογή κρυπτογράφησης μπλοκ που μοιάζει με έναν αυτο-συγχρονιζόμενο αλγόριθμο κρυπτογράφησης ρεύματος. Το CFB επιτρέπει στα δεδομένα να κωδικοποιηθούν σε μονάδες μικρότερες από το μέγεθος μπλοκ, που θα μπορούσε να είναι χρήσιμη σε ορισμένες εφαρμογές, όπως η κρυπτογράφηση διαδραστικής εισόδου ενός τερματικού σταθμού. Αν ήμασταν με 1-byte λειτουργία CFB, για παράδειγμα, κάθε εισερχόμενος χαρακτήρας τοποθετείται σε έναν shift register στο ίδιο μέγεθος με το μπλοκ, κρυπτογραφείται, και το μπλοκ διαβιβάζεται. Στη λαμβάνουσα πλευρά, το κρυπτογράφημα αποκρυπτογραφείται και τα επιπλέον bits στο μπλοκ (δηλαδή, τα πάντα πέρα από το ένα byte) απορρίπτονται. * Output Feedback (OFB) είναι μια εφαρμογή κρυπτογράφησης μπλοκ εννοιολογικά παρόμοια με των Συγχρονισμένων αλγόριθμων κρυπτογράφησης ρεύματος. OFB εμποδίζει το ίδιο μπλοκ plaintext να παράγει το ίδιο κρυπτογραφημένο μπλοκ με χρήση ενός εσωτερικού μηχανισμού ανατροφοδότησης που είναι ανεξάρτητος από την σειρά bitsκαι του αρχικού κείμενου αλλά και του κρυπτογραφημένου κείμενου. Αλγόριθμοι κρυπτογράφησης μυστικού κλειδιού που είναι σε χρήση σήμερα: Data Encryption Standard (DES): Το πλέον κοινό από τα συστήματα SKC που χρησιμοποιούνται σήμερα, Ο DES σχεδιάστηκε από την IBM στη δεκαετία του 1970 και εγκρίθηκε από το Εθνικό Γραφείο Προτύπων (National Bureau of Standards -NBS) [τώρα γνωστό ως το Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας (National Institute for Standards and Technology -NIST)] το 1977 για εμπορικές και μη απόρρητες κυβερνητικές εφαρμογές. Ο DES είναι ένας αλγόριθμος μπλοκ κρυπτογράφησης που χρησιμοποιεί κλειδί 56-bit που λειτουργεί σε 64-bit μπλοκ. Ο DES έχει ένα σύνθετο σύνολο κανόνων και μετασχηματισμών που έχουν σχεδιαστεί ειδικά για να παράγεται γρήγορα από hardware εφαρμογές και αργά από εφαρμογές

λογισμικού, αν και το τελευταίο αυτό σημείο είναι όλο και λιγότερο σημαντικό σήμερα, δεδομένου ότι η ταχύτητα των επεξεργαστών υπολογιστών είναι μερικές τάξεις μεγέθους ταχύτερη σήμερα, από ό, τι πριν από είκοσι χρόνια. Η IBM πρότεινε επίσης ένα μήκους 112-bit κλειδί για τον DES, το οποίο απορρίφθηκε τότε από την κυβέρνηση. Η χρήση 112-bit κλειδιών λίφθηκε υπόψη στη δεκαετία του 1990, όμως, η μετατροπή δεν ήταν ποτέ σοβαρά στα υπόψη. Δύο σημαντικές παραλλαγές που ενισχύουν τον DES είναι οι εξής: * Triple-DES (3DES): Μια παραλλαγή του DES που χρησιμοποιεί έως και τρία κλειδιά 56-bit και προβαίνει σε τρία περάσματα κρυπτογράφησης / αποκρυπτογράφησης πάνω στο μπλοκ. Ο 3DES περιγράφεται επίσης στην FIPS 46-3 και είναι ο συνιστώμενος αντικαταστάτης του DES. * DESX: Μια παραλλαγή που επινοήθηκε από τον Ron Rivest. Με το συνδυασμό των 64 επιπλέον bits κλειδιού στο plaintext πριν από την κρυπτογράφηση, αυξάνει αποτελεσματικά το μήκος του κλειδιού σε 120 bits. Advanced Encryption Standard (AES): Το 1997, η NIST ξεκίνησε μια διαδικασία 4-1/2 ετών για την ανάπτυξη ενός νέου ασφαλούς κρυπτογραφικού συστήματος για εφαρμογές της κυβέρνησης των ΗΠΑ. Το αποτέλεσμα, ο Advanced Encryption Standard, έγινε ο επίσημος διάδοχος του DES, το Δεκέμβριο του 2001.Ο AES χρησιμοποιεί ένα σύστημα που ονομάζεται SKC Rijndael, ένα μπλοκ cipher που σχεδιάστηκε από τους Βέλγους κρυπτογράφους Joan Daemen και Vincent Rijmen. Ο αλγόριθμος μπορεί να χρησιμοποιήσει ένα μεταβλητό μήκος μπλοκ και μήκος κλειδιού. Αυτή η προδιαγραφή επιτρέπει οποιονδήποτε συνδυασμό κλειδιών μήκους 128, 192, ή 256 bits και μπλόκς μήκους 128, 192, ή 256 bits.η NIST επέλεξε αρχικά τον Rijndael τον Οκτώβριο του 2000 και η επίσημη έγκριση σύμφωνα με το πρότυπο AES ήρθε τον Δεκέμβριο του 2001. Το FIPS PUB 197 περιγράφει ένα 128-bit μπλοκ αλγόριθμο κρυπτογράφησης με κλειδί 128 -, 192 -, ή 256-bit. 1.4 Κρυπτογραφία δημόσιου κλειδιού Για την κρυπτογραφία δημόσιου κλειδιού έχει ειπωθεί ότι είναι η πιο σημαντική νέα εξέλιξη στην κρυπτογραφία τα τελευταία 300-400 χρόνια. Η σύγχρονη PKC (public key cryptography ) περιγράφηκε για πρώτη φορά στο κοινό από τον καθηγητής του Πανεπιστήμιου Στάνφορντ, Martin Hellman και του μεταπτυχιακού φοιτητή Whitfield Diffie το 1976. Η Εργασία περιέγραφε ένα κρυπτο-σύστημα δυο κλειδιών στο οποίο δύο οντότητες θα μπορούσαν

να συμμετάσχουν σε μια ασφαλή επικοινωνία μέσω μη ασφαλούς καναλιού επικοινωνίας χωρίς να χρειάζεται να μοιράζονται ένα μυστικό κλειδί. Οι PKC εξαρτάται από την ύπαρξη των λεγόμενων μονόδρομων συναρτήσεων, ή μαθηματικών λειτουργιών που είναι εύκολες για τον υπολογιστή ενώ αντίστροφες λειτουργίες τους είναι σχετικά δύσκολο να υπολογιστούν. Για παράδειγμα: Πολλαπλασιασμός εναντίον παραγοντοποίησης : Ας υποθέσουμε ότι σου λέω ότι έχω δύο αριθμούς, 9 και 16, και ότι θέλω να υπολογίσει το γινόμενο, θα σου πάρει ελάχιστο χρόνο για τον υπολογισμό του γινόμενου, 144. Εν αντιθέσει ας υποθέσουμε ότι σου λέω ότι έχω έναν αριθμό, 144, και χρειάζομαι να μου πεις ποιό ζεύγους ακεραίων πολλαπλασιάζονται μεταξύ τους για την απόκτηση αυτού του αριθμού. Εσύ τελικά θα βρεις τη λύση, αλλά ενώ ο υπολογισμός του γινόμενου έλαβε χιλιοστά του δευτερολέπτου, η παραγοντοποίηση θα διαρκέσει περισσότερο, επειδή θα πρέπει πρώτα να βρούμε τα 8 ζευγάρι των ακέραιων παραγόντων και μετά να καθορίσουμε ποιο είναι το σωστό ζευγάρι. Ύψωση σε δύναμη εναντίον λογάριθμου: Ας υποθέσουμε ότι σας λέω ότι θέλω να πάρω τον αριθμό 3 στην 6η δύναμη, και πάλι, είναι εύκολο να υπολογίσεις 3 6 =729. Αλλά αν σας πω ότι έχω τον αριθμό 729 και θέλω να μου πείτε τους δύο ακέραιους αριθμούς που χρησιμοποίησα, Χ και Υ, έτσι ώστε log x 729 = y, θα σας πάρει περισσότερο χρόνο για να βρείτε όλες τις πιθανές λύσεις και να επιλέξετε το ζευγάρι που χρησιμοποίησα. Ενώ τα παραπάνω παραδείγματα είναι ασήμαντα, αντιπροσωπεύουν δύο από τα ζεύγη λειτουργιών που χρησιμοποιούνται στην Κρυπτογραφία δημοσίου κλειδιού. Δηλαδή, την ευκολία του πολλαπλασιασμού και ύψωσης σε δύναμη έναντι της σχετικής δυσκολίας της παραγοντοποίησης και τον υπολογισμό λογαρίθμου, αντίστοιχα. Το μαθηματικό "κόλπο" στην ΚΔΚ είναι να βρεθεί μια καταπακτή στη μονόδρομη συνάρτηση, έτσι ώστε ο αντίστροφος υπολογισμός να γίνει εύκολος δεδομένης της γνώσης κάποιων στοιχείων πληροφορίας. Γενικά Η ΚΔΚ χρησιμοποιεί δύο κλειδιά που σχετίζονται μαθηματικά αλλά αν γνωρίζει το ένα κλειδί δεν επιτρέπει σε κάποιον να προσδιορίσει εύκολα το άλλο. Ένα κλειδί χρησιμοποιείται για την κρυπτογράφηση των plaintext και το άλλο κλειδί χρησιμοποιείται για την αποκρυπτογράφηση του ciphertext. Το σημαντικό σημείο εδώ είναι ότι δεν έχει σημασία ποιο κλειδί εφαρμόζεται πρώτο, αλλά ότι και τα δύο κλειδιά απαιτούνται για να δουλέψει η διαδικασία. Επειδή ένα ζεύγος κλειδιών απαιτούνται, η προσέγγιση αυτή επίσης ονομάζεται ασύμμετρη κρυπτογράφηση.

Στην ΚΔΚ, ένα από τα κλειδιά έχει οριστεί ως το δημόσιο κλειδί και μπορεί να διαδοθεί όσο το θέλει ο ιδιοκτήτης. Το άλλο ορίζεται ως το ιδιωτικό κλειδί και ποτέ δεν αποκαλύπτεται σε τρίτους. Είναι απλό να στείλετε μηνύματα βάσει αυτού του καθεστώτος. Ας υποθέσουμε ότι Αλίκη θέλει να στείλει ένα μήνυμα στον Βασίλη. Η Αλίκη κρυπτογραφεί κάποιες πληροφορίες χρησιμοποιώντας το δημόσιο κλειδί του Βασίλη. Ο Βασίλης αποκρυπτογραφεί το κρυπτογράφημα χρησιμοποιώντας το ιδιωτικό κλειδί του. Η μέθοδος αυτή θα μπορούσε να χρησιμοποιηθεί επίσης για να αποδειχθεί ποιος έστειλε ένα μήνυμα. Η Αλίκη, για παράδειγμα, θα μπορούσε να κρυπτογραφήσει κάποιο κείμενο με το ιδιωτικό κλειδί της, όταν ο Βασίλης αποκρυπτογραφεί χρησιμοποιώντας το δημόσιο κλειδί της Αλίκης, ξέρει ότι η Αλίκη έστειλε το μήνυμα και η Αλίκη δεν μπορεί να αρνηθεί την αποστολή του μηνύματος (μη αποποίηση). Αλγόριθμοι κρυπτογράφησης Δημοσίου κλειδιού που χρησιμοποιούνται σήμερα είναι οι: RSA: Ο πρώτος και ακόμα ο ποιό κοινός αλγόριθμος δημόσιου κλειδιού πείρε το όνομα του από τους τρεις μαθηματικούς του ΜΙΤ, που το ανέπτυξαν - Ronald Rivest, Adi Shamir και Leonard Adleman. Ο RSA χρησιμοποιείται σήμερα σε εκατοντάδες προϊόντα λογισμικού και μπορεί να χρησιμοποιηθεί για την ανταλλαγή κλειδιών, ψηφιακές υπογραφές, ή κρυπτογράφηση μικρών πακέτων δεδομένων. Ο RSA χρησιμοποιεί μεταβλητού μεγέθους μπλοκ κρυπτογράφησης και μεταβλητού μεγέθους κλειδί. Το ζεύγος κλειδιών προέρχεται από έναν πολύ μεγάλο αριθμό, Ν, ο οποίος είναι το γινόμενο δύο πρώτων αριθμών που επιλέγονται σύμφωνα με ειδικούς κανόνες. Αυτοί οι πρώτοι αριθμοί μπορεί να είναι 100 ή περισσότερα ψηφίων, παράγοντας ένα Ν με περίπου διπλάσιο αριθμό ψηφίων, όπως τους πρωταρχικούς παράγοντες. Το δημόσιο κλειδί περιλαμβάνει το Ν και έναν παράγωγο από τους παράγοντες του Ν, ένας εισβολέας δεν μπορεί να προσδιορίσει τους πρωταρχικούς παράγοντες του Ν (και, κατά συνέπεια, το ιδιωτικό κλειδί) από τις πληροφορίες αυτές και μόνο και αυτό είναι που κάνει τον αλγόριθμος RSA τόσο ασφαλή. (Μερικές περιγραφές της ΚΔΚ εσφαλμένα αναφέρουν ότι η ασφάλεια του RSA οφείλεται στη δυσκολία της παραγοντοποίησης για μεγάλους πρώτους αριθμούς. Στην πραγματικότητα, μεγάλο πρώτοι αριθμοί, όπως και οι μικροί πρώτοι αριθμοί, έχουν μόνο δύο παράγοντες!) Η δυνατότητα των υπολογιστών να παραγοντοποιούν μεγάλους αριθμούς, και ως εκ τούτου και να επιτίθενται στον RSA,αυξάνεται γρήγορα και σήμερα μπορεί να βρει τους πρωταρχικούς παράγοντες των αριθμών με περισσότερα από 200 ψηφία. Παρ 'όλα αυτά, αν ένας μεγάλος αριθμός δημιουργείται από δύο πρώτους παράγοντες που είναι περίπου το ίδιο μέγεθος, δεν υπάρχει κανένας γνωστός αλγόριθμος παραγοντοποίησης που να λύνει το πρόβλημα σε ένα εύλογο χρονικό διάστημα. Το 2005 το τεστ παραγοντοποίησης ενός

200-ψήφιου αριθμού πήρε 1,5 χρόνο και πάνω από 50 χρόνια υπολογιστικών χρόνων. Παρ' όλα αυτά, μία υποτιθέμενη προστασία του RSA είναι ότι οι χρήστες μπορούν να αυξήσουν εύκολα το μέγεθος του κλειδιού ώστε να μένει πάντα μπροστά από την καμπύλη επεξεργασίας υπολογιστή. Diffie-Hellman: Μετά την δημοσιοποίηση του RSA ο Diffie και ο Hellman εφεύραν τον δικό τους αλγόριθμο. Ο αλγόριθμος Diffie-Hellman χρησιμοποιείται για ανταλλαγή μυστικών κλειδιών και όχι για αυθεντικοποίηση ή ψηφιακές υπογραφές. 1.5 Συναρτήσεις κατακερματισμού Συναρτήσεις κατακερματισμού, που ονομάζονται επίσης συναρτήσεις μονόδρομης κρυπτογράφησης (Hash function- message digests - one way encryption), είναι αλγόριθμοι που, υπό κάποια έννοια, δεν χρησιμοποιούν κλειδί. Αντ 'αυτού, μία τιμή κατακερματισμού σταθερού μήκους υπολογίζεται με βάση το αρχικό κείμενο με τέτοιο τρόπο που καθιστά αδύνατη την ανάκτηση είτε του περιεχόμενου ή του μήκους του αρχικού κειμένου. Οι συναρτήσεις κατακερματισμού συνήθως χρησιμοποιούνται για να παρέχουν ένα ψηφιακό αποτύπωμα των περιεχομένων ενός αρχείου, το οποίο συχνά χρησιμοποιείται για να εξασφαλισθεί ότι το αρχείο δεν έχει τροποποιηθεί από έναν εισβολέα ή κάποιον ιό. Τα Hash functions χρησιμοποιούνται συνήθως από λειτουργικά συστήματα για την κρυπτογράφηση κωδικών πρόσβασης. Αλγόριθμοι κατακερματισμού που είναι σε κοινή χρήση σήμερα: Message Digest (MD) algorithms: Μια σειρά από byte-oriented αλγόριθμους που παράγουν ένα μήκους 128-bit hash από ένα μήνυμα αυθαίρετου μήκους. MD2 (RFC 1319): Σχεδιασμένος για συστήματα με περιορισμένη μνήμη, όπως είναι οι έξυπνες κάρτες(smart cards). (Ο MD2 έχει υποβιβαστεί στην ιστορική κατάσταση, από το RFC 6149.) MD4 (RFC 1320): Αναπτύχθηκε από τον Rivest και είναι παρόμοιο με τον MD2, αλλά έχει σχεδιαστεί ειδικά για γρήγορη επεξεργασία από λογισμικό. (Ο MD4 έχει υποβιβαστεί στην ιστορική κατάσταση, από το RFC 6150.) MD5 (RFC 1321): Επίσης, αναπτύχθηκε από τον Rivest μετά από πιθανές αδυναμίες που αναφέρθηκαν στον MD4. Αυτή η έκδοση είναι παρόμοια με τον MD4, αλλά είναι πιο αργή, επειδή γίνεται περισσότερη χειραγώγηση στα αρχικά δεδομένα. Ο MD5 έχει υλοποιηθεί σε μεγάλο αριθμό προϊόντων παρότι καταδείχθηκαν αρκετές αδυναμίες στον αλγόριθμο από τον Γερμανό κρυπτογράφο Hans Dobbertin το 1996 («Κρυπτανάλυση της Συμπίεσης MD5 ").

Secure Hash Algorithm (SHA):Ο SHA είναι ένας από μια σειρά συναρτήσεων κατακερματισμού που δημοσίευσε το Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας NIST σαν ένα FIPS) O SHA-1 παράγει ένα hash μήκους 160-bit και δημοσιεύθηκε αρχικά ως FIPS 180-1 και RFC 3174. FIPS 180-2 (γνωστός και ως SHA-2) περιγράφει πέντε αλγόριθμους στο SHS: SHA-1 plus SHA-224, SHA-256, SHA-384 και SHA-512 που μπορούν να παράγουν hash που είναι μήκους 224, 256, 384, ή 512 bits, αντίστοιχα. Οι SHA-224, -256, -384, -512 περιγράφονται επίσης στο RFC 4634. Τα Hash functions μερικές φορές παρερμηνεύονται και κάποιοι υποστηρίζουν ότι δεν υπάρχουν δύο αρχεία μπορούν να έχουν την ίδια τιμή hash. Αυτό στην πραγματικότητα, δεν ευσταθεί. Σκεφτείτε μια συνάρτηση κατακερματισμού που παρέχει μια τιμή κατακερματισμού 128-bit. Υπάρχουν, προφανώς, 2128 πιθανές τιμές hash. Αλλά υπάρχουν πολλά περισσότερα από 2128 αρχεία. Ως εκ τούτου, πρέπει να υπάρχουν πολλά αρχεία - στην πραγματικότητα, πρέπει να υπάρχει ένας άπειρος αριθμός των αρχείων! - που μπορεί να έχει την ίδια τιμή hash 128-bit. Η δυσκολία είναι να βρει κάποιος δύο αρχεία με το ίδιο hash! Αυτό που είναι στην ουσία πολύ δύσκολο, είναι να προσπαθήσουμε να δημιουργήσουμε ένα αρχείο που έχει μια δεδομένη τιμή hash, έτσι ώστε να δημιουργήσουμε μία σύγκρουση (hash value collision). Αυτός είναι ο λόγος που οι συναρτήσεις κατακερματισμού χρησιμοποιείται εκτενώς για την ασφάλεια των πληροφοριών. Δυστυχώς, από ερευνητές, το 2004 διαπιστώθηκε ότι η πρακτική επίθεσης συγκρούσεων θα μπορούσε να δρομολογηθεί στον MD5, τον SHA-1, και σε άλλους αλγόριθμους κατακερματισμού.

2 Ψηφιακές Υπογραφές 2.1 Τι είναι η ψηφιακή υπογραφή Τα σχήματα ψηφιακών υπογραφών επιτρέπουν στον υπογράφων S που έχει ένα δημόσιο κλειδί pk να "υπογράψει" ένα μήνυμα με τέτοιο τρόπο ώστε οποιοσδήποτε ξέρει το pk (και γνωρίζει ότι αυτό το δημόσιο είναι του S) μπορεί να επαληθεύσει ότι το μήνυμα προερχόταν από τον S και δεν έχει τροποποιηθεί με οποιονδήποτε τρόπο. Ως παράδειγμα της τυπικής χρήσης μιας ψηφιακής υπογραφής, έστω μια εταιρεία λογισμικού που θέλει να διαδώσει τα patch λογισμικού mε επικυρωμένο τρόπο: δηλαδή, όταν η εταιρεία χρειάζεται να κυκλοφορήσει ένα patch το λογισμικό πρέπει να είναι δυνατόν για κάποιον από τους πελάτες της να αναγνωρίσει ότι το patch είναι αυθεντικό, και σε ένας κακόβουλος τρίτος δεν πρέπει ποτέ να είναι σε θέση να ξεγελάσει έναν πελάτη να δεχτεί ένα patch που δεν ήταν στην πραγματικότητα από την εταιρεία. Για να το κάνει αυτό, η εταιρεία μπορεί να δημιουργήσει ένα δημόσιο κλειδί PK, μαζί με ένα ιδιωτικό κλειδί sk και στη συνέχεια να διανέμει το pk με ορισμένο αξιόπιστο τρόπο στους πελάτες της, διατηρώντας παράλληλα μυστικό το sk. (Όπως και στην περίπτωση του δημόσιου κλειδιού κρυπτογράφησης, υποθέτουμε ότι αυτή η αρχική κατανομή των δημόσιων κλειδιών εκτελείται σωστά, έτσι ώστε όλοι οι πελάτες έχουν ένα σωστό αντίγραφο του pk. Στο παράδειγμα αυτό τα pk μπορούν να περιληφθούν με το αρχικό λογισμικό που αγοράζεται από ένα πελάτη.όταν κυκλοφορήσει ένα patch m, η εταιρεία μπορεί να υπολογίσει ψηφιακή υπογραφή σ στο m χρησιμοποιώντας το ιδιωτικό κλειδί της sk, και να στείλει το ζευγάρι (μ, σ) σε κάθε πελάτη. Κάθε πελάτης μπορεί να επαληθεύσει την αυθεντικότητα του m ελέγχοντας ότι το σ είναι μια νόμιμη υπογραφή στο m σε σχέση με το δημόσιο κλειδί PK. Το ίδιο δημόσιο κλειδί PK χρησιμοποιείται από όλους τους πελάτες, και έτσι μόνο μία υπογραφή, πρέπει να υπολογίζεται από την εταιρία και αποστέλλονται σε όλους. Ιστορικά στοιχεία: Το 1976, οι Whitfield Diffie και Martin Hellman περιέγραψαν πρώτοι την έννοια της ψηφιακής υπογραφής, αν και πιθανολογούσαν ότι τα συστήματα αυτά υπήρχαν. Λίγο αργότερα, οι Ronald Rivest, Adi Shamir και Len Adleman εφηύραν τον αλγόριθμο RSA, που θα μπορούσε να χρησιμοποιηθεί για την παραγωγή πρωτόγονων ψηφιακών υπογραφών (αν και μόνο ως απόδειξη της ιδέας- υπογραφές απλά μόνο με RSA δεν είναι ασφαλείς). Το πρώτο ευρέως διαφημισμένο πακέτο λογισμικού που να προσφέρει ψηφιακές υπογραφές ήταν το Lotus Notes 1.0, που κυκλοφόρησε το 1989, στο οποίο χρησιμοποιείται ο αλγόριθμος RSA.

Το 1988, οι Shafi Goldwasser, Silvio Micali, και Ronald Rivest έγιναν οι πρώτοι που καθόρισαν αυστηρά τις απαιτήσεις ασφαλείας των συστημάτων ψηφιακών υπογραφών. Περιέγραψαν μια ιεράρχηση των μοντέλων επίθεσης για τα συστήματα υπογραφής, καθώς και παρουσίασαν το GMR σύστημα υπογραφής, το πρώτο που μπορεί να αποδειχθεί ότι αποτρέπει ακόμη και μια υπαρξιακή πλαστογραφία κατ 'επιλογή επίθεσης μηνύματος. 2.2 Απαιτήσεις ορισμοί Η κρυπτογραφία παρέχει τα εργαλεία ώστε να προστατευθούν δύο ή περισσότερα επικοινωνούντα μέλη από αντιπάλους. Οι τρόποι και ευκαιρίες επίθεσης του αντιπάλου καθορίζουν τις απαιτήσεις των μελών για προστασία. Η προστασία με τη σειρά της προσφέρεται στα μέλη με τη μορφή των κρυπτογραφικών υπηρεσιών. Οι ψηφιακές υπογραφές απευθύνονται σε δύο κρυπτογραφικές υπηρεσίες, στην αυθεντικοποίηση και στη μη απάρνηση. Η αυθεντικοποίηση μπορεί να αναφερθεί στην αυθεντικοποίηση της ταυτότητας ενός μέλους, ή στην αυθεντικοποίηση ενός μηνύματος. Η αυθεντικοποίηση παρέχει προστασία από ενεργητικές επιθέσεις, όπου ο αντίπαλος έχει τη δυνατότητα να τροποποιεί ή να επαναμεταδίδει μηνύματα, κατά τέτοιον τρόπο ώστε τα μηνύματα να φαίνονται ότι προέρχονται από κάποια άλλη οντότητα. Η αυθεντικοποίηση παρέχει τη δυνατότητα ανίχνευσης των αυθαίρετων τροποποιήσεων ή επαναμεταδόσεων. Κατά την ίδρυση μιας συνόδου επικοινωνίας όπου απαιτείται η αυθεντικοποίηση των ταυτοτήτων των επικοινωνούντων μελών, το κάθε μέλος αποδεικνύει την ταυτότητά του, προτού αρχίσει η ανταλλαγή πληροφοριών. Η ίδρυση της συνόδου επικοινωνίας συνοδεύεται και από την εδραίωση ενός κλειδιού συνόδου. Σε αυτό το στάδιο ο αντίπαλος επιχειρεί να προσποιηθεί την ταυτότητα ενός ή και των δύο μελών, ώστε να ελέγξει την επιλογή του κλειδιού συνόδου. Η αυθεντικοποίηση των ταυτοτήτων των μελών αποκλείει τον αντίπαλο από μια τέτοια επίθεση. Μια τρίτη απαίτηση είναι η μη απάρνηση. Αυτή η απαίτηση θεωρεί ότι ο αντίπαλος είναι κάποιο από τα (νόμιμα) επικοινωνούντα μέλη. Έστω ότι η Αλίκη και ο Βύρων κλείνουν μια συμφωνία αγοραπωλησίας μετοχών. Η Αλίκη δεσμεύεται να πουλήσει στον Βύρωνα έναν αριθμό μετοχών σε μια ορισμένη τιμή. Αν πέσει η τιμή της μετοχής προτού πραγματοποιηθεί η συναλλαγή, ο Βύρων μπορεί να ισχυρισθεί ότι δε συμφώνησε στην αγορά της μετοχής αυτής. Αν ανέβει η τιμή της μετοχής, η Αλίκη μπορεί να ισχυρισθεί ότι ο Βύρων δε ζήτησε μετοχές, ή μπορεί να μεταβάλλει την ποσότητα και να ισχυρισθεί ότι ο Βύρων ζήτησε λιγότερες μετοχές. Η υπηρεσία της μη απάρνησης προσφέρει αποδείξεις αφενός μεν ότι η Αλίκη δέχεται να πουλήσει έναν ορισμένο αριθμό μετοχών σε μια ορισμένη τιμή

στον Βύρωνα, αφετέρου δε ότι ο Βύρων δέχεται να αγοράσει τον αριθμό των μετοχών στην συμφωνηθείσα τιμή. Η ψηφιακή υπογραφή παρέχει τους μηχανισμούς επίλυσης της αμφισβήτησης της συναλλαγής και μπορεί να γίνει στο βαθμό που η ψηφιακή υπογραφή θα έχει νομική ισχύ. Συνοψίζοντας, οι απαιτήσεις ασφάλειας της ψηφιακής υπογραφής είναι οι εξής: Αυθεντικοποίηση της πηγής του μηνύματος. Μεταξύ δύο επικοινωνούντων μελών, ο παραλήπτης ενός μηνύματος θα πρέπει να έχει τη δυνατότητα να επιβεβαιώσει την ταυτότητα του αποστολέα του μηνύματος. Μη απάρνηση πηγής. Σε περίπτωση που ο αποστολέας αρνηθεί ότι έστειλε το μήνυμα, θα πρέπει ο παραλήπτης του μηνύματος να είναι σε θέση να αποδείξει ότι το μήνυμα στάλθηκε από τον αποστολέα. Μη απάρνηση προορισμού. Σε περίπτωση που ο παραλήπτης αρνηθεί ότι παρέλαβε το μήνυμα, θα πρέπει να υπάρχει δυνατότητα απόδειξης ότι το μήνυμα παραλήφθηκε από τον παραλήπτη. Η αυθεντικοποίηση της πηγής του μηνύματος προστατεύει τον αποστολέα ακόμα και σε περίπτωση που ο παραλήπτης τροποποιήσει το αρχικό μήνυμα του αποστολέα. Η ψηφιακή υπογραφή είναι επιθυμητή όταν δεν υπάρχει πλήρης εμπιστοσύνη μεταξύ του αποστολέα και του παραλήπτη, οπότε απαιτείται κάτι περισσότερο από αυθεντικοποίηση. Η υπηρεσία της μη απάρνησης πηγής συναντάται συχνότερα από τη μη απάρνηση προορισμού, καθώς οι ηλεκτρονικές συναλλαγές ξεκινούν πάντοτε από τον αποστολέα, και τις περισσότερες φορές οι ενέργειες του παραλήπτη γίνονται φανερές και αποδεικνύονται έτσι αυτόματα. Η μη απάρνηση της πηγής απαιτείται για να αποδειχθεί ότι ο παραλήπτης δεν ενήργησε αυθαίρετα χωρίς την αίτηση του αποστολέα. Έτσι η μη απάρνηση προορισμού δεν είναι υποχρεωτική. 2.3 Ψηφιακές υπογραφές ασύμμετρης κρυπτογραφίας Ένα απλό σύστημα ψηφιακής υπογραφής βασισμένο σε ασύμμετρη κρυπτογραφία παρουσιάζεται στο σχήμα 2.1. Το μήνυμα απλά κρυπτογραφείται με το ιδιωτικό κλειδί της Αλίκης και το κρυπτοκείμενο που προκύπτει αποτελεί την ψηφιακή υπογραφή της Αλίκης στο m. Η Αλίκη στέλνει το μήνυμα συνοδευόμενο με την ψηφιακή υπογραφή στον Βύρωνα. Ο Βύρων, ο οποίος κατέχει το δημόσιο κλειδί της Αλίκης, έχει τη δυνατότητα να επαληθεύσει την ψηφιακή υπογραφή, εκτελώντας την

αποκρυπτογράφηση του κρυπτοκειμένου με το δημόσιο κλειδί της Αλίκης και να ελέγξει αν τα δύο μηνύματα συμπίπτουν. Αυτό το απλό σύστημα έχει δύο μειονεκτήματα. Πρώτον, ο όγκος των μηνυμάτων που στέλνονται είναι διπλάσιος του μεγέθους του αρχικού μηνύματος m. Το μέγεθος της υπογραφής είναι μεταβλητό και εξαρτάται από το μέγεθος του μηνύματος. Σε δίκτυα όπου ανταλλάσσονται πολλά και μεγάλα μηνύματα, μπορεί να αυξηθεί απαγορευτικά η κίνηση και να μειωθεί η παραγωγή. Αν και το σύστημα της ψηφιακής υπογραφής ορίζει συνάρτηση υπογραφής η οποία είναι 1 1, δεν υπάρχει προστασία από επίθεση πλαστογραφίας, που είναι το δεύτερο μειονέκτημα του συστήματος. Η συνάρτηση της ψηφιακής υπογραφής είναι η αποκρυπτογράφηση του μηνύματος με το ιδιωτικό κλειδί. Αυτό σημαίνει ότι αν το μήνυμα έχει μεγαλύτερο μέγεθος από το μέγεθος που δέχεται η πράξη αποκρυπτογράφησης, τότε το μήνυμα θα διαιρεθεί σε μικρότερα τμήματα και θα κρυπτογραφηθεί το κάθε τμήμα χωριστά. Στην περίπτωση που ισχύει η ιδιότητα της αντιμετάθεσης στο ασύμμετρο κρυπτοσύστημα, τότε ο Βύρων μπορεί να κατασκευάσει μηνύματα επιλέγοντας και επαναλαμβάνοντας τμήματα του μηνύματος της αρεσκείας του και ταιριάζοντάς τα με τα αντίστοιχα τμήματα της ψηφιακής υπογραφής. Δηλαδή, σε αυτήν την επίθεση ο Βύρων μπορεί να κατασκευάσει έναν αριθμό από (m, s ), από το αρχικό (m, s), έτσι ώστε V A (m, s )=1. Στην περίπτωση που ο Βύρων έχει κάποια γνώση του μηνύματος, μπορεί η Αλίκη να στείλει μόνο την υπογραφή. Έτσι αν για παράδειγμα το μήνυμα είναι γραμμένο στην Ελληνική, ο Βύρων εφαρμόζοντας την πράξη κρυπτογράφησης (που εδώ λειτουργεί ως αποκρυπτογράφηση) με το δημόσιο κλειδί της Αλίκης, μπορεί να εύκολα να διαπιστώσει αν το αποτέλεσμα που προκύπτει είναι Ελληνικά. Η Ελληνική γλώσσα όπως και κάθε φυσική γλώσσα έχει αρκετή περίσσεια, ώστε οποιαδήποτε τροποποίηση της υπογραφής θα έχει σαν αποτέλεσμα η κρυπτογράφησή του να οδηγήσει σε ασυνάρτητες για την Ελληνική γλώσσα λέξεις. Η γνώση του περιεχομένου του μηνύματος από τον παραλήπτη επιτρέπει μια άτυπη

επαλήθευση της υπογραφής. Ένα τέτοιο σύστημα ψηφιακής υπογραφής έχει την ιδιότητα της αυτοανάκτησης (self recovery). 2.4 Σύστημα ψηφιακής υπογραφής με αυτοανάκτηση Σε ένα σύστημα ψηφιακής υπογραφής με αυτοανάκτηση, η περίσσεια της γλώσσας του μηνύματος θα πρέπει να υπάρχει σε τέτοιο βαθμό, ώστε να είναι δυνατή η επαλήθευση της υπογραφής. Συνεπώς, όταν η γλώσσα του μηνύματος δεν έχει περίσσεια (ή όταν αυτή είναι μικρή), θα πρέπει με κάποιον τρόπο να προσθέσουμε περίσσεια. Αυτό θα έχει ως αποτέλεσμα την αύξηση του μεγέθους του μηνύματος. Η κωδικοποίηση των μηνυμάτων στα δίκτυα υπολογιστών συνήθως είναι τέτοια που η περίσσεια είναι ελάχιστη. Μάλιστα, οι αλγόριθμοι συμπίεσης δεδομένων αποβλέπουν στην εξάλειψη της περίσσειας έτσι ώστε το μήνυμα να καταλαμβάνει το μικρότερο δυνατό χώρο για την αποτελεσματική αποθήκευση και μεταφορά. Έτσι από τη μια ένας μηχανικός υπολογιστών επιδιώκει να μειώσει την περίσσεια, ενώ από την άλλη ένας κρυπτογράφος επιθυμεί να εισάγει περίσσεια. Συνεπώς η ισορροπία στην σύγκρουση των ενδιαφερόντων βρίσκεται στο να υπάρχει τόση περίσσεια ώστε να είναι ασφαλές το σύστημα ψηφιακών υπογραφών, όσον αφορά την αξιοπιστία της διαδικασίας επαλήθευσης της υπογραφής. Οι υποψήφιες κρυπτογραφικές συναρτήσεις που χρησιμοποιούνται για να εισάγουν περίσσεια στο σύστημα, δεν είναι άλλες από τις κρυπτογραφικές μονόδρομες hash. Οι ιδιότητες των κρυπτογραφικών μονόδρομων hash τις καθιστούν ιδανικές για να εισάγουν περίσσεια στο μήνυμα. Η περίσσεια εξαρτάται από όλα τα σύμβολα του μηνύματος, έχει σταθερό μέγεθος και είναι ανθεκτική σε συγκρούσεις. Η Αλίκη υπογράφει το μήνυμα m ως εξής. Αρχικά δημιουργεί μια σύνοψη του μηνύματος με τη βοήθεια της κρυπτογραφικής μονόδρομης hash h( ). Στη συνέχεια προσθέτει στο τέλος του μηνύματος m τη σύνοψη h(m) και

τροφοδοτεί το συνδυασμό m h(m) στη συνάρτηση υπογραφής S A ( ). Η συνάρτηση υπογραφής αποτελείται από την κρυπτογραφική πράξη της αποκρυπτογράφησης με το ιδιωτικό κλειδί της Αλίκης k da. Εδώ η αποκρυπτογράφηση είναι στην πραγματικότητα πράξη κρυπτογράφησης, αλλά για λόγους τυποποίησης δεχόμαστε ότι η κρυπτογραφική πράξη με το ιδιωτικό κλειδί θεωρείται αποκρυπτογράφηση και μπορεί να γίνει μόνον από τον κάτοχο του ιδιωτικού κλειδιού, σε αντίθεση με την πράξη κρυπτογράφησης που μπορεί να γίνει από όλους που έχουν στην κατοχή τους το δημόσιο κλειδί. Ο Βύρων, μόλις λάβει την υπογραφή, την κρυπτογραφεί εφαρμόζοντας το δημόσιο κλειδί της Αλίκης προκειμένου να ανακτήσει τα δύο τμήματα, το μήνυμα και τη σύνοψη. Στη συνέχεια, υπολογίζει τη σύνοψη του πρώτου τμήματος που αντιστοιχεί στο αρχικό μήνυμα και ελέγχει αν αυτή είναι ίση με τη σύνοψη που έστειλε η Αλίκη. Αν οι δύο συνόψεις είναι ίσες, τότε η υπογραφή είναι έγκυρη. Η επιλογή της συνάρτησης hash είναι κρίσιμη όσον αφορά την ασφάλεια του συστήματος ψηφιακής υπογραφής με αυτοανάκτηση. Επειδή το μήνυμα είναι μέρος της υπογραφής, η μονόδρομη hash θα πρέπει να έχει ασθενή αντίσταση σε συγκρούσεις. Το σύστημα είναι ασφαλές σε επίθεση πλαστογραφίας, ακόμα και αν το ασύμμετρο κρυπτοσύστημα που χρησιμοποιείται διατηρεί την ιδιότητα της αντιμετάθεσης. Σε μια συνάρτηση hash η οποία έχει ασθενή αντίσταση σε συγκρούσεις, δεν ισχύει η αντιμεταθετικότητα, επομένως η σύνοψη ενός πλαστού μηνύματος το οποίο προκύπτει από την αντιμετάθεση των τμημάτων του αρχικού μηνύματος θα είναι διαφορετική από τη σύνοψη του αρχικού μηνύματος. 2.5 Σύστημα ψηφιακής υπογραφής με παράρτημα Το παραπάνω σύστημα ψηφιακής υπογραφής με αυτοανάκτηση έχει το μειονέκτημα ότι το μέγεθος της ψηφιακής υπογραφής δεν είναι σταθερό και εξαρτάται από το μέγεθος του αρχικού μηνύματος. Αυτό έχει ως αποτέλεσμα την αύξηση της ανάγκης για επεξεργασία του μηνύματος. Είναι κοινή πρακτική οι πράξεις στις οποίες εμπλέκεται ασύμμετρη κρυπτογραφία, να είναι όσο το δυνατόν περιορισμένες. Η ασύμμετρη κρυπτογραφία είναι αρκετές τάξεις μεγέθους πιο αργή από τη συμμετρική κρυπτογραφία. Η κρυπτογράφηση (ή αποκρυπτογράφηση) ενός μηνύματος με ασύμμετρη κρυπτογραφία θα πρέπει συστηματικά να αποφεύγεται για καθαρά πρακτικούς λόγους.

Με βάση τα παραπάνω, ορίζεται το σύστημα ψηφιακής υπογραφής με παράρτημα. Επειδή ο στόχος της ψηφιακής υπογραφής είναι η αυθεντικοποίηση και όχι η εμπιστευτικότητα, η ασύμμετρη κρυπτογραφία είναι προτιμότερο να αποδεσμευτεί από το μήνυμα. Έτσι, η αποκρυπτογράφηση κατά τη διαδικασία της δημιουργίας της ψηφιακής υπογραφής περιορίζεται στη σύνοψη του μηνύματος. Ο ξεχωριστός χειρισμός της σύνοψης από το μήνυμα έχει σαν αποτέλεσμα να στέλνονται δύο ανεξάρτητα τμήματα, το αρχικό μήνυμα το οποίο δεν έχει υποστεί κανέναν μετασχηματισμό, και η ψηφιακή υπογραφή που συνήθως ακολουθεί το μήνυμα. Ο όρος «παράρτημα» οφείλεται στην προσκόλληση της ψηφιακής υπογραφής στο τέλος του μηνύματος, ως ανεξάρτητο αντικείμενο. Η ασφάλεια του συστήματος ψηφιακής υπογραφής με παράρτημα είναι συγκρίσιμη με αυτήν του συστήματος ψηφιακής υπογραφής με αυτοανάκτηση. Επειδή όμως ο αντίπαλος έχει πρόσβαση σε περισσότερα μηνύματα, η συνάρτηση hash θα πρέπει να παρουσιάζει ισχυρή αντίσταση σε συγκρούσεις. Στην περίπτωση του συστήματος της ψηφιακής υπογραφής με αυτοανάκτηση, ο αριθμός των μηνυμάτων που μπορεί να κατασκευάσει ο αντίπαλος καθορίζεται από το συνδυασμό των τμημάτων του αρχικού μηνύματος. Αντίθετα στην περίπτωση του συστήματος ψηφιακής υπογραφής με παράρτημα, ο αντίπαλος έχει ολόκληρο το σύνολο των μηνυμάτων στη διάθεσή του. Στην περίπτωση που απαιτείται εμπιστευτικότητα, το μήνυμα m κρυπτογραφείται είτε με το ιδιωτικό κλειδί του Βύρωνα, είτε με συμμετρικό κλειδί συνόδου. Αν η επικοινωνία μεταξύ της Αλίκης και του Βύρωνα είναι συχνή ή περιλαμβάνει μεγάλα μηνύματα, τότε προτιμάται η χρήση συμμετρικής κρυπτογραφίας για να κρυπτογραφηθεί το μήνυμα, για λόγους ταχύτητας.

Υπάρχουν δύο συνδυασμοί για την κρυπτογράφηση και την εφαρμογή ψηφιακής υπογραφής: κρυπτογράφηση του μηνύματος με το συμμετρικό κλειδί συνόδου και στη συνέχεια υπογραφή του κρυπτοκειμένου, υπογραφή του (απλού κειμένου) μηνύματος και στη συνέχεια κρυπτογράφηση του μηνύματος. Από τις δύο εναλλακτικές, η πρώτη δεν προτιμάται για δύο βασικούς λόγους. Η ψηφιακή υπογραφή του κρυπτοκειμένου εισάγει και τη μεταβλητή του μυστικού κλειδιού συνόδου. Έτσι, ο Βύρων θα μπορούσε να αποκρυπτογραφήσει το κρυπτοκείμενο με κάποιο άλλο κλειδί και να ισχυρισθεί ότι το απλό κείμενο που προκύπτει είναι το μήνυμα το οποίο έστειλε η Αλίκη. Με άλλα λόγια, η ψηφιακή υπογραφή της Αλίκης είναι έγκυρη για 2 n μηνύματα, όπου n το μέγεθος του μυστικού κλειδιού συνόδου σε bits. Έτσι, ο Βύρων έχει τη δυνατότητα να πραγματοποιήσει επιλεκτική πλαστογραφία. Το πρόβλημα μπορεί να λυθεί αν η Αλίκη συμπεριλάβει στο μήνυμα και το μυστικό κλειδί και το υπογράψει. Όμως σε έναν τέτοιο διακανονισμό, ο κίνδυνος αποκάλυψης του κλειδιού σε τρίτους είναι μεγάλος και μπορεί να δημιουργήσει προβλήματα ασφάλειας, αν το κλειδί αυτό χρησιμοποιείται για περαιτέρω επικοινωνία μεταξύ της Αλίκης και του Βύρωνα. Ο δεύτερος λόγος είναι καθαρά δεοντολογικός. Η ενέργεια της υπογραφής υποδεικνύει γνώση του περιεχομένου που υπογράφεται. Η ψηφιακή υπογραφή σε κάποιο κρυπτοκείμενο δε στηρίζει την έννοια της υπογραφής, αφού η Αλίκη δε γνωρίζει άμεσα τι υπογράφει.

3 European Telecommunications Standards Institute (ETSI) Τί είναι το ETSI Το Ευρωπαϊκό Ινστιτούτο Τηλεπικοινωνιακών Προτύπων (ETSI) είναι ένας μη κερδοσκοπικός οργανισμός που καθορίζει πρότυπα τηλεπικοινωνιών στην Ευρώπη. Οι κατευθυντήριες γραμμές του ETSI είναι εθελοντικές και σχεδόν πάντα συμμορφώνονται με τα πρότυπα που παράγονται από τους διεθνείς οργανισμούς. Οι πρωτοβουλίες του ETSI αγγίζουν τους ακόλουθους τομείς: aeronautical radio, API, ATM, electromagnetic compatibility, electronic signature, Generic Addressing and Transport protocol, maritime radio, service provider access, Telecommunications Management Network (TMN), TETRA, VoIP, και το xdsl. Η διάρθρωση του ETSI περιλαμβάνει μια γενική συνέλευση, το διοικητικό συμβούλιο, ένας οργανισμός τεχνικής φύσης, καθώς και μία γραμματεία. Η τεχνική οργάνωσή του έχει την κύρια ευθύνη για την κατάρτιση των προτύπων. Το ETSI έχει την έδρα του στη νότια Γαλλία. Σήμερα αριθμεί 789 μέλη από 52 χώρες και πέντε ηπείρους. Ο κατάλογος των μελών της συμπεριλαμβάνει μερικά από τα μεγαλύτερα ονόματα στον τομέα της τεχνολογίας, όπως οι IBM Europe, Microsoft Europe, η Hewlett-Packard France, η Motorola, και η Lucent Technologies. Η συμμετοχή είναι ανοικτή σε κάθε εταιρεία που ενδιαφέρεται για ευρωπαϊκές τηλεπικοινωνίες. Κάθε μέλος καταβάλλει ετήσιο τέλος για να μπει στο ETSI. Το XAdES σύμφωνα με το ETSI Το ETSI έχει εκδώσει αρκετά πρότυπα για το XAdES τα τελευταία χρόνια και συνεχίζει να εκδίδει, παρακάτω αναφέρονται τα τελευταία από αυτά και οι ημερομηνίες έκδοσής τους. ETSI TS 101 903 XAdES version 1.1.1 from 2002-02-12 ETSI TS 101 903 XAdES version 1.2.2 from 2004-04-02 ETSI TS 101 903 XAdES version 1.3.2 from 2006-03-07 ETSI TS 101 903 XAdES version 1.4.1 from 2009-06-15 ETSI TS 101 903 V1.2.2 Technical Specification, XSD and DTD ETSI TS 101 903 V1.3.2 XSD and DTD ETSI TS 101 903 V1.4.1 XSD Μέσα στα πρότυπα αυτά, αναλύονται διεξοδικά όλες οι λεπτομέρειες αναφορικά με το XAdES, τον τρόπο παραγωγής υπογραφών και επαλήθευσής τους.

4 Ψηφιακά πιστοποιητικά 4.1 Εισαγωγή Μερικές φορές πρέπει να είμαστε βέβαιοι για την ταυτότητα του προσώπου που επικοινωνούμε. Αυτή η πρόταση ισχύει για μεμονωμένες συναντήσεις, καθώς και για την ανταλλαγή δεδομένων. Αν κάποιος που δεν ξέρετε έρχεται σε σας και λέει ότι είναι αξιόπιστος παράγοντας τράπεζα και θέλει να σας προσφέρει διαπραγμάτευση για ευνοϊκούς όρους, δεν θα έχετε εμπιστοσύνη στα λεγόμενά του. Θα απαιτήσετε να δείξει τα διαπιστευτήριά του, επιπλέον, θα προσπαθήσετε να ελέγξετε την εν λόγω τράπεζα όσο είναι δυνατό και θα χρησιμοποιήσετε τις δικές σας αξιόπιστες πηγές πληροφοριών. Επομένως, γιατί πρέπει να έχετε εμπιστοσύνη σε αυτά που λέει κάποιος με τον οποίο επικοινωνείτε μέσω του δικτύου; Τα ψηφιακά πιστοποιητικά χρησιμοποιούνται προκειμένου να αποφευχθούν τέτοιου είδους καταστάσεις. Επιτρέπουν την αναγνώριση προσώπων ή εταιρειών. Επιπλέον, τα ψηφιακά πιστοποιητικά επιτρέπουν τη μετάδοση κρυπτογραφημένων δεδομένων με βεβαιότητα ότι μπορούν να διαβαστούν μόνο από πρόσωπο στο οποίο απευθύνονται. Δύο είναι οι μέθοδοι κρυπτογράφησης που χρησιμοποιούνται σήμερα: συμμετρική κρυπτογραφία και κρυπτογραφία δημόσιου κλειδιού. Συμμετρική κρυπτογράφηση σημαίνει ότι ένα μυστικό κλειδί χρησιμοποιείται για κρυπτογράφηση δεδομένων και στη συνέχεια το ίδιο κλειδί χρησιμοποιείται για την αποκρυπτογράφηση. Μερικά προβλήματα ανακύπτουν στην περίπτωση αυτή, όπως είναι η ασφαλής μεταφορά κλειδιών, πολλά κλειδιά πρέπει να αποθηκεύονται σε ασφαλές μέρος και να είναι εύκολα προσβάσιμα ανά πάσα στιγμή για τον ιδιοκτήτη. Κρυπτογραφία δημόσιου κλειδιού σημαίνει ότι χρησιμοποιείται ζεύγος κλειδιών: το ιδιωτικό κλειδί και το δημόσιο κλειδί. Αυτά τα δύο κλειδιά που σχετίζονται με μαθηματική έκφραση, έτσι ώστε τα στοιχεία κρυπτογραφούνται με ένα κλειδί από το ζευγάρι μπορεί να αποκρυπτογραφηθούν μόνο με το δεύτερο. Δεν υπάρχει καμία ανάγκη για τη μεταφορά κλειδιών στην υπόθεση αυτή. Επιπλέον, θα πρέπει να φροντίσετε για ένα μόνο κλειδί ασφαλείας. Στη συνέχεια, όμως εμφανίζεται το επόμενο πρόβλημα. Ας υποθέσουμε ότι έχετε το μήνυμα που υπεγράφη με το ιδιωτικό κλειδί του αποστολέα. Μπορείτε πραγματικά να εμπιστευτείτε αυτές τις πληροφορίες; Όπως αποδεικνύεται, όχι εντελώς. Μόνο ένα πράγμα μπορεί να είναι εγγυημένο σε αυτή την κατάσταση. Μπορείτε να είστε βέβαιοι ότι το μήνυμα και το δημόσιο κλειδί προήλθε από το ένα μέρος, αλλά δεν μπορείτε να ξέρετε τι ποιο ακριβώς είναι το μέρος αυτό. Ας υποθέσουμε ότι η Alice σας στείλει το δημόσιο κλειδί της, αλλά ο Bob το αντικατέστησε με το δικό του. Στη συνέχεια, ο Bob σας στέλνει μήνυμα σαν να ήταν η Alice. Σε αυτή την περίπτωση δεν μπορείτε να διαπιστώσετε ότι το μήνυμα πραγματικά γράφτηκε από τον Bob γιατί νομίζετε ότι το δημόσιο κλειδί του είναι τηςalice.

Είναι απαραίτητο να έχετε τη δυνατότητα να ανακαλύψετε ότι αποστολέας είναι αυτός που λέει οτι είναι. Πώς μπορείτε να το κάνετε αν δεν μπορείτε να πάρετε το δημόσιο κλειδί από τον ιδιοκτήτη του άμεσα; Σε αυτή την περίπτωση επεμβαίνουν τα πιστοποιητικά, καθώς ο κύριος σκοπός τους είναι να επιβεβαιώσουν ότι το δημόσιο κλειδί ανήκει στον ιδιοκτήτη του. Το πιστοποιητικό περιέχει πληροφορίες σχετικά με το άτομο ή τον οργανισμό στον οποίο ανήκει, το δημόσιο κλειδί, πληροφορίες για τον εκδότη του πιστοποιητικού, τις προθεσμίες, όταν το πιστοποιητικό αυτό μπορεί να χρησιμοποιηθεί και τις πράξεις για τις οποίες μπορεί να χρησιμοποιηθεί. Το ιδιωτικό κλειδί δεν αποτελεί μέρος του πιστοποιητικού. Σε αντίθεση με το πιστοποιητικό, το ιδιωτικό κλειδί δεν είναι δημόσιο και είναι ένα στοιχείο που θα πρέπει να αποθηκεύσετε στο πιο ασφαλές μέρος. Να θυμάστε ότι το ένα χωρίς το άλλο δεν έχει καμία χρήση. Υπάρχουν πολλές διαφορετικές μορφές πιστοποιητικών που χρησιμοποιούνται. Ένα από τα πιο χρησιμοποιούμενα είναι το X.509. Αυτός ο τύπος τους επιτρέπει την χρήση των πιστοποιητικών για διάφορους σκοπούς, λόγω της ευρείας διανομής και πολλών επεκτάσεων. Το πιστοποιητικό αυτό μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση, την υπογραφή μηνυμάτων, για επαλήθευση υπογραφής, σαν προσθήκη ή αντικατάσταση του συστήματος κωδικών, ενώ πρόσβαση σε πόρους, επιπλέον τέτοια πιστοποιητικά χρησιμοποιούνται από το πρωτόκολλο SSL. Κάθε πιστοποιητικό περιέχει ορισμένα υποχρεωτικά και κάποια προαιρετικά πεδία. Για να κατανοήσετε τις λειτουργίες ορισμένων από αυτά τα πεδία θα πρέπει να εξοικειωθείτε με την έννοια Αρχή Πιστοποίησης και της τεχνολογίας έκδοσης πιστοποιητικών. 4.2 Διαχείριση Πιστοποιητικών και Αρχές Πιστοποίησης Η δημιουργία πιστοποιητικών ονομάζεται issuing (έκδοση). Οι οργανισμοί που εκδίδουν πιστοποιητικά ονομάζονται Αρχές έκδοσης πιστοποιητικών ή Αρχές Πιστοποίησης (Certificate Authorities -CA). Το πρόσωπο ή οργανισμός στον οποίο το πιστοποιητικό έχει δοθεί (για τις οποίες έχει εκδοθεί) καλείται Υποκείμενο (Subject). Το πιστοποιητικό ισχύει για κάποιο χρονικό διάστημα. Εάν το πιστοποιητικό χρησιμοποιείται έξω από αυτή τη χρονική περίοδο, είναι είτε «όχι ακόμη έγκυρο" ή "λήξει". Κατά την έκδοση του πιστοποιητικού, η αρχή υπογράφει το πιστοποιητικό, και η υπογραφή αυτής της αρχής έκδοσης πιστοποιητικών μπαίνει στο πιστοποιητικό. Η Αρχή έκδοσης πιστοποιητικών μπορεί να ισχυριστεί ότι το πιστοποιητικό δεν ισχύει πια, σε ορισμένες περιπτώσεις. Για παράδειγμα, όταν έχει την επιφύλαξη ότι το ιδιωτικό κλειδί του πιστοποιητικού είχε κλαπεί. Μια άλλη

περίπτωση είναι όταν το ιδιωτικό κλειδί της αρχής έκδοσης πιστοποιητικών έχει γίνει γνωστός σε τρίτους και η υπογραφή δεν προσδιορίζει αυθεντικότητα πια. Το πιστοποιητικό αυτό ονομάζεται ανακλημένο (revoked). Η Αρχή έκδοσης πιστοποιητικών διατηρεί τον κατάλογο των revoked πιστοποιητικών και κάθε πιστοποιητικό μπορεί να περιέχει τη διεύθυνση (URI) της λίστας ανάκλησης πιστοποιητικών(certificate revocation list-crl). Μπορούν να υπάρξουν διάφοροι τύπου CA. Αν χρησιμοποιούν τα πιστοποιητικά για κάποιο n-tier λύση λογισμικού (για σκοπούς επαλήθευσης / ασφάλειας), τα πιστοποιητικά πιθανότατα θα παράγονται από το server τμήμα του λογισμικού. Στην περίπτωση αυτή, ο χρήστης του τμήματος server θα λειτουργήσει ως Αρχή Πιστοποίησης. Αν το πιστοποιητικό εκδίδεται από κάποια οργάνωση για την ίδια (δηλαδή η CA είναι το Υποκείμενο), το πιστοποιητικό ονομάζεται αυτο-υπογεγραμμένο (selfsigned). Αν η ανταλλαγή δεδομένων, στην οποία συμμετέχουν τα πιστοποιητικά, είναι δημόσια (δηλαδή περισσότερες από μία οργάνωσεις συμμετέχουν στη διαδικασία) τα self-signed πιστοποιητηκά, αποτελούν διακινδύνευση της ασφάλειας. Η πλευρά η οποία λαμβάνει το πιστοποιητικό κατά τη διάρκεια της συνόδου ανταλλαγής δεδομένων, δεν μπορεί να επαληθεύσει αξιόπιστα την ταυτότητα της άλλης πλευράς αν δεν υπάρξει κάποια αποθήκη, η οποία μπορεί να επιβεβαιώσει την ταυτότητα της εν λόγω άλλης πλευράς. Αρχές Πιστοποίησης οι ίδιες είναι καλές αποθήκες. Υπάρχουν διάφορες εμπορικές οργανώσεις που εκδίδουν και να διαχειρίζονται πιστοποιητικά (περισσότερες από αυτές είναι θυγατρικές της εταιρείας VeriSign). Ενεργούν ως αποθήκες πιστοποιητικών και η αυθεντικότητά τους είναι γνωστή στο ευρύ κοινό. Αρχές Πιστοποίησης που εκδίδουν δημόσια πιστοποιητικά, συνήθως απαιτούν από το πρόσωπο, που ζητά το πιστοποιητικό, να αποδείξει την ταυτότητά του δίνοντας συνήθη έγγραφα (διαβατήριο, κ.λ.π. άδεια οδήγησης). Ένας άλλος τύπος δημόσιας δραστηριότητας που περιλαμβάνει πιστοποιητικά είναι η ηλεκτρονική υπογραφή εγγράφων ή η κρυπτογράφηση. Σε αυτή την περίπτωση υπάρχει ένα μέρος που υπογράφει / κρυπτογραφεί τα δεδομένα, καθώς και κάποιος αριθμός άλλων που παίρνουν τις πληροφορίες και πρέπει να τις ελέγξουν για την ισχύ τους. Όταν η μία πλευρά της συνόδου ανταλλαγής δεδομένων λαμβάνει το πιστοποιητικό της άλλης πλευράς, υποτίθεται ότι κάνει επικύρωση του πιστοποιητικού, δηλαδή, ελέγχει τα εξής: * Η Ακεραιότητα του Πιστοποιητικού δεν πρέπει να έχει καταστραφεί. Κάθε πιστοποιητικό περιέχει τα δεδομένα που μπορούν να χρησιμοποιηθούν για τον έλεγχο της ακεραιότητας του. Πληροφορίες από κατεστραμμένο πιστοποιητικό δεν μπορούν να χρησιμοποιηθούν. * Εάν το πιστοποιητικό δεν είναι self-signed, η γνησιότητα της CA θα

πρέπει να επαληθεύεται. Αυτό γίνεται με την εξέταση του πιστοποιητικόυ αυτής της CA στο αποθετήριο(repository). To Αποθετήριο μπορεί να είναι τοπικά στην εφαρμογή που επικυρώνει το πιστοποιητικό (για παράδειγμα το Windows 32 API παρέχει API για την πρόσβαση σε ενσωματωμένη αποθήκη πιστοποιητικών Windows). Άλλου είδους αποθήκες μπορούν να χρησιμοποιηθούν. *Το χρονικό διάστημα Ισχύς πιστοποιητικού (validity time period) πρέπει να αντιστοιχεί με την ώρα υπογραφής/κρυπτογράφησης των δεδομένων. Δεν πρέπει να χρησιμοποιούνται πιστοποιητικά που έχουν λήξει ή δεν είναι ακόμη έγκυρα για υπογραφή ή κρυπτογράφηση δεδομένων. * Το πιστοποιητικό δεν πρέπει να περιέχεται σε λίστα ανάκλησης πιστοποιητικών. Όπως αναφέρθηκε, κάθε πιστοποιητικό μπορεί να περιέχει αναφορά στην λίστα ανάκλησης πιστοποιητικών. Η πλευρά που επικυρώνει θα πρέπει να ελέγξει τη λίστα αν η αναφορά είναι παρούσα. Εάν το πιστοποιητικό δεν είναιs elf-signed, και δεν υπάρχει καμία αναφορά για λίστα ανάκλησης πιστοποιητικών σε αυτό, είναι δυνατόν να ελέγξει το πιστοποιητικό του CA για την αναφορά και να χρησιμοποιήσει αυτή. * (Προαιρετικά). Ο σκοπός του πιστοποιητικού πρέπει να αντιστοιχεί στα μέτρα που πιστοποιούνται. Κάθε πιστοποιητικό μπορεί να έχει μια λίστα με τους σκοπούς, για τους οποίους εφαρμόζεται. Συνήθως, το πιστοποιητικό ισχύει μόνο εάν ισχύουν όλες οι παραπάνω προϋποθέσεις. Εάν κάποια από τις συνθήκες είναι ψευδής, η πηγή των δεδομένων μπορεί να μην είναι πλήρως αξιόπιστη. 4.3 Το Πιστοποιητικό X.509 και η δομή του Το X.509 αρχικά εκδόθηκε στις 3 Ιουλίου 1988 και ξεκίνησε σε συνεργασία με το πρότυπο X.500. Υποθέτει ένα αυστηρό ιεραρχικό σύστημα αρχών πιστοποίησης για την έκδοση των πιστοποιητικών. Αυτό έρχεται σε αντίθεση το μοντέλο του ιστού της εμπιστοσύνης, όπως το PGP, όπου ο καθένας (όχι απλά συγκεκριμένες CA) μπορεί να υπογράψει και, επομένως, να πιστοποιήσει την εγκυρότητα των πιστοποιητικών άλλων. Η έκδοση 3 του X.509 περιλαμβάνει την ευελιξία για να στηρίξουν άλλες τοπολογίες όπως bridges και meshes (RFC 4158). Μπορεί να χρησιμοποιηθεί σε ένα peer-topeer, σαν το OpenPGP Web of Trust, αλλά σπάνια χρησιμοποιούνται με αυτόν τον τρόπο από το 2004. Στην πραγματικότητα, ο όρος πιστοποιητικό X.509 συνήθως αναφέρεται στο PKIX Certificate της IETF και στο CRL Profile του X.509 v3, όπως ορίζεται στο RFC 5280, που συνήθως αναφέρεται ως PKIX για την Υποδομή Δημοσίου Κλειδιού (X.509).

Όπως προαναφέρθηκε το X.509 είναι το πιο κοινό είδος πιστοποιητικού στην αγορά. Η δομή του αναλύεται παρακάτω. Το πρότυπο X.509 ορίζει τα ακόλουθα τμήματα δεδομένων που συμπεριλαμβάνονται στο πιστοποιητικό: Έκδοση. Αυτή είναι η έκδοση της μορφής πιστοποιητικού. Σήμερα μπορεί να είναι 1, 2 και 3. Αύξοντας αριθμός Πιστοποιητικού. Αναγνωριστικό αλγόριθμου Υπογραφής, το οποίο προσδιορίζει τον αλγόριθμο που χρησιμοποιείται για να υπογραφεί το πιστοποιητικό και τις παραμέτρους για τον αλγόριθμο. Το όνομα Εκδότριας. Αυτό είναι το όνομα της εταιρείας που εξέδωσε (που παρήγαγε και υπέγραψε) το πιστοποιητικό. Περίοδος ισχύος. Αυτό το πεδίο καθορίζει τη διάρκεια της ζωής του πιστοποιητικού. Όνομα Υποκειμένου. Το πεδίο αυτό περιέχει το όνομα του προσώπου / της εταιρείας, στην οποία εκδίδεται το πιστοποιητικό. πληροφορίες δημοσίου κλειδιού. Περιέχει το σώμα του δημόσιου κλειδιού, πληροφορίες σχετικά με τον αλγόριθμο και τις παραμέτρους του. Επεκτάσεις * (βλέπε παρακάτω) αναγνωριστικό αλγόριθμου Υπογραφής (το ίδιο όπως περιγράφεται παραπάνω). τιμή Υπογραφής (το σώμα της υπογραφής). Υπήρχαν αρκετές αναθεωρήσεις του προτύπου πιστοποιητικού. Η τελευταία είναι X.509.3. Αναθεωρήσεις 2 και 3 ορίζουν επεκτάσεις στο αρχικό σχήμα. Οι επεκτάσεις μπορεί να είναι κρίσιμες, ή μη κρίσιμες. Αν είναι κρίσιμες, η εφαρμογή, η οποία δεν χειρίζεται τέτοιες επεκτάσεις, δεν θα πρέπει να επεξεργάζεται τα εν λόγω πιστοποιητικά περαιτέρω. Μη κρίσιμες επεκτάσεις μπορούν και να αγνοηθούν. Το Πιστοποιητικό περιέχει μια σημαία, η οποία καθορίζει κατά πόσον η επέκτασή είναι κρίσιμη, μη κρίσιμη. Το X.509.2 ορίζει τις ακόλουθες επεκτάσεις: μοναδικό αναγνωριστικό Εκδότριας μοναδικό αναγνωριστικό Υποκειμένου Οι επεκτάσεις του X.509.2 αυτή τη στιγμή δεν συνίστανται για χρήση από το RFC 2459 και μετά. Το X.509.3 ορίζει τις ακόλουθες επεκτάσεις: Αναγνωριστικό κλειδιού Αρχής. Κρίσιμη για τα μη αυτο-υπογεγραμμένα πιστοποιητικά.

Αναγνωριστικό κλειδιού Υποκειμένου. Κρίσιμη για τα μη αυτόυπογεγραμμένα πιστοποιητικά και συνιστάται για αυτο-υπογεγραμμένα πιστοποιητικά. Χρήση κλειδιού. Το πεδίο αυτό χρησιμοποιείται για να περιορίσει το σύνολο των πράξεων, για τις οποίες το πιστοποιητικό είναι εύκαιρο. Το πρότυπο συστήνει την υπαγωγή αυτή την επέκταση ως κρίσιμη. Εκτεταμένη χρήση κλειδιού. Αυτό το πεδίο είναι παρόμοιο με το πεδίο Χρήση κλειδιού, αλλά RFC 2459 δεν περιορίζει πιθανές τιμές του εν λόγω τομέα, καθώς και κάθε εφαρμογή μπορεί να καθορίσει τις δικές της σημαίες. Σημεία διανομής CRL. Αυτή είναι η διεύθυνση URL της λίστας ανάκλησης πιστοποιητικών, τα οποία μπορούν να χρησιμοποιηθούν για να ελεγχθεί η εγκυρότητα του πιστοποιητικού. Η επέκταση αυτή δεν είναι κρίσιμη, αλλά συνιστάται οι εφαρμογές να την υποστηρίζουν. Περίοδος χρήσης Ιδιωτικού Κλειδιού. Το πεδίο αυτό καθορίζει τη διάρκεια ζωής του ιδιωτικού κλειδιού, που συνδέεται με το πιστοποιητικό. Αν το πεδίο δεν είναι παρών, η διάρκεια ζωής είναι η ίδια με τη διάρκεια ζωής του ίδιου του πιστοποιητικού.

Παράδειγμα Πιστοποιητικού Χ.509 v1 Certificate: Data: Version: 1 (0x0) Serial Number: 7829 (0x1e95) Signature Algorithm: md5withrsaencryption Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Server CA/emailAddress=servercerts@thawte.com Validity Not Before: Jul 9 16:04:02 1998 GMT Not After : Jul 9 16:04:02 1999 GMT Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, CN=www.freesoft.org/emailAddress=baccala@freesoft.org Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb: 33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1: 66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66: 70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17: 16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b: c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77: 8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3: d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8: e8:35:1c:9e:27:52:7e:41:8f Exponent: 65537 (0x10001) Signature Algorithm: md5withrsaencryption 93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d: 92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92: ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67: d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72: 0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1: 5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7: 8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22: 68:9f

Για να επικυρώσετε το πιστοποιητικό αυτό, χρειάζεται ένα δεύτερο πιστοποιητικό που ταιριάζει με την Εκδότρια (Thawte Server CA) του πρώτου πιστοποιητικού. Πρώτον, επιβεβαιώνει ότι το δεύτερο πιστοποιητικό είναι του τύπου CA δηλαδή, ότι μπορεί να χρησιμοποιείται για τη χορήγηση άλλων πιστοποιητικών. Αυτό γίνεται με την επιθεώρηση της τιμής του χαρακτηριστικού CA στο X509v3 τμήμα επέκτασης. Στη συνέχεια, το RSA δημόσιο κλειδί από το πιστοποιητικό CA χρησιμοποιείται για την αποκωδικοποίηση της υπογραφής του πρώτου πιστοποιητικού για την απόκτηση μιας τιμής κατακερματισμού MD5, η οποία πρέπει να ταιριάζει με το MD5 hash που υπολογίζεται πάνω στο πιστοποιητικό. Ένα παράδειγμα του πιστοποιητικού CA ακολουθεί. Παράδειγμα Πιστοποιητικού Χ.509 v3

Παράδειγμα Πιστοποιητικού Χ.509 v3 Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5withrsaencryption Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Server CA/emailAddress=servercerts@thawte.com Validity Not Before: Aug 1 00:00:00 1996 GMT Not After : Dec 31 23:59:59 2020 GMT Subject: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Server CA/emailAddress=servercerts@thawte.com Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:d3:a4:50:6e:c8:ff:56:6b:e6:cf:5d:b6:ea:0c: 68:75:47:a2:aa:c2:da:84:25:fc:a8:f4:47:51:da: 85:b5:20:74:94:86:1e:0f:75:c9:e9:08:61:f5:06: 6d:30:6e:15:19:02:e9:52:c0:62:db:4d:99:9e:e2: 6a:0c:44:38:cd:fe:be:e3:64:09:70:c5:fe:b1:6b: 29:b6:2f:49:c8:3b:d4:27:04:25:10:97:2f:e7:90: 6d:c0:28:42:99:d7:4c:43:de:c3:f5:21:6d:54:9f: 5d:c3:58:e1:c0:e4:d9:5b:b0:b8:dc:b4:7b:df:36: 3a:c2:b5:66:22:12:d6:87:0d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: md5withrsaencryption 07:fa:4c:69:5c:fb:95:cc:46:ee:85:83:4d:21:30:8e:ca:d9: a8:6f:49:1a:e6:da:51:e3:60:70:6c:84:61:11:a1:1a:c8:48: 3e:59:43:7d:4f:95:3d:a1:8b:b7:0b:62:98:7a:75:8a:dd:88: 4e:4e:9e:40:db:a8:cc:32:74:b9:6f:0d:c6:e3:b3:44:0b:d9: 8a:6f:9a:29:9b:99:18:28:3b:d1:e3:40:28:9a:5a:3c:d5:b5: e7:20:1b:8b:ca:a4:ab:8d:e9:51:d9:e2:4c:2c:59:a9:da:b9: b2:75:1b:f6:42:f2:ef:c7:f2:18:f9:89:bc:a3:ff:8a:23:2e: 70:47

5 Υπογραφές XML Το πρότυπο XML Signature (επίσης ονομάζεται XMLDsig, XML-DSig, XML- Sig) θεσπίζει ένα συντακτικό XML για ψηφιακές υπογραφές και έχει καθοριστεί από την W3C recommendation XML Signature Syntax and Processing.Έχει πολλά κοινά με το PKCS#7 αλλά είναι πιο εκτενές και κατευθύνεται κυρίως προς την υπογραφή XML documents. Χρησιμοποιείται από πολλές web εφαρμογές μεταξύ των οποίων και οι SOAP, SAML, και άλλες. Οι υπογραφές XML μπορούν να χρησιμοποιηθούν για να υπογραφούν δεδομένα κάθε τύπου, συνήθως XML αρχεία,αλλά οτιδήποτε είναι προσβάσιμο μέσω ενός URL μπορεί να υπογραφεί.μία υπογραφή XML που χρησιμοποιείται για να υπογράψει μια πηγή εκτός του XML που την περιέχει λέγεται αποκολλημένη ( detached ) υπογραφή. Αν χρησιμοποιείται για την υπογραφή ενός κομματιού από το έγγραφο που την περιέχει λέγεται enveloped. Αν περιέχει υπογεγραμμένα δεδομένα μέσα στον εαυτό της λέγεται enveloping. 5.1 Η δομή του XMLDsig <Signature> <SignedInfo> <CanonicalizationMethod /> <SignatureMethod /> <Reference> <Transforms> <DigestMethod> <DigestValue> </Reference> <Reference /> etc. </SignedInfo> <SignatureValue /> Το στοιχείο SignedInfo περιέχει ή αναφέρει δεδομένα που υπογράφονται και προσδιορίζει ποια αλγόριθμοι χρησιμοποιούνται. Τα στοιχεία SignatureMethod και CanonicalizationMethod χρησιμοποιούνται από το στοιχείο SignatureValue και περιλαμβάνονται στο SignedInfo για την προστασία τους από παραβιάσεις. Ένα ή περισσότερα στοιχεία Reference προσδιορίζουν τον πόρο που υπέγραψε με αναφορά URI, και τυχόν μετατροπές που πρέπει να εφαρμόστουν στον πόρο πριν από την υπογραφή. Το DigestMethod καθορίζει το hash αλγόριθμο πριν την εφαρμογή του αλγόριθμου. Το DigestValue περιέχει το αποτέλεσμα της εφαρμογής του hash.

Το στοιχείο SignatureValue περιέχει τα Base64 κωδικοποιημένα αποτέλεσμα της υπογραφής - η υπογραφή δημιουργείται με τις παραμέτρους που ορίζονται στο στοιχείο SignatureMethod - του στοιχείου SignedInfo μετά την εφαρμογή του αλγορίθμου που ορίζεται από το CanonicalizationMethod. Το στοιχείο KeyInfo επιτρέπει προαιρετικά στον υπογράφοντα να παρέχει στους αποδέκτες με το κλειδί που επικυρώνει την υπογραφή, συνήθως με τη μορφή ενός ή περισσότερων X.509 ψηφιακών πιστοποιητικών. Το στοιχείο Element (προαιρετικά) περιέχει τα υπογεγραμμένα δεδομένα, αν αυτή είναι μια enveloping υπογραφή. 5.1.1 Επικύρωση Όταν επικυρώνουν μια υπογραφή XML, μια διαδικασία που ονομάζεται Επικύρωση πυρήνα (Core Validation) ακολουθείται. 1. Επικύρωση Αναφορών (Reference Validation): Κάθε digest αναφοράς ελέγχεται με την ανάκτηση των αντίστοιχων πόρων και την εφαρμογή κάθε μετασχηματισμού και στη συνέχεια την καθορισμένη μέθοδο κατακερματισμού σε αυτήν. Το αποτέλεσμα αυτό συγκρίνεται με τις καταγεγραμμένες DigestValue. Αν δεν ταιριάζουν, η επικύρωση αποτυγχάνει. 2. Επικύρωση Υπογραφής (Signature Validation): Το στοιχείο SignedInfo γίνεται serialize χρησιμοποιώντας τη μέθοδο κανονικοποίησης που καθορίζεται στο CanonicalizationMethod,τα δεδομένα κλειδιού ανακτώνται χρησιμοποιώντας το KeyInfo ή με άλλα μέσα, και η υπογραφή επαληθεύεται με τη μέθοδο που ορίζεται στο SignatureMethod. Η διαδικασία αυτή καθορίζει κατά πόσον οι πόροι που είχαν πραγματικά υπογράφει από την υποτιθέμενη οντότητα. Ωστόσο, λόγω της επεκτασιμότητας των μεθόδων κανονικοποίησης και να μετασχηματισμού, η οντότητα που επαληθεύει πρέπει επίσης να βεβαιωθεί ότι αυτό που πράγματι έχει υπογραφεί ή κατακερματιστεί είναι πραγματικά αυτό που ήταν παρών στα αρχικά δεδομένα, με άλλα λόγια, ότι οι αλγόριθμοι που χρησιμοποιούνται είναι έμπιστοι να μην αλλάξουν την έννοια των δεδομένων που υπογράφονται. 5.1.2 Κανονικοποίσηση XML Η δημιουργία υπογραφών XML είναι λίγο πιο περίπλοκη από ό, τι η δημιουργία μιας συνηθισμένης ψηφιακής υπογραφής, επειδή ένα συγκεκριμένο έγγραφο XML (ένα "Infoset», κοινός όρος μεταξύ XML

προγραμματιστών) μπορεί να έχει περισσότερες από μία serialized εκπροσωπήσεις. Για παράδειγμα, το κενό μέσα σε ένα XML element δεν είναι συντακτικά σημαντικό, έτσι ώστε το <Elem > είναι συντακτικά όμοιο με <Elem>. Δεδομένου ότι η ψηφιακή υπογραφή δημιουργείται με τη χρήση ενός ασύμμετρου αλγόριθμου (συνήθως RSA) για την κρυπτογράφηση των αποτελεσμάτων του κατακερματισμού ενός XML (συνήθως SHA1) που έχει γίνει πρώτα serialize, διαφορά ενός byte θα μπορούσε να προκαλέσει αλλαγή της ψηφιακής υπογραφής. Επιπλέον, εάν ένα έγγραφο XML μεταφέρεται από υπολογιστή σε υπολογιστή, ο τερματισμός γραμμής (line terminator) μπορεί να αλλάξει από CR to LF σε CR LF, κλπ. Ένα πρόγραμμα που αφομοιώνει και να επικυρώνει ένα έγγραφο XML μπορεί να αποδώσει αργότερα το έγγραφο XML με διαφορετικό τρόπο. Canonical XML είναι ιδιαίτερα σημαντικό όταν ένα XML Signature αναφέρεται σε ένα απομακρυσμένο έγγραφο, το οποίο μπορεί να αποδίδεται με ποικίλους τρόπους από απομακρυσμένους server. Για να αποφευχθούν αυτά τα προβλήματα και να εγγυηθεί ότι πανομοιότυπα έγγραφα XML δίνουν πανομοιότυπες ψηφιακές υπογραφές, ένας μετασχηματισμός κανονικοποίησης XML (συχνά συντομογραφία C14n) εφαρμόζεται κατά την υπογραφή εγγράφων XML (για την υπογραφή του SignedInfo, μια κανονικοποίηση είναι υποχρεωτική). Οι αλγόριθμοι αυτοί εγγυώνται ότι πανομοιότυπα έγγραφα παράγουν ακριβώς ίδιες serialized αναπαραστάσεις. Μια άλλη επιπλοκή ανακύπτει λόγω του τρόπου που ο default αλγόριθμος κανονικοποίησης χειρίζεται namespace δηλώσεις. Συχνά ένα υπογεγραμμένο έγγραφο XML πρέπει να ενσωματωθεί σε ένα άλλο έγγραφο. Στην περίπτωση αυτή ο αρχικός αλγόριθμος κανονικοποίησης δεν θα αποφέρει τα ίδια αποτελέσματα όπως εάν το έγγραφο αντιμετωπίζεται μόνο του. Για το λόγο αυτό δημιουργήθηκε, η λεγόμενη Αποκλειστική Κανονικοποίηση(Exclusive Canonicalization ), η οποία σειριοποιεί XML namespace δηλώσεις ανεξάρτητα από τις γύρω XML. 5.2 Πλεονεκτήματα του XML Dsig To XML DSig είναι πιο ευέλικτo από ό, τι άλλες μορφές ψηφιακών υπογραφών, όπως to Pretty Good Privacy (PGP) και το Cryptographic Message Syntax(CMS), επειδή δεν λειτουργεί σε δυαδικά δεδομένα, αλλά πάνω σε XML Infoset, που του επιτρέπει να εργάζεται σε υποσύνολα των δεδομένων, έχοντας διάφορους τρόπους να δεσμεύσει την υπογραφή και

υπογεγραμμένες πληροφορίες, και να εκτελεί μετασχηματισμούς. Άλλο ένα βασικό συστατικό είναι η κανονικοποίηση, δηλαδή να υπογράψει μόνο την «ουσία», την εξάλειψη των διαφορών χωρίς νόημα όπως το κενό και το τέλος γραμμής. 5.3 Από το XML Dsig στο XAdES XAdES (XML Advanced Electronic Signatures) Ενώ το XML-DSig είναι ένα γενικό πλαίσιο για τις ψηφιακές υπογραφές εγγράφων, το XAdES καθορίζει συγκεκριμένα χαρακτηριστικά του XML-DSig για χρήση με προηγμένη ηλεκτρονική υπογραφή κατά την έννοια της οδηγίας της Ευρωπαϊκής Ένωσης 1999/93/ΕΚ. Ένα σημαντικό όφελος του XAdES είναι ότι ηλεκτρονικά υπογεγραμμένα έγγραφα μπορούν να εξακολουθούν να ισχύουν για μεγάλο χρονικό διάστημα, ακόμη και σε περίπτωση σπασίματος των υποκείμενων κρυπτογραφικών αλγορίθμων. Το XAdES καθορίζει έξι προφίλ (μορφές-profiles) που διαφέρουν ως προς το επίπεδο προστασίας που προσφέρουν. Κάθε προφίλ περιλαμβάνει και επεκτείνει το προηγούμενο. XAdES, η βασική μορφή που πληρεί την οδηγία νομικών απαιτήσεων για τις προηγμένες υπογραφές. XAdES-T (timestamp), προσθέτοντας χρονοσφραγίδα για προστασία από άρνηση XAdES-C (πλήρης), προσθέτοντας αναφορές σε δεδομένα επαλήθευσης (πιστοποιητικά και λίστες ανάκλησης) στα υπογεγραμμένα έγγραφα για να επιτραπεί off-line επαλήθευση και επαλήθευση στο μέλλον (αλλά δεν αποθηκεύει τα πραγματικά δεδομένα) XAdES-X (extended), προσθέτοντας timestamps για τις αναφορές που εισήχθησαν με το XAdES-C για την προστασία απέναντι σε περίπτωση καταστροφής της αλυσίδας πιστοποιητικών στο μέλλον XAdES-XL (extended long term), προσθέτοντας πραγματικά πιστοποιητικά και λίστες ανάκλησης για το υπογεγραμμένο έγγραφο για να είναι δυνατή η εξακρίβωση, στο μέλλον, ακόμη και αν αρχική πηγή τους δεν είναι διαθέσιμη XAdES-A (αρχειακή), προσθέτοντας δυνατότητα περιοδικών Timestamping (π.χ. ανά έτος) των αρχειοθετημένων εγγράφων για την πρόληψη υποβιβασμού που προκαλείται από την εξασθένιση της υπογραφής κατά τη διάρκεια της μεγάλης περιόδου αποθήκευσης.

5.3.1 Η δομή του XAdES <ds:signature ID?> <ds:signedinfo> <ds:canonicalizationmethod/> <ds:signaturemethod/> (<ds:reference URI? > (<ds:transforms />)? <ds:digestmethod /> <ds:digestvalue /> </ds:reference>)+ </ds:signedinfo> <ds:signaturevalue /> (<ds:keyinfo />)? <ds:object> <QualifyingProperties> <SignedProperties> <SignedSignatureProperties> (SigningTime) (SigningCertificate) (SignaturePolicyIdentifier) (SignatureProductionPlace)? (SignerRole)? </SignedSignatureProperties> <SignedDataObjectProperties> (DataObjectFormat)* (CommitmentTypeIndication)* (AllDataObjectsTimeStamp)* (IndividualDataObjectsTimeStamp)* </SignedDataObjectProperties> </SignedProperties> <UnsignedProperties> <UnsignedSignatureProperties> (CounterSignature)* </UnsignedSignatureProperties> </UnsignedProperties> </QualifyingProperties> </ds:object> </ds:signature>

Σε αυτό το παράδειγμα, τα στοιχεία που έχουν ήδη οριστεί στο XML-DSig εμφανίζονται με το πρόθεμα "DS", ενώ τα νέα στοιχεία XML που ορίζονται στo παρών προφίλ εμφανίζονται χωρίς πρόθεμα. Σύμβολο "?" υποδηλώνει μηδέν ή μία εμφάνιση, το "+" υποδηλώνει μία ή περισσότερες εμφανίσεις και το "*" υποδηλώνει μηδέν ή περισσότερες εμφανίσεις. Το στοιχείο QualifyingProperties δρα ως αποθηκευτικός χώρος για όλα τα qualifying information που θα πρέπει να προστεθούν σε μια υπογραφή XML. Οι απαιτούμενες ιδιότητες χωρίζονται σε ιδιότητες που είναι κρυπτογραφικά δεσμευμένες με(δηλαδή, υπογεγραμμένες από) την υπογραφή XML (SignedProperties), και τις ιδιότητες που δεν είναι κρυπτογραφικά δεσμευμένες με την υπογραφή XML (UnsignedProperties) 5.3.2 Η δομή του XAdES-Τ Αυτό το προφίλ προσθέτει χρονοσφραγίδα ώστε να παράσχει προστασία κατά της αποκήρυξη του ψηφιακού πιστοποιητικού. Τα timestamp κρατάνε το χρόνο της δημιουργίας της ψηφιακής υπογραφής. Αν αυτό το ψηφιακό πιστοποιητικό δεν είχε αποκηρυχτεί πριν αυτό το χρόνο, η αποκήρυξη της υπογραφής είναι αδύνατη. Αυτό το προφίλ προσθέτει τα ακόλουθα στοιχεία εντός του UnsignedSignatureProperties: SignatureTimeStamp+ <UnsignedSignatureProperties> <SignatureTimeStamp>...</SignatureTimeStamp>... </UnsignedSignatureProperties> 5.3.3 Η δομή του XAdES-C Το XML AdES, με την πλήρη επικύρωση δεδομένων (XAdES-C) περιλαμβάνει αναφορές στο σύνολο των δεδομένων που υποστηρίζουν την επικύρωση της ηλεκτρονικής υπογραφής (δηλαδή οι αναφορές στη διαδρομή

πιστοποίησης και οι συναφείς πληροφορίες για την κατάσταση της ανάκλησης). Αυτό το προφίλ είναι χρήσιμο για τις περιπτώσεις όπου οι πληροφορίες αυτές αρχειοθετούνται από μια εξωτερική πηγή, όπως ένα αξιόπιστο φορέα παροχής υπηρεσιών. Αυτό το προφίλ προσθέτει τα ακόλουθα στοιχεία στο XAdES-T προφίλ μέσα στοιχείο UnsignedSignatureProperties: CompleteCertificateRefs CompleteRevocationRefs <UnsignedSignatureProperties> <SignatureTimeStamp>...</SignatureTimeStamp> <CompleteCertificateRefs>...</CompleteCertificateRefs> <CompleteRevocationRefs>...</CompleteRevocationRefs>... </UnsignedSignatureProperties> 5.3.4 Η δομή του XAdES-Χ Το XAdES με εκτεταμένη επικύρωση δεδομένων (XAdES-X) περιλαμβάνει χρονοσφραγίδα στις αναφορές των δεδομένων επικύρωσης ή σχετικά με το Signature element και τα προαναφερθέντα στοιχεία επικύρωσης. Αυτή η χρονοσφραγίδα λαμβάνει υπόψη τον κίνδυνο τα κλειδιά που χρησιμοποιούνται στην αλυσίδα πιστοποιητικών ή στις πληροφορίες των καταστάσεων ανάκλησης, μπορεί να παραβιαστούν. Η μορφή αυτή έχει δύο εναλλακτικές υλοποιήσεις. Η πρώτη προσθέτει τα ακόλουθα στοιχεία στο XAdES-C μέσα στο στοιχείο UnsignedSignatureProperties: * RefsOnlyTimeStamp

Η δεύτερη προσθέτει τα ακόλουθα στοιχεία στο XAdES-C μέσα στο στοιχείο UnsignedSignatureProperties: * SigAndRefsTimeStamp <UnsignedSignatureProperties> <SignatureTimeStamp>...</SignatureTimeStamp> <CompleteCertificateRefs>...</CompleteCertificateRefs> <CompleteRevocationRefs>...</CompleteRevocationRefs> <SigAndRefsTimeStamp>...</SigAndRefsTimeStamp >... </UnsignedSignatureProperties> 5.3.5 Η δομή του XAdES-X-L Το XAdES με εκτεταμένη επικύρωση δεδομένων που ενσωματώνονται για μακροπρόθεσμη αποθήκευση. Ένα σημαντικό όφελος σε σχέση με το XAdES είναι ότι ηλεκτρονικά υπογεγραμμένα έγγραφα μπορούν να εξακολουθούν να ισχύουν για μεγάλο χρονικό διάστημα, ακόμη και σε περίπτωση ρήξης υποκείμενων κρυπτογραφικών αλγορίθμων. Αυτό ίσως είναι το πιο σημαντικό χαρακτηριστικό και ονομάζεται Long Term Validation(μακροχρόνια επικύρωση). Το XAdES-XL περιλαμβάνει την επικύρωση δεδομένων για τις περιπτώσεις όπου τα δεδομένα επικύρωσης δεν αποθηκεύονται αλλού για πολύ καιρό. Αυτό το προφίλ προσθέτει τα ακόλουθα στοιχεία στο XAdES-X, μέσα στο στοιχείο UnsignedSignatureProperties:

CertificatesValues RevocationValues <UnsignedSignatureProperties> <SignatureTimeStamp>...</SignatureTimeStamp> <CompleteCertificateRefs>...</CompleteCertificateRefs> <CompleteRevocationRefs>...</CompleteRevocationRefs> <SigAndRefsTimeStamp>...</SigAndRefsTimeStamp > <CertificateValues>...</CertificateValues> <RevocationValues>...</RevocationValues> 5.3.6 Η δομή του XAdES-Α Το XAdES με τα αρχειοθετημένα δεδομένα επικύρωσης (XAdES-Α), περιλαμβάνει επιπλέον χρονοσφραγίδες για την αρχειοθέτηση υπογραφών, με τρόπο ώστε να είναι προστατευμένες αν τα κρυπτογραφικά δεδομένα γίνουν αδύναμα. Αυτό το προφίλ προσθέτει τα ακόλουθα στοιχεία στο XAdES-XL μέσα στο στοιχείο UnsignedSignatureProperties: ArchiveTimestamp + Σύνοψη Η σωστή πολιτική υπογραφών διασφαλίζει την αξιοπιστία και εμπιστοσύνη στον σύγχρονο ηλεκτρονικό κόσμο. Μια ηλεκτρονική υπογραφή που παράγεται σύμφωνα με το πρότυπο XAdES παρέχει αποδείξεις ότι μπορεί να υποβάλλεται σε επεξεργασία για να έχει την εμπιστοσύνη ότι κάποια δέσμευση έτυχε της ρητής υποστήριξης στο πλαίσιο μιας πολιτικής υπογραφής, σε μια δεδομένη στιγμή, από ένα υπογράφων υπό ένα αναγνωριστικό, π.χ. ένα όνομα ή ψευδώνυμο, και προαιρετικά ένα ρόλο.

6 Η εφαρμογή 6.1 Σκοπός της εργασίας: Η δημιουργία εφαρμογής-εργαλείου που υπογράφει αρχεία XML και μη παράγοντας υπογραφές τύπου XAdES, που μετέπειτα έχει την δυνατότητα να επαληθεύσει. Γλώσσα προγραμματισμού: Java Εργαλεία που χρησιμοποιήθηκαν: NetBeans IDE 6.9.1 Java jdk 1.6.0_22 Βιβλιοθήκες που χρησιμοποιήθηκαν: JDK 1.6 Java Development Kit Το JDK είναι ένα περιβάλλον ανάπτυξης για ανάπτυξη εφαρμογών,χρησιμοποιώντας τη γλώσσα προγραμματισμού Java.) XAdES4j XAdES for Java Το XAdES4j είναι μια βιβλιοθήκη που περιέχει αρκετές χρήσιμες συναρτήσεις για XML αρχεια xalan Το Xalan είναι ένας επεξεργαστής XSLT για τη μετατροπή εγγράφων XML σε HTML, κείμενο, ή άλλο τύπο XML εγγράφου

6.2 To γραφικό περιβάλλον της εφαρμογής Η Γενική Φόρμα 1 Το κουμπί Sign αρχίζει την διαδικασία υπογραφής. (γίνεται διαθέσιμο εφόσον έχουν επιλεγεί οι απαραίτητες προδιαγραφές της υπογραφής, τα αρχεία εισόδου και εξόδου και το κλειδί της υπογραφής) 2 Το κουμπί Verify επαληθεύει την υπογραφή που βρίσκεται στο αρχείο εισόδου (γίνεται διαθέσιμο με την επιλογή οποιουδήποτε αρχείου και είδους υπογραφής)

3 Radiobuttons επιλογής είδους-μορφής υπογραφής ( διαθέσιμες EPES, BES,BES -T ) χρησιμοποιείται στη διαδικασία υπογραφής και επαλήθευσης. 4 Radiobuttons επιλογής πηγής κλειδιών ( διαθέσιμες επιλογές απο αρχείο-.p12.pfx.pkx, από αποθηκευμένα στο keystore των Windows -διαθέσιμο μόνο σε 32bit λειτουργικό-) 5 περιοχή προβολής υπογραφών, προβάλει όλες της λεπτομέρειες της υπογραφής του αρχείου εισόδου σε δενδρική μορφή. 6 περιοχή επιλογής κλειδιού και εισαγωγής password ιδιωτικού κλειδιού ( εμφανίζεται μόνο όταν στο 4 είναι επιλεγμένο το From File ) 7 περιοχή γενικών μηνυμάτων προς τον χρήστη, παρέχει πληροφορίες για την λειτουργία του λογισμικού σε πραγματικό χρόνο στο χρήστη.( εξαρτάται από το πεδίο debugger στα options το πλήθος και το είδος των πληροφοριών που παρέχει) 8 κουμπί επιλογής αρχείου εισόδου και περιοχή εμφάνισης πλήρους διεύθυνσης επιλεγμένου αρχείου. 9 κουμπί επιλογής αρχείου εξόδου και περιοχή εμφάνισης πλήρους διεύθυνσης επιλεγμένου αρχείου. 10 κουμπί πρόσβασης στις ρυθμίσεις της εφαρμογής(options) Η φόρμα επιλογής αρχείου εισόδου

Η φόρμα επιλογής αρχείου εξόδου Η φόρμα ρυθμίσεων

1 Radiobuttons που καθορίζουν το επίπεδο πληροφοριών που θα παρέχονται στο χρήστη από την περιοχή μηνυμάτων ( όταν είναι επιλεγμένο το ΟΝ παρέχονται πλήρεις πληροφορίες σχετικά με errors στην διαδικασία υπογραφής ή επαλήθευσης υπογραφών και όταν είναι Off παρέχεται μόνο το αποτέλεσμα χωρίς τις λεπτομέρειες οι οποίες αποθηκεύονται σε log-files ) 2 πεδίο επιλογής timestamp server (σε περίπτωση αλλαγής του, ο χρήστης πρέπει να αποθηκεύσει το certificate του καινούργιου server στα trusted Root Certification authorities των windows)

6.3 Τεχνικές λεπτομέρειες της εφαρμογής Διάγραμμα κλάσεων: