Μελέτη και Υλοποίηση Συστήµατος Ηλεκτρονικών Εκλογών, για τις Ανάγκες των Φοιτητικών Εκλογών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελέτη και Υλοποίηση Συστήµατος Ηλεκτρονικών Εκλογών, για τις Ανάγκες των Φοιτητικών Εκλογών"

Transcript

1 ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Μελέτη και Υλοποίηση Συστήµατος Ηλεκτρονικών Εκλογών, για τις Ανάγκες των Φοιτητικών Εκλογών ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΓΟΥ ΟΥΛΑΚΗΣ ΕΥΣΤΑΘΙΟΣ (ΑΕΜ 570) ΜΠΕΡ ΟΣ ΓΕΩΡΓΙΟΣ (ΑΕΜ 687) Επιβλέπων: Κωνσταντίνος Ράντος Καβάλα, Απρίλιος 2007

2 Πίνακας Περιεχοµένων Εισαγωγή 1 Κεφάλαιο 1 Ασφάλεια Εισαγωγή στην Ασφάλεια Μορφές Απειλών Απειλές κατά των Ενεργών Στοιχείων Απειλές κατά των Παθητικών Στοιχείων Απειλές κατά των Κινούµενων εδοµένων Απειλές Παθητικής Φύσης Απειλές Ενεργητικής Φύσης Απειλές κατά των Αποθηκευµένων εδοµένων Απειλές από Κακόβουλο Λογισµικό Ο ούρειος Ίππος Το «Σκουλήκι» του Internet Ιοί Απειλές στο World Wide Web Προστασία από τις Απειλές Ασφαλείας Προστασία από απειλές κατά των Ενεργών Στοιχείων Προστασία από απειλές κατά των Παθητικών Στοιχείων Προστασία από απειλές κατά των Κινούµενων εδοµένων Προστασία από απειλές κατά των Αποθηκευµένων εδοµένων Προστασία από Κακόβουλο Λογισµικό Προστασία από ούρειους Ίππους Προστασία από «σκουλήκια» και ιούς Προστασία από απειλές του World Wide Web 11 Κεφάλαιο 2 Κρυπτογραφία Παραδοσιακή Κρυπτογραφία Συµµετρική Κρυπτογράφηση Αλγόριθµοι µυστικού κλειδιού Κώδικες Αντικατάστασης Κώδικες αντιµετάθεσης Αλγόριθµοι Συµµετρικής Κρυπτογράφησης DES Triple DES AES Ασύµµετρη Κρυπτογράφηση Εισαγωγή στην Κρυπτογραφία ηµοσίου Κλειδιού Αλγόριθµοι ηµοσίου Κλειδιού Ο Αλγόριθµος RSA Κλειδιά Χωρισµός κλειδιών Συµµετρικοί έναντι ασύµµετρων αλγορίθµων Εφαρµογές της Ασύµµετρης Κρυπτογραφίας Γενική λειτουργία ασύµµετρης κρυπτογραφίας 32

3 Ψηφιακές Υπογραφές Υπογραφές µε τη χρήση αλγορίθµων δηµοσίου κλειδιού Hash Functions Συναρτήσεις Κατακερµατισµού Blind Signatures Τυφλές Υπογραφές Υποδοµή ηµοσίου Κλειδιού Ψηφιακά Πιστοποιητικά (Certificates) Χρήση των αλγορίθµων κρυπτογράφησης στην εφαρµογή 38 Κεφάλαιο 3 Ηλεκτρονικές Εκλογές Εισαγωγή ηµοκρατία Ηλεκτρονική ηµοκρατία Ηλεκτρονικές ηµοσκοπήσεις και Ψηφοφορίες Στόχοι Χαρακτηριστικά των συστηµάτων Ηλεκτρονικής Ψηφοφορίας ιαδικασία Ηλεκτρονικής Ψηφοφορίας Τεχνικές Λύσεις Πλεονεκτήµατα των συστηµάτων Ηλεκτρονικών Εκλογών Μειονεκτήµατα των συστηµάτων Ηλεκτρονικών Εκλογών 47 Κεφάλαιο 4 Πρωτόκολλα Ηλεκτρονικών Εκλογών Το πρωτόκολλο Sensus Το πρωτόκολλο SEAS To πρωτόκολλο της εφαρµογής 55 Κεφάλαιο 5 Περιγραφή Υλοποίησης Συστήµατος Java Η Ιστορία της Java Τα χαρακτηριστικά της Java Ανεξαρτησία από λειτουργικό σύστηµα Η εικονική µηχανή της Java Ο συλλέκτης σκουπιδιών (Garbage Collector) Eπιδόσεις Εργαλεία ανάπτυξης Ολοκληρωµένο περιβάλλον ανάπτυξης (IDE) Ασφάλεια στη Java Ασφάλεια τύπων δεδοµένων Τα πιθανά προβλήµατα ασφαλείας από τη χρήση της Java Συνολική αποτίµηση της ασφάλειας στη γλώσσα Java SQL Τι είναι SQL; MySQL Ασφάλεια συστηµάτων βάσεων δεδοµένων Γενικές αρχές ασφάλειας βάσεων δεδοµένων Φυσική ακεραιότητα της βάσης δεδοµένων Λογική ακεραιότητα της βάσης δεδοµένων ιακρίβωση ταυτότητας χρηστών σε συστήµατα Β 69

4 5.3.5 ιακρίβωση ταυτότητας µε όνοµα χρήστη - συνθηµατικό ιακρίβωση ταυτότητας από το λειτουργικό σύστηµα Τεχνική 1: Κρυπτογράφηση Τεχνική 2: Κλείδωµα χαρακτηρισµού ασφάλειας Τεχνική 3: Κλείδωµα ακεραιότητας 5.4 ιασύνδεση συστήµατος βάσης δεδοµένων Java Server Pages (JSP) HTML Κανόνες της HTML Η HTML σήµερα JavaScript Τρόπος σύνταξης της JavaScript Javascript και Java Web Server Περιγραφή Λογικής Εφαρµογής Περιγραφή Interface Εφαρµογής 82 Κεφάλαιο 6 Βιβλιογραφία 85 Παράρτηµα Α Η Ορολογία της Κρυπτογραφίας 87 Παράρτηµα Β Πίνακες Βάσης εδοµένων 97 Παράρτηµα Γ Κώδικας Εφαρµογής 100

5 Εισαγωγή Η παρούσα εργασία, αφορά τη µελέτη και υλοποίηση ενός συστήµατος ηλεκτρονικών εκλογών για τις ανάγκες των φοιτητικών εκλογών. Με βάση ένα ασφαλές αλλά παράλληλα αρκετά απλό πρωτόκολλο, καταφέραµε να δηµιουργήσουµε ένα σύστηµα ηλεκτρονικών εκλογών, που εξασφαλίζει ορθότητα, δηµοκρατικότητα, µυστικότητα, ανωνυµία και ευκολία στη χρήση. Παράλληλα, µε τη µελέτη που ακολουθεί στα παρακάτω κεφάλαια, µπορεί ο κάθε ενδιαφερόµενος να αποκτήσει γνώσεις για την ασφάλεια υπολογιστών, δικτύων και επικοινωνιών, την κρυπτογραφία, τις ηλεκτρονικές ψηφοφορίες, να γνωρίσει τα εργαλεία που χρησιµοποιήσαµε για την υλοποίηση της εφαρµογής και φυσικά να µελετήσει όλη την ανάλυση της εφαρµογής. Συγκεκριµένα, στο κεφάλαιο 1, κάνουµε µία εισαγωγή στην ασφάλεια υπολογιστών, δικτύων και επικοινωνιών και παρουσιάζουµε τις πιο γνωστές µορφές απειλών και τρόπους προστασίας από αυτές. Στο κεφάλαιο 2, κάνουµε µία ιστορική αναδροµή στην κρυπτογραφία, και στη συνέχεια παρουσιάζουµε την συµµετρική κρυπτογράφηση, τις εφαρµογές της και τους κυριότερους αλγορίθµους της, αλλά και την ασύµµετρη κρυπτογράφηση, τις εφαρµογές της και τους κυριότερους αλγορίθµους της επίσης. Στο κεφάλαιο 3, κάνουµε µια σύντοµη ιστορική αναφορά στην έννοια της ηµοκρατίας και στη συνέχεια ορίζουµε την έννοια της Ηλεκτρονικής ηµοκρατίας. Εξετάζουµε τις ιδιαίτερες συνθήκες που επικρατούν στο χώρο της πληροφορικής και ευνοούν την εφαρµογή της. Στη συνέχεια ασχολούµαστε µε τις ηλεκτρονικές ψηφοφορίες. Έπειτα εξετάζουµε τα χαρακτηριστικά των συστηµάτων ηλεκτρονικής ψηφοφορίας και τέλος αναφέρουµε τα πλεονεκτήµατα και τα µειονεκτήµατά τους. Στο κεφάλαιο 4, αναλύουµε τα πρωτόκολλα ηλεκτρονικών εκλογών Sensus και SEAS και καταλήγουµε αιτιολογώντας ποιο επιλέξαµε να υλοποιήσουµε και γιατί. Τέλος, στο κεφάλαιο 5, περιγράψαµε τα εργαλεία που χρησιµοποιήθηκαν στην υλοποίηση του συστήµατος και αναλύσαµε διεξοδικά τη λογική και το interface της εφαρµογής που υλοποιήσαµε. 1

6 1 Ασφάλεια 1.1 Εισαγωγή στην Ασφάλεια Τίποτα δε µένει κρυφό. Ή µήπως όχι; Εάν ίσχυε κάτι τέτοιο τότε όλοι αυτοί που ασχολούνται µε θέµατα κρυπτογραφίας θα έχαναν τη δουλειά τους. Το θέµα του απορρήτου (secrecy) είναι αρκετά επίκαιρο, µιας που όλο και περισσότερες συναλλαγές γίνονται από απόσταση µε το Internet να τείνει να αποκτήσει την πρωτοκαθεδρία - και εποµένως όλο και περισσότερες ευαίσθητες πληροφορίες διακινούνται. Πολλές φορές η ασφάλεια στο δίκτυο ταυτίζεται µε το απόρρητο, αλλά όχι και τόσο εύστοχα. Υπάρχουν άλλες τρεις κατηγορίες εκτός από το απόρρητο που σχετίζονται µε την ασφάλεια του δικτύου, αν και λίγο πολύ όλες είναι διαπλεκόµενες µεταξύ τους. Αυτές είναι η πιστοποίηση αυθεντικότητας (authentication), η µη αποκύρηξη (nonrepudiation) και η ακεραιότητα των δεδοµένων (data integrity) Η πιστοποίηση αυθεντικότητας ασχολείται µε τον καθορισµό της ταυτότητας αυτού µε τον οποίον µιλάς πριν του αποκαλύψεις ευαίσθητες πληροφορίες ή προχωρήσεις σε εµπορική συµφωνία. Πολλές φορές συγχέεται µε την εξουσιοδότηση (authorization), η οποία όµως ελέγχει το τι ακριβώς επιτρέπεται να κάνει ο χρήστης και δεν ασχολείται µε την πιστοποίησή του. Η µη αποκύρηξη ασχολείται µε τις υπογραφές. Πώς µπορείς να αποδείξεις για παράδειγµα ότι ο πελάτης σου έδωσε µια ηλεκτρονική παραγγελία για σόµπες υγραερίου εάν αργότερα ισχυριστεί ότι παρήγγειλε µόνο 2; Τέλος πώς µπορείς να είσαι βέβαιος ότι ένα µήνυµα που έλαβες ήταν αυτό που πράγµατι στάλθηκε και όχι αυτό που ένας κακόβουλος αντίπαλος επινόησε ή τροποποίησε κατά τη µεταφορά; Συγκεκριµένα, η ασφάλεια υπολογιστών και δικτύων καλύπτει τις παρακάτω απαιτήσεις [1]: εµπιστευτικότητα (confidentiality): απαιτείται η πληροφορία να είναι προσπελάσιµη για ανάγνωση µόνον από εξουσιοδοτηµένους χρήστες. Αυτού του είδους η πρόσβαση περιλαµβάνει την εκτύπωση, την προβολή και άλλες φορές ακόµη και την αποκάλυψη ύπαρξης κάποιου είδους πληροφορίας ακεραιότητα (integrity): απαιτείται οι πόροι του συστήµατος (data, processes κλπ) να µπορούν να τροποποιηθούν µόνον από εξουσιοδοτηµένους χρήστες. Η τροποποίηση περιλαµβάνει την εγγραφή, τροποποίηση, αλλαγή κατάστασης (status), διαγραφή και δηµιουργία. διαθεσιµότητα (availability): απαιτείται οι πόροι του συστήµατος να είναι διαθέσιµοι στους εξουσιοδοτηµένους χρήστες 2

7 Οι διάφοροι αλγόριθµοι κρυπτογράφησης που έχουν κατά καιρούς επινοηθεί άπτονται ενός ή περισσοτέρων θεµάτων της ασφάλειας δικτύου που µόλις αναφέρθηκαν. 1.2 Μορφές Απειλών Οι διαφορετικές µορφές απειλών της ασφάλειας ενός υπολογιστή ή ενός δικτύου µπορούν να χαρακτηριστούν καλύτερα, αν ληφθεί υπ' όψη ότι ο σκοπός ενός υπολογιστή είναι η παροχή πληροφορίας. Γενικά υπάρχει µία ροή πληροφορίας από µία πηγή, όπως π.χ. ένα αρχείο ή µία περιοχή µνήµης, σε κάποιον προορισµό, όπως ένα άλλο αρχείο ή µία εφαρµογή κάποιου χρήστη. Με δεδοµένη αυτή την θεώρηση, είναι δυνατές 4 κατηγορίες απειλών [1],[6]: διακοπή (interruption): κάποιος πόρος του συστήµατος καταστρέφεται ή καθίσταται µη χρησιµοποιήσιµος ή διαθέσιµος. Αυτού του τύπου η απειλή στρέφεται κατά της διαθεσιµότητας του συστήµατος. Παραδείγµατα τέτοιων απειλών είναι η καταστροφή κάποιας συσκευής του δικτύου, όπως ο σκληρός δίσκος ενός server, το κόψιµο κάποιας γραµµής του δικτύου, ή η διακοπή τροφοδοσίας ενός δροµολογητή. υποκλοπή (interception): πρόκειται για απειλή κατά της µυστικότητας της πληροφορίας, όπου κάποιος µη εξουσιοδοτηµένος χρήστης, πρόγραµµα ή υπολογιστής αποκτά πρόσβαση στην πληροφορία µε δυνατότητα καταγραφής της. Παραδείγµατα αποτελούν η παρακολούθηση µίας γραµµής του δικτύου και η απαγορευµένη αντιγραφή αρχείων ή προγραµµάτων. τροποποίηση (modification): πρόκειται για απειλή κατά της ακεραιότητας του συστήµατος, όπου κάποιος µη εξουσιοδοτηµένος χρήστης, πρόγραµµα ή υπολογιστής αποκτά πρόσβαση στο σύστηµα µε δυνατότητα τροποποίησης. Παραδείγµατα αποτελούν η αλλαγή των δεδοµένων ενός αρχείου, η τροποποίηση ενός προγράµµατος, η έναρξη κάποιας process και η τροποποίηση του περιεχοµένου ενός µηνύµατος που µεταδίδεται µέσω του δικτύου. πλαστογράφηση (fabrication): πρόκειται για απειλή κατά της ακεραιότητας του συστήµατος, κατά την οποία εισάγεται κάποιο πλαστό αντικείµενο στο σύστηµα. Παραδείγµατα τέτοιας απειλής είναι η αποστολή ενός µηνύµατος από κάποιον υποτιθέµενο αποστολέα (fake ) και η πρόσθεση εγγραφών σε κάποιο αρχείο. Οι πόροι του δικτύου, όπως αυτό ορίσθηκε παραπάνω, αποτελούνται από ενεργά στοιχεία, παθητικά στοιχεία, λογισµικό και δεδοµένα (static data, traffic data). Συνεπώς στα πλαίσια της ανάπτυξης µίας στρατηγικής για την ασφάλεια όλων των πόρων του δικτύου το ζητούµενο είναι και η ασφάλεια υπολογιστών και η ασφάλεια δικτύου. Στη συνέχεια θα παρουσιάσουµε τις απειλές κατά της ασφάλειας κάθε κατηγορίας πόρων του δικτύου. 3

8 1.2.1 Απειλές κατά των Ενεργών Στοιχείων Η κύρια απειλή κατά των ενεργών στοιχείων [2] του δικτύου (routers, hubs, servers, workstations, hosts, printers κλπ) αφορά στην διαθεσιµότητα των στοιχείων αυτών. Ενέργειες όπως: η σκόπιµη ή ακούσια καταστροφή ή φθορά η κλοπή του στοιχείου ή τµήµατος αυτού η σκόπιµη ή ακούσια διακοπή τροφοδοσίας αποτελούν τις πιο συνηθισµένες απειλές κατά του υλικού ενός δικτύου Απειλές κατά των Παθητικών Στοιχείων Το παθητικό υλικό του δικτύου του ΤΕΙ, αποτελείται από τις πρίζες του δικτύου, τα καλώδια χαλκού και οπτικών ινών και τους πίνακες µικτονόµησης (patch panels) και χρησιµοποιείται για την µεταφορά δεδοµένων. Όπως και για τα ενεργά στοιχεία, η κύρια απειλή αφορά στην διαθεσιµότητα των στοιχείων και µπορεί να προκύψει από πράξεις όπως [2]: η σκόπιµη ή ακούσια καταστροφή ή φθορά η κλοπή Απειλές κατά των Κινούµενων εδοµένων Οι απειλές κατά της ασφάλειας των κινούµενων δεδοµένων (traffic data) αφορούν στην ακεραιότητα, µυστικότητα και διαθεσιµότητα των δεδοµένων και µπορούν να χωρισθούν σε δύο κατηγορίες [2]: Απειλές Παθητικής Φύσης Απειλούν την µυστικότητα των δεδοµένων και υλοποιούνται [2] µε την παρακολούθηση των δεδοµένων (π.χ. µέσω ειδικών προγραµµάτων packet sniffers) µε σκοπό την απόκτηση πληροφοριών. Για παράδειγµα ο χρήστης ενός PC µπορεί να χρησιµοποιήσει ένα τέτοιο πρόγραµµα για να παρακολουθεί όλα τα πακέτα που εκπέµπονται στο τοπικό του δίκτυο (Ethernet subnet). Τέτοιου είδους ενέργειες είναι πολύ δύσκολο να αποκαλυφθούν διότι δεν προκαλούν αλλαγή στα δεδοµένα και δεν επηρεάζουν την λειτουργία του δικτύου. Η παρακολούθηση των δεδοµένων είναι δυνατή και µέσω παρακολούθησης των καλωδιώσεων χαλκού του δικτύου (wire-tapping) ή των τηλεφωνικών συνδέσεων πρόσβασης στο δίκτυο. 4

9 Απειλές Ενεργητικής Φύσης Τέτοιου είδους απειλές [2] έχουν σαν στόχο την τροποποίηση των κινούµενων δεδοµένων ή την δηµιουργία πλαστών δεδοµένων και απειλούν τόσο την µυστικότητα, όσο την διαθεσιµότητα και την ακεραιότητα των δεδοµένων. Είναι δυνατή µία περαιτέρω κατηγοριοποίηση τέτοιων απειλών ως εξής: πρόκληση τροποποίησης της ροής των πακέτων δεδοµένων (message-stream modification), όπου ένα τµήµα του κανονικού µηνύµατος τροποποιείται, ή κάποια µηνύµατα καθυστερούν, επαναλαµβάνονται, ή τροποποιείται η διαδοχή τους για να προκληθεί κάποιο αποτέλεσµα πρόκληση άρνησης παροχής υπηρεσιών (denial of service), κατά την οποία παρεµποδίζεται η κανονική χρήση των πόρων του δικτύου. Μία τέτοια µορφή επίθεσης είναι η υπερφόρτωση του δικτύου µε πακέτα µε αποτέλεσµα την επιβράδυνση ή και διακοπή της λειτουργίας του. Άλλο παράδειγµα είναι η εξάλειψη µηνυµάτων που απευθύνονται σε κάποιον συγκεκριµένο αποδέκτη, όπως για παράδειγµα σε ένα πρόγραµµα που εκτελεί την υπηρεσία ελέγχου ασφάλειας (security audit service). µεταµφίεση (masquerade), κατά την οποία ο εισβολέας τροποποιεί τα δεδοµένα µε στόχο να ξεγελάσει τους µηχανισµούς ασφάλειας του δικτύου και να θεωρηθεί ως εξουσιοδοτηµένος ή έµπιστος χρήστης. Τέτοια παραδείγµατα είναι η αλλαγή της IP διεύθυνσης πακέτων του εξωτερικού εισβολέα, έτσι ώστε το σύστηµα firewall να νοµίσει ότι τα πακέτα έρχονται από το εσωτερικό δίκτυο, ή η ηχογράφηση κάποιας συνοµιλίας ελέγχου αυθεντικότητας (authentication) µεταξύ ενός εξουσιοδοτηµένου χρήστη και του συστήµατος και κατόπιν η χρήση της από τον εισβολέα Απειλές κατά των Αποθηκευµένων εδοµένων Όπως και για τα κινούµενα δεδοµένα, οι απειλές κατά της ασφάλειας των δεδοµένων που είναι αποθηκευµένα σε αρχεία [2] αφορούν στην ακεραιότητα, µυστικότητα και διαθεσιµότητα των δεδοµένων. Αυτό που διαφέρει είναι οι µηχανισµοί πρόσβασης στα δεδοµένα αυτά, µιας και βρίσκονται αποθηκευµένα στους χώρους µόνιµης αποθήκευσης κάποιων ενεργών στοιχείων. Η απειλή κατά της µυστικότητας των δεδοµένων έγκειται στην πρόσβαση στα αρχεία που τα περιέχουν από µη εξουσιοδοτηµένους χρήστες, στους οποίους δίνεται η δυνατότητα να διαβάσουν τα αρχεία αυτά. Η διαθεσιµότητα των αρχείων απειλείται από την εσκεµµένη ή ακούσια διαγραφή των αρχείων. Τέλος, η ακεραιότητα των αρχείων απειλείται από την αλλαγή των χαρακτηριστικών τους (file attributes), την αλλαγή του περιεχοµένου τους, καθώς και από την κακόβουλη δηµιουργία νέων αρχείων. 5

10 1.4 Απειλές από Κακόβουλο Λογισµικό Ο ούρειος Ίππος ούρειος Ίππος [3] είναι ένα κανονικό γενικά πρόγραµµα που εκτελεί σωστά τη λειτουργία του, αλλά εκτός από αυτήν εκτελεί και άλλες άσχηµες για το χρήστη λειτουργίες. Για παράδειγµα, αν κάποιος εισβολέας θελήσει να κλέψει τα αρχεία κάποιου άλλου χρήστη µπορεί να δηµιουργήσει ένα αντίγραφο του πρωτογενούς κώδικα του κειµενογράφου (editor), να τον µεταβάλλει έτσι ώστε να κλέβει αρχεία (αλλά να συνεχίσει να δουλεύει τέλεια ως κειµενογράφος) και να τον τοποθετήσει σε κάποιο κατάλληλο κατάλογο ώστε να τον εκτελέσει το θύµα αντί για τον πραγµατικό κειµενογράφο. Την επόµενη φορά που το θύµα θα καλούσε ανυποψίαστο τον κειµενογράφο θα καλούσε ουσιαστικά την έκδοση του εισβολέα, η οποία θα έκανε τέλεια τη δουλειά της ως κειµενογράφος, αλλά εκτός από αυτό θα έκλεβε και τα αρχεία του θύµατος Το «Σκουλήκι» του Internet Η µεγαλύτερη παραβίαση ασφαλείας όλων των εποχών σε υπολογιστές ξεκίνησε το απόγευµα της 2ας Νοεµβρίου 1988, όταν ένας τελειόφοιτος του Πανεπιστηµίου Cornell ελευθέρωσε το πρόγραµµα «σκουλήκι» (worm) [3] µέσα στο δίκτυο Internet. Αυτή η πράξη είχε ως αποτέλεσµα να καταρρεύσουν χιλιάδες υπολογιστές σε πανεπιστήµια, εταιρίες και κυβερνητικά εργαστήρια σε ολόκληρο τον κόσµο, προτού αποκαλυφθεί και αποµακρυνθεί το «σκουλήκι». Το «σκουλήκι» εκµεταλλευόταν ένα σφάλµα που είχε τότε το λειτουργικό Berkeley UNIX, χάρη στο οποίο του επιτρεπόταν να έχει µη εξουσιοδοτηµένη πρόσβαση σε υπολογιστές οι οποίοι ήταν συνδεδεµένοι στο Internet. Από τη στιγµή που αποκτούσε πρόσβαση σε ένα νέο υπολογιστή αναπαραγόταν σε αυτόν (αντέγραφε τον εαυτό του) και το αντίγραφο του έψαχνε µε τη σειρά του να αποκτήσει πρόσβαση σε άλλους υπολογιστές κ,ο.κ. Τίποτα όµως στον κώδικα του «σκουληκιού» δεν υποδήλωνε προσπάθεια για να κλέψει ή να χαλάσει οτιδήποτε στους υπολογιστές που αποκτούσε πρόσβαση. εν είναι βέβαια γνωστό αν η µορφή που είχε το πρόγραµµα στις 2 Νοεµβρίου 1988 προοριζόταν απλώς για έλεγχο και ξέφυγε στο Internet κατά λάθος ή ήταν η τελική. Γεγονός πάντως είναι ότι οι «µολυσµένοι» υπολογιστές µετά από κάποιο διάστηµα κατακλύζονταν από αντίγραφα του «σκουληκιού» και δεν µπορούσαν να λειτουργήσουν Ιοί Μια ειδική κατηγορία επιθέσεων είναι οι ιοί (viruses) [3] των υπολογιστών, οι οποίοι έχουν γίνει ένα µεγάλο πρόβληµα για πολλούς από τους χρήστες υπολογιστών. Ένας ιός είναι ένα κοµµάτι προγράµµατος το οποίο επισυνάπτεται σε ένα νοµότυπο πρόγραµµα µε σκοπό να «µολύνει» άλλα προγράµµατα. ιαφέρει από το «σκουλήκι» µόνο στο ότι ένας ιός προσκολλάται σε ένα ήδη υπάρχον πρόγραµµα ενώ το «σκουλήκι» είναι από µόνο του ένα πλήρες πρόγραµµα. Τόσο οι ιοί, όσο και τα σκουλήκια προσπαθούν να διαδοθούν και µπορούν να προκαλέσουν σοβαρές ζηµιές. 6

11 Αυτός που γράφει έναν ιό συνήθως γράφει ένα χρήσιµο πρόγραµµα, όπως ένα παιχνίδι ή κάποιο utility και τοποθετεί µέσα του τον κώδικα του ιού. Στη συνέχεια το πρόγραµµα µεταφέρεται συνήθως σε κάποιο Web site ή προσφέρεται (παλιότερα) δωρεάν ή σε κάποια χαµηλή τιµή σε φυσική µορφή (cd, δισκέτα κλπ). Στη συνέχεια το πρόγραµµα διαφηµίζεται, οπότε οι άνθρωποι αρχίζουν να το µεταφέρουν στους υπολογιστές τους και να το χρησιµοποιούν. Όταν το πρόγραµµα του ιού ξεκινάει, αρχίζει αµέσως να εξετάζει όλα τα εκτελέσιµα προγράµµατα στο σκληρό δίσκο για να δει αν έχουν ήδη µολυνθεί. Όταν βρει ένα µη µολυσµένο πρόγραµµα, το µολύνει επισυνάπτοντας τον κώδικα του ιού στο τέλος του αρχείου. Με τον τρόπο αυτό, κάθε φορά που ένα µολυσµένο πρόγραµµα εκτελείται προσπαθεί να µολύνει και άλλα προγράµµατα. Εκτός όµως από το να αντιγράψει τον εαυτό του ένας ιός µπορεί να κάνει και πολλά άλλα πράγµατα, όπως να διαγράψει, να αλλάξει ή να κρυπτογραφήσει αρχεία. Υπήρξε ένας ιός που παρουσίαζε στην οθόνη ένα εκβιαστικό µήνυµα, το οποίο ζητούσε από το χρήστη να στείλει 500 δολάρια µετρητά σε µία ταχυδροµική θυρίδα στον Παναµά, διαφορετικά θα έχανε για πάντα όλα τα δεδοµένα του! Αυτό βέβαια είναι ένα απλό παράδειγµα ιού, µια και σήµερα υπάρχουν εκατοντάδες διαφορετικά είδη ιών και έχει αναπτυχθεί µία ολόκληρη βιοµηχανία καταπολέµισής τους. 1.5 Απειλές στο World Wide Web To World Wide Web είναι ίσως το γρηγορότερα αναπτυσσόµενο κοµµάτι του Internet. Ολοένα όµως και περισσότερο γίνεται και το κοµµάτι του Internet που είναι πιο ευάλωτο σε επιθέσεις. Οι υπολογιστές που φιλοξενούν ιστοσελίδες (web servers) αποτελούν ελκυστικούς στόχους για πολλούς λόγους [4]: δηµοσιότητα: Οι ιστοσελίδες ενός οργανισµού ή µιας επιχείρησης αποτελούν την εικόνα του στον υπόλοιπο κόσµο του Internet. Μια επιτυχηµένη επίθεση σε έναν web server µπορεί να αλλάξει πληροφορίες σε ιστοσελίδες που βλέπουν εκατοντάδες χιλιάδες ανθρώπων µέσα σε µερικές ώρες και είτε να προπαγανδίσει διαφορετικές φιλοσοφίες ή ιδεολογίες ή απλώς να χαλάσει τη δηµόσια εικόνα του θύµατος. Τελευταία, έχει ξεσπάσει µία «διαµάχη» µεταξύ Ελλήνων και Τούρκων «defacers» που αλλάζουν καθηµερινά τις αρχικές σελίδες Τουρκικών και Ελληνικών αντίστοιχα ιστοσελίδων Εµπόριο: Πολλές ιστοσελίδες περιέχουν φόρµες για την αγορά αγαθών ή τη πραγµατοποίηση άλλων εµπορικών συναλλαγών (π.χ. πληρωµή προστίµων στην τροχαία). Οι συναλλαγές αυτές γίνονται συνήθως µέσω της ανταλλαγής πληροφοριών που περιλαµβάνουν τα στοιχεία κάποιας πιστωτικής κάρτας του χρήστη, κάτι που κάνει αυτούς τους υπολογιστές στόχους επιθέσεων µε σκοπό την υποκλοπή αυτών των πληροφοριών. 7

12 «Εσωτερικές» Πληροφορίες: Πολλές επιχειρήσεις χρησιµοποιούν το World Wide Web για να µεταδώσουν πληροφορίες στα µέλη τους ή σε άλλους συνεργάτες τους στο εξωτερικό. Οι πληροφορίες αυτές, όπως είναι φυσικό, αποτελούν στόχο των εµπορικών ανταγωνιστών ή εχθρών τους. Πρόσβαση σε δίκτυα: Επειδή οι υπολογιστές που φιλοξενούν ιστοσελίδες κάποιας επιχείρησης χρησιµοποιούνται και από τους εργαζόµενους µέσα στην επιχείρηση αλλά και από τον υπόλοιπο κόσµο του Internet, αποτελούν µία γέφυρα επικοινωνίας ανάµεσα στο Internet και στα διάφορα τοπικά δίκτυα των επιχειρήσεων. Εποµένως η θέση τους, τους κάνει ιδανικούς στόχους επίθεσης ώστε στη συνέχεια να αποτελέσουν «ορµητήρια» των εισβολέων στο εσωτερικό δίκτυο της επιχείρησης. Οι απειλές στο World Wide Web χωρίζονται σε τρεις κατηγορίες: Απειλές κατά του web server για τους λόγους που αναφέρθηκαν παραπάνω Απειλές κατά τη µεταφορά των δεδοµένων και κατά αποθηκευµένων δεδοµένων κυρίως όταν πρόκειται για αριθµούς πιστωτικών καρτών ή άλλες ευαίσθητες πληροφορίες εµπορικών επιχειρήσεων ή στρατιωτικών οργανώσεων. Απειλές κατά του υπολογιστή του χρήστη µέσω προβληµάτων που πολλές φορές υπάρχουν στον κώδικα του προγράµµατος που χρησιµοποιεί ο χρήστης για τη ανάγνωση των ιστοσελίδων (π.χ. Microsoft Internet Explorer, Mozilla Firefox, Opera µε τους δύο τελευταίους κι ιδιαίτερα τον Opera να κρίνονται οι πιο ασφαλείς σε τέτοιου είδους επιθέσεις). 1.6 Προστασία από τις Απειλές Ασφαλείας Προστασία από απειλές κατά των Ενεργών Στοιχείων Η φυσική προστασία των ενεργών στοιχείων του δικτύου (routers, hubs, servers, workstations, hosts, printers κλπ) [2] ενάντια σε απειλές ακούσιων ή εκούσιων φθορών ή καταστροφών ή ακόµη και κλοπών µπορεί να επιτευχθεί µέσω του περιορισµού πρόσβασης στους χώρους λειτουργίας των στοιχείων αυτών, ενώ για την απειλή διακοπής τροφοδοσίας απαιτείται ο περιορισµός στην πρόσβαση τόσο στους χώρους λειτουργίας, όσο και στους πίνακες τροφοδοσίας των ενεργών στοιχείων Προστασία από απειλές κατά των Παθητικών Στοιχείων Επειδή το παθητικό υλικό είναι συνήθως µικρής αξίας, η κύρια απειλή [2] έγκειται στην εκούσια ή ακούσια φθορά ή καταστροφή τους, και ειδικότερα στο κόψιµο ή σπάσιµο καλωδίων του δικτύου. Τα καλώδια αυτά πρέπει να µεταφέρονται µέσα σε ειδικούς οδηγούς και σχάρες και η πρόσβαση σε αυτές 8

13 πρέπει να µην είναι εύκολη (π.χ. να βρίσκονται σε µεγάλο ύψος). Η πιο πιθανή αιτία καταστροφής καλωδίωσης είναι η ακούσια κοπή καλωδίων κατά την εκτέλεση εργασιών ηλεκτροµηχανολογικών εγκαταστάσεων, εγκαταστάσεων κλιµατισµού κλπ, και γι' αυτό θα πρέπει να υπάρχει ενηµέρωση και επίβλεψη των συνεργείων που εκτελούν τέτοιου είδους εργασίες Προστασία από απειλές κατά των Κινούµενων εδοµένων Ένας τρόπος αντιµετώπισης απειλών παρακολούθησης των δεδοµένων κατά τη µεταφορά τους µέσω παρακολούθησης των καλωδιώσεων σύνδεσης (wire tapping) [2] είναι η διασφάλιση ελέγχου πρόσβασης στην καλωδίωση µε την τοποθέτηση της σε ειδικά κανάλια, τα οποία δεν είναι εύκολα προσπελάσιµα. Στην περίπτωση όµως του Πανεπιστηµίου κάτι τέτοιο δεν έχει νόηµα, µια και η πρόσβαση στο τοπικό δίκτυο µπορεί να γίνει κατ' ευθείαν µέσω των πριζών που βρίσκονται σε κοινόχρηστους χώρους, όπως τα αµφιθέατρα. Ένας καλύτερος τρόπος αντιµετώπισης αυτής της απειλής καθώς και της απειλής παρακολούθησης των δεδοµένων κατά τη µεταφορά τους µέσω των υπολογιστών µε προγράµµατα όπως τα λεγόµενα packet sniffers είναι η κωδικοποίηση των δεδοµένων (data encryption), όπου αυτή είναι δυνατή. Με αυτό τον τρόπο η οποιαδήποτε µορφής πληροφορία µετασχηµατίζεται σε κάτι ακαταλαβίστικο για µη εξουσιοδοτηµένους χρήστες. Οι εξουσιοδοτηµένοι όµως χρήστες µπορούν να επαναφέρουν το ακαταλαβίστικο µήνυµα στην αρχική του µορφή και να εξάγουν από αυτό τη ζητούµενη πληροφορία. Η διαδικασία που απαιτείται εποµένως, περιλαµβάνει δύο βήµατα: Κωδικοποίηση (encryption), κατά την οποία τα αρχικά δεδοµένα µετασχηµατίζονται σε µία νέα µορφή µε τη βοήθεια κάποιας πολύπλοκης συνάρτησης και ενός κλειδιού κωδικοποίησης (encryption key). Αποκωδικοποίηση (decryption), κατά την οποία τα δεδοµένα µετασχηµατίζονται από τη νέα µορφή τους πίσω στην αρχική µε τη χρήση κάποιας άλλης πολύπλοκης συνάρτησης και κάποιου κλειδιού αποκωδικοποίησης (decryption key). To κλειδί αποκωδικοποίησης σε κάποια συστήµατα είναι το ίδιο µε το κλειδί κωδικοποίησης ενώ σε κάποια άλλα είναι διαφορετικό Προστασία από απειλές κατά των Αποθηκευµένων εδοµένων Οι βασικοί µηχανισµοί αντιµετώπισης απειλών κατά της µυστικότητας αποθηκευµένων δεδοµένων [2] είναι η χρήση µηχανισµού ελεγχόµενης πρόσβασης των αρχείων, καθώς και η κρυπτογράφηση τους. Οι µηχανισµοί ελεγχόµενης πρόσβασης των αρχείων βασίζονται συνήθως στην υπόθεση ότι το σύστηµα γνωρίζει την ταυτότητα του κάθε χρήστη. Το πρόβληµα της αναγνώρισης της ταυτότητας των χρηστών όταν αυτοί συνδέονται στο σύστηµα λέγεται πιστοποίηση ταυτότητας χρήστη (authentication). Η πιο συνηθισµένη µορφή πιστοποίησης ταυτότητας είναι να απαιτείται ο χρήστης 9

