security

Εισαγωγή στην Κρυπτογραφία και Ασφάλεια

Διδάσκων:

Τάσος Δημητρίου         E-mail:

                                [Start with a “t”.

                                Then use first 6 letters of                                                             dimitriou]@di.uoa.gr

 

TAs:

        Θα δούμε αν υπάρξουν…

 

---

Χρονοδιάγραμμα:

Διαλέξεις: 

Κάθε Δευτέρα, 11:00 - 14:00

 

 

 

 

 

 

 

---

Ανακοινώσεις:

*      [19 Σεπτεμβρίου] Βαθμολογία εξεταστικής Σεπτεμβρίου

 

*      [14 Ιουλίου] Νέοι βαθμοί μετά από στρογγυλοποίηση… Για τους υπόλοιπους ισχύει η προηγούμενη ανακοίνωση.

*      [10 Ιουλίου] Κουπόνια αξιολόγησης για το μάθημα μπορείτε να παραλαμβάνετε από τον κ. Κουνια, μεταξύ  10:30 – 15:00, Γραμματεία Θεωρητικής Πληροφορικής , Ισόγειο, Γρ. Ι11.

*      [10 Ιουλίου] Μόλις πληροφορήθηκα από τη Γραμματεία ότι θα πρέπει να γίνει ΣΤΡΟΓΓΥΛΟΠΟΙΗΣΗ των βαθμών προς τον πλησιέστερο ακέραιο καθώς δεν γίνονται δεκτοί αλλιώς. Έτσι κάποιος/α που έβγαζε Τελικό Βαθμό 9,36 και είχε πάρει 9,5 τώρα θα πέσει στο 9. Αντίστοιχα κάποιος/α με βαθμό 8,7 θα ανέβει στο 9, κοκ.

Η τελική λίστα των στρογγυλοποιημένων βαθμών θα ανακοινωθεί τη Δευτέρα 14 Ιουλίου (μπορείτε όμως με βάση την παρακάτω φόρμουλα να βρείτε και μόνοι σας τον νέο τελικό βαθμό σας)…

*      [7 Ιουλίου] Τελική Βαθμολογία και λύσεις διαγωνίσματος

*      [17 ΙΟΥΝΙΟΥ] Τρόπος βαθμολόγησης. Ας είναι ‘Α’ ο μέσος βαθμός από τις ασκήσεις, ‘Π’ ο βαθμός της προόδου και ‘Τ’ ο βαθμός του τελικού διαγωνίσματος. Ο τελικός βαθμός (ΤΒ) για το μάθημα θα δίνεται από τη σχέση:

          ΤΒ = 34% * A + max { 33% *Π+33% *Τ,

  20% *Π+46% *Τ,

  46% *Π+20% *Τ }

 

*      Ουσιαστικά δίνεται μεγαλύτερο βάρος σε εκείνο το διαγώνισμα (πρόοδος ή τελικό) στο οποίο γράψατε καλύτερα.

*      Ο τρόπος αυτός βαθμολόγησης ισχύει και για τις εξετάσεις του ΣΕΠΤΕΜΒΡΙΟΥ.

 

 

Παλιότερες ανακοινώσεις

 

Μια φιλική συμβουλή:

Οι ασκήσεις είναι σχεδιασμένες για να βγαίνουν σε 10 μέρες. Πιθανώς δεν ακολουθούν την πεπατημένη οδό γιατί απαιτούν από εσάς ενασχόληση και κάποιου είδους αυτοσχεδιασμό που δεν διδάσκετε εύκολα. Όμως μόνο έτσι πιστεύω θα μάθετε κάποια πράγματα σχετικά με κρυπτογραφία και ασφάλεια (αν βέβαια θέλετε).

Προγραμματίζετε λοιπόν το χρόνο σας και μην αφήνετε τις ασκήσεις για την τελευταία στιγμή γιατί τότε είναι βέβαιο ότι δε θα προλαβαίνετε.