14 να πληκτρολογεί µια συνθηµατική λέξη (password). Η προστασία µε συνθηµατικές λέξεις είναι εύκολη, τόσο στην κατανόηση όσο και στην υλοποίηση. Στο λειτουργικό σύστηµα UNIX που χειρίζεται τον κεντρικό υπολογιστή του Πανεπιστηµίου δουλεύει ως εξής: Το πρόγραµµα σύνδεσης µε το σύστηµα (login) ζητάει από το χρήστη να πληκτρολογήσει το όνοµα του και τη συνθηµατική του λέξη. Η συνθηµατική λέξη αµέσως κρυπτογραφείται. Στη συνέχεια το πρόγραµµα σύνδεσης διαβάζει το αρχείο συνθηµατικών λέξεων, το οποίο είναι µια ακολουθία γραµµών ASCII, µία για κάθε χρήστη, µέχρι να βρει τη γραµµή η οποία περιέχει το όνοµα σύνδεσης του χρήστη. Αν η κρυπτογραφηµένη συνθηµατική λέξη η οποία περιέχεται στη γραµµή ταιριάζει µε αυτή που µόλις κρυπτογραφήθηκε η σύνδεση επιτρέπεται, διαφορετικά απορρίπτεται. Όταν όµως η συνθηµατική λέξη είναι µια κοινή λέξη, τότε η πιστοποίηση ταυτότητας µέσω συνθηµατικής λέξης είναι εύκολο να νικηθεί. Αρκεί κάποιος να κρυπτογραφήσει όλες τις λέξεις ενός µεγάλου λεξικού και να συγκρίνει τις κρυπτογραφηµένες λέξεις που παράγονται έτσι µε την κρυπτογραφηµένη συνθηµατική λέξη. Αν όµως η συνθηµατική λέξη δεν είναι µια απλή λέξη και σε αυτήν περιέχονται αριθµοί και κάποια από τα σύµβολα του πληκτρολογίου σε τυχαίες θέσεις τότε η προσπάθεια για αποκρυπτογράφηση απαιτεί χρόνο πολλών χιλιετηρίδων. Πρόσβαση όµως σε αρχείου άλλου χρήστη µπορεί να αποκτηθεί και αν ο χρήστης φύγει και αφήσει για κάποιο χρονικό διάστηµα τον υπολογιστή του ανοικτό. Έως ότου επιστρέψει, κάποιος άλλος µπορεί να διαβάσει το mail του, να αλλάξει τα αρχεία του, ή να τα διαγράψει. Προστασία από τέτοιες απειλές παρέχει το κλείδωµα της οθόνης (screen locking) µε κάποια συνθηµατική λέξη (π.χ. χρησιµοποιώντας το screen saver των Windows µε κάποιο password). Τέλος, πρόσβαση στα αρχεία κάποιου χρήστη γίνεται και µέσα από τη δυνατότητα κοινής χρήσης αρχείων (sharing) ανάµεσα σε υπολογιστές. Πολλές φορές διάφοροι χρήστες δίνουν σε άλλους υπολογιστές και κατ' επέκταση σε άλλους χρήστες τη δυνατότητα να διαβάσουν ή ακόµα και να γράψουν κάποια αρχεία τους χωρίς να τους ζητάνε κάποια συνθηµατική λέξη. Έτσι οποιοσδήποτε χρήστης µπορεί να τα διαβάσει και να τα διαγράψει. Προστασία από τέτοιες απειλές παρέχει η δυνατότητα ύπαρξης συνθηµατικής λέξης (όχι βέβαια απλού space ή enter) για την ανάγνωση και την τροποποίηση αρχείων από άλλους υπολογιστές. Βασικοί τρόποι αντιµετώπισης της απειλής της εσκεµµένης ή ακούσιας διαγραφής αρχείων αλλά και της ακεραιότητας των αρχείων είναι και πάλι η χρήση µηχανισµού ελεγχόµενης πρόσβασης των αρχείων, καθώς και η τακτική τήρηση εφεδρικών αντιγράφων (back-up) των αρχείων. Τα εφεδρικά αυτά αρχεία καλό είναι να βρίσκονται σε απόσταση από τα πρωτογενή δεδοµένα ώστε να µην καταστραφούν σε περίπτωση φυσικής καταστροφής (π.χ. φωτιάς) του υπολογιστή. 10

15 1.7 Προστασία από Κακόβουλο Λογισµικό Προστασία από ούρειους Ίππους Βασικός τρόπος προστασίας από τέτοιου είδους απειλές [3] είναι η χρήση µηχανισµού ελεγχόµενης πρόσβασης των αρχείων µε ταυτόχρονο έλεγχο των µεγεθών και των ηµεροµηνιών αλλαγής των αρχείων που περιέχουν τα προγράµµατα που εκτελούνται στο σύστηµα (audit). Επίσης, ο κάθε χρήστης προστατεύεται αν ο ίδιος κάνει έναν έλεγχο των προγραµµάτων τα οποία κάθε φορά εκτελεί έτσι ώστε να µην εκτελεστεί το πρόγραµµα κάποιου εισβολέα στη θέση του επιθυµητού προγράµµατος Προστασία από «σκουλήκια» και ιούς Προστασία από τέτοιου είδους απειλές [3] παρέχει η χρήση µηχανισµού ελεγχόµενης πρόσβασης των αρχείων και η αποφυγή µετάδοσης κάποιου ιού ή «σκουληκιού» στο σύστηµα µέσω της εκτέλεσης κάποιου «µολυσµένου» προγράµµατος. Οι χρήστες εποµένως πρέπει να αποφεύγουν την εκτέλεση προγραµµάτων άγνωστης ή αµφιβόλου προελεύσεως που βρέθηκαν στα χέρια τους τυχαία, πιθανόν από κάποιο web site ή ανώνυµο ftp site, ή τους στάλθηκαν ως attachments µέσω του ηλεκτρονικού ταχυδροµείου ( ) από άγνωστους ή ανύπαρκτους χρήστες. Στην περίπτωση που παρά την προσεκτική επιλογή των προγραµµάτων που εγκαθίστανται σε έναν υπολογιστή ο υπολογιστής αυτός προσβληθεί από κάποιον ιό υπάρχουν ειδικά «αντιβιοτικά» προγράµµατα (antivirus) τα οποία µπορούν να ψάξουν σε όλους τους χώρους αποθήκευσης του υπολογιστή, να εντοπίσουν γνωστούς ιούς και να τους σβήσουν. Πολλά µάλιστα από αυτά τα προγράµµατα µπορούν να ελέγχουν συνεχώς τον υπολογιστή κατά την ώρα εργασίας και να ειδοποιήσουν µόλις εντοπίσουν κάποιο προγραµµατιστικό κώδικα ιού ώστε να είναι δυνατή η έγκαιρη «θεραπεία» του υπολογιστή πριν δράσει ο ιός και προσβάλλει τις πληροφορίες που είναι αποθηκευµένες. Τέτοια προγράµµατα είναι το πολύ γνωστό Norton Antivirus αλλά και τα όχι τόσο γνωστά (αλλά πολύ καλύτερα βάση προσωπικής άποψης αλλά και µελετών) Nod32 και Kaspesky και άλλα. Βέβαια, τα προγράµµατα αυτά µπορούν να ανιχνεύσουν µόνο γνωστούς ιούς, δηλαδή ιούς που έχουν κάνει την εµφάνιση τους παλαιότερα και έχουν καταγραφεί, ενώ είναι ανίσχυρα εναντίον νέων πρωτοεµφανιζόµενων ιών. Για αυτό το λόγο οι εταιρείες που τα κατασκευάζουν διαθέτουν συνεχώς στους χρήστες τους αναβαθµίσεις ώστε να µπορούν τα προγράµµατα αυτά να προστατεύουν και από τους ιούς που έκαναν την εµφάνιση τους πρόσφατα. 1.8 Προστασία από απειλές του World Wide Web Η στρατηγική για να προστατευτεί ο web server από ενδεχόµενες εισβολές [4] είναι ο περιορισµός των υπηρεσιών που παρέχει ο υπολογιστής αυτός πέραν του Web σε όσο γίνεται λιγότερες. Επίσης, καλή στρατηγική είναι και ο περιορισµός των χρηστών που έχουν λογαριασµό (account) σε αυτόν τον υπολογιστή, ενώ αυτοί που έχουν λογαριασµό και επικοινωνούν µε τον 11

16 υπολογιστή αυτό από µακριά πρέπει να χρησιµοποιούν κάποιο ασφαλές πρόγραµµα επικοινωνίας (π.χ. Kerberised Telnet, ssh). Για να προστατευτούν οι πληροφορίες κατά τη µεταφορά τους µέσω του World Wide Web ακολουθείται η στρατηγική της κρυπτογράφησης, που αναλύθηκε παραπάνω. Ένα τέτοιο σύστηµα κρυπτογράφησης δεδοµένων που στέλνονται µέσω του World Wide Web είναι το Secure Socket Layer (SSL) και θα πρέπει οι χρήστες να το χρησιµοποιούν κάθε φορά που στέλνουν ευαίσθητες πληροφορίες. Τέλος, απειλές στο World Wide Web προέρχονται και από προγράµµατα που εκτελούνται άµεσα από τα προγράµµατα ανάγνωσης των ιστοσελίδων (browsers), όπως προγράµµατα Java, JavaScript, ActiveX κτλ ή από τη χρήση των λεγόµενων cookies. Αν και τέτοια προγράµµατα δίνουν ζωή στις ιστοσελίδες του World Wide Web εντούτοις µπορούν να αποτελέσουν πολύ επικίνδυνα όπλα στα χέρια πιθανών εισβολέων οι οποίοι θα εκµεταλλευτούν λάθη στην κατασκευή των browsers ώστε να µπορέσουν να προκαλέσουν ζηµιά ή να αποκτήσουν µη εξουσιοδοτηµένη πρόσβαση σε διάφορους υπολογιστές. Προστασία από τέτοιες απειλές παρέχουν τα ίδια τα προγράµµατα ανάγνωσης ιστοσελίδων (browsers) µέσα από επιλογές για απενεργοποίηση της δυνατότητας εκτέλεσης τέτοιων δυναµικών προγραµµάτων ανάλογα µε την προέλευσή τους. 12

17 2 Κρυπτογραφία 2.1 Παραδοσιακή Κρυπτογραφία Από ιστορικής πλευράς, πολλές οµάδες ανθρώπων χρησιµοποίησαν την κρυπτογραφία και συνεισέφεραν στην τέχνη της. [5] Από όλες αυτές τις οµάδες, οι στρατιωτικοί έχουν παίξει τον σπουδαιότερο ρόλο και έχουν διαµορφώσει το πεδίο. Εντός των στρατιωτικών οργανισµών, τα προς κρυπτογράφηση µηνύµατα παραδοσιακά δίνονταν σε κακοπληρωµένους υπαλλήλους (κρυπτογράφους) για κρυπτογράφηση και µετάδοση. Η µεγάλη ποσότητα µηνυµάτων δεν επέτρεπε να κάνουν αυτήν τη δουλειά λίγοι εκλεκτοί ειδικοί. Μέχρι την άφιξη των υπολογιστών, ένας από του κύριους περιορισµούς της κρυπτογραφίας ήταν η ικανότητα των κρυπτογράφων να εκτελούν τις απαραίτητες µετατροπές. Ένας πρόσθετος περιορισµός ήταν η δυσκολία της γρήγορης µετάβασης από µια µέθοδο κρυπτογράφησης σε άλλη, επειδή αυτό συνεπάγεται την επανεκπαίδευση ενός µεγάλου αριθµού ανθρώπων. Ωστόσο, ο κίνδυνος της σύλληψης ενός κρυπτογράφου από τον εχθρό έκανε επιτακτική την ανάγκη να είναι δυνατόν να αλλάξει η µέθοδος κρυπτογράφησης αµέσως, αν χρειαστεί. Αυτές οι αλληλοσυγκρουόµενες απαιτήσεις είχαν ως αποτέλεσµα το παρακάτω µοντέλο Εικόνα 2.1 Το µοντέλο κρυπτογράφησης Τα µηνύµατα προς κρυπτογράφηση, γνωστά ως το σαφές κείµενο (plaintext), µετατρέπονται από µία συνάρτηση που έχει ως παράµετρο ένα κλειδί (key). Η έξοδος της διαδικασίας κρυπτογράφησης, γνωστή ως κρυπτογράφηµα (ciphertext), µεταδίδεται µετά, µε διάφορους τρόπους. 13

18 Υποθέτουµε ότι ο εχθρός ή ο παρείσακτος (intruder), ακούει και αντιγράφει επακριβώς το κρυπτογράφηµα. Ωστόσο, αντίθετα µε τον αληθινό παραλήπτη, δεν γνωρίζει ποιο είναι το κλειδί αποκρυπτογράφησης κι έτσι δεν µπορεί να αποκρυπτογραφήσει εύκολα το κρυπτογράφηµα. Μερικές φορές, ο παρείσακτος όχι µόνο ακούει απλώς τον επικοινωνιακό δίαυλο (παθητικός παρείσακτος), αλλά µπορεί να ακόµη να καταγράφει τα µηνύµατα και να τα ξαναπαίξει αργότερα, να εισάγει τα δικά του µηνύµατα ή να τροποποιεί όπως αυτός θέλει τα µηνύµατα προτού φτάσουν στον δέκτη (ενεργητικός παρείσακτος). Η επιστήµη (κατά άλλους τέχνη) του σπασίµατος κωδίκων ονοµάζεται κρυπτανάλυση (cryptanalysis) [5],[7]. Η επιστήµη (τέχνη) της επινόησης κωδίκων (κρυπτογραφία) και του σπασίµατός τους (κρυπτανάλυση) είναι µέρος της Κρυπτολογίας (Cryptology). Ο συµβολισµός C= Ε k (P) του παραπάνω σχήµατος εκφράζει ότι η κρυπτογράφηση του κειµένου Ρ µε κλειδί το k έχει ως αποτέλεσµα το κρυπτογράφηµα C. Παροµοίως, το D=E k (C) αναπαριστά την αποκρυπτογράφηση του C ώστε να πάρουµε πάλι το κείµενο. Συνεπάγεται τότε ότι D k (E k (P))=P. Ο συµβολισµός αυτός υπονοεί ότι τα E και το D είναι απλώς µαθηµατικές συναρτήσεις, όπως πράγµατι είναι. Το µόνο σηµείο που χρειάζεται προσοχή είναι πως αµφότερες είναι συναρτήσεις δύο παραµέτρων, εκ των οποίων η µία (το κλειδί) έχει γραφεί ως δείκτης, αντί να γραφεί ως µεταβλητή, για να διακριθεί από το µήνυµα. Ένας βασικός νόµος της κρυπτογραφίας είναι το ότι υποτίθεται πως ο κρυπταναλυτής γνωρίζει τη γενική µέθοδο κρυπτογράφησης που χρησιµοποιείται. Μ' άλλα λόγια, ο κρυπταναλυτής γνωρίζει πώς δουλεύει η µέθοδος κρυπτογράφησης Ε, της εικόνας 2.1. Το ποσόν της απαραίτητης προσπάθειας για να επινοηθεί, ελεγχθεί και καθιερωθεί µία νέα µέθοδος, κάθε φορά που διακυβεύεται η παλιά ή κάθε φορά που υπάρχει υποψία ότι διακυβεύεται, έκανε πρακτικά αδύνατο το να κρατείται αυτή µυστική, και το να θεωρείται µυστική όταν δεν είναι, κάνει περισσότερο κακό από καλό. Εδώ είναι που υπεισέρχεται το κλειδί. Το κλειδί αποτελείται από ένα (σχετικά) µικρό συρµό από αριθµούς συνήθως, που επιλέγει µία από πολλές πιθανές κρυπτογραφήσεις. Σε αντίθεση προς τη γενική µέθοδο, η οποία µπορεί να αλλαχθεί µόνο κάθε λίγα χρόνια, το κλειδί µπορεί να αντικαθίσταται όσο συχνά χρειάζεται. Έτσι, το βασικό µας µοντέλο αποτελείται από µια γενική, σταθερή και δηµοσίως γνωστή µέθοδο, που χρησιµοποιεί ως παράµετρο ένα µυστικό και εύκολα µεταβαλλόµενο κλειδί. Πρέπει να δοθεί ιδιαίτερη έµφαση στο µη απόρρητο του αλγορίθµου. Με το να δηµοσιοποιείται ο αλγόριθµος, ο κρυπτογράφος παίρνει δωρεάν συµβουλές από έναν µεγάλο αριθµό πανεπιστηµιακών κρυπτολόγων, ανυπόµονων να σπάσουν το σύστηµα, ώστε να δηµοσιεύσουν άρθρα που να αποδεικνύουν πόσο έξυπνοι είναι. Αν πολλοί ειδικοί έχουν προσπαθήσει να σπάσουν έναν αλγόριθµο επί πέντε χρόνια µετά τη δηµοσίευσή του και κανείς δεν το έχει καταφέρει, ο αλγόριθµος πιθανώς είναι πολύ στιβαρός. 14

19 Το πραγµατικό απόρρητο βρίσκεται στο κλειδί και το µήκος του είναι σηµαντικό θέµα της σχεδίασης. Σκεφθείτε µια απλή κλειδαριά µε συνδυασµό ασφαλείας. Η γενική αρχή είναι ότι εισάγετε ψηφία µε τη σειρά. Αυτό το γνωρίζουν όλοι, αλλά το κλειδί είναι µυστικό. Ένα κλειδί µήκους δύο ψηφίων σηµαίνει ότι υπάρχουν 100 δυνατότητες. Ένα κλειδί µήκους τριών ψηφίων σηµαίνει 1000 δυνατότητες κι ένα κλειδί µήκους έξι ψηφίων σηµαίνει ένα εκατοµµύριο. Όσο µεγαλύτερο είναι το κλειδί, τόσο µεγαλύτερος είναι ο παράγοντας φόρτου (work factor) που πρέπει να αντιµετωπίσει ο κρυπταναλυτής. Ο παράγοντας φόρτου για να σπάσει το σύστηµα µε εξαντλητική έρευνα τον χώρου κλειδιών αυξάνει εκθετικά µε το µήκος του κλειδιού. Το απόρρητο είναι αποτέλεσµα ενός ισχυρού (αλλά δηµοσίου) αλγορίθµου και ενός µεγάλου κλειδιού. Για να αποτρέψεις τον µικρό σου αδερφό από το να διαβάσει το ηλεκτρονικό σου ταχυδροµείο, θα αρκούσαν κλειδιά των 64 bίt. Για να εµποδίσεις σηµαντικές κυβερνητικές υπηρεσίες, είναι απαραίτητα κλειδιά των 256 bit τουλάχιστον. Από την οπτική γωνία του κρυπταναλυτή, το πρόβληµα της κρυπτανάλυσης παρουσιάζεται σε τρεις κύριες παραλλαγές. 'Οταν έχει στη διάθεσή του µια ποσότητα κρυπτογραφήµατος αλλά καθόλου κείµενο, αντιµετωπίζει το πρόβληµα του «κρυπτογράφηµα µόνο» (ciphertext only). Τα κρυπτογραφήµατα που εµφανίζονται στις σπαζοκεφαλιές των εφηµερίδων και περιοδικών, θέτουν αυτού του είδους το πρόβληµα. Όταν διαθέτει κάποια τµήµατα κειµένου και το αντίστοιχο κρυπτογράφηµα, το πρόβληµα γίνεται αυτό του γνωστού κειµένου (known plaintext). Τέλος, όταν ο κρυπταναλυτής έχει τη δυνατότητα να κρυπτογραφήσει κοµµάτια κειµένου της δικής του επιλογής, έχουµε το πρόβληµα του επιλεγµένου κειµένου (chosen plaintext). Τα κρυπτογραφήµατα των εφηµερίδων θα µπορούσαν να σπάσουν πανεύκολα, αν ο κρυπταναλυτής µπορούσε να θέσει ερωτήσεις του τύπου: Ποια είναι η κρυπτογράφηση του ABCDE; Οι αρχάριοι στον χώρο της κρυπτογράφησης συχνά υποθέτουν ότι στην περίπτωση επίθεσης σε «κρυπτογράφηµα µόνο», δεν υπάρχει περίπτωση σπασίµατος του κώδικα. Η υπόθεση αυτή όµως δεν είναι σωστή. Σε πολλές περιπτώσεις, ο κρυπταναλυτής µπορεί να µαντέψει σωστά κοµµάτια του κειµένου. Για παράδειγµα, το πρώτο πράγµα που λένε πολλά συστήµατα καταµερισµού χρόνου µόλις τα καλέσεις είναι το "PLEASE LOGIN". Όταν ο κρυπταναλυτής είναι εφοδιασµένος µε µερικά αντιστοιχισµένα ζεύγη κειµένουκρυπτογραφήµατος, η δουλειά του γίνεται πολύ ευκολότερη. Έτσι έγινε και µε την µετάφραση των ιερογλυφικών της Αιγύπτου από τη στήλη της Ροζέττας, όπου το κείµενο ήταν γραµµένο σε τρεις γλώσσες, µία εκ των οποίων ήταν γνωστή: τα αρχαία Ελληνικά. Για να επιτύχει την ασφάλεια, ο κρυπτογράφος πρέπει να είναι συντηρητικός και να εξασφαλίζει ότι το σύστηµα είναι αδιαπέραστο ακόµη και αν ο αντίπαλός του µπορεί να κωδικοποιήσει αυθαίρετες ποσότητες επιλεγµένου κειµένου. 15

20 2.2 Συµµετρική Κρυπτογράφηση Αλγόριθµοι µυστικού κλειδιού Η µοντέρνα κρυπτογραφία [8] χρησιµοποιεί τις ίδιες βασικές ιδέες µε την παραδοσιακή κρυπτογραφία, δηλαδή την αντιµετάθεση και την αντικατάσταση, αλλά µε διαφορετική έµφαση. Παραδοσιακά οι κρυπτογράφοι χρησιµοποιούσαν απλούς αλγόριθµους και στήριζαν την ασφάλεια σε µεγάλα κλειδιά. Σήµερα ισχύει το αντίστροφο: ο στόχος είναι να γίνει ο αλγόριθµος τόσο περίπλοκος, ώστε ακόµα και αν ο κρυπταναλυτής αποκτήσει τεράστιες ποσότητες κρυπτογραφηµάτων της δικής του επιλογής, να µην είναι σε θέση να βγάλει κανένα απολύτως νόηµα. Η βασική ιδέα των αλγορίθµων µυστικού κλειδιού (ή αλλιώς συµµετρικού κλειδιού) φαίνεται στην παρακάτω εικόνα. Το ίδιο κλειδί που χρησιµοποιείται για την κρυπτογράφηση, χρησιµοποιείται και για την αποκρυπτογράφηση Εικόνα 2.2: Μοντέλο κρυπτογράφησης συµµετρικού κλειδιού Οι αντιµεταθέσεις και οι αντικαταστάσεις των διαφόρων αλγορίθµων µπορούν να υλοποιηθούν µε απλά κυκλώµατα [5]. Το Σχήµα α (εικόνα 2.3) δείχνει µια συσκευή, γνωστή ως κουτί-ρ (Ρ-box από το permutation=µετάθεση), που χρησιµοποιείται για την πραγµατοποίηση µιας αντιµετάθεσης σε είσοδο των 8 bit. Εάν τα 8 bit ορίζονται, από πάνω προς τα κάτω, ως , η έξοδος αυτού του συγκεκριµένου κουτιού Ρ είναι Με κατάλληλη εσωτερική καλωδίωση, το κουτί Ρ µπορεί να εκτελέσει οποιαδήποτε αντιµετάθεση και µάλιστα µε την ταχύτητα του φωτός. 16

21 Εικόνα 2.3: Βασικά στοιχεία κρυπτογραφίας γινοµένου [5] Οι αντικαταστάσεις πραγµατοποιούνται από κουτιά-s (S-boxes), όπως φαίνεται στην εικόνα 2.3 (σχήµα β). Σ αυτό το παράδειγµα εισάγεται κείµενο των 3 bit. Η είσοδος των 3 bit επιλέγει µια από τις 8 γραµµές εξόδου του πρώτου σταδίου και τη θέτει ίση µε 1. Όλες οι άλλες γραµµές είναι 0. Το δεύτερο στάδιο είναι ένα κουτί-ρ. Το τρίτο στάδιο κωδικοποιεί την επιλεχθείσα γραµµή εισόδου σε δυαδική µορφή ξανά. Με την καλωδίωση που φαίνεται στο σχήµα, εάν οι οκτώ οκταδικοί αριθµοί εισάγονταν ο ένας µετά τον άλλο, η ακολουθία εξόδου θα ήταν η Μ άλλα λόγια το 0 έχει αντικατασταθεί από το 2, το 1 από το 4 κλπ. Κι εδώ, µε την κατάλληλη καλωδίωση του κουτιού-ρ µέσα στο κουτί-s, µπορεί να επιτευχεί οποιαδήποτε αντικατάσταση. Η πραγµατική ισχύς αυτών των βασικών στοιχείων γίνεται φανερή όταν συνδέσουµε µια ολόκληρη σειρά από κουτιά για να φτιάξουµε τον κώδικα γινοµένου (product cipher), όπως φαίνεται στην εικόνα 2.3 (σχήµα γ). Στο παράδειγµα αυτό, στο πρώτο στάδιο αντιµετατίθενται 12 γραµµές εισόδου. Θεωρητικά, θα ήταν δυνατόν να υπάρχει στο δεύτερο στάδιο ένα κουτί-s, που θα αντιστοιχούσε έναν αριθµό των 12 bit σε έναν άλλον αριθµό των 12 bit. Ωστόσο, µια τέτοια συσκευή θα χρειαζόταν στο µεσαίο της στάδιο 212 = 4096 διασταυρωµένα καλώδια. Αντ αυτού, η είσοδος χωρίζεται σε τέσσερις οµάδες των 3 bit, που καθεµιά υπόκειται σε αντικατάσταση χωριστά από τις άλλες. Αν και η µέθοδος αυτή είναι λιγότερο γενική, παραµένει ισχυρή. Αν συµπεριληφθεί ένας αρκετά µεγάλος αριθµός σταδίων στον κώδικα γινοµένου, η έξοδος µπορεί να γίνει µια πάρα πολύ περίπλοκη συνάρτηση της εισόδου. Έχουν αναπτυχθεί διάφοροι αλγόριθµοι µυστικού κλειδιού. Ένας από τους πρώτους ήταν ο DES (Data Encryption Standard) που αναπτύχθηκε από την IBM το 1977 και έγινε αποδεκτός από την κυβέρνηση των HΠΑ. Ο αλγόριθµος αυτός όµως (καθώς και η βελτίωσή του, ο αλυσιδωτός DES) κατάφερε να σπαστεί µε διάφορες µεθόδους, µε πιο ενδιαφέρουσα από αυτές την ιδέα της Κινέζικης Λοταρίας που περιγράφεται στο παράρτηµα. Μετά από αυτό ο DES ενισχύθηκε µε την τριπλή εφαρµογή του στα δεδοµένα (Triple DES), για τον οποίο δεν υπάρχει κάποια γνωστή µέθοδος µέχρι σήµερα για το σπάσιµό του. 17

22 Μετά τον DES ο πιο σηµαντικός αλγόριθµος µυστικού κλειδιού που αναπτύχθηκε είναι ο IDEA (International Data Encryption Algorithm), από δύο ερευνητές στην Ελβετία στις αρχές της δεκαετιας του 90. Άλλοι αλγόριθµοι που δηµοσιεύθηκαν κατά καιρούς είναι οι BLOWFISH, FEAL, KHAFRE, LOKΙ91, NEWDES, REDOC II, SAFER K64, κα Κώδικες Αντικατάστασης Σ' έναν κώδικα αντικατάστασης (substitution cipher) [5], κάθε γράµµα ή κάθε οµάδα γραµµάτων αντικαθίσταται από ένα άλλο γράµµα ή µία άλλη οµάδα γραµµάτων ώστε να µεταµφιεστεί. Ένας από τους παλιότερους γνωστούς κώδικες είναι ο κώδικας του Καίσαρα (Caesar cipher) που αποδίδεται στον Ιούλιο Καίσαρα. Στη µέθοδο αυτή, το a γίνεται D, το b 9 γίνεται Ε, το c γίνεται F,..., και το z γίνεται C Για παράδειγµα, η λέξη attack γίνεται DWWDFΝ. Στα παραδείγµατα, το κείµενο θα γράφεται µε µικρά γράµµατα και το κρυπτογράφηµα θα γράφεται µε κεφαλαία. Μια απλή γενίκευση του κώδικα του Καίσαρα επιτρέπει στο αλφάβητο του κρυπτογραφήµατος να ολισθήσει κατά k γράµµατα, αντί να ολισθαίνει πάντα 3. Στην περίπτωση αυτή το k γίνεται το κλειδί της γενικής µεθόδου των κυκλικά ολισθαινόντων αλφαβήτων. Ο κώδικας του Καίσαρα µπορεί να κορόιδεψε τους Καρχηδόνιους, αλλά δεν κορόιδεψε κανέναν άλλον από τότε. Η επόµενη βελτίωση είναι η αντιστοίχηση κάθε συµβόλου του κειµένου, ας πούµε των 26 γραµµάτων για απλότητα, σε κάποιο άλλο γράµµα. Για παράδειγµα κείµενο: κρυπτογράφηµα: α β ψ δ ε φ γ η ί ξ κ λ µ ν ο π ρ σ τ θ ω ς χ υ ζ Q W E R T Y U I O P A S D F G H J K L Z X C V B N Μ Αυτό το γενικό σύστηµα αποκαλείται µοναλφαβητική αντικατάσταση (monalphabetic substitution), µε το κλειδί να είναι ο συρµός των 26 γραµµάτων που αντιστοιχεί στο πλήρες αλφάβητο. Για το παραπάνω κλειδί, το κείµενο attack θα µεταµορφωνόταν στο κρυπτογράφηµα QZZQEA. Σε πρώτη µατιά, το σύστηµα φαίνεται να είναι ασφαλές, επειδή, αν και ο κρυπταναλυτής γνωρίζει το γενικό σύστηµα (αντικατάσταση γράµµα προς γράµµα), δεν γνωρίζει ποιο από τα 26! 4 x 1026 πιθανά κλειδιά χρησιµοποιείται. Σε αντίθεση προς τον κώδικα του Καίσαρα, το να τα προσπαθήσει κανείς όλα δεν φαίνεται να είναι ελπιδοφόρο. Ακόµη και αν χρειαζόταν 1 µsec για κάθε λύση, ένας υπολογιστής θα χρειαζόταν 1013 χρόνια για να δοκιµάσει όλα τα κλειδιά. Εν τούτοις, ο κώδικας µπορεί εύκολα να σπάσει, αν είναι διαθέσιµη µια απρόσµενα µικρή ποσότητα κρυπτογραφήµατος. Η βασική επίθεση εκµεταλλεύεται τις στατιστικές ιδιότητες που διέπουν τις φυσικές γλώσσες. Στα Αγγλικά για παράδειγµα, το e είναι το πιο συνηθισµένο γράµµα, ακολουθούµενο από τα t, ο, a, n, i, κλπ. Ο πιο συνηθισµένος συνδυασµός δύο γραµµάτων, ή διγραµµάτων (digrams), είναι τα th, ίn, er, re και an. Ο πιο 18

23 συνηθισµένος συνδυασµός τριών γραµµάτων, ή τριγραµµάτων (trigrams), είναι τα the, ing, and και ion. Ο κρυπταναλυτής που προσπαθεί να σπάσει έναν µοναλφαβητικό κώδικα θα ξεκινούσε µετρώντας τις σχετικές συχνότητες όλων των γραµµάτων του κρυπτογραφήµατος. Μετά, θα αντιστοιχίσει δοκιµαστικά το πιο συνηθισµένο στο e και το δεύτερο πιο συνηθισµένο στο t. Θα κοιτάξει κατόπιν τα τριγράµµατα για να βρει ένα συνηθισµένο της µορφής txe, στο οποίο είναι πολύ πιθανό το Χ να είναι το h. Παροµοίως, αν η µορφή thyt συµβαίνει συχνά, το Υ πιθανότατα είναι το a. Με τις πληροφορίες αυτές, µπορεί να ψάξει ένα συχνά εµφανιζόµενο τρίγραµµα της µορφής azw, το οποίο είναι πιθανότατα το and. Με το να µαντεύει τα πιο πιθανά γράµµατα, διγράµµατα και τριγράµµατα, και γνωρίζοντας τους πιο πιθανούς συνδυασµούς φωνηέντων και συµφώνων, ο κρυπταναλυτής δηµιουργεί ένα δοκιµαστικό κείµενο, γράµµα προς γράµµα. Μια άλλη προσέγγιση είναι να µαντέψεις µια πιθανή λέξη ή φράση. Για παράδειγµα σκεφθείτε το ακόλουθο κρυπτογράφηµα από ένα λογιστικό γραφείο (χωρισµένο σε οµάδες των πέντε χαρακτήρων): CTBMN BYCTC BTJDS QXBNS GSTJC BTSWX CTQTZ CQVUJ QJSGS TJQZZ MNQJS VLNSX VSZJU JDSTS JQUUS JUBXJ DSKSU JSNTK BGAQJ ZBGYQ TLCTZ ΒΝΥΒΝ QJSW Μια πιθανή λέξη σε µήνυµα από λογιστικό γραφείο είναι η financial. Εκµεταλλευόµενοι το ότι γνωρίζουµε το ότι η λέξη financial έχει ένα επαναλαµβανόµενο γράµµα (ί), µε τέσσερα άλλα γράµµατα µεταξύ των δύο εµφανίσεών του, ψάχνουµε στο κρυπτογράφηµα για επαναλαµβανόµενα γράµµατα µε την απόσταση αυτή. Βρίσκουµε 12 περιπτώσεις, στις θέσεις 6, 15, 27, 31, 42, 48, 56, 70 71, 76 και 82. Ωστόσο, µόνο δύο από αυτές, οι 31 και 42, έχουν το επόµενο γράµµα (που αντιστοιχεί στο n στο κείµενο) επαναλαµβανόµενο στη σωστή θέση. Από αυτές τις δύο, µόνο το 31 έχει και το a σωστά τοποθετηµένο, και ξέρουµε ότι η λέξη financial αρχίζει στη θέση 30. Από το σηµείο αυτό και µετά είναι εύκολη η αναπαραγωγή τον κλειδιού, µε τη βοήθεια της στατιστικής συχνοτήτων τον Αγγλικού κειµένου Κώδικες αντιµετάθεσης Οι κώδικες αντικατάστασης διατηρούν τη σειρά των συµβόλων του κειµένου αλλά τα µεταµφιέζουν. Οι κώδικες αντιµετάθεσης (transposition ciphers) [5] αντίθετα, αναδιατάσσουν τα σύµβολα αλλά δεν τα µεταµφιέζουν. Κάτι ανάλογο χρησιµοποιούσαν οι αρχαίοι Σπαρτιάτες όταν έγραφαν το κείµενό τους (σε σειρές) σε µια λωρίδα τυλιγµένη σε κύλινδρο, την οποία όταν ξετύλιγαν είχε τα γράµµατα ανακατεµένα (σε µία στήλη), και για να διαβαστεί ξανά το µήνυµα από τον παραλήπτη του έπρεπε να χρησιµοποιηθεί κύλινδρος ίδιων διαστάσεων. Η εικόνα 2.4 δείχνει έναν συνήθη κώδικα αντιµετάθεσης, την αντιµετάθεση στηλών. Ο κώδικας έχει για κλειδί µια λέξη ή φράση που δεν περιέχει επαναλαµβανόµενα γράµµατα. Στο παράδειγµα αυτό το κλειδί είναι το MEGABUCK. Ο σκοπός του κλειδιού είναι να αριθµήσει τις στήλες, µε τη στήλη 1 να βρίσκεται κάτω από το γράµµα του κλειδιού που 19

24 βρίσκεται περισσότερο κοντά στην αρχή τον αλφάβητου, κ.ο.κ. Το κείµενο γράφεται οριζόντια, σε σειρές. Το κρυπτογράφηµα διαβάζεται ανά στήλη, µε πρώτη τη στήλη της οποίας το γράµµα-κλειδί είναι το µικρότερο. Εικόνα 2.4: Ένας κώδικας αντιµετάθεσης. [5] Για να σπάσει έναν κώδικα αντιµετάθεσης, ο κρυπταναλυτής πρέπει κατ' αρχήν να γνωρίζει ότι έχει να αντιµετωπίσει ένα κώδικα αντιµετάθεσης. Εξετάζοντας τις συχνότητες των Ε, Τ, Α, Ο, Ι, Ν κλπ., είναι εύκολο να δει εάν ταιριάζουν µ' αυτές που συναντώνται στο κανονικό κείµενο. Εάν ναι, τότε πρόκειται σαφώς για κώδικα αντιµετάθεσης, επειδή σ' έναν τέτοιο κώδικα κάθε γράµµα αναπαριστά τον εαυτό του. Το επόµενο βήµα είναι να µαντέψει τον αριθµό των στηλών. Σε πολλές περιπτώσεις µια πιθανή λέξη ή φράση µπορεί να µαντευθεί από τα συµφραζόµενα του µηνύµατος. Για παράδειγµα, υποθέστε ότι ο κρυπταναλυτής µας υποψιάστηκε ότι η φράση κειµένου million dollars υπάρχει κάπου στο µήνυµα. Παρατηρείστε ότι τα διγράµµατα ΜΟ, IL, LL, LA, IR και OS υπάρχουν στο κρυπτογράφηµα ως αποτέλεσµα της αναδίπλωσης αυτής της φράσης. Το γράµµα του κρυπτογραφήµατος Ο ακολουθεί το γράµµα του κρυπτογραφήµατος Μ (δηλαδή, είναι κατακορύφως γειτονικά στη στήλη 4), επειδή χωρίζονται στην πιθανή φράση από απόσταση ίση µε το µήκος του κλειδιού. Εάν είχε χρησιµοποιηθεί κλειδί µήκους επτά, αντί γι' αυτό θα υπήρχαν τα διγράµµατα MD, ΙΟ. LL, LL, ΙΑ, OR και NS. Στην πραγµατικότητα, για κάθε µήκος κλειδιού, παράγεται ένα διαφορετικό σύνολο διγραµµάτων στο κρυπτογράφηµα. Ψάχνοντας τις διάφορες δυνατότητες, ο κρυπταναλυτής µπορεί συχνά να καθορίσει εύκολα το µήκος του κλειδιού. Το βήµα που αποµένει είναι η ταξινόµηση των στηλών. Όταν ο αριθµός των στηλών, k, είναι µικρός, το καθένα από τα k(k-1) ζεύγη στηλών µπορεί να εξετασθεί για να διαπιστωθεί εάν οι συχνότητες διγραµµάτων του ταιριάζουν µ' αυτές του αγγλικού κειµένου. Το ζεύγος µε τη µεγαλύτερη επιτυχία θεωρείται ότι έχει τοποθετηθεί σωστά. Τώρα καθεµία από τις υπόλοιπες 20

25 στήλες δοκιµάζεται δειλά µήπως είναι η επόµενη αυτού του ζεύγους. Η στήλη της οποίας οι συχνότητες διγραµµάτων και τριγραµµάτων ταιριάζουν καλύτερα θεωρείται δοκιµαστικά ότι είναι η σωστή. Η προηγούµενη (του ζεύγους) στήλη βρίσκεται µε τον ίδιο τρόπο. Ολόκληρη αυτή η διαδικασία συνεχίζεται µέχρι να βρεθεί µια ενδεχόµενη διάταξη. Είναι πιθανό, να είναι αναγνωρίσιµο το κείµενο σ' αυτό το σηµείο (π.χ. εάν βρεθεί η λέξη milloin, είναι σαφές ποιο είναι το λάθος). Μερικοί κώδικες αντιµετάθεσης δέχονται ένα µπλοκ σταθερού µήκους ως είσοδο και παράγουν ένα µπλοκ σταθερού µήκους ως έξοδο. Αυτοί οι κώδικες µπορούν να περιγραφούν πλήρως µέσω ενός απλού καταλόγου, ο οποίος δηλώνει τη σειρά µε την οποία πρέπει να εξαχθούν οι χαρακτήρες. Για παράδειγµα, ο κώδικας της εικόνας 2.4 µπορεί να θεωρηθεί ως κώδικας µε µπλοκ των 64 χαρακτήρων. Η έξοδός του είναι 4, 12, 20, 28, 36, 44, 52, 60, 5, 13,..., 62. Μ' άλλα λόγια, ο τέταρτος χαρακτήρας εισόδου, a, είναι ο πρώτος που θα εξαχθεί, ακολουθούµενος από τον δωδέκατο, f, κ.ο.κ. 2.3 Αλγόριθµοι Συµµετρικής Κρυπτογράφησης DES Τον Ιανουάριο του 1977 η κυβέρνηση των Η.Π.Α. υιοθέτησε µια κρυπτογραφία γινοµένου που αναπτύχθηκε από την ΙΒΜ ως το επίσηµο πρότυπό της για τις µη απόρρητες πληροφορίες. Η κρυπτογραφία αυτή, που ονοµάζεται Πρότυπο Κρυπτογράφησης εδοµένων ή DES (Data Encryption Standard) [5], υιοθετήθηκε ευρύτατα από τη βιοµηχανία για χρήση σε προϊόντα ασφαλείας. Το σύστηµα αυτό δεν είναι πια ασφαλές στην αρχική του µορφή, αλλά εξακολουθεί να είναι χρήσιµο σε µία τροποποιηµένη µορφή του. Θα εξηγήσουµε τώρα τον τρόπο λειτουργίας του προτύπου DES. Στην εικόνα 2.5 (α) φαίνεται η διάρθρωση του DES. Το απλό κείµενο κρυπτογραφείται σε τµήµατα των 64bit, τα οποία δίνουν 64bit κρυπτοκειµένου. Ο αλγόριθµος, ο οποίος παραµετροποιείται µε ένα κλειδί των 56bit, έχει 19 διακριτικά στάδια. Το πρώτο στάδιο είναι µία ανεξάρτητη από το κλειδί µετάθεση του 64µπιτου απλού κειµένου. Το τελευταίο στάδιο είναι το ακριβές αντίστροφο αυτής της µετάθεσης. Το προτελευταίο στάδιο ανταλλάσσει τα 32 bit στα αριστερά µε τα 32 bit στα δεξιά. Τα 16 υπόλοιπα στάδια είναι λειτουργικά πανοµοιότυπα, αλλά παραµετροποιούνται µε µε διαφορετικές συναρτήσεις του κλειδιού. Ο αλγόριθµος έχει σχεδιαστεί για να επιτρέπει να εκτελείται η αποκρυπτογράφηση µε το ίδιο κλειδί όπως και η κρυπτογράφηση, µια ιδιότητα που απαιτείται σε όλους τους αλγόριθµους συµµετρικού κλειδιού. Τα βήµατα εκτελούνται απλώς µε την αντίστροφη σειρά. 21

26 Εικόνα 2.5: Το πρότυπο κρυπτογράφησης δεδοµένων. (α) Γενική διάρθρωση (β) Λεπτοµέρεια µίας επανάληψης. Το + µέσα σε κύκλο, σηµαίνει αποκλειστική διάζευξη. [5] Η λειτουργία ενός από τα ενδιάµεσα αυτά στάδια απεικονίζεται την εικόνα 2.5 (β). Το κάθε στάδιο λαµβάνει δύο εισόδους των 32 bit. Η αριστερή έξοδος είναι ένα απλό αντίγραφο της δεξιάς εισόδου. Η δεξιά είσοδος είναι η αποκλειστική διάζευξη σε επίπεδο bit µεταξύ της αριστερής εισόδου και µιας συνάρτησης της δεξιάς εισόδου και του κλειδιού του σταδίου αυτού, του K i. Η όλη πολυπλοκότητα έγκειται σε αυτή τη συνάρτηση. Η συνάρτηση αυτή αποτελείται από τέσσερα βήµατα, τα οποία εκτελούνται διαδοχικά. Αρχικά κατασκευάζεται ένας 48µπιτος αριθµός Ε, µε επέκταση του 32µπιτου αριθµού R i 1 σύµφωνα µε ένα σταθερό κανόνα µετάθεσης και αντιγραφής. εύτερον, τα Ε και Κi συνδυάζονται µε αποκλειστική διάζευξη. Το αποτέλεσµα τεµαχίζεται σε οκτώ οµάδες των 6 bit, µε κάθε οµάδα να τροφοδοτείται σε διαφορετικό κουτί S.Κάθε µία από τις 64 πιθανές εισόδους του κάθε κουτιού S αντιστοιχίζεται σε µια έξοδο των 4 bit. Τελικά, αυτά τα 8 x 4 bit περνούν από ένα κουτί Ρ. Σε κάθε µια από τις 16 επαναλήψεις χρησιµοποιείται διαφορετικό κλειδί. Πριν ξεκινήσει ο αλγόριθµος, εφαρµόζεται µία µετάθεση των 56 bit στο κλειδί. Ακριβώς πριν από κάθε επανάληψη το κλειδί τεµαχίζεται σε δύο τµήµατα των 28 bit, το καθένα από τα οποία περιστρέφεται προς τα αριστερά κατά ένα 22

27 πλήθος bit που εξαρτάται από τον αριθµό της επανάληψης. Το Κ i παράγεται από αυτό το περιστραµµένο κλειδί, µε εφαρµογή άλλης µίας µετάθεσης των 56 bit σε αυτό. Σε κάθε γύρο εξάγεται και µετατίθεται ένα διαφορετικό 48µπιτο υποσύνολο από τα 56 bit του κλειδιού. Μία τεχνική που χρησιµοποιείται ορισµένες φορές για να κάνει πιο ισχυρό το DES ονοµάζεται λεύκανση (whitening). Στην τεχνική αυτή κάθε οµάδα απλού κειµένου περνά από αποκλειστική διάζευξη µε ένα τυχαίο κλειδί των 64 bit πριν τροφοδοτηθεί στο DES, και το κρυπτοκείµενο που προκύπτει περνά από αποκλειστική διάζευξη µε ένα δεύτερο κλειδί των 64 bit πριν την αποστολή του. Η λεύκανση µπορεί να αντιστραφεί εύκολα µε εκτέλεση των αντίστροφων λειτουργιών (εφόσον ο παραλήπτης διαθέτει τα δυο κλειδιά λεύκανσης ). Αφού η τεχνική αυτή ουσιαστικά προσθέτει περισσότερα bit στο µήκος του κλειδιού, κάνει την εξαντλητική έρευνα του χώρου των κλειδιών πολύ πιο χρονοβόρα. Σηµειώνουµε ότι για κάθε τµήµα χρησιµοποιείται το ίδιο κλειδί λεύκανσης (µε άλλα λόγια, υπάρχει ένα µόνο κλειδί λεύκανσης). Το DES υφίσταται αµφισβητήσεις από την ηµέρα που κυκλοφόρησε. Βασίστηκε σε µια κρυπτογραφία που αναπτύχθηκε από τιν ΙΒΜ και ήταν ευρεσιτεχνία της, η οποία ονοµαζόταν Lucifer, µε την διαφορά ότι η κρυπτογραφία της ΙΒΜ χρησιµοποιούσε κλειδί των 128 bit, αντί για κλειδί των 56 bit. Όταν η οµοσπονδιακή κυβέρνηση των Η.Π.Α. θέλησε να τυποποιήσει µια κρυπτογραφία για µια µη απόρρητη χρήση, «προσκάλεσε» την ΙΒΜ να «συζητήσει» το θέµα µε την NSA, την υπηρεσία σπασίµατος κωδικών της κυβέρνησης των Η.Π.Α., η οποία είναι ο µεγαλύτερος εργοδότης µαθηµατικών και κρυπτολόγων στον κόσµο. Μετά από αυτές τις συζητήσεις, η ΙΒΜ µίκρυνε το κλειδί από τα 128 bit στα 56 bit και αποφάσισε να κρατήσει µυστική τη διαδικασία µε την οποία σχεδιάστηκε το DES. Πολλοί υποψιάστηκαν ότι το µήκος του κλειδιού µειώθηκε προκειµένου να εξασφαλιστεί ότι η NSA θα µπορούσε να σπάει το DES, ενώ κανένας οργανισµός µε µικρότερο προϋπολογισµό δεν θα µπορεί να κάνει το ίδιο. Ο λόγος της κρυφής σχεδίασης υποτίθεται ότι ήταν η απόκρυψη µιας «κερκόπορτας» που θα έκανε ακόµα ευκολότερο το σπάσιµο του DES από την NSA. Όταν ένας υπάλληλος της NSA είπε διακριτικά στο ΙΕΕΕ να ακυρώσει ένα προγραµµατισµένο συνέδριο για την κρυπτογραφία, το γεγονός αυτό δεν έκανε κανέναν να νιώσει πιο άνετα. Η NSA αρνήθηκε τα πάντα Triple DES Από το 1979 ήδη, η IBM κατάλαβε ότι το µήκος κλειδιού του DES ήταν πολύ µικρό και επινόησε έναν τρόπο για την ουσιαστική αύξησή του, χρησιµοποιώντας τριπλή κρυπτογράφηση (Tuchuman, 1979) [5]. Η µέθοδος που επιλέχθηκε, η οποία από τότε έχει ενσωµατωθεί στο ιεθνές Πρότυπο 8732, απεικονίζεται στην εικόνα 2.6. Στη µέθοδο αυτή χρησιµοποιούνται δύο κλειδιά και τρία στάδια. Στο πρώτο στάδιο, το απλό κείµενο κρυπτογραφείται µε το συνηθισµένο τρόπο µέσω DES µε το κλειδί K 1. Στο δεύτερο στάδιο το 23

28 DES εκτελείται σε κατάσταση αποκρυπτογράφησης, µε το κλειδί K 2. Τέλος, γίνεται άλλη µία κρυπτογράφηση µέσω DES µε το κλειδί K 1. Εικόνα 2.6: (α) Τριπλή κρυπτογράφηση µε χρήση του DES. (β) Αποκρυπτογράφηση. [5] Η σχεδίαση αυτή εγείρει άµεσα δύο ερωτήµατα. Πρώτον, γιατί χρησιµοποιούνται δύο µόνο κλειδιά, αντί για τρία; εύτερον, γιατί χρησιµοποιείται η σειρά Κρυπτογράφηση Αποκρυπτογράφηση Κρυπτογράφηση ή EDE (Encrypt Decrypt Encrypt), αντί για τη σειρά Κρυπτογράφηση Κρυπτογράφηση Κρυπτογράφηση ή ΕΕΕ (Encrypt Encrypt Encrypt); Ο λόγος για τον οποίο χρησιµοποιούνται δύο κλειδιά είναι ότι ακόµα και οι πλέον παρανοϊκοί κρυπτογράφοι πιστεύουν ότι τα 112 bit είναι επαρκή προς το παρόν για τις συνηθισµένες εµπορικές εφαρµογές. (Και ανάµεσα στους κρυπτογράφους η παράνοια θεωρείται προσόν και όχι ελάττωµα.) Η µετάβαση στα 168 bit θα πρόσθετε απλώς µια άχρηστη επιβάρυνση διαχείρισης και µεταφοράς ενός ακόµα κλειδιού, µε πολύ µικρό κέρδος. Ο λόγος για τον οποίο χρησιµοποιείται η σειρά κρυπτογράφηση, αποκρυπτογράφηση και µετά ξανά κρυπτογράφηση είναι η συµβατότητα προς τα πίσω µε τα υπάρχοντα συστήµατα DES ενός κλειδιού. Οι συναρτήσεις κρυπτογράφησης και αποκρυπτογράφησης είναι και οι δύο αντιστοιχίσεις ανάµεσα σε σύνολα 64µπιτων αριθµών. Από την οπτική γωνία της κρυπτογραφίας, οι δύο αντιστοιχίσεις είναι εξίσου ισχυρές. Όταν όµως χρησιµοποιείται η σειρά EDE, αντί για τη σειρά EEE, ένας υπολογιστής που χρησιµοποιεί τριπλή κρυπτογράφηση µπορεί να συνοµιλήσει µε έναν υπολογιστή που χρησιµοποιεί µονή κρυπτογράφηση ορίζοντας απλώς K 1 =K 2. Η ιδιότητα αυτή επιτρέπει τη σταδιακή εισαγωγή της τριπλής κρυπτογράφησης γεγονός που είναι άνευ σηµασίας για τους ακαδηµαϊκούς κρυπτογράφους, αλλά έχει µεγάλη σηµασία για την IBM και τους πελάτες της AES Ο αλγόριθµος AES [7] ήταν αποτέλεσµα µιας παγκόσµιας κλήσης από το Εθνικό Ινστιτούτο Προτύπων και Τεχνολογίας της αµερικάνικης κυβέρνησης (National Institute of Standards and Technology, NIST) το 1997, για την ανάγκη ενός δυνατού αλγορίθµου κρυπτογράφησης. Αναπτύχθηκε από δύο Βέλγους κρυπτογράφους, τον Vincent Rijment και τον Joan Daemen. Στη συνέχεια κρίθηκε ικανός για την κρυπτογράφηση απόρρητων δεδοµένων της αµερικάνικης κυβέρνησης. Ο αλγόριθµος χρησιµοποιεί ένα από τρία κλειδιά των 128 bits, 192 bits ή 256 bits. Κάθε κλειδί οδηγεί τον αλγόριθµο να συµπεριφέρεται διαφορετικά και κατά συνέπεια στην πολυπλοκότητα αλλά και στη δύσκολη αποκρυπτογράφηση των δεδοµένων. Το ακρωνύµιο AES προέρχεται από την φράση Advanced Encryption Standard. Είναι ένας block cipher που προορίζεται να γίνει τυποποίηση του FIPS και να αντικαταστήσει 24

29 τον DES. Ο DES βρίσκεται ήδη πολλά χρόνια σε χρήση και από το 1998 το NIST δεν τον ανανεώνει. 2.4 Ασύµµετρη Κρυπτογράφηση Εισαγωγή στην Κρυπτογραφία ηµοσίου Κλειδιού Από ιστορικής πλευράς, το πρόβληµα της διανοµής των κλειδιών ήταν πάντα ο αδύναµος κρίκος των περισσότερων κρυπτοσυστηµάτων [5]. Άσχετα µε το πόσο δυνατό ήταν το κρυπτοσύστηµα, εάν ένας παρείσακτος µπορούσε να κλέψει το κλειδί το σύστηµα ήταν άχρηστο. Εφόσον όλοι οι κρυπτολόγοι θεωρούσαν δεδοµένο ότι τα κλειδιά κρυπτογράφησης και αποκρυπτογράφησης ήταν τα ίδια (ή θα προέκυπταν εύκολα το ένα από το άλλο) και το κλειδί έπρεπε να διανεµηθεί σ' όλους τους χρήστες του συστήµατος, φαινόταν σαν να υπήρχε ένα εγγενές πρόβληµα: τα κλειδιά έπρεπε να προφυλαχθούν από κλοπή, αλλά έπρεπε επίσης και να διανεµηθούν, εποµένως δεν µπορούσαν να κλειδωθούν στο θησαυροφυλάκιο µιας τράπεζας. Το 1976 δύο ερευνητές στο Stanford University, οι Diffie και Hellman, πρότειναν έναν ριζικά καινούργιο τύπο κρυπτοσυστήµατος, όπου τα κλειδιά κρυπτογράφησης και αποκρυπτογράφησης ήταν διαφορετικά και το κλειδί αποκρυπτογράφησης δεν µπορούσε να προκύψει από το κλειδί κρυπτογράφησης (Υπάρχουν τώρα αποδείξεις ότι επιστήµονες της Βρετανικής Υπηρεσίας Πληροφοριών το είχαν ανακαλύψει µερικά χρόνια πριν, αλλά κρατήθηκε στρατιωτικό µυστικό και δεν αξιοποιήθηκε περαιτέρω).ο κυριότερος αλγόριθµος της κρυπτογραφίας δηµοσίου κλειδιού, ο RSA, εφευρέθηκε από τους Rivest, Shamir, και Adelman το Άλλα συστήµατα που προτάθηκαν την ίδια εποχή: Το πρωτόκολλο του Rabin που βασίζεται στη δυσκολία υπολογισµού της τετραγωνικής ρίζας (x^2=y mod pq, δίνεται το y, βρες το x). Πρωτόκολλα βασισµένα στο πρόβληµα του διακριτού λογαρίθµου (π.χ., το κρυπτοσύστηµα ElGamal, α^a=β mod p, δίνονται τα α,β, βρες το a) Επίσης, τα τελευταία χρόνια προτάθηκαν νέα κρυπτογραφικά συστήµατα βασισµένα σε καλύτερες θεωρητικές βάσεις, όπως σε προβλήµατα πλέγµατος σηµείων. Στην κρυπτογραφία δηµοσίου κλειδιού [8], ο χρήστης έχει στην κατοχή του, ένα ζεύγος κλειδιών, ιδιωτικό και δηµόσιο. Το δηµόσιο κλειδί µπορεί να το έχει οποιοσδήποτε θέλει να στείλει ένα κρυπτογραφηµένο µήνυµα στον ιδιοκτήτη του κλειδιού (συνήθως δηµοσιεύεται στο ευρύ κοινό) και το χρησιµοποιεί για να κρυπτογραφήσει το µήνυµα. Το κρυπτογραφηµένο µήνυµα, µπορεί να αποκρυπτογραφηθεί µόνο µε το ιδιωτικό κλειδί του παραλήπτη και γι αυτό πρέπει να φυλάσσεται καλά ώστε να µη περιέλθει στην κατοχή άλλου, εκτός από τον νόµιµο κάτοχό του. Η διαδικασία φαίνεται στην εικόνα

30 Εικόνα 2.7: Μοντέλο κρυπτογράφησης ζεύγους κλειδιών Το βασικό προτέρηµα αυτού του είδους της κρυπτογραφίας (και ο λόγος που αρχικά πολεµήθηκε η διανοµή του) είναι ότι επιτρέπει στο ευρύ κοινό να ανταλλάσει µηνύµατα µε ασφαλή τρόπο. Μέχρι τώρα αυτό ήταν προνόµιο µόνο των κυβερνήσεων και των µεγάλων οργανισµών που είχαν την οικονοµική ευχέρεια να αναπτύξουν ασφαλή δίκτυα διανοµής των µυστικών κλειδιών τους. Άλλα πλεονεκτήµατα της κρυπτογραφίας δηµοσίου κλειδιού, είναι τα εξής: εν απαιτεί προηγούµενη συµφωνία για κλειδιά και δεν χρειάζεται µεταφορά κλειδιών. Νέες µονάδες/µέλη µπορούν να αρχίσουν να επικοινωνούν αµέσως (ιδιαίτερα χρήσιµο στο ιαδίκτυο). Επιτρέπει πολλά επιπλέον επιθυµητά πρωτόκολλα (authentication, secret sharing, signature, etc). Έχει δοκιµαστεί επαρκώς στην πράξη µε ικανοποιητικά αποτελέσµατα. Βασίζεται στην σοβαρή και αυστηρή θεωρία της Υπολογιστικής Πολυπλοκότητας. Βέβαια, έχει και διάφορα µειονεκτήµατα, µε τα σηµαντικότερα να είναι τα εξής: Το µέγεθος των κλειδιών της κρυπτογραφίας δηµοσίου κλειδιού, είναι κατά πολύ µεγαλύτερο σε σύγκριση µε τα κλειδιά της συµµετρικής κρυπτογραφίας. εν έχει αποδειχθεί µε µαθηµατική µέθοδο η ασφάλεια της κρυπτογραφίας δηµοσίου κλειδιού. Στην πρόταση των Diffie και Hellman, ο (µε κλειδί) αλγόριθµος κρυπτογράφησης Ε και ο (µε κλειδί) αλγόριθµος αποκρυπτογράφησης D, έπρεπε να ικανοποιούν τις ακόλουθες τρεις απαιτήσεις. Αυτές οι απαιτήσεις µπορούν να διατυπωθούν µε απλό τρόπο ως εξής: 26

31 1. D(Ε(Ρ)) = Ρ 2. Είναι υπερβολικά δύσκολη η παραγωγή του κλειδιού αποκρυπτογράφησης από κλειδί κρυπτογράφησης. 3. Ο αλγόριθµος Ε δεν µπορεί να σπάσει µε επίθεση επιλεγµένου κειµένου. Η πρώτη απαίτηση λέει ότι εάν εφαρµόσουµε τον αλγόριθµο D σε κρυπτογράφηµα, το Ε(Ρ), θα ξαναπάρουµε το πρωτότυπο κείµενο, Ρ. Η δεύτερη απαίτηση µιλά από µόνη της. Η τρίτη απαίτηση χρειάζεται επειδή, όπως θα δούµε αµέσως οι παρείσακτοι µπορεί να πειραµατίζονται µε τον αλγόριθµο όσο τραβά η ψυχή τους. Κάτω απ' αυτές τις συνθήκες,δεν υπάρχει λόγος να µην δηµοσιοποιηθεί το κλειδί κρυπτογράφησης. Γι αυτόν τον λόγο ονοµάστηκε κρυπτογραφία δηµόσιου κλειδιού (άλλη ονοµασία που έχει είναι ασύµµετρη κρυπτογραφία). Μερικά παραδείγµατα αλγορίθµων ζεύγους κλειδιών είναι ο Elgamal (από το όνοµα του ευφευρέτη του Taher Elgamal), ο RSA (από τα ονόµατα των ευφευρετών του Ron Rivest, Adi Shamir και Leonard Adleman), ο Diffie- Hellman (από το όνοµα, όπως µαντέψατε, των 18 ευφευρετών του) και ο DSA, the Digital Signature Algorithm, (επινοηµένος από τον David Kravitz, που δεν τον ενδιέφερε από ότι φαίνεται η υστεροφηµία). Σε επόµενη ενότητα, περιγράφεται αναλυτικά ο αλγόριθµος RSA που είναι και ο πιο διαδεδοµένος, και επιπλέον είναι αυτός που χρησιµοποιείται από την εφαρµογή για την παραγωγή του ζεύγους κλειδιών του ψηφοφόρου και όλων των οντοτήτων του συστήµατος Αλγόριθµοι ηµοσίου Κλειδιού Οι ασύµµετροι αλγόριθµοι κρυπτογραφίας [5], σε αντίθεση µε τους συµµετρικούς, χρησιµοποιούν δύο διαφορετικά κλειδιά για τις λειτουργίες κρυπτογράφησης και αποκρυπτογράφησης. Τα κλειδιά αυτά χρησιµοποιούνται κατά ζεύγη µε το ένα κλειδί να τηρείται µυστικό (στην κατοχή του ιδιοκτήτη) και το άλλο να δηµοσιοποιείται. Αν E είναι η συνάρτηση κρυπτογράφησης και D είναι η συνάρτηση αποκρυπτογράφησης, και Ε k και D k τα αντίστοιχα κλειδιά, για έναν ασύµµετρο αλγόριθµο ισχύει: D(E(data, Ε k ), D k ) = E(D(data, D k ), Ε k ) = data Με άλλα λόγια δηλαδή, η σειρά εφαρµογής των πράξεων κρυπτογράφησης και αποκρυπτογράφησης δεν επηρεάζει το αποτέλεσµα. Η ιδιότητα αυτή επιτρέπει σε έναν µοναδικό αλγόριθµο και ενδεχοµένως ένα ζεύγος κλειδιών να χρησιµοποιηθεί τόσο για στόχους αυθεντικότητας όσο και για εµπιστευτικότητας, υπό το σχήµα ότι χρησιµοποιεί κανείς το δικό του µυστικό κλειδί για να δηµιουργήσει µια δική του ψηφιακή υπογραφή η οποία µπορεί να επαληθευτεί από οποιονδήποτε βάσει του δηµόσιου κλειδιού, ενώ παράλληλα οποιοσδήποτε µπορεί να κρυπτογραφήσει πληροφορία µε το δηµόσιο κλειδί και να την αποστείλει στον κάτοχο του ιδιωτικού κλειδιού, ο οποίος είναι ο 27

32 µόνος που µπορεί να την αποκρυπτογραφήσει. Ο πιο γνωστός ασύµµετρος αλγόριθµος είναι ο RSA Ο Αλγόριθµος RSA Η µοναδική δυσκολία στην κρυπτογραφία δηµοσίου κλειδιού είναι ότι χρειάζεται να βρούµε αλγορίθµους που πράγµατι να ικανοποιούν και τις τρεις απαιτήσεις που προαναφέρθηκαν. Επειδή σε αυτό το είδος της κρυπτογραφίας υπάρχουν πολλά ενδεχόµενα πλεονεκτήµατα, πολλοί ερευνητές δουλεύουν σκληρά και ήδη έχουν δηµοσιευθεί µερικοί αλγόριθµοι. Ο RSA [5],[7] είναι ένας από αυτούς και επινοήθηκε όπως είπαµε από µια οµάδα στο Μ.Ι.Τ. (Rίvest, Shamir, Adleman). Η µέθοδός τους βασίζεται σε αρχές της Θεωρίας Αριθµών. Παρακάτω θα αναφερθεί συνοπτικά το πώς χρησιµοποιείται η µέθοδος. Για λεπτοµέρειες συµβουλευτείτε το άρθρο [Rίvest et al., 1978] 1. Επιλέξτε δύο µεγάλους πρώτους αριθµούς, p και q (συνήθως µεγαλύτερους από 10100). 2. Υπολογίστε n = p q και z = (p - 1) (q - 1). 3. Επιλέξτε έναν πρώτο αριθµό ως προς το z και ονοµάστε τον d. 4. Βρείτε το e, έτσι ώστε e d 1 mod z. 'Εχοντας υπολογίσει εκ των προτέρων αυτές τις παραµέτρους, είµαστε έτοιµοι να ξεκινήσουµε την κρυπτογράφηση. ιαιρέστε το κείµενο (που θεωρείται ως συρµός bit) σε µπλοκ, έτσι ώστε κάθε µήνυµα κειµένου Ρ, να πέφτει στο διάστηµα 0 Ρ < n. Αυτό µπορεί να γίνει µε οµαδοποίηση του κειµένου σε µπλοκ των k bίt, όπου το k είναι ο µεγαλύτερος ακέραιος για τον οποίον η σχέση 2k<n είναι αληθής. Για να κρυπτογραφήσετε το µήνυµα Ρ, υπολογίστε το C Ρe (mod n). Για να αποκρυπτογραφήσετε το C υπολογίστε το Ρ Cd (mod n). Μπορεί να αποδειχθεί ότι για όλα τα Ρ στην καθορισµένη περιοχή, οι λειτουργίες κρυπτογράφησης και αποκρυπτογράφησης είναι αντίστροφες. Για την κρυπτογράφηση χρειάζεστε τα e και n. Για την αποκρυπτογράφηση, χρειάζεστε τα d και n. Εποµένως, το δηµόσιο κλειδί αποτελείται από το ζευγάρι (e, n) και το µυστικό κλειδί αποτελείται από το ζευγάρι (d, n). Η ασφάλεια της µεθόδου βασίζεται στη δυσκολία της παραγοντοποίησης µεγάλων αριθµών. Εάν ο κρυπταναλυτής µπορούσε να παραγοντοποιήσει το (δηµόσια γνωστό) n, θα µπορούσε στη συνέχεια να βρει τα p και q και απ' αυτά το z. Εάν διαθέτει τα z και e, µπορεί να βρει το d µε τη βοήθεια του αλγόριθµου του Ευκλείδη. Ευτυχώς (ή δυστυχώς για άλλους) οι µαθηµατικοί προσπαθούν να παραγοντοποιήσουν µεγάλους αριθµούς εδώ και 300 τουλάχιστον χρόνια, αλλά οι συσσωρευµένες ενδείξεις συνηγορούν ότι πρόκειται για υπερβολικά δύσκολο πρόβληµα. Σύµφωνα µε τον Rίvest και τους συναδέλφους του, η παραγοντοποίηση ενός αριθµού µε 200 ψηφία απαιτεί 4 δισεκατοµµύρια χρόνια υπολογιστικού 28

33 χρόνου. Η παραγοντοποίηση ενός αριθµού µε 500 ψηφία απαιτεί 1025 χρόνια. Και στις δύο περιπτώσεις, υποθέτουν ότι διαθέτουν τον καλύτερο γνωστό αλγόριθµο κι έναν υπολογιστή µε χρόνο εντολής 1 µsec. Ακόµα και αν οι υπολογιστές συνεχίσουν να γίνονται ταχύτεροι κατά µία τάξη µεγέθους ανά δεκαετία θα χρειαστούν αιώνες για να γίνει δυνατή η παραγοντοποίηση αριθµών µε 500 ψηφία αλλά και τότε οι απόγονοί µας θα µπορούν απλώς να επιλέγουν ακόµα µεγαλύτερα p και q. Ένα απλό εκπαιδευτικό παράδειγµα του αλγόριθµου RSA φαίνεται στην εικόνα 2.8. Στο παράδειγµα αυτό επιλέχθηκε p = 3 και q = 11, που δίνουν n = 33 και z = 20. Μια κατάλληλη τιµή για το d είναι d = 7, επειδή το 7 και το 20 δεν έχουν κοινούς παράγοντες. Μ' αυτές τις επιλογές, το e µπορεί να βρεθεί λύνοντας την εξίσωση 7 e 1 (mod 20), που δίνει e = 3. Εικόνα 2.8: Παράδειγµα του Αλγορίθµου RSA [5] Το κρυπτογραφηµένο κείµενο C για το µήνυµα κειµένου Ρ, δίνεται από τη σχέση C Ρ3 (mod 33). Το κρυπτογραφηµένο κείµενο αποκρυπτογραφείται από τον δέκτη σύµφωνα µε τον κανόνα ΡC 7 (mod 33). Ως παράδειγµα, το σχήµα δείχνει την κρυπτογράφηση του κειµένου "SUZANNE". Επειδή οι πρώτοι αριθµοί που επιλέχτηκαν σ' αυτό το παράδειγµα είναι πολύ µικροί, το Ρ πρέπει να είναι πολύ µικρότερο από το 33, οπότε κάθε µπλοκ κειµένου µπορεί να περιέχει µόνο έναν χαρακτήρα. Το αποτέλεσµα είναι ένα κρυπτογράφηµα µοναλφαβητικής αντικατάστασης, κάτι όχι και τόσο εντυπωσιακό. Εάν όµως είχαµε επιλέξει p και q 10100, θα είχαµε n

34 οπότε κάθε µπλοκ θα µπορούσε να φθάσει έως τα 664 bit ( ) ή 83 χαρακτήρες των 8 bit, έναντι των 8 χαρακτήρων του DES. Πρέπει να τονισθεί ότι η χρήση του RSA, όπως τον περιγράψαµε, µοιάζει µε τη χρήση του DES σε µια ειδική λειτουργία (λειτουργία ECB) - το ίδιο µπλοκ εισόδου δίνει το ίδιο µπλοκ εξόδου. Συνεπώς, χρειάζεται κάποια µορφή αλυσίδας για την κρυπτογράφηση των 21 δεδοµένων. Ωστόσο στην πράξη, τα περισσότερα συστήµατα που βασίζονται στον RSA χρησιµοποιούν κρυπτογραφία δηµοσίου κλειδιού, κυρίως για να διανέµουν κλειδιά συνόδου µίας χρήσης για τον DES, IDEA ή παρόµοιους αλγορίθµους. Ο RSA είναι υπερβολικά αργός για να κρυπτογραφήσει πραγµατικά µεγάλες ποσότητες δεδοµένων. Ο RSA βασίζεται στη δυσκολία παραγοντοποίησης µεγάλων αριθµών όπως είπαµε. Άλλοι αλγόριθµοι δηµοσίου κλειδιού βασίζονται στη δυσκολία του υπολογισµού διακριτών λογαρίθµων και του καθορισµού του περιεχοµένου ενός ζυγού από το βάρος του, προβλήµατα που εδώ και αιώνες προσπαθούν να επιλυθούν από τους µαθηµατικούς. Υπάρχουν επίσης µέθοδοι που βασίζονται σε ελλειπτικές συναρτήσεις και στις ιδιότητές τους Κλειδιά Το κλειδί είναι ένας πολύ µεγάλος αριθµός που χρησιµοποιείται από έναν αλγόριθµο κρυπτογράφησης ώστε να δηµιουργηθεί το κρυπτογράφηµα. Το µέγεθός του µετράται σε bits. Ο αριθµός που αντιπροσωπεύει ένα κλειδί µεγέθους 2048 bits είναι υπερβολικά µεγάλος. Στην κρυπτογραφία, όσο µεγαλύτερο το κλειδί, τόσο πιο ασφαλές είναι το κρυπτογράφηµα. Παρόλα αυτά, το µήκος του κλειδιού δεν αποτελεί κριτήριο όταν συγκρίνουµε την αποτελεσµατικότητα των αλγορίθµων µυστικού και δηµόσιου κλειδιού. Ένα κλειδί συµµετρικής κρυπτογράφησης των 80 bits έχει την ίδια ισχύ µε ένα δηµόσιο κλειδί των 1024 bits, ενώ ένα των 128 bits είναι περίπου ισοδύναµο µε ένα δηµόσιο των 3000 bits. Αυτό οφείλεται στην διαφορετικότητα των αλγορίθµων που χρησιµοποιούνται και έτσι η σύγκριση µεταξύ τους δεν έχει νόηµα. Αν και το δηµόσιο και το ιδιωτικό κλειδί είναι µαθηµατικά συσχετιζόµενα όπως είδαµε, είναι πολύ δύσκολη η εξαγωγή του ενός από το άλλο, αν και όχι αδύνατη, δεδοµένης µεγάλης υπολογιστικής ισχύος και χρόνου. Αυτό κάνει φανερή τη σηµασία της επιλογής του σωστού µεγέθους κλειδιού. Αρκετά µεγάλο ώστε να υπάρχει ασφάλεια, αλλά όσο µικρότερο γίνεται ώστε να επιταχυνθεί η εφαρµογή του. Επίσης πρέπει να ληφθεί υπόψη και το ποιος θα προσπαθούσε ενδεχοµένως να διαβάσει το αρχείο, πόσο αποφασισµένος είναι, πόσο χρόνο διαθέτει και τι είδους µέσα. Όσο µεγαλύτερα τα κλειδιά, τόσο η ασφάλεια θα είναι εγγυηµένη για µεγαλύτερο χρονικό διάστηµα. Βέβαια ποιος γνωρίζει τι µας επιφυλάσσει το µέλλον από άποψη υπολογιστικής ισχύος; Υπηρχε καιρός (όχι πολύ παλιά) που ένα συµµετρικό κλειδί των 56 bits θεωρούνταν απόλυτα ασφαλές. Σήµερα πιστεύεται ότι τα κλειδιά µήκους 128 bits θα είναι ασφαλή για πάντα, τουλάχιστον µέχρι κάποιος να εφεύρει έναν χρηστικό κβαντικό υπολογιστή. 30