Φιλικά, ΤΔ.

 

*      [6 IOYNIΟΥ] Βαθμοί και λύσεις 3ου σετ ασκήσεων. Δείτε παρακάτω…

*      [5 IOYNIΟΥ] Τέταρτο σετ ασκήσεων (για τους επίδοξους hackers). Δείτε παρακάτω…

*      [29 ΜΑΪΟΥ] Παράταση παράδοσης 3ου σετ ασκήσεων. Νέα ημερομηνία: Δευτέρα, 2 Ιουνίου 2008.

*      Παραδώστε τις ασκήσεις με e-mail  ή εκτυπωμένες κατά την ώρα του μαθήματος (διαλέξτε έναν από τους δύο τρόπους).

*      [22 ΜΑΪΟΥ] Ένα προγραμματιστικό λάθος που έγινε το Μάιο του 2006 μείωσε την τυχαιότητα των κλειδιών που παράγονται από την ευρέως χρησιμοποιούμενη βιβλιοθήκη OpenSSL με αποτέλεσμα την δημιουργία σοβαρών προβλημάτων στην ασφάλεια τουλάχιστον τεσσάρων open-source λειτουργικών συστημάτων, 25 προγραμμάτων εφαρμογών, και εκατομμυρίων υπολογιστικών συστημάτων. Διαβάστε το αντίστοιχο άρθρο παρακάτω…

*      [19 ΜΑΪΟΥ] Ανακοινώθηκε το τρίτο (και τελευταίο) σετ ασκήσεων. Δείτε παρακάτω…

*      [15 ΜΑΪΟΥ] Βαθμοί και λύσεις προόδου. Δείτε παρακάτω…

*       [9 ΜΑΪΟΥ] Στο μάθημα της Δευτέρας 12/5 θα συνεχίσουμε με protocol attacks. Θα αρχίσουμε στις 11:00 ακριβώς και αμέσως μετά θα λάβει χώρα η πρόοδος.

*      [5 ΜΑΪΟΥ] ΠΡΟΟΔΟΣ στις 12/5/2008. Διάρκεια: 1 ώρα και 30 λεπτά. Η εξεταστέα ύλη περιλαμβάνει τις 11 πρώτες διαλέξεις αν και θα υπάρξουν και protocol attacks. Η ώρα έναρξης θα ανακοινωθεί αργότερα.

*      ΠΡΟΠΤΥΧΙΑΚΟΙ: Θα μπορείτε να διαλέξετε 3 από 4 προβλήματα εκ των οποίων το ένα θεωρητικό (γενικές γνώσεις).

*      ΜΕΤΑΠΤΥΧΙΑΚΟΙ: Θα μπορείτε να “διαλέξετε” 4 από 4 προβλήματα :-) 

*      [30 Απριλίου]  Το μάθημα της Δευτέρας 5 Μαίου θα αρχίσει στις 11:00 ακριβώς και θα διαρκέσει μόνο για ΜΙΑ ΩΡΑ λόγω μετάβασης του διδάσκοντα στο εξωτερικό.

*      [30 Απριλίου]  Η ΠΡΟΟΔΟΣ του μαθήματος θα γίνει τη Δευτέρα, 12 Μαϊου, 2008. Προγραμματίστε το διάβασμά σας!

*      [30 Απριλίου]  Βαθμοί και λύσεις 2ου σετ μαζί με τα σχόλια σας για το μάθημα που στείλατε κρυπτογραφημένα με PGP. Δείτε παρακάτω…

*       [17 Απριλίου]  Βαθμοί 1ου Σετ. Δείτε παρακάτω…

*      [15 Απριλίου]  Παράταση παράδοσης 2ου σετ ασκήσεων. Δείτε παρακάτω…

*      [11 Απριλίου]  Λύσεις του 1ου Σετ ασκήσεων και μικρό τυπογραφικό λάθος στο πρόβλημα 4 του 2ου σετ. Δείτε παρακάτω…