35 Επίσης πιστεύεται ότι ένα κλειδί των 256 bits θα είναι αφαλές ακόµα και στην περίπτωση κβαντικού υπολογιστή. Αλλά η ιστορία διδάσκει ότι είναι πολύ πιθανόν αυτές οι σκέψεις να φαίνονται αρκετά διασκεδαστικές σε µερικές δεκαετίες Χωρισµός κλειδιών Λένε ότι ένα µυστικό δεν είναι µυστικό όταν το γνωρίζει παραπάνω από ένα πρόσωπο. Το να µοιράζεσαι ένα ιδιωτικό κλειδί αποτελεί ένα µικρό πρόβληµα, αν και σε πολλές περιπτώσεις κάτι τέτοιο επιβάλλεται. Εταιρικά κλειδιά υπογραφής είναι αυτά που χρησιµοποιούνται από µια εταιρία για να υπογράφει τα έγγραφά της, όπως συµβόλαια, δελτία τύπου, ευαίσθητες πληροφορίες προσωπικού κλπ. Σε αυτήν την περίπτωση είναι απαραίτητο σε πολλά στελέχη της επιχείρησης να έχουν πρόσβαση στο ιδιωτικό της κλειδί, αυτό όµως σηµαίνει ότι ένα και µοναδικό άτοµο µπορεί να ενεργήσει εκ µέρους όλης της επιχείρησης. Σε καταστάσεις τέτοιου είδους θα ήταν πολύ βολικός ο διαχωρισµός του κλειδιού µεταξύ πολλών στελεχών. Έτσι, θα πρέπει να απαιτούνται περισσότερα του ενός άτοµα που να κατέχουν µέρη του κλειδιού, ώστε αυτό να µπορεί να συναρµολογηθεί και να χρησιµοποιηθεί. Για παράδειγµα το κλειδί µπορεί να χωριστεί σε τρία κοµµάτια και να απαιτούνται δύο από αυτά για να γίνει λειτουργικό, ή να χωριστεί σε δύο κοµµάτια και να απαιτούνται και τα δύο. Εάν χρησιµοποιείται κιόλας ασφαλές δίκτυο για την ανακατασκευή του κλειδιού, δεν απαιτείται καν η ταυτόχρονη φυσική παρουσία των κατόχων των µερών του για την υπογραφή ενός εγγράφου Συµµετρικοί έναντι ασύµµετρων αλγορίθµων Οι συµµετρικοί αλγόριθµοι µπορούν να υλοποιηθούν ιδιαίτερα αποτελεσµατικά, υπάρχει όµως το πρόβληµα ότι πρέπει να υπάρχει ένα διαµοιραζόµενο µυστικό. ύο εταίροι που ενέχονται σε επικοινωνία µε συµµετρική κρυπτογράφηση πρέπει να έχουν το ίδιο µυστικό κλειδί. Για τον λόγο αυτό, η συµµετρική κρυπτογραφία είναι ακατάλληλη για να αποδεικνύεται η ταυτότητα του κάθε µέρους σε τρίτους, καθώς τουλάχιστον δύο οντότητες µοιράζονται το ίδιο κλειδί, και έτσι το κλειδί δεν είναι µονοσήµαντος σύνδεσµος προς συγκεκριµένο χρήστη. Ένα ακόµη πρόβληµα είναι η αναγκαιότητα µετάδοσης του κλειδιού διαµέσου του δικτύου αν οι εταίροι της επικοινωνίας βρίσκονται σε διαφορετικές τοποθεσίες. Η συµµετρική κρυπτογραφία µπορεί να χρησιµοποιηθεί για επίτευξη της αυθεντικότητας, σε συνδυασµό µε έναν κεντρικό εξυπηρέτη αυθεντικοποίησης, ο οποίος φυλάσσει τα µυστικά για όλους τους εταίρους. Το πρόβληµα του κοινού µυστικού δεν υφίσταται στην ασύµµετρη κρυπτογραφία. Κάθε οντότητα κατέχει ένα µοναδικό ζεύγος κλειδιών. Ένα από αυτά δηµοσιοποιείται, ενώ το άλλο παραµένει στην αποκλειστική κατοχή και χρήση της οντότητας, πιθανώς αποθηκευόµενο σε κάποια έξυπνη κάρτα. Με το ιδιωτικό κλειδί παράγονται ψηφιακές υπογραφές, οι οποίες είναι 31

36 δυνατόν να επαληθευτούν µε το δηµόσιο κλειδί, επιτυγχάνοντας έτσι την αυθεντικότητα. Χρησιµοποιώντας αντιστρέψιµους αλγόριθµους είναι δυνατόν να επιτευχθεί και η εµπιστευτικότητα, καθώς ακόµη και αν υποκλαπεί η επικοινωνία, µόνο ο κάτοχος του µυστικού κλειδιού µπορεί να αποκρυπτογραφήσει το περιεχόµενό της. Η εφαρµογή ωστόσο της ασύµµετρης κρυπτογραφίας οδηγεί σε ένα σύνολο πρακτικών ζητηµάτων. Ένα από αυτά είναι ότι βασίζονται σε περίπλοκες µαθηµατικές θεωρίες και περιλαµβάνουν τη χρήση µεγάλων αριθµών, µε αποτέλεσµα να είναι πιο αργοί από τους συµµετρικούς και συνήθως ακατάλληλοι για κρυπτογράφηση δεδοµένων µεγάλου όγκου. Μια γενικώς παραδεκτή λύση είναι να κρυπτογραφούνται τα δεδοµένα µε συµµετρικούς αλγόριθµους και να ανταλλάσσονται τα σχετικά κλειδιά µε ασύµµετρους Εφαρµογές της Ασύµµετρης Κρυπτογραφίας Γενική λειτουργία ασύµµετρης κρυπτογραφίας Η κρυπτογραφία δηµοσίου κλειδιού, χρησιµοποιείται κυρίως στην κρυπτογράφηση µικρών µηνυµάτων όπως κλειδιών συµµετρικής κρυπτογραφίας και γι αυτό βρίσκει εφαρµογή στη διαχείριση κλειδιών συµµετρικής κρυπτογραφίας. Υποθέτοντας ότι τα δύο µέρη που θα επικοινωνήσουν είναι τα Α και Β και ότι τα δηµόσια και ιδιωτικά κλειδιά τους είναι E ka, E kb, D ka και D kb, θα πρέπει ο Α να έχει στην κατοχή του τα D ka και E kb, ενώ ο Β να έχει στην κατοχή του τα D kb και E ka. Για να στείλει ο Α στον Β κάποια δεδοµένα τα κρυπτογραφεί µε το E kb και τα αποστέλλει. Το κρυπτογραφηµένο µήνυµα που αποστέλλεται µπορεί να αποκρυπτογραφηθεί µόνο µε το ιδιωτικό κλειδί του Β (D kb ), το οποίο είναι γνωστό µόνον στον Β συνεπώς τα κρυπτογραφηµένα δεδοµένα δεν είναι χρήσιµα σε κάποιον υποκλοπέα που πιθανώς θα τα καταγράψει από τη γραµµή επικοινωνίας. Αντιστρόφως, για να στείλει δεδοµένα ο Β στον Α τα κρυπτογραφεί πρώτα µε το E ka και ο Α τα αποκρυπτογραφεί µε το D ka Ψηφιακές Υπογραφές Η αυθεντικότητα πολλών νοµικών, οικονοµικών και άλλων εγγράφων καθορίζεται από την παρουσία ή την απουσία µιας εξουσιοδοτηµένης, χειρόγραφης υπογραφής. Τα φωτοαντίγραφα δεν έχουν νοµική ισχύ. Για να αντικατασταθεί η φυσική µεταφορά επίσηµων εγγράφων (από χαρτί και µελάνι) από συστήµατα ανταλλαγής µηνυµάτων µέσω υπολογιστών, πρέπει να βρεθεί µια λύση αυτών των προβληµάτων. Το πρόβληµα της επινόησης ενός υποκατάστατου των χειρόγραφων υπογραφών είναι δύσκολο. Βασικά, αυτό που χρειάζεται είναι ένα σύστηµα όπου το ένα µέρος να µπορεί να στείλει ένα "υπογεγραµµένο" µήνυµα στο άλλο µέρος µε τέτοιο τρόπο ώστε 32

37 Ο αποδέκτης να µπορεί να επιβεβαιώσει την ταυτότητα που ισχυρίζεται ότι έχει ο αποστολέας. Ο αποστολέας να µην µπορεί αργότερα να αποκηρύξει τα περιεχόµενα του µηνύµατος. Ο αποδέκτης να µην µπορεί να έχει κατασκευάσει το µήνυµα µόνος του. Η πρώτη απαίτηση χρειάζεται, για παράδειγµα, σε οικονοµικά συστήµατα. Όταν ο υπολογιστής του πελάτη δίνει στον υπολογιστή µιας τράπεζας την εντολή να αγοράσει έναν τόνο χρυσό, ο υπολογιστής της τράπεζας πρέπει να είναι σε θέση να επιβεβαιώσει ότι ο υπολογιστής που δίνει την εντολή ανήκει πραγµατικά στην εταιρεία της οποίας ο λογαριασµός πρόκειται να χρεωθεί. Η δεύτερη απαίτηση χρειάζεται για να προστατευτεί η τράπεζα από ενδεχόµενη απάτη. Υποθέστε ότι η τράπεζα αγοράζει τον τόνο χρυσού και αµέσως µετά η τιµή του χρυσού πέφτει απότοµα. Ένας ανέντιµος πελάτης θα µπορούσε να µηνύσει την τράπεζα, ισχυριζόµενος ότι ποτέ δεν της έδωσε εντολή να αγοράσει χρυσό. Όταν η τράπεζα παρουσιάζει το µήνυµα στο δικαστήριο, ο πελάτης αρνείται ότι το έχει στείλει. Η τρίτη απαίτηση χρειάζεται για να προστατεύσει τον πελάτη στην περίπτωση που η τιµή του χρυσού εκτοξεύεται στα ύψη και η τράπεζα προσπαθήσει να κατασκευάσει ένα υπογεγραµµένο µήνυµα µε το οποίο ο πελάτης ζήτησε µία ράβδο χρυσού αντί για ένα τόνο. Η ψηφιακή υπογραφή [5],[7] εξυπηρετεί τον ίδιο σκοπό µε την σφραγίδα σε ένα έγγραφο. Όµως δηµιουργείται µε τέτοιον τρόπο που την κάνει ανώτερη από µια απλή σφραγίδα. Όχι µόνο πιστοποιεί την ταυτότητα του αποστολέα (authentication), αλλά επίσης εξασφαλίζει ότι τα δεδοµένα δεν έχουν αλλάξει στη διαδροµή (data integrity), πράγµα που δεν µπορεί να το προσφέρει µια σφραγίδα ή µια απλή υπογραφή. Παρόλα αυτά, όπως και µε τη σφραγίδα που µπορεί να χρησιµοποιηθεί από οποιονδήποτε την κατέχει, έτσι και µε την φηφιακή υπογραφή, µπορεί να χρησιµοποιηθεί από οποιονδήποτε έχει στην κατοχή του το ιδιωτικό κλειδί, γι αυτό χρειάζεται µεγάλη προσοχή κατά την αποθήκευσή του στον υπολογιστή (τα κλειδιά συνήθως είναι αποθηκευµένα σε κρυπτογραφηµένη µορφή). Συχνά η ψηφιακή υπογραφή είναι πιο χρήσιµη από την κρυπτογράφηση. Για παράδειγµα, µπορεί να µη σε ενδιαφέρει αν κάποιος γνωρίζει ότι κατέθεσες 1000 Ευρώ στον τραπεζικό σου λογαριασµό, αλλά θέλεις να είσαι 100% σίγουρος ότι αυτός µε τον οποίον συνεννοήθηκες ήταν ο ταµίας και όχι κάποιος επιτήδειος. Οι ψηφιακές υπογραφές µπορούν να χωριστούν σε διάφορες κατηγορίες, σε απλές και τυφλές υπογραφές (όπου ο υπογράφων δεν γνωρίζει το περιεχόµενο του µηνύµατος), σε υπογραφές µυστικού κλειδιού (όπου υπάρχει µια υπέρτατη αρχή που µπορεί να γνωρίζει τα πάντα) και υπογραφές δηµοσίου κλειδιού, και άλλες. Εµείς θα ασχοληθούµε µε τις υπογραφές δηµοσίου κλειδιού και τις τυφλές υπογραφές, οι οποίες άλλωστε χρησιµοποιούνται και από το πρόγραµµα της εφαρµογής. 33

38 Υπογραφές µε τη χρήση αλγορίθµων δηµοσίου κλειδιού Μία από τις σηµαντικότερες εφαρµογές της κρυπτογραφίας δηµοσίου κλειδιού είναι ότι παρέχει µια πολύ βολική µέθοδο για ψηφιακή υπογραφή δεδοµένων, επιτρέποντας τόσο την πιστοποίηση του αποστολέα, όσο και την εξασφάλιση της ακεραιότητας των δεδοµένων, έννοιες τόσο βασικές στην κρυπτογραφία όσο και το απόρρητο, όπως αναφέρθηκε και στην εισαγωγή. Ο βασικός τρόπος που δηµιουργείται µια ψηφιακή υπογραφή αυτού του είδους παρουσιάζεται στην παρακάτω εικόνα. Ο αλγόριθµος υπογραφής χρησιµοποιεί το ιδιωτικό κλειδί για να δηµιουργήσει την υπογραφή και το δηµόσιο για να την επαληθεύσει. Εάν τα δεδοµένα µπορούν να αποκρυπτογραφηθούν µε το δηµόσιο κλειδί, τότε προφανώς προήλθαν από τον ιδιοκτήτη του ιδιωτικού κλειδιού. Εικόνα 2.9: Μοντέλο υπογραφής δηµοσίου ιδιωτικού κλειδιού Hash Functions Συναρτήσεις Κατακερµατισµού Το σύστηµα που µόλις περιγράφηκε έχει κάποια εγγενή προβλήµατα. Είναι αργό και παράγει έναν τεράστιο όγκο δεδοµένων, τουλάχιστον τον διπλάσιο από τα αρχικά. Μια βελτίωση της παραπάνω µεθόδου είναι η προσθήκη µιας µονόδροµης συνάρτησης ανάδευσης (hash function) στην παραπάνω διαδικασία. Αυτή η συνάρτηση παίρνει ως είσοδο ένα αυθαίρετα µεγάλο κοµµάτι κειµένου και στην έξοδο δίνει έναν συρµό bit σταθερού µήκους, που καλείται σύνοψη µηνύµατος (message digest) [5],[7]. Οι τρεις βασικές της ιδιότητες είναι οι εξής: 1. εδοµένου του κειµένου Ρ είναι εύκολο να υπολογιστεί η σύνοψή του MD(P) 34

39 2. εδοµένου του MD(P) είναι πρακτικά αδύνατο να υπολογιστεί το Ρ. 3. Κανείς δεν µπορεί να δηµιουργήσει δύο µηνύµατα που να έχουν την ίδια σύνοψη µηνύµατος. Για να ικανοποιηθεί το 3ο κριτήριο, ο συρµός ανάδευσης που θα παραχθεί πρέπει να έχει µήκος τουλάχιστον 128bits, και προτιµότερο είναι να είναι ακόµα µεγαλύτερος. Στο πρόγραµµα χρησιµοποιείται ο αλγόριθµος SHA-1 (Secure Hash Algorithm) µε µήκος συρµού 160 bits (Άλλη σηµαντική συνάρτηση ανάδευσης που χρησιµοποιείται ευρέως είναι ο αλγόριθµος MD5). Η σύνοψη µηνύµατος κρυπτογραφείται µε το ιδιωτικό κλειδί του χρήστη ώστε να δηµιουργηθεί η υπογραφή, και αποστέλλεται µαζί µε τα δεδοµένα. Όταν ληφθούν τα δεδοµένα επαναϋπολογίζεται η σύνοψή τους και συγκρίνεται µε την αποκρυπτογραφηµένη σύνοψη που εξάχθηκε από την υπογραφή µε τη βοήθεια του δηµοσίου κλειδιού. Εάν αυτές ταιριάζουν, έχει επαληθευτεί η υπογραφή και µαζί µε αυτήν η ταυτότητα του αποστολέα και η ακεραιότητα των δεδοµένων που απέστειλε. Η συνάρτηση hash εξασφαλίζει ότι ακόµα και αν αλλάξει ένα bit από τα αρχικά δεδοµένα, η εξαγόµενη σύνοψη µηνύµατος θα είναι πολύ διαφορετική. Επίσης όπως γίνεται εύκολα αντιληπτό, δεν είναι δυνατόν να πάρει κάποιος µόνο την υπογραφή από τα δεδοµένα και να την επισυνάψει σε άλλα δεδοµένα της αρεσκείας του, ακριβώς λόγω της µοναδικότητας της σύνοψης µηνύµατος που περιλαµβάνει. Εποµένως και στις δύο περιπτώσεις η επαλήθευση αποστολέα-δεδοµένων είναι καταδικασµένη να αποτύχει. Η παρακάτω εικόνα (2.10) περιγράφει τη διαδικασία ψηφιακής υπογραφής µε τη χρήση της σύνοψης µηνύµατος. Εικόνα 2.10: Μοντέλο συνάρτησης κατακερµατισµού 35

40 Blind Signatures Τυφλές Υπογραφές Οι τυφλές υπογραφές [10],[11], πρώτα παρουσιάστηκαν από τον David Chaum (1983 και 1985). Μία τυφλή υπογραφή δίνει την ευκαιρία σε µία οντότητα να αποκτήσει ένα µήνυµα υπογεγραµµένο από µία άλλη οντότητα, χωρίς να χρειαστεί να αποκαλύψει καµία πληροφορία για το µήνυµα στην οντότητα που το υπογράφει. Χρησιµοποιώντας RSA υπογραφές, ο Chaum παρουσίασε την εφαρµογή της θεωρίας του ως εξής: Θεωρούµε πως η Alice έχει ένα µήνυµα m, το οποίο θέλει να το υπογράψει ο Bob, αλλά δε θέλει ο Bob να διαβάσει το m. Θεωρούµε (n, e) το δηµόσιο κλειδί του Bob και (n, d) το ιδιωτικό κλειδί του. Η Alice δηµιουργεί έναν τυχαίο αριθµό r, ώστε gcd(r, n)=1 και στέλνει στον Bob το x = (r e m) mod n. Το x, έχει «τυφλωθεί» από το r, κι έτσι ο Bob δε µπορεί να αποκοµίσει καµία χρήσιµη πληροφορία από αυτό. Ο Bob, επιστρέφει στην Alice την υπογεγραµµένη τιµή t = x d mod n. Αφού έχουµε x d º (r e m) d º r m d mod n, η Alice µπορεί να αποκτήσει την πραγµατική υπογραφή του Bob, υπολογίζοντας το s = r 1 t mod n. Στα επόµενα χρόνια, ασχολήθηκαν κι άλλοι εκτός του Chaum µε τις «τυφλές» υπογραφές, όπως οι M. Franklin και Μ. Yung (1994) και οι M. Stadler, J.M. Piveteau, και J. Carmenisch (1995). 2.5 Υποδοµή ηµοσίου Κλειδιού Είναι η αρχιτεκτονική, η οργανωτική δοµή, η τεχνικές, οι κανονισµοί και οι διαδικασίες που στο σύνολό τους υποστηρίζουν την εφαρµογή και λειτουργία κρυπτοσυστηµάτων δηµοσίου κλειδιού. Το PKI ενσωµατώνει ψηφιακά πιστοποιητικά, κρυπτογραφία δηµόσιου κλειδιού και αρχές πιστοποίησης σε ένα ασφαλές αρχιτεκτονικό σχήµα. Μια τυπική υλοποίηση του PKI περιλαµβάνει την παροχή ψηφιακών πιστοποιητικών σε χρήστες, εξυπηρετητές (servers) και λογισµικό χρηστών. Παράλληλα προσφέρει σειρά εργαλείων για τη διαχείριση, ανανέωση και ανάκληση των πιστοποιητικών Ψηφιακά Πιστοποιητικά (Certificates) Το πιστοποιητικό (certificate) [5],[7] είναι ο τρόπος µε τον οποίο η Υποδοµή ηµόσιου Κλειδιού µεταδίδει τις τιµές των δηµόσιων κλειδιών ή πληροφορίες που σχετίζονται µε αυτά, ή και τα δύο. Η εκδότρια αρχή των πιστοποιητικών ονοµάζεται Αρχή Πιστοποίησης (Certificate Authority - CA). Οι Αρχές Πιστοποίησης διασφαλίζουν τη δηµοσίευση και τη διανοµή των δηµόσιων κλειδιών και λαµβάνουν το δηµόσιο κλειδί του ενδιαφερόµενου χρήστη. Εάν o χρήστης ενεργεί στη συγκεκριµένη περίπτωση ως ιδιώτης, θα πρέπει να παραχωρήσει όλα τα απαραίτητα στοιχεία που αποδεικνύουν την ταυτότητά του. Σε αντίθετη περίπτωση, ο χρήστης θεωρείται ότι ενεργεί εκ µέρους 36

41 κάποιας επιχείρησης, οπότε οφείλει να παραχωρήσει όλες τις νοµικές πληροφορίες που απαιτούνται για την αξιοπιστία και τη νόµιµη λειτουργία της. Ουσιαστικά ένα ψηφιακό πιστοποιητικό αποτελεί µια ψηφιακά υπογεγραµµένη δήλωση από µια αρχή πιστοποίησης, η οποία: Προσδιορίζει την αρχή πιστοποίησης που το εξέδωσε Περιέχει το όνοµα και κάποιες άλλες πληροφορίες του εγγεγραµµένου Περιέχει το δηµόσιο κλειδί του εγγεγραµµένου, το οποίο είναι ψηφιακά υπογεγραµµένο από την αρχή πιστοποίησης που το εξέδωσε Για την πιστοποίηση της ταυτότητας των συναλλασσοµένων χρησιµοποιούνται τα πιστοποιητικά ασφαλείας, που επιπλέον εγγυώνται και την ασφάλεια ενός δικτυακού τόπου. Yπάρχουν δύο είδη πιστοποιητικών: Tα προσωπικά πιστοποιητικά, τα οποία αποτελούν ένα είδος εγγύησης ότι ο χρήστης είναι αυτός που δηλώνει ότι είναι. Σε αυτά καταχωρούνται προσωπικές πληροφορίες, όπως όνοµα χρήστη και κωδικός πρόσβασης. Στη συνέχεια, οι πληροφορίες αυτές αποθηκεύονται σε ένα πιστοποιητικό, το οποίο χρησιµοποιείται όταν στέλνονται προσωπικές πληροφορίες σε ένα διακοµιστή ελέγχου ταυτότητας που απαιτεί πιστοποιητικό. Eπίσης, ένα προσωπικό πιστοποιητικό επιτρέπει στο χρήστη να λαµβάνει κρυπτογραφηµένα µηνύµατα από τους υπόλοιπους χρήστες. Tα πιστοποιητικά δικτυακών τόπων, τα οποία περιέχουν πληροφορίες που πιστοποιούν ότι η συγκεκριµένη ιστοσελίδα είναι γνήσια και ασφαλής. Aυτό διασφαλίζει ότι κανένα άλλο site δεν µπορεί να παρουσιαστεί µε την ταυτότητα της γνήσιας, ασφαλούς τοποθεσίας. Eπίσης, τα πιστοποιητικά δικτυακών τόπων χρονολογούνται κατά την έκδοσή τους. Όταν προσπαθείτε να συνδεθείτε µε το website ενός οργανισµού, το πρόγραµµα ανάγνωσης επαληθεύει τη διεύθυνση Internet που είναι αποθηκευµένη στο πιστοποιητικό και ελέγχει την ηµεροµηνία λήξης του. Eάν οι πληροφορίες αυτές δεν είναι έγκυρες ή εάν έχει παρέλθει η ηµεροµηνία λήξης, εµφανίζεται προειδοποιητικό µήνυµα (Warning). Έχουν αναπτυχθεί ή βρίσκονται υπό κατασκευή διάφορα πρωτόκολλα ασφαλείας που κάνουν χρήση των παραπάνω τεχνικών, όπως το SSL (Secure Sockets Layer), της Netscape, και το SET (Secure Electronic Transactions), που αναπτύχθηκε από τη Visa και τη MasterCard. Aπό αυτά σήµερα χρησιµοποιείται το SSL. Αρκετές ιστοσελίδες είναι εξοπλισµένες µε προγράµµατα που χρησιµοποιούν το πρωτόκολλο αυτό, αποτρέποντας έτσι τα µη εξουσιοδοτηµένα πρόσωπα από την πρόσβασή τους σε δεδοµένα που αποστέλλονται από και προς αυτές τις ιστοσελίδες. Τέτοια sites ονοµάζονται "ασφαλή". Οι πιο γνωστοί φυλλοµετρητές ιστοσελίδων (browsers) υποστηρίζουν το πρωτόκολλο SSL και την κρυπτογράφηση που προσφέρει, ενώ ενηµερώνουν το χρήστη ότι βρίσκεται σε ασφαλή τοποθεσία και µπορεί να στέλνει 37

42 πληροφορίες ακίνδυνα. Mε το πρωτόκολλο αυτό οι επικοινωνίες πραγµατοποιούνται σε κωδικοποιηµένη µορφή και επιπλέον γίνεται έλεγχος της αυθεντικότητας της ιστοσελίδας. H διαδικασία µιας ασφαλούς επικοινωνίας έχει ως εξής: Ο φυλλοµετρητής συνδέεται µε τον ασφαλή δικτυακό τόπο. Ο δικτυακός τόπος δηλώνει την ταυτότητά του, η οποία ελέγχεται µε τα πιστοποιητικά που εκδίδονται από υπηρεσίες πιστοποίησης. H ασφαλής ιστοσελίδα και ο browser συµφωνούν στη χρήση συγκεκριµένου κλειδιού/αλγορίθµου που χρησιµοποιείται για την κρυπτογράφηση της υπόλοιπης επικοινωνίας. Tα δεδοµένα που διακινούνται είναι κρυπτογραφηµένα µε το κλειδί/αλγόριθµο που συµφωνήθηκε στο προηγούµενο βήµα. H κρυπτογράφηση γίνεται µε χρήση αλγορίθµου 40bit ή 128bit. Eάν έχει χρησιµοποιηθεί κρυπτογράφηση 40bit, τότε για να αποκρυπτογραφήσει κανείς τα δεδοµένα που ανταλλάχθηκαν, θα πρέπει να δοκιµάσει περίπου 240 διαφορετικά κλειδιά, ενώ, εάν έχει χρησιµοποιηθεί κρυπτογράφηση 128bit, τότε θα πρέπει να δοκιµάσει περίπου διαφορετικά κλειδιά. Mε τη χρήση µεγάλης υπολογιστικής ισχύος, η αποκρυπτογράφηση του κλειδιού των 40bit µπορεί να επιτευχθεί σε µερικές ηµέρες, ενώ η αποκρυπτογράφηση του κλειδιού των 128bit, µε τα σηµερινά δεδοµένα, είναι πρακτικά αδύνατη. Θα πρέπει να σηµειωθεί ότι απαγορεύεται από τη νοµοθεσία των HΠA η εξαγωγή και χρήση προγραµµάτων που υποστηρίζουν κωδικοποίηση 128bit εκτός των Hνωµένων Πολιτειών και του Kαναδά. Στο πλαίσιο των προσπαθειών που καταβάλλονται για την ανάπτυξη των ηλεκτρονικών συναλλαγών, έχει επιτραπεί η χρήση της τεχνολογίας SGC (Server Gated Cryptography) ή International Step-Up Encryption, που αποτελεί επέκταση του πρωτοκόλλου SSL, από πιστωτικά ιδρύµατα και άλλων χωρών. H επέκταση αυτή επιτρέπει στα πιστωτικά ιδρύµατα, εφόσον διαθέτουν το κατάλληλο πιστοποιητικό, να επικοινωνούν µε τους πελάτες τους µε κωδικοποίηση 128bit. 2.6 Χρήση των αλγορίθµων κρυπτογράφησης στην εφαρµογή Η εφαρµογή χρησιµοποιεί έναν συνδιασµό των µεθόδων κρυπτογράφησης που αναφέρθηκαν (RSA και AES), αξιοποιώντας τα πλεονεκτήµατα τόσο της κρυπτογράφησης µυστικού κλειδιού όσο και αυτής του δηµόσιου. Η πρώτη είναι περίπου φορές γρηγορότερη από τη δεύτερη, ενώ η δεύτερη παρέχει λύση στο πρόβληµα της διανοµής του κλειδιού, χωρίς να γίνεται κανένας συµβιβασµός όσον αφορά στην ασφάλεια. Αρχικά δηµιουργείται ένα κλειδί συνόδου, το οποίο είναι ένα µυστικό κλειδί µιας χρήσεως. Αυτό στην πραγµατικότητα είναι ένας τυχαίος αριθµός, που χρησιµοποιείται από έναν συµµετρικό αλγόριθµο κρυπτογράφησης, ώστε να κρυπτογραφηθούν τα δεδοµένα µε µεγάλη ταχύτητα και να παραχθεί το κρυπτογράφηµα. Μόλις γίνει αυτό, το κλειδί συνόδου κρυπτογραφείται µε το δηµόσιο κλειδί του παραλήπτη. Αυτό που στέλνεται στον παραλήπτη είναι το 38

43 κρυπτογραφηµένο κλειδί µαζί µε το κρυπτογράφηµα. Η όλη διαδικασία περιγράφεται στην παρακάτω εικόνα (2.11): Εικόνα 2.11: Μοντέλο κρυπτογράφησης της εφαρµογής Η αποκρυπτογράφηση λειτουργεί αντίστροφα. Ο παραλήπτης χρησιµοποιεί το ιδιωτικό του κλειδί για να ανακτήσει το κλειδί συνόδου µε τη βοήθεια του οποίου αποκρυπτογραφούνται και τα υπόλοιπα δεδοµένα. Η διαδικασία περιγράφεται στην παρακάτω εικόνα (2.12): Εικόνα 2.12: Μοντέλο αποκρυπτογράφησης της εφαρµογής 39

44 3 Ηλεκτρονικές Εκλογές 3.1 Εισαγωγή Η δηµοκρατία έχει εξελιχθεί µε το πέρασµα του χρόνου και πολλά από τα πρωταρχικά χαρακτηριστικά της δεν κατάφεραν να διατηρηθούν λόγω του µεγάλου µεγέθους και της πολυπλοκότητας που παρουσιάζουν οι σηµερινές κοινωνίες. Η δηµοκρατική συµµετοχή όµως των πολιτών στις διαδικασίες λήψης αποφάσεων, θα είναι πάντα µια προτεραιότητα για τις κοινωνικές οµάδες, τα κράτη και τα έθνη. Στις µέρες µας η «Κοινωνία της Πληροφορίας» είναι µια πραγµατικότητα. Η Ηλεκτρονική ηµοκρατία, µέσο του Internet και των τεχνολογιών που αυτό χρησιµοποιεί, δίνει τη δυνατότητα να αλλάξουν και πάλι οι δηµοκρατικές διαδικασίες και να προσεγγίσουν την αρχική τους µορφή. Το Internet προσφέρει αλληλεπιδραστική επικοινωνία και ανταλλαγή πληροφοριών, ξεπερνώντας τους περιορισµούς της απόστασης και του χρόνου. Η ικανότητα αυτή µπορεί να διευκολύνει τη µεταφορά «εξουσίας» από τους κυβερνώντες προς το λαό. Θεµέλιο της µεταφοράς «εξουσίας» είναι η δυνατότητα που δίνεται στους πολίτες να εκτελούν τις δηµοκρατικές διαδικασίες µακριά από την κυβέρνηση. Η δυνατότητα αυτή καθίσταται ικανήενδυναµώνετε από την ελευθερία έκφρασης, δηµοσίευσης και συναναστροφής, που προσφέρει η χρήση του Internet. Η αλλαγή αυτή µπορεί να πραγµατοποιηθεί σε ευρεία κλίµακα, αν οι κυβερνήσεις συνεισφέρουν στο Internet «ανοίγοντας» τις επικοινωνίες τους και καθιστώντας διαθέσιµες τις πληροφορίες τους στους πολίτες. Κάθε νέα τεχνολογία πληροφορικής και επικοινωνιών, βρίσκει εφαρµογή στο χώρο της πολιτικής και τη διαδικασία της διακυβέρνησης. Η ραγδαία εξάπλωση του Internet έχει ευνοήσει πολλές πρωτοβουλίες που σκοπό έχουν την εφαρµογή καινοτοµιών προκειµένου να δηµιουργηθεί αυτό που καλείται «Ψηφιακή ηµοκρατία». Η εισαγωγή της πληροφορικής είναι ένας από τους κύριους σκοπούς των Ευρωπαϊκών κυβερνήσεων και υλοποιείται από το eeurope επιχειρησιακό σχέδιο. Σκοπός του eeurope είναι να εισάγει εφαρµογές πληροφορικής στους τοµείς της ηµόσιας ιοίκησης, της Υγείας, των Μεταφορών και του Περιβάλλοντος προκειµένου να κάνει ευκολότερη την καθηµερινή ζωή των πολιτών. Οι υποστηρικτές της Ηλεκτρονικής ηµοκρατίας τονίζουν ότι µιας µεγάλης κλίµακας τεχνολογικές εφαρµογές µπορούν να υιοθετηθούν, προκειµένου να διευκολύνουν την αµεσότερη επικοινωνία τόσο ανάµεσα στους πολίτες, όσο και ανάµεσα στους πολίτες και τις τοπικές αρχές. Επισηµαίνουν επίσης µια σειρά από δυνατότητες όπως την ηλεκτρονική παροχή πολλών δηµοσίων υπηρεσιών κατευθείαν στα σπίτια των πολιτών ή µέσο ενός δικτύου από 40

45 κιόσκια πολυµέσων, τη δηµιουργία ηλεκτρονικών forum για µεγάλης κλίµακας συζητήσεις και ανταλλαγή πληροφοριών, άµεση συµµετοχή στις δηµοκρατικές διαδικασίες µέσα από συστήµατα δηµοσκοπήσεων και ηλεκτρονικής ψηφοφορίας. Όπως είναι φυσικό, η διαδικασία της δηµοσκόπησης δεν θα µπορούσε να µείνει ανεπηρέαστη. Η ψηφοφορία από απόσταση ήταν για πολλά χρόνια µια ελκυστική ιδέα. Η ιδέα αυτή άρχισε να πραγµατοποιείται όταν τον Απρίλιο του 1997, στην Καλιφόρνια δοκιµάστηκε το πρώτο σύστηµα ψηφοφορίας µε χρήση ηλεκτρονικού ταχυδροµείου (vote by mail - VBM). Από τότε πολύ ερευνητική εργασία έχει γίνει και σήµερα µε τη βοήθεια των πρόσφατων επιτευγµάτων στον τοµέα της κρυπτογραφίας, µπορούµε να δηµιουργήσουµε ασφαλή συστήµατα ηλεκτρονικών δηµοσκοπήσεων. Οι αρνητικοί παράγοντες που σήµερα υπάρχουν είναι : η έλλειψη πρόσβασης στο Internet σε παγκόσµιο επίπεδο, η πιθανότητα υπερφόρτωσης πληροφοριών από τους εµπλεκόµενους φορείς και η ενδυνάµωση που µπορεί να αποκτηθεί από «αρνητικές οµάδες» που υπάρχουν µέσα στην κοινωνία. 3.2 ηµοκρατία Ο όρος ηµοκρατία προέρχεται από τις αρχαίες Ελληνικές λέξεις «ήµος» και «Κρατία», οι οποίες σηµαίνουν Λαός και Εξουσία αντίστοιχα. Η ηµοκρατία ορίζεται σαν «Πολίτευµα στο οποίο την εξουσία έχει ο λαός, είτε άµεσα είτε µέσα από εκλεγµένους αντιπροσώπους του». Η ηµοκρατία έχει µια µακρά ιστορία, η οποία ξεκίνησε τον 5ο αιώνα προ Χριστού από την αρχαία Αθήνα. Στην αρχαία Αθήνα όλοι οι πολίτες είχαν ενεργή συµµετοχή στα κοινά. Τόσο η λήψης αποφάσεων όσο και η εφαρµογή των αποφάσεων αυτών ήταν καθήκοντα κάθε πολίτη και όχι µόνο των εκλεγµένων αρχηγών του. Οι πολίτες εµπλέκονταν όχι µόνο µε τα κυβερνητικά θέµατα αλλά και µε θέµατα δικαιοσύνης, καθώς δεν υπήρχε διαχωρισµός των δύο αυτών εξουσιών. Όλοι οι κάτοικοι της αρχαίας Αθήνας δεν απολάµβαναν τα παραπάνω δικαιώµατα. Η αλήθεια όµως είναι ότι καµία άλλη «ηµοκρατία» στην ιστορία της ανθρωπότητας δεν επέτρεψε τόσο µεγάλη συµµετοχή στους πολίτες της. Το πολιτικό σύστηµα στην αρχαία Αθήνα ήταν αρκετά καινοτόµο για την εποχή του και διαµόρφωσε µια κοινωνία µε ιδιαίτερο χαρακτήρα, µε µεγάλη ευαισθησία και ασυνήθιστα πολιτιστικά επιτεύγµατα. 3.3 Ηλεκτρονική ηµοκρατία Με τον όρο Ηλεκτρονική ηµοκρατία [12], [13], [14], τις περισσότερες φορές αναφερόµαστε στη χρήση τεχνολογίας ICT (Information and Communication Technologies) προκειµένου να επιτύχουµε επικοινωνία ανάµεσα στην πολιτεία και τους πολίτες. Με την παραπάνω τεχνολογία υλοποιούµε µηχανισµούς πληροφόρησης, ενηµέρωσης, ψηφοφορίας, δηµοσκοπήσεων ακόµη και συνεδριάσεων, ανάλογα µε τις ανάγκες µας. Ο ορισµός αυτός είναι λιγάκι στενός και καθιστά την Ηλεκτρονική ηµοκρατία όχι τον πυρήνα άλλα µια δυνατότητα του µηχανισµού διακυβέρνησης. 41

46 Ένας ευρύτερος ορισµός, καθιστά την τεχνολογία ICT ένα µέσο το οποίο επιτρέπει την άσκηση των δηµοκρατικών δικαιωµάτων του πολίτη, µέσα σε ένα ολοκληρωµένο σύστηµα λήψης αποφάσεων, οργάνωσης, διοίκησης και διακυβέρνησης. Με την παραπάνω τεχνολογία υλοποιούµε µηχανισµούς που επιτρέπουν τον κοινωνικό προγραµµατισµό, τη διακυβέρνηση, την πολιτική οργάνωση, την αντιπρόσωπευτικοτητα, την ενηµέρωση του πολίτη και γενικά όλων των πτυχών του δηµοκρατικού συστήµατος. Άλλοι όροι που χρησιµοποιούνται για την Ηλεκτρονική ηµοκρατία και έχουν σχετικό περιεχόµενο είναι : «Τηλε-δηµοκρατία», «Ενσύρµατη ηµοκρατία», «e- ηµοκρατία», «Τεχνο-πολιτική», «Υπερ-δηµοκρατία». 3.4 Ηλεκτρονικές ηµοσκοπήσεις και Ψηφοφορίες Η παροχή ενός ιδανικού συστήµατος ηλεκτρονικής ψηφοφορίας [12], [13], [14] µέσο του Internet µπορεί ακόµη να απέχει αρκετά, αλλά τα διαφορετικά κοµµάτια του τεχνολογικού puzzle που απαιτούνται, για να υλοποιηθεί, είναι σήµερα κοντά στην πραγµατοποίηση τους. Η ψηφοφορία µέσο δικτύου είναι ευρέως διαδεδοµένη µε πολλές µορφές, µερικές από τις οποίες είναι σοβαρές οι περισσότερες όµως όχι. Ελάχιστες από τις υπηρεσίες ψηφοφορίας on-line κάνουν οποιαδήποτε προσπάθεια προκειµένου να εξασφαλίσουν την ακεραιότητα του χρήστη. Όταν σχεδιάζουµε ένα σύστηµα polling ή voting είναι απαραίτητο να λαµβάνουµε υπό όψιν τους τρόπους µε τους οποίους θα διεξαχθεί η ηλεκτρονική ψηφοφορία χωρίς να θυσιάσουµε την µυστικότητα του ψηφοφόρου ή να δώσουµε ευκαιρίες για απάτες. Στο άµεσο µέλλον οποιαδήποτε µορφή ηλεκτρονικής ψηφοφορίας µέσο δικτύου θα θεωρείται σαν συµπλήρωµα του παραδοσιακού συστήµατος ψηφοφορίας, µε τα εκλογικά κέντρα. Αυτό που είναι σηµαντικό για τους ανθρώπους που θέλουν να την εφαρµόσουν, είναι να εξασφαλίσουν την ακεραιότητα της διαδικασίας. Η ψηφοφορία µέσο δικτύου πρέπει να είναι στη χειρότερη περίπτωση, τόσο ασφαλής όσο οποιοδήποτε σύστηµα που χρησιµοποιείται σήµερα. Ένα «Ηλεκτρονικό Σύστηµα ηµοσκοπήσεων», είναι ένα εκλογικό σύστηµα το οποίο χρησιµοποιεί ηλεκτρονικές ψήφους, οι οποίες επιτρέπουν στους ψηφοφόρους να µεταδώσουν τις επιλογές τους, στις εκλογικές αρχές, µέσα από το Internet. «ικτυακή ψηφοφορία» σηµαίνει την αποστολή µιας ασφαλούς και µυστικής ηλεκτρονικής ψήφου, η οποία µεταδίδεται στις εκλογικές αρχές µε χρήση του Internet. Μια «Μηχανή Ηλεκτρονικών ηµοσκοπήσεων» είναι ένας υπολογιστής (µηχάνηµα), ο οποίος επιτρέπει την αποστολή µιας ψήφου µέσα από το Internet. ηµοσκόπηση, (polling) είναι η έκφρασης της γνώµης των πολιτών σχετικά µε θέµατα της επικαιρότητας και όχι µόνο. Η δηµοσκόπηση είναι ανώνυµη και αντιπροσωπευτική. Στόχο έχει τον προσδιορισµό των τάσεων της κοινής γνώµης. 42

47 Ψηφοφορία (voting) είναι η συµµετοχής των πολιτών σε µια εκλογική διαδικασία. Η διαδικασία αυτή είναι πολύ πιο αυστηρή από τη δηµοσκόπηση καθώς αφορά άµεσα το δικαίωµα συµµετοχής των πολιτών στις δηµοκρατικές διαδικασίες και πρέπει να λάβει υπ όψιν της παράγοντες όπως η όσο το δυνατόν µεγαλύτερη συµµετοχή, η ανωνυµία του ψηφοφόρου, η ασφαλής διεξαγωγή της ψηφοφορίας και η ακριβής καταµέτρηση του αποτελέσµατος. 3.5 Στόχοι Η «Ηλεκτρονική Ψηφοφορία» [12], [13], [14] αναπτύχθηκε µε σκοπό να βελτιωθεί η καθηµερινή επαφή ανάµεσα στους πολίτες και τις τοπικές αρχές, και να ενισχυθεί η ενεργή συµµετοχή των πολιτών στη λήψη αποφάσεων. Η ανάγκη για τέτοιες εφαρµογές εµφανίστηκε λόγο των αυξηµένων απαιτήσεων, που παρουσιάζονται στις µέρες µας, για µεγαλύτερη συµµετοχή των πολιτών στις δηµοκρατικές διαδικασίες. Η παροχή αξιόπιστων συστηµάτων ηλεκτρονικής ψηφοφορίας µέσω του Internet, µπορεί ακόµη να απέχει λίγο δρόµο, αλλά τα διαφορετικά κοµµάτια του τεχνολογικού παζλ που απαιτούνται για την πραγµατοποίηση τους είναι σήµερα πολύ κοντά στην ολοκλήρωση τους. Η ψηφοφορία µέσω του Internet είναι ευρέως διαδεδοµένη µε πολλές µορφές, µερικές όµως είναι σοβαρές, ενώ οι περισσότερες όχι. Είναι τεχνολογικά εφικτό να αξιοποιήσουµε το Internet προκειµένου να αναπτύξουµε µια επιπρόσθετη µέθοδο ψηφοφορίας, η οποία να είναι τουλάχιστον τόσο ασφαλής όσο τα υπάρχοντα εκλογικά συστήµατα. Η γνώση των τάσεων της κοινής γνώµης, πάνω σε συγκεκριµένα θέµατα (περιβάλλον, πολιτισµός, υγεία κτλ), είναι σηµαντική για κάθε τοπική κυβέρνηση προκειµένου να προγραµµατίσει και να εφαρµόσει σχέδια και δράσεις που αναφέρονται στους πολίτες. Η κοινή γνώµη πρέπει να λαµβάνεται πάντα υπό όψιν όταν οι τοπικές αρχές ετοιµάζουν προγράµµατα τα οποία θα επηρεάσουν ένα µεγάλο κοµµάτι της κοινωνίας. Η ικανότητα να συλλέγονται οι διαφορετικές τάσεις, µπορεί να γλιτώσει τους διοικούντες από το να αναλάβουν δράσεις οι οποίες αντιτίθενται στους πολίτες και παράλληλα να τους δείξει την αποδοχή κάθε νέου σχεδίου. Όλοι οι πολίτες µπορούν να συµµετάσχουν στη διαδικασία της ψηφοφορίας και να προσθέσουν την ψήφο τους πάνω σε ένα συγκεκριµένο θέµα. Το σύστηµα διασφαλίζει την αξιοπιστία των αποτελεσµάτων και µετά τη λήξη µιας ψηφοφορίας εξάγει τα πραγµατικά αποτελέσµατα τα οποία είναι διαθέσιµα προς όλες τις κατευθύνσεις. Οι τοπικές αρχές µπορούν να καθορίσουν την πολιτική τους µε βάση τις τάσεις της κοινής γνώµης. Το σύστηµα είναι απλό στη χρήση του και επιτρέπει την πρόσβαση των χρηστών από οποιαδήποτε γεωγραφική περιοχή. 43

48 3.6 Χαρακτηριστικά των συστηµάτων Ηλεκτρονικής Ψηφοφορίας Τα χαρακτηριστικά ενός καλού συστήµατος [12], [13]εξαρτώνται από το σκοπό για τον οποίο θα χρησιµοποιηθεί το σύστηµα. Υπάρχουν εν τούτοις αρκετές οµοιότητες ανάµεσα στα περισσότερα συστήµατα που µας επιτρέπον να καθορίσουµε ένα σύνολο από γενικά χαρακτηριστικά, τα οποία είναι επιθυµητά στις περισσότερες περιπτώσεις. Τα χαρακτηριστικά αυτά είναι: Accuracy (Ορθότητα). Ένα σύστηµα λέµε ότι λειτουργεί µε ορθό τρόπο εάν: 1. εν επιτρέπει την µεταβολή-παραποίηση µιας ψήφου. 2. εν επιτρέπει τη διαγραφή µια έγκυρης ψήφου από την τελική καταµέτρηση. 3. εν επιτρέπει µια µη έγκυρη ψήφος να υπολογισθεί στην τελική καταµέτρηση. Στο σύστηµα µας είτε δεν πρέπει να υπάρχουν ανακρίβειες είτε εάν υπάρχουν να µπορούν να εντοπιστούν και να διορθωθούν. ηµοκρατικότητα (Democracy). Ένα σύστηµα είναι δηµοκρατικό εάν : 1. Επιτρέπει µόνο στους νόµιµους ψηφοφόρους να ψηφίσουν. 2. Εξασφαλίζει ότι κάθε νόµιµος ψηφοφόρος ψηφίζει µόνο µια φορά. Μυστικότητα (Privacy). Ένα σύστηµα λέµε ότι λειτουργεί µε µυστικότητα εάν: Κανένας ψηφοφόρος δεν µπορεί να αποδείξει ότι ψήφισε µε συγκεκριµένο τρόπο. Ανωνυµία (Anonymity) Τόσο οι ελεγκτικές αρχές όσο και κανένας άλλος δεν µπορούν να συνδέσουν οποιαδήποτε ψήφο µε τον ψηφοφόρο στον οποίο αντιστοιχεί. Ο δεύτερος παράγοντας µυστικότητας είναι πολύ σηµαντικός προκειµένου να αποφευχθεί η εξαγορά ψήφου. Επαληθευσιµότητα (Verifiability). Ένα σύστηµα λέµε ότι κάνει έλεγχο επαλήθευσης όταν οποιοσδήποτε µπορεί ανεξάρτητα να επαληθεύσει ότι όλες οι ψήφοι έχουν προσµετρηθεί σωστά. Ευκολία (Convenience). Ένα σύστηµα είναι βολικό εάν επιτρέπει στους ψηφοφόρους να ψηφίζουν γρήγορα, σε ένα βήµα (session) και µε τον ελάχιστο δυνατό εξοπλισµό µέσα ή ειδικευµένες γνώσεις. Ευελιξία (Flexibility). Ένα σύστηµα είναι ευέλικτο εάν επιτρέπει µια ποικιλία φορµών ψηφοφορίας, συµπεριλαµβανοµένων και των open ended ερωτήσεων. Ευκινησία (Mobility). Ένα σύστηµα είναι ευκίνητο εάν δεν υπάρχουν περιορισµοί στην περιοχή από την οποία ένας ψηφοφόρος µπορεί να ψηφίσει. Ικανοποιητικό από πλευράς κόστους (Cost Efficient). Ένα σύστηµα είναι ικανοποιητικό από πλευράς κόστους εάν το κόστος ψηφοφορίας ανά ψήφο είναι ικανοποιητικά µικρό. 44

49 3.7 ιαδικασία Ηλεκτρονικής Ψηφοφορίας Μια τυπική διαδικασία εκλογής περιλαµβάνει τα εξής στάδια [12], [13]: Registration (Εγγραφή). Η εκλογική αρχή δηµιουργεί την εκλογική λίστα και την δηµοσιεύει στο δίκτυο. Ακολουθεί µια περίοδος παραπόνων στην διάρκεια της οποίας οι ψηφοφόροι πρέπει να εκθέσουν τις αντιρρήσεις τους. Ακολούθως η τελική λίστα δηµοσιεύεται από την εκλογική αρχή. Voting (Ψηφοφορία). Η ψηφοφορία χωρίζεται σε δύο φάσεις: Validation (Επιβεβαίωση). Περιλαµβάνει τον έλεγχο της εγκυρότητας αυτών που επιχειρούν να ψηφίσουν και επιτρέπει µόνο στους νόµιµους ψηφοφόρους που δεν έχουν ακόµη ψηφίσει να προχωρήσουν στη διαδικασία. Collection (Συλλογή). ιαδικασία συλλογής των έγκυρων ψήφων. Tallying (Καταµέτρηση). Η αρχή συλλογής ψήφων σταµατά να δέχεται ψήφους και αρχίζει την καταµέτρηση. Τα τελικά αποτελέσµατα δίνονται στη δηµοσιότητα. 3.8 Τεχνικές Λύσεις. Προκειµένου να εξασφαλιστεί η ακεραιότητα της διαδικασίας, η ασφάλεια και η µυστικότητα των χρηστών έχουν χρησιµοποιηθεί πολλές τεχνικές προσεγγίσεις. Εµείς παρουσιάζουµε µε συντοµία τις κυριότερες από αυτές[12], [13]. Οι επικοινωνίες που γίνονται µέσω δικτύου (Internet) χρησιµοποιούν το Transmission Control Protocol (TCP/IP). Το TCP/IP επιτρέπει στις πληροφορίες να διακινούνται από έναν υπολογιστή σε έναν άλλο, µέσω ενδιάµεσων υπολογιστών και διαφορετικών δικτύων, πριν αυτές φτάσουν στον προορισµό τους. Η µεγάλη ευελιξία του TCP/IP έχει οδηγήσει στην παγκόσµια αποδοχή του σαν το βασικό πρωτόκολλο για Internet και intranet επικοινωνίες. Το γεγονός όµως ότι επιτρέπει στις πληροφορίες να περνάνε από ενδιάµεσους υπολογιστές, καθιστά δυνατή την παρέµβαση, από τρίτους, µε τους παρακάτω τρόπους: Eavesdropping (Κρυφάκουσµα). Η πληροφορία παραµένει άθικτη, αλλά όχι κρυφή. Για παράδειγµα κάποιος µπορεί να µάθει τον αριθµό της πιστωτικής µας κάρτας, να ηχογραφήσει µια ιδιωτική συνοµιλία ή απόρρητες πληροφορίες Tampering (Επέµβαση). Η πληροφορία που διακινείται τροποποιείται ή αντικαθίσταται και στη συνέχεια αποστέλλεται στον παραλήπτη. Για παράδειγµα κάποιος µπορεί να αλλάξει µια ηλεκτρονική παραγγελία. Impersonation (Αποµίµηση). Η πληροφορία περνάει στα χέρια κάποιου ο οποίος προσποιείται ότι είναι ο πραγµατικός παραλήπτης. 45

50 Υπό φυσιολογικές συνθήκες οι χρήστες, των οποίων οι υπολογιστές «σχηµατίζουν» το δίκτυο, δεν παρακολουθούν ούτε παρεµβαίνουν στην κυκλοφορία του δικτύου που περνάει µέσα από τα µηχανήµατα τους. Παρά ταύτα, πολλές πληροφορίες προσωπικού ή επαγγελµατικού χαρακτήρα απαιτούν να λαµβάνονται προφυλάξεις, προς αποφυγή των παραπάνω παρεµβάσεων. 3.9 Πλεονεκτήµατα των συστηµάτων Ηλεκτρονικών Εκλογών. Τα κυριότερα πλεονεκτήµατα των συστηµάτων ηλεκτρονικών εκλογών, είναι τα παρακάτω [12], [13]: 1. Καθώς όλο και περισσότεροι άνθρωποι έχουν πρόσβαση στο Internet, η ηλεκτρονική ψηφοφορία θα είναι όλο και πιο ελκυστική για τις επιχειρήσεις που είναι γεωγραφικά διασκορπισµένες και οι οποίες σήµερα χρησιµοποιούν την ψηφοφορία µε mail. 2. Η ηλεκτρονική ψηφοφορία έχει τη δυνατότητα να είναι πιο φθηνή και πιο γρήγορη στη διαχείριση από ότι η ψηφοφορία µε mail. 3. Η επεξεργασία και η ανακοίνωση των στοιχείων θα είναι άµεση και ακριβής, µε χρήση των κατάλληλων προγραµµάτων 4. Εάν η περίοδος ψηφοφορίας είναι σχετικά µεγάλη, θα ήταν δυνατή η τροποποίηση της ψήφου από την πλευρά του ψηφοφόρου. 5. Για τους ψηφοφόρους που έχουν πρόβληµα µετακίνησης η ηλεκτρονική ψηφοφορία θα επέτρεπε µεγαλύτερα ποσοστά συµµετοχής. Για παράδειγµα οι µεγάλοι σε ηλικία άνθρωποι, αυτοί που έχουν κινητικά προβλήµατα ή αυτοί που µένουν σε αποµονωµένες περιοχές µπορούν να ωφεληθούν ψηφίζοντας χωρίς µετακίνηση. Άλλες κατηγορίες όπως ανύπαντρες µητέρες ή αυτοί που ταξιδεύουν συνεχώς γλιτώνουν τη µετακίνηση κατά τη διάρκεια των εκλογών ψηφίζοντας είτε σε άλλη πόλη είτε ακόµη και σε άλλη χώρα. 6. Θα επέλθει µείωση του κόστους σε σχέση µε το παραδοσιακό σύστηµα εκλογών. Λιγότερος εξοπλισµός (εκλογικά κέντρα, κάλπες) και σαφώς λιγότερο προσωπικό (εφορευτικές επιτροπές, δικαστικοί αντιπρόσωποι) θα απαιτείται τις µέρες των εκλογών. Επίσης η καταµέτρηση των ψήφων θα είναι αυτόµατη. Το νέο κόστος θα εξαρτάται από: Τον αριθµό των ατόµων που χρησιµοποιούν το σύστηµα. Το κόστος ανάπτυξης και λειτουργίας του αναγκαίου επικοινωνιακού εξοπλισµού. Το κόστος εκπαίδευσης των χειριστών του συστήµατος. 7. Οι ψηφοφόροι θα µπορούν να επικοινωνούν µε τις αρµόδιες αρχές και τους υποψήφιους και να ζητούν διευκρινήσεις ή ακόµη και να συζητούν Σηµαντικά θέµατα που αφορούν της εκλογική διαδικασία και τα προς ψήφιση θέµατα. 8. Η ηλεκτρονική επικοινωνία είναι πολύ πιο ευέλικτη και δηµοκρατική καθώς επιτρέπει την many-to-many επικοινωνία, η οποία δίνει τη δυνατότητα σε µεγάλο αριθµό ατόµων να έχουν πρόσβαση σε πολλές πληροφορίες ή ανθρώπους. 46

51 3.10 Μειονεκτήµατα των συστηµάτων Ηλεκτρονικών Εκλογών. Τα κυριότερα µειονεκτήµατα των συστηµάτων ηλεκτρονικών εκλογών, είναι τα παρακάτω [12], [13]: 1. Υπάρχουν πολλές ευκαιρίες για διαφθορά κατά τη διάρκεια της εκλογικής διαδικασίας. Για παράδειγµα οι εκλογική αρχή θα µπορούσαν να επιτρέψει σε µη νόµιµους ψηφοφόρους να ψηφίσουν, ένας ψηφοφόρος θα µπορούσε να ψηφίσει περισσότερες από µια φορές, το σύστηµα θα µπορούσε να ψηφίσει για τους νόµιµους ψηφοφόρους που δεν συµµετείχαν στην εκλογική διαδικασία ή τέλος να υπάρχει εσφαλµένη καταµέτρηση των ψήφων στο τελικό αποτέλεσµα. 2. Κάποιοι επιτήδειοι ψηφοφόροι θα µπορούσαν εκµεταλλευόµενοι µια πιθανή αδυναµία του συστήµατος ή την αφέλεια των ψηφοφόρων να ψηφίσουν πολλές φορές κάτω από διαφορετικά ονόµατα. 3. Θα µπορούσαν να υπάρξουν λάθη λόγω κακής χρήσης του συστήµατος τόσο από την πλευρά των ψηφοφόρων όσο και από την πλευρά των χειριστών του συστήµατος (π.χ κακή γνώση του τρόπου λειτουργίας των προγραµµάτων). 4. Η ευκινησία (mobility) του συστήµατος συνεισφέρει αρνητικά σε µερικά από τα προβλήµατα που σχετίζονται µε τη ασφάλεια και τη µυστικότητα της ηλεκτρονικής ψηφοφορίας. Επιτρέποντας στους ψηφοφόρους να ψηφίσουν από οποιοδήποτε µέρος επιθυµούν, αυξάνει δραµατικά ο αριθµός των ανεπιθύµητων ανθρώπων που µπορεί να επιχειρήσουν να ψηφίσουν. Επίσης περιορίζουµε την ικανότητα µας να αποτρέψουµε τους ψηφοφόρους να αποδείξουν πως ψήφισαν µε συγκεκριµένο τρόπο, καθώς απουσιάζουν τα εκλογικά παραβάν που αποτρέπουν αυτούς που θέλουν να εξαγοράσουν τις ψήφους. 5. Ένα άλλο πρόβληµα που προκύπτει από την ύπαρξη πολλών εκλογικών περιοχών είναι η διαρροή των εκλογικών αποτελεσµάτων λόγω διαφοράς ώρας ή ακόµη και διαφορετικών εκλογικών συστηµάτων. 6. εν υπάρχει σωστή διαδικασία εγγραφής και σωστή πολιτική εκπροσώπηση όλων των τάσεων. 7. Η ποιότητα και η ποσότητα της πολιτικής ενηµέρωσης των ψηφοφόρων δεν είναι ικανοποιητική. Μπορεί για παράδειγµα µε χρήση ηλεκτρονικής προπαγάνδας να θελήσουν οι εµπλεκόµενοι να επηρεάσουν την διαδικασία λήψης απόφασης των ψηφοφόρων. Η διαχείριση της πληροφορίας του δικτύου µπορεί να επιφέρει σηµαντικά οφέλη στους διαχειριστές της εκλογικής διαδικασίας. 8. Τα συστήµατα ηλεκτρονικής ψηφοφορίας µπορεί να απαιτούν τη χρήση εξειδικευµένου εξοπλισµού (µηχανηµάτων ή προγραµµάτων) ή την κατοχή εξειδικευµένων γνώσεων (π.χ κρυπτογραφίας) από την πλευρά του ψηφοφόρου. 47