*      [2 Απριλίου]  Παράταση παράδοσης 1ου σετ ασκήσεων. Νέα ημερομηνία: Δευτέρα, 7 Απριλίου. Παραδώστε τις εκτυπωμένες απαντήσεις την ώρα του μαθήματος.

*      [4 Μαρτίου] Διαβάστε προσεχτικά το lec00.pdf για τις λεπτομέρειες και τον τρόπο οργάνωσης του μαθήματος

 

 

---

Επιπλέον Υλικό:

Βιβλία

*      Μερικά ενδιαφέροντα βιβλία στον τομέα της κρυπτογραφίας και ασφάλειας είναι τα ακόλουθα.

*      Handbook of Applied Cryptography, by Alfred Menezes, Paul van Oorschot, Scott Vanstone. 1997. (Also known as the HAC book). Μπορείτε να το βρείτε online. Χρησιμοποιείστε το για αναφορές όχι τόσο για να μάθετε.

*      Applied Cryptography, by Bruce Schneier. John Wiley & Sons. Πολύ καλό βιβλίο για εισαγωγή στην εφαρμοσμένη κρυπτογραφία.

*      Cryptography: Theory and Practice, by Douglas R. Stinson, 2002. Πιο προχωρημένο βιβλίο.

*      Security Engineering, by Ross Anderson. John Wiley & Sons. 2001. Πολύ καλό βιβλίο για την ασφάλεια πραγματικών συστημάτων. Και αυτό μπορείτε να το βρείτε online.

*      Network Security: Private Communication in a Public World, by Charlie Kaufman, Radia Perlman, Mike Speciner, 2002. Ίσως το πλησιέστερο στην ύλη του μαθήματος…

 

 

Μερικά Άρθρα

*      Διαβάστε το πρώτο άρθρο πάνω σε Κρυπτογραφία Δημόσιου Κλειδιού… (2.1 MB)

        Diffie and Hellman: “New Directions in Cryptography”.

*      Ρίχτε μια ματιά στο πρώτο πρακτικό κρυπτοσύστημα, το RSA(221 KB)

          “A method for obtaining digital signatures and public key cryptosystems”

*      Διαβάστε ένα άρθρο πάνω στη χρήση του PGP(145 KB)

          “Why Johnny can’t encrypt”.

*      Προσέχετε όταν χρησιμοποιείτε cookies… (177 KB)

        Dos and Don’ts of Client Authentication in the Web 

*      Πρακτικές οδηγίες για το σχεδιασμό σωστών πρωτοκόλλων (1ΜΒ)

          “Prudent Engineering Practice for Cryptographic Protocols”.

*      Προγραμματιστικό λάθος δημιουργεί προβλήματα σε open-source λειτουργικά συστήματα και εφαρμογές!

          “ Alarming Open-Source Security Holes.

*      Διαβάστε ένα άρθρο πάνω σε buffer overflows

          “Smashing the stack for fun and profit”.

 

 

 

---

Ασκήσεις και εξετάσεις:

Γενικές Οδηγίες – Διαβάστε προσεχτικά

Μπορείτε να δουλεύετε σε ομάδες των πολύ δύο ατόμων για την επίλυση των προβλημάτων. Ωστόσο κάθε μέλος της ομάδας θα πρέπει να μπορεί να εξηγήσει τις λύσεις.

*      Αν λύσετε κάποιο πρόβλημα με τη χρήση εξωτερικής βοήθειας (π.χ. αναζήτηση στο Διαδίκτυο, μέσω ενός φίλου, κλπ.), αναφέρετε τις πηγές σας και γράψτε τις λύσεις μόνοι σας.

*      Μπορείτε να χρησιμοποιείτε οποιοδήποτε υλικό για να ολοκληρώσετε τις ασκήσεις, συμπεριλαμβανομένου υλικού από το Διαδίκτυο.

*      Ωστόσο πάντα θα πρέπει να αναφέρετε όλες τις πηγές σας!

 

Πρώτο σετ προβλημάτων

*      Ημερομηνία παράδοσης, Παρασκευή 4 Απριλίου, 2008. Δευτέρα, 7 Απριλίου, την ώρα του μαθήματος.

*      Το πρώτο σετ ασκήσεων είναι κρυπτογραφημένο με την εντολή “crypt” του Unix. Για να μάθετε περισσότερα για την εντολή και τον τρόπο αποκρυπτογράφησης, δώστε την εντολή “man crypt”. Το αρχικό κείμενο είναι σε PDF format, οπότε αφού αποκρυπτογραφήσετε το κείμενο προσθέστε στο τέλος την κατάληξη “.pdf”.

*      Μια μικρή βοήθεια για την αποκρυπτογράφηση αποτελεί η λέξη “ojofuffo” …

(Μην προσπαθείτε να σπάσετε το crypt! Απλά προσπαθήστε να μαντέψετε το κλειδί)

*      Λύσεις

*      Βαθμοί (Κάποιοι από σας πρέπει να επικοινωνήσετε μαζί μου…)

 

Δεύτερο σετ προβλημάτων

*      Ημερομηνία παράδοσης, Παρασκευή 18 Απριλίου, 2008.

*      Νέα Ημερομηνία παράδοσης

*      Προβλήματα 2, 3, 4 και 5:  Δευτέρα, 21 Απριλίου, 2008 (όπως συνήθως αργοπορημένες απαντήσεις που δεν ξεπερνούν τις 3 μέρες γίνονται δεκτές με 10% ποινή κάθε μέρα). 

*      Η ατομική άσκηση για το PGP να παραδοθεί μέχρι και Τετάρτη, 23 Απριλίου, 2008 (αργοπορημένες απαντήσεις για το PGP πρόβλημα δε θα γίνουν δεκτές).

 

*      Εντοπίστηκε ένα μικρό λάθος από τον Μ. Πουντουράκη στη συνθήκη ελέγχου από τον Bob στο πρόβλημα 4. Αντί της έκφρασης if t* not in [t*Δ, t*] or … το σωστό είναι if T ’ not in [t*Δ, t*] or … . Ευχαριστώ!

*      Λύσεις

*      Βαθμοί

*      Οι ιδέες σας για βελτίωση του μαθήματος

 

Πρόοδος

*      Λύσεις

*      Βαθμοί

 

Τρίτο σετ προβλημάτων

*      Ημερομηνία παράδοσης, Παρασκευή 30 Μαΐου, 2008. Δευτέρα, 2 Ιουνίου 2008. Παραδώστε τις ασκήσεις με e-mail  ή εκτυπωμένες κατά την ώρα του μαθήματος (διαλέξτε έναν από τους δύο τρόπους)…

*      Λύσεις

*      Βαθμοί

 

 

Τέταρτο σετ προβλημάτων

*      Ημερομηνία παράδοσης: 32 Ιουνίου, 2008 (Η προθεσμία θα τηρηθεί αυτή τη φορά!!!)

*      Κατεβάστε το αρχείο από εδώ.

*      Πρόγραμμα hello.c

 

 

        Καλή επιτυχία!

 

---

Σημειώσεις:

3 Μαρτίου, 2008 (Διάλεξη 0)

*      Περιγραφή μαθήματος.

*      Τρόπος βαθμολόγησης.

*      Ακαδημαϊκή τιμιότητα, κλπ.

Σημειώσεις (296 KB)

 

3 Μαρτίου, 2008 (Διάλεξη 1)

*      Ασφάλεια (Background, κλπ…)

*      Βασικές έννοιας κρυπτογραφίας (Ορισμοί, επιθέσεις, κλπ.)

*      Το πρώτο μας κρυπτογραφικό πρωτόκολλο.

Σημειώσεις (887 KB)

 

17 Μαρτίου, 2008 (Διάλεξη 2)

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

*      Επιθέσεις

*      Unconditional/Computational Security

*      Κλασσικοί αλγόριθμοι κρυπτογράφησης

*      Κρυπτανάλυση κλασσικών αλγορίθμων

*      One-time pad

*      Χρησιμότητα των κλασσικών αλγορίθμων.

 

    Σημειώσεις (315 KB)

 

17 Μαρτίου, 2008 (Διάλεξη 3)

*      Block ciphers

*      Μερικές σχεδιαστικές τεχνικές

*      Data Encryption Standard (DES)

*      Αντίσταση του DES σε επιθέσεις

*      Τρόποι λειτουργίας (modes of operation) των Block ciphers

*      Electronic Codebook (ECB)

*      Cipher Block Chaining (CBC)

*      Counter (CTR)

 

    Σημειώσεις (317 KB)

 

24 Μαρτίου, 2008 (Διαλέξεις 4 και 5)

*      Modes of operation των Block ciphers – Επανάληψη

*      Electronic Codebook (ECB)

*      Cipher Block Chaining (CBC)

*      Counter (CTR)

*      Μοντελοποίηση ασφάλειας κρυπτοσυστημάτων

*      The CPA attack game

*      Το ECB δεν είναι CPA-secure

*      The CCA[2] attack game

*      Τα CBC και CTR δεν είναι CCA2-secure

 

Ανακοινώθηκε το πρώτο σετ ασκήσεων. Δείτε πιο πάνω…

 

    Σημειώσεις (556 KB)

 

31 Μαρτίου, 2008 (Διαλέξεις 6 και 7)

*      Ακεραιτότητα δεδομένων

*      Συναρτήσεις κατακερματισμού (Hash functions)

*      Ιδιότητες, χρήσεις, επιθέσεις και το Παράδοξο των Γενεθλίων (Birthday paradox)

*      Message Authentication Codes (MACs)

*      Μοντελοποίηση ασφάλειας

*      Attack game ενάντια σε MACs

*      Παραδείγματα

*      Τρόποι δημιουργίας ασφαλών καναλιών επικοινωνίας

 

 

        Σημειώσεις (737 KB)

 

7 Απριλίου, 2008 (Διαλέξεις 8 και 9)

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

*      Public key cryptography

*      Χαρακτηριστικά

*      Ασφάλεια

*      Diffie-Hellman key exchange

*      Man-in-the-middle-attack

*      RSA και El Gamal

*      Ορισμός, παραγωγή κλειδιών

*      Κρυπτογράφηση και αποκρυπτογράφηση

*      Αποδεδειγμένα ασφαλή κρυπτοσυστήματα

*      Η έννοια του Plaintext awareness

*      OAEP (Optimal Asymmetric Encryption Padding)

 

 

Ανακοινώθηκε το δεύτερο σετ ασκήσεων. Δείτε πιο πάνω…

 

         Σημειώσεις (1 MB)

 

14 Απριλίου, 2008 (Διάλεξη 10)

*      Ψηφιακές Υπογραφές

*      Ορισμοί, χρήση, κλπ.

*      Τύποι επιθέσεων

*      Μοντελοποίηση ασφάλειας

*      Υπογράφοντας με το “textbookRSA

*      RSA-PSS

*      Άλλα σχήματα υπογραφών

 

        Σημειώσεις (416 KB)

 

14 Απριλίου, 2008 (Διάλεξη 11)

*      Υποδομές Δημόσιας Κρυπτογραφίας (Public Key Infrastructures)

*      Αρχές πιστοποίησης (Certification authorities)

*      Παραδείγματα PKI

*      X.509

*      PGP

*      Identity Based Cryptography

 

        Σημειώσεις (269 KB)

 

5 Μαΐου, 2008 (Διάλεξη 12)

Μέρος 1ο (Έγινε μόνο μια ώρα λόγω μετάβασης του διδάσκοντα στο εξωτερικό)

*      Πρωτόκολλα...

*      Τεχνικές και μηχανισμοί αυθεντικοποίησης

*      Σχεδιαστικά λάθη

*      Έννοιες αυθεντικοποίησης

*      Παραδείγματα και επιθέσεις

 

Υπενθύμιση: ΠΡΟΟΔΟΣ τη Δευτέρα 12 Μαΐου, 2008. Δείτε ανακοινώσεις...

 

        Σημειώσεις (930 KB)

 

12 Μαΐου, 2008 (Διάλεξη 13)

Μέρος 2ο (Έγινε μόνο μια ώρα. Τη δεύτερη ώρα δόθηκε η πρόοδος)

*      Περισσότερες επιθέσεις…

*      Οδηγίες αποφυγής επιθέσεων (διαβάστε το αντίστοιχο paper)…

 

        Σημειώσεις (575 KB)

 

19 Μαΐου, 2008  (Διάλεξη 14)

*      Provers and Verifiers

*      Interactive Proof Systems

*      Παραδείγματα

*      Αποδείξεις μηδενικής γνώσης (Zero Κnowledge proofs)

*      Χαρακτηριστικά ZK αποδείξεων

*      ZK αποδείξεις για τη κλάση NP

*      Χρήση των ZK μεθόδων για αυθεντικοποίηση και υπογραφές

 

        Σημειώσεις (554 KB)

 

19 Μαΐου, 2008  (Διάλεξη 15)

*      Ανακεφαλαίωση του TCP/IP μαζί με κάποιες επιπτώσεις στην ασφάλεια συστημάτων

*      Σχετικά με το TCP/IP

*      IP packet fields

*      IP Address spoofing επίθεση

*      LAND επίθεση

*      TCP fields

*      SYN/ACK probing attack

*      Port spoofing

*      Άλλες επιθέσεις

 

Ανακοινώθηκε το τρίτο και τελευταίο σετ ασκήσεων. Δείτε παραπάνω...

 

        Σημειώσεις (630 KB)

 

26 Μαΐου, 2008 (Διάλεξη 16)

*      Αληθινά πρωτόκολλα

*      SSL

*      IPSec

*      Kerberos

 

        Σημειώσεις (687 KB)

 

 

26 Μαΐου, 2008 (Διάλεξη 17)

*      Wired Equivalent Privacy (WEP) protocol

*      Στόχοι Ασφάλειας

*      Αυθεντικοποίηση

*      Εμπιστευτικότητα, Ακεραιότητα

*      Πςς δουλεύει το WEP?

*      Είναι ασφαλές??

*      Επιθέσεις στο WEP

*      Το WPA και το 802.11i

 

        Σημειώσεις (524 KB)

 

2 Ιουνίου, 2008 (Διαλέξεις 18, 19)

*      Λάθη λογισμικού

*      Ιστορία

*      Buffer overflows

*      Παραδείγματα επιθέσεων

*      Δημιουργώντας ένα interactive shell

*      Δημιουργία ασφαλούς κώδικα

 

        Σημειώσεις (643 KB)

 

9 Ιουνίου, 2008 (Διάλεξη 20)

*      e-Voting

*      Απαιτήσεις

*      Διάφορες Υλοποιήσεις

*      Ένα ρεαλιστικό σύστημα

*      Σημαντικά Κρυπτογραφικά εργαλεία

 

        Σημειώσεις (605 KB)

 

9 Ιουνίου, 2008 (Διάλεξη 21)

*      Digital cash

*      Απαιτήσεις

*      Μερικά βασικά πρωτόκολλα

*      Επιθέσεις

*      Τα πρωτόκολλα των Chaum και Brand

*      Micropayments

 

        Σημειώσεις (592 KB)

 

ΚΑΛΟ ΚΑΛΟΚΑΙΡΙ...

 

 

---

PGP key fingerprint: 15FB A0AF 291D F6B7 49D9  34F8 F477 9883 4476 2743

Τελευταία ενημέρωση: Παρασκευή, 19 Σεπτεμβρίου, 2008