52 4 Πρωτόκολλα Ηλεκτρονικών Εκλογών 4.1 Το πρωτόκολλο Sensus Οι Cranor και Cytron [15], παρουσίασαν το 1997 το πρωτόκολλο µε την ονοµασία Sensus. To Sensus εφαρµόζει ένα ασφαλές και ιδιωτικό σύστηµα ψηφοφορίας µέσω δικτύων υπολογιστών. Το πρωτόκολλο βασίστηκε σε ένα πλάνο, το οποίο παρουσιάστηκε το 1992 από τους Fujioka, Okamoto και Ohta [16]. To Sensus, εφαρµόζεται µέσω τριών οντοτήτων: Pollster (P). Ως P, θεωρείται ο χρήστης που θέλει να ψηφίσει µε έναν ασφαλές και ιδιωτικό τρόπο. Validator (V). Ως V, θεωρείται ένας server, που αρχικά ελέγχει την εκλογιµότητα του Ρ και τη µοναδικότητα της ψήφου του κι έπειτα επικυρώνει την ψήφο του. Tallier (T). Ως Τα, θεωρείται ένας server, που σκοπός του είναι να µετράει και να καταγράφει όλες τις επικυρωµένες ψήφους. Οι συµβολισµοί που χρησιµοποιούµε: 1 i / pk i pk : ηµόσιο / Ιδιωτικό κλειδί της οντότητας i ek / dk: Συµµετρικό κλειδί Κρυπτογράφησης / Αποκρυπτογράφησης {... pk 1 i pk i : Μήνυµα υπογεγραµµένο από την οντότητα i {... : Μήνυµα κρυπτογραφηµένο από το ηµόσιο κλειδί της οντότητας i {... ek : Μήνυµα κρυπτογραφηµένο από το Συµµετρικό κλειδί Κρυπτογράφησης {... : Blinded Message (Τυφλό µήνυµα) blind h(m): Σύνοψη του µηνύµατος m (message digest of m). Τυπικά, όταν υπογράφεται ψηφιακά µία σύνοψη µηνύµατος, στέλνονται και η σύνοψη και η υπογραφή στον παραλήπτη. Για να υπογραφεί ψηφιακά το µήνυµα m, αρχικά υπολογίζεται το h(m) κι έπειτα υπογράφεται µε το ιδιωτικό κλειδί της εκάστοτε οντότητας i: { m 1. Έπειτα, το ζεύγος m,{ m 1, στέλνεται. Για ευκολότερη ανάγνωση, όταν γράφουµε 1, εννοούµε και το απλό κείµενο και την υπογραφή. pk i { m pk i pk i 48

53 Εικόνα 4.1: Η ροή των µηνυµάτων του Sensus [17] Στην παραπάνω εικόνα, βλέπουµε συνοπτικά τη ροή των µηνυµάτων του πρωτοκόλλου Sensus (Θα τα αναλύσουµε αργότερα στο SEAS µια και τα περισσότερα είναι κοινά κι όσα δεν είναι, έχουν µικρές αλλαγές). Το Sensus (όπως και το πρωτόκολλο των Fujioka, Okamoto και Ohta), υποφέρει από την εξής αδυναµία: Αν κάποιος ψηφοφόρος (ο οποίος ανήκει στους εγκεκριµένους ψηφοφόρους), απέχει από την ψηφοφορία, ο Validator µπορεί να δράσει κακόβουλα, αντικαθιστώντας τις «κενές» ψήφους µε δικές του. 49

54 Οι Cranor και Cytron (1997) αλλά και οι Fujioka, Okamoto και Ohta (1992), εντόπισαν την αδυναµία και πρότειναν πως οι ψηφοφόροι που ήθελαν να απέχουν, να καταθέτουν µία κενή ψήφο. Μία σχεδιασµένη λύση δόθηκε από τους Karro και Wang το 1999, αλλά µε τη χρήση έξι οντοτήτων. Το 2005, οι Fabrizio Baiardi, Alessandro Falleni, Riccardo Granci, Fabio Martinelli, Marinella Petrocchi και Anna Vaccarelli, δηµιούργησαν το SEAS [17], που αποφεύγει την αδυναµία του Sensus κρατώντας όµως την απλή αρχιτεκτονική του και όχι τις έξι οντότητες των Karro και Wang (1999). Εικόνα 4.2: Η αδυναµία του Sensus [17] 4.2 Το πρωτόκολλο SEAS Θεωρούµε πως κάθε ψηφοφόρος: Έχει πρόσβαση σε κάποιο δίκτυο που προορίζεται για εκλογικές διαδικασίες. Είναι ιδιοκτήτης ενός ηλεκτρονικού πιστοποιητικού (Housley 1999) από το οποίο είναι κάτοχος ενός ζεύγους κλειδιών (Ιδιωτικό και ηµόσιο). 50

55 Επίσης, θεωρούµε πως µία λίστα (RVL1) µε τους εγκεκριµένους ψηφοφόρους είναι διαθέσιµη, πριν την διενέργεια των εκλογών. Η λίστα, πρέπει να περιέχει τα ακόλουθα: Όνοµα του ψηφοφόρου, µοναδικό αριθµό (ID) του ψηφοφόρου, το ζεύγος κλειδιών του κάθε ψηφοφόρου και ένα ακόµα πεδίο, το οποίο θα συµπληρωθεί αργότερα. Οι οντότητες Validator και Tallier, έχουν πλήρη πρόσβαση σε αυτή τη λίστα. Για να αποφευχθεί η αδυναµία του Sensus, εισάγεται από το SEAS, µία φάση πιστοποίησης του χρήστη. Για να πάρει µέρος σε αυτή τη φάση ο κάθε ψηφοφόρος, δηµιουργεί ένα δεύτερο µοναδικό αριθµό (ID2) και ένα δεύτερο ζεύγος κλειδιών, τα οποία θα χρησιµοποιηθούν από τον ψηφοφόρο για να υπογράψει ηλεκτρονικά την ψήφο που θα στείλει στον Tallier. Αυτή η νέα φάση, βασίζεται στα τρία επόµενα βήµατα: Όλες οι επικοινωνίες, κρυπτογραφούνται µε το δηµόσιο κλειδί του παραλήπτη. Ως αποτέλεσµα, όλοι οι παραλήπτες για να αποκρυπτογραφήσουν τα δεδοµένα, πρέπει να χρησιµοποιήσουν το ιδιωτικό κλειδί τους. Για τα βήµατα: 0c,3 και 5, υποθέτουµε πως χρησιµοποιούµε ένα ανώνυµο κανάλι επικοινωνίας. 0a. Ο Pollster, καταχωρεί το δεύτερο δηµόσιο κλειδί του και το δεύτερο 2 µοναδικό αριθµό του ( ID ) µε τον Tallier. Για να το πραγµατοποιήσει, κάνει 2 blind τη σύνοψη µηνύµατος του ζευγαριού pk και ID, προσθέτει το πρώτο 1 µοναδικό αριθµό του ( ID ), υπογράφει τα πάντα µε το ιδιωτικό κλειδί του 2 pk 1 p και τα στέλνει στον Tallier, αφού πρώτα τα κρυπτογραφήσει µε το δηµόσιο κλειδί του Tallier pk T. 0b. Μόλις λάβει το µήνυµα 0a, ο Tallier παραλαµβάνει το δηµόσιο κλειδί 2 p 1 pk p 1 και το πρώτο µοναδικό αριθµό του Pollster ID από την λίστα RVL1, ώστε να επαληθεύσει την υπογραφή. Μόλις το κάνει, υπογράφει το blinded ζεύγος και το στέλνει πάλι στον Pollster, αφότου το κρυπτογραφήσει µε το δηµόσιο κλειδί pk του Pollster. Για να γνωρίζει ποιων ψηφοφόρων τα blinded ζεύγη 1 p υπογράφηκαν, ανανεώνει τη λίστα RVL1. 0c. Ο Pollster αφαιρεί το blinding, αποκτώντας µία σύνοψη µηνύµατος (message digest), ψηφιακά υπογεγραµµένο από τον Tallier και το στέλνει πίσω σ αυτόν (αφού φυσικά υπογράψει τα πάντα µε το δηµόσιο κλειδί του Tallier pk ), προσθέτοντας το δεύτερο δηµόσιο κλειδί του T pk και το δεύτερο 2 p 51

56 2 µοναδικό αριθµό του ID. Ο Τallier επαληθεύει την εγκυρότητα της ίδιας του της υπογραφής. Αν η επαλήθευση είναι επιτυχηµένη, ο Tallier καταγράφει το 2 ζευγάρι (δεύτερο δηµόσιο κλειδί pk και δεύτερο µοναδικό αριθµό ID του 2 p Pollster) σε µια καινούρια λίστα µε όνοµα RVL2, αφήνοντας ένα κενό πεδίο που θα συµπληρωθεί σε µεταγενέστερο στάδιο. 1. Ο Pollster κρυπτογραφεί την ψήφο (Β) µε ένα καινούριο συµµετρικό κλειδί που µόλις δηµιουργήθηκε. Έπειτα, ο Pollster κάνει blind το message digest της κρυπτογραφηµένης ψήφου και το υπογράφει µε το ιδιωτικό του κλειδί 1 pk. Τέλος, το στέλνει στον Validator, µαζί µε το µοναδικό του αριθµό ( ID ), 1 1 p αφού πρώτα κρυπτογραφήσει τα πάντα µε το δηµόσιο κλειδί του Validator pk. V 2. O Validator ελέγχει τα διαπιστευτήρια του υποψήφιου ψηφοφόρου. Αρχικά, επαληθεύει την υπογραφή του Pollster, χρησιµοποιώντας το ιδιωτικό κλειδί 1 του pk 1 p. Μετά την επιτυχή επαλήθευση της υπογραφής, ο Validator ελέγχει 1 αν το ID ανήκει στην λίστα RVL1, αλλά και αν είναι η πρώτη φορά που ο ψηφοφόρος ψηφίζει. Αν όλοι αυτοί οι έλεγχοι είναι επιτυχηµένοι, τότε ο Validator υπογράφει το blinded digest της κρυπτογραφηµένης ψήφου και επιστρέφει την υπογραφή στον Pollster, αφότου την κρυπτογραφήσει µε το δηµόσιο κλειδί του Pollster pk. 1 p 3. Αφότου παραλάβει το υπογεγραµµένο blind, ο Pollster το υπογράφει µε το 2 δεύτερο ιδιωτικό του κλειδί pk 1 p. Έπειτα, προσθέτει και το δεύτερο µοναδικό 2 αριθµό του ID και την κρυπτογραφηµένη ψήφο και τα στέλνει κρυπτογραφηµένα µε το δηµόσιο κλειδί του Tallier, στον Tallier. Ο τελευταίος, 2 πρέπει να πιστοποιήσει πως το ID ανήκει στη λίστα RVL2 και ότι η συγκεκριµένη ψήφος, είναι η πρώτη που καταχωρεί ο συγκεκριµένος ψηφοφόρος. Για να το πετύχει αυτό, αρχικά επαληθεύει την υπογραφή του Pollster, χρησιµοποιώντας το δεύτερο δηµόσιο κλειδί του Pollster pk, που 2 αντιστοιχεί στην καταχώρηση του ID στη λίστα RVL2. Σηµειώστε πως αυτή η υπογραφή, δε δίνει το δικαίωµα στον Tallier να ανακαλύψει την ταυτότητα 2 του ψηφοφόρου, µια και το ID, πιστοποιήθηκε αρχικά µέσω blinded υπογραφών (0a, 0b, 0c). Έπειτα, επαληθεύει την υπογραφή του Validator. 2 p 52

57 4. Αν οι προηγούµενοι έλεγχοι επιτύχουν, ο Tallier καταχωρεί την κρυπτογραφηµένη ψήφο σε µία νέα λίστα RVL3 µαζί µε έναν αριθµό απόδειξης. Ο Tallier υπογράφει την κρυπτογραφηµένη ψήφο και την στέλνει στον Pollster, µαζί µε την απόδειξη. 5. Αφότου ο Pollster επαληθεύσει την υπογραφή του Tallier στην κρυπτογραφηµένη ψήφο, στέλνει στον Tallier το κλειδί αποκρυπτογράφησης της ψήφου µαζί µε την απόδειξη. Ο Tallier χρησιµοποιεί αυτό το κλειδί για να αποκρυπτογραφήσει την ψήφο, την καταχωρεί στην κεντρική ψηφοφορία και βάζει την απόδειξη στη σωστή θέση στη λίστα RVL3. Στο τέλος της εκλογικής διαδικασίας, ο Validator δηµοσιεύει τη λίστα RVL1, ο Tallier δηµοσιεύει τις λίστες RVL1, RVL2, RVL3 και τα τελικά αποτελέσµατα της ψηφοφορίας. Ας υποθέσουµε πως ο Validator στέλνει την δική του ψήφο στον Tallier. Αυτή η ψήφος, θα είναι υπογεγραµµένη µε ένα ιδιωτικό κλειδί pkx. O Tallier θα δεχτεί την ψήφο, µόνο αν το άµεσα συνδεµένο µε το ιδιωτικό κλειδί pkx, δηµόσιο κλειδί pkx έχει προηγουµένως καταχωρηθεί. Η οντότητα που καταχώρησε το δηµόσιο κλειδί, µπορεί να επαληθευτεί µέσω της υπογραφής του Tallier (0b). Ως εκ τούτου, η µόνη περίπτωση στην οποία ο Validator µπορεί να καταχωρήσει δική του ψήφο, είναι να είναι εγκεκριµένος ψηφοφόρος, αλλά αυτό είναι αδύνατο, µια και η οντότητα που είναι υπεύθυνη για την έγκριση των ψηφοφόρων είναι ασφαλής. 53

58 Εικόνα 4.3: Η ροή των µηνυµάτων του SEAS [17] 54

59 4.3 To πρωτόκολλο της εφαρµογής Στην εφαρµογή, χρησιµοποιήθηκε το πρωτόκολλο SEAS [17] (βασισµένο στο πρωτόκολλο Sensus [15]). Επιλέχθηκε λόγω του ότι σχεδιάστηκε για ανάγκες παρόµοιες µε αυτές των φοιτητικών εκλογών µε αποτέλεσµα να υλοποιείται µε τη χρήση του ελάχιστου δυνατού αριθµού οντοτήτων και έχει αποδειχτεί µέχρι τη στιγµή της υλοποίησης της εφαρµογής, απόλυτα ασφαλές, µια και δεν έχει παρουσιαστεί καµία αδυναµία του. 55

60 5 Περιγραφή Υλοποίησης Συστήµατος Οι ιστοσελίδες της διαδικτυακής εφαρµογής γράφτηκαν σε JSP, ενώ χρησιµοποιήθηκε παράλληλα και κώδικας JavaScript και HTML. Η κύρια γλώσσα προγραµµατισµού που έχει χρησιµοποιηθεί είναι η Java (JDK 1.6.0). Ολος ο κώδικας, γράφτηκε µε τη χρήση του εργαλείου Intellij IDEA 6.0, της εταιρείας JetBrains. Ο web server που χρησιµοποιήθηκε είναι ο apache-tomcat Έγινε χρήση του συγκεκριµένου web server διότι είναι ένας server ο οποίος υποστηρίζει πλήρως την τεχνολογία JSP/Servlets. Η δηµιουργία της βάσης δεδοµένων του συστήµατος, έγινε µε την χρήση MySQL server 5.0. Στις επόµενες ενότητες περιγράφονται συνοπτικά τα σηµαντικότερα χαρακτηριστικά των εργαλείων ανάπτυξης λογισµικού που χρησιµοποιήθηκαν για τους σκοπούς αυτής της εφαρµογής, καθώς και η λογική της εφαρµογής και του interface της. 5.1 Java Εικόνα 5.1: Το λογότυπο της Java [19] Η Java [18],[19], [22] είναι µία αντικειµενοστρεφής (object oriented) γλώσσα προγραµµατισµού που σχεδιάστηκε από την εταιρεία πληροφορικής Sun Microsystems Η Ιστορία της Java Στις αρχές του 1991, στη Sun αναζητούσαν το κατάλληλο εργαλείο για να αποτελέσει την πλατφόρµα ανάπτυξης λογισµικού σε µικρο-συσκευές (έξυπνες οικιακές συσκευές έως πολύπλοκα συστήµατα παραγωγής γραφικών). Τα εργαλεία της εποχής ήταν γλώσσες όπως η C++ και η C. Μετά από διάφορους πειραµατισµούς αποφάνθηκαν ότι οι υπάρχουσες γλώσσες δεν µπορούσαν να καλύψουν τις ανάγκες τους. Ο "πατέρας" της Java, James Gosling, που εργαζόταν εκείνη την εποχή για την Sun, έκανε ήδη 56

61 πειραµατισµούς πάνω στη C++ και είχε παρουσιάσει κατά καιρούς κάποιες πειραµατικές γλώσσες (C++ ++) ως πρότυπα για το νέο εργαλείο που αναζητούσαν στην Sun. Τελικά µετά από λίγο καιρό κατέληξαν µε µια πρόταση για το επιτελείο της εταιρίας, η οποία ήταν η γλωσσα Oak. Το όνοµά της το πήρε από το οµώνυµο δένδρο (βελανιδιά) το οποίο ο Gosling είχε έξω από το γραφείο του και έβλεπε κάθε µέρα. H Oak ήταν µία γλώσσα που διατηρούσε µεγάλη συγγένεια µε την C++. Παρολά αυτά είχε πολυ πιο έντονο αντικειµονοστραφή (object oriented) χαρακτήρα σε σχέση µε την C++ και χαρακτηριζόταν για την απλότητα της. Σύντοµα οι υπεύθυνοι ανάπτυξης της νέας γλώσσας ανακάλυψαν ότι το όνοµα Oak ήταν ήδη κατοχυρωµένο οπότε κατά την διάρκεια µίας εκ των πολλών συναντήσεων σε κάποιο τοπικό καφενείο αποφάσισαν να µετονοµάσουν το νέο τους δηµιούργηµα σε Java που εκτός των άλλων ήταν το όνοµα αγαπητού καφέ για τους δηµιουργούς της (Java στην αγγλική γλώσσα είναι το φυτό που βγάζει τον καφέ). Η επίσηµη εµφάνιση της Java αλλα και του HotJava (πλοηγός µε υποστήριξη Java) στη βιοµηχανία της πληροφορικής έγινε το Μάρτιο του 1995 όταν η Sun την ανακοίνωσε στο συνέδριο Sun World O πρώτος αποδελτιωτής (compiler) της ήταν γραµµένος στη γλώσσα C από τον James Gosling. Το 1994, ο A.Van Hoff ξαναγράφει τον αποδελτιωτή της γλώσσας σε Java (από τα πλεόν δύσκολα επιτεύγµατα στο χώρο της πληροφορικής είναι να γράψεις έναν αποδελτιωτή µίας γλώσσας στην ίδια τη γλώσσα), ενώ το εκέµβριο του 1995 πρώτες οι IBM, Borland, Mitsubishi Electronics, Sybase και Symantec ανακοινώνουνε σχέδια να χρησιµοποιήσουνε τη Java για την δηµιουργία λογισµικού. Από εκεί και πέρα η Java ακολουθεί µία ανοδική πορεία και είναι πλέον µία από τις πιο δηµοφιλείς γλώσσες στον χώρο της πληροφορικής. Στις 13 Νοεµβρίου του 2006 η Java έγινε πλέον µια γλώσσα ανοιχτού κώδικα (GPL) στον compiler (javac) και στο developement εργαλείο (jdk) Τα χαρακτηριστικά της Java Ανεξαρτησία από λειτουργικό σύστηµα Ένα από τα βασικά πλεονεκτήµατα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία του λειτουργικού συστήµατος και πλατφόρµας. Τα προγράµµατα που είναι γραµµένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh (σύντοµα θα τρέχουν και σε Playstation καθώς και σε άλλες παιχνιδοµηχανές) χωρίς να χρειαστεί να ξαναγίνει διάταξη αποδελτίωσης (compiling) ή να αλλάξει ο πηγαίος κώδικας για κάθε διαφορετικό λειτουργικό σύστηµα. Για να επιτευχθεί όµως αυτό χρειαζόταν κάποιος τρόπος ετσι ώστε τα προγράµµατα γραµµενα σε Java να µπορουν να είναι «κατανοητά» από κάθε υπολογιστή αναξάρτητα του είδους επεξεργαστή (Intel x86, IBM, Sun SPARC, Motorola) αλλα και λειτουργικού συστήµατος (Windows, Unix, Linux, Unix, MacOS). Ο λόγος είναι ότι κάθε κεντρική µονάδα επεξεργασίας µπορεί και «καταλαβαίνει» διαφορετικό assembly κώδικα. Ο συναρµολογούµενος (assembly) κώδικας που τρέχει σε Windows είναι διαφορετικός από αυτόν που τρέχει σε ένα Macintosh. Η λύση δόθηκε µε την ανάπτυξη της Εικονικής Mηχανής (Virtual Machine ή VM ή ΕΜ στα ελληνικά). 57

62 Η εικονική µηχανή της Java Αφου γραφτεί κάποιο πρόγραµµα σε Java τότε γίνεται compile µέσω του Java compiler (javac), εκείνος µε την σειρά του δίνει ένα αριθµό απο.class αρχεια (=bytecode). Το bytecode είναι η µορφή που παίρνει ο πηγαίος κώδικας της Java όταν έρθει σε µία διάταξη αποδελτίωσης αναλόγως µε το πόσες κλάσεις έχουνε γραφτεί για την εφαρµογή. Οταν προσπαθήσουµε λοιπόν να εκτελέσουµε την εφαρµογή µας το Java Virtual Machine που πρέπει να είναι εγκατεστηµένο στο µηχάνηµά µας, θα αναλάβει να διαβάσει τα.class αρχεία και να τα µεταφράσει σε γλώσσα και εντολές µηχανής (assembly) που υποστηρίζει το λειτουργικό µας και ο επεξεργαστής µας, έτσι ώστε να εκτελεστεί (να σηµειώσουµε εδώ ότι αυτό συµβαίνει µε την παραδοσιακή Εικονική Μηχανή (Virtual Machine). Πιο σύγχρονες εφαρµογές της εικονικής Μηχανής µπορούν και αποδελτιώνουν τα πολύχρηστα τµήµατα bytecode απ' ευθείας σε ιθαγενή κώδικα (native code) µε αποτέλεσµα να βελτιώνεται η ταχύτητα). Χωρίς αυτό δε θα ηταν δυνατή η εκτέλεση λογισµικού γραµµένου σε Java. Πρέπει να πούµε οτι το Virtual Machine ειναι λογισµικό platform specific δηλαδή για κάθε είδος λειτουργικού και ανάλογης τεχνολογίας επεξεργαστή, υπάρχει διαφορετική έκδοση. Έτσι υπάρχουν διαθέσιµες εκδόσεις του για Windows, Linux, Unix, Macintosh, κινητά τηλέφωνα, παιχνιδοµηχανές κλπ! Ο,τιδήποτε θέλει να κάνει ο προγραµµατιστής (ή ο χρήστης) γίνεται µέσω της εικονικής µηχανής. Αυτό βοηθάει στο να υπάρχει µεγαλύτερη ασφάλεια στο σύστηµα γιατί η εικονική µηχανή είναι υπεύθυνη για την επικοινωνία χρήστη - υπολογιστή. Ο προγραµµατιστής δεν µπορεί να γράψει κώδικα ο οποίος θα έχει καταστροφικά αποτελέσµατα για τον υπολογιστή γιατί η εικονική µηχανή θα τον ανιχνεύσει και δε θα επιτρέψει να εκτελεστεί. Από την άλλη µεριά ούτε ο χρήστης µπορεί να κατεβάσει «κακό» κώδικα από το δίκτυο και να τον εκτελέσει. Αυτό είναι ιδιαίτερα χρήσιµο για µεγάλα κατανεµηµένα συστήµατα όπου πολλοί χρήστες χρησιµοποιούν το ίδιο πρόγραµµα συγχρόνως Ο συλλέκτης σκουπιδιών (Garbage Collector) Ακόµα µία ιδέα που βρίσκεται πίσω από τη Java είναι η ύπαρξη του συλλέκτη σκουπιδιών (Garbage Collector). Συλλογή σκουπιδιών είναι µία κοινή ονοµασία που χρησιµοποιείται στον τοµέα της πληροφορικής για να δηλώσει την ελευθέρωση τµηµάτων µνήµης από δεδοµένα που δε χρειάζονται και δε χρησιµοποιούνται άλλο. Αυτή η απελευθέρωση µνήµης στη Java είναι αυτόµατη και γίνεται µέσω του συλλέκτη απορριµάτων. Υπεύθυνη για αυτό είναι και πάλι η εικονική µηχανή η οποία µόλις «καταλάβει» ότι ο σωρός (heap) της µνήµης (στη Java η συντριπτική πλειοψηφία των αντικειµένων αποθηκεύονται στο σωρό σε αντίθεση µε τη C++ όπου αποθηκεύονται κυρίως στη στοίβα - stack) κοντεύει να γεµίσει ενεργοποιεί το συλλέκτη απορριµάτων. Έτσι ο προγραµµατιστής δε χρειάζεται να ανησυχεί για το πότε και αν θα ελευθερώσει ένα συγκεκριµένο τµήµα της µνήµης, ούτε και για δείκτες (pointers) που αναφέρονται σε άδειο χώρο µνήµης. Αυτό είναι ιδιαίτερα σηµαντικό αν σκεφτούµε ότι ένα µεγάλο ποσοστό κατάρρευσης των προγραµµάτων οφείλονται σε λανθασµένο χειρισµό της µνήµης. 58

63 Eπιδόσεις Παρόλο που η εικονική µηχανή προσφέρει όλα αυτά (και όχι µόνο) τα πλεονεκτήµατα, η Java είναι πιο αργή σε σχέση µε άλλες προγραµµατιστικές γλώσσες υψηλού επιπέδου (high-level) όπως η C και η C++. Έχει αποδειχτεί ότι η C++ µπορεί να είναι αρκετές φορές γρηγορότερη από τη Java. Ευτυχώς γίνονται φιλότιµες προσπάθειες από τη Sun για τη βελτιστοποίηση της εικονικής µηχανής, ενώ και διάφορες άλλες πραγµατοποιήσεις της εικονικής µηχανής υπάρχουν από διάφορες άλλες εταιρίες (όπως IBM) οι οποίες µπορεί σε κάποια σηµεία να προσφέρουν καλύτερα και σε κάποια άλλα χειρότερα αποτελέσµατα. Επιπλέον µε τον ερχοµό των JIT (Just In Time) compilers, οι οποίοι µετατρέπουν το bytecode απ' ευθείας σε γλώσσα µηχανής, η διαφορά ταχύτητας από τη C++ έχει µικρύνει κατά πολύ. Οι τελευταίες εκδόσεις του Java Compiler µε την χρήση της τεχνολογίας Hot Spot καταφέρνει να παρέχει αξιόλογες επιδόσεις που πλησιάζουν ή και ξεπερνούν σε µερικές περιπτώσεις native κώδικα Εργαλεία ανάπτυξης Όλα τα εργαλεία που χρειάζεται κάποιος για να γράψει Java προγράµµατα έρχονται δωρεάν, από το περιβάλλον ανάπτυξης µέχρι build εργαλεία όπως το Apache Ant και βιβλιοθήκες, ενώ υπάρχουν πολλές διαφορετικές εφαρµογές της Εικονικής Μηχανής και του compiler (πχ the GNU Compiler for Java) της Java. Είναι στο χέρι του καθενός να επιλέξει το κατάλληλο περιβάλλον. Πολλά εργαλεία και τεχνολογίες σε Java µπορούν να βρεθούν στο Apache Software Foundation αλλά και στο Jakarta Project Ολοκληρωµένο περιβάλλον ανάπτυξης (IDE) Για να να γράψει κάποιος Java κώδικα δε χρειάζεται τίποτα άλλο παρά έναν επεξεργαστή κειµένου, όπως το notepad (σηµειωµατάριο) των windows. Παρ'όλ'αυτά, ένα ολοκληρωµένο περιβάλλον ανάπτυξης (IDE) βοηθάει πολύ, ιδιαίτερα στον εντοπισµό σφαλµάτων (εκσφαλµάτωση - debugging). Υπάρχουν αρκετά διαθέσιµα, πολλά από αυτά έρχονται δωρεάν. Τα πιο γνωστά είναι το NetBeans, το Eclipse και το Intellij IDEA, το οποίο χρησιµοποιήθηκε στην ανάπτυξη της εφαρµογής Ασφάλεια στη Java Ασφάλεια τύπων δεδοµένων Μία ιδιαίτερα σηµαντική παράµετρος για την ασφάλεια του όλου περιβάλλοντος της γλώσσας Java είναι η εξασφάλιση ότι όλες οι πράξεις γίνονται σε ορθούς τύπους δεδοµένων. Οι αυθαίρετες µετατροπές τύπων δεδοµένων, τόσο στα πλαίσια πρόσβασης µεταβλητών, όσο και στα πλαίσια κλήσεων µεθόδων θα µπορούσαν να οδηγήσουν σε πλήρη παραβίαση των κανόνων ασφάλειας, όπως φαίνεται στο παράδειγµα που ακολουθεί. 59

64 Παράδειγµα Έστω µία υποθετική κλάση ελέγχου προνοµίων που έχει δηλωθεί ως ακολούθως: class permissionsbox { private bool dofileio; private bool donetconnections; private bool opensafewindows; bool checkpermission(what); bool setperm(what, who); bool clearperm(what, who); Ας υποθέσουµε ότι το στιγµιότυπο programperms αυτής της κλάσης χρησιµοποιείται για έλεγχο του αν ένα πρόγραµµα έχει δικαίωµα να προβεί σε συγκεκριµένες πράξεις. Ένα πρόγραµµα που θέλει να παρακάµψει την ασφάλεια θα µπορούσε να ενεργήσει ως εξής: 1. Ορίζει την κλάση hackyou µε την κάτωθι δήλωση: class hackyou { public bool p1; public bool p2; public bool p3; Η κλάση αυτή έχει το χαρακτηριστικό ότι έχει το ίδιο πλήθος και τύπο µεταβλητών στιγµιοτύπου µε την κλάση permissionsbox, οι οποίες όµως είναι χαρακτηρισµένες ως public, επιτρέποντας έτσι την πρόσβασή τους από οποιοδήποτε πρόγραµµα. 2. Το πρόγραµµα πραγµατοποιεί µετατροπή τύπου στο στιγµιότυπο programperms, µετατρέποντάς το σε τύπο hackyou. 3. Tο πρόγραµµα τροποποιεί τις µεταβλητές στιγµιοτύπου της µεταβλητής programperms µέσα από το συνώνυµό του που είναι τύπου hackyou. Αυτό είναι εφικτό διότι οι µεταβλητές στιγµιοτύπου της κλάσης hackyou είναι χαρακτηρισµένες ως public. Ο κώδικας που υλοποιεί τα βήµατα 2 και 3 είναι ο εξής: ((hackyou)programperms).p1 = TRUE; Με τον τρόπο αυτό το πρόγραµµα «εξασφαλίζει για τον εαυτό του» τα δικαιώµατα που θα του παρείχε η µεταβλητή dofileio αν είχε την τιµή TRUE, ενώ το ίδιο θα µπορούσε να κάνει και µε τις λοιπές δύο µεταβλητές στιγµιοτύπου, τις donetconnections και opensafewindows. 60

65 Τα πιθανά προβλήµατα ασφαλείας από τη χρήση της Java Χρησιµοποιώντας τη Java σε ένα πληροφοριακό σύστηµα υπάρχει µία σειρά από αρνητικά ενδεχόµενα, σε σχέση µε την ασφάλεια, που είναι δυνατόν να εµφανισθούν. Κάθε τέτοιο ενδεχόµενο µπορεί να έχει ως συνέπεια τη διαρροή πληροφοριών, την ελάττωση της διαθεσιµότητας των πόρων του συστήµατος (επιθέσεις τύπου άρνησης παροχής υπηρεσιών denial of service), την απώλεια της ακεραιότητας πληροφοριών µε καταστροφή ή παραφθορά τους, ή απλά την ενόχληση του χρήστη, χρησιµοποιώντας κατά µη πρέποντα τρόπο έναν ή περισσότερους από τους πόρους του συστήµατος. Η αντιστοιχία µεταξύ προβληµάτων ασφάλειας και κατηγοριών πόρων συστήµατος φαίνεται στον πίνακα (5.1) που ακολουθεί. Πίνακας 5.1: Αντιστοιχία προβληµάτων ασφάλειας και κατηγοριών πόρων συστήµατος Για να αντιµετωπισθούν τα αρνητικά αυτά ενδεχόµενα η Java ενσωµατώνει διάφορους µηχανισµούς που ελαττώνουν τις πιθανότητες να χρησιµοποιηθεί κατά µη πρέποντα τρόπο κάποιος πόρος του συστήµατος. Οι µηχανισµοί αυτοί παρέχουν υψηλά επίπεδα προστασίας απέναντι στη διαρροή πληροφοριών και την απώλεια της ακεραιότητάς τους, ενώ οι άµυνες απέναντι στην απώλεια της διαθεσιµότητας των πόρων και στην ενόχληση του χρήστη είναι ασθενέστερες. Η ανισοκατανοµή των µηχανισµών άµυνας είναι σχεδιαστική επιλογή, καθώς τα ενδεχόµενα της διαρροής και της παραφθοράς ή καταστροφής των δεδοµένων είναι σαφώς δυσµενέστερα σενάρια από την απώλεια διαθεσιµότητας των πόρων ή την ενόχληση του χρήστη Συνολική αποτίµηση της ασφάλειας στη γλώσσα Java Η Java είχε σχεδιαστεί εξ αρχής ως γλώσσα που θα µπορούσε να χρησιµοποιηθεί στο διαδίκτυο, συνεπώς οι σχεδιαστές της είχαν κατά νου ζητήµατα ασφάλειας. Οι προδιαγραφές ασφάλειας στην Java δεν είναι τέλειες, κάτι που αποδεικνύεται και από τις τροποποιήσεις που έγιναν από την πρώτη στη δεύτερη έκδοση της γλώσσας, αλλά είναι µία πολύ καλή αφετηρία. Προβλήµατα επίσης ανακύπτουν στην υλοποίηση των µηχανισµών 61

66 ασφάλειας, παρά τα βήµατα προόδου που έχουν γίνει. Η ίδια η οµάδα της Java µιλά πλέον για «διαχείριση κινδύνων» παρά για «ασφάλεια», κάτι που θέτει το πρόβληµα στη σωστή του βάση. Οι κατευθύνσεις που εξετάζονται για την περαιτέρω θωράκιση της γλώσσας Java από πλευράς ασφάλειας περιλαµβάνουν τα ακόλουθα: 1. υνατότητα για τήρηση ηµερολογίων. Τα ηµερολόγια φυσικά δεν αποτρέπουν την οποιαδήποτε παραβίαση της ασφάλειας, επιτρέπουν όµως την αποτίµηση του µεγέθους της ζηµιάς και παρέχουν ενδείξεις για το τι πρέπει να προσεχθεί στο µέλλον. Επίσης, µπορούν να αποτελέσουν είσοδο για συστήµατα αυτοµατοποιηµένης ανίχνευσης ζητηµάτων ασφάλειας ή αποδεικτικό στοιχείο στα δικαστήρια. 2. Χρήση αφηρηµένων συντακτικών δένδρων αντί του bytecode. Ένα σύνολο ζητηµάτων ανακύπτει διότι δεν είναι εφικτό να αναλυθεί στον βαθµό που θα έπρεπε ο κώδικας Java πριν την εκτέλεσή του. Η δυσχέρεια αυτή οφείλεται στο ότι η µορφή bytecode δεν είναι η πλέον κατάλληλη για τέτοιου είδους αναλύσεις. Για την αντιµετώπιση του ζητήµατος αυτού έχει προταθεί η αντικατάσταση του bytecode από µία γενική µορφή που ονοµάζεται αφηρηµένο συντακτικό δένδρο που συνδυάζει την απαιτούµενη ταχύτητα εκτέλεσης µε τη δυνατότητα διεξοδικής ανάλυσης. 3. Αντίστροφη µεταγλώττιση και επαναµεταγλώττιση. Για προστασία από τεχνητά κατασκευασµένα κακόβουλα προγράµµατα, τα οποία δεν έχουν δηλαδή παραχθεί από κανονικό µεταγλωττιστή της γλώσσας Java και παραβιάζουν τους κανόνες της γλώσσας, έχει προταθεί να διενεργείται αντίστροφη µεταγλώττιση, δηλαδή επαναφορά του bytecode σε κάποια µορφή πηγαίου κώδικα, και κατόπιν να µεταγλωττίζεται εκ νέου ο κώδικας αυτός και να εκτελείται το αποτέλεσµα της µεταγλώττισης αυτής, εφ όσον βέβαια είναι επιτυχής. Πέρα από το χρονικό κόστος, η προσέγγιση αυτή απαιτεί ωστόσο την ύπαρξη ενός µεταγλωττιστή Java σε κάθε υπολογιστή, κάτι που δεν είναι ιδιαίτερα ευµενώς δεκτό από τους χρήστες. 5.2 SQL Η γλώσσα SQL [20] είναι τυποποιηµένη γλώσσα προγραµµατισµού για την πρόσβαση και διαχείριση δεδοµένων σε βάσεις δεδοµένων. Απο σήµερα εγκαινιάζουµε τη νέα κατηγορία θεµάτων WEB SQL στην οποία θα αναφερθούµε στις βασικές εντολές SQL. Με την ολοκλήρωση των θεµάτων (ελπίζουµε µέσα στον ένα µήνα) θα µπορείτε να έχετε πρόσβαση και να διαχειρίζεστε δεδοµένα στις πιο γνωστές βάσεις δεδοµένων όπως MySQL, PostgreSQL, Oracle, Sybase, SQL Server, DB2, Access κ.α. 62

67 5.2.1 Τι είναι SQL; SQL είναι τα αρχικά της αγγλικής ονοµασίας Structured Query Language η οποία στην ελληνική ορολογία µεταφράζεται ώς δοµηµένη γλώσσα αναζήτησης. Συνοπτικά µε την SQL µπορούµε να έχουµε πρόσβαση σε µια βάση δεδοµένων, να εκτελούµε αναζητήσεις µε κριτήρια, να εισάγουµε νεα δεδοµένα, να διαγράψουµε υπάρχοντα δεδοµένα να κάνουµε αλλαγές σε υπάρχοντα δεδοµένα. Αξίζει να σηµειωθει ότι η SQL είναι τυποποιηµένη από τον Αµερικανικό Ινστιτούτο Τυποποιήσεων γνωστή και ως ANSI (American National Standards Institute) για την πρόσβαση και διαχείριση βάσεων δεδοµένων. Εντόλες SQL χρησιµοποιούνται για την εξαγωγή και ανανέωση δεδοµένων απο µια βάση δεδοµένων. Η SQL ακολουθείτε απο τα πιο γνωστά προγράµµατα σχεσιακής βάσεις δεδοµένων όπως MS Access, DB2, MySQL, Informix, MS SQL Server, Oracle, Sybase κτλπ. Οι βασικές εντολές που συναντιούνται σε όλες τις βάσεις δεδοµένων, είναι οι SELECT, UPDATE, DELETE, INSERT, WHERE, και άλλες) MySQL Εικόνα 5.2: Το λογότυπο της MySQL H MySQL [21] πρωτοεµφανίστηκε στις 23 Μαίου του 1995 και από τότε έχει καταφέρει να είναι πολύ διαδεδοµένη και να χρησιµοποιείται κατά κόρον στις διαδικτυακές εφαρµογές, ακόµα και από µεγάλες εταιρείες και οργανισµούς, όπως οι: NASA, Apple, Amazon.com, Yahoo!, Nokia και Wikipedia. Η δηµιουργία της βάσης δεδοµένων του συστήµατος, έγινε µε την χρήση MySQL server 5.0. Έγινε επιλογή του MySQL server διότι είναι ένας γρήγορος, πολλών χρηστών, και ασφαλής server βάσεων δεδοµένων SQL, που χρησιµοποιείται κατά κόρων σε διαδικτυακές εφαρµογές, όπως άλλωστε προαναφέραµε. 5.3 Ασφάλεια συστηµάτων βάσεων δεδοµένων Με δεδοµένο ότι πάνω από το 90% των σύγχρονων συστηµάτων χρησιµοποιεί κάποιο είδος βάσης δεδοµένων, η ασφάλεια των βάσεων δεδοµένων αποκτά ιδιαίτερη σηµασία, αν µάλιστα λάβουµε υπ όψιν ότι η αξία της πληροφορίας είναι το κύριο «περιουσιακό στοιχείο» των πληροφοριακών συστηµάτων. Με τον όρο «συστήµατα βάσεων δεδοµένων», αναφερόµαστε τόσο στις ίδιες τις συλλογές δεδοµένων όσο και στα συστήµατα που τις διαχειρίζονται. Τα συστήµατα διαχείρισης βάσεων δεδοµένων είναι συνήθως λογισµικό που εκτελείται πάνω από το λειτουργικό σύστηµα και υλοποιεί τις λειτουργίες που 63

68 είναι απαραίτητες για τη δηµιουργία, χρήση και συντήρηση της βάσης δεδοµένων. Τα δεδοµένα εντός µιας βάσης είναι συνήθως καλά δοµηµένα βάσει ενός από τα ακόλουθα µοντέλα δεδοµένων: Σχεσιακό Αντικειµενοστραφές Ιεραρχικό ικτυακό Όταν σε ένα πληροφοριακό σύστηµα εισάγεται κάποια βάση δεδοµένων, οι συνήθεις διαστάσεις της ασφάλειας (ακεραιότητα, έλεγχος προσπέλασης, εµπιστευτικότητα, διαθεσιµότητα, έλεγχος -audit) επαυξάνονται µε µερικές ακόµη και συγκεκριµένα: ιακριτότητα (granularity). Στα συνήθη συστήµατα ένα υποκείµενο είτε έχει ένα δικαίωµα πάνω σε ένα αντικείµενο είτε δεν το έχει, ενώ το αντικείµενο καθορίζεται από τη φυσική του οντότητα. Για παράδειγµα, ένας εκτυπωτής είναι ένα διακριτό αντικείµενο και ένας χρήστης µπορεί να έχει δικαίωµα να τυπώσει ή όχι. ένα τερµατικό είναι επίσης ένα διακριτό αντικείµενο και µπορεί να παρέχει το δικαίωµα σύνδεσης ή να µην το παρέχει. Σε µία βάση δεδοµένων ωστόσο, το αντικείµενο που αφορούν οι εξουσιοδοτήσεις µπορεί να είναι µία ολόκληρη βάση δεδοµένων, µία σχέση, µία γραµµή ή στήλη σχέσης ή ακόµη και µία µεµονωµένη τιµή3. Η έννοια της διακριτότητας σχετίζεται µε το πόσο λεπτοµερής είναι η διάκριση των αντικειµένων πάνω στα οποία εφαρµόζονται οι εξουσιοδοτήσεις. Συµπερασµός ή έµµεση προσπέλαση (inference).υπάρχουν περιπτώσεις κατά τις οποίες κάποιος χρήστης δεν έχει δικαίωµα άµεσης προσπέλασης σε κάποια δεδοµένα, µπορεί όµως να τα συνάγει µε κατάλληλες εντολές προς τη βάση δεδοµένων. Για παράδειγµα, ένα σύστηµα βάσεων δεδοµένων πιθανόν να µη µας επιτρέπει να ζητήσουµε τον µισθό ενός συγκεκριµένου εργαζόµενου βάσει αριθµού ταυτότητας, αλλά µόνο µέσω φύλου, ηλικίας και ετών προϋπηρεσίας (προκειµένου για εξαγωγή στατιστικών στοιχείων). Αν εµείς γνωρίζουµε ότι υπάρχει ένας µόνο άνδρας σε ηλικία 45 ετών µε 16 χρόνια προϋπηρεσίας, τότε µπορούµε χρησιµοποιώντας τα νοµότυπα κριτήρια να εξάγουµε πληροφορία που δεν θα έπρεπε. Συνάθροιση (aggregation). Με τον όρο συνάθροιση αναφερόµαστε στη συλλογή δεδοµένων από διαφορετικές πηγές και τον συνδυασµό τους για την εξαγωγή πρόσθετων πληροφοριών. Το πρόβληµα αυτό έχει ενταθεί µε την πρόοδο των τεχνικών εξόρυξης δεδοµένων. Φιλτράρισµα (filtering), η απόκρυψη δηλαδή από τον χρήστη δεδοµένων που δεν πρέπει να έχει τη δυνατότητα να δει. 64

69 καταγραφή (journaling), η τήρηση δηλαδή πλήρους ηµερολογίου σχετικά µε τις ενέργειες που έχουν γίνει επί των δεδοµένων και τους συσχετισµούς τους µε τους χρήστες Γενικές αρχές ασφάλειας βάσεων δεδοµένων Η βάση δεδοµένων είναι για τους χρήστες της ένα εργαλείο για να αποθηκεύουν, επεξεργάζονται και να µεταδίδουν δεδοµένα, σύµφωνα µε το µοντέλο που παρουσιάζεται στο ακόλουθο σχήµα: Εικόνα 5.3: Μοντέλο Βάσης εδοµένων Τόσο κατά τη φάση της επεξεργασίας όσο και κατά τη φάση της µετάδοσης χρησιµοποιούνται ειδικοί µηχανισµοί για τη διασφάλιση ότι: οι δοσοληψίες θα εκτελεστούν στο σύνολό τους ή καθόλου θα εφαρµόζονται όλοι οι κανόνες ακεραιότητας που έχουν ορισθεί για τη βάση δεδοµένων. Σε σχέση µε την ασφάλεια βάσεων δεδοµένων, θα πρέπει να λαµβάνουµε υπ όψιν ότι η βάση δεδοµένων είναι ένα σύστηµα που εκτελείται σε έναν υπολογιστή, πάνω από ένα λειτουργικό σύστηµα, και έτσι επηρεάζεται άµεσα από τους µηχανισµούς ασφάλειας που παρέχει ο συνδυασµός αυτός υλικού/λογισµικού. Αν για παράδειγµα το λειτουργικό σύστηµα δεν παρέχει επαρκείς µηχανισµούς διακρίβωσης ταυτότητας, η βάση δεδοµένων θα πρέπει να υλοποιήσει δικούς της. Επίσης, αν η βάση δεδοµένων αποθηκεύεται σε αρχεία που δεν προστατεύονται επαρκώς από το λειτουργικό σύστηµα, οι µηχανισµοί ελέγχου πρόσβασης που υλοποιούνται από τη βάση δεδοµένων µπορούν να παρακαµφθούν, απλά διαβάζοντας ή τροποποιώντας τα αρχεία σε επίπεδο λειτουργικού συστήµατος. Θεµελιώδης απαίτηση από τα συστήµατα βάσεων δεδοµένων είναι η ακεραιότητα των δεδοµένων. Τα δεδοµένα πρέπει να διασώζονται σε περιπτώσεις βλαβών υλικού και δυσλειτουργιών του λογισµικού (στο µέτρο του δυνατού βεβαίως), οι τροποποιήσεις πρέπει να γίνονται µόνο από εξουσιοδοτηµένους χρήστες και κάθε φορά να επιστρέφονται τα δεδοµένα που έχουν αποθηκευτεί. Αν υπάρχει οποιαδήποτε παραβίαση της ακεραιότητας, οι ενδιαφερόµενοι χρήστες πρέπει τουλάχιστον να ειδοποιούνται. Η διαθεσιµότητα είναι επίσης µία σηµαντική διάσταση που ορίζει ότι τα δεδοµένα πρέπει να είναι πάντα διαθέσιµα στους εξουσιοδοτηµένους χρήστες. 65

70 Περιοδικά, ή σε επιλεγµένα χρονικά σηµεία, πρέπει να διενεργούνται στη βάση δεδοµένων έλεγχοι ορθότητας (audits) για εντοπισµό πιθανών προβληµάτων. Οι έλεγχοι αυτοί πρέπει να είναι κατά το δυνατόν λεπτοµερείς και διεξοδικοί, ωστόσο δεν πρέπει να επηρεάζουν δυσανάλογα την απόδοση του συστήµατος. Συνοψίζοντας, θα πρέπει µία βάση δεδοµένων να διαφυλάσσει την εµπιστευτικότητα των πληροφοριών επιτρέποντας την προσπέλασή τους µόνο από εξουσιοδοτηµένους χρήστες, να προστατεύει την ακεραιότητα των δεδοµένων, ενώ παράλληλα να µεγιστοποιεί την απόδοση του συστήµατος και τη διαθεσιµότητα των δεδοµένων. Οι στόχοι αυτοί είναι αλληλοσυγκρουόµενοι, έτσι συνήθως βρίσκεται κάποια χρυσή τοµή, ανάλογα µε τις προτεραιότητες και τις ανάγκες του οργανισµού Φυσική ακεραιότητα της βάσης δεδοµένων Η φυσική ακεραιότητα της βάσης δεδοµένων συσχετίζεται µε τη φθορά που µπορούν να υποστούν τα µαγνητικά µέσα αποθήκευσης από διακοπές ρεύµατος, βλάβες κυκλωµάτων ή φυσιολογική φθορά. Το σύστηµα θα πρέπει να παρέχει µηχανισµούς ώστε κατόπιν εµφανίσεως τέτοιων περιστατικών να είναι δυνατή η ανάκαµψη από το σφάλµα και η ανάκτηση των δεδοµένων. Ένας σηµαντικός µηχανισµός υποστήριξης της φυσικής ακεραιότητας είναι η τήρηση εφεδρικών αντιγράφων, η αποτύπωση δηλαδή των περιεχοµένων των δίσκων όπου φυλάσσεται η βάση δεδοµένων σε άλλα µέσα µακροπρόθεσµης αποθήκευσης (π.χ. µαγνητικές ταινίες, DVD κ.λπ.). Για τα εφεδρικά αντίγραφα είναι σηµαντικό να µπορούν να λαµβάνονται ενόσω η βάση δεδοµένων βρίσκεται εν λειτουργία, µε άλλα λόγια να είναι δυνατόν να διενεργούνται δοσοληψίες στη βάση δεδοµένων ενόσω διαρκεί η λήψη του εφεδρικού αντιγράφου. Παράλληλα είναι επιθυµητό να υπάρχουν ταχείες διαδικασίες ανάκαµψης, δηλαδή ο χρόνος που µεσολαβεί από την έναρξη της διαδικασίας ανάκαµψης µέχρι να τεθεί το σύστηµα σε πλήρη διαθεσιµότητα να είναι κατά το δυνατόν µικρότερος. Τα εφεδρικά αντίγραφα βάσεων δεδοµένων διακρίνονται εν γένει- σε δύο κατηγορίες, τα φυσικά αντίγραφα και τα λογικά αντίγραφα. Τα φυσικά αντίγραφα αποτυπώνουν τα περιεχόµενα των δίσκων, όπως ακριβώς τα αποθηκεύει η βάση δεδοµένων, χωρίς να ενδιαφέρονται για τη λογική τους δοµή. Τα φυσικά αντίγραφα λαµβάνονται σε µικρότερο χρόνο και αποκαθίστανται ταχύτερα, συνήθως όµως απαιτούν να διακόπτεται η λειτουργία της βάσης δεδοµένων κατά τη λήψη τους και ανάλογα µε το σύστηµα βάσης δεδοµένων είναι πιθανόν να µπορούν να λειτουργήσουν µόνο σε σύστηµα «όµοιο» µε αυτό από το οποίο ελήφθησαν. Τα λογικά αντίγραφα αποτυπώνουν τα δεδοµένα της βάσης σε µορφή που αντικατοπτρίζει τη λογική τους δοµή, χωρίς να αποτυπώνουν τον επακριβή τρόπο αποθήκευσης των δεδοµένων στους δίσκους. Απαιτούν περισσότερο χρόνο για να ληφθούν και η αποκατάστασή τους διαρκεί περισσότερο, ωστόσο µπορούν εν γένει να λαµβάνονται ενόσω η βάση δεδοµένων 66

71 λειτουργεί και µπορούν να λειτουργήσουν και σε συστήµατα «ανόµοια» προς αυτό από το οποίο ελήφθησαν. Μία δεύτερη τεχνική για την υποστήριξη της φυσικής ακεραιότητας είναι η χρήση τεχνολογίας RAID. Η τεχνολογία RAID χρησιµοποιεί πλεονάζοντες δίσκους για την αποθήκευση των δεδοµένων, εγγράφοντας στους πλεονάζοντες δίσκους αθροίσµατα ελέγχου και διόρθωσης, κατά τρόπο ώστε βλάβες σε έναν από τους δίσκους να επιτρέπουν στο σύστηµα να συνεχίσει τη λειτουργία του. Ανάλογα µε τη χρήση των πλεοναζόντων δίσκων υπάρχουν οι εξής κύριες κατηγορίες RAID (περιλαµβάνονται µόνο αυτές που προσφέρουν κάποια πρόσθετη ασφάλεια, καθώς κάποιες τεχνικές RAID εστιάζονται στην απόδοση): RAID 1 χρήση κατοπτρικών δίσκων Για κάθε δίσκο χρησιµοποιείται ένας ίσης χωρητικότητας. Το σύστηµα εγγράφει τα δεδοµένα και στους δύο δίσκους, όπως φαίνεται στο σχήµα που ακολουθεί: Εικόνα 5.4: RAID 1 RAID 3 παράλληλη µεταφορά και ψηφία ισοτιµίας Τα δεδοµένα διαµοιράζονται σε πολλαπλούς δίσκους (stripe 0-3 στην εικόνα που ακολουθεί) και ψηφία ισοτιµίας δηµιουργούνται και εγγράφονται στον πλεονάζοντα δίσκο: Εικόνα 5.5: RAID 3 67

72 RAID 5 ανεξάρτητοι δίσκοι δεδοµένων µε κατανεµηµένα ψηφία ισοτιµίας Κάθε φυσικός δίσκος περιέχει τόσο διαµερίσεις δεδοµένων όσο και διαµερίσεις ψηφίων ισοτιµίας. Η ανεξαρτησία των δίσκων επιτρέπει τη µεγιστοποίηση της ταχύτητας ανάγνωσης και την αύξηση της ευελιξίας. Εικόνα 5.6: RAID 5 Τέλος, για τη διατήρηση της φυσικής ακεραιότητας των βάσεων δεδοµένων συνήθως παρέχονται ασφαλείς διαδικασίες για τον τερµατισµό της λειτουργίας τους, τόσο σε επίπεδο λογισµικού όσο και σε επίπεδο υλικού Λογική ακεραιότητα της βάσης δεδοµένων Η λογική ακεραιότητα των µιας βάσης δεδοµένων αναφέρεται στην εξασφάλιση της λογικής συνοχής και συνέπειας της βάσης δεδοµένων. Στη διάσταση αυτή περιλαµβάνονται οι ακόλουθες ενότητες: Πεδία ορισµού. Πρέπει οι τιµές που αποθηκεύονται σε συγκεκριµένα πεδία να είναι σύµφωνες µε το αντίστοιχο πεδίο ορισµού π.χ. σε αριθµητικά πεδία να αποθηκεύονται µόνο αριθµητικές τιµές, σε πεδία τύπου ακεραίου να µην αποθηκεύονται δεκαδικά κ.ο.κ. Αποδοχή ή όχι τιµών null. Αν πεδία έχουν ορισθεί ως µη επιδεχόµενα τιµές null (π.χ. customerid varchar(20) not null) πρέπει η βάση δεδοµένων να εξασφαλίζει ότι για τα πεδία αυτά θα παρασχεθούν τιµές κατά την εισαγωγή των δεδοµένων. Εύρος τιµών. Ορισµένα δεδοµένα πρέπει να δέχονται τιµές µόνο από ένα υποσύνολο του πεδίου ορισµού, όπως ορίζεται από εντολές ελέγχου. Σχέση µεταξύ τιµών διαφορετικών πεδίων στην ίδια εγγραφή. Είναι δυνατόν να έχουν ορισθεί περιορισµοί που πρέπει να ισχύουν µεταξύ πεδίων. Έλεγχος µοναδικότητας τιµών. Πεδία ή συνδυασµοί πεδίων θα πρέπει να είναι µοναδικά µεταξύ οντοτήτων που αποθηκεύονται στον ίδιο πίνακα. 68

73 Έλεγχος αναφοράς τιµών. Οι τιµές που αποθηκεύονται σε έναν πίνακα πρέπει να υπάρχουν σε στήλη/στήλες του άλλου πίνακα. Έλεγχος µεταβάσεων κατάστασης. Ελέγχονται τόσο η κατάσταση της βάσης δεδοµένων πριν την τροποποίηση και µετά την τροποποίηση ιακρίβωση ταυτότητας χρηστών σε συστήµατα βάσεων εδοµένων Τα συστήµατα βάσεων δεδοµένων πρέπει να έχουν ένα πρώτο επίπεδο ελέγχου πρόσβασης, όπου διαπιστώνεται αν ένας χρήστης έχει συνολικά το δικαίωµα να χρησιµοποιήσει το σύστηµα βάσεων δεδοµένων ή όχι. Συνήθως παρέχονται οι εξής δυνατότητες για διακρίβωση της ταυτότητας των χρηστών: ιακρίβωση ταυτότητας µε όνοµα χρήστη - συνθηµατικό Κατά τρόπο πλήρως αντίστοιχο µε τα λειτουργικά συστήµατα, µία βάση δεδοµένων µπορεί να ζητά από τους χρήστες της ένα όνοµα χρήστη και ένα συνθηµατικό ως διαπιστευτήρια της σύνδεσης. Το Σ Β οφείλει να διατηρεί έναν κατάλογο µε τις έγκυρες αντιστοιχίες ονοµάτων χρηστών και συνθηµατικών ώστε να αποφασίζει για το αν τα παρουσιασθέντα διαπιστευτήρια είναι έγκυρα. εν είναι απαραίτητο να υπάρχει οποιαδήποτε συσχέτιση ανάµεσα στα διαπιστευτήρια της βάσης δεδοµένων και του λειτουργικού συστήµατος. Η τεχνική αυτή είναι χρήσιµη όταν το λειτουργικό σύστηµα δεν παρέχει αξιόπιστους µηχανισµούς διακρίβωσης ταυτότητας των χρηστών ή όταν πραγµατοποιούνται συνδέσεις µέσω δικτύου στη βάση δεδοµένων, οπότε η ταυτότητα του χρήστη στο λειτουργικό σύστηµα δεν είναι διαθέσιµη (ή αξιόπιστη) ιακρίβωση ταυτότητας από το λειτουργικό σύστηµα Σ αυτή την περίπτωση το Σ Β επαφίεται στους µηχανισµούς του λειτουργικού συστήµατος να εκτελέσουν ορθή διακρίβωση ταυτότητας. Από τη στιγµή που ένας χρήστης έχει αναγνωριστεί από το λειτουργικό σύστηµα και ο χρήστης λειτουργικού συστήµατος είναι εξουσιοδοτηµένος να χρησιµοποιεί τη βάση δεδοµένων, δεν ζητάτε κανένα πρόσθετο στοιχείο για την προσπέλαση του χρήστη στη βάση δεδοµένων. Αυτό είναι βολικό για τους χρήστες καθώς δεν είναι απαραίτητο να γνωρίζουν οποιαδήποτε άλλα συνθηµατικά, πέρα από αυτά που χρησιµοποιούν για τη σύνδεσή τους στο σύστηµα. Ο µηχανισµός αυτός δεν µπορεί (ή δεν είναι σκόπιµο) να χρησιµοποιείται ως αποκλειστικός µηχανισµός διακρίβωσης ταυτότητας σε συστήµατα όπου επιτρέπεται δικτυακή πρόσβαση στη βάση δεδοµένων, καθώς επιτάσσει κάθε χρήστης να έχει λογαριασµό στο λειτουργικό σύστηµα (κάτι που µπορεί να µην είναι επιθυµητό). Επίσης, πρέπει να χρησιµοποιείται µόνον όταν το λειτουργικό σύστηµα έχει επαρκώς αξιόπιστους µηχανισµούς διακρίβωσης ταυτότητας. 69

74 5.3.7 Τεχνική 1: Κρυπτογράφηση Τα δεδοµένα κρυπτογραφούνται και φυλάσσονται στη βάση δεδοµένων σε κρυπτογραφηµένη µορφή, έτσι ώστε ακόµη και αν ένας µη εξουσιοδοτηµένος χρήστης µπορέσει να τα προσπελάσει να µην είναι καταληπτά (και άρα χρήσιµα) σ αυτόν. Η πρώτη προσέγγιση στην κρυπτογράφηση είναι να χρησιµοποιείται το ίδιο κλειδί για να κρυπτογραφούνται όλες οι τιµές. Η τεχνική αυτή ωστόσο έχει το µειονέκτηµα ότι για την ίδια πραγµατική τιµή πεδίου παράγεται πάντα η ίδια κρυπτογραφηµένη τιµή και έτσι σε πεδία µε µικρό διακριτό πλήθος τιµών (π.χ. φύλο (άνδρας/γυναίκα), φυλή (λευκός, µαύρος, ασιάτης)) είναι εύκολο να βρεθεί η αντιστοιχία µε έναν από τους ακόλουθους δύο τρόπους: επιλέγουµε εγγραφές των οποίων οι τιµές για το συγκεκριµένο γνώρισµα είναι γνωστές και εξάγουµε το κρυπτογραφηµένο κείµενο. εισάγουµε εγγραφές µε τις επιθυµητές τιµές και καταγράφουµε το κρυπτογραφηµένο κείµενο που παράγεται. Για να αντιµετωπίσουµε το ζήτηµα αυτό πρέπει να χρησιµοποιούµε διαφορετικό κλειδί ανά εγγραφή. Αυτό βέβαια καθιστά αναγκαία την εισαγωγή ενός σχήµατος δηµιουργίας, αποθήκευσης και ανάκτησης κλειδιών, ενώ επιπλέον απαιτεί πρόσθετο αποθηκευτικό χώρο για την αποθήκευση των κλειδιών και επιβαρύνει τις πράξεις εισόδου-εξόδου, καθώς για την ανάγνωση ενός δεδοµένου πρέπει να ανακτάται τόσο η κρυπτογραφηµένη τιµή όσο και το κλειδί. Μία εναλλακτική προσέγγιση είναι αυτή της αλυσιδωτής κρυπτογράφησης. Βάσει της τεχνικής αυτής πέραν της συνάρτησης κρυπτογράφησης cipher(data, key) χρησιµοποιείται και µία συνάρτηση κερµατισµού hash(data), ενώ επίσης οι εγγραφές µίας σχέσης διατάσσονται σύµφωνα µε την αποθήκευσή τους στον δίσκο. Στη θέση του κρυπτογραφούµενου γνωρίσµατος Αc της ν-οστής εγγραφής γράφεται η τιµή cipher(rν[αc], hash(rν- 1[Ac])) δηλαδή κρυπτογραφηµένη τιµή του ίδιου γνωρίσµατος της προηγούµενης πλειάδας χρησιµοποιείται ως κλειδί για την κρυπτογράφηση της τιµής του γνωρίσµατος της τρέχουσας πλειάδας. Η τεχνική αυτή πλεονεκτεί στο ότι δεν σπαταλά χώρο για την αποθήκευση κλειδιών (απαιτείται να αποθηκευθεί µόνον το κλειδί της πρώτης εγγραφής), απαιτεί όµως να διαβάζονται οι πλειάδες αυστηρά σειριακά (δεν µπορούµε να διαβάσουµε απ ευθείας την εγγραφή ν διότι δεν θα ξέρουµε το κλειδί αποκρυπτογράφησης παρά µόνον αν διαβάσουµε όλες τις προηγούµενες), ενώ και σε περιπτώσεις διαγραφής ή ενηµέρωσης µιας ενδιάµεσης εγγραφής πρέπει να επανακωδικοποιήσουµε τις τιµές σε όλες τις επόµενές της Τεχνική 2: Κλείδωµα χαρακτηρισµού ασφάλειας Το κλείδωµα χαρακτηρισµού ασφάλειας είναι συνδυασµός ενός µοναδικού προσδιοριστή (π.χ. της ταυτότητα εγγραφής) και του χαρακτηρισµού ασφάλειας. Ο στόχος της είναι να προστατεύσει τον χαρακτηρισµό ασφάλειας 70

75 από (α) ανάγνωση από µη εξουσιοδοτηµένους χρήστες (β) τροποποίηση. Ο υπολογισµός του κλειδώµατος γίνεται από το ενδιάµεσο στρώµα λογισµικού, ενώ σε κάθε προσπέλαση µέσω του στρώµατος ελέγχεται αν η τιµή του κλειδώµατος είναι έγκυρη σε σχέση µε τον χαρακτηρισµό ασφάλειας και την ταυτότητα εγγραφής. Η παραγωγή του κλειδώµατος χαρακτηρισµού ασφάλειας γίνεται όπως φαίνεται στο ακόλουθο σχήµα: Εικόνα 5.7: Κλείδωµα χαρακτηρισµού ασφάλειας Το κλείδωµα χαρακτηρισµού ασφάλειας που παράγεται από την κρυπτογραφική συνάρτηση αποθηκεύεται µαζί µε τον χαρακτηρισµό ασφάλειας. Αν η συνάρτηση είναι αµφίδροµη, είναι δυνατόν να αποθηκευθεί µόνο το κλείδωµα, µε συνέπεια ο χαρακτηρισµός ασφάλειας να µην είναι αναγνώσιµος. Επιπρόσθετα, µη εξουσιοδοτηµένες τροποποιήσεις στον χαρακτηρισµό ασφάλειας θα γίνουν αντιληπτές, καθώς το κλείδωµα ελέγχεται σε κάθε πρόσβαση για το αν είναι έγκυρο, σε σχέση µε τον αριθµό εγγραφής και τον χαρακτηρισµό ασφάλειας. Σηµειώνεται ότι µια και ο υπολογισµός του κλειδώµατος χαρακτηρισµού ασφάλειας περιλαµβάνει και τον αριθµό εγγραφής, η τιµή του είναι διαφορετική για γραµµές που περιέχουν τον ίδιο χαρακτηρισµό ασφάλειας Τεχνική 3: Κλείδωµα ακεραιότητας Το κλείδωµα ακεραιότητας είναι ένας συνδυασµός ενός µοναδικού προσδιοριστή, της τιµής του δεδοµένου και του χαρακτηρισµού ευαισθησίας. Ο στόχος του είναι να προστατεύσει τα δεδοµένα και τον χαρακτηρισµό ευαισθησίας από παράτυπες τροποποιήσεις. Ο υπολογισµός του κλειδώµατος γίνεται από το ενδιάµεσο στρώµα λογισµικού κατά την αποθήκευση της εγγραφής, ενώ σε κάθε προσπέλαση µέσω του στρώµατος ελέγχεται αν η τιµή του κλειδώµατος είναι έγκυρη σε σχέση µε τα δεδοµένα, τον χαρακτηρισµό ευαισθησίας και την ταυτότητα εγγραφής. Η παραγωγή του κλειδώµατος ακεραιότητας γίνεται όπως φαίνεται στο ακόλουθο σχήµα: 71

76 Εικόνα 5.8: Κλείδωµα ακεραιότητας Το κλείδωµα ακεραιότητας που παράγεται από την κρυπτογραφική συνάρτηση αποθηκεύεται µαζί µε την εγγραφή. Μη εξουσιοδοτηµένες τροποποιήσεις στον χαρακτηρισµό ευαισθησίας ή στα δεδοµένα θα γίνουν αντιληπτές, καθώς το κλείδωµα ελέγχεται σε κάθε πρόσβαση για το αν είναι έγκυρο, σε σχέση µε τον αριθµό εγγραφής, τα δεδοµένα και τον χαρακτηρισµό ευαισθησίας. Σηµειώνεται ότι µια και ο υπολογισµός του κλειδώµατος χαρακτηρισµού ευαισθησίας περιλαµβάνει και τον αριθµό εγγραφής, η τιµή του είναι διαφορετική για γραµµές που περιέχουν τα ίδια δεδοµένα και τον ίδιο χαρακτηρισµό ευαισθησίας. 5.4 ιασύνδεση συστήµατος βάσης δεδοµένων Η διασύνδεση του server του συστήµατος µε την βάση δεδοµένων, έγινε µέσω του database connectivity. ια τον λόγο ότι η γλώσσα προγραµµατισµού που χρησιµοποιήθηκε είναι η Java, συγκεκριµένα η διασύνδεση αυτή έγινε µε τη βοήθεια του JDBC (Java DataBase Connectivity). To JDBC είναι υπεύθυνο για: την επίτευξη σύνδεσης µε µία βάση δεδοµένων ώστε να υπάρχει πρόσβαση στα δεδοµένα της την αποστολή των SQL statements την διαδικασία όπου παίρνονται τα αποτελέσµατα της εκτέλεσης των SQL statements. 72

77 5.5 Java Server Pages (JSP) Οι JSP (Java Server Pages) [23], [24, προσφέρουν την δυνατότητα για απλή και γρήγορη δηµιουργία δυναµικών, διαδικτυακών εφαρµογών. Μια JSP σελίδα είναι ουσιαστικά µια HTML σελίδα που περιέχει ειδικές εντολές (scripts) οι οποίες εκτελούνται στον server του δικτύου. Μία Java Server Page είναι µια δυναµικά κατασκευασµένη ιστοσελίδα, τα πλεονεκτήµατα της οποίας σε σχέση µε τις στατικές σελίδες είναι η επεκτασιµότητα, συντήρηση, και εύκολη διαχείριση µεγάλου όγκου δεδοµένων. 5.6 HTML Τα αρχικά HTML προέρχονται από τις λέξεις HyperText Markup Language. Η html δεν είναι µια γλώσσα προγραµµατισµού. Είναι µια περιγραφική γλώσσα, δηλαδή ένας ειδικός τρόπος γραφής κειµένου. Ο browser αναγνωρίζει αυτόν τον τρόπο γραφής και εκτελεί τις εντολές που περιέχονται σε αυτόν. Αξίζει να σηµειωθεί ότι η html είναι η πρώτη και πιο διαδεδοµένη γλώσσα περιγραφής της δοµής µιας ιστοσελίδας. Η html χρησιµοποιεί τις ειδικές ετικέτες (τα tags) να δώσει τις απαραίτητες οδηγίες στον browser. Τα tags είναι εντολές που συνήθως ορίζουν την αρχή ή το το τέλος µιας λειτουργίας. Τα tags βρίσκονται πάντα µεταξύ των συµβόλων < και >. Π.χ. <BODY> Οι οδηγίες είναι case insensitive, δεν επηρεάζονται από το αν έχουν γραφτεί µε πεζά (µικρά) ή κεφαλαία Κανόνες της HTML Για να µπορούν οι browser να ερµηνεύουν σχεδόν απόλυτα σωστά την html έχουν θεσπιστεί κάποιοι κανόνες. Αυτοί οι κανόνες είναι γνωστοί ως προδιαγραφές. Εποµένως σχεδόν κάθε είδος υπολογιστή µπορεί να δείξει το ίδιο καλά µια ιστοσελίδα. Οι πρώτες προδιαγραφές ήταν η html 2.0. Πρόβληµα προέκυψε όταν η Μicrosoft και η Νetscape πρόσθεσαν στην html τέτοιες δυνατότητες που στην αρχή τουλάχιστον ήταν συµβατές µόνο µε συγκεκρίµενους browser Η HTML σήµερα Σήµερα πολλοί είναι εκείνοι που δηµιουργούν µια ιστοσελίδα σε κάποιο πρόγραµµα που επιτρέπει την δηµιουργία χωρίς την συγγραφή κώδικα. Η κοινή άποψη πάνω στο θέµα όµως είναι ότι κάτι τέτοιο είναι αρνητικό επειδή ο δηµιουργός δεν έχει τον απόλυτο έλεγχο του κώδικα µε αποτέλεσµα πολλές φόρες να υπάρχει οπτικό χάος στην προσπάθεια των browser να εµφανίσουν την ιστοσελίδα. 5.7 JavaScript Η Javascript είναι γλώσσα προγραµµατισµού η οποία έχει σαν σκοπό την παραγωγή δυναµικού περιεχοµένου σε ιστοσελίδες. Έχει τις ρίζες της στην ECMAscript της οποίας ουσιαστικά αποτελεί επέκταση µε µερικές πρόσθετες δυνατότητες. 73

78 5.7.1 Τρόπος σύνταξης της JavaScript Η Javascript έχει βασιστεί όσον αφορά τον τρόπο σύνταξης του κώδικά της στη γλώσσα προγραµµατισµού C, µε την οποία παρουσιάζει πολλές οµοιότητες. Η Javascript είναι client side γλώσσα προγραµµατισµού. Αυτό σηµαίνει ότι η επεξεργασία του κώδικα Javascript και η παραγωγή του τελικού περιεχοµένου HTML δεν πραγµατοποιείται στον server, αλλά στο πρόγραµµα περιήγησης των επισκεπτών. Αυτή η διαφορά έχει και πλεονεκτήµατα και µειονεκτήµατα για καθεµιά από τις δύο γλώσσες. Συγκεκριµένα, η Javascript δεν έχει καµία απαίτηση από πλευράς δυνατοτήτων του server για να εκτελεστεί (επεξεργαστική ισχύ, συµβατό λογισµικό διακοµιστή), αλλά βασίζεται στις δυνατότητες του browser των επισκεπτών. Επίσης µπορεί να ενσωµατωθεί σε στατικές σελίδες HTML Javascript και Java Η Javascript δεν θα πρέπει να συγχέεται µε τη Java, που είναι διαφορετική γλώσσα προγραµµατισµού και µε διαφορετικές εφαρµογές. Τονίζεται ότι ο σωστός τρόπος γραφής της είναι "Javascript" και όχι 'Java script' σαν δύο λέξεις, όπως λανθασµένα γράφεται ορισµένες φορές. 5.8 Web Server Ο web server που χρησιµοποιήθηκε είναι ο apache-tomcat Έγινε χρήση του συγκεκριµένου web server διότι είναι ένας server ο οποίος υποστηρίζει πλήρως την τεχνολογία JSP/Servlets. Γενικότερα, ο Tomcat είναι ένα servlet container σε περιβάλλον JSP, το οποίο επιτρέπει την δηµιουργία διαδικτυακών εφαρµογών. 5.9 Περιγραφή Λογικής Εφαρµογής Για τις ανάγκες της εφαρµογής, δε χρησιµοποιήθηκε κάποια αρχή πιστοποίησης δεδοµένων για την παραλαβή των ψηφιακών πιστοποιητικών και των ζευγών κλειδιών, αλλά δηµιουργήθηκαν µέσω των ειδικών κλάσεων της Java. Επίσης, δε χρησιµοποιήθηκε σε κανένα σηµείο ανώνυµο κανάλι επικοινωνίας. Στην εφαρµογή, η κλάση Pollster.class έχει τον ρόλο της οντότητας Pollster. Οι κλάσεις Tallier.class και Validator.class έχουν τους ρόλους των οντοτήτων Tallier και Validator αντίστοιχα. Η κλάση Registration.class, χρησιµοποιείται για τον έλεγχο των στοιχείων του χρήστη. Η σελίδα Operations.jsp χρησιµοποιείται για την εισαγωγή των στοιχείων του χρήστη. Η σελίδα Vote.jsp χρησιµοποιείται για την επιλογή της ψήφου του χρήστη, ενώ οι σελίδες Time.jsp και Error.jsp εµφανίζονται µόνο αν η διαδικασία της ψήφου δεν είναι µέσα στα χρονικά πλαίσια της ψηφοφορίας και αν πραγµατοποιηθεί κάποια λάθος επαλήθευση κατά τη διάρκεια της διαδικασίας αντίστοιχα. Τέλος, η σελίδα Ok.jsp εµφανίζεται στο τέλος της διαδικασίας για ενηµέρωση του χρήστη ότι η διαδικασία ολοκληρώθηκε και για παροχή του αριθµού 74

79 απόδειξής του. Ολες οι κλάσεις επικοινωνούν µε διάφορους πίνακες µιας βάσης δεδοµένων (DB). Στην εικόνα (5.9) που ακολουθεί, παρουσιάζεται η επικοινωνία µεταξύ των οντοτήτων της εφαρµογής και ακολουθεί η λεπτοµερής ανάλυση των λειτουργιών που παρεµβάλλονται ανάµεσα στην επικοινωνία. Εικόνα 5.9: Η επικοινωνία των οντοτήτων της εφαρµογής Operations.jsp Η εφαρµογή ξεκινά µε την εγγραφή του χρήστη στο σύστηµα, στα πλαίσια της οποίας γίνεται η πιστοποίηση της ταυτότητάς του. Για να επιτευχθεί αυτό, στην κεντρική σελίδα, ο χρήστης εισάγει τα στοιχεία του (ID1, Name, RSA Public Key Modulus και RSA Public Key Exponent). 75

80 Registration.class Το jsp, έρχεται σε επικοινωνία µε το Registration.class, ένα java servlet που η δουλειά του είναι να συνδέεται µε τη βάση δεδοµένων και να ελέγχει αν τα στοιχεία που έδωσε ο χρήστης, ταιριάζουν µε αυτά που είναι καταχωρηµένα στον πίνακα RVL1. Πριν γίνει ο έλεγχος, διενεργείται ένας έλεγχος για να διαπιστωθεί αν η διαδικασία βρίσκεται µέσα στα χρονικά πλαίσια της ψηφοφορίας. Αν όχι, ο χρήστης µεταβαίνει στην σελίδα time.jsp, όπου ενηµερώνεται για το συµβάν. Στην αντίθετη περίπτωση, συνεχίζεται η επαλήθευση του χρήστη. Vote.jsp Αν ο έλεγχος επαληθευτεί, εµφανίζεται στον χρήστη η σελίδα ψήφου (vote.jsp), όπου καλείται να επιλέξει την ψήφο του. Από registration servlet, στέλνονται κρυµµένα στο vote.jsp, τα στοιχεία του ψηφοφόρου. Αν όµως ο έλεγχος δεν επαληθευτεί, ο χρήστης παραµένει στην κεντρική σελίδα, όπου εµφανίζεται ένα µήνυµα λάθους, καλώντας τον να επαναλάβει την εισαγωγή των στοιχείων του. Pollster.class Όταν γίνει η επιλογή της ψήφου και ο χρήστης πιέσει το submit button, το jsp καλεί το Pollster.class, το java servlet που παίζει το ρόλο της οντότητας Pollster. Παραλαµβάνονται τα κρυµµένα στοιχεία του ψηφοφόρου και η ψήφος του, από το vote.jsp. ηµιουργείται το δεύτερο RSA ζεύγος κλειδιών (ιδιωτικό και δηµόσιο) που θα χρειαστεί στη συνέχεια χρησιµοποιώντας τον αλγόριθµο RSA. Έπειτα, δηµιουργείται ένας δεύτερος µοναδικό αναγνωριστικός αριθµός, το ID2. Ενώνονται το δηµόσιο RSA κλειδί που µόλις δηµιουργήθηκε µε το ID2 και εκτελείται µία συνάρτηση κατακερµατισµού (hash function) σε αυτά, ώστε να υπάρξει ως αποτέλεσµα η σύνοψη µηνύµατός τους (message digest). Στη συνέχεια, γίνεται σύνδεση µε τη βάση δεδοµένων και τον πίνακα adminkeys, ώστε να παραληφθεί το δηµόσιο RSA κλειδί της οντότητας Tallier. Στη συνέχεια, εκτελείται µία συνάρτηση «τυφλής υπογραφής» (blind signature) στο message digest που δηµιουργήθηκε πριν. Από τον πίνακα users, ανακτάται και ανασυνθέτεται το αρχικό ζεύγος RSA κλειδιών του Pollster. Υπογράφεται ψηφιακά το αποτέλεσµα της συνάρτησης blind και το ID1 µε το ιδιωτικό RSA κλειδί του. Τα κλειδιά που δηµιουργήθηκαν µε τον αλγόριθµο RSA, δεν είναι δυνατό να κρυπτογραφήσουν όλα τα µηνύµατα, λόγω του µεγέθους των µηνυµάτων. Η λύση σε αυτό, είναι να δηµιουργηθεί ένα συµµετρικό κλειδί µε τον αλγόριθµο AES που θα χρησιµοποιηθεί για την κρυπτογράφηση και αποκρυπτογράφηση των µηνυµάτων από τον αποστολέα και τον παραλήπτη αντίστοιχα και να κρυπτογραφηθεί αυτό µε τη σειρά του µε το RSA κλειδί του εκάστοτε παραλήπτη. 76

81 ηµιουργείται λοιπόν ένα νέο συµµετρικό κλειδί µε τον αλγόριθµο AES. Κρυπτογραφούνται οι δύο υπογραφές και τα δύο υπογεγραµµένα µηνύµατα µε αυτό. Στη συνέχεια, κρυπτογραφείται το ίδιο το κλειδί µε το δηµόσιο RSA κλειδί του Tallier (που είναι ο παραλήπτης των µηνυµάτων). Γίνεται σύνδεση µε το Socket που πρέπει να έχει ήδη δηµιουργήσει ο Tallier ώστε να του σταλούν τα κρυπτογραφηµένα µηνύµατα. Αφού γίνει η σύνδεση µε το socket στην προκαθορισµένη πόρτα επικοινωνίας τους, στέλνονται τα κρυπτογραφηµένα µηνύµατα. Tallier.class Ο Tallier έχει δηµιουργήσει από την εκτέλεσή του το socket µε το οποίο θα συνδεθεί ο Pollster και βρίσκεται σε κατάσταση αναµονής µηνυµάτων. Γίνεται η λήψη των κρυπτογραφηµένων µηνυµάτων. Πραγµατοποιείται η σύνδεση µε τη βάση δεδοµένων και ανακτάται από τον πίνακα admins το προσωπικό ζεύγος RSA κλειδιών του Tallier. Αρχικά αποκρυπτογραφείται το συµµετρικό AES κλειδί µε το ιδιωτικό RSA κλειδί του Tallier. Με τη χρησιµοποίηση του AES κλειδιού, αποκρυπτογραφούνται και τα υπόλοιπα µηνύµατα. Από τον πίνακα RVL1 της βάσης δεδοµένων, παραλαµβάνεται το ζεύγος RSA κλειδιών του Pollster, βάση του ID1 που είχε παραληφθεί προηγουµένως. Γίνεται επαλήθευση των δύο υπογραφών, µε τη χρησιµοποίηση του δηµοσίου RSA κλειδιού του Pollster. Αν η επαλήθευση των υπογραφών πραγµατοποιηθεί, γίνεται η υπογραφή του blind message και της blind υπογραφής που µόλις πριν δηµιουργήθηκε. Επειτα, πραγµατοποιείται η κρυπτογράφηση µε το AES κλειδί των δύο υπογραφών και στέλνονται στον Pollster, µαζί µε ένα µήνυµα ότι οι υπογραφές που παραλήφθησαν αρχικά από αυτόν ήταν σωστές. Γίνεται απενεργοποίηση του socket που χρησιµοποιήθηκε και ενεργοποίηση ενός νέου, και τίθεται σε κατάσταση αναµονής, περιµένοντας τα νέα µηνύµατα του Pollster. Pollster.class Παραλαµβάνονται τα κρυπτογραφηµένα µηνύµατα από τον Tallier και γίνεται η αποκρυπτογράφησή τους µε το AES κλειδί. Παράλληλα, παραλαµβάνεται και το µήνυµα του Tallier, αν η επαλήθευση ήταν επιτυχής. Αν δεν ήταν, ο χρήστης µεταβαίνει στη σελίδα error.jsp όπου ενηµερώνεται πως συνέβη κάποιο λάθος και καλείται να επαναλάβει τη διαδικασία. Αν ήταν επιτυχηµένη, η διαδικασία συνεχίζεται κανονικά. 77

82 Η σύνδεση µε το Socket απενεργοποιείται και πραγµατοποιείται η επαλήθευση της υπογραφής της blind signature, µε το δηµόσιο RSA κλειδί του Tallier. Πραγµατοποιείται η µέθοδος unblind στην blind signature που παραλήφθηκε, έχοντας ως αποτέλεσµα την παραλαβή του αρχικού message digest, «τυφλά» υπογεγραµµένο από τον Tallier. Πραγµατοποιείται η δηµιουργία ένα νέο AES κλειδιού για την επόµενη αποστολή και παραλαβή µηνυµάτων και κρυπτογραφούνται µε αυτό τα µηνύµατα που θα σταλούν στον Tallier (το υπογεγραµµένο message digest, το αρχικό message digest, το ID2 και το δεύτερο δηµόσιο RSA κλειδί). Κρυπτογραφείται και το νέο AES κλειδί µε το δηµόσιο RSA κλειδί του Tallier, γίνεται η σύνδεση µε το νέο socket που έχει δηµιουργηθεί από τον Tallier και στέλνονται όλα τα κρυπτογραφηµένα µηνύµατα. Ο Pollster µένει σε κατάσταση αναµονής, για να ενηµερωθεί από τον Tallier αν οι υπογραφές επαληθεύθηκαν, ώστε να συνεχιστεί η διαδικασία. Tallier.class Παραλαµβάνονται τα κρυπτογραφηµένα µηνύµατα, αποκρυπτογραφείται µε το ιδιωτικό RSA κλειδί του Tallier το νέο AES κλειδί και µε αυτό αποκρυπτογραφoύνται τα υπόλοιπα µηνύµατα. Πραγµατοποιείται η επαλήθευση της υπογραφής του στο message digest που προηγουµένως υπέγραψε «τυφλά». Αν η υπογραφή επαληθευτεί, γίνεται καταχώρηση στον πίνακα RVL2 της βάσης δεδοµένων, το ID2 και το δεύτερο δηµόσιο RSA κλειδί του Pollster σε µια νέα εγγραφή. Πραγµατοποιείται η αποστολή ενός µηνύµατος στον Pollster για το αν η επαλήθευση ήταν επιτυχής, απενεργοποιείται το υπάρχον socket, ενεργοποιείται ένα νέο και µπαίνει σε κατάσταση αναµονής. Pollster.class Παραλαµβάνεται το µήνυµα του Tallier. Αν η επαλήθευση δεν ήταν επιτυχής, ο χρήστης µεταβαίνει στο error.jsp, όπως πριν. Αν η επαλήθευση ήταν επιτυχής, η διαδικασία συνεχίζεται. ηµιουργείται ένα νέο AES κλειδί, που θα χρησιµοποιηθεί για την κρυπτογράφηση και αποκρυπτογράφηση των µηνυµάτων στην επικοινωνία που θα υπάρξει µε τον Validator. Επίσης, δηµιουργείται άλλο ένα AES κλειδί, µε το οποίο κρυπτογραφείται η ψήφος. Γίνεται εκ νέου σύνδεση µε τη βάση δεδοµένων και παραλαµβάνεται το δηµόσιο RSA κλειδί του Validator από τον πίνακα admins. 78

83 Πραγµατοποιείται µία συνάρτηση κατακερµατισµού στην κρυπτογραφηµένη ψήφο και το message digest (αποτέλεσµα της συνάρτησης κατακερµατισµού), χρησιµοποιείται στην blind µέθοδο. Υπογράφεται το αποτέλεσµα του blind, µε το ιδιωτικό RSA κλειδί του Pollster. Κρυπτογραφείται το blind, η υπογραφή και το ID1 µε το AES κλειδί και το AES κλειδί µε το δηµόσιο RSA κλειδί του Validator. Πραγµατοποιείται σύνδεση µε το Socket που έχει ανοίξει ο Validator και στέλνονται τα κρυπτογραφηµένα µηνύµατα. Validator.class Στο πρόγραµµα της οντότητας Validator, έχει ήδη δηµιουργηθεί το socket που συνδέεται ο Pollster και βρίσκεται σε κατάσταση αναµονής. Πραγµατοποιείται η παραλαβή από τον Pollster των κρυπτογραφηµνων µηνυµάτων. Πραγµατοποιείται σύνδεση στη βάση δεδοµένων και από τον πίνακα admins παραλαµβάνεται το ζεύγος RSA κλειδιών του. Αποκρυπτογραφούνται κατ αρχήν το AES κλειδί µε το ιδιωτικό RSA κλειδί του Validator και αυτό χρησιµοποιείται για να αποκρυπτογραφηθούν τα µηνύµατα που παρελήφθησαν από τον Pollster. Πραγµατοποιείται µία ακόµα σύνδεση µε τη βάση δεδοµένων και από τον πίνακα RVL1, παραλαµβάνεται το RSA ζεύγος κλειδιών του Pollster. Γίνεται επαλήθευση της υπογραφής του Pollster στο blind. Αν επαληθευτεί, τότε υπογράφεται «τυφλά» το blinded message κρυπτογραφείται µε το AES κλειδί. Το κρυπτογραφηµένο µήνυµα αποστέλεται στον pollster, µαζί µε ένα µήνυµα για το αν επαληθεύθηκε η υπογραφή προηγουµένως και απενεργοποιείται το socket. Pollster.class Πραγµατοποιείται η παραλαβή του µηνύµατος και αν δεν επαληθεύθηκε η υπογραφή, ο χρήστης οδηγείται στη σελίδα error.jsp. Αν επαληθεύθηκε, παραλαµβάνεται και το κρυπτογραφηµένο µήνυµα, το οποίο αποκρυπτογραφείται µε το AES κλειδί. Πραγµατοποιείται η µέθοδος unblind, µε τη χρησιµοποίηση του δεύτερου ιδιωτικού RSA κλειδιού του Pollster, αποκτώντας την υπογραφή του Validator στο digest της κρυπτογραφηµένης ψήφου. Υπογράφει κι αυτός µε τη σειρά του την υπογραφή του Validator, µε το δεύτερο ιδιωτικό του RSA κλειδί. 79

84 Πραγµατοποιείται κρυπτογράφηση µε ένα νέο AES κλειδί της υπογραφής του Validator, της δικής του υπογραφής, του ID2, του digest της κρυπτογραφηµένης ψήφου και της ίδιας την κρυπτογραφηµένης ψήφου. Κρυπτογραφούνται µε το δηµόσιο RSA κλειδί του Tallier το AES κλειδί και στέλνονται όλα στον Tallier, αφού πρώτα επιτευχθεί η σύνδεση στο κατάλληλο socket. Tallier.class Πραγµατοποιείται η παραλαβή των κρυπτογραφηµένων µηνυµάτων και αποκρυπτογραφείται αρχικά το AES κλειδί µε το ιδιωτικό του RSA κλειδί και τα υπόλοιπα µε το AES κλειδί που µόλις αποκρυπτογραφήθηκε. Πραγµατοποιείται επαλήθευση της υπογραφής του Pollster. Μετά από άλλη µία σύνδεση µε τη βάση δεδοµένων, παραλαµβάνεται από τον πίνακα adminkeys το ζεύγος RSA κλειδιών του Validator. Πραγµατοποιείται επαλήθευση της «τυφλής» υπογραφής του Validator στο digest της κρυπτογραφηµένης ψήφου, µε το δηµόσιο RSA κλειδί του Validator. ηµιουργείται µία απόδειξη και πραγµατοποιείται η υπογραφή της κρυπτογραφηµένης ψήφου. Κρυπτογραφούνται η υπογραφή της κρυπτογραφηµένης ψήφου και η απόδειξη µε το AES κλειδί, αποστέλλονται στον Pollster και απενεργοποιείται το socket. Ενεργοποιείται ένα νέο Socket και µπαίνει σε κατάσταση αναµονής, περιµένοντας τα επόµενα µηνύµατα. Pollster.class Παραλαµβάνονται τα κρυπτογραφηµένα µηνύµατα και αποκρυπτογραφούνται µε το AES κλειδί. Πραγµατοποιείται επαλήθευση της υπογραφής, µε το δηµόσιο RSA κλειδί του Tallier. Αν η υπογραφή δεν επαληθευτεί, ο χρήστης οδηγείται στη σελίδα error.jsp. Αν επαληθευτεί, τότε δηµιουργείται ένα νέο AES κλειδί, µε το οποίο κρυπτογραφούνται το AES κλειδί που αποκρυπτογραφεί τη ψήφο και η απόδειξη. Με το δηµόσιο RSA κλειδί του Tallier, κρυπτογραφείται το τελευταίο δηµιουργηµένο AES κλειδί. Πραγµατοποιείται σύνδεση µε το socket που έχει ήδη ενεργοποιηθεί από τον Tallier, στέλνονται όλα τα κρυπτογραφηµένα µηνύµατα και απενεργοποιείται το Socket. Ο χρήστης µεταβαίνει στη σελίδα ok.jsp που τον ενηµερώνει για την επιτυχία της διαδικασίας και του παρέχει τον αριθµό της απόδειξης που του αντιστοιχεί. 80

85 Tallier.class Παραλαµβάνονται και αποκρυπτογραφούνται όλα τα µηνύµατα κι έπειτα απενεργοποιείται το socket. Αποκρυπτογραφείται η ψήφος και καταχωρείται στη βάση δεδοµένων. Αν σε οποιοδήποτε σηµείο της εφαρµογής δεν επαληθευτεί κάποια υπογραφή, ή δηµιουργηθεί οποιοδήποτε άλλο σφάλµα, ο χρήστης µεταβαίνει στη σελίδα error (error.jsp) και η εφαρµογή σβήνει όλες τις εγγραφές που έγιναν στη βάση δεδοµένων µέχρι εκείνη τη στιγµή. Αν ο χρήστης κλείσει το παράθυρο του browser του πριν ψηφίσει, δεν καταγράφεται τίποτα και µπορεί ανά πάσα στιγµή να ξανακάνει log-in στο σύστηµα και να ψηφίσει. Αν έχει ψηφίσει και κλείσει τον browser πριν προλάβει να ολοκληρωθεί η διαδικασία, αυτή ολοκληρώνεται στον server και καταχωρείται κανονικά η ψήφος του (εκτός κι αν υπάρξει άλλο σφάλµα), απλά ο χρήστης δε µπορεί να λάβει τον αριθµό απόδειξής του. Παράλληλα µε την εφαρµογή, τρέχει µόνιµα το πρόγραµµα time.class, το οποίο ελέγχει την ώρα και αν αυτή ξεφύγει από τα όρια της ψηφοφορίας, ενηµερώνει την εφαρµογή, ώστε να σταµατήσει να δέχεται νέες ψήφους και να δηµοσιεύσει τα τελικά αποτελέσµατα της ψηφοφορίας. Αν για οποιονδήποτε λόγο χρειαστεί να τερµατιστεί η ψηφοφορία πριν την προκαθορισµένη ώρα, υπάρχει το πρόγραµµα stop.java, το οποίο µόλις εκτελεστεί, ενηµερώνει την εφαρµογή να µη δέχεται νέες ψήφους και να δηµοσιεύσει τα τελικά αποτελέσµατα της ψηφοφορίας. 81

86 5.10 Περιγραφή Interface Εφαρµογής Στην κεντρική σελίδα της εφαρµογής (εικόνα 5.10), ο χρήστης καλείται να εισάγει τα στοιχεία του (ID, Name, Public Key Modulus και Public Key Exponent) ώστε να πιστοποιήσει την ταυτότητά του. Εικόνα 5.10: Η κεντρική σελίδα της εφαρµογής Σε περίπτωση λάθους στοιχείων, στη σελίδα εµφανίζεται ένα µήνυµα λάθους (εικόνα 5.11) και ο χρήστης καλείται να επαναλάβει την εισαγωγή των στοιχείων του. Εικόνα 5.11: Μήνυµα λάθους στοιχείων 82

87 Στην περίπτωση που η ψηφοφορία έχει λήξει, εµφανίζεται η σελίδα που τον ενηµερώνει σχετικά (εικόνα 5.12). Εικόνα 5.12: Σελίδα ενηµέρωσης για το πέρας της διαδικασίας ψηφοφορίας Στην περίπτωση που ο χρήστης εισάγει σωστά τα στοιχεία του και πιστοποιηθεί, µεταβαίνει στη σελίδα επιλογής ψήφου (εικόνα 5.13). Εκεί, κάνει την επιλογή της ψήφου του. Εικόνα 5.13: Σελίδα επιλογής ψήφου 83

88 Σε περίπτωση λάθους του συστήµατος, εµφανίζεται η σελίδα λάθους (εικόνα 5.14) στον χρήστη και καλείται να µεταβεί ξανά στην αρχική σελίδα (υπάρχει σχετικό link) ώστε να επαναπραγµατοποιήσει τη διαδικασία. Εικόνα 5.14: Σελίδα λάθους Στην περίπτωση που η ψήφος καταχωρηθεί επιτυχώς, στον χρήστη εµφανίζεται η σελίδα επιτυχίας καταχώρησης ψήφου (εικόνα 5.15), ενηµερώνοντάς τον για την επιτυχία αυτής και γνωστοποιώντας του τον αριθµό της απόδειξης ψήφου, που του αντιστοιχεί. Εικόνα 5.15: Σελίδα επιτυχίας καταχώρησης ψήφου 84

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Δ.Π.Μ.Σ. στα Πληροφοριακά Συστήματα ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: «Ασφάλεια στο Διαδίκτυο με τη βοήθεια ζεύγους δημόσιου και ιδιωτικού κλειδιού: Εφαρμογή σε πρόγραμμα ψηφιακής υπογραφής

Διαβάστε περισσότερα

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 8 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 8 η Βασίλης Στεφανής Περιεχόμενα Τι είναι κρυπτογραφία Ιστορική αναδρομή Αλγόριθμοι: Καίσαρα Μονοαλφαβιτικοί Vigenere Vernam Κρυπτογραφία σήμερα Κρυπτογραφία Σκοπός Αποστολέας

Διαβάστε περισσότερα

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

Ηλεκτρονικό εμπόριο. HE 7 Τεχνολογίες ασφάλειας Ηλεκτρονικό εμπόριο HE 7 Τεχνολογίες ασφάλειας Πρόκληση ανάπτυξης ασφαλών συστημάτων Η υποδομή του διαδικτύου παρουσίαζε έλλειψη υπηρεσιών ασφάλειας καθώς η οικογένεια πρωτοκόλλων TCP/IP στην οποία στηρίζεται

Διαβάστε περισσότερα

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

Κρυπτογραφία. Εργαστηριακό μάθημα 1 Κρυπτογραφία Εργαστηριακό μάθημα 1 Βασικοί όροι Με τον όρο κρυπτογραφία εννοούμε τη μελέτη μαθηματικών τεχνικών που στοχεύουν στην εξασφάλιση θεμάτων που άπτονται της ασφάλειας μετάδοσης της πληροφορίας,

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail: pkitsos@teimes.gr, pkitsos@ieee.org Αντίρριο 2015 1 ΤΙ ΕΙΝΑΙ Η ΚΡΥΠΤΟΛΟΓΙΑ?

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Εισαγωγή- Βασικές Έννοιες Διδάσκων : Δρ. Παρασκευάς Κίτσος diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια ΣΤΟΧΟΙ ΚΕΦΑΛΑΙΟΥ Ορισµός τριών στόχων ασφάλειας - Εµπιστευτικότητα, ακεραιότητα και διαθεσιµότητα Επιθέσεις Υπηρεσίες και Τεχνικές

Διαβάστε περισσότερα

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

Οι απειλές. Απόρρητο επικοινωνίας. Αρχές ασφάλειας δεδομένων. Απόρρητο (privacy) Μέσω κρυπτογράφησης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2014-015 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα που ανταλλάσσονται

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

8.3 Ασφάλεια ικτύων. Ερωτήσεις

8.3 Ασφάλεια ικτύων. Ερωτήσεις 8.3 Ασφάλεια ικτύων Ερωτήσεις 1. Με τι ασχολείται η ασφάλεια των συστηµάτων; 2. Τι είναι αυτό που προστατεύεται στην ασφάλεια των συστηµάτων και για ποιο λόγο γίνεται αυτό; 3. Ποια η διαφορά ανάµεσα στους

Διαβάστε περισσότερα

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

8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Κεφάλαιο 8 8.3.4 Τεχνικές Ασφάλειας Συμμετρική Κρυπτογράφηση Ασυμμετρική Κρυπτογράφηση Ψηφιακές Υπογραφές Σελ. 320-325 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr http://diktya-epal-g.ggia.info/ Creative

Διαβάστε περισσότερα

Ασφάλεια Στο Ηλεκτρονικό Εμπόριο. Λάζος Αλέξανδρος Α.Μ. 3530

Ασφάλεια Στο Ηλεκτρονικό Εμπόριο. Λάζος Αλέξανδρος Α.Μ. 3530 Ασφάλεια Στο Ηλεκτρονικό Εμπόριο Λάζος Αλέξανδρος Α.Μ. 3530 Ηλεκτρονικό Εμπόριο Χρησιμοποιείται για να περιγράψει την χρήση τηλεπικοινωνιακών μέσων (κυρίως δικτύων) για κάθε είδους εμπορικές συναλλαγές

Διαβάστε περισσότερα

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

Πληροφορική Ι. Μάθημα 10 ο Ασφάλεια. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Γκόγκος Χρήστος Οι διαφάνειες έχουν βασιστεί στο βιβλίο «Εισαγωγή στην επιστήμη των υπολογιστών» του B. Forouzanκαι Firoyz Mosharraf(2 η έκδοση-2010) Εκδόσεις Κλειδάριθμος Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Ασφάλεια Δεδομένων. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής στην Επιστήμη των Υπολογιστών 2015-16 Ασφάλεια Δεδομένων http://www.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Οι απειλές Ένας κακόβουλος χρήστης Καταγράφει μηνύματα

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σε δίκτυο υπολογιστών εμπιστευτική πληροφορία μπορεί να υπάρχει αποθηκευμένη σε μέσα αποθήκευσης (σκληροί δίσκοι, μνήμες κ.λ.π.), ή να κυκλοφορεί μέσου του δικτύου με τη μορφή πακέτων. Η ύπαρξη πληροφοριών

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κεφάλαιο 1 Γενική επισκόπηση Κρυπτογραφία Κεφάλαιο 1 Γενική επισκόπηση Ανασκόπηση ύλης Στόχοι της κρυπτογραφίας Ιστορικό Γενικά χαρακτηριστικά Κλασσική κρυπτογραφία Συμμετρικού κλειδιού (block ciphers stream ciphers) Δημοσίου κλειδιού

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών. Aσφάλεια Εισαγωγή στην επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Aσφάλεια Περιεχόμενα Πλευρές Ασφάλειας Ιδιωτικό Απόρρητο Μέθοδος Μυστικού Κλειδιού (Συμμετρική Κρυπτογράφηση) Μέθοδος Δημόσιου Κλειδιού (Ασύμμετρη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; 1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; Η ακεραιότητα δεδομένων(data integrity) Είναι η ιδιότητα που μας εξασφαλίζει ότι δεδομένα

Διαβάστε περισσότερα

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.1-8.3.3

Διαβάστε περισσότερα

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

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 7 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

ΜΑΘΗΜΑ 7 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΜΑΘΗΜΑ 7 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ 1. Ποια από τις πιο κάτω δηλώσεις περιγράφει την σωστή διαδικασία ασφάλειας των πληροφοριών για ένα οργανισμό; a) Να μην υπάρχουν διαδικασίες για την αναφορά των

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 19: Ασφάλεια Κρυπτογράφηση Βασική ιδέα: Αποθήκευσε και μετάδωσε την πληροφορία σε κρυπτογραφημένη μορφή που «δε βγάζει νόημα» Ο βασικός μηχανισμός: Ξεκίνησε από το

Διαβάστε περισσότερα

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρήτης ΕΠΠ Εργαστήριο Ασφάλεια Πληροφοριακών Συστηµάτων ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τµηµα Εφαρµοσµενης Πληροφορικης Και Πολυµεσων Fysarakis Konstantinos, PhD kfysarakis@staff.teicrete.gr Εισαγωγή

Διαβάστε περισσότερα

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

ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία ΕΠΛ 674: Εργαστήριο 1 Ασφάλεια Επικοινωνιακών Συστημάτων - Κρυπτογραφία Παύλος Αντωνίου Γραφείο: ΘΕΕ 02 B176 Εαρινό Εξάμηνο 2011 Department of Computer Science Ασφάλεια - Απειλές Ασφάλεια Γενικά (Ι) Τα

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστηµάτων Ορισµοί Κρυπτογράφηση: η διεργασία µετασχηµατισµού ενός µηνύµατος µεταξύ ενός αποστολέα και ενός παραλήπτη σε µια ακατανόητη µορφή ώστε αυτό να µην είναι αναγνώσιµο από τρίτους Αποκρυπτογράφηση: η διεργασία

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστηµάτων Ασφάλεια ενός Π.Σ.: Η ικανότητα ενός οργανισµού να προστατεύει τις πληροφορίες/πόρους του από τυχόν αλλοιώσεις, καταστροφές και µη εξουσιοδοτηµένη χρήση Η ικανότητά του να παρέχει ορθές και αξιόπιστες

Διαβάστε περισσότερα

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΗΝ ΕΝΟΤΗΤΑ 8.3.4-8.3.6

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ηλεκτρονικό εμπόριο. HE 6 Ασφάλεια

Ηλεκτρονικό εμπόριο. HE 6 Ασφάλεια Ηλεκτρονικό εμπόριο HE 6 Ασφάλεια Ηλεκτρονικό εμπόριο και ασφάλεια Δισταγμός χρηστών στην χρήση του ηλεκτρονικού εμπορίου Αναζήτηση ασφαλούς περιβάλλοντος ηλεκτρονικού εμπορίου Ζητούμενο είναι η ασφάλεια

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2 ΕΡΓΑΣΙΑ Διδάσκων: Γιώργος Χρυσάνθου Υπεύθυνος Άσκησης: Πύρρος Μπράτσκας Ημερομηνία Ανάθεσης: 3/10/015 Ημερομηνία Παράδοσης: 09/11/015 09:00 π.μ. I.Στόχος Στόχος αυτής της εργασίας είναι η χρησιμοποίηση

Διαβάστε περισσότερα

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

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συνολικό Πλαίσιο Ασφάλεια ΠΕΣ Εμπιστευτικότητα Ακεραιότητα Πιστοποίηση Μη-αποποίηση Κρυπτογράφηση

Διαβάστε περισσότερα

Ασφάλεια ικτύων. Ασφάλεια δικτύων

Ασφάλεια ικτύων. Ασφάλεια δικτύων Ασφάλεια ικτύων Ασφάλεια δικτύων Στα χαµηλά επίπεδα: να φτάσουν τα πακέτα στον παραλήπτη χωρίς σφάλµατα Σε ανώτερο επίπεδο: να προστατευθεί η διακινούµενη πληροφορία έτσι ώστε: Να µην µπορεί να διαβαστεί

Διαβάστε περισσότερα

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 2: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ENOTHTA 9 AΣΦAΛEIA KAI ΠPOΣTAΣIA

ENOTHTA 9 AΣΦAΛEIA KAI ΠPOΣTAΣIA ENOTHTA 9 Περιεχόµενα 1. Aσφάλεια vs Προστασία 2. Aσφάλεια 3. Προϋποθέσεις για ύπαρξη ασφάλειας 4. Eίδη απειλών 5. Σχεδιαστικές αρχές για ασφάλεια 6. Mηχανισµοί προστασίας 9-1 1. Aσφάλεια vs Προστασία

Διαβάστε περισσότερα

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

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3 Η Aσύμμετρη Kρυπτογραφία ή Κρυπτογραφία Δημοσίου Κλειδιού χρησιμοποιεί δύο διαφορετικά κλειδιά για την κρυπτογράφηση και αποκρυπτογράφηση. Eπινοήθηκε στο τέλος της δεκαετίας

Διαβάστε περισσότερα

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

ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΑΣΦΑΛΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Δ Εξάμηνο Τοπολογίες Διατάξεων Κρυπτογράφησης- Ασφάλεια Δικτύων και Ασφάλεια Ηλεκτρονικού Ταχυδρομείου Διδάσκων : Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής e-mail:

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ. Το περιβάλλον ασφάλειας Απειλές

ΑΣΦΑΛΕΙΑ. Το περιβάλλον ασφάλειας Απειλές ΑΣΦΑΛΕΙΑ 9.1 Το περιβάλλον ασφάλειας 9.2 Βασικά Θέματα κρυπτογραφίας 9.3 Πιστοποίηση ταυτότητας Χρήστη 9.4 Εσωτερικές Επιθέσεις 9.5 Εξωτερικές Επιθέσεις 9.6 Μηχανισμοί προστασίας 9.7 Έμπιστα συστήματα

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΕΠΙΘΕΣΗΣ (1/8)

ΤΕΧΝΙΚΕΣ ΕΠΙΘΕΣΗΣ (1/8) ΑΣΦΑΛΕΙΑ WEB CLIENT ΤΕΧΝΙΚΕΣ ΕΠΙΘΕΣΗΣ (1/8) Επίθεση άρνησης υπηρεσίας (Denial of Service-DoS). Αποστολή πολλών αιτήσεων στο µηχάνηµα-στόχο ώστε τα resources που του αποµένουν (σε αυτόν ή και στο δίκτυο).

Διαβάστε περισσότερα

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 11η Διάλεξη: Ασφάλεια στο Web Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 1 Εισαγωγικά Βασικές

Διαβάστε περισσότερα

Τεχνολογίες & Εφαρμογές Πληροφορικής

Τεχνολογίες & Εφαρμογές Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 5: Εγκατάσταση Απεγκατάσταση Εφαρμογών και Ιοί Ανδρέας Βέγλης, Αναπληρωτής Καθηγητής Άδειες

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση (Ι) Απειλές Συμμετρική & Μη-Συμμετρική Κρυπτογραφία Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 13/11/2017 ΘΕΜΑΤΙΚΕΣ ΠΕΡΙΟΧΕΣ ΑΣΦΑΛΕΙΑΣ Είδη Απειλών και Επιθέσεων

Διαβάστε περισσότερα

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

Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων. PGP (Pretty Good Privacy) Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων PGP (Pretty Good Privacy) Εισαγωγή Το λογισμικό Pretty Good Privacy (PGP), το οποίο σχεδιάστηκε από τον Phill Zimmerman, είναι ένα λογισμικό κρυπτογράφησης

Διαβάστε περισσότερα

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός

Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA. Κασαπίδης Γεώργιος -Μαθηµατικός Κρυπτογραφία ηµόσιου Κλειδιού Η µέθοδος RSA Τον Απρίλιο του 977 οι Ρόναλντ Ρίβεστ, Άντι Σαµίρ και Λέοναρντ Άντλεµαν, ερευνητές στο Ινστιτούτο Τεχνολογίας της Μασσαχουσέτης (ΜΙΤ) µετά από ένα χρόνο προσπαθειών

Διαβάστε περισσότερα

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας

Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας Δραστηριότητες σχετικά με κρυπτογραφία και ελέγχους ισοτιμίας Δραστηριότητα 6: Κωδικοί και κρυπτογραφία Το αντικείμενο της δραστηριότητας αυτής είναι η κατανόηση από την πλευρά των μαθητών μερικών στοιχειωδών

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστηµάτων Ταυτοποίηση και Πιστοποίηση (Identification & Authentication) Εισαγωγή - Βασικές Έννοιες Τεχνικές Ταυτοποίησης και Πιστοποίησης Συστήµατα που βασίζονται στην πληροφορία Συστήµατα που βασίζονται στην κατοχή

Διαβάστε περισσότερα

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

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

Οι ιοί των υπολογιστών αποτελούν πλέον ένα διαδεδομένο, καθημερινό φαινόμενο. Η γρήγορη εξάπλωση των ιών τα τελευταία χρόνια οφείλονται στο διαδίκτυο

Οι ιοί των υπολογιστών αποτελούν πλέον ένα διαδεδομένο, καθημερινό φαινόμενο. Η γρήγορη εξάπλωση των ιών τα τελευταία χρόνια οφείλονται στο διαδίκτυο Οι ιοί των υπολογιστών αποτελούν πλέον ένα διαδεδομένο, καθημερινό φαινόμενο. Η γρήγορη εξάπλωση των ιών τα τελευταία χρόνια οφείλονται στο διαδίκτυο και ειδικότερα στο ηλεκτρονικό ταχυδρομείο, το οποίο

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ Κρυπτογραφία Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Συμμετρικά Κρυπτοσυστήματα κλειδί k Αρχικό κείμενο (m) Αλγόριθμος Κρυπτογράφησης Ε c = E k (m) Κρυπτογραφημένο

Διαβάστε περισσότερα

Πρόβληµα 2 (12 µονάδες)

Πρόβληµα 2 (12 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2015-2016 ΔΙΔΑΣΚΟΝΤΕΣ: Ε. Μαρκάκης, Θ. Ντούσκας Λύσεις 2 ης Σειράς Ασκήσεων Πρόβληµα 1 (12 µονάδες) 1) Υπολογίστε τον

Διαβάστε περισσότερα

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

Κρυπ Κρ το υπ γραφία Κρυπ Κρ το υπ λογίας Διαχείριση και Ασφάλεια Τηλεπικοινωνιακών Συστημάτων Κρυπτογραφία Κρυπτογραφία Η Κρυπτογραφία (cryptography) είναι ένας κλάδος της επιστήμης της Κρυπτολογίας (cryptology), η οποία ασχολείται με την μελέτη

Διαβάστε περισσότερα

Πως μπορούν τα μέρη του υλικού ενός υπολογιστή να επικοινωνούν και να συνεργάζονται μεταξύ τους; Επειδή ακολουθούν συγκεκριμένες οδηγίες (εντολές).

Πως μπορούν τα μέρη του υλικού ενός υπολογιστή να επικοινωνούν και να συνεργάζονται μεταξύ τους; Επειδή ακολουθούν συγκεκριμένες οδηγίες (εντολές). Κεφάλαιο 5 Πως μπορούν τα μέρη του υλικού ενός υπολογιστή να επικοινωνούν και να συνεργάζονται μεταξύ τους; Επειδή ακολουθούν συγκεκριμένες οδηγίες (εντολές). Το σύνολο αυτών των εντολών το ονομάζουμε

Διαβάστε περισσότερα

ΣΕΜΙΝΑΡΙΟ. ΠΑΡΟΥΣΙΑΣΗ 19/5/11 Αµφιθέατρο

ΣΕΜΙΝΑΡΙΟ. ΠΑΡΟΥΣΙΑΣΗ 19/5/11 Αµφιθέατρο ΣΕΜΙΝΑΡΙΟ Θεµα : Τι είναι το SSL και πως χρησιµοποιείται. Τι χρειάζεται για να στηθεί ένα SSL. Οµάδα : Παναγιώτης Καλύβας Καρανίκας Γιώργος Μιχάλης Λιβάνιος ΠΑΡΟΥΣΙΑΣΗ 19/5/11 Αµφιθέατρο Εισαγωγή Τι είναι

Διαβάστε περισσότερα

Ανάδοχος Φορέας Έργου Οµάδα Ανάπτυξης του Έργου «Όνοµα έργου» Ένωση Φυσικών προσώπων Συντονίστρια έργου: ρ. Νικολέτα Γιαννούτσου Εκπαιδευτική οµάδα: ρ

Ανάδοχος Φορέας Έργου Οµάδα Ανάπτυξης του Έργου «Όνοµα έργου» Ένωση Φυσικών προσώπων Συντονίστρια έργου: ρ. Νικολέτα Γιαννούτσου Εκπαιδευτική οµάδα: ρ ΕΚΠΑΙ ΕΥΤΙΚΑ ΠΑΙΧΝΙ ΙΑ Κρυϖτογραφήµατα Βιβλίο Μαθητή Έκδοση 3.1 Ιούλιος 2007 Ανάδοχος Φορέας Έργου Οµάδα Ανάπτυξης του Έργου «Όνοµα έργου» Ένωση Φυσικών προσώπων Συντονίστρια έργου: ρ. Νικολέτα Γιαννούτσου

Διαβάστε περισσότερα

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

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ ΤΕΙ Κρητης Τμήμα Μηχανικών Πληροφορικής Εργαστήριο Ασφάλεια Πληροφοριακών Συστημάτων YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Εισαγωγή Ο στόχος της υβριδικής μεθόδου είναι να αντισταθμίσει τα μειονεκτήματα της συμμετρικής

Διαβάστε περισσότερα

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

ρ. Κ. Σ. Χειλάς, ίκτυα Η/Υ ΙΙΙ, Τ.Ε.Ι. Σερρών, 2007 Ψηφιακές υπογραφές Ψηφιακές υπογραφές Υπάρχει ανάγκη αντικατάστασης των χειρόγραφων υπογραφών µε ψηφιακές (ΨΥ) Αυτές πρέπει να διαθέτουν τα εξής χαρακτηριστικά: Ο παραλήπτης πρέπει να είναι σε θέση να

Διαβάστε περισσότερα

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

KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ KΕΦΑΛΑΙΟ 5 ΨΗΦΙΑΚΕΣ ΥΠΟΓΡΑΦΕΣ 1 Γενικά Η ψηφιακή υπογραφή είναι µια µέθοδος ηλεκτρονικής υπογραφής όπου ο παραλήπτης ενός υπογεγραµµένου ηλεκτρονικού µηνύµατος µπορεί να διαπιστώσει τη γνησιότητα του,

Διαβάστε περισσότερα

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

Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Εισαγωγή στην Κρυπτογραφία και τις Ψηφιακές Υπογραφές Βαγγέλης Φλώρος, BSc, MSc Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών Εν αρχή είναι... Η Πληροφορία - Αρχείο

Διαβάστε περισσότερα

Πώς να προστατευτείτε από τους ιούς

Πώς να προστατευτείτε από τους ιούς Πώς να προστατευτείτε από τους ιούς Περιεχόµενα 10 χρυσοί κανόνες για προστασία από ιούς και δούρειους ίππους...2 Πώς να προστατευτείτε από τους ιούς σελ. 1 10 χρυσοί κανόνες για προστασία από ιούς και

Διαβάστε περισσότερα

Τ.Π.Ε. στον Τουρισμό. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Τ.Π.Ε. στον Τουρισμό. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Τ.Π.Ε. στον Τουρισμό Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, 2015-2016 Μάθημα 2: Βασικές Αρχές Ασφάλειας Η/Υ Ασφάλεια Ηλεκτρονικού Υπολογιστή Ασφάλεια από Κακόβουλο

Διαβάστε περισσότερα

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 6: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΣΑΒΒΑΤΟ 2 ΙΟΥΝΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΙΚΤΥΑ

Διαβάστε περισσότερα

ΠΡΟΣΤΑΣΙΑ ΛΟΓΙΣΜΙΚΟΥ- ΙΟΙ ΚΕΦΑΛΑΙΟ 7

ΠΡΟΣΤΑΣΙΑ ΛΟΓΙΣΜΙΚΟΥ- ΙΟΙ ΚΕΦΑΛΑΙΟ 7 ΠΡΟΣΤΑΣΙΑ ΛΟΓΙΣΜΙΚΟΥ- ΙΟΙ ΚΕΦΑΛΑΙΟ 7 Ερωτήσεις Τι είναι η πειρατεία λογισμικού Παραδείγματα πειρατείας Τι είναι το πιστοποιητικό αυθεντικότητας; Αναφέρετε κατηγορίες λογισμικού που διατίθεται στο διαδίκτυο

Διαβάστε περισσότερα

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ) Ενότητα 4: ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ ΔΙΔΑΣΚΩΝ: ΚΩΝΣΤΑΝΤΙΝΟΣ ΧΕΙΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Πρόβληµα 2 (15 µονάδες)

Πρόβληµα 2 (15 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε

Διαβάστε περισσότερα

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Στόχος Εμπιστευτικότητα δεδομένων Ακεραιότητα δεδομένων Διαθεσιμότητα συστήματος Απειλή Έκθεση δεδομένων Παρέμβαση στα δεδομένα Άρνηση εξυπηρέτησης Κοινές κατηγορίες 1. Συνήθης

Διαβάστε περισσότερα

ΓΕΝΙΚΗ ΕΠΑΝΑΛΗΨΗ #1: ΜΑΘΗΜΑΤΑ 5-8

ΓΕΝΙΚΗ ΕΠΑΝΑΛΗΨΗ #1: ΜΑΘΗΜΑΤΑ 5-8 ΓΕΝΙΚΗ ΕΠΑΝΑΛΗΨΗ #1: ΜΑΘΗΜΑΤΑ 5-8 1. Ποια καρέκλα είναι κατάλληλη όταν χειριζόμαστε ηλεκτρονικό υπολογιστή; a) Το ύψος να είναι σταθερό με μεγάλη πλάτη b) Να διαθέτει υποστήριξη χαμηλά για τη μέση c) Να

Διαβάστε περισσότερα

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

Ασφάλεια Υπολογιστικών Συστηµάτων Βασικοί τύποι επιθέσεων στο Internet Βασισµένες σε κωδικό πρόσβασης (password-based attacks): προσπάθεια παραβίασης του κωδικού πρόσβασης Υποκλοπή πακέτων µετάδοσης (packet sniffing attacks): παρακολούθηση

Διαβάστε περισσότερα

Σκοπιµότητα των firewalls

Σκοπιµότητα των firewalls Σκοπιµότητα των firewalls Παρέχουν προστασία των εσωτερικών δικτύων από απειλές όπως: Μη εξουσιοδοτηµένη προσπέλαση των δικτυακών πόρων: όταν επίδοξοι εισβολείς προσπαθούν να εισχωρήσουν στο δίκτυο και

Διαβάστε περισσότερα

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό, 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή 1. εδοµένα, Πληροφορίες και Υπολογιστές 2. Πώς φτάσαµε στους σηµερινούς υπολογιστές 3. Το υλικό ενός υπολογιστικού συστήµατος 4. Το λογισµικό ενός υπολογιστικού συστήµατος

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ ΔΙΚΤΥΩΝ ΚΑΙ ΣΥΝΑΛΛΑΓΩΝ

ΑΣΦΑΛΕΙΑ ΔΙΚΤΥΩΝ ΚΑΙ ΣΥΝΑΛΛΑΓΩΝ ΑΣΦΑΛΕΙΑ ΔΙΚΤΥΩΝ ΚΑΙ ΣΥΝΑΛΛΑΓΩΝ Ο προβληματισμός και οι ανησυχίες που προκαλεί η ασφάλεια στο Ηλεκτρονικό Εμπόριο μπορούν να καταταχθούν σε δύο κατηγορίες : 1. σε 2. σε σε προβληματισμούς σχετικούς με

Διαβάστε περισσότερα

Ηλεκτρονικό Εμπόριο. Ενότητα 9: Ασφάλεια Ηλεκτρονικού Εμπορίου Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ηλεκτρονικό Εμπόριο. Ενότητα 9: Ασφάλεια Ηλεκτρονικού Εμπορίου Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Ηλεκτρονικό Εμπόριο Ενότητα 9: Ασφάλεια Ηλεκτρονικού Εμπορίου Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΕΣ ΣΤΑ ΔΙΚΤΥΑ

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

Διαβάστε περισσότερα

Ο ηλεκτρονικός υπολογιστής µπορεί να επεξεργάζεται δεδοµένα βάσει ενός συνόλου προκαθορισµένων οδηγιών Το κυριότερο πρόβληµα που αντιµετωπίζουν οι

Ο ηλεκτρονικός υπολογιστής µπορεί να επεξεργάζεται δεδοµένα βάσει ενός συνόλου προκαθορισµένων οδηγιών Το κυριότερο πρόβληµα που αντιµετωπίζουν οι ΑΣΦΑΛΕΙΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Βελντέ ιονυσία Γκικάκη Λυδία Κληρονόµου Αναστασία Ο ηλεκτρονικός υπολογιστής µπορεί να επεξεργάζεται δεδοµένα βάσει ενός συνόλου προκαθορισµένων οδηγιών Το κυριότερο πρόβληµα

Διαβάστε περισσότερα

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

Διαβάστε περισσότερα

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 12: Επίλυση Προβλημάτων Δικτύων Εισαγωγή

ΚΕΦΑΛΑΙΟ 12: Επίλυση Προβλημάτων Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 12: Επίλυση Προβλημάτων Δικτύων 12.1. Εισαγωγή Τα προβλήματα δικτύων είναι μια πολύ συνηθισμένη κατάσταση για τους περισσότερους χρήστες υπολογιστών. Στην ενότητα αυτή θα προσπαθήσουμε να καλύψουμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

Διαβάστε περισσότερα

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς

Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA. Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι αριθμοί και κρυπτογραφικός αλγόριθμος RSA Άριστος Χαραλάμπους, Δημήτρης Χαραλάμπους, Νικόλας Παρασκευάς Πρώτοι Αριθμοί Πρώτος αριθμός ονομάζεται ένας φυσικός αριθμός (δηλ. θετικός ακέραιος) μεγαλύτερος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Phishing, Ιοί και Πειρατεία Λογισμικού Ηλεκτρονικών υπολογιστών

Phishing, Ιοί και Πειρατεία Λογισμικού Ηλεκτρονικών υπολογιστών Phishing, Ιοί και Πειρατεία Λογισμικού Ηλεκτρονικών υπολογιστών ΠΑΡΟΥΣΙΑΖΟΥΝ: ΔΗΜΗΤΡΙΑ ΚΡΑΣΑ, ΜΑΡΙΑ ΚΟΥΦΟΠΑΥΛΟΥ, Β2 & ΚΥΡΙΑΚΗ ΚΑΡΑΤΖΙΑ Α1 2016-2017 Τι είναι το Phishing; Ως Phishing ονομάζουμε την προσπάθεια

Διαβάστε περισσότερα

ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Απόστολος Πλεξίδας Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας

ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ. Απόστολος Πλεξίδας Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας ΨΗΦΙΑΚΗ ΥΠΟΓΡΑΦΗ Προϊστάµενος της ιεύθυνσης ιαφάνειας & Ηλεκτρονικής ιακυβέρνησης της Περιφέρεια Κεντρικής Μακεδονίας 1 ΠΕΡΙΕΧΟΜΕΝΑ Hλεκτρονική υπογραφή, τι είναι, τρόπος λειτουργίας Χειρογραφη Ηλεκτρονική

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ»

ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ. Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ» ΤΙΤΛΟΣ ΕΡΕΥΝΗΤΙΚΗΣ ΕΚΘΕΣΗΣ ΚΩΔΙΚΕΣ Υπόθεμα: «ΚΡΥΠΤΟΓΡΑΦΙΑ» ΤΑ ΜΕΛΗ ΤΗΣ ΟΜΑΔΑΣ ΦΩΤΕΙΝΟΥ ΑΝΔΡΙΑΝΑ ΣΟΦΟΛΟΓΗ ΑΡΕΤΗ ΣΠΑΡΤΑΛΗΣ ΝΙΚΟΣ ΜΕΜΟΣ ΝΙΚΟΣ Επιβλέπουσα καθηγήτρια: Καλλιόπη Μαγδαληνού, ΠΕ19 1 ΛΙΓΑ ΛΟΓΙΑ

Διαβάστε περισσότερα

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

Κεφάλαιο 2. Κρυπτογραφικά εργαλεία Κεφάλαιο 2 Κρυπτογραφικά εργαλεία Συμμετρική κρυπτογράφηση Καθολικά αποδεκτή τεχνική που χρησιμοποιείται για τη διαφύλαξη της εμπιστευτικότητας δεδομένων τα οποία μεταδίδονται ή αποθηκεύονται Γνωστή και

Διαβάστε περισσότερα

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου

Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου Κρυπτογράφηση Αποκρυπτογράφηση Ερευνητική εργασία Β'1 1 ο Γενικό Λύκειο Ευόσμου 2013-2014 Project Ορισμοί Ιστορία Η αποκρυπτογράφηση στις μέρες μας Κρυπτογράφηση Αποκρυπτογράφηση Αποκρυπτογραφημένο-Κρυπτογραφημένο

Διαβάστε περισσότερα

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

7.11 Πρωτόκολλα Εφαρµογής. 7.11.2 Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.11 Πρωτόκολλα Εφαρµογής 104. Αναφέρετε ονοµαστικά τις πιο χαρακτηριστικές εφαρµογές που υποστηρίζει η τεχνολογία TCP/IP οι οποίες είναι διαθέσιµες στο ιαδίκτυο 1. Ηλεκτρονικό

Διαβάστε περισσότερα

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

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Συμμετρικά κρυπτοσυστήματα Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ 1

Διαβάστε περισσότερα

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

Ασφάλεια ικτύων (Computer Security) Ασφάλεια ικτύων (Computer Security) Τι Εννοούµε µε τον Όρο Ασφάλεια ικτύων; Ασφάλεια Μόνο ο αποστολέας και ο προοριζόµενος παραλήπτης µπορούν να διαβάσουν και να κατανοήσουν ένα µήνυµα. Ο αποστολέας το

Διαβάστε περισσότερα

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

ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής. Συμμετρική Κρυπτογραφία ΤΕΙ Κρήτης Τμήμα Μηχανικών Πληροφορικής Συμμετρική Κρυπτογραφία Εισαγωγή Στην συνηθισμένη κρυπτογραφία, ο αποστολέας και ο παραλήπτης ενός μηνύματος γνωρίζουν και χρησιμοποιούν το ίδιο μυστικό κλειδί.

Διαβάστε περισσότερα

Βασικές έννοιες Ασφάλειας α) ιαθεσιµότητα: άµεσα προσπελάσιµες υπηρεσίες ενός δικτύου υπολογιστών για τους εξουσιοδοτηµένους χρήστες β) Εµπιστευτικότη

Βασικές έννοιες Ασφάλειας α) ιαθεσιµότητα: άµεσα προσπελάσιµες υπηρεσίες ενός δικτύου υπολογιστών για τους εξουσιοδοτηµένους χρήστες β) Εµπιστευτικότη «Ασφάλεια στα ίκτυα Η/Υ» Επιµέλεια: Φιλοθέη Κολίτση ραστηριότητα στην Ενότητα 6 ΠΑΚΕ Κεντρικής Μακεδονίας 2011-2012 Βασικές έννοιες Ασφάλειας α) ιαθεσιµότητα: άµεσα προσπελάσιµες υπηρεσίες ενός δικτύου

Διαβάστε περισσότερα

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

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

ΗΜΕΡΟΛΟΓΙΟ 2014-2015 ΓΛΩΣΣΑΡΙ ΔΙΑΔΙΚΤΥΟΥ

ΗΜΕΡΟΛΟΓΙΟ 2014-2015 ΓΛΩΣΣΑΡΙ ΔΙΑΔΙΚΤΥΟΥ ΗΜΕΡΟΛΟΓΙΟ 2014-2015 ΓΛΩΣΣΑΡΙ ΔΙΑΔΙΚΤΥΟΥ Λαρισα Καμπέρη ΓΕΝΑΡΗΣ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Adware : Λογισμικό που εμφανίζει διαφημιστικό περιεχ

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ»

ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» ΚΡΥΠΤΟΓΡΑΦΙΑ Α. ΑΠΟ ΤΟ ΒΙΒΛΙΟ «Η ΦΥΣΗ ΚΑΙ Η ΔΥΝΑΜΗ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ» - Κρυπτογραφία είναι - Κρυπτανάλυση είναι - Με τον όρο κλειδί. - Κρυπτολογία = Κρυπτογραφία + Κρυπτανάλυση - Οι επιστήµες αυτές είχαν

Διαβάστε περισσότερα

Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι. 9 η Διάλεξη. Μάθημα: Τεχνολογίες Διαδικτύου

Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι. 9 η Διάλεξη. Μάθημα: Τεχνολογίες Διαδικτύου Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι 9 η Διάλεξη Μάθημα: Τεχνολογίες Διαδικτύου Περιεχόμενα 9 η διάλεξη Εισαγωγή στη ασφάλεια Εισαγωγή Από τι μπορεί να κινδυνεύει ένας υπολογιστής

Διαβάστε περισσότερα

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

Ασφάλεια Πληροφοριακών Συστημάτων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ασφάλεια Πληροφοριακών Συστημάτων Ενότητα 6: Κρυπτογραφία Ι Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα