Untitled - IKEE / AUTh

117

Transcript of Untitled - IKEE / AUTh

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 1 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ΠΕΡΙΕΧΟΜΕΝΑ

1 Ο ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ................................. 3

1.1 ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ ......................................................4

1.1.1 Το Λογισµικό Του ∆έκτη .............................................................5

1.1.2 Το Λογισµικό Των Καρτών..........................................................6

1.1.3 Ολοκλήρωση Του Λογισµικού ∆εκτών & Καρτών............................7

1.1.4 Τα Προγράµµατα Των ∆εκτών (Αναγνωστών) ...............................8

1.1.5 Προγράµµατα Καρτών Σε Γλώσσα Υψηλού Επιπέδου ......................9

1.1.6 Προγράµµατα Καρτών Σε Assembly...........................................10

1.1.7 Ασφάλεια Του Λογισµικού Των Έξυπνων Καρτών.........................11

1.2 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ ........................................12

1.3 ΣΥΣΤΗΜΑΤΑ ΑΡΧΕΙΩΝ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ.............................................13

1.4 ΤΡΟΠΟΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΣΤΙΣ ΈΞΥΠΝΕΣ ΚΑΡΤΕΣ ...........................................15

1.5 ΤΟ ΥΛΙΚΟ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ ..........................................................15

1.5.1 Το Σύστηµα Μνήµης Των Έξυπνων Καρτών ................................16

1.5.2 Η Κ.Μ.Ε. Των Έξυπνων Καρτών ................................................17

1.5.3 Είσοδος-Έξοδος Στην Έξυπνη Κάρτα..........................................18

1.6 ΣΧΕ∆ΙΑΣΗ ΣΥΣΤΗΜΑΤΟΣ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ .........................................18

1.6.1 Ασφάλεια Των ∆εδοµένων........................................................19

1.6.2 Ακεραιότητα Των ∆εδοµένων ....................................................20

1.7 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ .............................20

2 ΦΥΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ......................... 22

2.1 ΤΙ ΥΠΑΡΧΕΙ ΜΕΣΑ ΣΤΗΝ ΚΑΡΤΑ ..............................................................23

2.1.1 Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα....................................24

2.1.1.1 Μέγεθος .................................................................................... 25

2.1.1.2 Πλάτος...................................................................................... 25

2.1.1.3 Μνήµη ...................................................................................... 25

2.1.2 Συνεπεξεργαστές ....................................................................27

2.1.3 Χαρακτηριστικά Ασφάλειας.......................................................27

2.2 Η ∆ΙΑ∆ΙΚΑΣΙΑ ΚΑΤΑΣΚΕΥΗΣ ..................................................................28

2.3 ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΕΦΑΡΜΟΓΩΝ ΓΙΑ ΈΞΥΠΝΕΣ ΚΑΡΤΕΣ.............................32

2.3.1 Ανάπτυξη Μασκών (Masks) ......................................................32

2.3.2 Ανάπτυξη Κώδικα....................................................................33

2.3.3 Προσοµοιωτές Chip .................................................................33

2.3.4 Εξοµοιωτές Chip .....................................................................33

2.3.5 Αναλυτές Πρωτοκόλλων...........................................................34

2.3.6 Συσκευές Αλληλεπίδρασης (Αναγνώστες) ...................................34

3 ΒΑΣΙΚΑ ΠΡΟΤΥΠΑ ΓΙΑ ΤΙΣ ΈΞΥΠΝΕΣ ΚΑΡΤΕΣ................................... 35

3.1 ΠΡΟΤΥΠΑ ISO, IEC, ANSI ..................................................................35

3.2 ΠΡΟ∆ΙΑΓΡΑΦΕΣ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ - ISO 7816....................................36

3.2.1 ISO 7816-1............................................................................37

3.2.2 ISO 7816-2............................................................................38

3.2.3 ISO 7816-3............................................................................40

3.2.4 ATR (Λειτουργία Απάντησης Σε Αναστοιχειοθέτηση).....................44

3.2.5 Περαιτέρω Προδιαγραφές.........................................................46

4 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ ..................................... 49

4.1 ΠΡΩΤΟΚΟΛΛΑ ΣΕ ΕΠΙΠΕ∆Ο ∆ΙΑΣΥΝ∆ΕΣΗΣ (LINK-LEVEL) ................................50

4.1.1 Το Πρωτόκολλο Τ=0................................................................52

4.1.2 Το Πρωτόκολλο T=1................................................................56

4.2 ΠΡΩΤΟΚΟΛΛΑ ΣΕ ΕΠΙΠΕ∆Ο ΕΦΑΡΜΟΓΩΝ (APPLICATION-LEVEL) ........................59

4.2.1 Το ISO 7819-4 APDU...............................................................60

4.2.2 Το Σύστηµα Αρχείων API..........................................................63

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 2 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

4.2.2.1 Χαρακτηριστικά MF...................................................................... 65

4.2.2.2 Χαρακτηριστικά DF...................................................................... 65

4.2.2.3 Χαρακτηριστικά EF ...................................................................... 66

4.2.2.4 Η εντολή Select File..................................................................... 67

4.2.2.5 Η εντολή Read Binary.................................................................. 68

4.2.2.6 Η εντολή Write Binary.................................................................. 68

4.2.2.7 Η εντολή Update Binary ............................................................... 68

4.2.2.8 Η εντολή Erase Binary ................................................................. 69

4.2.2.9 Η εντολή Read Record ................................................................. 69

4.2.2.10 Η εντολή Write Record ............................................................. 69

4.2.2.11 Η εντολή Append Record .......................................................... 70

4.2.2.12 Η εντολή Update Record........................................................... 70

4.2.2.13 Η εντολή Get Data................................................................... 70

4.2.2.14 Η εντολή Put Data ................................................................... 71

4.2.3 Η Ασφάλεια API ......................................................................71

4.2.3.1 Η εντολή Verify .......................................................................... 71

4.2.3.2 Η εντολή Internal Authenticate...................................................... 72

4.2.3.3 Η εντολή External Authenticate ..................................................... 72

4.2.3.4 Η εντολή Get Challenge ............................................................... 73

4.2.3.5 Η εντολή Manage Channel ............................................................ 73

4.2.3.6 Η εντολή Envelope ...................................................................... 73

4.2.3.7 Η εντολή Get Response................................................................ 74

5 Η ΚΑΡΤΑ MULTIFLEX ΤΗΣ SCHLUMBERGER....................................... 75

5.1 ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ : RESET & ANSWER TO RESET ............................75

5.2 ΦΑΚΕΛΟΙ & ΑΡΧΕΙΑ............................................................................76

5.2.1 Επιλέγοντας Ένα Φάκελο .........................................................76

5.2.2 Επιλέγοντας Ένα Στοιχειώδες Αρχείο .........................................81

5.2.3 Κλειδιά & Αρχεία Κλειδιών........................................................85

5.2.4 ∆ηµιουργώντας Ένα Αρχείο PIN ................................................89

5.2.5 Αρχείο Εγγραφών & Λειτουργία Εύρεσης ....................................92

5.2.6 Κυκλικά Αρχεία & Ηλεκτρονικά Πορτοφόλια ................................93

5.3 ΟΙ ΕΝΤΟΛΕΣ ΣΕ ΜΙΑ ΚΑΡΤΑ MULTIFLEX .................................................95

5.3.1 Προστατευόµενες Εντολές ........................................................96

5.4 ΕΣΩΤΕΡΙΚΗ & ΕΞΩΤΕΡΙΚΗ ΠΙΣΤΟΠΟΙΗΣΗ ...................................................97

5.4.1 Πολιτικές Καταστάσεις Πιστοποίησης........................................ 100

5.5 ΠΑΡΑΚΟΛΟΥΘΩΝΤΑΣ ΤΗ ΧΡΗΣΗ ΤΗΣ EEPROM.......................................... 103

6 ΠΑΡΑΡΤΗΜΑ Α : ΕΥΡΕΤΗΡΙΟ ΌΡΩΝ ................................................ 105

7 ΠΑΡΑΡΤΗΜΑ Β : ΕΥΡΕΤΗΡΙΟ ΠΙΝΑΚΩΝ & ΕΙΚΟΝΩΝ ....................... 114

7.1 ΠΙΝΑΚΕΣ ...................................................................................... 114

7.2 ΕΙΚΟΝΕΣ ...................................................................................... 115

8 ΒΙΒΛΙΟΓΡΑΦΙΑ - ΠΗΓΕΣ................................................................. 116

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 3 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

1 Ο Προγραµµατισµός Των Έξυπνων Καρτών

Μια έξυπνη κάρτα είναι ένας φορητός, πλαστογραφηµένος ανθεκτικός µικροϋπολογιστής µε έναν προγραµµατισµένο χώρο αποθήκευσης πληροφοριών. Έχει την ακριβή µορφή και το µέγεθος µιας πιστωτικής κάρτας, µπορεί να αποθηκεύσει πληροφορίες από 16 KB και πάνω, και ακόµα πραγµατοποιεί και ένα αξιόλογο ποσοστό επεξεργασίας δεδοµένων. Η κεντρική µονάδα επεξεργασίας (Κ.Μ.Ε.) σε µια έξυπνη κάρτα είναι συνήθως ένας 8µπιτος µικροελεγκτής που έχει την υπολογιστική ισχύ ενός γνήσιου ηλεκτρονικού υπολογιστή (Η/Υ) της ΙΒΜ. Για να γίνει εφικτή η επικοινωνία ανάµεσα σε έναν υπολογιστή και σε µια έξυπνη κάρτα, πρέπει να τοποθετηθεί η κάρτα µέσα ή κοντά (ασύρµατα) σε έναν αναγνώστη έξυπνων καρτών, ο οποίος είναι συνδεδεµένος µε τον υπολογιστή.

Μετά από µια περίοδο περίπου 20 ετών εντυπωσιακής ανάπτυξης, οι έξυπνες κάρτες άρχισαν να εξελίσσονται. Τα µεγέθη µνήµης αυξήθηκαν και οι αρχιτεκτονικές επεξεργαστών άρχισαν να κινούνται προς 16µπιτες και 32µπιτες διαµορφώσεις. Οι έξυπνες κάρτες κοστίζουν µεταξύ €2 και €30, ανάλογα µε το µέγεθος της µνήµης στην κάρτα και το λογισµικό που συµπεριλαµβάνεται σ’ αυτήν. Το λογισµικό των έξυπνων καρτών συνήθως περιλαµβάνει ένα ενσωµατωµένο στοιχειώδες λειτουργικό σύστηµα µε δικό του σύστηµα αρχείων, επικοινωνίας, έγκρισης, κρυπτογράφησης, και ελέγχου πρόσβασης. Οι έξυπνες κάρτες είναι ιδιαίτερα χρήσιµα εργαλεία ηλεκτρονικών υπολογιστών που πρέπει να εξετάζουν την ασφάλεια δεδοµένων, την προσωπική µυστικότητα, και τις απαιτήσεις των χρηστών για µεταφορά δεδοµένων.

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

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

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 4 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

συµπεριφορές και τις σχέσεις των χρηστών. Η πληρωµή για µια εφηµερίδα µε ηλεκτρονικά χρήµατα (e-cash) χρησιµοποιώντας µια έξυπνη κάρτα πρέπει, παραδείγµατος χάριν, να είναι παρόµοια µε την πληρωµή για την εφηµερίδα µε µετρητά.

Το ποσό των δεδοµένων που υποβάλλεται σε επεξεργασία από ένα πρόγραµµα έξυπνων καρτών είναι συνήθως µικρό και οι διενεργηθέντες υπολογισµοί είναι τις περισσότερες φορές αρκετά χαµηλοί. Η αφαίρεση €50 από το ηλεκτρονικό πορτοφόλι µιας έξυπνης κάρτας, παραδείγµατος χάριν, δεν συνεπάγεται ούτε µε πολλούς αριθµούς ούτε µε πολλά µαθηµατικά. Εντούτοις, για να είναι σίγουρο ότι οι απαιτήσεις όλων των συµµετεχόντων σε αυτήν την συναλλαγή - ο κάτοχος της κάρτας, ο εκδότης καρτών, και ο έµπορος - ικανοποιούνται κατά τη διάρκεια και µετά της συναλλαγής, υπάρχει στο υπόβαθρο ένα σχετικά µοναδικό σύνολο απαιτήσεων στους σχεδιαστές συστηµάτων λογισµικού και στους προγραµµατιστές υπολογιστών. Ο έµπορος αναµένει να είναι ακριβώς €50 πλουσιότερος, ο κάτοχος κάρτας αναµένει να είναι ακριβώς €50 φτωχότερος, και ο εκδότης καρτών αναµένει πως δε θα έχουν διαρρεύσει πληροφορίες από την έξυπνη κάρτα.

∆ύο άλλου τύπου κάρτες περιέχουν κι αυτές ολοκληρωµένα κυκλώµατα και λόγω του ίδιου µεγέθους και των παρόµοιων χρήσεών τους, είναι µερικές φορές συγκεχυµένες µε τις έξυπνες κάρτες. Αυτές είναι οι κάρτες µνήµης και οι κάρτες Logic. Οι κάρτες µνήµης περιέχουν µόνο µνήµη και οι κάρτες Logic είναι κάρτες µνήµης µε κάποια προστιθέµενα στοιχεία για να παρέχουν µερικές λειτουργίες ασφάλειας δεδοµένων. Οι ευρωπαϊκές τηλεφωνικές κάρτες, οι κάρτες µεταφορών, και µερικές κάρτες ιατρικών αρχείων είναι παραδείγµατα των χρήσεων αυτών των καρτών. ∆εδοµένου ότι ούτε οι κάρτες µνήµης ούτε οι κάρτες Logic δεν περιέχουν έναν προγραµµατισµένο επεξεργαστή πάνω στον οποίο περιέχεται λογισµικό, δεν µας αφορούν. Εντούτοις, πολλές από τις συζητήσεις για τα συστήµατα που χρησιµοποιούν έξυπνες κάρτες ισχύουν εξίσου και για τις κάρτες µνήµης και Logic.

1.1 Το Λογισµικό Των Έξυπνων Καρτών

Υπάρχουν δύο θεµελιώδεις τύποι λογισµικών για τις έξυπνες κάρτες, µερικά παραδείγµατα των οποίων παρατίθενται στον Πίνακα 1 και στην Εικόνα:

• Το λογισµικό του δέκτη, το οποίο είναι λογισµικό που τρέχει σε έναν υπολογιστή που συνδέεται µε µια έξυπνη κάρτα. Το λογισµικό του δέκτη αναφέρεται επίσης ως λογισµικό-αναγνώστη.

• Το λογισµικό των καρτών, το οποίο είναι λογισµικό που τρέχει πάνω στην ίδια την έξυπνη κάρτα. Σε αντιστοιχία µε το

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 5 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

λογισµικό-αναγνώστη, το λογισµικό καρτών αναφέρεται επίσης ως λογισµικό-κάρτας.

Πίνακας 1 Τύποι λογισµικού έξυπνων καρτών µε εφαρµογές

Τύπος Λογισµικού Εφαρµογή Σύστηµα ∆έκτης Ψηφιακή Υπογραφή Ηλεκτρονικό Πορτοφόλι Κάρτα Παιχνίδι Λόττο Κωδικοποίηση Αλγορίθµου

Εικόνα 1 Τύποι λογισµικού έξυπνων καρτών

1.1.1 Το Λογισµικό Του ∆έκτη

Το περισσότερο λογισµικό που γράφεται για τις έξυπνες κάρτες είναι λογισµικό-αναγνώστη. Γράφεται για προσωπικούς και για κεντρικούς υπολογιστές, παρέχει πρόσβαση σε υπάρχουσες έξυπνες κάρτες και τις ενσωµατώνει στα µεγαλύτερα συστήµατα. Το λογισµικό-αναγνώστη περιλαµβάνει προγράµµατα τελικών-χρηστών, που υποστηρίζουν τη σύνδεση αναγνωστών µε υπολογιστές. Επιπλέον, το λογισµικό-αναγνώστη περιλαµβάνει το κατάλληλο λογισµικό που είναι απαραίτητο για τη πλήρη επεξεργασία των δεδοµένων των έξυπνων καρτών.

Το λογισµικό-αναγνώστη γράφεται συνήθως σε µια υψηλού επιπέδου γλώσσα προγραµµατισµού όπως C, C++, Java, BASIC, COBOL, PASCAL, ή FORTRAN και χρησιµοποιεί τις κατάλληλες βιβλιοθήκες και οδηγούς συσκευών για την πρόσβαση στους αναγνώστες των έξυπνων καρτών καθώς και στις έξυπνες κάρτες που εισέρχονται σε αυτούς. Στον αντίποδα, το λογισµικό των καρτών γράφεται συνήθως σε µια ασφαλή γλώσσα υπολογισµού όπως η Java,

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 6 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

σε γλώσσες επιπέδου µηχανής όπως η Forth, ή σε συµβολική γλώσσα (Assembly).

1.1.2 Το Λογισµικό Των Καρτών

Το λογισµικό καρτών είναι το λογισµικό που τρέχει πάνω στην ίδια την έξυπνη κάρτα. Είναι συνήθως ταξινοµηµένο σε λειτουργικό σύστηµα, σε εφαρµογές, και σε προγράµµατα, όπως συµβαίνει και µε το λογισµικό-αναγνώστη. Για πολλές εφαρµογές, αρκούν οι έξυπνες κάρτες µε γενικό λογισµικό. Ειδικό λογισµικό για την κάρτα δεν απαιτείται. Όταν όµως είναι απαραίτητο από κάποια εφαρµογή, γράφεται συνήθως είτε σε Assembly πάνω στον µικροεπεξεργαστή που βρίσκεται ενσωµατωµένος στην έξυπνη κάρτα είτε σε µια υψηλότερου επιπέδου γλώσσα που µπορεί να µεταφραστεί άµεσα στην κάρτα ή να µεταγλωττιστεί πρώτα σε Assembly και να φορτωθεί στη συνέχεια επάνω στην κάρτα.

Είναι χρήσιµο να ταξινοµηθεί περαιτέρω το λογισµικό έξυπνων καρτών σε λογισµικό εφαρµογών και σε λογισµικό συστήµατος. Το λογισµικό εφαρµογών χρησιµοποιεί τις ικανότητες αποθήκευσης υπολογισµών και πληροφοριών µιας έξυπνης κάρτας αλλά δεν έχει σχέση µε την ακεραιότητα και την ασφάλεια των δεδοµένων πού βρίσκονται σε αυτήν. Το λογισµικό συστήµατος, αφ' ετέρου, και χρησιµοποιεί και µπορεί να συµβάλει και να ενισχύσει τις ιδιότητες της ακεραιότητας και της ασφάλειας των δεδοµένων της έξυπνης κάρτας.

Το λογισµικό εφαρµογών των δεκτών αντικαθιστά την έξυπνη κάρτα για µια εναλλακτική εφαρµογή της ίδιας λειτουργικότητας (π.χ., όταν διατηρείται σε µια έξυπνη κάρτα ένα κλειδί κρυπτογράφησης ή ένα ιατρικό αρχείο παρά στο σκληρό δίσκο ενός Η/Υ ή σε µια βάση δεδοµένων σε έναν server). Το λογισµικό συστήµατος των δεκτών εκµεταλλεύεται τις µοναδικές και εγγενείς ικανότητες υπολογισµού και αποθήκευσης δεδοµένων της έξυπνης κάρτας µε την αποστολή δεδοµένων και εντολών σε αυτήν και µε το να παίρνει πληροφορίες και αποτελέσµατα από αυτήν.

Το λογισµικό εφαρµογών των καρτών χρησιµοποιείται συχνά για να προσαρµόσει µια έξυπνη κάρτα σε µια συγκεκριµένη εφαρµογή (βλ. Πίνακα 1) και µεταφέρει κάποια λειτουργία από το λογισµικό εφαρµογών των δεκτών πάνω στην ίδια την κάρτα. Αυτό µπορεί να γίνει για χάρη της αποδοτικότητας προκειµένου να επιταχυνθεί η αλληλεπίδραση µεταξύ του αναγνώστη και της κάρτας ή για χάρη της ασφάλειας προκειµένου να προστατευθεί ένα µέρος του συστήµατος. Το λογισµικό συστήµατος των καρτών γράφεται σε µια χαµηλού επιπέδου γλώσσα µηχανής για ένα συγκεκριµένο τσιπ έξυπνων καρτών και χρησιµοποιείται για να επεκτείνει ή να αντικαταστήσει τις βασικές λειτουργίες της έξυπνης κάρτας.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 7 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

1.1.3 Ολοκλήρωση Του Λογισµικού ∆εκτών & Καρτών

Και τα δύο είδη λογισµικού που έχουµε αναφέρει µέχρι τώρα είναι τελείως διαφορετικά ως προς τον προσανατολισµό και την προοπτική τους. Το λογισµικό καρτών εστιάζει περισσότερο στο περιεχόµενο µιας συγκεκριµένης κάρτας. Παρέχει υπολογιστικές υπηρεσίες για εφαρµογές που έχουν πρόσβαση στα περιεχόµενα του, και προστατεύει τα περιεχόµενα του από πολλές εφαρµογές που προσπαθούν λανθασµένα ή παράνοµα να έχουν πρόσβαση σε αυτά. Το λογισµικό-αναγνώστη, από την άλλη, µπορεί να χρησιµοποιηθεί σε πολλές διαφορετικές κάρτες. Το λογισµικό-αναγνώστη είναι συνήθως ενηµερωµένο µε πολλούς κατόχους κάρτας και ενδεχοµένως µε πολλούς εκδότες καρτών καθώς επίσης και µε πολλά διαφορετικά είδη καρτών.

Το λογισµικό καρτών εφαρµόζει τις ιδιότητες και τις τακτικές της ασφάλειας των δεδοµένων και των διαδικασιών µιας συγκεκριµένης έξυπνης κάρτας. Για παράδειγµα, ένα πρόγραµµα που τρέχει σε µια κάρτα µπορεί να µην παρέχει έναν αριθµό λογαριασµού που είναι αποθηκευµένος στην κάρτα εκτός αν δοθεί ένας σωστός προσωπικός αριθµός αναγνώρισης (PIN). Ή ένα πρόγραµµα που τρέχει σε µια κάρτα µπορεί να υπολογίσει µια ψηφιακή υπογραφή χρησιµοποιώντας ένα ιδιωτικό κλειδί που είναι αποθηκευµένο στην έξυπνη κάρτα, αλλά υπό καµία συνθήκη δε θα αποκαλύψει το ίδιο το ιδιωτικό κλειδί. Το λογισµικό που τρέχει σε µια έξυπνη κάρτα παρέχει την ασφαλή, εξουσιοδοτηµένη πρόσβαση στα δεδοµένα που αποθηκεύονται στην έξυπνη κάρτα. Γνωρίζει µόνο το περιεχόµενα µιας καθορισµένης έξυπνης κάρτας και τις οντότητες, όπως τους ανθρώπους, τους υπολογιστές, τα τερµατικά, τις κονσόλες παιχνιδιών κ.τ.λ., που προσπαθούν να έχουν πρόσβαση σε αυτά.

Το λογισµικό-αναγνώστη συνδέει τις έξυπνες κάρτες και τους χρήστες που τις κατέχουν µε τα µεγαλύτερα συστήµατα. Για παράδειγµα, το λογισµικό που τρέχει σε ένα µηχάνηµα ATM χρησιµοποιεί τις έξυπνες κάρτες που εισέρχονται από τους πελάτες µιας τράπεζας για να τους προσδιορίσουν και για να τους συνδέσουν µε τους σωστούς τραπεζικούς λογαριασµούς τους. Ή το λογισµικό που τρέχει σε ένα αυτόµατο µηχάνηµα ενός βίντεο club ελέγχει ότι η κάρτα που εισέρχεται στον αναγνώστη είναι µια έγκυρη κάρτα µετρητών και αφαιρεί το ποσό που πρέπει από την κάρτα πριν δώσει την κασέτα ή το DVD στον πελάτη. Το λογισµικό-αναγνώστη αναγνωρίζει πολλά είδη έξυπνων καρτών και προσαρµόζει τη λειτουργία του µε βάση την συγκεκριµένη έξυπνη κάρτα που παρουσιάζεται.

Σε αντίθεση µε τα περισσότερα λογισµικά υπολογιστών, που στηρίζόνται σε υπηρεσίες από το περιβάλλον µέσα στο οποίο αναπτύσσονται, το λογισµικό των έξυπνων καρτών έχει ως κεντρικό

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 8 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

άξονα την υπόθεση ότι το περιβάλλον στο οποίο βρίσκεται είναι εχθρικό και δεν πρόκειται να το εµπιστευθεί. Μέχρι να παρουσιαστούν πειστικά στοιχεία οι κάρτες δεν εµπιστεύονται τους δεκτές, όπως και το αντίστροφο. Ένα πρόγραµµα έξυπνων καρτών εµπιστεύεται µόνο τον εαυτό του. Όλα τα υπόλοιπα που βρίσκονται έξω από αυτό πρέπει να αποδειχθούν αξιόπιστα προτού να αλληλεπιδράσει το πρόγραµµα µαζί τους.

1.1.4 Τα Προγράµµατα Των ∆εκτών (Αναγνωστών)

Όπως προαναφέρθηκε, το περισσότερο λογισµικό έξυπνων καρτών είναι λογισµικό-αναγνώστη και γράφεται είτε για τις υπάρχουσες έξυπνες κάρτες, είτε για τις έξυπνες κάρτες που δηµιουργούνται καθηµερινά από σηµαντικούς εκδότες όπως τράπεζες, επιχειρήσεις τηλεπικοινωνιών, και εθνικές κυβερνήσεις. Το λειτουργικό σύστηµα σε αυτές τις ευρέως διανεµηµένες έξυπνες κάρτες εφαρµόζει ένα σύνολο 20 ή 30 εντολών, στις οποίες συνήθως αποκρίνεται η έξυπνη κάρτα. Το λογισµικό-αναγνώστη στέλνει τις εντολές στο λειτουργικό σύστηµα των καρτών, ο επεξεργαστής που είναι τοποθετηµένος πάνω στην κάρτα τις εκτελεί και επιστρέφει τα αποτελέσµατα. Μερικά παραδείγµατα των εντολών είναι "Μείωσε το χρηµατικό ποσό στο πορτοφόλι 1 κατά €1.50", "Επικυρώστε το χρήστη µε PIN 1234" και "∆ιάβασε και επέστρεψε την δεύτερη εγγραφή από το αρχείο 5".

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

Ένα πρόγραµµα αναγνώστη πρέπει να ολοκληρώσει δύο καθήκοντα προτού αρχίσει να αλληλεπιδρά µε µια έξυπνη κάρτα. Κατ' αρχάς, πρέπει να είναι σίγουρο για την αυθεντικότητα της έξυπνης κάρτας που εξετάζει. ∆εύτερον, πρέπει να αποδείξει και αυτό µε τη σειρά του την κάρτα ότι είναι αυθεντικό. Καµία λειτουργία δεν µπορεί να ξεκινήσει προτού καθιερωθεί αυτή η αµοιβαία εµπιστοσύνη. Στην πραγµατικότητα το να εκτελέσει κάποια λειτουργία η κάρτα, όπως η δηµιουργία µιας ψηφιακής υπογραφής, καταλαµβάνει πολύ µικρό µέρος της συνολικής αλληλεπίδρασης µεταξύ ενός δέκτη και µιας έξυπνης κάρτας.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 9 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

1.1.5 Προγράµµατα Καρτών Σε Γλώσσα Υψηλού Επιπέδου

Στα τέλη του 1996, η κατασκευάστρια εταιρεία έξυπνων καρτών Schlumberger εισήγαγε την πρώτη κάρτα που µπορούσε να δεχτεί και να τρέξει προγράµµατα γραµµένα σε µια γλώσσα προγραµµατισµού υψηλού επιπέδου, την Java. Μέχρι την εµφάνιση της κάρτας Java, ο µόνος τρόπος για να τοποθετηθεί λογισµικό επάνω σε µια έξυπνη κάρτα ήταν να γραφτεί και να τοποθετηθεί από τον κατασκευαστή της. Αυτό ήταν µια µακροχρόνια, κουραστική, και εκπληκτικά επιρρεπής σε λάθη διαδικασία. Ήταν επίσης µια πολύ ακριβή διαδικασία, γεγονός που επέτρεπε µόνο σε µεγάλους οργανισµούς να κατασκευάζουν έξυπνες κάρτες. Μερικοί κατασκευαστές χρησιµοποιούσαν γλώσσες υψηλού επιπέδου όπως τη Forth και τη C για να δηµιουργήσουν το λογισµικό των καρτών, αλλά η χρησιµοποίηση αυτών των εργαλείων ήταν αδύνατη τόσο από τον ιδιοκτήτη-φορέα της κάρτας όσο βέβαια και από τελικό κάτοχο της.

Ένα από τα πλεονεκτήµατα ενός προγράµµατος Java είναι ότι εφαρµόζει ένα εξειδικευµένο σύνολο εντολών προς χρήση από ένα πρόγραµµα-δέκτη. Ένα πρόγραµµα Java λαµβάνει τις εντολές από το πρόγραµµα-δέκτη, τις εκτελεί στην κάρτα, και επιστρέφει τα αποτελέσµατα ακριβώς όπως το λειτουργικό σύστηµα σε µια ετοιµοπαράδοτη έξυπνη κάρτα. Χρησιµοποιώντας αυτήν την τεχνική, µια κάρτα Java µπορεί είτε να προσοµοιώσει µια υπάρχουσα κάρτα µη-Java, να επεκτείνει µια υπάρχουσα κάρτα µε νέες εντολές, είτε να γίνει µια πλήρως νέα κάρτα για χρήση από κάποιο λογισµικό-αναγνώστη.

Θεωρητικά, ένα πρόγραµµα γραµµένο σε Java θα µπορούσε να εφαρµόσει οποιαδήποτε καθορισµένη εντολή. Εντούτοις, και λόγω των περιορισµών µνήµης και λόγω του χρόνου προσπέλασης, η λειτουργία ενός προγράµµατος Java περιορίζεται στις λειτουργίες που διατίθενται από το λειτουργικό σύστηµα της κάρτας. Για παράδειγµα, κάποιος θα προτιµούσε να µη γίνεται κρυπτογράφηση ασφαλών κλειδιών µε χρήση Java (λόγω της υπολογιστικής φόρτωσης στην κάρτα) και αντίστοιχα θα καλούσε την κρυπτογραφική λειτουργία στο εγγενές λειτουργικό σύστηµα της κάρτας ή ίσως σε έναν κρυµµένο συνεπεξεργαστή µέσα στο µικροϋπολογιστή της κάρτας.

Με την βοήθεια των προγραµµάτων γραµµένων σε Java που αποθηκεύονται και εφαρµόζονται σε µια κάρτα έγινε εφικτό να ξεπεραστεί η σχέση master-slave που υπήρχε µεταξύ των αναγνωστών και των καρτών και έτσι έχουν επιτρέψει τη δηµιουργία νέων κατηγόριων έξυπνων καρτών. Αν και το βασικό κανάλι επικοινωνίας είναι ακόµα ένα ηµιαµφίδροµο κανάλι (δηλαδή ένα κανάλι µέσα στο οποίο το κάθε τελικό σηµείο µπορεί να στείλει πληροφορίες στο άλλο, αλλά µόνο µε µια κατεύθυνση τη φορά), ένας προγραµµατιστής έξυπνων καρτών µπορεί τώρα να ρυθµίσει την

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 10 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

κάρτα να ελέγχει και να στέλνει εντολές προς τον δέκτη αντί για το αντίστροφο.

1.1.6 Προγράµµατα Καρτών Σε Assembly

Τα προγράµµατα αυτά αν και απαιτούνται λιγότερο πλέον κατά τον προγραµµατισµό των έξυπνων καρτών, υπάρχουν περιπτώσεις στις οποίες είναι απαραίτητα. Ένας σχεδιαστής συστήµατος µπορεί να θελήσει να επεκτείνει ένα υπάρχον λειτουργικό σύστηµα πάνω σε κάρτα ή να δηµιουργήσει µια νέα και µοναδική έξυπνη κάρτα. Για παράδειγµα, µπορεί να επιθυµήσει να προσθέσει έναν νέο αλγόριθµο κρυπτογράφησης ή έναν νέο τρόπο επικοινωνίας σε µια έξυπνη κάρτα.

Για να φτιάξει κάποιος µια δική του έξυπνη κάρτα, θα πρέπει να συνεργαστεί µε έναν κατασκευαστή έξυπνων καρτών, όπως η Schlumberger ή η Gemplus, και ενδεχοµένως έναν κατασκευαστή chip, όπως η Motorola, η Siemens, ή η Philips. Μπορεί να είναι δυνατό να τροποποιήσει και να επεκτείνει τα ήδη υπάρχοντα λειτουργικά συστήµατα και τις υπάρχουσες βιβλιοθήκες που φτιάχτηκαν από αυτούς τους κατασκευαστές για να ενσωµατώσει δικά του χαρακτηριστικά, αποφεύγοντας έτσι τη δηµιουργία ενός νέου λειτουργικού συστήµατος. Και η Schlumberger και η Gemplus παράγουν «έτοιµες προς χρήση» κάρτες που µπορούν να επεκταθούν µετά από την κατασκευή τους. Μερικές λειτουργίες στις έξυπνες κάρτες, όπως οι επικοινωνίες και οι υπηρεσίες αρχείων, είναι κοινές για σχεδόν όλες τις έξυπνες κάρτες. Έτσι αν κάποιος επιθυµεί να φτιάξει µια δική του κάρτα δεν χρειάζεται να ασχοληθεί µε αυτές τις παραµέτρους. Αποτέλεσµα όλων των παραπάνω είναι να υπάρχει πλέον ένας µικρός αριθµός ανεξάρτητα αναπτυγµένων λειτουργικών συστηµάτων έξυπνων καρτών, ανεξάρτητα από τα εµπορικά που κυκλοφορούν.

Η δηµιουργία µιας προσαρµοζόµενης έξυπνης κάρτας απαιτεί πολύ χρόνο και κυρίως πολλά χρήµατα. Ο Πίνακας 2 απαριθµεί µερικές υποθετικές περιπτώσεις. Πρέπει πιθανώς να προϋπολογίσετε τουλάχιστον δύο έτη και τουλάχιστον €1.000.000. Επιπλέον, είναι πολύ πιθανό η κάρτα που θα προκύψει να µην συνεργάζεται µε τα περισσότερα υπάρχοντα λογισµικά αναγνωστών, έτσι µπορεί να υπάρξουν πρόσθετες δαπάνες χρόνου και χρηµάτων από την πλευρά της σχεδίασης του συστήµατος των αναγνωστών. Εκτός από τους µεγάλους οργανισµούς, ο προγραµµατισµός των έξυπνων καρτών σε Assembly πρέπει να εξετάζεται µόνο για κλειστά και συγκεκριµένου σκοπού συστήµατα, όπου η συµβατότητα δεν παίζει και µεγάλο ρόλο.

Κάθε κατασκευαστής τσιπ έξυπνων καρτών έχει τις δικές του συναρτήσεις για την κατασκευή αυτών των τσιπ, τα οποία περιέχουν ένα προσαρµοζόµενο πρόγραµµα σε Assembly και ένα

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 11 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

προσαρµοζόµενο λειτουργικό σύστηµα. Αυτές οι συναρτήσεις θα µελετηθούν λεπτοµερέστερα παρακάτω στο κεφάλαιο 3.

Πίνακας 2 Σύγκριση Εργασιών Προγραµµατισµού Έξυπνων Καρτών

Τύπος Λογισµικού

Χρόνος Ανάπτυξης Εφαρµογής

Μέγεθος Προγράµµατος

Τύπος Κάρτας Επίπεδο ∆υσκολίας

Κόστος

∆έκτη 6 Μήνες 10 KLOC Ετοιµοπαράδοτη Μέτριο Χαµηλό

Κάρτα Εφαρµογών

1 Χρόνος 1 KLOC Κάρτα Java Μέτριο Μέτριο

Κάρτα Συστήµατος

2 Χρόνια 4 KLOC Προσαρµοζόµενη Υψηλό Υψηλό

1.1.7 Ασφάλεια Του Λογισµικού Των Έξυπνων Καρτών

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

Προτού µπορέσει να παρέχει µια έξυπνη κάρτα πρόσβαση στους πόρους της, πρέπει να καθορίσει µε ποιον έχει να συνεργαστεί. Οµοίως, προτού να γίνει και αυτή αποδεκτή από άλλες οντότητες, πρέπει να είναι σε θέση να αποδείξει την αυθεντικότητα της. Εποµένως, ένα από πρώτα καθήκοντα µιας έξυπνης κάρτας όταν ενεργοποιείται είναι να επικυρώσει τις οντότητες έξω από αυτή, δηλαδή το πρόσωπο που την έβαλε στο τερµατικό και το τερµατικό µε στο οποίο έχει εισαχθεί, και στη συνεχεία να επικυρωθεί η ίδια από µερικές από αυτές τις οντότητες.

Μια διαδικασία επικύρωσης µπορεί να είναι τόσο απλή όπως η εισαγωγή ενός τετραψήφιου PIN, ή µπορεί να είναι τόσο περίπλοκη όπως η συνεχής κωδικοποίηση µηνυµάτων µε κάποια συγκεκριµένα κλειδιά και αλγόριθµους στη διάρκεια µιας συναλλαγής. Εάν σε οποιοδήποτε σηµείο µιας διαδικασίας επικύρωσης οι οντότητες αποδειχτούν ότι δεν είναι αυτές που υποστηρίζουν, όλη η περαιτέρω επικοινωνία µε την οντότητα τερµατίζεται. Μάλιστα υπάρχει ένα αρχείο αυτών των αποτυχηµένων προσπαθειών στην έξυπνη κάρτα και µετά από ορισµένες αποτυχίες, η κάρτα µπορεί να µπλοκαριστεί ή να καταστραφεί είτε η ίδια είτε το περιεχόµενό της.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 12 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

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

Οι προγραµµατιστές έξυπνων καρτών συχνά δεν είναι απαραίτητο να σχεδιάσουν νέους αλγορίθµους επικύρωσης ή κρυπτογράφησης. ∆ηλαδή χρησιµοποιούν υπηρεσίες που είναι ήδη εγκατεστηµένες µέσα στην έξυπνη κάρτα. Αυτές οι υπηρεσίες είναι δοκιµασµένες και παρέχουν ένα ορισµένο επίπεδο ασφάλειας. Ο σχεδιασµός νέων αλγορίθµων δεν είναι εύκολος, όπως και η εκτίµηση τους. Ο Πίνακας 3 απαριθµεί διάφορους αλγορίθµους κρυπτογράφησης που βρίσκουν χρήση σε διάφορες έξυπνες κάρτες.

Πίνακας 3 Παραδείγµατα Αλγόριθµων Κρυπτογράφησης Στις Έξυπνες Κάρτες

Αλγόριθµος Παράδειγµα Χρήσης DES Κανάλια Επικοινωνιών A3 & A8 Κινητά Τηλέφωνα GSM Ελλειπτικής Καµπύλης Ψηφιακή Υπογραφή TSA7 Ιατρικά Αρχεία RSA Ψηφιακή Υπογραφή

1.2 Λειτουργικά Συστήµατα Των Έξυπνων Καρτών

Tα λειτουργικά συστήµατα των έξυπνων καρτών απέχουν αρκετά από την εικόνα των λειτουργικών συστηµάτων πού έχουν αυτοί που ασχολούνται µε τους Η/Υ στις µέρες µας. ∆εν έχουν δηλαδή την λειτουργικότητα των Windows ή του Unix ή ακόµα και του DOS. Θα λέγαµε ότι οι εντολές στις οποίες αποκρίνεται η έξυπνη κάρτα µοιάζουν περισσότερο στις προ-DOS συλλογές.

Η νέα τάση στα λειτουργικά συστήµατα έξυπνων καρτών είναι το λειτουργικό σύστηµα JavaCard. Το Λ.Σ. JavaCard αναπτύχθηκε από την Sun Microsystems. Το Λ.Σ. JavaCard είναι δηµοφιλές επειδή δίνει την ανεξαρτησία στους προγραµµατιστές πέρα από την αρχιτεκτονική. Και οι βασισµένες εφαρµογές στο Λ.Σ. JavaCard θα µπορούν να χρησιµοποιηθούν σε οποιοδήποτε προµηθευτή έξυπνων καρτών που υποστηρίζουν το Λ.Σ. JavaCard.

Οι περισσότερες από τις έξυπνες κάρτες χρησιµοποιούν σήµερα το Λ.Σ. τους µε σκοπό την επικοινωνία και διάφορες λειτουργίες. Αλλά για να παρέχουν αληθινή υποστήριξη για εφαρµογές τα λειτουργικά συστήµατα έξυπνων καρτών υπερβαίνουν τις απλές λειτουργίες που παρέχονται από το πρότυπο ISO7816. Ένα άλλο πλεονέκτηµα του JavaCard είναι, ότι επιτρέπει την post-issuance

φόρτωση µιας εφαρµογής. Αυτό επιτρέπει την αναβάθµιση

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 13 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

εφαρµογών στην έξυπνη κάρτα µετά την παράδοση της στον τελικό χρήστη.

Ένα άλλο λειτουργικό σύστηµα για τις έξυπνες κάρτες είναι το MULTOS (Λειτουργικό Σύστηµα Πολλαπλών-Εφαρµογών). Όπως φαίνεται το MULTOS υποστηρίζει επίσης πολλαπλές εφαρµογές. Αλλά τοMULTOS σχεδιάστηκε συγκεκριµένα για ανάγκες υψηλής ασφάλειας.

Ακόµα και η Microsoft είναι µπήκε στον τοµέα των έξυπνων καρτών µε το πρόγραµµα «Smart Cards Για Windows».

Όπως προαναφέρθηκε, η βασική σχέση µεταξύ ενός τερµατικού έξυπνων καρτών, όπως ένας προσωπικός υπολογιστής και στην ίδια την έξυπνη κάρτα είναι µια σχέση master/slave. Το τερµατικό στέλνει µια εντολή στην έξυπνη κάρτα, η έξυπνη κάρτα εκτελεί την εντολή, επιστρέφει το αποτέλεσµα -εάν υπάρχει- στο τερµατικό, και περιµένει µια άλλη εντολή.

Πέρα από την περιγραφή των φυσικών χαρακτηριστικών, των λεπτοµερών συντάξεων εντολών και των αποτελεσµάτων που επιστρέφονται, µερικά πρότυπα έξυπνων καρτών όπως το ISO 7816 και το CEN 726 περιγράφουν επιπλέον ένα ευρύ φάσµα εντολών που οι προσαρµοζόµενες έξυπνες κάρτες µπορούν να εφαρµόσουν. Οι περισσότεροι κατασκευαστές έξυπνων καρτών δηµιουργούν «έτοιµες προς χρήση» έξυπνες κάρτες µε λειτουργικά συστήµατα που εφαρµόζουν µερικές ή όλες από αυτές τις τυποποιηµένες εντολές, µαζί µε ορισµένες επεκτάσεις και προσθήκες. Ο Πίνακας 4 απαριθµεί µερικά παραδείγµατα.

Πίνακας 4 Παραδείγµατα λειτουργικών συστηµάτων έξυπνων καρτών

Τύπος Κάρτας Κατασκευαστής Μέγιστη Μνήµη Επεκτάσιµη MULTIFLEX Schlumberger 8 KB Ναι MPCOS64K Gemplus 8 KB Ναι USCO48 US3 8 KB Όχι OC100 Bull CP8 8 KB Όχι I006.1 Orga 4 KB Όχι

1.3 Συστήµατα Αρχείων Των Έξυπνων Καρτών

Τα περισσότερα λειτουργικά συστήµατα των έξυπνων καρτών υποστηρίζουν ένα µέτριο σύστηµα αρχείων βασισµένο στο πρότυπο ISO 7816. Επειδή µια έξυπνη κάρτα δεν έχει καµία περιφερειακή µονάδα, ένα αρχείο έξυπνων καρτών είναι στην ουσία ακριβώς ένα block στη µνήµη τους. Ένα σύστηµα αρχείων έξυπνων καρτών είναι βασισµένο και ιεραρχηµένο σε φακέλους στο οποίο τα αρχεία µπορούν να έχουν είτε µεγάλα αλφαριθµητικά, είτε σύντοµα αριθµητικά, είτε σχετικά ονόµατα.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 14 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Συνήθως δεν γίνεται να επεκταθεί ένα ήδη διατιθέµενο αρχείο, έτσι τα αρχεία πρέπει να δηµιουργούνται χρησιµοποιώντας το µέγιστο µέγεθος που µπορούν να πάρουν. Επιπλέον, η συµπίεση ή η συλλογή απορριµµάτων (garbage collection) δεν έχει καµία έννοια σε ένα σύστηµα αρχείων έξυπνων καρτών. Έτσι, παραδείγµατος χάρη, εάν το αρχείο Α και το αρχείο Β δηµιουργηθούν µε αυτήν τη σειρά στον ίδιο κατάλογο, και έπειτα το Α διαγραφεί, ο χώρος που καταλάµβανε το Α χάνεται έως ότου διαγράφει και το Β. Εάν και το αρχείο Β διαγραφεί, επειδή ήταν το τελευταίο αρχείο που δηµιουργήθηκε, ο χώρος που καταλάµβανε επανακτάται και µπορεί να επαναχρησιµοποιηθεί από το αρχείο Γ, για παράδειγµα.

Τα λειτουργικά συστήµατα των έξυπνων καρτών υποστηρίζουν το συνηθισµένο σύνολο εντολών αρχείων όπως τις create (δηµιουργία), delete (διαγραφή), read (ανάγνωση), write (εγγραφή), και update (αναβάθµιση) για όλα τα αρχεία. Επιπλέον, υπάρχουν και εντολές που υποστηρίζονται από συγκεκριµένα είδη αρχείων. Τα γραµµικά αρχεία, για παράδειγµα, που αποτελούνται από µια σειρά καθορισµένου µεγέθους αρχείων, µπορεί να είναι προσεγγιστούν µε βάση τον αριθµό έγγραφης τους ή µε εντολές όπως read next και read previous. Επιπλέον, µερικά λειτουργικά συστήµατα έξυπνων καρτών υποστηρίζουν µια περιορισµένη µορφή εύρεσης (seek) στα γραµµικά αρχεία. Τα κυκλικά αρχεία είναι γραµµικά που πηγαίνουν πίσω στο πρώτο αρχείο όταν διαβάζεται ή γράφεται το επόµενο αρχείο από το τελευταίο. Τέλος, υπάρχουν τα διαφανή (transparent) αρχεία που είναι αδιαφοροποίητα block της µνήµης των έξυπνων καρτών και τα οποία ένα πρόγραµµα εφαρµογής µπορεί να τα δοµήσει µε όποιον τρόπο θέλει.

Μαζί µε κάθε αρχείο σε µια έξυπνη κάρτα συνδέεται και ένας κατάλογος ελέγχου πρόσβασης. Αυτός ο κατάλογος καταγράφει ποιες διαδικασίες, ενδεχοµένως, κάθε χρήστης της κάρτας είναι εξουσιοδοτηµένος να εκτελέσει. Για παράδειγµα, η οντότητα Α µπορεί να είναι σε θέση να διαβάσει ένα συγκεκριµένο αρχείο αλλά να µην µπορεί να το αλλάξει, ενώ η οντότητα Β µπορεί να είναι σε θέση να διαβάσει, να γράψει, και να αλλάξει ακόµη και τον κατάλογο ελέγχου πρόσβασης του αρχείου.

Ένας από τους βασικούς στόχους ενός προγραµµατιστή κατά τη σχεδίαση µιας νέας εφαρµογής έξυπνων καρτών είναι να καθορίσει και να σχεδιάσει λεπτοµερώς τα αρχεία που η εφαρµογή αναµένει να βρει στην έξυπνη κάρτα. Για παράδειγµα, βλ. τον Πινάκα 5. Το µέγεθος και η χρήση µιας έξυπνης κάρτας είναι ένα βασικό µέληµα, αλλά ακόµα πρέπει να µελετηθούν σοβαρά και τα ονόµατα των αρχείων, οι ιεραρχικές σχέσεις µεταξύ τους, καθώς επίσης και οι προσβάσεις σε αυτά.

Πίνακας 5 Παραδείγµατα Αρχείων Των Έξυπνων Καρτών

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 15 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Τύπος Αρχείου Ειδικές Λειτουργίες Παραδείγµατα Χρήσεων Γραµµικό Εύρεση Πίνακας λογαριασµού σε

πιστωτική κάρτα Κυκλικό ∆ιάβασµα επόµενου-

προηγούµενου Καταχώρηση συναλλαγών

Αρχείο Πορτοφολιού Χρέωση µε χρήση πιστοποιητικού

e-cash

∆ιαφανές ∆υαδική ανάγνωση-εγγραφή

Εικόνα

Αρχείο SIM Κωδικοποίηση, Αποκωδικοποίηση

Κινητά Τηλέφωνα

1.4 Τρόποι Επικοινωνίας Στις Έξυπνες Κάρτες

Οι συνηθισµένοι µονού-chip υπολογιστές σε µια έξυπνη κάρτα είναι σε θέση να διαβιβάσουν και να λάβουν δεδοµένα µε ταχύτητα που µπορεί να φτάσει τα 115.200 bps, αλλά τα περισσότερα τερµατικά έξυπνων καρτών επικοινωνούν στα 9.600 bps µε έξυπνες κάρτες επαφών και στα 7.800 bps µε ασύρµατες έξυπνες κάρτες. Επειδή διαβιβάζεται µόνο ένα µικρό ποσό δεδοµένων και επειδή το κανάλι µπορεί να είναι αρκετά θορυβώδες, µια αξιόπιστη επικοινωνία είναι πολύ πιο σηµαντική από µια γρήγορη.

Η διαβίβαση των επικοινωνιών σε και από µια έξυπνη κάρτα είναι ηµιαµφίδροµη. ∆ηλαδή η πληροφορία είτε ρέει από το τερµατικό στην έξυπνη κάρτα είτε από την έξυπνη κάρτα στο τερµατικό, αλλά όχι και προς τις δύο κατευθύνσεις συγχρόνως. Το αποτέλεσµα είναι ότι η έξυπνη κάρτα και το τερµατικό πρέπει να είναι συγχρονισµένα και να συµφωνούν πάντα ποιανού σειρά είναι να «µιλήσει» και ποιανού να «ακούσει». Εάν και το τερµατικό και η κάρτα προσπαθήσουν να µεταδώσουν δεδοµένα ταυτόχρονα, αυτά θα χαθούν. Εάν και τα δύο θεωρήσουν πως είναι η σειρά τους να «ακούσουν», το σύστηµα τότε εισάγει µια κατάσταση αδιεξόδου και δεν συµβαίνει τίποτα περαιτέρω.

Τα δεδοµένα που λαµβάνονται και στέλνονται σε µια έξυπνη κάρτα αποθηκεύονται σε µια ενδιάµεση µνήµη (buffer) µέσα την RAM. Εποµένως, µόνο σχετικά µικρά πακέτα (10 έως 100 bytes) πληροφοριών κινούνται σε κάθε µήνυµα. Αν και τα πρότυπα ISO και CEN περιγράφουν λεπτοµερώς τη µορφή και την κωδικοποίηση αυτών των µηνυµάτων, τίποτα δεν αποτρέπει έναν προγραµµατιστή έξυπνων καρτών από το σχεδιασµό µηνυµάτων που να καλύπτουν τις δικές του απαιτήσεις.

1.5 Το Υλικό Των Έξυπνων Καρτών

Ο υπολογιστής σε µια έξυπνη κάρτα είναι ένα ενιαίο τσιπ ολοκληρωµένων κυκλωµάτων που περιλαµβάνει τη µονάδα κεντρικής επεξεργασίας (Κ.Μ.Ε.), το σύστηµα µνήµης, και τις γραµµές εισόδου-

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 16 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

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

1.5.1 Το Σύστηµα Μνήµης Των Έξυπνων Καρτών

Οι έξυπνες κάρτες έχουν µια αρχιτεκτονική µνήµης που θα είναι άγνωστη, εάν όχι παράδοξη, στους περισσότερους προγραµµατιστές. Οι προγραµµατιστές πιστεύουν στην ύπαρξη διαθέσιµων µεγάλων ποσών οµοιογενούς µνήµης τυχαίας προσπέλασης (RAM) που είναι ελεύθερα διαθέσιµη για ανάγνωση και γράψιµο. Αυτό δεν ισχύει στην περίπτωση µιας έξυπνης κάρτας. Στην πραγµατικότητα υπάρχουν τρία είδη µνήµης σε µια έξυπνη κάρτα: µνήµη µόνο ανάγνωσης (ROM), αµετάβλητη µνήµη (NVM), και ένα σχετικά µικροσκοπικό ποσό µνήµης τυχαίας προσπέλασης (RAM).

Στη µνήµη ROM αποθηκεύεται το λειτουργικό σύστηµα των έξυπνων καρτών και αποτελεί ενδιαφέρον µόνο στους προγραµµατιστές συµβολικής γλώσσας (Assembly). Οι γενικής χρήσης έξυπνες κάρτες έχουν µεταξύ 8 KB και 32 KB µνήµη ROM. Εδώ, κάποιος βρίσκει διάφορες ρουτίνες γενικής χρήσης όπως αυτές που είναι υπεύθυνες για την επικοινωνία και τη διατήρηση ενός συστήµατος αρχείων πάνω στην κάρτα µαζί µε τις ρουτίνες κρυπτογράφησης και τις ειδικής χρήσης αριθµητικές ρουτίνες. Ο κώδικας και τα δεδοµένα τοποθετούνται στη ROM όταν κατασκευάζεται η κάρτα και δεν µπορεί να αλλάξουν. Κοινώς αυτές οι πληροφορίες έχουν ενσωµατωθεί στην κάρτα.

Στην NVM αποθηκεύονται τα µεταβλητά δεδοµένα της κάρτας όπως οι αριθµοί λογαριασµού, το ποσοστό της προµήθειας της τράπεζας, ή το ποσό e-cash. Η NVM µπορεί να διαβαστεί και να γραφτεί από τα προγράµµατα εφαρµογής, αλλά δεν ενεργεί και δεν µπορεί να χρησιµοποιηθεί όπως η RAM. Η NVM πήρε το όνοµά της από το γεγονός ότι διατηρεί το περιεχόµενό της όταν αφαιρείται το ρεύµα από την κάρτα. Τα στοιχεία που γράφονται στην NVM, εάν δεν αντικατεστηθούν, θα µείνουν στην κάρτα για 10 έτη το πολύ. Η NVM παρουσιάζει δύο προβλήµατα:

• Βραδύτητα. Για να γραφτούν δεδοµένα στη NVM απαιτούνται συνήθως 3-10 χιλιοστά του δευτερολέπτου.

• Απώλεια ∆εδοµένων. Η NVM φθείρεται αφού χρησιµοποιηθεί αρκετές φορές (περίπου 100.000 φορές).

Ένας προγραµµατιστής µπορεί να µη γνωρίζει τη φύση αυτών των δύο προβληµάτων, αλλά πρέπει να τα λάβει υπόψη όταν γράφει ένα λογισµικό για έξυπνες κάρτες.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 17 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Υπάρχει κάποια διαθέσιµη RAM σε µια έξυπνη κάρτα, αλλά όχι πάρα πολύ. Συνήθως µόνο 1.000 bytes ή λιγότερο. Αυτός είναι, από την πλευρά του υπεύθυνου ανάπτυξης λογισµικού καρτών, αδιαφιλονίκητα ο πολυτιµότερος πόρος της κάρτας. Ακόµα και όταν χρησιµοποιείται µια υψηλού επιπέδου γλώσσα σε µια έξυπνη κάρτα, ο προγραµµατιστής δεν πρέπει να αµελεί την ανάγκη εξοικονόµησης στη χρήση προσωρινών µεταβλητών. Επιπλέον, η RAM δε χρησιµοποιείται µόνο από τις εφαρµογές των προγραµµατιστών, αλλά και από όλες τις ρουτίνες που εµπεριέχονται στην κάρτα, µε αποτέλεσµα ένας προγραµµατιστής να πρέπει να γνωρίζει όχι µόνο πόσο RAM χρησιµοποιεί, αλλά και πόσο απαιτείται από αυτές τις ρουτίνες για να λειτουργούν σωστά.

1.5.2 Η Κ.Μ.Ε. Των Έξυπνων Καρτών

Η κεντρική µονάδα επεξεργασίας σε ένα τσιπ έξυπνων καρτών είναι ένας οκτάµπιτος µικροελεγκτής, που συνήθως χρησιµοποιεί τα σύνολα εντολών του Motorola 6805 ή του Intel 8051. Το τσιπ των έξυπνων καρτών Hitachi H8 είναι µια αξιοσηµείωτη εξαίρεση. Αυτά τα σύνολα εντολών αποτελούνται από την κατάλληλη ποσότητα µνήµης και καταχωριστών (registers), καθώς και από τις απαιτούµενες διαδικασίες εισόδου-εξόδου. Μερικοί κατασκευαστές έχουν επεκτείνει αυτά τα βασικά σύνολα εντολών µε κάποιες επιπρόσθετες, που είναι απαραίτητες για κάποιες συγκεκριµένες χρήσεις στις έξυπνες κάρτες. Η Κ.Μ.Ε. των έξυπνων καρτών µπορούν να εκτελέσουν 400.000 εντολές ανά δευτερόλεπτο (400 KIP), αν και οι ταχύτητες έχουν φτάσει µέχρι και στο 1 MIP (1000000 εντολές το δευτερόλεπτο) στα πιο πρόσφατα τσιπ.

Η απαίτηση για ισχυρότερη κρυπτογράφηση στις έξυπνες κάρτες επιδρά αρνητικά στο χρόνο που ο επεξεργαστής µιας κάρτας µπορεί να εκτελέσει κάποιες λειτουργίες. Συνήθως απαιτούνται 1 έως 3 δευτερόλεπτα για µια συναλλαγή µε µια έξυπνη κάρτα. Εντούτοις, µια κρυπτογράφηση RSA 1024 κλειδιών µπορεί να πάρει 10-20 δευτερόλεπτα σε έναν τυπικό επεξεργαστή έξυπνων καρτών. Κατά συνέπεια, µερικά τσιπ έξυπνων καρτών έρχονται µαζί µε συνεπεξεργαστές για να επιταχύνουν τους υπολογισµούς που απαιτεί µια ισχυρή κρυπτογράφηση.

Η Κ.Μ.Ε. µιας κάρτας δεν εκτελεί απαραιτήτως τον κώδικα από όλα τα µέρη του συστήµατος µνήµης των έξυπνων καρτών. Τα περισσότερα τσιπ έξυπνων καρτών, για παράδειγµα, δεν εκτελούνε τον κώδικα που αποθηκεύεται στη RAM. Επιπλέον, µερικά τσιπ καθιστούν πιθανό να µετατρέψουν ορισµένα τµήµατα της NVM έτσι ώστε ένα πρόγραµµα που φορτώνεται στη NVM να µη µπορεί να αντικατασταθεί (ουσιαστικά µετατρέποντας τη NVM σε ROM).

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 18 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

1.5.3 Είσοδος-Έξοδος Στην Έξυπνη Κάρτα

Το κανάλι εισόδου-εξόδου σε µια έξυπνη κάρτα είναι ένα οµοιοκατευθυνόµενο σειριακό κανάλι. Αυτό σηµαίνει ότι περνά τα δεδοµένο 1 bit και ως εκ τούτου 1 byte τη φορά, και ότι τα δεδοµένα µπορούν να ρεύσουν µόνο σε µια κατεύθυνση τη φορά. Το υλικό των έξυπνων καρτών µπορεί να χειριστεί τις πληροφορίες σε ταχύτητα µέχρι και 115200 bps, αλλά οι αναγνώστες έξυπνων καρτών επικοινωνούν συνήθως µε την κάρτα µε ταχύτητες πολύ κάτω από αυτή.

Το πρωτόκολλο επικοινωνίας µεταξύ του δέκτη (host) και της έξυπνης κάρτας είναι βασισµένο σε µια σχέση master (host) και slave (έξυπνη κάρτα). Ο δέκτης στέλνει τις εντολές στην κάρτα και περιµένει µια απάντηση. Η έξυπνη κάρτα δεν στέλνει ποτέ δεδοµένα στον δέκτη εκτός αν πρόκειται για απάντηση σε µια εντολή από αυτόν.

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

1.6 Σχεδίαση Συστήµατος Των Έξυπνων Καρτών

Ο περισσότερος προγραµµατισµός έξυπνων καρτών αφορά το γράψιµο προγραµµάτων για τους δέκτες των καρτών και για τις εντολές που στέλνουν ή τα αποτελέσµατα που λαµβάνουν από προκαθορισµένες έξυπνες κάρτες. Αυτές οι εφαρµογές διαβάζουν ή γράφουν δεδοµένα στην έξυπνη κάρτα και χρησιµοποιούν τις µέτριες υπολογιστικές ικανότητες του επεξεργαστή της έξυπνης κάρτας

Σε περιπτώσεις όπου µία «έτοιµη προς χρήση» κάρτα δεν περιέχει όλες τις λειτουργίες που απαιτούνται από µια εφαρµογή, ο προγραµµατιστής µπορεί να επεκτείνει τις δυνατότητες της γράφοντας εκ νέου λογισµικό που θα τρέχει πάνω στην ίδια την κάρτα. Αυτό το νέο λογισµικό σε συνδυασµό µε τις υπάρχουσες συναρτήσεις του λειτουργικού συστήµατος της κάρτας µπορεί να εφαρµόσει συγκεκριµένης χρήσης ή υψηλότερου επιπέδου λειτουργίες, ή µπορεί να παρέχει επιπρόσθετη προστασία για τις πληροφορίες που αποθηκεύονται στην κάρτα.

Τέλος, µπορούν να υπάρξουν περιπτώσεις όπου οι ίδιες οι ικανότητες του λειτουργικού συστήµατος µιας έξυπνης κάρτας πρέπει να επεκταθούν, ή πού πρέπει να κατασκευαστεί µια νέα και µοναδική έξυπνη κάρτα. Σε τέτοιες περιπτώσεις σηµαντικοί παράγοντες είναι το κόστος και το επίπεδο ασφάλειας. Επίσης ο κώδικας γράφεται επί των

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 19 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

πλείστων στη συµβολική γλώσσα (Assembly) του επεξεργαστή της κάρτας.

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

1.6.1 Ασφάλεια Των ∆εδοµένων

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

Αναλυτικότερα η έννοια της ασφάλειας στις έξυπνες κάρτες δεν έγκειται τόσο στην κρυπτογράφηση των δεδοµένων που αποθηκεύονται σ’ αυτήν, αλλά περισσότερο σε ποιες εξουσιοδοτηµένες οντότητες προσπαθούν να τα προσεγγίσουν. Οι περισσότερες επιθέσεις σε κάρτες γίνονται από µη εξουσιοδοτηµένες οντότητες που αποκτούν εξουσιοδότηση και από εκεί και πέρα χρησιµοποιούν τις λειτουργίες της κάρτας για να αποκτήσουν πρόσβαση στα δεδοµένα της. Έτσι επειδή τα κλειδιά, οι κωδικοί, τα PIN αποθηκεύονται στην κάρτα για την πιστοποίηση οντοτήτων, πρέπει να παρέχεται ιδιαίτερη προστασία σ’ αυτά.

Ένας τρόπος να εξασφαλιστεί η ασφάλεια των δεδοµένων µιας έξυπνης κάρτας είναι µε το να ελέγχεται η φυσική πρόσβαση σ’ αυτήν. Αυτή η τεχνική χρησιµοποιείται συχνά στην αρχή του κύκλου ζωής της κάρτας. Για παράδειγµα, οι κάρτες κατασκευάζονται κάτω από στεγανές φυσικές διαδικασίες ασφάλειας και στέλνονται στον πελάτη κάτω από εξίσου στεγανές διαδικασίες. Τα κλειδιά που χρησιµοποιούνται για να προστατεύσουν την κάρτα κατά τη διάρκεια της µεταφοράς από τον κατασκευαστή στον πελάτη καλούνται κλειδιά µεταφορών και δίνονται µόνο στον πελάτη. Χρησιµοποιώντας τα κλειδιά µεταφορών, ο πελάτης µπορεί να έχει πρόσβαση σε όλα τα αρχεία της έξυπνης κάρτας και να δηµιουργήσει ένα συγκεκριµένο σχέδιο έγκρισης και πρόσβασης αρχείων. Τα κλειδιά µεταφορών µοιάζουν µε κωδικούς υπερχρηστών (super user passwords) και συνήθως διαγράφονται από την κάρτα αφότου έχουν χρησιµοποιηθεί.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 20 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

1.6.2 Ακεραιότητα Των ∆εδοµένων

Η ακεραιότητα των δεδοµένων έγκειται στο ότι όλοι οι συµµετέχοντες σε µια συναλλαγή µε έξυπνες κάρτες συµφωνούν σχετικά µε την κατάσταση των δεδοµένων. Εάν το λογισµικό µιας µηχανής πώλησης σκοπεύει να χρεώσει µια έξυπνη κάρτα €1 για µια αγορά, στο τέλος της συναλλαγής, πρέπει να υπάρχουν €1 λιγότερο στην κάρτα, €1 περισσότερο στη µηχανή, και το αντικείµενο αγοράς στα χέρια του κατόχου της κάρτας. Οποιαδήποτε παραλλαγή (δηλαδή µη χρέωση της κάρτας, ο κάτοχος της κάρτας να µην πήρε αυτό που ζήτησε) είναι παραβίαση της ακεραιότητας δεδοµένων.

Ο κυριότερος λόγος δηµιουργίας βλαβών στην ακεραιότητα των δεδοµένων µιας κάρτας είναι οι διακοπές ή η κατάρρευση ενός συστήµατος κατά τη διάρκεια µιας συναλλαγής. Τέτοιες αποτυχίες µπορεί να είναι τυχαίες (π.χ. , όταν πέφτει η γραµµή επικοινωνίας του ATM) ή σκόπιµες (π.χ. , όταν ο κάτοχος µιας κάρτας αφαιρεί από τον αναγνώστη την κάρτα πριν ολοκληρωθεί η συναλλαγή). Ο προγραµµατισµός για την εξασφάλιση της ακεραιότητας των δεδοµένων µιας κάρτας συνεπάγεται τόσο στο να µη χάνονται δεδοµένα, όσο και στη επιδιόρθωση τους σε τυχόν βλάβες.

1.7 Αρχιτεκτονική Του Συστήµατος Των Έξυπνων Καρτών

Όπως έχει δειχθεί µέχρι στιγµής από τον τρόπο λειτουργίας της κάρτας, είναι αδύνατο να υπάρξει µια τελείως αυτόνοµη έξυπνη κάρτα. Όλες οι έξυπνες κάρτες είναι ενσωµατωµένες σε µεγαλύτερα συστήµατα τα οποία περιέχουν υπολογιστές και χώρους αποθήκευσης δεδοµένων, για την πλήρη ωφελιµότητα της κάρτας. Για παράδειγµα, ένα σύστηµα ATM περιλαµβάνει έναν υπολογιστή σε κάθε µηχάνηµα ATM, κεντρικούς υπολογιστές (servers) συναλλαγής όπου συγκεντρώνονται τα αιτήµατα που προέρχονται από τα µηχανήµατα, και µηχανές βάσεων δεδοµένων που περιέχουν πληροφορίες για τις ταυτότητες των χρηστών και για τους λογαριασµούς του καθενός. Στην πραγµατικότητα ο βασικός ρόλος των έξυπνων καρτών ως ασφαλές τεκµήριο ταυτότητας, φαίνεται µέσα από µεγάλα, διανεµηµένα, πολυµερή συστήµατα.

Έχουν υπάρξει διάφορες προσπάθειες να διευκρινιστούν και να τυποποιηθούν τα συστήµατα που χρησιµοποιούν έξυπνες κάρτες. Τρεις ενώσεις τραπεζικών καρτών, η Europay, η MasterCard, και η Visa, συνεργάστηκαν στις αρχές του 1996 για να παραγάγουν το EMV'96, το οποίο διευκρινίζει µια γενική αρχιτεκτονική συστηµάτων για τις εφαρµογές χρεωστικών και πιστωτικών καρτών. Στα τέλη του 1996, µια οµάδα εργασίας (µε επικεφαλείς τη Microsoft, τη Schlumberger, τη Bull CP8 Transac, τη Hewlett Packard, και τα συστήµατα πληροφοριών της Siemens Nixdorf) παρήγαγε µια προδιαγραφή αποκαλούµενη PC/SC (προσωπικός υπολογιστής-

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 21 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

έξυπνη κάρτα) για τη σύνδεση των έξυπνων καρτών µε τους προσωπικούς υπολογιστές και για τα προγράµµατα των υπολογιστών που έχουν επικοινωνία µε τις κάρτες. Έπειτα, στις αρχές του 1997, η ΙΒΜ δηµοσίευσε µια προδιαγραφή αποκαλούµενη Ανοικτή Αρχιτεκτονική Έξυπνων Καρτών. Τέλος, η έκδοση 2.0 της προδιαγραφής των Ασφαλών Ηλεκτρονικών Συναλλαγών (Secure Electronic Transactions - SET) που δηµοσίευσε η MasterCard και η θεώρηση το καλοκαίρι του 1997 περιέχουν ακόµα µια αρχιτεκτονική έξυπνων καρτών βασισµένη στην προδιαγραφή EMV και που προσαρµόζεται συγκεκριµένα για τις εφαρµογές πίστωσης και χρεώσεων των έξυπνων καρτών.Μια από τις προκλήσεις που πρέπει να αντιµετωπίσει ένας προγραµµατιστής έξυπνων καρτών είναι το πώς θα διανέµει τις διάφορες λειτουργίες µεταξύ των υπολογιστών, των τερµατικών και των καρτών. ∆ηλαδή ποιες λειτουργίες πηγαίνουν στην ίδια την έξυπνη κάρτα, ποιες λειτουργίες πηγαίνουν στη µηχανή στην οποία παρεµβάλλεται η έξυπνη κάρτα (αναγνώστης, τερµατικό), και ποιες λειτουργίες πηγαίνουν στις διάφορες µηχανές που βρίσκονται στο ανώτερο επίπεδο (servers, βάσεις δεδοµένων). Όπως είναι αναµενόµενο, αυτές δεν είναι απλώς τεχνικές αποφάσεις. Πρέπει πάντα να λαµβάνονται υπόψη τα επιχειρησιακά συµφέροντα και τα θέµατα ασφάλειας των ιδιοκτητών όλων αυτών των συστηµάτων.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 22 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

2 Φυσικά Χαρακτηριστικά Των Έξυπνων Καρτών

Οι έξυπνες κάρτες παρουσιάζονται σε διάφορες µορφές, που εξαρτώνται πρώτιστα από τον τύπο του τσιπ που έχουν ενσωµατωµένο και τη φυσική µορφή του µηχανισµού διασύνδεσης µεταξύ της κάρτας και του αναγνώστη. Μία χρήση τους είναι να αντικαθιστούν τα µετρητά για οικονοµικές συναλλαγές όπως οι πιστωτικές κάρτες, οι τηλεφωνικές κάρτες, ή οι διάφορες κάρτες επιχειρήσεων όπως αυτές που χρησιµοποιούν τα σύγχρονα βίντεο club. Άλλη χρήση τους είναι για να παρέχουν πρόσβαση σε υπηρεσίες όπως σε κλειδωµένες πόρτες, σε τραίνα, σε µετρό ή στα διόδια σε εθνικές οδούς. Ακόµα µπορούν να λειτουργήσουν ως τεκµήρια ταυτότητας για την πρόσβαση σε έναν υπολογιστή ή την πρόσβαση σε έναν server του World Wide Web µε επικυρωµένη ταυτότητα. Τρεις τέτοιες παραλλαγές είναι ιδιαίτερου ενδιαφέροντος:

• Κάρτες µε επαφές στην επιφάνεια τους που οδηγούν σε ένα τσιπ µόνο µνήµης.

• Κάρτες µε ηλεκτροµαγνητική σύνδεση που οδηγούν σε ένα τσιπ µε µικροεπεξεργαστή.

• Κάρτες µε επαφές στην επιφάνεια τους που οδηγούν σε ένα τσιπ µε µικροεπεξεργαστή.

Τα τελευταία χρόνια το µεγαλύτερο ποσοστό έξυπνων καρτών είναι οι κάρτες µνήµης που περιέχουν ένα τσιπ ολοκληρωµένων κυκλωµάτων αποτελούµενο από µια αµετάβλητη µνήµη και από τα απαραίτητα ηλεκτρονικά στοιχεία για ανάγνωση και έγγραφη σε αυτήν. Αυτές οι κάρτες είναι σχετικά ανέξοδες και παρέχουν µια µέτρια ασφάλεια για ποικίλες εφαρµογές.

Μια κάρτα µνήµης, όπως φαίνεται από το όνοµά της, είναι µια κάρτα που περιέχει ένα ενσωµατωµένο τσιπ που παρέχει µια αµετάβλητη µνήµη για την αποθήκευση των πληροφοριών σε µόνιµη ή ηµι-µόνιµη βάση. Τα ηλεκτρονικά στοιχεία µιας κάρτας µνήµης είναι ένας ηλεκτρονικός διασυνδετής και οι γραµµές έλεγχου που σκοπό έχουν να κατευθύνουν τις εξερχόµενες ή εισερχόµενες πληροφορίες στις σωστές τοποθεσίες της µνήµης της κάρτας. ∆εν υπάρχει κανένας ενσωµατωµένος επεξεργαστής για να υποστηρίξει ένα υψηλού επιπέδου πρωτόκολλο επικοινωνίας µεταξύ του αναγνώστη και της κάρτας. Θα λέγαµε ότι οι κάρτες µνήµης χρησιµοποιούν έναν σύγχρονο µηχανισµό επικοινωνίας µεταξύ του αναγνώστη και της κάρτας. Ουσιαστικά, το κανάλι επικοινωνίας είναι υπό άµεσο έλεγχο από τους αναγνώστες. Τα ηλεκτρονικά στοιχεία των καρτών αποκρίνονται µε έναν άµεσο (σύγχρονο) τρόπο στις χαµηλού επιπέδου εντολές που δίνονται από τον αναγνώστη για την εξέταση των θέσεων µνήµης και για την ανάγνωση ή το γράψιµο στις θέσεις αυτές.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 23 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Μια κάρτα χωρίς επαφές ενσωµατώνει και αυτή ένα τσιπ µέσα στην κάρτα. Εντούτοις, χρησιµοποιεί ένα ηλεκτροµαγνητικό σήµα για να διευκολύνει την επικοινωνία µεταξύ της κάρτας και του αναγνώστη. Με αυτές τις κάρτες, η απαραίτητη ισχύς για να τρέξει το τσιπ στην κάρτα διαβιβάζεται µέσα από συχνότητες µικροκυµάτων από τον αναγνώστη προς στην κάρτα. Η απόσταση που επιτρέπεται να υπάρχει µεταξύ του αναγνώστη και της κάρτας είναι αρκετά µικρή (µερικά χιλιοστόµετρα). Ωστόσο, αυτές οι κάρτες προσφέρουν µεγαλύτερη ευκολία χρήσης από τις κάρτες που πρέπει να εισέρχονται στους αναγνώστες.

Με την τρέχουσα κατάσταση της τεχνολογίας, η ταχύτητα µεταφοράς των δεδοµένων µεταξύ του αναγνώστη και της κάρτας χωρίς επαφές µπορεί να περιοριστεί από το επίπεδο ισχύς που µπορεί να επιτευχθεί στην κάρτα. ∆ηλαδή για κάρτες χωρίς µια εσωτερική πηγή ενέργειας (π.χ., µια µπαταρία), η απαραίτητη ισχύς για να λειτουργήσει ο επεξεργαστής της κάρτας πρέπει να προέλθει από ένα σήµα που διαβιβάζεται στην κάρτα από τον αναγνώστη. Για αυτό το λόγο η απόσταση µεταξύ της κάρτας και του αναγνώστη πρέπει να είναι µικρή. Περαιτέρω, και ο µηχανισµός πιστοποίησης του κατόχου µιας κάρτας χωρίς επαφές είναι αρκετά πολύπλοκος. Συνεπώς, αυτές οι κάρτες είναι οι δηµοφιλέστερες για χρήσεις όπου η πιστοποίηση του κατόχου δεν είναι και τόσο σηµαντική.

Εκτός από το φυσικό µηχανισµό που χρησιµοποιείται για να µεταφέρει τις πληροφορίες µεταξύ του αναγνώστη και της κάρτας, οι κάρτες µε ή χωρίς επαφές µοιάζουν πολύ στη γενική αρχιτεκτονική τους. Θα εστιάσουµε την προσοχή µας στις κάρτες µε επαφές. Αυτός ο τύπος κάρτας ενσωµατώνει τη µνήµη και τη Κ.Μ.Ε. σε ένα ενιαίο τσιπ ολοκληρωµένων κυκλωµάτων. Αυτό ελαχιστοποιεί την πιθανότητα για παρεµβολή στα ηλεκτρικά σήµατα που κινούνται µεταξύ του επεξεργαστή και µνήµης. Βέβαια η ασφάλεια αυτής της ενσωµατωµένης συσκευασίας δεν είναι αλάνθαστη. Η έξυπνη κάρτα είναι µεν ανθεκτική σε πλαστογραφήσεις αλλά όχι και άτρωτη.

2.1 Τι Υπάρχει Μέσα Στην Κάρτα

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

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 24 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

παρεµποδίσει τα σήµατα που περνούν µεταξύ αυτών των συστατικών (µέσα στο τσιπ). Το βασικό αποτέλεσµα είναι ένα ασφαλέστερο υπολογιστικό σύστηµα σε αντίθεση µε αυτό που επιτυγχάνεται µε µακροσκοπικές φυσικές συνδέσεις.

Εικόνα 2 Στοιχεία Του Υπολογιστή Μιας Έξυπνης Κάρτας

2.1.1 Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα

Όπως έχει αναφερθεί η δηµιουργία έξυπνων καρτών έγκειται στην τοποθέτηση της Κ.Μ.Ε., της µνήµης, και των ηλεκτρονικών στοιχείων εισόδου–εξόδου (I/O) στο ίδιο τσιπ ολοκληρωµένων κυκλωµάτων. Τα βασικά πλεονεκτήµατα αυτού του τρόπου δηµιουργίας καρτών είναι το ότι περιορίζει όλες τις υπολογιστικές δραστηριότητες µέσα σε ένα πολύ µικρό φυσικό πακέτο και το ότι κρύβονται οι εσωτερικές διασυνδέσεις µεταξύ των στοιχείων του υπολογιστή της κάρτας. Έτσι είναι αρκετά δύσκολο για κάποιον να υποκλέψει τις πληροφορίες µου µεταφέρονται µέσω ηλεκτρικών σηµάτων µεταξύ των στοιχείων αυτών. Η σύνδεση µε τον εξωτερικό κόσµο µέσω της οποίας ρέουν πληροφορίες είναι µια απλή πύλη I/O που µπορεί να προστατευθεί, σε µεγάλο βαθµό, από τον επεξεργαστή που περιλαµβάνεται µέσα στο τσιπ. Αυτό γίνεται µέσω της χρήσης υψηλού επιπέδου τηλεπικοινωνιακών πρωτοκόλλων µέσω των οποίων το τσιπ του επεξεργαστή φιλτράρει τα δεδοµένα που µεταφέρονται µεταξύ των στοιχείων της κάρτας. Συγκεκριµένα µέσω αυτών των πρωτοκόλλων απαιτείται πιστοποίηση για οποιαδήποτε οντότητα προσπαθεί να αλληλεπιδράει µε την κάρτα, όπως για παράδειγµα ένα πρόγραµµα ενός τερµατικού.

Πέρα από το πλεονέκτηµα της ασφάλειας, τα τσιπ ολοκληρωµένων κυκλωµάτων καταλαµβάνουν παρά πολύ µικρό χώρο οπότε µπορούν να ενσωµατωθούν σε µια µικρού µεγέθους κάρτα, κάτι πολύ πρακτικό για τους κατόχους έξυπνων καρτών. Όταν, παραδείγµατος χάριν, µια κάρτα βρίσκεται σε ένα πορτοφόλι, το τσιπ

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 25 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

υπόκειται σε διάφορες φυσικές δυνάµεις. Η κάρτα κάµπτεται και λυγίζει και µπορεί να υποβληθεί σε ξαφνικούς κραδασµούς. Στους πιο συνηθισµένους ηλεκτρονικούς εξοπλισµούς, τα στοιχεία τους είναι συνδεµένα µέσω µακροσκοπικών ηλεκτρικών γραµµών καλωδίωσης, γεγονός που τους κάνει ευάλωτους σε χτυπήµατα και ελάχιστα ανθεκτικούς. Όταν όµως όλα τα στοιχεία συσκευάζονται σε ένα ενιαίο τσιπ, οι πιέσεις τείνουν να εφαρµοστούν εξίσου σε όλα τα στοιχεία. Έτσι, εάν το τσιπ µπορεί να διατηρήσει τη συνοχή του, κατόπιν τα συστατικά του θα λειτουργούν µε µεγαλύτερη επιτυχία. Εµπειρικά στοιχεία δείχνουν ότι όταν µειώνεται το µέγεθος ενός τσιπ σε περίπου 25 mm2 (σε µια κατά προσέγγιση τετραγωνική διαµόρφωση), είναι σε θέση να αντισταθεί τις καθηµερινές πιέσεις που αντιµετωπίζουν οι κάρτες.

Η επίτευξη του µικρού µεγέθους του τσιπ εξαρτάται από διάφορα κριτήρια:

• Η εξέλιξη της τεχνολογίας που χρησιµοποιείται για το τσιπ (παραδείγµατος χάριν, το µέγεθος ενός transistor µέσα στο τσιπ).

• Το πλάτος του εσωτερικού δίαυλου του επεξεργαστή. ∆ηλαδή αν είναι 8 bit, 16 bits, 32 bits, ή 64 bits.

• Ο τύπος της µνήµης που χρησιµοποιείται. • Τα βοηθητικά στοιχεία (όπως τα φίλτρα τάσης, οι καταχωρητές

µνήµης) που περιλαµβάνονται στο τσιπ για λόγους ασφάλειας ή λειτουργίας.

2.1.1.1 Μέγεθος

Το µικρό µέγεθος που είναι αναγκαίο για τα τσιπ απαιτεί πολύ σύγχρονες τεχνολογίες. Εντούτοις, για να είναι τα τσιπ ανέξοδα και αξιόπιστα, χρησιµοποιούνται συχνά παλαιότερες, ωριµότερες τεχνολογίες.

2.1.1.2 Πλάτος

Το πλάτος του εσωτερικού δίαυλου δείχνει τον αριθµό των γραµµών διευθύνσεων µνήµης που υπάρχουν µεταξύ των στοιχείων ενός τσιπ. ∆ηλαδή το πλάτος είναι γενικά ενδεικτικό του αριθµού των bits στα µεµονωµένα προσπελάσιµα τµήµατα της µνήµης. Η ελαχιστοποίηση του µεγέθους των τσιπ απαιτεί την επιλογή λιγότερων γραµµών διευθύνσεων και εποµένως, τα περισσότερα τσιπ έξυπνων καρτών είναι αυτήν την περίοδο βασισµένα στους οκτάµπιτους µικροεπεξεργαστές. Αυτοί οι µικροεπεξεργαστές τείνουν επίσης να είναι παλαιότερων και ωριµότερων τεχνολογιών.

2.1.1.3 Μνήµη

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 26 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Ο τύπος της µνήµης που χρησιµοποιείται στα τσιπ των έξυπνων καρτών έχει µια πάρα πολύ ενδιαφέρουσα πτυχή. Οι εφαρµοζόµενες τεχνολογίες που χρησιµοποιούνται για τα τσιπ µνήµης ποικίλλουν πολύ στο µέγεθος των µεµονωµένων κελιών µνήµης. Το µικρότερο στοιχείο µνήµης είναι η ROM. Αυτός ο τύπος µνήµης µπορεί εύκολα να διαβαστεί, αλλά απαιτεί πολύ ειδικό εξοπλισµό προκειµένου να γραφτούν πληροφορίες σ’ αυτή. Στην πραγµατικότητα, το γράψιµο στη ROM είναι µια διαδικασία που γίνεται σχετικά νωρίς, στην αρχή δηλαδή της κατασκευής του τσιπ της κάρτας. Αυτή η τεχνική τείνει να ενισχύσει την ασφάλεια του τσιπ, δεδοµένου ότι είναι πολύ δύσκολο να εξεταστεί το περιεχόµενο της ROM χωρίς να καταστραφεί το τσιπ (ακόµα και µε τη χρήση πολύ ακριβού εξοπλισµού εξέτασης). Έτσι αυτός ο τύπος µνήµης είναι χρήσιµος για τα µόνιµα αποθηκευµένα προγράµµατα στην έξυπνη κάρτα, αλλά είναι άχρηστος για την αποθήκευση των δυναµικών πληροφοριών που πρέπει να αλλάζουν κατά τη διάρκεια της κανονικής χρήσης µιας κάρτας.

Σηµαντικά µεγαλύτερη είναι η ηλεκτρικά εξαλείψιµη και προγραµµατίσηµη µόνο ανάγνωσης µνήµη (EEPROM - Electrically Erasable & Programmable Read Only Memory). Το περιεχόµενο αυτού του τύπου µνήµης σε ένα τσιπ έξυπνων καρτών µπορεί να τροποποιηθεί κατά τη διάρκεια της κανονικής χρήσης της κάρτας. Ως εκ τούτου, προγράµµατα ή δεδοµένα µπορούν να αποθηκευτούν στην EEPROM κατά τη διάρκεια της κανονικής λειτουργίας της κάρτας και να διαβαστούν έπειτα από τις εφαρµογές που χρησιµοποιούν την κάρτα. Τα ηλεκτρικά χαρακτηριστικά της µνήµης EEPROM είναι τέτοια που επιτρέπουν στα δεδοµένα που είναι αποθηκευµένα σ’ αυτήν να σβηστούν και επανεγραφούν. Βέβαια ο αριθµός επαναπρογραµµατισµού της EEPROM είναι πεπερασµένος (αλλά αρκετά µεγάλος), και κυµαίνεται περίπου στις 100.000 φορές. Τα κελιά µνήµης της EEPROM τείνουν να είναι 4 φορές µεγαλύτερα από τα κελιά µνήµης της ROM. Βέβαια η EEPROM, όπως και η ROM, έχει το συµπαθητικό χαρακτηριστικό της ύπαρξης µιας αµετάβλητης µνήµης. ∆ηλαδή οι πληροφορίες που είναι αποθηκευµένες στη µνήµη µένουν αµετάβλητες όταν δεν υπάρχει ισχύς ή ενέργεια σ’ αυτή.

Ακόµη µεγαλύτερη είναι η µνήµη τυχαία προσπέλασης (RAM). Αυτός είναι ο τύπος µνήµης που χρησιµοποιείται και στα συνηθισµένα συστήµατα ηλεκτρονικών υπολογιστών, όπως οι προσωπικοί υπολογιστές. Οι πληροφορίες µπορούν να γραφτούν και να σβηστούν πολλές φορές. Στο τσιπ των έξυπνων καρτών ένα κελί µνήµης RAM είναι περίπου τέσσερις φορές µεγαλύτερο από ένα κελί µνήµης EEPROM. Η RAM είναι επίσης µια ευµετάβλητη µνήµη. ∆ηλαδή το περιεχόµενο της µνήµης χάνεται όταν αφαιρείται η ισχύς από την κάρτα. Η RAM είναι, εντούτοις, απαραίτητη για συγκεκριµένες λειτουργίες των έξυπνων καρτών. Και αυτό γιατί ο χρόνος για να γραφτούν ή να διαβαστούν πληροφορίες από αυτήν είναι ελάχιστος. Αυτό µπορεί να είναι εξαιρετικά σηµαντικό, ειδικά όταν αλληλεπιδρά

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 27 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

η έξυπνη κάρτα µε µια εφαρµογή ενός Η/Υ στην οποία ο συγχρονισµός των απαντήσεων από την κάρτα στον Η/Υ είναι σηµαντικός. Αυτό συµβαίνει συχνά στο χώρο της κινητής τηλεφωνίας.

Το συµπέρασµα είναι ότι τα τσιπ έξυπνων καρτών τείνουν να χρησιµοποιούν τον κάθε τύπο µνήµης, ανάλογα µε την εφαρµογή για στην οποία χρησιµοποιείται η έξυπνη κάρτα. Τα ισχυρότερα τσιπ που χρησιµοποιούνται σήµερα στις έξυπνες κάρτες έχουν RAM από 256 byte ως 1 KB, ROM από 16 KB ως 32 KB, και EEPROM από 1 KB ως 16 KB.

2.1.2 Συνεπεξεργαστές

Ένας τυπικός επεξεργαστής έξυπνων καρτών είναι ένας οκτάµπιτος µικροεπεξεργαστής. Ένας τέτοιος επεξεργαστής είναι σε θέση διαχειρίζεται µόνο 1 byte δεδοµένων τη φορά. Αυτό φαίνεται στο ότι η βασική υπολογιστική δυνατότητα του υπολογιστή της κάρτας υποστηρίζει οκτάµπιτους ακέραιους αριθµούς (8-bit integer). Για να χειριστεί ο επεξεργαστής ακέραιους µεγαλύτερους των 8 bit ή αριθµούς κινητής υποδιαστολής απαιτεί έναν σηµαντικό επιπρόσθετο προγραµµατισµό στο βασικό σύνολο εντολών του. Αυτό δηµιουργεί προβλήµατα όταν το τσιπ της κάρτας πρέπει να υποστηρίζει κρυπτογραφία δηµόσιου κλειδιού.

Η κρυπτογραφία δηµόσιου κλειδιού για να επιτευχθεί µε τη βοήθεια ενός οκτάµπιτου επεξεργαστή µιας κάρτας, χρειάζεται να απορροφήσει όλες τις υπολογιστικές ικανότητες του, µε αποτέλεσµα να τον επιβαρύνει σηµαντικά. Ακόµα η εκτέλεση των διαδικασιών κρυπτογράφησης ή αποκρυπτογράφησης µπορεί να είναι εξαιρετικά χρονοβόρα, διαρκώντας από αρκετά δευτερόλεπτα ως και µερικά λεπτά. ∆εδοµένου ότι αυτές οι καθυστερήσεις δεν είναι αποδεκτές ειδικά σε συναλλαγές που πρέπει να γίνονται σε πολύ µικρό χρονικό διάστηµα, απαιτούνται εναλλακτικές ή επιπρόσθετες λύσεις στο υλικό των έξυπνων καρτών. Μια πολύ καλή και αποδεκτή λύση είναι η προσθήκη στο τσιπ της κάρτας ενός δεύτερου επεξεργαστή (συνεπεξεργαστής) που είναι ικανός να πραγµατοποιεί γρήγορα συγκεκριµένες αριθµητικές πράξεις µε ακέραιους, όπως πολύπλοκους πολλαπλασιασµούς κ.τ.λ. Αυτό επιταχύνει πολύ τη διαδικασία κρυπτογράφησης δηµόσιου κλειδιού. Εντούτοις, έχει επιπτώσεις στο συνολικό µέγεθος (µεγαλώνει ελάχιστα) και στο κόστος (αυξάνεται σηµαντικά) του τσιπ.

2.1.3 Χαρακτηριστικά Ασφάλειας

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

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 28 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

παράγραφο των ολοκληρωµένων ηλεκτρονικών κυκλωµάτων. Αυτή η ασφάλεια ενισχύεται περισσότερο µε την τυχαία προσπέλαση των κελιών µνήµης από τον επεξεργαστή. ∆ηλαδή οι γραµµές διευθύνσεων για τα διάφορα κελιά µνήµης δεν ανήκουν σε µια γραµµική ακολουθία, αλλά αλλάζουν από ένα κελί στο άλλο µέσω ενός σύνθετου αλγορίθµου. Το τελικό αποτέλεσµα είναι ότι ένας εξωτερικός παρατηρητής είναι δύσκολο να διακρίνει οποιεσδήποτε πληροφορίες για το που αποθηκεύεται ένα δεδοµένο ή το πώς αυτό χρησιµοποιείται.

∆εδοµένου ότι η χρήση των έξυπνων καρτών έχει αυξηθεί, ο αριθµός προσπαθειών να παρακαµφθούν τα χαρακτηριστικά ασφάλειας των έξυπνων καρτών έχει αυξηθεί. Έχουν εντοπιστεί διάφορες τεχνικές για να αντληθούν πληροφορίες από µια κάρτα. Οι περισσότερες από αυτές στηρίζονται στο χειρισµό του ηλεκτρικού ρεύµατος που παρέχεται σε µια κάρτα. Στον αντίποδα όµως έχουν αναπτυχθεί και προστασίες κατά αυτών των τεχνικών. Μερικά τσιπ έχουν επιπρόσθετους αισθητήρες που ελέγχουν τα χαρακτηριστικά του ηλεκτρικού ρεύµατος που παρέχεται στο τσιπ. Οι αισθητήρες αυτοί επικοινωνούν µε προγράµµατα µέσα στο τσιπ, τα οποία µπορεί να κλειδώσουν την κάρτα αν αντιληφθούν ότι αυτή δέχεται επίθεση. Σε ακραίες περιστάσεις, η κάρτα µπορεί να φτάσει µέχρι και στο να καταστρέψει ευαίσθητες πληροφορίες προκειµένου να αποτρέψει εξαγωγή τους από κάποιον επιτιθέµενο.

2.2 Η ∆ιαδικασία Κατασκευής

Η κατασκευή των έξυπνων καρτών περιλαµβάνει διάφορα ευδιάκριτα βήµατα:

1. Κατασκευή του τσιπ, ή πολλών τσιπ υπό µορφή δίσκων πυριτίου. Το βασικό υλικό για την παραγωγή τσιπ είναι άµµος χαλαζία. Αυτή υπόκειται σε διαδικασία επεξεργασίας, ώστε να διαχωριστεί πρώτα από όλα το πυρίτιο. Έπειτα ακολουθεί ο σχηµατισµός πολυκρυστάλλων πυριτίου υψηλής καθαρότητας και τέλος το επονοµαζόµενο wafer πυριτίου. Το wafer είναι η βάση για την κατασκευή ενός chip. Στην αλληλουχία επεξεργασιών µεγάλης πολυπλοκότητας και συνθετότητας, είναι εφικτή η δηµιουργία ενός µεγάλου αριθµού ταυτόσηµων ηλεκτρονικών κυκλωµάτων πάνω στο wafer, του οποίου το πλάτος είναι λίγα εκατοστά. Η επιφάνεια ενός chip µπορεί να φτάσει τα 25 τετραγωνικά χιλιοστά και µπορεί να περιέχει εκατοµµύρια ηλεκτρονικά στοιχεία (τρανζίστορ). (Εικόνα 3).

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 29 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 3 Κατασκευή τσιπ

2. Συσκευασία των µεµονωµένων τσιπ για την εισαγωγή τους σε µια κάρτα. Για να µπορεί ένα chip να συνδεθεί µε άλλες ηλεκτρονικές συσκευές, πρέπει πρώτα να συνδεθεί µε µια επιφάνεια επαφής. Ένα τέτοιο στοιχείο καλείται chip module. Αυτό σηµαίνει ότι το chip module είναι προ-προϊόν, το οποίο έχει άµεση εφαρµογή στη παραγωγική διαδικασία της έξυπνης κάρτας. Τα modules σήµερα, έχουν φυσιολογικά από έξι µέχρι οκτώ επιφάνειες επαφής. Η επιλογή του module εξαρτάται από τις διαστάσεις του χρησιµοποιούµενου chip. Τα modules διαχωρίζονται αναλόγως µε τη µορφή τους (TAB module, chip-on-flex module, lead frame, chip-on-surface) και µε τη µέθοδο µετάδοσης δεδοµένων (chip module επαφής, χωρίς επαφή, διπλού interface).

Για να προστατευτούν οι µήτρες (dies) από εξωτερικές περιβαλλοντικές επιδράσεις και για να παρέχουµε τις ηλεκτρονικές επαφές στην άνω επιφάνεια, µε σκοπό τη δηµιουργία ηλεκτρικών επαφών µε άλλες συσκευές, οι µήτρες εντίθενται σε modules. Συνήθως αυτό περιλαµβάνει την τοποθέτηση δύο modules, το ένα δίπλα στο άλλο, σε πλαστική ταινία µε διάτρητα περιθώρια. Αυτά τοποθετούνται σε µποµπίνα ιµάντα µε διάµετρο 35 mm. Σε µια τέτοια µποµπίνα µπορούν να τοποθετηθούν από 10.000 µέχρι 20.000 modules. Μαζί µε το υλικό του φορέα πυριτίου, οι µήτρες προσκολλώνται στο module µε τη χρήση µιας κολλητικής ουσίας.

Στο επόµενο στάδιο παραγωγής, τη φάση δέσµευσης (bonding phase), γίνεται η ηλεκτρική σύνδεση της µήτρας µε τις αντίστοιχες επιφάνειες επαφής στην κάτω επιφάνεια του module. Η ηλεκτρική σύνδεση εγκαθίσταται µέσω ενός εξαιρετικά λεπτού χρυσού καλωδίου, το οποίο συγκολλείται στις επαφές αλουµινίου της µήτρας και στις αντίστοιχες επαφές του module. Στη συνέχεια, η πίσω πλευρά του module και της τοποθετηµένης µήτρας σφραγίζονται µε εποξική ρητίνη. Το τελευταίο αυτό βήµα είναι µία ασφάλεια, για να

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 30 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

προστατευτεί ο ευαίσθητος κρύσταλλος από το περιβάλλον και το φως (Εικόνα 4). Πριν τα modules συσκευαστούν και διανεµηθούν, γίνεται ο απαραίτητος έλεγχός τους.

Εικόνα 4 Στοιχεία Ενός module Έξυπνης Κάρτας

3. Κατασκευή της κάρτας. Η ίδια η κάρτα κατασκευάζεται από το πολυβινυλικό χλωρίδιο ή από παρόµοιο υλικό. Και τα χηµικά χαρακτηριστικά και οι διαστάσεις της κάρτας και οι σχετικές ανοχές της ρυθµίζονται αυστηρά από διεθνή πρότυπα. Το υλικό των καρτών παράγεται από ένα µεγάλο, επίπεδο φύλλο ορισµένου πάχους. Για πολλούς τύπους καρτών µαζικής παραγωγής, αυτά τα φύλλα είναι τυπωµένα. Οι κάρτες στη συνεχεία αποκόπτονται από αυτό το επίπεδο φύλλο και οι γωνίες κάθε κάρτας στρογγυλοποιούνται.

4. Εισαγωγή του τσιπ στην κάρτα. Μόλις προετοιµαστούν το module και η κάρτα, ενώνονται µέσω µιας λειτουργίας εισαγωγής. Γίνεται µια τρύπα στην κάρτα, και το module συγκολλείται µέσα σ’ αυτήν. Αυτή η τρύπα δηµιουργείται συνήθως είτε µέσω µιας λειτουργίας κοψίµατος είτε µε την τήξη του υλικού και την ώθηση του module µέσα σε αυτήν (Εικόνα 5).

Εικόνα 5 Εισαγωγή του module στην κάρτα

5. Προ-εξατοµίκευση. Μόλις εισέλθει το module στην κάρτα, οι περισσότερες εφαρµογές έξυπνων καρτών απαιτούν ότι ορισµένα προγράµµατα ή δεδοµένα πρέπει να εγκαταστηθούν σε κάθε τσιπ

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 31 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

(κάρτα) προτού να µπορέσει η κάρτα να προσωποποιηθεί και να δοθεί σε έναν συγκεκριµένο κάτοχο. Αυτή η γενική προετοιµασία του λογισµικού ή των αρχείων στην κάρτα γίνεται µέσω µιας λειτουργίας που αποκαλείται προ-εξατοµίκευση, η οποία επιτυγχάνεται µέσω των συνδετήρων I/O στην επιφάνεια της κάρτας και ως εκ τούτου γίνεται µε την ταχύτητα που υποστηρίζουν αυτοί.

6. Εξατοµίκευση. Η διαδικασία εξατοµίκευσης περιλαµβάνει την τοποθέτηση πληροφοριών όπως ονόµατα και οι αριθµοί λογαριασµών στο τσιπ της κάρτα. Αυτό επίσης συνήθως συνεπάγεται και στη δηµιουργία ενός προσωπικού αριθµού αναγνώρισης (PIN) στην κάρτα, τον οποίο µπορεί να χρησιµοποιήσει έπειτα ο κάτοχος της κάρτας για να επιβεβαιώσει την ταυτότητά του. Η διαδικασία εξατοµίκευσης περιλαµβάνει συνήθως και το φυσικό σχεδιασµό της κάρτας. ∆ηλαδή τις φωτογραφίες, τα ονόµατα, και τις διάφορες άλλες πληροφορίες που είναι συχνά τυπωµένα στην κάρτα. Επιπλέον, κάποιες πληροφορίες, όπως οι αριθµοί λογαριασµού, µπορούν να αποτυπωθούν µε ανάγλυφο τρόπο στην κάρτα για να επιτρέψουν τη φυσική µεταφορά αυτών των πληροφοριών επάνω σε άλλα µέσα (παραδείγµατος χάριν, στην εκτύπωση µιας απόδειξης σε µια συναλλαγή µε πιστωτική κάρτα).

7. Εκτύπωση της κάρτας. Η εκτύπωση των γραφικών και των κειµένων πάνω σε µια έξυπνη κάρτα είναι ένα εξαιρετικά σηµαντικό χαρακτηριστικό. Η εµφάνιση της κάρτας απεικονίζει αισθητικά και οικονοµικά τον εκδότη της κάρτας. Ανάλογα µε τη χρήση της κάρτας τοποθετούνται πάνω σε αυτήν και τα κατάλληλα στοιχεία, όπως το λογότυπο µιας εταιρείας, διαφηµίσεις (π.χ. τηλεκάρτες), η φωτογραφία του κατόχου κ.τ.λ. Όλα αυτά που προσδίδουν την τελική µορφή της κάρτας πρέπει να τηρούν τις προδιαγραφές ISO που θα αναφερθούν παρακάτω.

8. Αρχικοποίηση του προγράµµατος και προγραµµατισµός των δεδοµένων στο τσιπ της κάρτας.

Τα παραπάνω βήµατα για την κατασκευή µιας κάρτας φαίνονται περιληπτικά και στο παρακάτω σχήµα (Εικόνα 6).

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 32 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 6 Βήµατα κατασκευής κάρτας

2.3 Ανάπτυξη Λογισµικού Εφαρµογών Για Έξυπνες Κάρτες

Οι εφαρµογές που χρησιµοποιούνται για τις έξυπνες κάρτες περιλαµβάνουν συνήθως τα λογισµικά που τρέχουν σε έναν δευτερεύοντα υπολογιστή (αναγνώστης) (Η/Υ ή τερµατικό), στην ίδια την έξυπνη κάρτα, και ίσως και σε άλλους υπολογιστές που συνδέονται µεταξύ τους µέσω ενός δικτύου. Η ανάπτυξη τέτοιων εφαρµογών απαιτεί ιδιαίτερη προσοχή έτσι ώστε να εκµεταλλεύονται πλήρως τις δυνατότητες της κάρτας. Μερικά από τα βασικά βήµατα για την ανάπτυξη προγραµµάτων ειδικά για κάρτες περιγράφονται στα παρακάτω τµήµατα.

2.3.1 Ανάπτυξη Μασκών (Masks)

Τα προγράµµατα που αποθηκεύονται στο τσιπ µιας έξυπνης κάρτας αναφέρονται συχνά ως µάσκες (masks). Ο όρος προέρχεται από το γεγονός ότι το λογισµικό αυτό συγχωνεύεται µέσω µιας δυαδικής πατέντας και στη συνέχεια καλύπτεται από τα τµήµατα πυριτίου του τσιπ κατά τη δηµιουργία της κάρτας. Εάν το πρόγραµµα πρόκειται να αποθηκευτεί στη ROM της κάρτας κατά τη κατασκευή της, τότε αναφέρεται ως σκληρή µάσκα (hard mask).

Σε ένα τσιπ, το λογισµικό µπορεί επίσης να αποθηκευτεί και να εκτελεσθεί µέσα στη EEPROM. Σε αυτήν την περίπτωση, το

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 33 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

λογισµικό µπορεί να γραφτεί στο τσιπ ακόµα και αφού έχει ολοκληρωθεί η διαδικασία κατασκευής της κάρτας. Αυτός ο τύπος λογισµικού αναφέρεται συχνά ως µαλακή µάσκα (soft mask) ή πιο συνηθισµένα ως firmware.

2.3.2 Ανάπτυξη Κώδικα

Η διαθέσιµη µνήµη σε ένα τσιπ έξυπνων καρτών (για την αποθήκευση προγραµµάτων) είναι αρκετά µικρή, όπως έχει προαναφερθεί. Τουλάχιστον σε σχέση µε τις κοινές πλατφόρµες Η/Υ. Για αυτό το λόγο πρέπει πρωτίστως κατά το γράψιµο του κώδικα ενός προγράµµατος για έξυπνες κάρτες να χρησιµοποιείται όσο το δυνατόν λιγότερη µνήµη. Συνήθως για κάθε ξεχωριστή εφαρµογή της κάρτας υπάρχει και το αντίστοιχο πρόγραµµα που την εκτελεί και είναι υπεύθυνο για τις λειτουργίες της. Τα τελευταία χρόνια όµως εµφανίστηκαν λειτουργικά συστήµατα που περιέχουν µαζεµένες όλες τις ρουτίνες για την εκτέλεση των περισσότερων εφαρµογών µιας κάρτας.

2.3.3 Προσοµοιωτές Chip

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

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

2.3.4 Εξοµοιωτές Chip

Για να βελτιώσουν το εξεταστικό περιβάλλον, χωρίς να απαιτείται ολοκληρωτική κατασκευή τσιπ, οι περισσότεροι κατασκευαστές τσιπ παρέχουν εξοµοιωτές υλικού για τα τσιπ τους. Με έναν εξοµοιωτή, παρέχεται µια παραλλαγή της µνήµης ενός τσιπ που µπορεί να προσεγγιστεί τόσο από έναν υπολογιστή που χρησιµοποιείται για το περιβάλλον ανάπτυξης λογισµικού, όσο και από τον επεξεργαστή ενός τσιπ που τοποθετείται σε µια έξυπνη

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 34 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

κάρτα. Αυτός ο εξοµοιωτής επιτρέπει στον υπεύθυνο για την ανάπτυξη λογισµικού να γράψει τον κώδικα και να τον φορτώσει σε αυτήν την κοινόχρηστη µνήµη. Ο κώδικας που φορτώνεται έτσι µπορεί έπειτα να εκτελεσθεί από τον επεξεργαστή στον εξοµοιωτή. Κατ' αυτό τον τρόπο, ο κώδικας οργανώνεται σε ένα περιβάλλον παρόµοιο µε την τελική κάρτα και ο συγχρονισµός των διαδικασιών µοιάζει αρκετά µε αυτόν που θα συµβεί κατά τη χρήση της τελικής κάρτας.

2.3.5 Αναλυτές Πρωτοκόλλων

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

2.3.6 Συσκευές Αλληλεπίδρασης (Αναγνώστες)

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

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 35 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

3 Βασικά Πρότυπα Για Τις Έξυπνες Κάρτες

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

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

Έτσι ξεκίνησε η δηµιουργία κάποιων συγκεκριµένων προδιαγραφών που θα έπρεπε να τηρούν τόσο οι κάρτες των διάφορων κατασκευαστών όσο και ο εξοπλισµός που τις συνοδεύει. Ο αρµόδιος οργανισµός για την καθιέρωση τέτοιων προτύπων είναι ο οργανισµός διεθνών προτύπων (International Standards Organization), παγκόσµια γνωστός ως ISO. Σε µερικούς τοµείς τεχνικής δραστηριότητας, η ∆ιεθνής Ηλεκτροτεχνική Επιτροπή (International Electrotechnical Commission - IEC) συνεργάστηκε µε τον ISO στην ανάπτυξη ορισµένων προτύπων. Οµοίως, στις Ηνωµένες Πολιτείες, το Αµερικανικό Εθνικό Ίδρυµα Προτύπων (Ansi) λειτουργεί ως βασικός ρυθµιστής των διάφορων προδιαγραφών. Παρακάτω θα παρουσιαστούν ορισµένα πρότυπα ISO και ορισµένα που είναι συνδυασµοί ISO/IEC/ANSI.

3.1 Πρότυπα ISO, IEC, ANSI

Τα πρότυπα ISO/IEC (και σε µερικές περιπτώσεις, Ansi) έχουν καθιερωθεί για να περιγράψουν πλήρως τις πλαστικές κάρτες αναγνώρισης. Τα διάφορα πρότυπα έχουν εξελιχθεί µε το πέρασµα του χρόνου και βρίσκονται σε ποικίλες ταξινοµήσεις ISO/IEC/ANSI. Μερικά από αυτά παρατίθενται στο Πίνακα 6.

Πίνακας 6 Πρότυπα ISO έξυπνων καρτών

Πρότυπο ISO/IEC Τίτλος

ISO/IEC 7810—1995-08-15 Κάρτες Αναγνώρισης - Φυσικά Χαρακτηριστικά

ANSI/ISO/IEC 7811-1—1995: Μέρος 1

Κάρτες Αναγνώρισης – Τεχνική Καταγραφής Με Ανάγλυφη Σφραγίδα

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 36 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ANSI/ISO/IEC 7811-2—1995: Μέρος 2

Κάρτες Αναγνώρισης – Τεχνική Καταγραφής Με Μαγνητική Ταινία

ANSI/ISO/IEC 7811-3—1995: Μέρος 3

Κάρτες Αναγνώρισης – Τεχνική Καταγραφής Με Θέση Ανάγλυφων Χαρακτήρων Στις Κάρτες ID-1

ANSI/ISO/IEC 7811-4—1995: Μέρος 4

Κάρτες Αναγνώρισης - Τεχνική Καταγραφής Με Θέση Των Μαγνητικών Κοµµατιών Μόνο-Ανάγνωσης – Κοµµάτια 1 & 2

ANSI/ISO/IEC 7811-5—1995: Μέρος 5

Κάρτες Αναγνώρισης - Τεχνική Εγγραφής Με Θέση Των Μαγνητικών Κοµµατιών Εγγραφής -Ανάγνωσης – Κοµµάτι 3

ANSI/ISO/IEC 7812-1—1993 Κάρτες Αναγνώρισης – Πιστοποίηση Συµµετεχόντων Μέρος 1 : Σύστηµα Καταµέτρησης

ANSI/ISO/IEC 7813—1995 Κάρτες Αναγνώρισης – Κάρτες Οικονοµικών Συναλλαγών

ISO 7816-1 Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές – Φυσικά Χαρακτηριστικά

ISO 7816-2 Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές – ∆ιαστάσεις & Θέση Των Επαφών

ISO 7816-3 Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές – Ηλεκτρικά Σήµατα & Πρωτόκολλα Επικοινωνίας

ISO 7816-3 Τροποποίηση 1 Πρωτόκολλο T=1, Aσύγχρονο Ηµιαµφίδροµο Πρωτόκολλο Μετάδοσης Block

ISO 7816-3 Τροποποίηση 2 Αναθεώρηση Επιλογής Τύπου Πρωτοκόλλου

ISO 7816-4 Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές – ∆ιαβιοµηχανικές Εντολές Για Ανταλλαγές

ISO 7816-5 Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές – Σύστηµα Καταµέτρησης & Συναρτήσεις Καταχωρήσεων Για Αναγνωριστές Εφαρµογών

ISO 7816-6 Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές – ∆ιαβιοµηχανικά Στοιχεία ∆εδοµένων

ISO 1177—1985 ∆ιαδικασία Πληροφόρησης – ∆οµή Χαρακτήρων Για Μεταδόσεις Start/Stop & Synchronous Character-Oriented

3.2 Προδιαγραφές Των Έξυπνων Καρτών - ISO 7816

Το ISO 7816 (Κάρτες Αναγνώρισης – Ολοκληρωµένα Ηλεκτρονικά Κυκλώµατα Καρτών Με Επαφές) αποτέλεσε το θεµέλιο για το πέρασµα από τις απλές κάρτες αναγνώρισης στις σύγχρονες έξυπνες κάρτες, δηλαδή στις κάρτες µε «ευφυή» ολοκληρωµένα κυκλώµατα (integrated circuit card - ICC). Είναι ένα πρότυπο µε πολλά µέρη µέσω των οποίων η έξυπνη κάρτα διευκρινίζεται µε ικανοποιητικές λεπτοµέρειες ώστε να µπορεί να επιτευχθεί η επιθυµητή διαλειτουργικότητα. Τα βασικά µέρη του ISO 7816 είναι τα παρακάτω:

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 37 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

• Μέρος 1 : Φυσικά Χαρακτηριστικά • Μέρος 2 : ∆ιαστάσεις & Θέση Των Επαφών • Μέρος 3 : Ηλεκτρικά Σήµατα & Πρωτόκολλα

Επικοινωνίας • Μέρος 3 Τροποποίηση 2 : Αναθεώρηση Επιλογής

Τύπου Πρωτοκόλλου • Μέρος 4 : ∆ιαβιοµηχανικές Εντολές Για Ανταλλαγές • Μέρος 5 : Σύστηµα Καταµέτρησης & Συναρτήσεις

Καταχωρήσεων Για Αναγνωριστές Εφαρµογών

3.2.1 ISO 7816-1

Το ISO 7816-1 επεκτείνει τα φυσικά χαρακτηριστικά των απλούστερων ID-1 καρτών προσθέτοντας ένα πιο σύνθετο περιβάλλον που υποστηρίζει ένα τσιπ ολοκληρωµένων κυκλωµάτων µέσα στην κάρτα. Αυτό βέβαια έχει το αποτέλεσµα να επηρεάζεται η κάρτα από κάποια ηλεκτροµαγνητικά φαινόµενα όπως ακτίνες Χ, υπεριώδες φως, ηλεκτροµαγνητικά πεδία, στατικά ηλεκτρικά πεδία, και περιβαλλοντική θερµοκρασία της κάρτας (µε το ενσωµατωµένο τσιπ). Τα φαινόµενα αυτά µαζί µε το όριο έκθεσης τους στην κάρτα φαίνονται στον Πίνακα 7.

Πίνακας 7 Όρια έκθεσης για φυσικά φαινόµενα

Φαινόµενο Όριο Υπεριώδες Φως Περιβαλλοντικό (Εξαρτάται από τον

προµηθευτή καρτών) Ακτίνες Χ Το 2πλασιο από αυτό που να αποδεχθεί

ο ανθρώπινος οργανισµός Ηλεκτροµαγνητική Αλληλεπίδραση Καµία παρεµβολή Ηλεκτροµαγνητικά Πεδία Λιγότερο από 1000 Oe Στατικός Ηλεκτρισµός Εκφόρτιση 1500 Volt µέσω αντίστασης

1,5 Κohm και πυκνωτή 100 pF Απώλεια Ρεύµατος Λόγω Θερµοκρασίας Λιγότερο από 2,5 Watt (Θερµοκρασία

κάρτας < 50 °C)

Η προδιαγραφή ενδιαφέρεται επίσης για τον καθορισµό των χαρακτηριστικών της κάρτας όταν κάµπτεται ή όταν λυγίζεται. Σκοπός είναι να καθοριστούν τα όρια εκείνα έτσι ώστε όταν µια κάρτα υπόκειται σε παραµορφώσεις να µην χαλάει το τσιπ της. ∆ύο τεστ λυγίσµατος και ευκαµπτότητας φαίνονται παρακάτω.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 38 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 7 Τεστ Λυγίσµατος

Εικόνα 8 Τεστ Ευκαµπτότητας

3.2.2 ISO 7816-2

Οι µηχανικές ανοχές που απαιτούνται από τις έξυπνες κάρτες είναι σχετικά αυστηρές προκειµένου να εξασφαλιστεί ότι οι κάρτες µπορούν να ευθυγραµµιστούν κατάλληλα έτσι ώστε τα σηµεία επαφής τους να συµπέσουν µε τα σηµεία επαφής του αναγνώστη. Γενικά, οι επαφές των καρτών δεν µπορούν να ξεπερνάν το όριο των 0,1 mm πάνω στην επιφάνεια της κάρτας. Η κάρτα πρέπει να είναι αρκετά συµπαγής για να αντιστέκεται σε τυχόν µόνιµη παραµόρφωση όταν κάµπτεται. Τέλος, η ηλεκτρική αντίσταση των επαφών πρέπει να εµπίπτει στα αποδεκτά όρια που καθιερώνονται από το ISO 7816-1.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 39 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Το ISO 7816-2 διευκρινίζει µία κάρτα µε ολοκληρωµένα κυκλώµατα (ICC) µε οκτώ παρούσες ηλεκτρικές επαφές σε µια τυποποιηµένη θέση στο µπροστινό µέρος της κάρτας. Αυτές αναφέρονται ως C1 µέχρι C8. Οι περισσότερες από αυτές τις επαφές συνδέονται ηλεκτρικά µε το τσιπ µικροεπεξεργαστών που ενσωµατώνεται µέσα στην κάρτα. Οι συγκεκριµένοι ορισµοί για τις επαφές παρουσιάζονται στον Πίνακα 8.

Πίνακας 8 Προσδιορισµοί των επαφών της κάρτας

Επαφή Προσδιορισµός Χρήση C1 VCC Σύνδεση ρεύµατος µέσω της οποίας παρέχεται

ρεύµα για λειτουργία στον επεξεργαστή της κάρτας

C2 RST Γραµµή επανεκκίνησης µέσω της οποίας το IFD στέλνει σήµα στον µικροεπεξεργαστή της κάρτας να κάνει επανεκκίνηση των δεδοµένων του

C3 CLK Γραµµή χρονισµού µέσω της οποίας παρέχεται ένα σήµα χρονισµού στον µικροεπεξεργαστή της κάρτας για να ελέγχει την ταχύτητα του και για παρέχει ένα σωστό περιβάλλον επικοινωνίας µεταξύ της κάρτας και του αναγνώστη

C4 RFU Εφεδρική για χρήση στο µέλλον C5 GND Γραµµή γείωσης που παρέχει την απαιτούµενη

ηλεκτρική γείωση µεταξύ της κάρτας και του αναγνώστη

C6 VPP Σύνδεση ρεύµατος µέσω της οποίας παρέχεται ένα ξεχωριστό ρεύµα που χρησιµοποιείται για τον προγραµµατισµό της NVM.

C7 I/O Γραµµή εισόδου-εξόδου που παρέχει ένα ηµιαµφίδροµο κανάλι επικοινωνίας µεταξύ της κάρτας και του αναγνώστη

C8 RFU Εφεδρική για χρήση στο µέλλον

Η θέση των επαφών φαίνεται στην Εικόνα 9. Οι επαφές σχεδόν πάντα βρίσκονται στο µπροστινό µέρος της κάρτας, η οποία είναι η πλευρά της κάρτας µε τα βασικά γραφικά και σπάνια από την πλευρά µε την µαγνητική λωρίδα (αν υπάρχει φυσικά). Βέβαια υπάρχει και η περίπτωση οι επαφές να είναι στη ίδια πλευρά µε την µαγνητική ταινία αρκεί να µην παρεµβάλλονται σε αυτήν.

Συµπερασµατικά το ISO 7816-2 περιγράφει τα παρακάτω :

• ∆ιαστάσεις των επαφών (2mm - 1.7 mm) • Θέση των επαφών • Θέση των ανάγλυφων µέρων • Θέση της µαγνητικής γραµµής • ∆ιευθέτηση του τσιπ

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 40 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 9 Θέση, µέγεθος και σχήµα των επαφών της κάρτας

3.2.3 ISO 7816-3

Το ISO 7816-3 ερευνά τις «ευφυείς» πτυχές της έξυπνης κάρτας και είναι ίσως το σηµαντικότερο πρότυπο από όλα. Το πρότυπο αυτό περιγράφει τη σχέση µεταξύ της έξυπνης κάρτας και του αναγνώστη, όπως προαναφέρθηκε, σαν σχέση slave (η έξυπνη κάρτα) και master (ο αναγνώστης). Η επικοινωνία ξεκινάει από τον αναγνώστη που στέλνει σήµα στην έξυπνη κάρτα µέσω των επαφών που αναφέρθηκαν προηγουµένως και συνεχίζεται από την έξυπνη κάρτα που αποκρίνεται. Η επικοινωνία µεταξύ της κάρτας και του αναγνώστη προχωρά µε διάφορες µεταβατικές καταστάσεις που φαίνονται στην Εικόνα 10. Επίσης µόλις στείλει ο αναγνώστης µια εντολή στην έξυπνη κάρτα, µπλοκάρει το κανάλι έως ότου πάρει µια απάντηση.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 41 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 10 Γενικό διάγραµµα καταστάσεων της κάρτας και του αναγνώστη

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

Όταν ο αναγνώστης ανιχνεύσει ότι η κάρτα έχει εισέλθει κατάλληλα, τότε εφαρµόζεται ρεύµα στην κάρτα. Κατ' αρχάς, οι επαφές έρχονται σε µία συµφασική αδρανή κατάσταση, όπως φαίνεται στον Πίνακα 9. Ένα σήµα αναστοιχειοθέτησης στέλνεται έπειτα στην κάρτα µέσω της γραµµής επαφών RST. Η αδρανή κατάσταση χαρακτηρίζεται όταν στην επαφή ρεύµατος δίνεται ένα σταθερό ηλεκτρικό σήµα των 5 Volt. Πάντα πρώτα εφαρµόζεται ένα καθορισµένο ρεύµα των 5 Volt, ακόµα κι αν µερικά τσιπ µικροεπεξεργαστών λειτουργούν σε 3 Volt όταν είναι σε κατάσταση I/O. Η επαφή I/O τίθεται σε κατάσταση αναµονής και εφαρµόζεται ένα σταθερό ρολόι (CLK). Η γραµµή αναστοιχειοθέτησης είναι σε χαµηλή κατάσταση (low state). Πρέπει να παραµείνει σε χαµηλή κατάσταση για τουλάχιστον 40.000 κύκλους ρολογιού CLK προτού να µπορέσει να αρχίσει µια έγκυρη ακολουθία αναστοιχειοθέτησης από τον αναγνώστη, αυξάνοντας τη γραµµή αναστοιχειοθέτησης σε υψηλή κατάσταση.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 42 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Πίνακας 9 Καταστάσεις επαφών κατά τη διάρκεια reset της κάρτας

Επαφή Κατάσταση VCC Φορτισµένη και σταθερή VPP Σταθερή σε αδρανή κατάσταση RST Χαµηλή κατάσταση CLK Εφαρµόζεται σταθερό και κατάλληλο

σήµα χρονισµού I/O Κατάσταση αναµονής

Όπως φαίνεται στην Εικόνα 11, η τροφοδοσία της κάρτας γίνεται µέσω µιας πολύ καλά δοµηµένης ακολουθίας. Μόλις εφαρµοστεί ικανοποιητικό ρεύµα στην κάρτα, η γραµµή RST αυξάνεται σε υψηλή κατάσταση και δίνει σήµα στην κάρτα να αρχίσει η ακολουθία αρχικοποίησης της. Οι συγκεκριµένες διαδικασίες έναρξης µπορούν να ποικίλουν από κάρτα σε κάρτα, αλλά ο σκοπός δεν αλλάζει. Πρέπει δηλαδή να δηµιουργηθεί ένα σήµα εκκίνησης από τον αναγνώστη στην κάρτα και στη συνέχεια η κάρτα να απαντήσει. Γενικά, το πρώτο byte της ακολουθίας πρέπει να παραληφθεί από τον αναγνώστη µέσα σε 40.000 χρονικές περιόδους χρονισµού. Μετά από αυτό, κάθε διαδοχικό byte πρέπει να παραλαµβάνεται από τον αναγνώστη µε ταχύτητα τουλάχιστον 1 byte το δευτερόλεπτο.

Εικόνα 11 Η ακολουθία αναστοιχειοθέτησης από τον αναγνώστη

Η µεταφορά δεδοµένων µεταξύ του αναγνώστη και της κάρτας γίνεται µέσω των συντονισµένων ενεργειών των επαφών CLK (ρολόι) και I/O (είσοδος-έξοδος). Η I/O µεταβιβάζει ένα ενιαίο bit πληροφοριών ανά τη µονάδα του χρόνου που καθορίζει το CLK και

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 43 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

εξαρτάται από την τάση που σχετίζεται µε τη GND (γείωση). Ένα bit µπορεί να µεταβιβαστεί είτε µέσω +5 Volt είτε µέσω 0 Volt. Αυτό καθορίζεται από το πρώτο bit που στέλνει η κάθε κάρτα και ονοµάζεται TS. Για να µεταφερθεί 1 byte δεδοµένων, απαιτούνται στην πραγµατικότητα 10 bit.

Η γραµµή εισόδου-εξόδου (ΕΙΣ/ΕΞ) περιλαµβάνει ένα ηµιαµφίδροµο κανάλι. ∆ηλαδή είτε η κάρτα είτε ο αναγνώστης µπορούν να διαβιβάσουν πληροφορίες στο ίδιο κανάλι, αλλά όχι και οι δυο ταυτόχρονα. Έτσι από τη σκοπιά της τροφοδοσίας τόσο η κάρτα όσο και ο αναγνώστης µπαίνουν σε κατάσταση αναµονής και περιµένουν κάποια απόκριση από τη γραµµή ΕΙΣ/ΕΞ. Με την έναρξη της λειτουργίας αναστοιχειοθέτησης, ο αναγνώστης παραµένει σε κατάσταση αναµονής ενώ η κάρτα πρέπει να µπει σε κατάσταση αποστολής προκείµενου να στείλει το ATR πίσω στον αναγνώστη. Από αυτό το σηµείο και µετά, οι δύο άκρες της εναλλαγής καναλιών µεταπηδούν αντίστοιχα από καταστάσεις λήψης και αποστολής.

Το CLK και οι γραµµές ΕΙΣ/ΕΞ µπορούν να υποστηρίξουν µια ευρεία ποικιλία ταχυτήτων µετάδοσης δεδοµένων. Η συγκεκριµένη ταχύτητα καθορίζεται από την κάρτα και µεταβιβάζεται πίσω στον αναγνώστη µέσω ενός προαιρετικού χαρακτήρα στο ATR. Η ταχύτητα µετάδοσης τίθεται µέσω του καθιερωµένου «ένα bit τη φορά» στην γραµµή ΕΙΣ/ΕΞ, το οποίο σηµαίνει ότι καθιερώνεται ένα διάστηµα στο οποίο η γραµµή ΕΙΣ/ΕΞ µπορεί να επιλεχτεί προκειµένου να διαβάσει κάθε bit. Αυτή η περίοδος ορίζεται ως στοιχειώδης χρονική µονάδα (etu) και καθιερώνεται µέσω µιας γραµµικής σχέσης µεταξύ διάφορων παραγόντων. Σηµειώστε ότι ο χαρακτήρας TS επιστράφηκε προτού να µπορέσει να γίνει οποιοσδήποτε καθορισµός του etu. Αυτό είναι δυνατό επειδή το etu κατά τη διάρκεια της ακολουθίας ATR διευκρινίζεται πάντα να είναι

etu0= 372/(συχνότητα CLK)

όπου η συχνότητα CLK είναι πάντα µεταξύ 1 MHz και 5 MHz. Στην πραγµατικότητα, η συχνότητα σχεδόν πάντα επιλέγεται έτσι ώστε η αρχική ταχύτητα µεταφοράς δεδοµένων να είναι 9.600 bit ανά δευτερόλεπτο.

Μόλις σταλεί ένα σήµα RST από τον αναγνώστη στην κάρτα, η κάρτα πρέπει να αποκριθεί µε τον πρώτο χαρακτήρα του ATR µέσα σε 40.000 κύκλους CLK. Η κάρτα µπορεί να µην αποκριθεί σε ένα ATR για διάφορους λόγους. Ο πιο πιθανός είναι η κάρτα να έχει εισέλθει λάθος στον αναγνώστη (πιθανώς ανάποδα). Σε άλλες περιπτώσεις, µπορεί η κάρτα να έχει υποστεί σοβαρές ζηµιές ή να την έχουν σπάσει. Σε οποιαδήποτε περίπτωση, εάν το ATR δεν επιστραφεί µέσα στον ορισµένο χρόνο, ο αναγνώστης πρέπει να αρχίσει µια ακολουθία αποδυνάµωσης της κάρτας. Κατά τη διάρκεια αυτής της ακολουθίας,

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 44 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ο αναγνώστης θέτει στο RST, στο CLK, και στις γραµµές ΕΙΣ/ΕΞ χαµηλές τάσεις και στη γραµµή VCC σε 0 (δηλαδή λιγότερο από 0,4 Volt).

3.2.4 ATR (Λειτουργία Απάντησης Σε Αναστοιχειοθέτηση)

Το ATR είναι µια σειρά χαρακτήρων που επιστρέφεται από την κάρτα στον αναγνώστη µετά από την επιτυχή ολοκλήρωση τροφοδοσίας της κάρτας. Όπως καθορίζεται στον ISO/IEC 7816-3, το ATR αποτελείται από 33 ή λιγότερους χαρακτήρες περιλαµβάνοντας τα ακόλουθα στοιχεία:

• TS - Υποχρεωτικός αρχικός χαρακτήρας • T0 - Υποχρεωτικός χαρακτήρας διαµόρφωσης • TAi TBi TCi TDi – Προαιρετικοί χαρακτήρες αλληλεπίδρασης • T1, T2, …TK – Προαιρετικοί ιστορικοί χαρακτήρες • TCK - Υπό όρους χαρακτήρας ελέγχου

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

Η δοµή του ATR διευκρινίζεται στον Πίνακα 10. Όπως έχει αναφερθεί προηγουµένως, ο αρχικός χαρακτήρας TS χρησιµοποιείται για να καθιερώσει τις συµβάσεις σηµατοδότησης και ταξινόµησης των bit µεταξύ του αναγνώστη και της κάρτας. Ο χαρακτήρας T0 χρησιµοποιείται για να επισηµάνει την παρουσία ή την απουσία επόµενων χαρακτήρων διασύνδεσης ή ιστορικών χαρακτήρων. Οι χαρακτήρες διεπαφών χρησιµοποιούνται για να προσαρµόσουν τα χαρακτηριστικά του καναλιού ΕΙΣ/ΕΞ, συµπεριλαµβανοµένου του συγκεκριµένου πρωτοκόλλου που χρησιµοποιείται από την κάρτα και τον αναγνώστη κατά τη διάρκεια της επόµενης ανταλλαγής των εντολών (από τον αναγνώστη στην κάρτα) και των απαντήσεων (από την κάρτα στον αναγνώστη). Οι ιστορικοί χαρακτήρες, εάν υπάρχουν, χρησιµοποιούνται για να µεταβιβάσουν συγκεκριµένες πληροφορίες του κατασκευαστή της κάρτας στον αναγνώστη, και ως εκ τούτου στο σύστηµα εφαρµογής που εξυπηρετείται από τον αναγνώστη. ∆εν

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 45 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

υπάρχει κανένα καθιερωµένο πρότυπο για τις πληροφορίες που παρουσιάζονται στα ιστορικά κοµµάτια.

Πίνακας 10 ∆οµή ATR (Απάντηση Σε Αναστοιχειοθέτηση)

Ταυτότητα Χαρακτήρα Προσδιορισµός Περιοχή Αρχικού Χαρακτήρα TS Υποχρεωτικός αρχικός χαρακτήρας Περιοχή Χαρακτήρα ∆ιαµόρφωσης T0 ∆είκτης ύπαρξης χαρακτήρων διασύνδεσης Περιοχή Χαρακτήρων ∆ιασύνδεσης TA1 Σφαιρικός, κωδικοί F1 και D1 TB1 Σφαιρικός, κωδικοί 11 και P11 TC1 Σφαιρικός, κωδικός N TD1 κωδικοί Υ2 και Τ TA2 Συγκεκριµένος TB2 Σφαιρικός, κωδικός P12 TC2 Συγκεκριµένος TD2 κωδικοί Y3 και T TA3 TAi, TBi, και TCi είναι συγκεκριµένοι …TDi Κωδικοί Υi+1 και T Περιοχή Ιστορικών Χαρακτήρων Τ1 15 χαρακτήρες µέγιστο ..TK Πληροφορίες σχετικά µε την κάρτα Περιοχή Χαρακτήρα Ελέγχου TCK Προαιρετικός χαρακτήρας ελέγχου

Οι χαρακτήρες διασύνδεσης χρησιµοποιούνται ως µέθοδος επιλογής του πρωτοκόλλου που θα χρησιµοποιείται για την επόµενη υψηλού επιπέδου επικοινωνία µεταξύ του αναγνώστη και της κάρτας. ∆ύο τέτοια πρωτόκολλα καθορίζονται από το πρωτόκολλο του ISO 7816-3, το T=0 και το T=1. Το T=0 είναι ένα ασύγχρονο πρωτόκολλο, που σηµαίνει ότι δεν υπάρχει καµία ακριβής σύνδεση συγχρονισµού µεταξύ µιας εντολής που στέλνεται από τον αναγνώστη στην κάρτα και της επόµενης εντολής που στέλνεται από τον αναγνώστη στην κάρτα. Όταν η κάρτα λαµβάνει µια εντολή από τον αναγνώστη, εκτελεί τις ζητούµενες διαδικασίες και στέλνει πίσω στον αναγνώστη µια απάντηση σχετικά µε εκείνη την εντολή. Ο αναγνώστης είναι έπειτα ελεύθερος να στείλει την επόµενη εντολή στην κάρτα όποτε χρειάζεται. Το T=1 πρωτόκολλο είναι ένα ασύγχρονο πρωτόκολλο µετάδοσης block. Αυτό σηµαίνει ότι σε ένα πακέτο µετάδοσης από τον αναγνώστη στην κάρτα, στέλνεται από µια ως µερικές εντολές. Η κάρτα αποκρίνεται σε αυτές τις εντολές, στο σηµείο που ο αναγνώστης είναι έτοιµος να στείλει µια άλλη εντολή ή ένα άλλο block εντολών. Οι προσδιορισµοί για τα πρόσθετα πρωτόκολλα ορίζονται στον Πίνακα 11.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 46 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Πίνακας 11 Προσδιορισµοί πρωτοκόλλων

Όνοµα Προσδιορισµός T=0 Ασύγχρονο (µονό) πρωτόκολλο εντολών-αποκρίσεων T=1 Ασύγχρονο (πολλαπλό) πρωτόκολλο εντολών-αποκρίσεων T=2 ∆ιατηρηµένο για µελλοντικό full-duplex πρωτόκολλο T=3 ∆ιατηρηµένο για µελλοντικό full-duplex πρωτόκολλο T=4 ∆ιατηρηµένο για ενισχυµένο ασύγχρονο πρωτόκολλο T=5 ∆ιατηρηµένο για µελλοντική χρήση T=6 ∆ιατηρηµένο για µελλοντική χρήση T=7 ∆ιατηρηµένο για µελλοντική χρήση T=8 ∆ιατηρηµένο για µελλοντική χρήση T=9 ∆ιατηρηµένο για µελλοντική χρήση T=10 ∆ιατηρηµένο για µελλοντική χρήση T=11 ∆ιατηρηµένο για µελλοντική χρήση T=12 ∆ιατηρηµένο για µελλοντική χρήση T=13 ∆ιατηρηµένο για µελλοντική χρήση T=14 ∆ιατηρηµένο για καθορισµένα πρωτόκολλα του προµηθευτή T=15 ∆ιατηρηµένο για µελλοντική επέκταση

3.2.5 Περαιτέρω Προδιαγραφές

Το ISO 7816 είναι αδιαφιλονίκητα το πιο ευρύτατα γνωστό πρότυπο έξυπνων καρτών, αλλά δεν είναι το µοναδικό. Υπάρχουν πρότυπα για τη χρήση των έξυπνων καρτών σε συγκεκριµένες εφαρµογές όπως η υγεία, η µεταφορά, οι τραπεζικές εργασίες, το ηλεκτρονικό εµπόριο, και η ταυτότητα. Και υπάρχουν πρότυπα για τα νέα είδη έξυπνων καρτών όπως έξυπνες κάρτες χωρίς επαφές. ∆εδοµένου ότι µια έξυπνη κάρτα είναι πάντα µέρος µιας µεγαλύτερης τεχνολογίας πληροφοριών, υπόκειται σε ένα ευρύ φάσµα προτύπων πληροφορίας-επεξεργασίας όπως τα σύνολα χαρακτήρων, της κωδικοποίησης χωρών, των νοµισµατικών αντιπροσωπεύσεων, και του συστήµατος κρυπτογραφίας. Τέλος, δεδοµένου ότι πολλές εφαρµογές έξυπνων καρτών αφορούν διάφορες κυβερνητικές λειτουργίες όπως νοµισµατικά συστήµατα, εθνική ταυτότητα, και εκλογιµότητα κερδών, υπάρχουν εθνικά και περιφερειακά πρότυπα έξυπνων καρτών πέρα από τα διεθνή πρότυπα.

Μερικά άλλα πρότυπα, προδιαγραφές και παραδείγµατα εφαρµογών τους παρουσιάζονται στους παρακάτω αναλυτικούς πίνακες 12 και 13.

Πίνακας 12 Παραδείγµατα πρότυπων έξυπνων καρτών

Πρότυπο Περιοχή Χρήσης ∆ιεθνής Οργανισµός Προτύπων(ISO) ISO 639 Γλώσσες, χώρες, και αρχές ISO 646 7µπιτο σύνολο κωδικοποιηµένου χαρακτήρα ISO 3166 Ονόµατα των χωρών ISO 4217 Νοµίσµατα και κεφάλαια ISO/IEC 7501 Ταξιδιωτικά έγγραφα ISO/IEC 7810,7811, 7812 Μαγνητικές κάρτες λωρίδων ISO/IEC 7813 Οικονοµικές συναλλαγές

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 47 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ISO 8601 Ηµεροµηνίες και χρόνοι ISO 8859 8µπιτο σύνολο κωδικοποιηµένου χαρακτήρα ISO 9564 ∆ιαχείριση PIN ISO 9797 Κρυπτογραφικές τεχνικές δεδοµένων ISO 9992 Μηνύµατα µεταξύ της κάρτας και του τερµατικού ISO 10202 Κάρτες οικονοµικής συναλλαγής ISO 10536 Κάρτες ολοκληρωµένων κυκλωµάτων χωρίς επαφές ISO 11568 ∆ιαχείριση κρυπτογραφηµένων κλειδιών ISO 11694 Οπτικές κάρτες µνήµης Ευρωπαϊκό Ίδρυµα Προτύπων Τηλεπικοινωνιών (ETSI) ETSI TE9 Τερµατικά καρτών GSM 11.4 Κάρτες ενότητας προσδιορισµού συνδροµητών (SIM)

για κινητά τηλέφωνα GSM Ευρωπαϊκή Επιτροπή για Τυποποίηση (CEN) TC 224 Αναγνώσιµες από µηχανή κάρτες EN 726 Απαιτήσεις για κάρτες ολοκληρωµένων κυκλωµάτων

και τερµατικά για τη χρήση τηλεπικοινωνιών Επιτροπή της Ευρωπαϊκής Ένωσης (CEU) ITSEC Κριτήρια αξιολόγησης ασφάλειας πληροφοριών Ευρωπαϊκή Ένωση Κατασκευαστών Υπολογιστών (ECMA) ECMA-219 ∆ιανοµή κλειδιών ∆ιεθνής ένωση τηλεπικοινωνιών (ITU) X.400 Ασφαλές email X.509 Πλαίσιο επικύρωσης Αµερικανικό Εθνικό Ίδρυµα Προτύπων (Ansi) ANSI X9.15-1990 (R1996) Προδιαγραφή για την οικονοµική ανταλλαγή

µηνυµάτων µεταξύ του αποδέκτη καρτών και του αγοραστή

ANSI X9.8-1995 Τράπεζες - ∆ιαχείριση προσωπικού αριθµού αναγνώρισης κατάθεσης και ασφάλεια, µέρος 1: Αρχές και τεχνικές προστασίας PIN και µέρος 2: εγκεκριµένοι αλγόριθµοι για PIN

ANSI X3.15-1975 (R1996) Ακολουθία bit του αµερικανικού εθνικού τυποποιηµένου κώδικα για την ανταλλαγή πληροφοριών στη µετάδοση serial-by-bit δεδοµένων

ANSI X3.118 (1984) Προδιαγραφή PIN Αµερικανικό Εθνικό ίδρυµα για Πρότυπα και ∆οκιµές (NIST) FIPS 140-1 Κρυπτογραφικά τεκµήρια

Πίνακας 13 Παραδείγµατα προδιαγραφών έξυπνων καρτών

Προδιαγραφή Σπόνσορας ∆ιεύθυνση Στο ∆ιαδίκτυο Integration of Smart Cards into the Pluggable Authentication Module (PAM)

Open Group http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.opengroup.org

RFC 86.0—Unified Login with PAM

Open Group http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.opengroup.org

RFC 57.0 Smart Card Introduction

Open Group http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.opengroup.org

ISI-3 (IBM Smartcard Identification)

IBM and the University of Twente

http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.iscit.surfnet.nl

International Chip Electronic Commercial Standard

Visa http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.visa.com

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 48 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Integrated Circuit Card (ICC) Specification

Visa http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.visa.com

Java Card 2.0 Sun Microsystems http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.javasoft.com

IATA 791—Airline Ticketing International Airline Travel Association

http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.iata.org

PKCS #11 Cryptographic Token Interface Standard

RSADSI http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.rsa.com

Electronic ID Application Secured Electronic Information in Society (SEIS)

http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.seis.se

ICC Specification for Payment Systems (EMV’96)

Europay, MasterCard, Visa

http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.mastercard.com

Standards 30 and 40—Card Terminals

Association for Payment Clearing Services (APACS)

Open Card Framework IBM, Netscape, NCI, and Sun Microsystems

http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.opencard.com

PC/SC Workgroup Bull, HP, Microsoft, Schlumberger, and Siemens Nixdorf

http://unix.be.eu.org/docs/smart-card-developer-kit/ch03/www.smartcardsys.com

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 49 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

4 Βασικές Εντολές Των Έξυπνων Καρτών

Στο προηγούµενο κεφαλαίο εξετάσαµε τη θεµελίωση της διαλειτουργικότητας των έξυπνων καρτών που βρίσκεται σε ποικίλα διεθνή πρότυπα. Μέσω του µηχανισµού ATR, καθιερώθηκε ένας βασικός τρόπος επικοινωνίας µεταξύ ενός αναγνώστη και µιας έξυπνης κάρτας. Αυτός ο τρόπος επικοινωνίας είναι ένα ηµιαµφίδροµο φυσικό κανάλι στο οποίο είτε ο αναγνώστης µπορεί να «µιλήσει» και η κάρτα να «ακούει», ή το αντίστροφο. Αυτό το κεφάλαιο εξετάζει την καθιέρωση και τη χρήση πιο σύνθετων πρωτοκόλλων πάνω σε αυτό το φυσικό κανάλι.

Ακριβώς πάνω από το φυσικό κανάλι υπάρχει ένα πρωτόκολλο επικοινωνίας επιπέδου σύνδεσης (link-level protocol) που παρέχει µια χωρίς λάθη σύνδεση µέσω της οποίας ο αναγνώστης µπορεί να αρχίσει τις ενέργειες του µε την κάρτα µε τη αποστολή µιας εντολής στην κάρτα. Η κάρτα µπορεί έπειτα να εκτελέσει µια ακολουθία διαδικασιών, όπως υπαγορεύεται από την εντολή του αναγνώστη, και µπορεί να στείλει µια απάντηση πίσω καθώς επίσης και να παρέχει µια ένδειξη κατάστασης σχετικά µε την εντολή. Ενώ τα πρότυπα επιτρέπουν την προδιαγραφή 15 ή περισσότερων ευδιάκριτων link-level πρωτοκόλλων, υπάρχουν πραγµατικά δύο βασικές σταθερές αυτού του υψηλού επιπέδου πρωτοκόλλου σε χρήση σήµερα: το πρωτόκολλο T=0 και το πρωτόκολλο T=1.

Μόλις καθιερωθεί το link-level πρωτόκολλο (T=0, T=1, και τα λοιπά), καθορίζονται τα πρωτόκολλα σε επίπεδο εφαρµογών (application-level protocols), τα οποία χρησιµοποιούν το link-level επίπεδο για να επικοινωνούν µεταξύ των στοιχείων των εφαρµογών της κάρτας και των στοιχείων των εφαρµογών του αναγνώστη. Τα πρότυπα του ISO/IEC 7816-4 καθορίζουν δύο τέτοια πρωτόκολλα εφαρµογών: Το πρώτο στοχεύει στην παροχή ενός συνεπούς συστήµατος αρχείων για την αποθήκευση και την ανάκτηση των δεδοµένων σε µια κάρτα. Το API (Application Programming Interface) που απαρτίζει αυτό το πρωτόκολλο περικλείει ένα σύνολο λειτουργικών εντολών µέσω των οποίων µπορεί να χειριστεί το σύστηµα αρχείων. Αρχεία µπορούν να επιλεχτούν µε βάση το όνοµα, δεδοµένα µπορούν να γραφτούν σε αρχεία, δεδοµένα µπορούν να διαβαστούν από αρχεία, κ.τ.λ. Το δεύτερο πρωτόκολλο είναι και αυτό υπό µορφή API και χρησιµοποιείται για την πρόσβαση των υπηρεσιών ασφάλειας σε µια κάρτα. Αυτό το API επιτρέπει στην κάρτα και τον αναγνώστη να επικυρώνουν αµοιβαία την ταυτότητα τους και τους παρέχει µηχανισµούς µέσω των οποίων οι δύο πλευρές µπορούν να κρατήσουν ιδιωτικές τις πληροφορίες που ανταλλάσσουν.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 50 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Για να υποστηρίζεται το πρωτόκολλο εφαρµογών API, το ISO/IEC 7816-4 καθορίζει ένα πρωτοκόλλου δοµηµένο µε µηνύµατα, µέσω των οποίων ανταλλάσσονται οι κλήσεις συναρτήσεων, οι σχετικές παράµετροί τους, και οι παράµετροι απάντησης κατάστασης µεταξύ των reader-side εφαρµογών και των card-side εφαρµογών. Αυτή η δοµή µηνυµάτων χαρακτηρίζεται από τις µονάδες δεδοµένων πρωτοκόλλου εφαρµογής (APDU), οι οποίες µεταβιβάζονται µεταξύ του κώδικα των reader-side και card-side εφαρµογών από το link-level πρωτόκολλο (γενικά είτε ένα T=0 είτε ένα T=1 πρωτόκολλο).

4.1 Πρωτόκολλα Σε Επίπεδο ∆ιασύνδεσης (Link-Level)

Όταν αναφερόµαστε σε πρωτόκολλα επικοινωνίας, µπορούµε γενικά να τα αναλύσουµε µε τη βοήθεια του µοντέλου αναφοράς OSI (Open Systems Interconnect - ∆ιασύνδεση Ανοικτών Συστηµάτων), το οποίο παρουσιάζεται στη Εικόνα 12. Το µοντέλο αναφοράς OSI περιγράφει το γενικό πρόβληµα επικοινωνίας µεταξύ δύο οντοτήτων από την άποψη επτά ευδιάκριτων πρωτοκόλλων που µπαίνουν σε στρώσεις το ένα πάνω από το άλλο (για αυτό και η ονοµασία µοντέλο επτά-στρωµάτων) και παρέχουν έναν πλήρη µηχανισµό µέσω του οποίου δύο εφαρµογές σε ανόµοιες πλατφόρµες µπορούν να ανταλλάξουν πληροφορίες αποτελεσµατικά η µια µε την άλλη. Ένα κεντρικό θέµα του µοντέλου αναφοράς OSI είναι ο ακριβής χωρισµός των στρωµάτων. ∆ηλαδή ένα στρώµα επικοινωνεί µόνο µε το αµέσως πάνω ή κάτω στρώµα µέσω µιας καθορισµένης µε σαφήνεια διασύνδεσης, και κάθε στρώµα παρέχει ένα συγκεκριµένο σύνολο υπηρεσιών σε ολόκληρη τη στοίβα του πρωτοκόλλου. Στην περίπτωση των T=0 και T=1 πρωτοκόλλων των έξυπνων καρτών, το T=1 πρωτόκολλο ανήκει στο data-layer (ή link-level), αλλά το T=0 πρωτόκολλο τείνει να αναµίξει τα στοιχεία από διάφορα στρώµατα.

Εικόνα 12 Μοντέλο αναφοράς OSI

Σε αυτό το σηµείο, πρέπει να επαναληφθεί ότι ο αναγνώστης και η κάρτα επικοινωνούν µέσω ενός πολύ ακριβούς πρωτοκόλλου,

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 51 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

που στηρίζεται στη µέθοδο εντολή–και-απάντηση (command-and-response). Οι δοµές δεδοµένων που ανταλλάσσονται από τον αναγνώστη και την κάρτα σε αυτό το command-and-response πρωτόκολλο αναφέρονται ως µονάδες δεδοµένων πρωτοκόλλου µετάδοσης (TPDU - Transmission Protocol Data Units). Οι δοµές TPDU που χρησιµοποιούνται στο T=0 πρωτόκολλο είναι αρκετά διαφορετικές από εκείνες που χρησιµοποιούνται στο T=1.

Μόλις καθιερωθούν τα T=0 ή T=1 πρωτόκολλα µεταξύ του αναγνώστη και της κάρτας, χρησιµοποιούνται για να υποστηρίξουν τα application-level πρωτόκολλα µεταξύ των εφαρµογών στην κάρτα και των εφαρµογών του αναγνώστη. Αυτά τα πρωτόκολλα εφαρµογών ανταλλάσσουν τις πληροφορίες µέσω των δοµών δεδοµένων που ονοµάζονται µονάδες δεδοµένων πρωτοκόλλου εφαρµογής (APDU - Application Protocol Data Units). Οι λεπτοµέρειες των διάφορων δοµών TPDU και APDU αναθεωρούνται στα εξής τµήµατα. Ένα συµπέρασµα που προκύπτει είναι το γεγονός ότι το T=0 πρωτόκολλο παρέχει έναν πολύ αδύνατο διαχωρισµό στρώµατος µεταξύ του link-level πρωτοκόλλου και του application-level πρωτοκόλλου. Συνεπώς, διαπιστώνεται ότι οι µηχανισµοί που θα βασίζονταν κανονικά στα ενδιάµεσα layer πρωτοκόλλων (µεταξύ του application layer και του data link layer) µπορούν να είναι εξαιρετικά αδύναµοι για να εφαρµοστούν πάνω από το T=0 πρωτόκολλο. Κάτι επίσης πολύ σηµαντικό είναι η ύπαρξη των «ασφαλών µηνυµάτων» µεταξύ των εφαρµογών της κάρτας και του αναγνώστη. Τα «ασφαλή µηνύµατα» αναφέρονται στη χρήση κρυπτογραφικών τεχνικών για να περιοριστεί η πρόσβαση στις πληροφορίες που µεταβιβάζονται µεταξύ των τµηµάτων εφαρµογών του αναγνώστη και της κάρτας. Συγκεκριµένα, µόνο τα τµήµατα εφαρµογών σε κάθε άκρη του καναλιού πρέπει να είναι σε θέση να καταλάβουν τις πληροφορίες που µεταφέρονται µεταξύ τους. Τα παρεµβαλλόµενα layer πρέπει απλά να βλέπουν τις πληροφορίες ως ακατανόητες συλλογές από bytes.

Η αδύναµη διάταξη σε layer του T=0 πρωτοκόλλου δεν είναι προϊόν ενός αδύναµου σχεδίου. Θα ήταν καλύτερο να λέγαµε πως είναι το αποτέλεσµα µιας προσπάθειας να κατασταθεί το πρωτόκολλο όσο το δυνατόν πιο «αποκριτικό» για να είναι η επικοινωνία µεταξύ του αναγνώστη και της κάρτας όσο το δυνατόν αποδοτικότερη. Η ταχύτητα µετάδοσης δεδοµένων ανάµεσα στον αναγνώστη και στην κάρτα είναι σχετικά αργή (ονοµαστικά 9600 bps) και όµως µέσα από αυτό το κανάλι είναι το πιο σηµαντικό µονοπάτι για όλες τις συναλλαγές της κάρτας. Για να µεγιστοποιηθεί η ικανοποίηση των καταναλωτών, είναι επιθυµητό τέτοιες συναλλαγές να γίνονται όσο το δυνατό πιο γρήγορα (και ακόµα καλύτερα ακαριαία). Συνεπώς, στο T=0 πρωτόκολλο, η υποστήριξη χειρισµού λαθών και πρωτοκόλλων εφαρµογών πρέπει να βελτιστοποιηθεί έτσι ώστε να ελαχιστοποιηθεί το ποσό των δεδοµένων που ρέουν µεταξύ του αναγνώστη και της κάρτας και κατά συνέπεια να ελαχιστοποιηθεί ο χρόνος συναλλαγής.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 52 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

4.1.1 Το Πρωτόκολλο Τ=0

Το T=0 πρωτόκολλο είναι ένα πρωτόκολλο προσανατολιζόµενο προς το byte (byte-oriented). Αυτό σηµαίνει ότι ένα byte είναι η µονάδα των δεδοµένων που µεταφέρεται µέσα από ένα κανάλι και ότι ο χειρισµός λάθους ελέγχει ένα byte τη φορά. Όπως όλα τα άλλα πρωτόκολλα ISO των έξυπνων καρτών, λειτουργεί µε έναν τρόπο εντολή-απάντησης (command-response) στον οποίο η πλευρά του αναγνώστη διανέµει µια εντολή στην κάρτα, η οποία εκτελεί έπειτα τη διαταγµένη λειτουργία και στέλνει πίσω µια απάντηση.

Στο T=0 πρωτόκολλο, η ανίχνευση λάθους γίνεται µε την εξέταση της ζυγής ισοτιµίας των bit σε κάθε byte που µεταφέρεται µέσω της αλληλεπίδρασης της κάρτας και του αναγνώστη. Η µεταφορά κάθε byte πληροφοριών απαιτεί τη χρήση 10 bit, όπως διευκρινίζεται στην Εικόνα 13. Η ισοτιµία των bit µηδενίζεται ή τίθεται έτσι ώστε ο συνολικός αριθµός των συνόλων των bit (ανά χαρακτήρα που µεταφέρεται) να είναι ένας ζυγός αριθµός. Η πλευρά του αναγνώστη στο κανάλι µπορεί να εξετάσει τις τιµές των bit που µεταφέρονται πριν από το bit ισοτιµίας και να καθορίσει εάν το bit ισοτιµίας πρέπει να τεθεί. Εάν το πραγµατικό bit ισοτιµίας που µεταφέρεται δεν ταιριάζει µε αυτό που αναµενόταν, µπορεί να υποτεθεί ότι υπάρχει λάθος στο byte των δεδοµένων που µεταφέρεται και πρέπει να ξεκινήσει κάποια διαδικασία αποκατάστασης. Η διαδικασία αποκατάστασης που χρησιµοποιεί το T=0 πρωτόκολλο ενεργοποιείται από τη λαµβάνουσα πλευρά, η οποία, στην ανίχνευση ενός λάθους ισοτιµίας, επισηµαίνει ότι αναµένει από τη πλευρά που διαβιβάζει να αναµεταδώσει το byte. Αυτό επιτυγχάνεται µε τη διατήρηση σε χαµηλή κατάσταση της γραµµής I/O. Κανονικά, η γραµµή I/O είναι σε υψηλή κατάσταση που πριν τη µεταφορά ενός byte, έτσι η χαµηλή κατάσταση λειτουργεί ως σήµα λάθους στη συσκευή αποστολής σηµάτων. Με την ανίχνευση αυτού, η αποστέλλουσα πλευρά του καναλιού περιµένει για λίγο και έπειτα πάλι στέλνει το byte.

Εικόνα 13 Μεταφορά byte µεταξύ κάρτας-αναγνώστη και έλεγχος λάθους

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 53 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Αυτά τα καλοστηµένα πρωτόκολλα επικοινωνίας µπορεί να δουν αυτόν τον µηχανισµό ανίχνευσης και αποκατάστασης των λαθών ως κάπως επιρρεπή σε µια ατελή συµπεριφορά του καναλιού. Αυτό συµβαίνει πράγµατι στην πρακτική. Για τους περισσότερους αναγνώστες, εντούτοις, το κανάλι τείνει να είναι πολύ καλό ή πολύ κακό. Εάν είναι πολύ καλό, αυτός ο µηχανισµός χρησιµοποιείται σπάνια. Εάν είναι πολύ κακό, ο µηχανισµός είναι πιθανό να αποτύχει σε κάποιο σηµείο. Αυτό οδηγεί και στις δύο πλευρές του καναλιού σε µη συγχρονισµό και κατά συνέπεια στο να παύσει η κάρτα να αποκρίνεται σε εντολές από τον αναγνώστη. Αν γίνει κάτι τέτοιο, ή εάν ο αναγνώστης ανιχνεύσει πρώτος αυτή τη διφορούµενη κατάσταση, ο αναγνώστης διανέµει ένα σήµα αναστοιχειοθέτησης στην κάρτα που αναγκάζει το πρωτόκολλο επικοινωνίας να ξεκινήσει από την αρχή.

Το TPDU για το πρωτόκολλο T=0 περιλαµβάνει δύο ευδιάκριτες δοµές δεδοµένων: µία που στέλνεται από τον αναγνώστη στην κάρτα (ως εντολή) και µία που στέλνεται από την κάρτα στον αναγνώστη (ως απάντηση). Η επικεφαλίδα της εντολής (που στέλνεται από τον αναγνώστη στην κάρτα) περιλαµβάνει πέντε τοµείς:

• CLA. Τοµέας 1-byte που καθιερώνει µια συλλογή από εντολές. Αυτό αναφέρεται µερικές φορές ως προσδιορισµός κατηγορίας του συνόλου εντολών.

• INS. Τοµέας 1-byte που διευκρινίζει µια συγκεκριµένη εντολή (στην κάρτα) µέσα από το σύνολο εντολών που καθορίζονται CLA. Αυτό αναφέρεται µερικές φορές ως προσδιορισµός οδηγίας µέσα στην κατηγορία εντολών.

• P1. Τοµέας 1-byte που χρησιµοποιείται για να διευκρινίσει την εξέταση που χρησιµοποιείται από τις παραπάνω εντολές [CLA, INS].

• P2. Τοµέας 1-byte που χρησιµοποιείται επίσης για να διευκρινίσει την εξέταση που χρησιµοποιείται από τις παραπάνω εντολές [CLA, INS].

• P3. Τοµέας 1-byte που χρησιµοποιείται για να διευκρινίσει τον αριθµό των byte δεδοµένων που µεταφέρονται είτε στην κάρτα είτε από την κάρτα ως τµήµα της εκτέλεσης των εντολών [CLA, INS].

Τα byte διαδικασίας, που στέλνονται από την κάρτα στον αναγνώστη, χρησιµοποιούνται για να αποκριθούν στην εντολή του αναγνώστη και περιλαµβάνουν τρεις απαραίτητους τοµείς και έναν προαιρετικό:

• ACK. Τοµέας 1-byte που δείχνει την υποδοχή (από την κάρτα) της εντολής [CLA, INS].

• NULL. Τοµέας 1-byte που χρησιµοποιείται από την κάρτα για να κάνει έναν ουσιαστικό έλεγχο ροής στο κανάλι I/O. Στέλνει

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 54 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

το µήνυµα από την κάρτα στον αναγνώστη ότι η κάρτα λειτουργεί ακόµα στην εντολή και επισηµαίνει στον αναγνώστη να µην στείλει άλλη εντολή αµέσως.

• SW1. Τοµέας 1-byte που χρησιµοποιείται από την κάρτα για να στείλει µια απάντηση θέσης πίσω στον αναγνώστη σχετικά µε την τρέχουσα εντολή.

• SW2. Προαιρετικός τοµέας 1-byte που µπορεί να περιληφθεί στα byte διαδικασίας, ανάλογα µε τη συγκεκριµένη εντολή που εκτελείται. Εάν συµπεριληφθεί, µεταβιβάζει επίσης µια απάντηση θέσης πίσω στον αναγνώστη.

Όπως υποδείχθηκε προηγουµένως, το πρωτόκολλο T=0 τείνει να αναµίξει στοιχεία των application-level πρωτοκόλλων µε στοιχεία των link-level πρωτοκόλλων. Ο καθορισµός των CLA byte είναι µια τέτοια περίπτωση. Κάθε τιµή CLA καθορίζει ένα οριζόµενο από τις εφαρµογές σύνολο οδηγιών. Οι µεµονωµένες οδηγίες έχουν µια µοναδική τιµή INS. Το πρώτο σύνολο εντολών βρίσκεται στον ISO/IEC 7816-4. Τα συγκεκριµένα σύνολα εντολών στοχεύουν στο χειρισµό ενός συστήµατος αρχείων σε µια κάρτα και στην ασφαλή πρόσβαση των εντολών σε µια κάρτα. Άλλα έγγραφα προτύπων καθορίζουν τα πρόσθετα σύνολα εντολών (δηλαδή πρόσθετες τιµές των CLA byte). Μερικά από αυτά παρατίθενται στον Πίνακα 14.

Πίνακας 14 Προσδιορισµοί συνόλου εντολών CLA

CLA Byte Σύνολο Εντολών OX Εντολές ISO/IEC 7816-4 (αρχεία & ασφάλεια)

10 ως 7F Κρατηµένη για µελλοντική χρήση 8X ή 9X Εντολές ISO/IEC 7816-4

AX Εντολές εφαρµογών B0 ως CF Εντολές ISO/IEC 7816-4 D0 ως FE Εντολές εφαρµογών

FF Κρατηµένη για µελλοντική χρήση

Μέσα σε µια δεδοµένη τιµή CLA (δηλαδή µέσα σε µια κατηγορία οδηγιών που προσδιορίζονται από µια κοινή τιµή CLA), το byte INS χρησιµοποιείται για να προσδιορίσει µια συγκεκριµένη εντολή. Όπως υποδεικνύεται στον Πίνακα 14, διάφορα διαφορετικά πρότυπα προσδιορίζουν τις συλλογές των εντολών. Τα πρότυπα του ISO/IEC 7816-4 προσδιορίζουν διάφορες οδηγίες που χρησιµοποιούνται για να έχουν πρόσβαση στις λειτουργίες του συστήµατος αρχείων της κάρτας και στις συναρτήσεις ασφάλειας που χρησιµεύουν στο να περιορίσουν την πρόσβαση στο σύστηµα αρχείων και στην κάρτα γενικά. Αυτό το σύνολο οδηγίας παρατίθεται στον Πίνακα 15.

Πίνακας 15 Κωδικοί ISO/IEC 7816-4 INS

Τιµή INS Όνοµα εντολής 0E Erase Binary 20 Verify 70 Manage Channel

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 55 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

82 External Authenticate 84 Get Challenge 88 Internal Authenticate A4 Select File B0 Read Binary B2 Read Record C0 Get Response C2 Envelope CA Get Data D0 Write Binary D2 Write Record D6 Update Binary DA Put Data DC Update Record E2 Append Record

Υπάρχουν πρόσθετοι περιορισµοί στις τιµές που µπορεί να πάρει το byte INS. Συγκεκριµένα, το high-order half-byte δεν µπορεί να έχει τιµή είτε 6 είτε 9. Και στις δύο περιπτώσεις, οι περιορισµένες τιµές συσχετίζονται µε τους µηχανισµούς ελέγχου που χρησιµοποιούνται για να χειριστούν την πηγή ενέργειας Vpp.

Οι παράµετροι εντολών P1 και P2, αν και καθορίζονται σαν να είναι µέρος του link-level πρωτοκόλλου, στην πραγµατικότητα εξαρτώνται από το application-level πρωτόκολλο. Τα P1 και P2 παρέχουν τις παραµέτρους έλεγχου ή διεύθυνσης για τις διάφορες οριζόµενες από τις εφαρµογές εντολές. Παραδείγµατος χάριν, µια οδηγία εφαρµογής περιλαµβάνει την επιλογή ενός συγκεκριµένου αρχείου µέσα στο σύστηµα αρχείων. Η επιλογή ενός αρχείου επιτρέπει τις επόµενες διαδικασίες, όπως η ανάγνωση ή γράψιµο, που εκτελείται στο επιλεγµένο αρχείο. Για αυτήν την συγκεκριµένη οδηγία, η παράµετρος P1 χρησιµοποιείται για να ελέγξει πώς το αρχείο αναφέρεται στην επίλεκτη λειτουργία (δηλαδή εάν θα αναφερθεί από ένα προσδιοριστικό, από το όνοµα, ή από το path). Όταν αναθεωρείται η εντολή Select File, θα εξεταστούν οι ακριβείς ορισµοί εκείνων των όρων. Εντούτοις, οι αναγνώστες εξοικειωµένοι µε τα γενικά συστήµατα αρχείων στα διάφορα συγκροτήµατα ηλεκτρονικών υπολογιστών µπορούν εύκολα να συµπεράνουν τις έννοιες. Για την εντολή Select File, η παράµετρος P2 προσφέρει τον περαιτέρω καθαρισµό του οποίου το αρχείο πρόκειται να επιλεχτεί.

Η παράµετρος P3 εξαρτάται επίσης από το application-level πρωτόκολλο. Όταν η δοµή TPDU εξετάζεται, διαπιστώνεται ότι η παράµετρος P3 γενικά καθορίζει τον αριθµό των byte που πρόκειται να διαβιβαστούν κατά τη διάρκεια της εκτέλεσης της διευκρινισµένης INS εντολής. Η κατεύθυνση της µετακίνησης αυτών των byte εξαρτάται από την εντολή. Η σύµβαση της µετακίνησης των δεδοµένων είναι κάρτο-κεντρική. ∆ηλαδή, τα εξερχόµενα δεδοµένα είναι αυτά που κινούνται από την κάρτα προς τον αναγνώστη, ενώ τα εισερχόµενα δεδοµένα είναι αυτά που κινούνται από τον αναγνώστη

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 56 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

προς την κάρτα. Μια τιµή P3=0 για µια εντολή που διευκρινίζει µια εξερχόµενη µεταφορά δεδοµένων σηµαίνει ότι 256 byte δεδοµένων θα µεταφερθούν από την κάρτα στον αναγνώστη.

Κάθε φορά που στέλνεται µια εντολή TPDU από τον αναγνώστη στην κάρτα, µια απάντηση TPDU επιστρέφεται από την κάρτα στον αναγνώστη. Αυτή η απάντηση TPDU αποτελείται από διάφορα byte διαδικασίας. Το πρώτο byte του TPDU είναι ένα ACK byte. Αυτό το byte είναι µια επανάληψη του INS byte από την εντολή TPDU στην οποία γίνεται αυτή η απάντηση. Το δεύτερο byte είναι ένα NULL byte. Αυτό το byte είναι ένας τρόπος για την κάρτα να καταγράψει το χρόνο ενώ επεξεργάζεται την υποδεδειγµένη εντολή. Ενώ επεξεργάζεται, η reader-side του καναλιού περιµένει την απάντηση TPDU. Εάν η απάντηση δεν φθάσει εντός µιας καθορισµένης περιόδου, ο αναγνώστης µπορεί να αρχίσει µια ακολουθία RST για να επανεκκινήσει το πρωτόκολλο µεταξύ του αναγνώστη και της κάρτας. Αυτό αποτρέπεται εάν παρεµβληθεί τουλάχιστον ένα NULL byte από τον αναγνώστη στην κάρτα.

Το SW1 είναι ένα byte κατάστασης από την κάρτα για να δείξει στον αναγνώστη το αποτέλεσµα της ζητούµενης εντολής. Οι τιµές του SW1 καθορίζονται ως τµήµα του πρωτοκόλλου εφαρµογής. Για ορισµένες εντολές, η κάρτα µπορεί να επιστρέφει τα byte δεδοµένων στον αναγνώστη. Σε αυτήν την περίπτωση, ένα δεύτερο byte κατάστασης επονοµαζόµενο SW2 επιστρέφεται στον αναγνώστη. Αυτό ενεργεί σαν ερέθισµα για τον αναγνώστη να εκτελέσει µια άλλη εντολή που ονοµάζεται Get Response, η οποία θα επιστρέψει στην πραγµατικότητα τα byte των δεδοµένων που παράγονται από την εκτέλεση της προηγούµενης εντολής.

Όπως φαίνεται, το T=0 πρωτόκολλο είναι ένα σχετικά βελτιστοποιηµένο πρωτόκολλο για την κίνηση των εντολών και των απαντήσεων µεταξύ της κάρτας και του αναγνώστη. Τείνει να θολώσει τις διακρίσεις µεταξύ του πρωτοκόλλου application-layer και του link-layer πρωτοκόλλου, µε πολλά από τα ιδρυτικά στοιχεία του να καθορίζονται στην πραγµατικότητα µέσα στο application-layer πρωτόκολλο.

4.1.2 Το Πρωτόκολλο T=1

Το T=1 πρωτόκολλο είναι ένα πρωτόκολλο προσανατολισµένο στα block. Αυτό σηµαίνει ότι µια καθορισµένη µε σαφήνεια συλλογή πληροφοριών (ή κοινώς block) κινείται ως ενιαία µονάδα µεταξύ του αναγνώστη και της κάρτας. Ενσωµατωµένη µέσα σε αυτήν την δοµή block µπορεί να είναι µία APDU που καθορίζεται για µια συγκεκριµένη εφαρµογή. Αυτή η δυνατότητα είναι µια καλή επεξήγηση για το ότι το T=1 πρωτόκολλο παρέχει µια άριστη διάταξη ανάµεσα στο link-layer και στο application-layer. Οι κινούµενες πληροφορίες σε ένα block,

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 57 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

εντούτοις, απαιτούν ότι το µεταφερόµενο block (µεταξύ του αναγνώστη και της κάρτας) δεν περιέχει λάθη, ειδάλλως το πρωτόκολλο µπορεί εύκολα να χαθεί. Η ανίχνευση και η διόρθωση λάθους, έπειτα, είναι µια σηµαντικά πιο σύνθετη λειτουργία από αυτή του T=0 πρωτοκόλλου.

Η ανίχνευση λάθους στο T=1 πρωτόκολλο γίνεται µε τη χρησιµοποίηση είτε ενός χαρακτήρα πλεονασµού µήκους, που είναι ουσιαστικά µια ελαφρώς πιο σύνθετη µορφή ελέγχου ισοτιµίας από το T=0 πρωτόκολλο, είτε µε τη χρησιµοποίηση ενός χαρακτήρα πλεονασµού κυκλικού ελέγχου, ο οποίος είναι εγγυηµένος ότι θα ανιχνεύσει οποιαδήποτε λάθη ενιαίου bit σε έναν εκπεµπόµενο block. Ο συγκεκριµένος CRC αλγόριθµος καθορίζεται λεπτοµερώς στο πρότυπο ISO 3309. Όταν ανιχνεύεται ένα λάθος µέσα σε ένα block από τη λαµβανόµενη πλευρά του καναλιού, επισηµαίνει το αποστέλλουσα πλευρά να επαναλάβει την αποστολή του block που είχε το λάθος.

Το T=1 πρωτόκολλο χρησιµοποιεί τρεις διαφορετικούς τύπους block, όπως διευκρινίζεται στην Εικόνα 14. Κάθε ένα έχει την ίδια δοµή, αλλά εξυπηρετεί έναν διαφορετικό σκοπό:

• Information block. Χρησιµοποιείται για να µεταβιβάσει τις πληροφορίες µεταξύ των προγραµµάτων εφαρµογών στην κάρτα και των προγραµµάτων εφαρµογών στην reader-side του καναλιού.

• Receive ready block. Χρησιµοποιείται για να µεταβιβάσει είτε θετικά είτε αρνητικά αναγνωριστικά από το ένα τέλος του καναλιού στο άλλο. Ένα θετικό αναγνωριστικό δείχνει ότι παραλήφθηκε ένα block σωστά ενώ ένα αρνητικό αναγνωριστικό δείχνει ότι ανιχνεύθηκε ένα λάθος (µέσω του ελέγχου του LRC ή του CRC) στο λαµβανόµενο block.

• Supervisory block. Χρησιµοποιείται για να µεταβιβάσει τις πληροφορίες ελέγχου µεταξύ της κάρτας και του αναγνώστη.

Εικόνα 14 Στοιχεία του Τ=1 πρωτοκόλλου

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 58 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Κάθε T=1 block περιλαµβάνει τρεις τοµείς:

• Τοµέας προλόγου. Υποχρεωτικός τοµέας στο block που έχει µήκος 3 byte. Περιλαµβάνει τα ακόλουθα τρία στοιχεία:

o NAD - ∆ιεύθυνση κόµβου o PCB - Byte ελέγχου πρωτοκόλλου o LEN - Μήκος

• Τοµέας πληροφοριών. Προαιρετικός τοµέας στο block που µπορεί να είναι µέχρι 254 byte στο µήκος.

• Τοµέας επιλόγου. Υποχρεωτικός τοµέας στο block που είναι είτε 1 είτε 2 byte στο µήκος.

Το στοιχείο NAD χρησιµοποιείται για να προσδιορίσει τις διευθύνσεις της πηγής του block και του προορισµού του. Αυτή η δυνατότητα εξέτασης είναι µέγιστης χρήσης όταν το T=1 πρωτόκολλο χρησιµοποιείται για να υποστηρίξει πολλαπλές λογικές συνδέσεις µεταξύ της κάρτας και πολλαπλών σηµείων σύνδεσης εφαρµογών στην reader-side του καναλιού. Όταν χρησιµοποιείται, το NAD περιέχει δύο υποτοµείς:

• SAD - Η διεύθυνση πηγής υποδεικνύεται από τη χαµηλή τάξη τριών bit του NAD byte.

• DAD - Η διεύθυνση προορισµού υποδεικνύεται από πέντε µέχρι επτά bit του NAD byte.

Στις καταστάσεις όπου τα πολλαπλά λογικά κανάλια δεν χρησιµοποιούνται, ο τοµέας NAD έχει όλα του τα στοιχεία µηδενικά. Τα δύο άλλα κοµµάτια του NAD byte, δηλαδή εκείνα που δεν χρησιµοποιούνται για το SAD ή το DAD, χρησιµοποιούνται για να µεταβιβάσουν τις σχετικές πληροφορίες µε τον έλεγχο του Vpp (ενέργεια προγραµµατισµού της EEPROM).

Το στοιχείο PCB χρησιµοποιείται για να δείξει τον τύπο block (information, receive ready, ή supervisory block). Τα 2 high-order bit του PCB byte χρησιµοποιούνται για να δείξουν τους διάφορους τύπους:

• Ένα high-order bit ίσο µε το 0 δείχνει ένα information block. • Τα 2 high-order bit ίσα µε το 1 δείχνουν ένα supervisory block. • Το high-order bit ίσο µε το 1 και το επόµενο bit ίσο µε το 0

δείχνουν ένα receive ready block.

Το T=1 είναι ένα σχετικά σύνθετο πρωτόκολλο. Παρόλα αυτά το πρωτόκολλο αντιµετωπίζεται όπως το T=0 πρωτόκολλο. ∆ηλαδή ως αξιόπιστο κανάλι για την κίνηση των APDU µεταξύ των στοιχείων προγραµµάτων εφαρµογών στην κάρτα και στην reader-side του καναλιού επικοινωνίας. Τα άλλα πρωτόκολλα που µπορούν να

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 59 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

καθοριστούν µέσω των ακολουθιών ATR ή PTS (δηλαδή T=2, …, T=14, T=15) εξυπηρετούν τον ίδιο σκοπό.

4.2 Πρωτόκολλα Σε Επίπεδο Εφαρµογών (Application-Level)

Το πρότυπο ISO/IEC 7816-4 κινείται από τη σφαίρα του καθορισµού της λειτουργίας βασικών συστηµάτων έξυπνων καρτών µέχρι τη σφαίρα της λειτουργίας των χρήσιµων προγραµµάτων εφαρµογών που βρίσκονται στην έξυπνη κάρτα. ∆ύο τοµείς της λειτουργίας εξετάζονται:

• Κατ' αρχάς, ένα σύστηµα αρχείων καθορίζεται µε µια εντελώς διευκρινισµένη ιεραρχική δοµή. Καθορίζεται ένα σύνολο συναρτήσεων. Αυτές οι συναρτήσεις περιλαµβάνουν ένα API µέσω του οποίου τα προγράµµατα εφαρµογών στην πλευρά του αναγνώστη µπορούν να έχουν πρόσβαση στα αρχεία και τις πληροφορίες αυτού του συστήµατος αρχείων.

• ∆εύτερον, καθορίζεται µια σειρά συναρτήσεων ασφάλειας που µπορεί να χρησιµοποιηθεί για να περιορίσει την πρόσβαση στα προγράµµατα εφαρµογών στην κάρτα ή στα αρχεία και τις πληροφορίες σε συγκεκριµένα αρχεία µέσα στο σύστηµα αρχείων της κάρτας.

Αυτά τα λογισµικά εφαρµογών χρησιµοποιούν ένα πρωτόκολλο για την ανταλλαγή έλεγχου και πληροφοριών µεταξύ του αναγνώστη και της κάρτας. Αυτό το πρωτόκολλο είναι βασισµένο σε µια δοµή block αποκαλούµενη APDU. Τα APDU ανταλλάσσονται µε τη χρησιµοποίηση των T=0 και T=1 πρωτοκόλλων. Ένα τµήµα λογισµικού στην κάρτα ερµηνεύει αυτά τα APDU και εκτελεί τη διευκρινισµένη λειτουργία. Αυτή η αρχιτεκτονική διευκρινίζεται στην Εικόνα 15.

Εικόνα 15 Αρχιτεκτονική επικοινωνίας εφαρµογών

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 60 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Η δοµή APDU που καθορίζεται στο ISO 7816-4 είναι πολύ παρόµοια µε τη δοµή TPDU που καθορίζεται στο ISO 7816-3 για το T=0 πρωτόκολλο. Όταν η δοµή APDU µεταφέρεται από το T=0 πρωτόκολλο, τα στοιχεία του APDU επικαλύπτουν τα στοιχεία του TPDU.

Ένα ISO 7816-4 APDU είναι

• Ανεξάρτητο από το link-level πρωτόκολλο • Καθορισµένο στο application-level

Μια εντολή APDU είναι µια δοµή µηνυµάτων που φέρνει µια εντολή ή µια εντολή (και ίσως δεδοµένα) από τον αναγνώστη στην κάρτα. Μια απόκριση APDU είναι µια δοµή µηνυµάτων που φέρνει µια απάντηση (και ίσως δεδοµένα) από την κάρτα πίσω στον αναγνώστη.

4.2.1 Το ISO 7819-4 APDU

Τα µηνύµατα που χρησιµοποιούνται για να υποστηρίξουν το καθορισµένο πρωτόκολλο εφαρµογών του ISO 7816-4 περιλαµβάνουν δύο δοµές. Μία χρησιµοποιείται από την reader-side του καναλιού για να στείλει τις εντολές στην κάρτα και άλλη που χρησιµοποιείται από την κάρτα για να στείλει τις απαντήσεις πίσω στον αναγνώστη. Το πρώτο αναφέρεται ως εντολή APDU και τελευταία ως απόκριση APDU.

Όπως διευκρινίζεται στην Εικόνα 16, η εντολή APDU περιλαµβάνει µια επιγραφή (header) και ένα σώµα (body), κάθε ένα από τα οποία υποδιαιρείται περαιτέρω σε διάφορους τοµείς. Το header περιλαµβάνει τους CLA, INS, P1, και P2 τοµείς. Το body του APDU είναι ένα στοιχείο µεταβλητού µεγέθους (και µορφής) που χρησιµοποιείται για να µεταβιβάσει τις πληροφορίες στον APDU επεξεργαστή της κάρτας ως τµήµα µιας εντολής ή για να µεταβιβάσει τις πληροφορίες από την κάρτα πίσω στον αναγνώστη ως τµήµα µιας απόκρισης σε µια εντολή. Ο τοµέας LC διευκρινίζει τον αριθµό των byte που µεταφέρονται στην κάρτα ως τµήµα µιας εντολής. Περιέχει το µήκος του τοµέα δεδοµένων (data field). Ο τοµέας δεδοµένων περιλαµβάνει τα δεδοµένα που πρέπει να µεταβιβαστούν στην κάρτα προκειµένου να επιτραπεί στον APDU επεξεργαστή να εκτελέσει την εντολή που διευκρινίζεται στο APDU. Ο τοµέας LE διευκρινίζει τον αριθµό των byte που θα επιστραφεί στον αναγνώστη από τον APDU επεξεργαστή της κάρτας στην απόκριση APDU για αυτήν την συγκεκριµένη εντολή. Το σώµα του APDU µπορεί να έχει τέσσερις διαφορετικές µορφές:

• ∆εν µεταφέρονται δεδοµένα σε ή από την κάρτα, έτσι το APDU περιλαµβάνει µόνο το τµήµα header. Αυτό αναφέρεται ως Περίπτωση 1.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 61 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

• ∆εν µεταφέρονται δεδοµένα στην κάρτα, αλλά δεδοµένα επιστρέφονται από την κάρτα. Έτσι το σώµα του APDU περιλαµβάνει µόνο ένα µη µηδενικό τοµέα LE. Αυτό αναφέρεται ως Περίπτωση 2.

• Μεταφέρονται δεδοµένα στην κάρτα, αλλά κανένα δεδοµένο δεν επιστρέφεται από την κάρτα ως αποτέλεσµα της εντολής. Έτσι το σώµα του APDU περιλαµβάνει τον τοµέα LC και τον τοµέα δεδοµένων. Αυτό αναφέρεται ως Περίπτωση 3.

• Μεταφέρονται δεδοµένα στην κάρτα και τα δεδοµένα επιστρέφονται από την κάρτα ως αποτέλεσµα της εντολής. Έτσι το σώµα του APDU περιλαµβάνει τον τοµέα LC, τον τοµέα δεδοµένων, και τον τοµέα LE. Αυτό αναφέρεται ως Περίπτωση 4.

Εικόνα 16 Η δοµή εντολών του APDU

Η Εικόνα 17 επεξηγεί την πιο απλή µορφή της δοµής απόκρισης APDU. Περιλαµβάνει ένα σώµα και ένα trailer. Το σώµα είναι είτε µηδενικό είτε περιλαµβάνει έναν τοµέα δεδοµένων, ανάλογα µε τη συγκεκριµένη εντολή στην οποία αποκρίνεται, και µε το εάν εκείνη η εντολή εκτελέσθηκε επιτυχώς από τον APDU επεξεργαστή της κάρτας. Εάν η απόκριση APDU περιλαµβάνει έναν τοµέα δεδοµένων, το µήκος του καθορίζεται από τον τοµέα LE της εντολής στην οποία αντιστοιχεί η απόκριση.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 62 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 17 H δοµή απόκρισης APDU

Η απόκριση APDU περιλαµβάνει επίσης ένα τοµέα trailer, ο οποίος µπορεί να περιλαµβάνει δύο τοµείς πληροφοριών κατάστασης που αναφέρονται ως SW1 και SW2. Αυτοί οι τοµείς επιστρέφουν (από τον APDU επεξεργαστή) στην εφαρµογή του αναγνώστη έναν κώδικα κατάστασης που, σύµφωνα µε το ISO 7816-4, έχει ένα σχέδιο αρίθµησης στο οποίο ένα byte χρησιµοποιείται για να µεταβιβάσει µια κατηγορία λάθους και το άλλη byte χρησιµοποιείται για να µεταβιβάσει µια συγκεκριµένη κατάσταση εντολής ή ένδειξη λάθους. Αυτό το σχέδιο αρίθµησης φαίνεται στην Εικόνα 18.

Εικόνα 18 Κωδικοί επιστροφής του ISO/IEC 7816-4

Ο κώδικας CLA που συµπεριλαµβάνεται σε κάθε εντολή APDU έχει δύο πρόσθετα συστατικά που πρέπει να σηµειωθούν:

• Τα δύο low-order bit του CLA byte µπορούν να χρησιµοποιηθούν για να υποδείξουν ένα λογικό κανάλι επικοινωνίας µεταξύ της εφαρµογής του αναγνώστη και του APDU επεξεργαστή της κάρτας.

• Τα επόµενα δύο high-order bit του CLA byte µπορούν να χρησιµοποιηθούν για να δείξουν ότι πρόκειται να χρησιµοποιηθεί ασφαλές µήνυµα µεταξύ της εφαρµογής του αναγνώστη και του APDU επεξεργαστή της κάρτας.

Μόλις καθιερωθεί το link-level πρωτόκολλο µεταξύ της εφαρµογής του αναγνώστη και του APDU επεξεργαστή της κάρτας,

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 63 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

δηµιουργείται ένα base-level λογικό κανάλι (εντολή). Αυτό υποδεικνύεται (στο CLA byte) και από τα δύο από τα low-order bit που είναι 0. Μπορούν να δηµιουργηθούν πρόσθετα λογικά κανάλια µε τη χρησιµοποίηση της εντολής Manage Channel, η οποία καθορίζεται από το ISO 7816-4.

Το ISO 7816-4 επίσης καθορίζει ένα µέτριο, ασφαλές πρωτόκολλο µηνυµάτων που µπορεί να χρησιµοποιηθεί για να εξασφαλίσει τη µυστικότητα και την ακεραιότητα των APDU που µεταφέρονται µεταξύ των εφαρµογών του αναγνώστη και του APDU επεξεργαστή της κάρτας.

4.2.2 Το Σύστηµα Αρχείων API

Μια κεντρική εφαρµογή για τις έξυπνες κάρτες που καθορίζεται από το πρότυπο ISO/IEC 7816-4 είναι ένα σύστηµα αρχείων. Το σύστηµα αρχείων εφαρµόζεται ουσιαστικά στην αµετάβλητη µνήµη της έξυπνης κάρτας. Τις περισσότερες φορές στην EEPROM. Το σύστηµα αρχείων που καθορίζεται είναι µια σχετικά απλή ιεραρχική δοµή που περιλαµβάνει τρία βασικά στοιχεία:

• Ένα τµήµα κύριων αρχείων (Master File) • Ένα τµήµα αφιερωµένων αρχείων (Dedicated File) • Ένα τµήµα στοιχειωδών αρχείων (Elementary File)

Το τµήµα MF είναι η βάση της ιεραρχίας των αρχείων. Υπάρχει µόνο ένα MF σε µια έξυπνη κάρτα. Ένα MF µπορεί να περιέχει, ως δεδοµένα, ένα ή πολλά DF, και µπορεί να περιέχει και πολλά µηδενικά EF. Το τµήµα DF είναι ουσιαστικά ένας χώρος για τα τµήµατα EF. Το DF µπορεί να περιέχει µηδέν σε πολλά EF. Ένα τµήµα EF µπορεί να περιέχει µόνο εγγραφές. Αυτή η απλή ιεραρχική δοµή είναι διευκρινισµένη στην Εικόνα 19. Στην Εικόνα 20 παρουσιάζεται η ιεραρχική δοµή µε όλους τους τύπους αρχείων.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 64 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 19 Η αρχιτεκτονική του συστήµατος αρχείων της έξυπνης κάρτας

Εικόνα 20 Τύποι αρχείων

∆ιάφορα χαρακτηριστικά του συστήµατος αρχείων των έξυπνων καρτών είναι αρκετά διαφορετικά από τα γνωστά συστήµατα αρχείων. Αυτές οι διαφορές οφείλονται σχεδόν αποκλειστικά στα φυσικά χαρακτηριστικά του συστήµατος µνήµης EEPROM και συγκεκριµένα στα γεγονότα ότι η µνήµη EEPROM µπορεί να υποβληθεί µόνο σε έναν µικρό αριθµό κύκλων διαγραφής και έγγραφης και ότι είναι σηµαντικά γρηγορότερο να γράψει κανείς στη µνήµη EEPROM µε έναν συσσωρευτικό τρόπο απ' ό,τι µε έναν καθαρό “erase & write” τρόπο. Το πρώτο χαρακτηριστικό οδήγησε στον καθορισµό µιας µάλλον µοναδικής δοµής αρχείων αποκαλούµενης cyclic file. Το δεύτερο χαρακτηριστικό οδήγησε στους µάλλον µοναδικούς ορισµούς διάφορων εντολών εγγραφής σε αρχεία.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 65 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Το cyclic file είναι πραγµατικά ένα ring buffer των φυσικών αρχείων που εξετάζονται και προσεγγίζονται ως ένα ενιαίο αρχείο. Σε διαδοχικές διαδικασίες εγγραφής, προσεγγίζεται το επόµενο φυσικό αρχείο (στο ring buffer των φυσικών αρχείων). Το βασικό αποτέλεσµα είναι ότι οι διαδικασίες διαγραφής και έγγραφης µπορούν να διαδοθούν πέρα από µια ευρύτερη περιοχή των θέσεων µνήµης της EEPROM. Αυτό µετριάζει κάπως το όριο στον αριθµό των φορών (γενικά στην τάξη των 100.000 κύκλων) που µια συγκεκριµένη θέση µνήµης της EEPROM µπορεί να σβηστεί και να ξαναγραφεί.

Η µνήµη EEPROM έχει το πρόσθετο ενδιαφέρον χαρακτηριστικό ότι είναι σηµαντικά γρηγορότερη στο να θέσει πρόσθετα bit σε µια byte-sized θέση µνήµης από το να σβήσει όλα τα bit και να τα ξαναγράψει. Αυτό το γεγονός γίνεται διπλά χρήσιµο σε ορισµένες περιπτώσεις (παραδείγµατος χάριν, στη διαχείριση της αξίας ενός πορτοφολιού σε µια έξυπνη κάρτα) όπου απαιτείται οι διαδικασίες σε ένα αρχείο να εκτελούνται µε τέτοιο τρόπο έτσι ώστε οι τιµές που αποθηκεύονται σε αυτά τα αρχεία να είναι κατανοητές ανά πάσα στιγµή, ακόµα και αν η κάρτα χάσει την ενέργεια της κατά τη διάρκεια µιας διαδικασίας έγγραφης.

4.2.2.1 Χαρακτηριστικά MF

Κάθε σύστηµα αρχείων έξυπνων καρτών έχει ακριβώς ένα MF. Το MF χρησιµεύει ως η βάση της ιεραρχικής δοµής των αρχείων. Στη διάλεκτο των γενικών συστηµάτων αρχείων, το MF είναι ένα container ή ένας κατάλογος. Μπορεί να περιέχει άλλα αφιερωµένα αρχεία (DF) ή µπορεί να περιέχει στοιχειώδη αρχεία (EF).

Οποιοδήποτε αρχείο µπορεί να προσδιοριστεί από ένα προσδιοριστικό αρχείων 2 byte. Το προσδιοριστικό αρχείων 3F00 χρησιµοποιείται µόνο για το MF. ∆ηλαδή υπάρχει µόνο ένα αρχείο στην κάρτα µε προσδιοριστικό αρχείων 3F00, και αυτό είναι το MF.

4.2.2.2 Χαρακτηριστικά DF

Το DF είναι επίσης ένα container ή ένα αρχείο καταλόγου στο ίδιο πνεύµα µε το MF. Το DF δηµιουργεί έναν υποκατάλογο µέσα στην ιεραρχία αρχείων που πηγάζουν από το MF. Το DF µπορεί επίσης να προσδιοριστεί από ένα προσδιοριστικό αρχείων. Στο DF πρέπει να δοθεί ένα µοναδικό προσδιοριστικό αρχείων µέσα στο DF (ή στο MF) που εµπεριέχεται. Αυτό επιτρέπει τη δηµιουργία ενός µοναδικού προσδιορισµού path για ένα αρχείο.

Σε µερικές έξυπνες κάρτες, το DF µπορεί επίσης να παραπεµφθεί από ένα όνοµα που µπορεί να είναι από 1 έως 16 byte.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 66 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Οι συµβάσεις για την ονοµασία του DF βρίσκονται στην προδιαγραφή του ISO/IEC 7816-5.

4.2.2.3 Χαρακτηριστικά EF

Ένα EF είναι ένας κόµβος φύλλων της ιεραρχίας αρχείων. Είναι ένα αρχείο που περιέχει πραγµατικά δεδοµένα. Υπάρχουν δύο παραλλαγές του EF: ένα εσωτερικό EF, που πρόκειται να χρησιµοποιηθεί από τις εφαρµογές στην κάρτα, και ένα ενεργό EF, το οποίο χρησιµοποιείται ως µηχανισµός αποθήκευσης για τα δεδοµένα που χρησιµοποιούνται από µια εφαρµογή.

Μέσα σε ένα συγκεκριµένο DF, ένα EF µπορεί να προσδιοριστεί από ένα µικρό προσδιοριστικό (5 bit). Υπάρχουν τέσσερις παραλλαγές του ενεργού EF (βλ. Εικόνα 21):

• Ένα διαφανές αρχείο (transparent file) • Ένα γραµµικό, καθορισµένου µήκους εγγραφών αρχείο (linear,

fixed-length record file) • Ένα γραµµικό, µεταβλητού µήκους εγγραφών αρχείο (linear,

variable-length record file) • Ένα κυκλικό, καθορισµένου µήκους εγγραφών αρχείο (cyclic,

fixed-length record file)

Εικόνα 21 ∆οµές στοιχειωδών αρχείων

Ένα transparent file µπορεί να αντιµετωπισθεί ως ένα string από byte. Όταν µια εντολή χρησιµοποιείται για να διαβάσει ή να γράψει πληροφορίες από ένα transparent file, είναι απαραίτητο να παρασχεθεί ένα byte offset (από την αρχή του αρχείου) στο συγκεκριµένο byte (µέσα στο transparent file) που πρέπει να αρχίσει η ανάγνωση ή το γράψιµο. Μια εντολή για να διαβάσει ή να γράψει πληροφορίες από/προς ένα transparent file περιέχει επίσης έναν µετρητή του µήκους του byte string που διαβάζεται ή που γράφεται στο αρχείο.

Τα γραµµικά καθορισµένου ή µεταβλητού µήκους εγγραφών αρχεία, όπως φαίνεται από το όνοµα τους, περιλαµβάνουν

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 67 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

υποδιαιρέσεις που ονοµάζονται έγγραφες (records). Τα records (µέσα σε ένα αρχείο) προσδιορίζονται από έναν αριθµό ακολουθίας. Σε ένα καθορισµένου µήκους εγγραφών αρχείο, όλα τα records περιέχουν τον ίδιο αριθµό byte. Σε ένα αρχείο εγγραφών µεταβλητού µήκους, κάθε record στο αρχείο µπορεί να περιέχει έναν διαφορετικό αριθµό byte.

Ένα κυκλικό αρχείο (cyclic file) είναι µια µάλλον µοναδική στα συστήµατα αρχείων (έξυπνων καρτών) δοµή. Επιτρέπει στις εφαρµογές να προσεγγίσουν ένα αρχείο µε ένα συνεπή, διαφανή τρόπο και επιπλέον επιτρέπει το ίδιο το σύστηµα αρχείων να έχει πρόσβαση σε ποικίλα διαφορετικά φυσικά αρχεία. Αυτό έχει ως αποτέλεσµα τα όρια των κύκλων διαγραφής και επανεγράφης στη µνήµη EEPROM να είναι κάπως µετριασµένα.

Για να είναι πιο εύκολη η χρήση και ο διαχείριση του συστήµατος αρχείων των έξυπνων καρτών, καθορίζεται ένα application-level πρωτόκολλο υπό τη µορφή της συλλογής συναρτήσεων για την επιλογή, την ανάγνωση, και τα αρχεία εγγραφής.

4.2.2.4 Η εντολή Select File

Η εντολή Select File χρησιµοποιείται σαν ένας λογικός δείκτης σε ένα συγκεκριµένο αρχείο του συστήµατος αρχείων της έξυπνης κάρτας. Μόλις ένα αρχείο επιλεχτεί από αυτήν την εντολή, οποιεσδήποτε επόµενες εντολές χειρισµού αρχείων, όπως εκείνες για το διάβασµα ή την εγγραφή πληροφοριών στα αρχεία, θα λειτουργήσουν στο αρχείο που δείχνεται από αυτόν τον λογικό δείκτη. Η πρόσβαση στο σύστηµα αρχείων δεν είναι πολύπλοκη, αλλά είναι δυνατό να υπάρξουν το πολλαπλοί τέτοιοι λογικοί δείκτες σε κάποιο χρονικό σηµείο. Αυτό γίνεται µε τη χρησιµοποίηση της εντολής Manage Channel για να καθιερώσει τα πολλαπλά λογικά κανάλια µεταξύ της εφαρµογής του αναγνώστη και της κάρτας. Οι εντολές σε διαφορετικά αρχεία πρόσβασης µπορούν έπειτα να πολλαπλασιαστούν (µε την εφαρµογή του αναγνώστη) επιτρέποντας σε διαφορετικά αρχεία στην κάρτα να είναι συγχρόνως σε ποικίλες καταστάσεις πρόσβασης από την εφαρµογή του αναγνώστη.

Το αρχικό κοµµάτι των πληροφοριών που πρέπει να µεταβιβάσει η εντολή Select (από την εφαρµογή του αναγνώστη στον επεξεργαστή APDU των έξυπνων καρτών) είναι ο προσδιορισµός του αρχείου στο οποίο αυτός ο λογικός δείκτης πρέπει να δείξει. Αυτός ο προσδιορισµός µπορεί να παρασχεθεί µε τέσσερις τρόπους:

• Από το προσδιοριστικό αρχείων (τιµή 2 byte) • Από το όνοµα του DF (byte string που προσδιορίζει το DF) • Από το path (αλληλουχία των προσδιοριστικών αρχείων)

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 68 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

• Από ένα σύντοµο ID

∆εν υποστηρίζουν όλες οι έξυπνες κάρτες και τους τέσσερις µηχανισµούς. Παραδείγµατος χάριν, η κάρτα 3K MULTIFLEX που θα αναλυθεί παρακάτω υποστηρίζει µόνο τον πρώτο.

4.2.2.5 Η εντολή Read Binary

Η εντολή Read Binary χρησιµοποιείται από µια εφαρµογή του αναγνώστη για να ανακτηθεί κάποιο τµήµα ενός EF στην κάρτα. Το EF που προσεγγίζεται πρέπει να είναι ένα transparent file. ∆ηλαδή δεν µπορεί να είναι ένα record-oriented αρχείο. Εάν επιχειρηθεί µια εντολή Read Binary σε ένα record-oriented αρχείο στο EF, η εντολή θα ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

∆ύο παράµετροι περνούν από την εφαρµογή του αναγνώστη στην κάρτα για αυτήν την εντολή: ένας offset δείκτης στην έναρξη του αρχείου στο αρχικό byte που διαβάζεται, και ο αριθµός των byte που διαβάζονται και που επιστρέφονται στην εφαρµογή αυτή.

4.2.2.6 Η εντολή Write Binary

Η εντολή Write Binary χρησιµοποιείται από µια εφαρµογή του αναγνώστη για να βάλει πληροφορίες σε ένα τµήµα ενός EF στην κάρτα. Το αρχείο που προσεγγίζεται πρέπει να είναι ένα transparent file. ∆ηλαδή δεν µπορεί να είναι ένα record-oriented αρχείο. Εάν επιχειρηθεί µια εντολή Write Binary σε ένα record-oriented αρχείο στο EF, η εντολή θα ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

Ανάλογα µε τα χαρακτηριστικά που περνούν από την εφαρµογή του αναγνώστη στην κάρτα στη εντολή Write Binary, η εντολή µπορεί να χρησιµοποιηθεί για είτε να θέσει µια σειρά byte στο EF (δηλαδή να θέσει τα επιλεγµένα bit µέσα στα οριζόµενα byte σε τιµή 1), να καθαρίσει µια σειρά byte στο EF (δηλαδή να θέσει τα επιλεγµένα bit µέσα στα οριζόµενα byte σε τιµή 0), είτε να κάνει µια εγγραφή µιας σειράς byte στο EF.

4.2.2.7 Η εντολή Update Binary

Η εντολή Update Binary χρησιµοποιείται από µια εφαρµογή του αναγνώστη για να σβήσει και να αποθηκεύσει άµεσα µια παραπλήσια ακολουθία byte σε ένα τµήµα ενός EF στην κάρτα. Το αρχείο που προσεγγίζεται πρέπει να είναι ένα transparent file. ∆ηλαδή δεν µπορεί να είναι ένα record-oriented αρχείο. Εάν επιχειρηθεί µια εντολή Update Binary σε ένα record-oriented αρχείο στο EF, η εντολή θα

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 69 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

Οι παράµετροι εισαγωγής για την εντολή περιλαµβάνουν έναν offset δείκτη στην έναρξη του αρχείου και µια µέτρηση byte του συνολικού αριθµού των byte που γράφονται.

4.2.2.8 Η εντολή Erase Binary

Η εντολή Erase Binary χρησιµοποιείται από µια εφαρµογή του αναγνώστη για να καθαριστούν τα byte µέσα σε ένα EF σε µια κάρτα. Το αρχείο που προσεγγίζεται πρέπει να είναι ένα transparent file. ∆ηλαδή δεν µπορεί να είναι ένα record-oriented αρχείο. Εάν επιχειρηθεί µια εντολή Update Binary σε ένα record-oriented αρχείο στο EF, η εντολή θα ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

∆ύο παράµετροι διευκρινίζονται ως τµήµα της εντολής: ένα offset από την αρχή του EF στο τµήµα των byte µέσα στο αρχείο που σβήνεται και τον αριθµό των byte µέσα σε εκείνο το τµήµα.

4.2.2.9 Η εντολή Read Record

Η εντολή Read Record είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη για να διαβαστεί και να επιστραφεί το περιεχόµενο ενός ή περισσότερων εγγραφών σε ένα EF σε µια κάρτα. Αυτή η εντολή πρέπει να εκτελεσθεί σε ένα record-oriented αρχείο στο EF. Εάν εφαρµοστεί σε ένα transparent EF, η εντολή θα ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

Ανάλογα µε τις παραµέτρους που περνούν µέσω της εντολής έχουµε τις παρακάτω τρεις περιπτώσεις:

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

εγγραφή διαβάζονται και επιστρέφονται • όλες οι εγγραφές από την καθορισµένη εγγραφή µέχρι το τέλος

του αρχείου διαβάζονται και επιστρέφονται.

4.2.2.10 Η εντολή Write Record

Η εντολή Write Record είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη για να γράψει ένα αρχείο σε ένα EF στην κάρτα. Αυτή η εντολή πρέπει να εκτελεσθεί σε ένα record-oriented αρχείο στο EF. Εάν εφαρµοστεί σε ένα transparent EF, η εντολή θα

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 70 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

Όπως µε τη εντολή Write Binary, αυτή η εντολή µπορεί ουσιαστικά να χρησιµοποιηθεί για να επιτύχει ένα από τρία παρακάτω αποτελέσµατα:

• one-time εγγραφή ενός αρχείου στο EF • ρύθµιση των συγκεκριµένων bit µέσα σε ένα συγκεκριµένο

αρχείο στο EF • καθαρισµός των συγκεκριµένων bit µέσα σε ένα συγκεκριµένο

αρχείο στο EF.

Υπάρχουν διάφοροι µέθοδοι συντόµευσης που µπορούν να χρησιµοποιηθούν σε αυτήν την εντολή για να διευκρινίσουν το αρχείο που γράφεται, όπως π.χ. το πρώτο αρχείο στο EF, το τελευταίο αρχείο στο EF, το επόµενο αρχείο στο EF, το προηγούµενο αρχείο στο EF, ή ένα συγκεκριµένο αρχείο (που προσδιορίζεται από τον αριθµό) µέσα στο EF.

4.2.2.11 Η εντολή Append Record

Η εντολή Append Record είναι µία εντολή που στέλνεται από µια εφαρµογή του αναγνώστη είτε να προσθέσει ένα πρόσθετο αρχείο στο τέλος ενός γραµµικού, record-oriented αρχείου στο EF σε µια κάρτα είτε για να γράψει το πρώτο αρχείο σε ένα κυκλικό, record-oriented αρχείο στο EF σε µια κάρτα. Εάν εφαρµοστεί σε ένα transparent EF, η εντολή θα ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

4.2.2.12 Η εντολή Update Record

Η εντολή Update Record είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη για να γραφτεί ένα αρχείο σε ένα EF στην κάρτα. Αυτή η εντολή πρέπει να εκτελεσθεί σε ένα record-oriented αρχείο στο EF. Εάν εφαρµοστεί σε ένα transparent EF, η εντολή θα ανασταλθεί µε έναν δείκτη λάθους που θα επιστραφεί από την κάρτα στην εφαρµογή του αναγνώστη.

Όπως µε τη εντολή Update Binary, αυτή η εντολή χρησιµοποιείται για να γράψει ένα συγκεκριµένο αρχείο σε ένα EF. Το καθαρό αποτέλεσµα της λειτουργίας είναι ότι το συγκεκριµένο αρχείο στο EF σβήνεται και γράφεται το νέο αρχείο που διευκρινίζεται στην εντολή.

4.2.2.13 Η εντολή Get Data

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 71 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Η εντολή Get Data είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη για να διαβάσει και να επιστρέψει το περιεχόµενο ενός αντικειµένου δεδοµένων που έχει αποθηκευτεί µέσα στο σύστηµα αρχείων της κάρτα. Αυτή η εντολή τείνει να εξαρτάται πολύ από το είδος της κάρτας. ∆ηλαδή ο καθορισµός του τι αποτελεί ένα αντικείµενο δεδοµένων ποικίλλει από κάρτα σε κάρτα.

4.2.2.14 Η εντολή Put Data

Η εντολή Put Data είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη για να τεθούν δεδοµένα σε ένα αντικείµενο δεδοµένων που έχει αποθηκευτεί µέσα στο σύστηµα αρχείων της κάρτα. Αυτή η εντολή τείνει να εξαρτάται πολύ από το είδος της κάρτας. ∆ηλαδή ο καθορισµός του τι αποτελεί ένα αντικείµενο δεδοµένων ποικίλλει από κάρτα σε κάρτα.

4.2.3 Η Ασφάλεια API

Συνδεµένος µε κάθε στοιχείο του συστήµατος αρχείων είναι ένας κατάλογος ιδιοτήτων πρόσβασης. Μέσω αυτών των ιδιοτήτων πρόσβασης, µπορεί να καθοριστεί µια κατάσταση έτσι ώστε το σύστηµα έξυπνων καρτών να είναι έτοιµο να εκτελέσει οποιαδήποτε εντολή χωρίς να υπάρχει κίνδυνος απώλειας ή υποκλοπής των δεδοµένων του. Στο πιο απλό επίπεδο, οι διαδικασίες που εκτελούνται στο σύστηµα αρχείων είναι η επιλογή ενός συγκεκριµένου αρχείου και η εγγραφή-διάβασµα πληροφοριών σε-από αυτό. Όπως θα παρουσιαστεί αργότερα, οι ιδιότητες πρόσβασης µπορούν να είναι τόσο απλές, όπως η απαίτηση από τον αναγνώστη να παρέχει έναν προκαθορισµένο προσωπικό αριθµό αναγνώρισης (PIN) ή τόσο σύνθετες, όσο η παρουσίαση από τον αναγνώστη αποδείξεων ότι κατέχει κάποιο κοινό µυστικό (όπως ένα κλειδί) µε την κάρτα, δηλ. µε το να κρυπτογραφήσει ή να αποκρυπτογραφήσει κατάλληλα µια σειρά από byte που παρέχονται από την κάρτα. Αυτοί οι µηχανισµοί µελετούνται λεπτοµερέστερα στα επόµενα τµήµατα.

4.2.3.1 Η εντολή Verify

Η εντολή Verify είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη στο σύστηµα ασφάλειας στην κάρτα για να επιτραπεί ο έλεγχος στις προστατευόµενες µε κωδικό πληροφορίες που είναι αποθηκευµένες στην κάρτα. ∆ηλαδή αυτή η εντολή χρησιµοποιείται για να επιτρέψει την εφαρµογή να πείσει την κάρτα ότι ξέρει έναν κωδικό πρόσβασης που διατηρείται στην κάρτα και για να περιορίζει την πρόσβαση στις πληροφορίες στην κάρτα.

Οι προστατευόµενες µε κωδικό πληροφορίες µπορούν να συνδεθούν µε ένα συγκεκριµένο αρχείο της κάρτας ή µε ένα µέρος

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 72 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

αυτού ή µε όλη την ιεραρχία αρχείων στην κάρτα. Η επιτυχής εκτέλεση αυτής της εντολής δείχνει ότι η εφαρµογή του αναγνώστη ήξερε το σωστό κωδικό πρόσβασης και βάζει την κάρτα σε µία κατάσταση έτσι ώστε οποιαδήποτε περαιτέρω πρόσβαση σε ένα αρχείο που φρουρείται από αυτόν τον κωδικό πρόσβασης να είναι επιτυχής.

Εάν η εντολή Verify αποτύχει (δηλαδή ο κωδικός πρόσβασης που απαιτείται από την κάρτα δεν παρέχεται σωστά από την εφαρµογή), επιστρέφεται ένας δείκτης θέσης λάθους.

4.2.3.2 Η εντολή Internal Authenticate

Η εντολή Internal Authenticate είναι µια εντολή που στέλνεται από µια εφαρµογή του αναγνώστη στο σύστηµα ασφάλειας στην κάρτα για να επιτρέψει στην κάρτα να αποδείξει ότι κατέχει ένα µυστικό κλειδί που µοιράζεται µε την εφαρµογή. Για να προετοιµάσει αυτήν την εντολή, η εφαρµογή δηµιουργεί ένα σύνολο δεδοµένων πρόκλησης. ∆ηλαδή ουσιαστικά η εφαρµογή παράγει έναν τυχαίο αριθµό. Αυτός ο αριθµός κρυπτογραφείται έπειτα από έναν κοινό αλγόριθµο (µε την κάρτα). Αυτό αποτελεί µια πρόκληση στην κάρτα.

Όταν δίνεται η εντολή, η κάρτα αποκρυπτογραφεί την πρόκληση µε ένα µυστικό κλειδί που αποθηκεύεται σε ένα αρχείο σ’ αυτήν. Οι πληροφορίες που προέρχονται από την αποκρυπτογράφηση στέλνονται έπειτα πίσω στην εφαρµογή ως απάντηση στην εντολή. Εάν η κάρτα πραγµατικά έχει το σωστό µυστικό κλειδί, οι πληροφορίες που στέλνονται πίσω είναι ο τυχαίος αριθµός που είχε παράγει αρχικά η εφαρµογή.

Αυτή η εντολή χρησιµοποιείται από τον αναγνώστη για να επικυρωθεί η ταυτότητα της κάρτας. ∆ηλαδή όταν η εντολή ολοκληρωθεί επιτυχώς, ο αναγνώστης ξέρει την ταυτότητα της κάρτας και µπορεί να δώσει στην κάρτα πρόσβαση στις πληροφορίες ή στις υπηρεσίες του.

4.2.3.3 Η εντολή External Authenticate

Η εντολή External Authenticate χρησιµοποιείται από τη µεριά του αναγνώστη σε συνεργασία µε την εντολή Get Challenge (που περιγράφεται στο επόµενο τµήµα) για να επιτρέψει τoν αναγνώστη να επικυρώσει η ταυτότητά του στην κάρτα.

Μέσω της εντολής Get Challenge, ο αναγνώστης λαµβάνει ένα σύνολο δεδοµένων πρόκλησης από την κάρτα (δηλαδή ένας τυχαίος αριθµός που παράγεται από την κάρτα). Ο αναγνώστης κρυπτογραφεί έπειτα αυτές τα δεδοµένα µε ένα µυστικό κλειδί. Αυτό διαµορφώνει

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 73 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

έπειτα ένα κρυπτογράφηµα που στέλνεται στην κάρτα µέσω της εντολή External Authenticate. Εάν ο αναγνώστη έχει το ίδιο µυστικό κλειδί που είναι αποθηκευµένο στην κάρτα, τότε όταν η κάρτα αποκρυπτογραφήσει το κρυπτογράφηµα θα βρει τον ίδιο τυχαίο αριθµό που παράχθηκε από την τελευταία εντολή Get Challenge. Εποµένως, η κάρτα θα ξέρει τώρα την ταυτότητα του αναγνώστη και µπορεί να του δώσει πρόσβαση στα στοιχεία που είναι αποθηκευµένα σ’ αυτήν.

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

4.2.3.4 Η εντολή Get Challenge

Η εντολή Get Challenge χρησιµοποιείται από τη µεριά του αναγνώστη για να εξαχθούν τα δεδοµένα που µπορούν να χρησιµοποιηθούν για να δηµιουργήσουν ένα κρυπτογράφηµα για την κάρτα και αργότερα να επικυρωθούν µέσω της εντολής External Authenticate. Το αποτέλεσµα αυτής της εντολής είναι η παραγωγή ενός τυχαίου αριθµού από την κάρτα, ο οποίος έπειτα περνά πίσω στην εφαρµογή του αναγνώστη.

4.2.3.5 Η εντολή Manage Channel

Η εντολή Manage Channel χρησιµοποιείται από τη µεριά του αναγνώστη για να ανοίξουν και να κλείσουν τα λογικά κανάλια επικοινωνίας µεταξύ του και της κάρτας. Όταν η κάρτα καθιερώσει αρχικά ένα application-level πρωτόκολλο µε τον αναγνώστη (δηλαδή µετά από την ακολουθία ATR), ανοίγει ένα βασικό κανάλι επικοινωνίας. Αυτό το κανάλι χρησιµοποιείται έπειτα για να ανοίξουν ή να κλείσουν πρόσθετα λογικά κανάλια µέσω της εντολής Manage Channel.

4.2.3.6 Η εντολή Envelope

Η εντολή Envelope υποστηρίζει τη χρήση ασφαλών µηνυµάτων µέσω του T=0 link-level πρωτοκόλλου. Στα ασφαλή µηνύµατα, η πλήρης εντολή APDU πρέπει να κρυπτογραφηθεί. Εντούτοις, δεδοµένου ότι τα CLA και INS byte από το APDU επικαλύπτουν τα στοιχεία του TPDU, αυτές τα byte (στο TPDU) δεν µπορούν να κρυπτογραφηθούν εάν το link-level πρωτόκολλο βρίσκεται σε λειτουργία. Έτσι η εντολή Envelope επιτρέπει να κρυπτογραφηθεί όλο το APDU και να περιληφθεί έπειτα στο τµήµα δεδοµένων της εντολής Envelope. Ο APDU επεξεργαστής µπορεί έπειτα να εξαγάγει την εντολή και να την αναγκάσει να εκτελεσθεί.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 74 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

4.2.3.7 Η εντολή Get Response

Η εντολή Get Response είναι µια ακόµη εντολή που επιτρέπει τη χρήση του T=0 link-level πρωτοκόλλου για τη µεταβίβαση όλου του εύρους του APDU. Συγκεκριµένα, η Περίπτωση 4 του σώµατος του APDU δεν µπορεί να υποστηριχθεί µε το T=0 πρωτόκολλο. ∆ηλαδή δεν µπορεί να σταλθεί ένα σώµα δεδοµένων στην κάρτα και να ληφθεί έπειτα ένα σώµα δεδοµένων πίσω ως άµεση απάντηση σε εκείνη την εντολή. Για αυτόν τον τύπο εντολής, µε τη χρησιµοποίηση του T=0 πρωτοκόλλου, η αρχική εντολή οδηγεί σε µια απόκριση ότι υπάρχουν περισσότερα δεδοµένα σε αναµονή (στην κάρτα). Η εντολή Get Response χρησιµοποιείται έπειτα για να ανακτήσει αυτά τα δεδοµένα σε αναµονή.

Να σηµειωθεί ότι καµία άλλη εντολή δεν µπορεί να παρεµβληθεί µεταξύ της αρχικής εντολής και της εντολής Get Response.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 75 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

5 Η Κάρτα MULTIFLEX Της Schlumberger

Το κεφάλαιό µελετά σε βάθος την έξυπνη κάρτα 3K MULTIFLEX. Η έξυπνη κάρτα 3K MULTIFLEX περιέχει έναν SC21 single-chip οκτάµπιτο µικροελεγκτή Motorola στα 5 MHz µε 6.114 byte ROM, 3.008 byte EEPROM, και 128 byte RAM. Το τσιπ γράφει στην EEPROM 4 byte τη φορά. Ο SC21 χρειάζεται 7 χιλιοστά του δευτερολέπτου για να εκτελέσει µια λειτουργία εγγραφής 4 byte. Η κάρτα χρησιµοποιεί το T=0 πρωτόκολλο επικοινωνίας και µπορεί να επικοινωνήσει µε τον εξωτερικό κόσµο µε ταχύτητα 9600 BPS.

Η κάρτα 3K MULTIFLEX προσαρµόζεται στα πρότυπα του ISO 7816-4, που έχει αναπτυχθεί σε προηγούµενο κεφάλαιο. Μεταξύ της κάρτας και του host χρησιµοποιεί APDU, και η EEPROM οργανώνεται και προσεγγίζεται ως σύστηµα αρχείων του ISO 7816-4. Η κάρτα υποστηρίζει 21 εντολές, συµπεριλαµβανοµένου ενός ζεύγους που επεκτείνουν τα πρότυπα του ISO 7816-4 (π.χ., µια εντολή Create File που είναι καταφανώς ελλείπουσα από το παραπάνω πρότυπο).

5.1 Ενεργοποίηση Της Κάρτας : Reset & Answer To Reset

Ο µικροελεγκτής στην κάρτα MULTIFLEX επαναρυθµίζεται (reset) µε την ανύψωση της τάσης στην επαφή reset για περισσότερο από 50 microseconds και έπειτα µε το χαµήλωµα της. Μετά από µερικούς ελέγχους εσωτερικής λειτουργίας, το λειτουργικό σύστηµα MULTIFLEX της κάρτας επιλέγει το κύριο αρχείο και κατόπιν διαβιβάζει την 4 byte ATR στο τερµατικό στη γραµµή επικοινωνίας.

Η ATR για την κάρτα 3K MULTIFLEX είναι 3B16 0216 1416 5016 και η έννοια καθενός από αυτά τα byte δίνεται στον Πίνακα 16.

Πίνακας 16 Η ATR της κάρτας 3Κ MULTIFLEX της Schlumberger

Όνοµα ISO 7816 Περιγραφή Αξία Ερµηνεία TS Συγχρονισµός bit 3B16 1 είναι τάση υψηλή. Τ0 high-order byte

Άλλοι παρόντες τοµείς T 00002 Κανένας άλλος τοµέας T παρών.

Τ0 low-order byte Αριθµός παρουσιών ιστορικών byte στην ATR

216 ∆ύο ιστορικά byte είναι παρόντα στην ATR.

T1 Πρώτο ιστορικό byte 1416 Συστατικός κώδικας.

(component code) T2 ∆εύτερη ιστορικό byte 5016 Κώδικας µασκών.

(mask code)

Το πρώτο µέρος της ATR µέχρι το ιστορικό tail-end byte κυβερνάται από το ISO 7816-3. Το ιστορικό τµήµα των byte, εντούτοις, ποικίλλει ευρέως από κατασκευαστή σε κατασκευαστή καρτών. Η Schlumberger χρησιµοποιεί ιστορική ουρά 2 byte για να προσδιορίσει τον µικροελεγκτή στην κάρτα, δηλαδή το είδος του

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 76 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

(component code) και το λειτουργικό σύστηµα στη ROM (mask code). Ένα κώδικας component 1416 σηµαίνει ότι το τσιπ είναι Motorola SC21. Ο mask code 5016 σηµαίνει ότι η ROM περιέχει το λειτουργικό σύστηµα MULTIFLEX M24E-G2. ∆εδοµένου ότι το SC21 είναι ένα µέρος της 3K, εάν βάλετε αυτούς τους δύο κώδικες µαζί, παίρνετε τη MULTIFLEX 3K.

Θα ήταν πρακτικό εάν µπορούσαµε να προσδιορίσουµε παγκοσµίως µια έξυπνη κάρτα από την ATR της. ∆υστυχώς, πολλοί κατασκευαστές καρτών είναι µυστικοπαθείς σχετικά µε την κωδικοποίηση των ATR τους, έτσι είναι δύσκολο να γραφτούν εφαρµογές για ποικίλες κάρτες των οποίων η συµπεριφορά να εξαρτάται από τον ATR. Μετά τη διαβίβαση του ATR, η κάρτα πηγαίνει σε έναν βρόχο ψηφοφορίας, που τρέχει τις ίδιες οδηγίες επανειληµµένως, περιµένοντας µια εντολή από το πρόγραµµα εφαρµογής.

5.2 Φάκελοι & Αρχεία

Συνήθως οι περισσότερες λειτουργίες που κάνει κάποιος σε µια κάρτα είναι η εγγραφή και το διάβασµα δεδοµένων, αφού φυσικά έχει πιστοποιηθεί ότι έχει την άδεια να κάνει κάτι τέτοιο. Πρώτα απ' όλα, µια έξυπνη κάρτα είναι ενεργός φύλακας δεδοµένων. Σε αυτό το τµήµα, καλύπτεται η οργάνωση των δεδοµένων όσον αφορά τη 3K κάρτα MULTIFLEX. Είναι µια οργάνωση που αναµφίβολα πολλοί τη γνωρίζουν, δηλαδή µε φακέλους και αρχεία, ωστόσο υπάρχουν µεγάλες διαφορές µεταξύ των αρχείων στο σκληρό δίσκο και των αρχείων σε µια έξυπνη κάρτα.

5.2.1 Επιλέγοντας Ένα Φάκελο

Το κύριο αρχείο σε όλες τις έξυπνες κάρτες που χρησιµοποιούν το πρότυπο ISO-7816 έχει όνοµα 3F0016. Μπορούµε να κάνουµε το κύριο αρχείο τρέχον αρχείο µε την αποστολή µιας εντολής Select File 7-byte στην κάρτα µε το fileId του κύριου αρχείου ως στοιχείο της. Ένα παράδειγµα είναι:

C016 A416 0016 0016 0216 3F16 0016

Η έννοια κάθε ένα από τα byte στην εντολή Select File δίνεται στον Πίνακα 17.

Πίνακας 17 Η εντολή Select File της κάρτας 3K MULTIFLEX

Όνοµα ISO 7816 Περιγραφή Αξία Ερµηνεία

CLA Κατηγορία C016

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 77 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

INS Οδηγία A416

P1 Πρώτη παράµετρος 0016

P2 ∆εύτερη παράµετρος 0016

P3 Τρίτη παράµετρος 0216 ∆ύο byte δεδοµένων ακολουθούν

∆εδοµένα ∆εδοµένα 3F16 0016 FileId του αρχείου που επιλέγεται

Όποτε στέλνεται µια εντολή σε µια ISO 7816 έξυπνη κάρτα, θα αποκριθεί µε δύο byte κατάστασης αποκαλούµενες, λέξη κατάστασης 1 (SW1) και λέξη κατάστασης 2 (SW2). Αυτό δείχνει ποιο ήταν το αποτέλεσµα της επεξεργασίας της εντολής. Υποθέτοντας ότι υπάρχει ένα αρχείο µε το προσδιοριστικό 3F0016, αναµένει την κάρτα για να αποκριθεί µε

9016 0016

ο όποιος είναι ο απαραίτητος κώδικας επιστροφής κατάστασης του ISO 7816-4 για µια επιτυχή ολοκλήρωση. Αυτό θα έδειχνε ότι το λειτουργικό σύστηµα στην κάρτα βρήκε το αρχείο 3F0016 και ότι είναι τώρα το τρέχον αρχείο. Αντί για το 9016 0016 εντούτοις, η 3K MULTIFLEX αποκρίνεται µε

6116 1416

Αυτό είναι επίσης µια επιτυχής ολοκλήρωση αλλά µε κάποιες πρόσθετες πληροφορίες. Λέει δηλαδή ότι βρήκε το αρχείο που επιλέχθηκε επιτυχώς και υπάρχουν κάποιες διαθέσιµες πληροφορίες για το αρχείο αυτό. Το δεύτερο byte λέει πόσες πληροφορίες είναι διαθέσιµες: 1416, ή 20 byte.

Προκειµένου να ανακτηθούν αυτές οι πληροφορίες περιγραφής αρχείων, θα πρέπει να σταλεί µια εντολή Get Response στην κάρτα µε τον αριθµό των byte προς ανάκτηση ως τρίτο στοιχείο της. Ειδικότερα, τα byte

C016 C016 0016 0016 1416

ζητούν από το λειτουργικό σύστηµα να στείλει 20 byte πληροφοριών για το κύριο αρχείο από την 3K MULTIFLEX. Αν σταλεί αυτή η εντολή σε µια αχρησιµοποίητη κάρτα, η κάρτα επιστρέφει τα ακόλουθα 20 byte:

0016 0016 0B16 1016 3F16 0016 3816 FF16 FF16 4416 4416 0116 0516 0316 0016 0216 0016 0016 0016 0016

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 78 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Η ερµηνεία των παραπάνω byte δίνεται στον Πίνακα 18.

Πίνακας 18 Πληροφορίες ελέγχου αρχείου για το master file (3F0016)

Byte Περιγραφή Αξία Ερµηνεία της αξίας

1-2 Αχρησιµοποίητο 0016 0016 Αχρησιµοποίητο

3-4 Ελεύθερα byte στο επιλεγµένο αρχείο

0B16 0116 Υπάρχουν 2.832 byte διαθέσιµα σε αυτόν τον κατάλογο.

5-6 fileId του επιλεγµένου αρχείου

3F16 0016 Το επιλεγµένο αρχείο έχει fileId 3F0016.

7 Τύπος επιλεγµένου αρχείου

3816 Το επιλεγµένο αρχείο είναι ένα αρχείο καταλόγου.

8 High Αχρησιµοποίητο Byte F16 Αχρησιµοποίητος.

8 Low Αχρησιµοποίητο Byte F16 Αχρησιµοποίητος.

9 High Byte πρόσβασης για την εντολή Directory

F16 Η εντολή Directory δεν µπορεί ποτέ να χρησιµοποιηθεί σε αυτόν τον κατάλογο.

9 Low Byte αχρησιµοποίητο F16 Αχρησιµοποίητο

10 High Byte πρόσβασης για την εντολή Delete File

416 Απαίτηση κρυπτογραφηµένου κλειδιού για τη χρησιµοποίηση της εντολής Delete File.

10 Low Byte πρόσβασης για την εντολή Create File

416 Απαίτηση κρυπτογραφηµένου κλειδιού για τη χρησιµοποίηση της εντολής Create File

11 High Byte πρόσβασης για την εντολή Rehabilitate

416 Απαίτηση κρυπτογραφηµένου κλειδιού για τη χρησιµοποίηση της εντολής Rehabilitate.

11 Low Byte πρόσβασης για την εντολή Invalidate

416 Απαίτηση κρυπτογραφηµένου κλειδιού για τη χρησιµοποίηση της εντολής Invalidate.

12 Κατάσταση του επιλεγµένου αρχείου

0116 Το αρχείο είναι αυτήν την περίοδο απελευθερωµένο.

13 Αριθµός byte στην ακολουθία των δεδοµένων

0516 5 byte δεδοµένων ακολουθούν.

14 Χαρακτηριστικά γνωρίσµατα

0316 Αχρησιµοποίητο.

15 Αριθµός υποκαταλόγων 0016 ∆εν υπάρχει κανένας υποκατάλογος σε αυτόν τον κατάλογο.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 79 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

16 Αριθµός elementary files 0216 Υπάρχουν δύο elementary files σε αυτόν τον κατάλογο.

17 Αριθµός µυστικών κωδίκων

0016 ∆εν υπάρχει κανένας µυστικός κώδικας σε αυτόν τον κατάλογο.

18 Αχρησιµοποίητο 0016 Αχρησιµοποίητο.

19 Κατάσταση του PIN για αυτόν τον κατάλογο

0016 ∆εν υπάρχει κανένα αρχείο PIN στον τρέχοντα κατάλογο.

Αυτά τα 20 byte των πληροφοριών περιγραφής αρχείων µπορούν να ανακτηθούν µε τη εντολή Get Response, όποτε επιλέγεται ένα αρχείο καταλόγου. Τα byte 3 & 4 λένε ότι υπάρχουν 2.832 byte διαθέσιµα για νέα αρχεία και υποκαταλόγους σε αυτόν τον κατάλογο. ∆εδοµένου ότι το κύριο αρχείο είναι ο root κατάλογος στην κάρτα και όλοι οι άλλοι κατάλογοι και αρχεία πρέπει να περιλαµβάνονται σε αυτό, γίνεται γνωστό ότι υπάρχουν 2.832 byte αχρησιµοποίητου χώρου EEPROM σε ολόκληρη την κάρτα. Αυτό είναι το ποσό αµετάβλητης µνήµης της κάρτας που είναι διαθέσιµη προς χρήση από τις εφαρµογές. Τα byte 5 & 6 επαναλαµβάνουν απλώς το fileId του επιλεγµένου αρχείου.

Το byte 7 λέει ποιος από τους πιθανούς πέντε τύπους αρχείου της κάρτας MULTIFLEX έχει επιλεχτεί. Η κάρτα MULTIFLEX υποστηρίζει τους πέντε διαφορετικούς τύπους αρχείων που απαριθµούνται στον Πίνακα 19.

Πίνακας 19 Τύποι αρχείων της MULTIFLEX

Τύπος αρχείου

Αξία του byte Μέγιστο µέγεθος εγγραφών

Μέγιστος αριθµός

εγγραφών

Directory File 3816

Transparent file 0116

Record File µε καθορισµένου µήκους εγγραφές

0216 255 byte 255

Record File µε µεταβλητού µήκους εγγραφές

0416 255 byte 255

Cyclic File 0616 255 byte 255

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 80 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Τα αρχεία που δεν είναι αρχεία καταλόγου (δηλ. τα δυαδικά, transparent, record και cyclic αρχεία) αναφέρονται συχνά ως στοιχειώδη αρχεία (elementary). Τα µη δοµηµένα δυαδικά αρχεία καλούνται επίσης transparent αρχεία επειδή η δοµή του αρχείου είναι διαφανής στο λειτουργικό σύστηµα.

Το byte 8 της περιγραφής αρχείων είναι αχρησιµοποίητο για τα αρχεία καταλόγου. Για τα στοιχειώδη αρχεία, τα 2 high-order bit του byte 8 περιορίζουν τις διαδικασίες που µπορούν να εφαρµοστούν στο αρχείο όπως φαίνεται στον πίνακα 20.

Πίνακας 20 Όροι πρόσβασης εντολών ανανέωσης στοιχειωδών αρχείων

Bit 8 Bit 7 Επιτρεπόµενες ∆ιαδικασίες Απαγορευµένες διαδικασίες 0 0 Update Increase, Decrease 0 1 Update, Increase Decrease 1 0 Update, Decrease Increase 1 1 Decrease, Increase Update

Τα έξι (δεκαεξαδικά ψηφία) των byte 9 µέχρι 11 των 20 byte που επιστρέφονται από την Get Response δίνουν τους όρους πρόσβασης για τις διάφορες διαδικασίες στο επιλεγµένο αρχείο. Ένας όρος πρόσβασης δηλώνει ποια ταυτότητα πρέπει να καθιερωθεί από την οντότητα που εκδίδει την εντολή προτού να µπορέσει να εκτελεσθεί η εντολή. Παραδείγµατος χάριν, ένας όρος πρόσβασης µπορεί να απαιτεί το κατάλληλο PIN για να επιτρέψει την ανάγνωση ενός συγκεκριµένου αρχείου. Συνδεδεµένο µε κάθε τύπο αρχείου είναι ένα σύνολο διαδικασιών που συνδέουν τους όρους πρόσβασης µε τους τύπους. Ο Πίνακας 21 παρουσιάζει τις εντολές αρχείων που µπορούν να συνδέσουν τους όρους πρόσβασης µε τους διάφορους τύπους.

Πίνακας 21 ∆ιαδικασίες µε όρους πρόσβασης

∆ιαδικασίες προστατευµένες µε κλειδί

Τιµή όρου πρόσβασης

Αρχεία καταλόγου Directory 9 high Delete File 10 high Create File 10 low Rehabilitate 11 high Invalidate 11 low Στοιχειώδη αρχεία Read, Seek 9 high Update, Decrease, Decrease Stamped 9 low Increase, Increase Stamped 10 high Create Record 10 low Rehabilitate 11 high Invalidate 11 low

Για παράδειγµα, η αξία high στο byte 10 λέει ποιο είδος κλειδιού πρέπει να παρουσιαστεί στην κάρτα προτού να µπορέσει να

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 81 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

διαγράφει ένα αρχείο στον επιλεγµένο κατάλογο. Υπάρχουν επτά πιθανές τιµές για αυτά τα δεκαεξαδικά στοιχεία. Αυτές οι τιµές δίνονται στον Πίνακα 22. Περιγράφουν ποια λειτουργία επικύρωσης πρέπει να εκτελεσθεί επιτυχώς προκειµένου να ικανοποιηθεί ο όρος πρόσβασης και να είναι σε θέση να εκτελέσει την εντολή. Παραδείγµατος χάριν, εάν το 0116 συνδέεται µε την εντολή Read και Seek σε ένα συγκεκριµένο αρχείο, κατόπιν ο κάτοχος της κάρτας θα πρέπει να παρουσιάσει ένα έγκυρη PIN στην κάρτα προτού εκτελεστεί η εντολή.

Πίνακας 22 Οντότητες και πιστοποιήσεις για όρους πρόσβασης

Γνώση Κλειδιού που απαιτείται Αξία του όρου πρόσβασης

Καµία – Κάθε λειτουργία είναι δυνατή 016

PIN - 4-ψηφίος προσωπικός αριθµός αναγνώρισης

116

Protected 8-byte κρυπτογραφικό κλειδί 316

Authenticated - 8-byte κρυπτογραφικό κλειδί 416

PIN και Protected 616

PIN και Authenticated 816

Καµία – Κάθε λειτουργία είναι δυνατή F16

Στην περιγραφή του κύριου αρχείου στη 3K MULTIFLEX, η αξία high στο byte 10 είναι 416, το οποίο σηµαίνει ότι πρέπει να παρουσιαστεί επιτυχώς ένα 8ψήφιο κρυπτογραφικό κλειδί στην κάρτα προτού να επιτραπεί η διαγραφή ενός αρχείου στο κύριο αρχείο. Η αξία high στο byte 9 είναι F16 λέει πως ότι κλειδί και να παρουσιαστεί δεν µπορεί να χρησιµοποιηθεί η εντολή Directory.

5.2.2 Επιλέγοντας Ένα Στοιχειώδες Αρχείο

Όπως έχει υποδειχθεί σε µια αχρησιµοποίητη κάρτα MULTIFLEX στο κύριο αρχείο, υπάρχουν δύο στοιχειώδη αρχεία και κανένας υποκατάλογος. Τα δύο στοιχειώδη αρχεία έχουν fileId 000216 και 001116. Το πρώτο στοιχειώδες αρχείο, 000216, ονοµάζεται αρχείο αύξοντος αριθµού (serial number file) και το δεύτερο, 001116, ονοµάζεται βασικό αρχείο µεταφορών (transport key file).

Το serial number file περιέχει µια ακολουθία 8 byte που προσδιορίζει µεµονωµένα την κάρτα µεταξύ όλων των εκατοµµυρίων των καρτών που κατασκευάζονται πάντα από τη Schlumberger. Όπως τα ιστορικά byte του ATR, το πώς αυτός ο αύξων αριθµός τοποθετείται σε µια κάρτα ποικίλλει από κατασκευαστή σε

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 82 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

κατασκευαστή. Τα 8 byte στο serial number file µιας κάρτας της Schlumberger έχουν την ακόλουθη ερµηνεία:

Byte 1-4 Αριθµός σειράς Byte 5 Κώδικας προσδιορισµού πελάτη Byte 6-7 Περιοχή κατασκευής Schlumberger Byte 8 Χρήση

Το transport key file είναι ένα κλειδί που κλειδώνει την κάρτα καθώς στέλνεται από τη Schlumberger στον πελάτη. Με αυτόν τον τρόπο, εάν κάποιος κλέψει τις κάρτες κατά τη µεταφορά τους δε θα µπορεί να τις χρησιµοποιήσει. Η Schlumberger στέλνει το transport key file για τις κάρτες µε έναν διαφορετικό, πιο ασφαλή τρόπο στον πελάτη. Όταν οι κάρτες φθάνουν, ο πελάτης χρησιµοποιεί το κλειδί µεταφορών για να ξεκλειδώσει τις κάρτες, για να τις προσωποποιήσει, και για να προσθέσει τα νέα κλειδιά σε αυτές. Στο τέλος αυτής της διαδικασίας, µπορεί να αλλάξει ή να σβήσει εντελώς το κλειδί µεταφορών.

Ένα απλό κλειδί µεταφορών είναι ικανοποιητικό για τις σχετικά χαµηλής αξίας κάρτες. Οι κάρτες υψηλής αξίας χρησιµοποιούν τα πιο επιµεληµένα βασικά πρωτόκολλα µεταφορών. Παραδείγµατος χάριν, µπορεί να υπάρξει ένα διαφορετικό κλειδί µεταφορών σε κάθε κάρτα που είναι µια µυστική λειτουργία του αύξοντος αριθµού της κάρτας (ένα διαφοροποιηµένο κλειδί), ή η κάρτα µπορεί να πρέπει να λάβει µια κατάλληλα κρυπτογραφηµένη έκδοση µιας πρόκλησης από µια mother card ή µια batch card προτού να ξεκλειδωθεί.

Εάν επιλεχθεί πάλι το αρχείο αύξοντος αριθµού, 0002, χρησιµοποιώντας την εντολή Select File:

C016 A416 0016 0016 0216 0016 0216

παίρνει έναν επιστρεφόµενο κώδικα κατάστασης

6116 0F16

το οποίο σηµαίνει ότι υπάρχουν 15 (0F16) byte περιγραφικών πληροφοριών για τον αύξοντα αριθµό. Έτσι, αν σταλθεί στην κάρτα µια Get Response για την ανάκτηση αυτών των πληροφοριών:

C016 C016 0016 0016 0F16

Θα επιστραφεί αυτό:

0016 0016 0016 0816 0016 0216 0116 0016 0416 FF16 FF16 0116 0116 0016 0016

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 83 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Η έννοια των byte που επιστρέφονται από την Get Response για την επιλογή ενός στοιχειώδους αρχείου είναι παρόµοια αλλά όχι ίδια µε την έννοια των byte που επιστρέφονται µετά από την επιλογή ενός αρχείου καταλόγου. ∆είτε τον πίνακα 23.

Πίνακας 23 Πληροφορίες ελέγχου για το αρχείου σειριακού αριθµού (000216)

Byte Περιγραφή Αξία Ερµηνεία της αξίας 1-2 Αχρησιµοποίητο 0016

0016 Αχρησιµοποίητο.

3-4 Ελεύθερα byte στο επιλεγµένο αρχείο

0016 0816

Υπάρχουν 8 byte σε αυτό το αρχείο.

5-6 fileId του επιλεγµένου αρχείου

0016 0216

Το επιλεγµένο αρχείο έχει fileId 000216.

7 Τύπος επιλεγµένου αρχείου

0116 Το επιλεγµένο αρχείο είναι ένα διαφανές αρχείο.

8 High Περιορισµός της Update, της Increase, και της Decrease

016 Μόνο η εντολή Update µπορεί να χρησιµοποιηθεί.

8 Low Αχρησιµοποίητο 016 Αχρησιµοποίητο. 9 High Ο όρος πρόσβασης για

διαβασµένος και επιδιώκει τις εντολές

016 Καθένας µπορεί να χρησιµοποιήσει τις εντολές Read & Seek σε αυτό το αρχείο.

9 Low Όρος πρόσβασης για την Update, τη Decrease, και τη Stamped Decrease

416 Πρέπει να ξέρετε ένα κρυπτογραφικό κλειδί για να ενηµερώνετε αυτό το αρχείο.

10 High Όρος πρόσβασης για την Increase και τη Stamped Increase

F16 Αυτές οι εντολές δεν µπορούν ποτέ να χρησιµοποιηθούν σε αυτό το αρχείο.

10 Low Όρος πρόσβασης για την εντολή Create File

F16 Αυτές οι εντολές δεν µπορούν ποτέ να χρησιµοποιηθούν σε αυτό το αρχείο.

11 High Όρος πρόσβασης για την εντολή Rehabilitate

F16 Αυτές οι εντολές δεν µπορούν ποτέ να χρησιµοποιηθούν σε αυτό το αρχείο.

11 Low Όρος πρόσβασης για την εντολή Invalidate

F16 Αυτές οι εντολές δεν µπορούν ποτέ να χρησιµοποιηθούν σε αυτό το αρχείο.

12 Κατάσταση του επιλεγµένου αρχείου

0116 Το αρχείο είναι αυτήν την περίοδο απελευθερωµένο.

13 Αριθµός byte στην ακολουθία των δεδοµένων

0116 Ένα byte δεδοµένων ακολουθεί.

14 Αχρησιµοποίητο 0016 Αχρησιµοποίητο. 15 Μήκος εγγραφών σε

αρχεία εγγραφών καθορισµένου µήκους

0016 ∆εν είναι αρχείο δοµηµένο σε εγγραφές.

∆εδοµένου ότι δεν πρέπει να ξέρουµε οποιοδήποτε κλειδί για να διαβάζουµε το περιεχόµενο αυτού του αρχείου, µπορούµε να χρησιµοποιήσουµε εντολή Read Binary για να ρίξουµε µια µατιά στα 8 byte σε αυτό το αρχείο. Η εντολή Read Binary διαβάζει τα byte από τα διαφανή αρχεία. Τα byte που στέλνουµε στην κάρτα είναι

C016 B016 0016 0016 0816

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 84 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Το C016 είναι ο κώδικας κατηγορίας και το B016 είναι ο κώδικας οδηγίας για την εντολή Read Binary. Τα επόµενα δύο byte λένε από ποιο offset από το πρώτο byte στο αρχείο πρέπει να αρχίσει το διάβασµα και το τελευταία byte λέει πόσα byte πρέπει να διαβαστούν. ∆εδοµένου ότι θέλουµε να δούµε όλα τα byte στο αρχείο στέλνουµε 8 byte που αρχίζουν µε offset 0,

Τα 8 byte που ανακτούµε είναι τα παρακάτω:

0016 0016 0E16 6716 0116 0016 0016 0216

Τα πρώτα 4 byte είναι ο αύξων αριθµός της κάρτας (0016 0016 0E16 6716) και τα δεύτερα 4 byte είναι ένας κωδικός κατασκευαστή. Συνολικά, αυτά τα 8 byte είναι εγγυηµένα να είναι ένας µοναδικός αύξων αριθµός για την έξυπνη κάρτα.

Εάν επιλέξουµε το βασικό αρχείο µεταφορών, 0011:

C016 A416 0016 0016 0216 0016 1116

και αναστήσουµε τον κώδικα κατάστασης:

6116 0F16

και χρησιµοποιήσουµε τη εντολή Get Response για να πάρουµε τα 15 byte πληροφοριών:

0016 C016 0016 0016 0F16

παίρνουµε αυτό:

0016 0016 0016 2616 0016 1116 0116 0016 F416 4016 F416 0116 0116 0016 0016

Η ερµηνεία αυτών των byte δίνεται στον Πίνακα 24.

Πίνακας 24 Πληροφορίες ελέγχου για το αρχείο εξωτερικής επικύρωσης (001116)

Byte Περιγραφή Αξία Ερµηνεία της αξίας 1-2 Αχρησιµοποίητο 0016 0016 Αχρησιµοποίητο. 3-4 Ελεύθερα byte στο επιλεγµένο

αρχείο 0016 2616 Υπάρχουν 38 byte σε αυτό το

αρχείο. 5-6 FileId του επιλεγµένου αρχείου 0016 1116 Το επιλεγµένο αρχείο έχει

fileId 001116. 7 Τύπος επιλεγµένου αρχείου 0116 Το επιλεγµένο αρχείο είναι

ένα διαφανές αρχείο. 8 High Περιορισµός της Update, της

Increase, και της Decrease 016 Μόνο η εντολή Update µπορεί

να χρησιµοποιηθεί. 8 Low Αχρησιµοποίητο 016 Αχρησιµοποίητο. 9 High Ο όρος πρόσβασης για τις

εντολές Read & Seek F16 Κανένας δεν µπορεί να

χρησιµοποιήσει τις εντολές

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 85 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Read & Seek σε αυτό το αρχείο.

9 Low Όρος πρόσβασης για την Update, τη Decrease, και τη Stamped Decrease

416 Πρέπει να είναι γνωστό ένα κρυπτογραφικό κλειδί.

10 High Όρος πρόσβασης για την Increase και τη Stamped Increase

416 Πρέπει να είναι γνωστό ένα κρυπτογραφικό κλειδί.

10 Low Όρος πρόσβασης για τη εντολή Create File

016 Οποιοσδήποτε µπορεί να χρησιµοποιήσει αυτήν την εντολή σε αυτό το αρχείο.

11 High Όρος πρόσβασης για την εντολή Rehabilitate

Φ16 Η Rehabilitate δεν µπορεί ποτέ να χρησιµοποιηθεί σε αυτό το αρχείο.

11 Low Όρος πρόσβασης για την εντολή Invalidate

416 Πρέπει να είναι γνωστό ένα κρυπτογραφικό κλειδί.

12 Θέση του επιλεγµένου αρχείου 0116 Το αρχείο είναι αυτήν την περίοδο απελευθερωµένο.

13 Αριθµός byte στην ακολουθία δεδοµένων

0116 Ένα byte δεδοµένων ακολουθεί.

14 Αχρησιµοποίητο 0016 Αχρησιµοποίητο. 15 Μήκος του αρχείου στα

καθορισµένου µήκους αρχεία αρχείων

0016

Εάν αγνοήσουµε τους όρους πρόσβασης σε αυτό το αρχείο και προσπαθήσουµε να διαβάσουµε το περιεχόµενο χωρίς να παρουσιάσουµε επιτυχώς το κλειδί Authenticate στην κάρτα, η επιστροφή κατάστασης από την κάρτα θα είναι

6916 8216

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

Όπως περιγράφτηκε παραπάνω, ο λόγος που το κλειδί σε αυτό το αρχείο καλείται κλειδί µεταφορών είναι ότι είναι το κλειδί που κλειδώνει την κάρτα κατά τη διάρκεια της µεταφοράς από τον κατασκευαστή καρτών στον πελάτη. Αυτό αποτρέπει κάποιον να κλέψει το κουτί που περιέχει τις κάρτες και ενδεχοµένως να βάλει κάτι επικίνδυνο στις κάρτες. Το κλειδί µεταφορών δίνεται συνήθως απευθείας στον πελάτη συνήθως ταχυδροµικώς, µε fax, µέσω τηλεφώνου ή µε courier.

5.2.3 Κλειδιά & Αρχεία Κλειδιών

Υπάρχουν δύο είδη κλειδιών που χρησιµοποιούνται στην έξυπνη κάρτα MULTIFLEX: Κωδικοί PIN και κρυπτογραφικά κλειδιά. Οι κωδικοί PIN χρησιµοποιούνται για την επικύρωση κάρτας-

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 86 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ανθρώπου. Τα κρυπτογραφικά κλειδιά χρησιµοποιούνται για την επικύρωση κάρτας-υπολογιστή.

Οι κωδικοί PIN χρησιµοποιούνται από την κάρτα για να σιγουρευτούν ότι το πρόσωπο που προσπαθεί να χρησιµοποιήσει την κάρτα εξουσιοδοτείται να κάνει κάτι τέτοιο. Οι κωδικοί PIN είναι συνήθως τέσσερα ψηφία, αλλά µπορούν να είναι µέχρι και οκτώ ψηφία. Σε ένα σύνηθες σενάριο, ο κάτοχος της κάρτας καλείται να πληκτρολογήσει έναν κωδικό PIN σε ένα αριθµητικό πληκτρολόγιο ή ένα πληκτρολόγιο που συνδέεται µε τον αναγνώστη καρτών που περιέχει την κάρτα. Ο εισαγόµενος αριθµός στέλνεται έπειτα στην κάρτα χρησιµοποιώντας τη εντολή Verify PIN. Εάν o εισαγόµενος αριθµός συµφωνεί µε την αξία που βρίσκεται στο τρέχον αρχείο PIN, κατόπιν το επίπεδο πρόσβασης στην κάρτα τίθεται σε CHV (που σηµαίνει Cardholder Verified) και ο κάτοχος κάρτας µπορεί να προχωρήσει και να εκτελέσει όλες τις διαδικασίες που εγκρίνονται στον όρο πρόσβασης CHV.

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

• Verify Key – Το τερµατικό µπορεί να καταδείξει τη γνώση ενός κρυπτογραφικού κλειδιού απλώς µε το να στείλει το κρυπτογραφικό κλειδί στην κάρτα.

• External Authentication - Το τερµατικό µπορεί να καταδείξει τη γνώση ενός κρυπτογραφικού κλειδιού µε τη χρησιµοποίηση του κλειδιού για να κρυπτογραφήσει µια πρόκληση που παρέχεται σε αυτό από την κάρτα.

• Internal Authentication – Η κάρτα µπορεί να καταδείξει τη γνώση ενός κρυπτογραφικού κλειδιού µε τη χρησιµοποίηση του κλειδιού για να κρυπτογραφήσει µια πρόκληση που παρέχεται σε αυτήν από το τερµατικό.

• Protected-mode Commands - Το τερµατικό µπορεί να χρησιµοποιήσει µια εντολή που προστατεύεται από ένα κρυπτογραφικό κλειδί µε την αποστολή µιας πρόκλησης που κρυπτογραφείται µαζί µε το κλειδί.

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

Κάθε φάκελος σε µια κάρτα 3K MULTIFLEX µπορεί να περιέχει µέχρι τρία αρχεία κλειδιών που ελέγχουν την πρόσβαση στα αρχεία

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 87 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

αυτού του φακέλου. Ένας φάκελος δεν χρειάζεται να περιέχει όλα τα αρχεία κλειδιών. Μπορεί να περιέχει µόνο το ένα, δύο, ή και τα τρία. Τα αρχεία κλειδιών είναι όλα διαφανή στοιχειώδη αρχεία που έχουν ειδικά διατηρηµένα ονόµατα. Τα ονόµατα των ειδικών αρχείων κλειδιών και το τι περιέχει κάθε αρχείο παρουσιάζονται στον Πίνακα 25.

Πίνακας 25 Αρχεία κλειδιών στην 3K MULTIFLEX

Προσδιοριστικό αρχείων κλειδιών

Όνοµα αρχείου κλειδιών

Περιεχόµενο Μέγιστος Αριθµός κλειδιών

000016 Αρχείο PIN Κώδικας ΑΣΦΑΛΕΙΑΣ. 1 000116 αρχείο

εσωτερικής επικύρωσης

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

16

001116 Αρχείο εξωτερικής επικύρωσης

Εξωτερικά κρυπτογραφικά κλειδιά: Κλειδιά που χρησιµοποιεί η κάρτα για να αποδείξει την ταυτότητά των οντοτήτων έξω από αυτή.

16

Εάν ένα αρχείο PIN 000016 είναι παρόν στον φάκελο, περιέχει µια ακολουθία 23 byte περιγράφοντας έναν κώδικα PIN. Η µορφή αυτού δίνεται στον Πίνακα 26.

Πίνακας 26 Μορφή ενός αρχείου PIN

Αριθµός byte

Περιγραφή Τιµές δειγµάτων

Ερµηνεία των τιµών δειγµάτων

Σχόλιο

1 Byte ενεργοποίησης

FF16 Το PIN είναι απελευθερωµένο.

Μια αξία 0016 σηµαίνει ότι το PIN εµποδίζεται.

2 ∆ιατηρηµένο για µελλοντική χρήση.

3 ∆ιατηρηµένο για µελλοντική χρήση.

4-11 Κώδικας PIN 0116 0216 0316 0416 FF16 FF16 FF16 FF16 FF16

Το PIN είναι 1234 Μια αξία των byte αγνοείται στον έλεγχο ενός παρουσιασµένου PIN.

12 Προσπάθειες που επιτρέπονται

0316 Τρεις διαδοχικές ανακριβείς εισαγωγής του PIN θα µπλοκάρουν το PIN.

Όταν το PIN µπλοκάρεται πρέπει να χρησιµοποιηθεί το Unblocking PIN και η εντολή Unblock PIN για

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 88 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

να ξεµπλοκαριστεί

13 Εναποµείναντες προσπάθειες

0316 Υπάρχουν 3 προσπάθειες εισαγωγής του σωστού PIN πριν αυτό µπλοκαριστεί

Μια επιτυχής εισαγωγή µηδενίζει την τιµή των Attempts Allowed.

14-21 Ξεµπλοκάρισµα του κωδικού PIN

0816 0716 0616 0516 0416 0316 0216 0116

87654321 είναι ο κωδικός PIN που απαιτείται για να ξεµπλοκαριστεί το PIN.

Αυτό το κλειδί είναι συνήθως γνωστό στον εκδότη καρτών αλλά όχι τον κάτοχο κάρτας. Ο κάτοχος κάρτας πρέπει να παρουσιάσει την κάρτα στον εκδότη καρτών για να το πάρει.

22 Προσπάθειες ξεµπλοκαρίσµατος που επιτρέπονται

0316 Τρεις διαδοχικές ανακριβείς εισαγωγής του Unblocking PIN θα µπλοκάρουν το PIN για πάντα.

∆εν υπάρχει τρόπος να ξεµπλοκαριστεί µια τέτοια κατάσταση όποτε αχρηστεύεται η κάρτα

23 Εναποµείναντες προσπάθειες ξεµπλοκαρίσµατος

0316 Υπάρχουν 3 προσπάθειες εισαγωγής του σωστού Unblocking PIN πριν αυτό µπλοκαριστεί

Τα δύο κρυπτογραφικά αρχεία κλειδιών, 000116 και 001116, έχουν τη δοµή που φαίνεται στον Πίνακα 27.

Πίνακας 27 Μορφή εσωτερικού και εξωτερικού κλειδιού πιστοποίησης

Αριθµός byte

Περιγραφή Τιµές δειγµάτων

Ερµηνεία των τιµών

δειγµάτων

Σχόλιο

1 Αχρησιµοποίητο 2 Μήκος του

κλειδιού 0 816 Το κλειδί 0 είναι 8

byte. Τα κρυπτογραφικά κλειδιά µπορούν να είναι από 1 έως 255 byte.

3 Αλγόριθµος για το κλειδί 0

016 Χρήση DES µε το κλειδί 0

4-11 Κλειδί 0 FF16 FF16 FF16 FF16 FF16 FF16 FF16 FF16

12 Μέγιστες 0316 Κλειδί φραγµών

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 89 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

προσπάθειες για το κλειδί 0

µετά από τρεις διαδοχικές αποτυχηµένες προσπάθειες.

13 Υπόλοιπες προσπάθειες για το κλειδί 0

0316 Υπάρχουν τρεις αποτυχίες που αφήνονται προτού να εµποδιστεί το κλειδί.

14 Μήκος του κλειδιού 1

816 Το κλειδί 1 είναι 8 byte.

15 Αλγόριθµος για το κλειδί 1

016 Χρήση DES µε το κλειδί 1.

16-23 Κλειδί 1 4716 4616 5816 4916 3216 5616 7816 4016

24 Μέγιστες προσπάθειες για το κλειδί 1

0316 Κλειδί φραγµών µετά από τρεις διαδοχικές αποτυχηµένες προσπάθειες.

25 Υπόλοιπες προσπάθειες για το κλειδί 1

0316 Υπάρχουν τρεις αποτυχίες που αφήνονται προτού να εµποδιστεί το κλειδί.

26 Μήκος του κλειδιού 2

816 Το κλειδί 2 είναι 8 byte µακριές.

27 Αλγόριθµος για το κλειδί 2

016 Χρήση DES µε το κλειδί 2.

28-35 Κλειδί 2 FF16 FF16 FF16 FF16 FF16 FF16 FF16 FF16

36 Μέγιστες προσπάθειες για το κλειδί 2

0316 Κλειδί φραγµών µετά από τρεις διαδοχικές αποτυχηµένες προσπάθειες.

37 Υπόλοιπες προσπάθειες για το κλειδί 2

0316 Υπάρχουν τρεις αποτυχίες που αφήνονται προτού να εµποδιστεί το κλειδί.

38 Σηµαία για το τελευταίο κλειδί

016 Υπάρχουν περισσότερα κλειδιά σε αυτό το αρχείο.

5.2.4 ∆ηµιουργώντας Ένα Αρχείο PIN

Η προσθήκη ενός αρχείου PIN στην κάρτα MULTIFLEX απαιτεί τη χρησιµοποίηση της εντολής Create File στον root κατάλογο, και αυτό απαιτεί στη συνέχεια επικυρωµένα προνόµια, οπότε καλό είναι

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 90 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

να ξεκινήσουµε µε την επικύρωση. ∆εδοµένου ότι δε σκεφτόµαστε υπάρχουν κακόβουλοι χάκερ ανάµεσα στον αναγνώστη και την κάρτα, θα χρησιµοποιήσουµε την εντολή Verify Key και όχι την εντολή External Authenticate για να επικυρωθούµε στην κάρτα.

Με την εντολή Verify Key, δίνουµε τον αριθµό κλειδί στο εξωτερικό αρχείο επικύρωσης που θέλουµε να χρησιµοποιήσουµε για να επικυρώσουµε τόσο τους εαυτούς µας στην κάρτα όσο και το κλειδί. Παρακάτω παρατίθεται η εντολή Verify Key που στέλνεται στην κάρτα για να επιτύχει την κατάσταση Επικύρωσης:

CLS INS P1 Αριθµός Κλειδιού

Μήκος Κλειδιού

Κλειδί

F016 ΐ16 0016 0116 0816 4716 4616 5816 4916 3216 5616 7816 4016

Η κάρτα αποκρίνεται µε

9016 0016

και έτσι ξέρουµε ότι έχουµε άδεια εισόδου.

Τώρα δίνουµε την εντολή Create File για να δηµιουργήσουµε στην ουσία το αρχείο PIN:

CLS INS Μονογράψτε Αριθµός Recs

Μήκος δεδοµένων

Αχρησιµοποίητο Μέγεθος

F016 E016 0016 FF16 1016 FFFF16 001716

FID Τύπος αρχείου

Επίπεδα πρόσβασης

Κατάσταση Μήκος Κλειδιά πρόσβασης

000016 0116 316F16416 0116 0316 116116F16 416F16F16 F16116116 416416

Έπειτα, επειδή θέλουµε να γράψουµε τις τιµές κλειδιών (κωδικός PIN και Unblocking PIN) στο αρχείο, επιλέγουµε το αρχείο που δηµιουργήσαµε:

C016 A416 0016 0016 0216 0016 0016

∆ίνουµε µια εντολή Get Response για να ανακτήσουµε την περιγραφή του αρχείου και να σιγουρευτούµε ότι όλα είναι εντάξει:

C016 C016 0016 0016 0F16

Και παίρνουµε

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 91 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

0016 0016 0016 1716 0016 0016 0116 3F16 4416 FF16 4416 0116 0116 0016 0016

Όλα φαίνονται πως είναι εντάξει, έτσι προχωρούµε στο να γράψουµε τον κωδικό PIN, το Unblocking PIN, και τις παραµέτρους προσπάθειάς τους στο αρχείο χρησιµοποιώντας την εντολή Update Binary:

CLS INS Offset High

Offset Low

Αριθµός byte που θα

γραφούν

∆εδοµένα που θα γραφούν

C016 D016 0016 0016 1716 0116 FF16 FF16 3116 3216 3316 3416 FF16 FF16 FF16 FF16 0F16 0F16 3116 3216 3316 3416 3516 3616 3716 3816 0F16 0F16

Τα 23 byte που γράφονται στο αρχείο PIN ταιριάζουν ακριβώς µε την περιγραφή του αρχείου PIN που δίνεται στον Πίνακα 26.

Εάν διαβάζουµε τώρα τα 23 byte που βάλαµε στο αρχείο PIN

C016 B016 0016 0016 1716

παίρνουµε αυτό:

0116 FF16 FF16 3116 32163316 3416 FF16 FF16 FF16 FF16 0F16 0F16 31163216 3316 3416 3516 3616 3716 3816 0F16 0F16

Αυτό είναι ακριβώς που θέλουµε. Ο κωδικός PIN είναι 1234, το Unblocking PIN είναι 12345678, και οι δύο θα δεχτούν 15 διαδοχικές αποτυχίες πριν µπλοκαριστούν. Παρατηρούµε ότι µε την παραγωγή της ουράς των 4 byte FF16 στον κωδικό PIN, έχουµε δείξει ότι το PIN είναι τετραψήφιο. Η εντολή Verify PIN:

CLA INS P1 Αριθµός Κλειδιού

Μήκος Κλειδιού

PIN

C016 2016 0016 0116 0816 3116 3216 3316 3416 FF16 FF16 FF16 FF16

τώρα επιστρέφει αυτό:

9016 0016

Τώρα µπορούµε να χρησιµοποιήσουµε την εντολή Update Binary για να προσθέσουµε τα κλειδιά 0 και 2 στο εξωτερικό βασικό αρχείο έγκρισης, 001116, στον root φάκελο. Καθορίζουµε το κλειδί 0 να είναι SCDK1997:

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 92 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

C016 D616 0016 0116 0C16 0816 0016 5316 4316 4416 4B16 3116 3916 3916 3716 0516 0516

και το κλειδί 2 ως 37743128:

C016 D616 0016 1916 0C16 0816 0016 3316 3716 3716 3416 3316 3116 3216 3816 0716 0716

Το πρώτο κλειδί επιτρέπει 5 αποτυχηµένες προσπάθειες πριν µπλοκαριστεί και το δεύτερο κλειδί επιτρέπει 7.

5.2.5 Αρχείο Εγγραφών & Λειτουργία Εύρεσης

Τα αρχεία κλειδιών είναι διαφανή αρχεία. ∆εν έχουν καµία εσωτερική δοµή και διαβάζονται και γράφονται ως µια µεγάλη ακολουθία byte. Ένα αρχείο record ή ένα cyclic αρχείο οργανώνεται ως σειρά εγγράφων. Όλα τα αρχεία σε ένα αρχείο record µε καθορισµένου µήκους εγγραφές και σε ένα cyclic αρχείο είναι του ίδιου µήκους. Προφανώς, τα αρχεία σε ένα αρχείο record µε µεταβλητός µήκους εγγραφές µπορούν να είναι διαφορετικών µηκών. Μπορούν να υπάρξουν µέχρι 255 εγγραφές σε ένα record ή cyclic αρχείο και κάθε εγγραφή µπορεί να είναι µέχρι 255 byte.

Οι εγγραφές είναι γνωστές ως κάρτες TAB ή ως στήλες σε πίνακες ή, στις πιο σύγχρονες τεχνολογίες, ως αντικείµενα. Σε µια τυπική εφαρµογή, κάθε εγγραφή περιέχει όλες τις πληροφορίες για ένα συγκεκριµένο στοιχείο όπως ένα πρόσωπο σε µια οργάνωση, ένα προϊόν σε έναν κατάλογο, ή ένα βιβλίο σε µια βιβλιοθήκη.

Μια από τις πιο συχνές λειτουργίες που εκτελούνται είναι η αναζήτηση µιας συγκεκριµένης εγγραφής σε ένα αρχείο record. Η χρησιµότητα των αρχείων record, τουλάχιστον των µεγάλων αρχείων record, σε µια έξυπνη κάρτα θα µειωνόταν πολύ εάν έπρεπε να διαβαστούν όλες οι εγγραφές σε µια κάρτα για να βρούµε µια συγκεκριµένη. Θα απαιτούσε πάρα πολύ χρόνο. Ευτυχώς, η κάρτα MULTIFLEX έχει µια οδηγία Seek που πραγµατοποιεί αυτήν την αναζήτηση στην κάρτα µε τη χρησιµοποίηση του επεξεργαστή της κάρτας.

Θεωρούµε ένα αρχείο record που περιέχει τις ακόλουθες 10 εγγραφές:

1. Sally Green 2. Ted Yellow 3. Bobby Blue 4. George Gray 5. Barbara Bloom 6. Annette Anise

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 93 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

7. Steve Steamboat 8. Gary Grime 9. Suzie Creamcheese 10. Lisa Lavender

και υποθέτουµε ότι έχουµε επιλέξει αυτό το αρχείο έτσι ώστε είναι το τρέχον αρχείο.

Η οδηγία Seek της MULTIFLEX µας αφήνει να ψάξουµε τις εγγραφές σε αυτό το αρχείο µε ένα συγκεκριµένο δείγµα, αρχίζοντας µε ένα δεδοµένο offset σε κάθε εγγραφή και είτε ξεκινώντας από την αρχή του αρχείου είτε από την τρέχουσα θέση στο αρχείο. Αν βρεθεί η εγγραφή, κατόπιν η κάρτα επιστρέφει την επιτυχία και η εγγραφή που βρίσκεται γίνεται η τρέχουσα εγγραφή. ∆ιαφορετικά, επιστρέφεται ένα σήµα λάθους.

Για παράδειγµα, για να βρούµε την εγγραφή Gary Grime, θα στέλναµε την ακόλουθη εντολή στην κάρτα:

CLA INS Offset Τρόπος Μήκος στοιχείων

∆είγµα

F016 A216 0016 0016 0A16 4716 6116 7216 7916 2016 4716 7216 6916 6D16 6516

Εάν θέλαµε να βρούµε όλα τις εγγραφές που περιέχουν το στοιχείο Gary, θα δίναµε την εντολή

CLA INS Offset Τρόπος Μήκος στοιχείων

∆είγµα

F016 A216 0016 0016 0416 4716 6116 7216 7916

όποιος θα έβρισκε το πρώτο στοιχείο µε το «Gary» και θα επαναλάµβανε έπειτα την εντολή

CLA INS Offset Τρόπος Μήκος στοιχείων

∆είγµα

F016 A216 0016 0216 0A16 4716 6116 7216 7916

µέχρι να πάρουµε το λάθος «Not Found». Οποιαδήποτε στιγµή, θα µπορούσαµε να χρησιµοποιήσουµε την εντολή Read Record για να ανακτήσουµε το αρχείο «Gary» που βρέθηκε.

5.2.6 Κυκλικά Αρχεία & Ηλεκτρονικά Πορτοφόλια

Η διαφορά µεταξύ ενός αρχείου record µε καθορισµένου µήκους εγγραφές και ενός κυκλικού αρχείου είναι ότι το κυκλικό αρχείο κάνει κύκλους αναζήτησης ενώ το αρχείο εγγραφές όχι. Παραδείγµατος χάριν, αν προσπαθήσουµε να διαβάσουµε την επόµενη εγγραφή µετά την τελευταία σε ένα αρχείο record, θα

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 94 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

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

Αυτή η ιδιότητα των κυκλικών αρχείων τους καθιστά πρακτικούς για αρχεία συναλλαγών. Παραδείγµατος χάριν, ας φανταστούµε ότι η τρέχουσα εγγραφή σε ένα κυκλικό αρχείο περιέχει το χρηµατικό ποσό σε ένα ηλεκτρονικό πορτοφόλι, και ο κάτοχος της κάρτας χρησιµοποιεί την έξυπνη κάρτα για να αγοράσει κάτι. Για να παρακολουθήσει τις συναλλαγές στο πορτοφόλι, θα πρέπει να αφαιρέσει ακριβώς την τιµή αγοράς από το ποσό στο τρέχον αρχείο και να γράψει το αποτέλεσµα στην προηγούµενη εγγραφή. Αυτό θα κάνει αυτόµατα την προηγούµενη εγγραφή τρέχον αρχείο στο κυκλικό αρχείο και έτσι θα είναι έτοιµος για την επόµενη συναλλαγή. Εάν υπάρχουν Ν εγγραφές στο κυκλικό αρχείο, τότε οι τελευταίες Ν συναλλαγές κατοχυρώνονται στο ηλεκτρονικό αρχείο συναλλαγής του πορτοφολιού. Εάν κάτι πάει στραβά µε το γράψιµο µιας συναλλαγής, το πορτοφόλι µπορεί εύκολα να ανακτήσει όλες τις προηγούµενες συναλλαγές και να επανέλθει στην τελευταία επιτυχηµένη συναλλαγή αποφεύγοντας έτσι άλλο είδους προβλήµατα για τον κάτοχο της κάρτας.

∆ύο εντολές στην κάρτα MULTIFLEX εκτελούν αυτόµατα αυτήν την λειτουργία ηλεκτρονικών πορτοφολιών χρησιµοποιώντας ένα κυκλικό αρχείο: η Decrease και Increase. Όπως είναι σαφές, η Decrease µειώνει το ποσό στο πορτοφόλι και η Increase αυξάνει το ποσό στο πορτοφόλι.

Υποθέστε ότι έχουµε επιλέξει ένα κυκλικό αρχείο που χρησιµοποιούµε ως ηλεκτρονικό πορτοφόλι και έχουµε επικυρωθεί για να χρησιµοποιήσουµε την εντολή Increase σε αυτό το αρχείο. Εάν στείλουµε την ακόλουθη εντολή Increase στην κάρτα.

CLA INS P1 P2 Μήκος στοιχείων ∆είγµα F016 3216 0016 0016 0316 00001016

κατόπιν 00001016 θα προστεθούν στην αξία που βρίσκεται στα δεξιά 3 byte στο τρέχον αρχείο. Τα προκύπτοντα 3 byte θα γραφτούν στα δεξιά 3 byte της προηγούµενης εγγραφής σε αυτό το αρχείο, και τελικά η προηγούµενη εγγραφή θα γίνει η τρέχουσα. Η εντολή Decrease λειτουργεί µε τον ίδιο τρόπο εκτός από το ότι η αξία αφαιρείται από την αξία που βρίσκεται στο τρέχον αρχείο.

Η εντολή Increase δεν θα προσπαθήσει να αυξήσει την αξία στο ηλεκτρονικό πορτοφόλι επάνω από FFFFFF16 και η εντολή Decrease δεν θα προσπαθήσει να µειώσει την αξία κάτω από 00000016. Εάν η

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 95 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

εντολή που περιέχει την αξία προκαλέσει µία από αυτές τις περιπτώσεις, δεν εκτελείται και επιστρέφεται ένα µήνυµα λάθους. Η αριθµητική του ηλεκτρονικού πορτοφολιού 3K MULTIFLEX είναι προφανώς αριθµητική ακέραιων αριθµών, έτσι οι µονάδες του πορτοφολιού πρέπει να καθοριστούν κατάλληλα για την εφαρµογή (ευρώ, σεντς, δολάρια, λίβρες, πέννες, φράγκα, γεν, κ.τ.λ.).

5.3 Οι Εντολές Σε Μια Κάρτα MULTIFLEX

Τα προηγούµενα κεφάλαια περιέγραψαν µερικές από τις εντολές στις οποίες η κάρτα MULTIFLEX αποκρίνεται (παραδείγµατος χάριν, η Select File, Get Response, Read Binary). Η έξυπνη κάρτα MULTIFLEX αναγνωρίζει και αποκρίνεται σε συνολικά 21 εντολές. Αυτές είναι οι βασικές δοµικές µονάδες που θα χρησιµοποιήσει κάποιος για να κατασκευάσει µια εφαρµογή έξυπνων καρτών MULTIFLEX. Ο Πίνακας 28 απαριθµεί και τις 21 εντολές της 3K MULTIFLEX.

Πίνακας 28 Οι 21 εντολές της 3Κ MULTIFLEX

Όνοµα εντολής Περιγραφή εντολής Όροι πρόσβασης Προστατευµένη Change PIN Αλλαγή του PIN στο

επιλεγµένο αρχείο PIN. Κανένας

Create File ∆ηµιουργία νέου αρχείου ή υποκαταλόγου στον τρέχοντα φάκελο.

Ναι

Create Record ∆ηµιουργία νέας εγγραφής στο επιλεγµένο αρχείο Record.

Ναι

Decrease Το επόµενο αρχείο στο επιλεγµένο κυκλικό αρχείο γίνεται το τρέχον αρχείο µείον τη δεδοµένη αξία.

Ναι

Delete File ∆ιαγραφή ενός αρχείου από τον επιλεγµένο κατάλογο.

Ναι

External Authentication

Ανάκτηση της κρυπτογραφηµένης πρόκλησης από το τερµατικό και έλεγχος.

Κανένας

Get Challenge Ανάκτηση µια πρόκληση από την κάρτα

Κανένας

Get Response Ανάκτηση πληροφοριών για έναν επιλεγµένο κατάλογο ή ένα αρχείο.

Κανένας

Increase Το επόµενο αρχείο στο επιλεγµένο κυκλικό αρχείο γίνεται το τρέχον αρχείο συν τη δεδοµένη αξία.

Ναι

Internal Authentication

Ανάκτηση της κρυπτογράφησης της πρόκλησης από την

Ναι

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 96 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

κάρτα. Invalidate Παρεµπόδιση της

πρόσβασης στο επιλεγµένο αρχείο.

Ναι

Read Binary ∆ιάβασµα στοιχείων από ένα τµήµα του επιλεγµένου διαφανούς αρχείου.

Ναι

Read Record ∆ιάβασµα εγγραφής από το επιλεγµένο γραµµικό στοιχειώδες αρχείο.

Ναι

Rehabilitate Αφαίρεση του φραγµού στο επιλεγµένο αρχείο.

Ναι

Seek Αναζήτηση επιλεγµένου αρχείου Record για εγγραφές που περιέχουν µια δεδοµένη σειρά byte.

Select Το αρχείο µε το δεδοµένο προσδιοριστικό αρχείων γίνεται το επιλεγµένο αρχείο.

Κανένας

Unblock PIN Απελευθέρωση µπλοκαρισµένου PIN.

Κανένας

Update Binary Ανανέωση δεδοµένων σε ένα τµήµα του επιλεγµένου διαφανούς αρχείου.

Ναι

Update Record Ανανέωση µιας εγγραφής στο επιλεγµένο γραµµικό στοιχειώδες αρχείο.

Ναι

Verify PIN Παρουσίαση PIN στην έξυπνη κάρτα.

Κανένας

Verify Key Παρουσίαση κρυπτογραφηµένου κλειδιού στην κάρτα

5.3.1 Προστατευόµενες Εντολές

Οι εντολές Stamped Increase και Decrease είναι παραδείγµατα µιας τεχνικής που µπορεί να χρησιµοποιήσει ένα τερµατικό για να προστατευθεί από κακόβουλες κάρτες. Οι προστατευµένες εντολές διασφαλίζουν την κάρτα από τα κακόβουλα τερµατικά.

Για να εκτελέσει το τερµατικό µια εντολή που της έχει δοθεί ένας προστατευόµενος όρος πρόσβασης, το τερµατικό πρέπει πρώτα να πάρει µια τυχαία πρόκληση 8 από την κάρτα χρησιµοποιώντας την εντολή Get Response. Το τερµατικό κρυπτογραφεί αυτήν την πρόκληση χρησιµοποιώντας ένα συγκεκριµένο κοινό κλειδί µε την κάρτα και επιστρέφει την κρυπτογραφηµένη πρόκληση (κρυπτογράφηµα) µαζί µε την προστατευµένη εντολή. Η κάρτα αποκρυπτογραφεί το κρυπτογράφηµα και εάν πάρει τη σωστή πρόκληση, ξέρει ότι το τερµατικό κατέχει το ίδιο κλειδί και εκτελεί την εντολή. Εάν το κρυπτογράφηµα δεν αποκρυπτογραφηθεί

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 97 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

επιτυχώς, η κάρτα αρνείται την εκτέλεση της εντολής και επιστρέφει ένα µήνυµα θέση λάθους.

Υποθέτουµε ότι στην εντολή Update έχει δοθεί ένας προστατευµένος όρος πρόσβασης σε ένα επιλεγµένο διαφανές αρχείο, χρησιµοποιώντας το κλειδί 1 στο αρχείο κλειδιού εξωτερικής επικύρωσης και το τερµατικό θέλει να γράψει το “ab” στα πρώτα 2 byte του αρχείου. Το τερµατικό αρχίζει µε την αποστολή στην κάρτα µιας εντολής Get Response. Αυτό γίνεται για να πάρει το σαφές κείµενο του κρυπτογραφήµατος που πρέπει να επιστρέψει στην κάρτα µε την εντολή Update:

CLA INS Μήκος ∆εδοµένων C016 D616 0016 0016 0816

Η κάρτα αποκρίνεται µε

6416 4616 2716 E016 0716 9D16 D816 6C16 9016 0016

τα όποια είναι 8 τυχαία byte που ακολουθούνται από την κανονική επιστροφή κατάστασης ολοκλήρωσης. Το τελικό DES κρυπτογραφεί αυτά µε το κλειδί 1 στο αρχείο κλειδιού εξωτερικής επικύρωσης (4716 4616 5816 4916 3216 7816 4016) και στέλνει στην κάρτα την εντολή Update µαζί µε αυτήν την κρυπτογράφηση:

CLA INS Offset High Offset Low Μήκος Κρυπτογράφηµα C016 8416 0016 0016 0A16 6116 6216 0D16 3116

A816 F316 Η16 EF16 7816 F816

Εδώ τα 6116 6216 είναι η ακολουθία χαρακτήρων “ab” που θέλει να γράψει η εντολή στο αρχείο µε έναρξη στο offset 000016 και 0D16 3116 A816 F316 Η16 EF16 7816 F816 είναι h κρυπτογράφηση DES της πρόκλησης.

Η κάρτα αποκρυπτογραφεί τα 8 byte της ουράς χρησιµοποιώντας το κλειδί που συνδέεται µε την εντολή Update στο τρέχον αρχείο κλειδιού εξωτερικής επικύρωσης, και µαζί µε αυτό που έστειλε σαν απάντηση στην εντολή Get Response, εκτελεί την εντολή Update.

5.4 Εσωτερική & Εξωτερική Πιστοποίηση

Όπως έχει γίνει αντιληπτό, ο τρόπος πιστοποίησης της ταυτότητάς ενός προσώπου στον κόσµο των έξυπνων καρτών είναι µε το να καταδείξει την κατοχή ενός µυστικού κλειδιού. Μπορούµε να καταδείξουµε µια τέτοια κατοχή απλά παρουσιάζοντας το µυστικό, όπως στην περίπτωση του PIN, ή µπορούµε να καταδείξουµε την κατοχή κάνοντας κάτι που µόνο κάποιος µε το µυστικό θα µπορούσε να κάνει, όπως η κρυπτογράφηση ενός µηνύµατος µε το κλειδί.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 98 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Η εσωτερική και εξωτερική επικύρωση χρησιµοποιεί την τελευταία τεχνική για να πιστοποιηθεί η ταυτότητα. Το τερµατικό χρησιµοποιεί την εσωτερική επικύρωση για να καθιερώσει την ταυτότητα της κάρτας και η κάρτα χρησιµοποιεί την εξωτερική επικύρωση για να καθιερώσει την ταυτότητα του τερµατικού.

Και τα δύο πρωτόκολλα αρχίζουν µε την αναζήτηση της ταυτότητας του αλλού και την αποστολή µιας πρόκλησης (µια τυχαία ακολουθία 8-byte) στην πλευρά της οποίας η ταυτότητα εξετάζεται. Η πλευρά που λαµβάνει την πρόκληση την κρυπτογραφεί µε το µυστικό της, ένα ιδιαίτερο κλειδί, και στέλνει το κρυπτογραφηµένο αποτέλεσµα. Η πλευρά που έστειλε αρχικά την πρόκληση αποκρυπτογραφεί το κρυπτογραφηµένο µήνυµα χρησιµοποιώντας το κλειδί. Εάν το µήνυµα αποκρυπτογραφηθεί ικανοποιητικά (δηλαδή η αποκρυπτογραφηµένη πρόκληση είναι ίδια µε την πρόκληση που στέλνεται αρχικά), κατόπιν η πλευρά που στέλνει την αρχική πρόκληση ξέρει ότι η άλλη πλευρά κατέχει έναν συγκεκριµένο κλειδί και αυτό πιστοποιεί την ταυτότητά του. Αυτό που είναι κρίσιµο είναι να ότι αυτή η κατοχή έχει καταδειχθεί χωρίς να εκτεθεί το ίδιο το µυστικό.

Αφού έχουµε ήδη δει δύο παραδείγµατα που η κάρτα πιστοποιεί την ταυτότητα του εξωτερικού κόσµου, Verify PIN και Verify Key, ας δούµε και ένα παράδειγµα του τερµατικού να πιστοποιεί την ταυτότητα της κάρτας. Ένα τερµατικό το κάνει αυτό για να εξασφαλίσει ότι η κάρτα που αλληλεπιδρά είναι µια εξουσιοδοτηµένη έξυπνη κάρτα και όχι µια κακόβουλοι κάρτα που έχει ως σκοπό την παραποίηση του συστήµατος.

Ξεκινάµε µε τη δηµιουργία ενός αρχείου κλειδιού εσωτερικής επικύρωσης που περιέχει το 8-byte µήκους κλειδί 0, Vagabond. Αυτό το αρχείο, 000116, είναι στο root φάκελο και είναι όπως φαίνεται στον πίνακα 29.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 99 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Πίνακας 29 Αρχείο εσωτερικής επικύρωσης

Αριθµός byte

Περιγραφή Αξία Ερµηνεία της αξίας

1 Αχρησιµοποίητο 0016 Αχρησιµοποίητο 2 Μήκος του κλειδιού

0 816 Το κλειδί 0 είναι 8 byte

3 Αλγόριθµος για το κλειδί 0

016 Χρήση DES µε το κλειδί 0

4-11 Κλειδί 0 5616 6116 6716 6116 6216 6F16 6E16 6416

Vagabond

12 Μέγιστες προσπάθειες για το κλειδί 0

0316 Μπλοκάρισµα κλειδιού µετά από τρεις διαδοχικές αποτυχηµένες προσπάθειες.

13 Υπόλοιπες προσπάθειες για το κλειδί 0

0316 Υπάρχουν τρεις επιτρεπτές αποτυχίες προτού να µπλοκαριστεί το κλειδί.

14 Μήκος του κλειδιού 1

016 Όχι άλλα κλειδιά στο αρχείο.

Το τερµατικό αρχίζει τη διαδικασία επικύρωσης µε την αποστολή στην κάρτα µιας εντολής Internal Authentication, η οποία περιέχει την τυχαία πρόκληση

CLA INS P1 P2 Μήκος Πρόκληση C016 8816 0016 0016 0816 2A16 6116 BD16 8016 A416 F916 F316

3E16

Η κάρτα κρυπτογραφεί την πρόκληση χρησιµοποιώντας το κλειδί και τον αλγόριθµο του κλειδιού 0 στο 000116 και αποκρίνεται έπειτα µε τον κωδικό κατάστασης

6116 0616

που σηµαίνει πως έχει κρυπτογραφηθεί η πρόκληση µε το κλειδί 0 στο αρχείο 0001 και υπάρχουν έξι byte αποτελέσµατος που στέλνονται πίσω.

Το τερµατικό χρησιµοποιεί τη εντολή Get Response για να πάρει τα 6 byte από την κάρτα

1E16 8616 1516 C716 1516 8C16

και τα συγκρίνει µε τα πρώτα 6 byte της δικιάς του κρυπτογράφησης DES της πρόκλησης χρησιµοποιώντας το κλειδί Vagabond. Τα byte είναι ίδια, έτσι η κάρτα κατέχει το κλειδί που έψαχνε το τερµατικό, και ως εκ τούτου η ταυτότητα της κάρτας έχει πιστοποιηθεί.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 100 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

5.4.1 Πολιτικές Καταστάσεις Πιστοποίησης

Έχουµε πει ότι µπορεί να υπάρξει ένα PIN και µέχρι 16 κλειδιά εξωτερικά επικύρωσης σε κάθε φάκελο µέσα στην κάρτα. Επίσης έχουµε παρατηρήσει ότι οι όροι πρόσβασης για τις διαδικασίες στα αρχεία εκφράζονται µέσω ενός PIN ή ενός κρυπτογραφικού κλειδιά.

Τι συµβαίνει όµως αν εισάγουµε επιτυχώς ένα PIN σε έναν φάκελο και µετακινηθούµε έπειτα σε έναν άλλον φάκελο µε διαφορετικό αρχείο PIN; Μας ακολουθεί η πρώτη επικύρωση PIN; Τι συµβαίνει εάν µετακινηθούµε προς έναν κατάλογο που δεν έχει ένα αρχείο PIN, αλλά υπάρχει ένα αρχείο σε αυτόν τον νέο κατάλογο µε µια λειτουργία που προστατεύεται από ένα PIN; Το παλιό PIN λειτουργεί; Οι ίδιες ερωτήσεις ισχύουν προφανώς και για την επικύρωση µε κρυπτογραφηµένα κλειδιά.

Οι έξυπνες κάρτες ποικίλλουν ως προς τις πολιτικές επικύρωσης τους και τα πρότυπα ISO δεν έχουν σχέση µε το θέµα. Παρακάτω θα περιγραφούν οι πολιτικές επικύρωσης της κάρτας 3Κ MULTIFLEX. Βέβαια οπές οι κάρτες δεν λειτουργούν µε τον ίδιο τρόπο.

Η κατάσταση επικύρωσης στην κάρτα MULTIFLEX µεταφέρεται σε τρεις µεταβλητές 2-byte:

• Φάκελος επικύρωσης PIN (PIN authentication directory) – Επικυρώνεται το fileId του φακέλου που περιέχει το αρχείο PIN του τελευταίου PIN που επικυρώνεται.

• Φάκελος Εξωτερικής Επικύρωσης (External authentication directory) - Επικυρώνεται το fileId του φακέλου που περιέχει το αρχείο εξωτερικής επικύρωσης στο οποίο ανήκει το τελευταίο κρυπτογραφικό κλειδί.

• Κλειδιά Εξωτερικής Επικύρωσης (External authentication keys) – 16 bit µε την ερµηνεία ότι εάν έχει τεθεί το bit 1, κατόπιν το κλειδί 1 στο τρέχον αρχείο εξωτερικής επικύρωσης έχει επικυρωθεί.

Όταν µια λειτουργία ελεγχόµενης πρόσβασης είναι έτοιµη να πραγµατοποιηθεί, το λειτουργικό σύστηµα ελέγχει απλά αυτές τις µεταβλητές. Εάν απαιτείται η επικύρωση PIN και η µεταβλητή καταλόγου επικύρωσης PIN είναι µη µηδενική, κατόπιν η λειτουργία επιτρέπεται να προχωρήσει. ∆ιαφορετικά, αποτυγχάνει. Εάν µια κρυπτογραφική επικύρωση κλειδιού απαιτείται, ο φάκελος εξωτερικής επικύρωσης και οι µεταβλητές κλειδιών εξωτερικής επικύρωσης ελέγχονται. Εάν ο πρώτος είναι µη µηδενικός και το κοµµάτι που αντιστοιχεί στο απαραίτητο κλειδί στο δεύτερο έχει τεθεί, κατόπιν η λειτουργία επιτρέπεται για να προχωρήσει. ∆ιαφορετικά, αποτυγχάνει.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 101 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Η κίνηση από ένα στοιχειώδες αρχείο προς ένα άλλο µέσα σε έναν φάκελο δεν αλλάζει τον καθορισµό των µεταβλητών κατάστασης επικύρωσης δεδοµένου ότι όλα τα στοιχειώδη αρχεία σε έναν φάκελο χρησιµοποιούν το ίδιο PIN και την ίδια εξωτερική επικύρωση για τους ελέγχους πρόσβασής τους. Η επιλογή ενός νέου καταλόγου αλλάζει την κατάσταση επικύρωσης. Η Εικόνα 22 παρουσιάζει τη διαδικασία για τη µεταβλητή φακέλου επικύρωσης PIN.

Η διαδικασία για τον κατάλογο εξωτερικής επικύρωσης και τις µεταβλητές κλειδιών εξωτερικής επικύρωσης είναι ακριβώς η ίδια εκτός από µια διαφορά. Στον κατάλογο εξωτερικής έγκρισης οι µεταβλητές έγκρισης κατάστασης καθαρίζονται ενώ η µεταβλητή κατάστασης του καταλόγου επικύρωσης PIN δεν καθαρίζεται.

Το βασικό πλεονέκτηµα αυτής της διαδικασίας είναι ότι οι εγκρίσεις δεν ακολουθούν το χρήστη καθώς µεταπηδά από έναν κατάλογο σε άλλο στην κάρτα εκτός αν τα αρχεία στο νέο κατάλογο χρησιµοποιούν τα ίδια αρχεία έγκρισης µε τα αρχεία στον παλιό κατάλογο. Αυτό φαίνεται λογικό. Από ποιο PIN και αρχεία εξωτερικής επικύρωσης εξαρτάται ένα συγκεκριµένο αρχείο; Εάν υπάρχει ένα PIN ή ένα αρχείο εξωτερικής επικύρωσης στον ίδιο κατάλογο µε το αρχείο, αυτό θα χρησιµοποιηθεί και από το αρχείο. Αν όχι, τότε γίνεται αναζήτηση από το τέλος του καταλόγου προς το κύριο αρχείο και χρησιµοποιεί το πρώτο PIN ή αρχείο εξωτερικής έγκρισης που βρίσκει, ανάλογα µε αυτό που ψάχνει.

Στη συχνή περίπτωση ότι που ο χρήστης µετακινείται σε έναν υποκατάλογο του τρέχοντος καταλόγου, οι εγκρίσεις µένουν εκτός αν υπάρχει µια νέο αρχείο έγκρισης (PIN ή εξωτερικό) στον υποκατάλογο, οπότε σ' αυτή την περίπτωση καθαρίζονται οι αντίστοιχες εγκρίσεις και πρέπει να παρουσιαστεί η κατοχή ενός νέου κλειδιού προκειµένου αυτές να επανακτηθούν.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 102 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Εικόνα 22 ∆ιαδικασία επικύρωσης PIN

Από την πλευρά ενός σχεδιαστή συστηµάτων έξυπνων καρτών, εάν βάλουµε ένα αρχείο κλειδιών στον κατάλογο µιας συγκεκριµένης εφαρµογής, το αρχείο αυτό θα καθορίζει και τα κλειδιά πρόσβασης όλων των αρχείων του κατάλογο και των υποκαταλόγων του. Εάν δεν παρέχουµε αρχεία κλειδιών σε έναν κατάλογο µιας εφαρµογής,

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 103 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

τα αρχεία των καταλόγων πάνω από την εφαρµογή καθορίζουν τα κλειδιά που απαιτούνται για να έχουν πρόσβαση στα αρχεία της. Με άλλα λόγια, η κάρτα MULTIFLEX εφαρµόζει έναν ιεραρχικό έλεγχο πρόσβασης.

Σε µια τυπική περίπτωση, υπάρχει ένα αρχείο PIN στο κύριο αρχείο που καθιερώνει τα προνόµια επικύρωσης και πρόσβασης σε όλη την κάρτα. Κατόπιν υπάρχουν αρχεία εξωτερικής επικύρωσης µαζί µε κάθε εφαρµογή που ελέγχουν ποιος µπορεί να διαβάσει τα δεδοµένα που συγκεντρώνονται από την εφαρµογή και τις παραµέτρους κατά το τρέξιµο αυτής.

5.5 Παρακολουθώντας Τη Χρήση Της EEPROM

Η αµετάβλητη µνήµη (NVM) είναι ένας πολύτιµος πόρος σε µια έξυπνη κάρτα και κάθε της byteς υπερπολύτιµο. Κάθε αρχείο στην NVM καταλαµβάνει µερικά πρόσθετα διοικητικά byte εκτός από τα byte που χρησιµοποιεί πραγµατικά. Αυτά τα overhead byte περιγράφουν το αρχείο, συµπεριλαµβανοµένου το µέγεθος του, τον τύπο του, και τους όρους πρόσβασής του. Επιπλέον, κάθε εγγραφή σε ένα αρχείο record περιέχει επίσης κάποια γενικά overhead “green byte”. Ο Πίνακας 30 δίνει το µέγεθος αυτών των ανά-αρχείων και ανά-εγγραφών overhead byte:

Πίνακας 30 Χρησιµοποίηση της EEPROM στην 3Κ MULTIFLEX της Schlumberger

File Type File Type Byte

File Header Overhead Per Record Overhead

Directory file 3816 24 byte Transparent file 0116 16 byte Αρχείο record µε καθορισµένου µήκους εγγραφές

0216 16 byte 4 byte

Αρχείο record µε εγγραφές µεταβλητού µήκους

0416 16 byte 4 byte

Κυκλικό αρχείο 0616 16 byte 4 byte

Οι πληροφορίες που λαµβάνουµε µε την επιλογή του κύριου αρχείου λένε ότι υπάρχουν 2.832 αχρησιµοποίητα byte, παρόλο που µια αχρησιµοποίητη κάρτα MULTIFLEX λέει πως έχει ελευθέρα 3.008 byte. Πού χάθηκαν όµως τα 176 byte; Οι αριθµοί στον πίνακα 31 και µε τη βοήθεια µιας πρόσθετης γνώσης του λειτουργικού συστήµατος MULTIFLEX δίνουν µια πλήρη λογιστική των ελλειπόντων 176 byte.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 104 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

Πίνακας 31 Τα overhead byte µιας αχρησιµοποίητης κάρτας 3K MULTIFLEX.

Περιγραφή Overhead Λειτουργικό σύστηµα 26 byte Πληροφορίες header για το κύριο αρχείο (3F00) 24 byte Πληροφορίες header για το αρχείο σειριακού αριθµού (0002) 16 byte Περιεχόµενο του αρχείου σειριακού αριθµού (0002) 8 byte Πληροφορίες header για το αρχείο προστασίας κλειδιών (0011) 16 byte Περιεχόµενο του αρχείου προστασίας κλειδιών 38 byte Σηµαίες, δοκιµή, τυχαία γεννήτρια αριθµού, ATR 48 byte

Σύνολο 176 byte

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 105 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

6 Παράρτηµα Α : Ευρετήριο Όρων

Όρος Ερµηνεία ABS (Acrylonitrile Butadiene Styrene) Ακρυλονιτρικό

Βουτανιεδικό Στυρένιο. Το πλαστικό που χρησιµοποιείται για την έγχυση των σκελετών των καρτών για διάφορες κάρτες.

Acceptor Αποδοχέας. Ο οργανισµός (συνήθως ένας έµπορος), ο οποίος δέχεται µία κάρτα (για παράδειγµα για µία πληρωµή).

Acquirer Μεσολαβητής συναλλαγών. Η Τράπεζα, η οποία επεξεργάζεται τις συναλλαγές ενός εµπόρου και τις προωθεί στο σύστηµα εκκαθάρισης (π.χ. clearing system). Μπορεί να είναι και ένας οργανισµός ο οποίος διαχειρίζεται την ανταλλαγή πληροφοριών και δεδοµένων µεταξύ του διαχειριστή ενός συστήµατος πληρωµών και του ατόµου το οποίο παρέχει τις διάφορες υπηρεσίες.

AID Application Identifier. Αναγνωριστικό εφαρµογής. Το AID αναγνωρίζει µία εφαρµογή σε µία έξυπνη κάρτα. Ορίζεται στο πρότυπο ISO/IEC 7816-5. Ένα µέρος του AID µπορεί να κατοχυρώνεται σε εθνικό ή παγκόσµιο επίπεδο. Σε αυτήν την περίπτωση, η εφαρµογή στην οποία αναφέρεται είναι µοναδικά αναγνωρίσιµη. Το AID αποτελείται από δύο τµήµατα: το RID (Registered Identifier) και το PIX (Proprietary Identifier).

ALD (Application Load Certificate) Χρησιµοποιείται από τη προδιαγραφή Multos και παρόµοια συστήµατα για την «επισηµοποίηση» µιας εφαρµογής που φορτώνεται σε µία κάρτα πολλαπλών εφαρµογών

Algorithm Αλγόριθµος. Μία µαθηµατική διαδικασία που χρησιµοποιείται για να γίνουν υπολογισµοί (στην κρυπτογραφία: αλγόριθµος κρυπτογράφησης)

Analogue Αναλογικός. Χρησιµοποιείται σε αντιδιαστολή µε το «Ψηφιακός»

Anti-collision Αποφυγή σύγκρουσης. Ένας αλγόριθµος που χρησιµοποιείται για την αναγνώριση δύο ή περισσοτέρων ασύρµατων έξυπνων καρτών, όταν λειτουργούν ταυτόχρονα.

Anti-tearing Ένα χαρακτηριστικό της κάρτας, το οποίο προστατεύει τα δεδοµένα της µνήµης στην περίπτωση που η κάρτα αποµακρυνθεί πριν την ολοκλήρωση µίας συναλλαγής.

APDU (Application Protocol Data Unit)

Μονάδα ∆εδοµένων Πρωτοκόλλου Εφαρµογής. Είναι ένα «κουτί» δεδοµένων λογισµικού, το οποίο χρησιµοποιείται για την ενθυλάκωση των δεδοµένων, έτσι ώστε να µπορούν να ανταλλάσσονται ανάµεσα σε µία έξυπνη κάρτα και σε ένα τερµατικό.

ASIC (Application-Specific Integrated Circuit) Ολοκληρωµένα Κυκλώµατα Ειδικού σκοπού Εφαρµογής. Τα κυκλώµατα αυτά ελαχιστοποιούν το κόστος παραγωγής µε την υλοποίηση κυκλωµάτων που έχουν όλα τα χαρακτηριστικά της υψηλής τεχνολογίας

Asymmetric Cryptography

Ασυµµετρική ή ασύµµετρη κρυπτογραφία (επίσης «κρυπτογραφία δηµόσιου κλειδιού». Αναφέρεται στη µέθοδο κρυπτογράφησης όπου υπάρχουν δύο κλειδιά

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 106 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

κρυπτογράφησης. Το ένα χρησιµοποιείται για την κρυπτογράφηση του κειµένου και το άλλο για την αποκρυπτογράφηση.

ATC (Application Transaction Counter) Μετρητής ο οποίος υπάρχει µέσα στην κάρτα και αυξάνεται κατά µια µονάδα κάθε φορά που πραγµατοποιείται µια συναλλαγή

ATM (Automated Teller Machine) Ειδικό τερµατικό, το οποίο τοποθετείται σε δηµόσιους χώρους και επιτρέπει την εκτέλεση οικονοµικών συναλλαγών.

ATR (Answer To Reset) Είναι µία ακολουθία από byte, η οποία στέλνεται από µία έξυπνη κάρτα µετά από (hardware) επαναφορά. Μεταξύ άλλων περιέχει διάφορες παραµέτρους σχετικά µε το πρωτόκολλο µετάδοσης της κάρτας

Authentication Ταυτοποίηση. Η διαδικασία αποδείξεως της γνησιότητας µίας οντότητας (π.χ. έξυπνη κάρτα ή µέσω αυτής του κατόχου της), χρησιµοποιώντας κρυπτογραφικές µεθόδους

External Authentication

Εξωτερική Ταυτοποίηση. Η διαδικασία που χρησιµοποιείται για την ταυτοποίηση του «έξω» κόσµου (π.χ. ένα τερµατικό) από την έξυπνη κάρτα.

Internal Authentication

Εσωτερική Ταυτοποίηση. Η διαδικασία που χρησιµοποιείται για να αποδείξει µία έξυπνη κάρτα ότι είναι γνήσια.

BIP (Bearer Independent Protocol) Πρωτόκολλο το οποίο επιτρέπει σε µια κάρτα SIM να επικοινωνεί απευθείας µε αποµακρυσµένους εξυπηρετητές

Black list Μαύρη λίστα. Η λίστα, συνήθως σε µία βάση δεδοµένων, η οποία περιέχει όλες τις κάρτες που δεν επιτρέπεται πλέον η χρήση τους σε ένα σύστηµα

CA (Certification Authority) Αρχή Πιστοποίησης. Ο οργανισµός που εκδίδει πιστοποιητικά και είναι υπόλογος για τις ευθύνες που προκύπτουν από την εγκυρότητα των στοιχείων του κατόχου

CAM (Card Authentication Method) Μέθοδος αυθεντικοποίησης κάρτας. Αυτή η µέθοδος χρησιµοποιείται για να εξακριβωθεί εάν η κάρτα προέρχεται από έγκυρο εκδότη

Card accepter Αποδοχέας καρτών. Οντότητα στην οποία µπορούν να χρησιµοποιηθούν έξυπνες κάρτες για µια συγκεκριµένη εφαρµογή

Card body Σώµα κάρτας. Πλαστική κάρτα, το ενδιάµεσο προϊόν στην κατασκευή της Έξυπνης Κάρτας. Σε επόµενο βήµα της κατασκευής, ενσωµατώνεται το ολοκληρωµένο κύκλωµα

Card issuer Εκδότης κάρτας. Οντότητα, υπεύθυνη για την έκδοση έξυπνων καρτών. Συνήθως, ο παροχέας της εφαρµογής και ο εκδότης της κάρτας ταυτίζονται για τις έξυπνες κάρτες µίας εφαρµογής.

Card manufacturer Κατασκευαστής κάρτας. Η οντότητα, που κατασκευάζει σώµατα καρτών , ενσωµατώνει το ολοκληρωµένο κύκλωµα και ανά εφαρµογή το προγραµµατίζει (π.χ. κάρτες µνήµης) ή απλώς το προετοιµάζει για να προγραµµατιστεί από άλλη οντότητα.

Card owner Ιδιοκτήτης κάρτας. Είναι η φυσική ή νοµική οντότητα που έχει το νόµιµο έλεγχο της κάρτας. Στην περίπτωση των καρτών χρέωσης ή πιστωτικών καρτών, ο ιδιοκτήτης

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 107 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

της κάρτας είναι συνήθως η Τράπεζα που εκδίδει την κάρτα. Οι πελάτες που χρησιµοποιούν την κάρτα είναι συνήθως µόνο «κάτοχοι κάρτας» (πβ. Cardholder).

Card possessor Κύριος κάρτας. Η οντότητα που έχει στην κυριότητά της µία κάρτα

Card reader Συσκευή µε σχετικά απλή ηλεκτρική και µηχανική κατασκευή που µπορεί να δεχτεί έξυπνες κάρτες και να αλληλεπιδράσει µαζί τους

Card user Το άτοµο που χρησιµοποιεί την κάρτα. ∆εν είναι υποχρεωτικά ο νόµιµος κάτοχός της

Cardholder Κάτοχος κάρτας. Αναφέρεται στην οντότητα, η οποία έχει το πραγµατικό δικαίωµα κατοχής και χρήσης της κάρτας. Ο κάτοχος της κάρτας δεν είναι αναγκαίο ότι είναι και ο ιδιοκτήτης της κάρτας

Certificate Πιστοποιητικό. Αρχείο ψηφιακά υπογεγραµµένο από µία Αρχή Πιστοποίησης

CEN (Centre European pour la Normalisation – European Standards Centre) Ο ευρωπαϊκός οργανισµός προτύπων CEN βρίσκεται στις Βρυξέλλες. Αποτελείται από όλους τους (ευρωπαϊκούς) εθνικούς οργανισµούς προτύπων και είναι ο επίσηµος οργανισµός της Ευρωπαϊκής Ένωσης για τα ευρωπαϊκά πρότυπα

Challenge/Response Μέθοδος ταυτοποίησης, όπου το σύστηµα που απαιτεί ταυτοποίηση στέλνει µία τυχαία «πρόκληση». Το υπό ταυτοποίηση αντικείµενο (π.χ. µία έξυπνη κάρτα)υπολογίζει την «απάντηση» στην «πρόκληση». Το σύστηµα µπορεί να επιβεβαιώσει τη γνησιότητα του αντικειµένου µε βάση αυτή την «απάντηση».

Chip card Κάρτα µε ενσωµατωµένο ολοκληρωµένο κύκλωµα. Αναφέρεται επίσης ως «έξυπνη κάρτα», αλλά συχνά χρησιµοποιείται µε τέτοιον τρόπο, ώστε να συµπεριλαµβάνει και τις κάρτες µνήµης, οι οποίες δεν έχουν «εξυπνάδα»

Clearing/Clearance Η διαδικασία διαβίβασης, εναρµόνισης και επιβεβαίωσης εντολών χρηµατοπιστωτικών ιδρυµάτων

Clearing system Πληροφοριακό Σύστηµα, το οποίο εκτελεί σε κεντρική εφαρµογή διακανονισµούς συναλλαγών µεταξύ χρηµατοπιστωτικών ιδρυµάτων ή χρηµατοπιστωτικών ιδρυµάτων και τρίτων

Cloning Κλωνοποίηση. Προσπάθεια «επίθεσης» σε σύστηµα έξυπνων καρτών, µε την αντιγραφή της µνήµης ROM και EEPROM µίας γνήσιας σε µία πλαστή κάρτα

CMS (Card Management System) Εργαλεία και διαδικασίες που χρησιµοποιούνται για την ανάπτυξη και διαχείριση εφαρµογών έξυπνων καρτών. Το CMS χρησιµοποιείται κυρίως για την διαχείριση του κύκλου ζωής των καρτών και των εφαρµογών τους

COS (Chip Operating System/Mask) Ακολουθία ενσωµατωµένων εντολών, στη µνήµη ROM της έξυπνης κάρτας

Confidentiality Εµπιστευτικότητα. Αναφέρεται στις µεθόδους και διαδικασίες, που διασφαλίζουν ότι οι πληροφορίες είναι προσβάσιµες µόνο από τις οντότητες στις οποίες επιτρέπεται να έχουν πρόσβαση

Combination Card Συνδυασµένη Κάρτα. Έξυπνη κάρτα, η οποία συνδυάζει και τις δύο τεχνολογίες (µε επαφές και ασύρµατη)

Contact Smart Card Έξυπνη Κάρτα µε Επαφές. Έξυπνη κάρτα, η οποία

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 108 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

απαιτεί τη φυσική επαφή µε τη συσκευή ανάγνωσης, ώστε να ανταλλάξουν δεδοµένα

Contactless Smart Card

Χωρίς επαφές ή Ασύρµατη Έξυπνη Κάρτα. Αναφέρεται σε έξυπνες κάρτες, οι οποίες µεταδίδουν και λαµβάνουν δεδοµένα χρησιµοποιώντας ραδιοσυχνότητες

Coupler Ηλεκτρονικό σύστηµα - εφαρµογή που χρησιµοποιείται για να µπορεί να διαβάζει την συνήθως ασύρµατη έξυπνη κάρτα

CQL (Card Query Language) Υποσύνολο της SQL (Structured Query Language) που έχει υλοποιηθεί πάνω σε έξυπνη κάρτα

CRC (Cyclic Redundancy Check) Μέθοδος ορθής µεταφοράς των δεδοµένων

Cryptography Κρυπτογραφία. Η επιστήµη και η τέχνη της µετατροπής συµβολοσειρών (π.χ. κειµένων, αριθµοσειρών κλπ) σε ακατανόητες µορφές, για όσους δεν έχουν τον κατάλληλο µηχανισµό επαναφοράς στην αρχική µορφή (κλειδί)

CVM (Cardholder Verification Method) Μέθοδος Επιβεβαίωσης Κατόχου Κάρτας

DDA (Dynamic Data Authentication) Μέθοδος πιστοποίησης της κάρτας χρησιµοποιώντας µηχανισµό ανταπόκρισης

DF (Dedicated File) Οργάνωση της µνήµης για τις κάρτες µε µικροεπεξεργαστή. Ένα DF είναι µία λογική οντότητα, η οποία αποτελείται από EF (elementary file)

Diffie-Hellman Οι εφευρέτες της κρυπτογραφίας δηµόσιου κλειδιού Digital Cash (e-Cash) Ψηφιακό Χρήµα, που µπορεί να αποθηκεύεται σε

τραπεζικό λογαριασµό, προσωπικό υπολογιστή ή έξυπνη κάρτα

Dual Slot ∆ιπλή Θυρίδα. Αναγνώστης έξυπνων καρτών που µπορεί να χρησιµοποιήσει 2 έξυπνες κάρτες ταυτόχρονα. Χρησιµοποιείται σε συστήµατα πληρωµών, για την ταυτοποίηση στην Τράπεζα τόσο του εµπόρου όσο και του πελάτη

Dual Interface Card (Combicard)

Έξυπνη Κάρτα, η οποία έχει δύο µέσα επικοινωνίας: ενσύρµατη, µέσω ηλεκτροµηχανικών επαφών και ασύρµατη επικοινωνία, µέσω κατάλληλης κεραίας

Duplication (Cloning) Μεταφορά πρωτότυπων δεδοµένων σε µία δεύτερη κάρτα µε σκοπό την δηµιουργία µιας πανοµοιότυπης κάρτας

e-Cash Ψηφιακό /Ηλεκτρονικό Χρήµα, που µπορεί να αποθηκεύεται σε τραπεζικό λογαριασµό, προσωπικό υπολογιστή ή έξυπνη κάρτα

ECC Error Correction Code.Ένας Κώδικας ∆ιόρθωσης Λαθών εντοπίζει σφάλµατα στα δεδοµένα, τα οποία σε πολλές περιπτώσεις µπορεί να διορθώσει

EEPROM (Electrically Erasable Programmable Read-Only Memory) Τύπος µνήµης ROM που µπορεί να επαναπρογραµµατιστεί µε την εφαρµογή κατάλληλου ηλεκτρικού πεδίου

EF (Elementary File) Στοιχειώδες Αρχείο. Μέρος της λογικής οργάνωσης της µνήµης µίας κάρτας µε µικροεπεξεργαστή, το ανάλογο ενός αρχείου δεδοµένων

Embedding Ενσωµάτωση. Η διαδικασία ενσωµάτωσης ενός ολοκληρωµένου κυκλώµατος στο σώµα µίας έξυπνης κάρτας.

EMV (Europay – MasterCard – Visa) Μία σειρά από διεθνή

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 109 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

πρότυπα για πληρωµές βασισµένες σε έξυπνες κάρτες, τα οποία αναπτύχθηκαν από τους οργανισµούς Europay, MasterCard και Visa

Encryption Κρυπτογράφηση. Η διαδικασία µετασχηµατισµού συµβολοσειράς σε ακατάληπτη µορφή, χρησιµοποιώντας ένα κατάλληλο κλειδί

ETU (Elementary Time Unit) Βασική Μονάδα Χρόνου. Η βασική µονάδα χρόνου της έξυπνης κάρτας, στην οποία βασίζονται όλοι οι χρονισµοί επικοινωνίας της κάρτας. Ορίζεται ως ο χρόνος µεταφοράς ενός bit δεδοµένων από µία έξυπνη κάρτα

Fabrication Η διαδικασία κατασκευής του ολοκληρωµένου κυκλώµατος της έξυπνης κάρτας

Filtered Φιλτραρισµένος. Χαρακτηρισµός για δεδοµένα ή λειτουργίες τα οποία έχουν φορτωθεί στην µνήµη της έξυπνης κάρτας

Flash Memory Μνήµη στην οποία µπορεί να γίνει εγγραφή µία φορά αλλά για να γίνει διαγραφή της, θα πρέπει να γίνει διαγραφή του αντίστοιχου block

FRR (False Reject Rate) Μονάδα µέτρησης εσφαλµένης απόρριψης µίας οντότητας σε ένα σύστηµα. Χρησιµοποιείται κύρια στα συστήµατα βιοµετρικής

GSM (Global System for Mobile communications, Group Speciale de Mobile) Σύστηµα κυψελοειδούς τηλεφωνίας µε ευρεία διάδοση στην Ευρώπη

Garbage Collection Λειτουργία έξυπνης κάρτας τύπου Java Card, η οποία συλλέγει τη µνήµη που δε χρησιµοποιείται πλέον από µία εφαρµογή και τη µετατρέπει σε ελεύθερη µνήµη προς χρήση από άλλες εφαρµογές

Hard Mask Σε µία έξυπνη κάρτα µε hard mask το µεγαλύτερο κοµµάτι του κώδικα του προγράµµατος υλοποιείται στη µνήµη ROM

HSM (Host Security Module) Συσκευή, η οποία χρησιµοποιείται για την ασφαλή αποθήκευση κλειδιών και την (εσωτερική) εκτέλεση κρυπτογραφικών λειτουργιών, καθοδηγούµενη από έναν υπολογιστή

Hybrid Card Υβριδική Κάρτα. Τύπος έξυπνης κάρτας που χρησιµοποιεί δύο διαφορετικά µέσα επικοινωνίας. Πβ. Dual Interface Card

ID-I card Έξυπνη Κάρτα µε προτυποποιηµένες κατά ISO διαστάσεις.

IFD (Interface Device) Άλλη ονοµασία του αναγνώστη έξυπνης κάρτας

Initialization Το πρώτο στάδιο της διαδικασίας έκδοσης καρτών. Ο σκοπός αυτής της διαδικασίας είναι το φόρτωµα των δεδοµένων από την εφαρµογή στις έξυπνες κάρτες

Intelligent memory card

Ευφυής κάρτα µνήµης. Κάρτα µνήµης µε συµπληρωµατικό λεπτοµερές λογικό σχέδιο κυκλώµατος που επιτρέπει/παρέχει επιπρόσθετες λειτουργίες ασφαλείας που καταγράφουν τη χρήση της µνήµης

Integrity Ακεραιότητα. Αναφέρεται στις µεθόδους και διαδικασίες που διασφαλίζουν ότι οι πληροφορίες έχουν τροποποιηθεί µόνο από τις οντότητες που έχουν την αντίστοιχη εξουσιοδότηση

Interoperability ∆ιαλειτουργικότητα. Η δυνατότητα συστηµάτων διαφορετικών κατασκευαστών να αλληλεπιδρούν µεταξύ τους.

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 110 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

ISO (International Standards Organization) Ο οργανισµός ISO µεταξύ άλλων εργάζεται στην περιοχή των έξυπνων καρτών, µε σκοπό να εξασφαλίσει, µέσω των προτύπων που ορίζει, ότι οι κατασκευαστές των ολοκληρωµένων, οι προγραµµατιστές και οι εταιρείες έξυπνων καρτών ακολουθούν τις ίδιες προδιαγραφές

ITSO (Integrated Transport Smart Card Organisation) Οργανισµός ο οποίος ιδρύθηκε στο Ηνωµένο Βασίλειο για να βοηθήσει την εξάπλωση των συστηµάτων έξυπνων καρτών στα µέσα µαζικής µεταφοράς

ITU (International Telecommunications Union) Οργανισµός που συντονίζει, προτυποποιεί και δηµιουργεί παγκοσµίως τηλεπικοινωνιακές υπηρεσίες

Java Card Μία προδιαγραφή για την εκτέλεση ενός υποσυνόλου της γλώσσας Java σε µία έξυπνη κάρτα

JCRE (Java Card Runtime Environment) Το περιβάλλον εκτέλεσης στο οποίο εκτελείται η Java Card. Το JCRE είναι υπεύθυνο για όλες τις διαχειριστικές ενέργειες, όπως η φόρτωση και η αρχικοποίηση των εφαρµογών

Key management ∆ιαχείριση κλειδιών. Όλες οι διαχειριστικές λειτουργίες που σχετίζονται µε την δηµιουργία, διανοµή, αποθήκευση, ενηµέρωση των κρυπτογραφικών κλειδιών

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

Lifecycle Κύκλος ζωής. Αναφέρεται στα στάδια επεξεργασίας και λειτουργίας µίας έξυπνης κάρτας, από τη στιγµή της κατασκευής του ολοκληρωµένου της, έως την απόσυρση από τη χρήση και καταστροφή της

MAC (Message Authentication Code) Κώδικας Ταυτοποίησης Μηνύµατος. ∆ιαδικασία, συνήθως µε τη χρήση αλγόριθµων κρυπτογράφησης, η οποία εγγυάται ότι το µήνυµα προέρχεται από τον πρωτότυπο παραλήπτη του και δεν έχει αλλαχθεί στην πορεία

Magnetic Strip Card Κάρτα µε µαγνητική λωρίδα, πάνω στην οποία δεδοµένα µπορεί να καταχωρηθούν και να διαβαστούν

Memory card Κάρτα µνήµης. Αναφέρεται σε κάρτες που περιέχουν µόνο µνήµη και επιλεκτικά και λογική ενσωµατωµένη στο υλικό (hardwired logic). Χρησιµοποιείται σε αντιδιαστολή µε τον όρο chip card ή smart card, όπου υποδηλώνεται η ικανότητα επεξεργασίας

MF (Master File) Αποτελεί το βασικό κατάλογο του δένδρου αρχείων που υλοποιεί τη λογική οργάνωση της µνήµης µίας έξυπνης κάρτας. Το Κύριο Αρχείο επιλέγεται αυτόµατα κάθε φορά που εκκινεί η έξυπνη κάρτα

Microprocessor Card Κάρτα µε µικροεπεξεργαστή. Κάρτα η οποία περιλαµβάνει: επεξεργαστή (CPU), µνήµης (RAM, ROM, EEPROM) και επιλεκτικά αριθµητικό συνεπεξεργαστή (NPU, numerical coprocessor), κάτι που επιτρέπει την άµεση εκτέλεση των αλγορίθµων. Χρησιµοποιείται σε αντιδιαστολή µε τον όρο «Κάρτα Μνήµης» (Memory Card).

Mono-application Έξυπνη κάρτα µοναδικής εφαρµογής. Κάρτα που έχει τη

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 111 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

smart card δυνατότητα να εκτελέσει µία µόνο εφαρµογή, συνήθως προεγκατεστηµένη σε αυτή

Mono-functional smart car

Έξυπνη κάρτα µοναδικής λειτουργίας. Κάρτα της οποίας το λειτουργικό σύστηµα υποστηρίζει µόνο µια συγκεκριµένη εφαρµογή

Multi-application smart card

Έξυπνη Κάρτα Πολλαπλών Εφαρµογών. Αναφέρεται σε έξυπνες κάρτες νεότερης γενιάς, οι οποίες έχουν τη δυνατότητα να εκτελούν πολλαπλές εφαρµογές, από διαφορετικούς κατασκευαστές, σε αντίθεση µε τις προηγούµενες, οι οποίες εκτελούσαν εφαρµογές ενός µόνο κατασκευαστή

Multi-functional smart card

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

µP card ∆ιαφορετική ονοµασία για την κάρτα µε µικροεπεξεργαστή. Πβ. Microprocessor card

Non-Volatile Memory Ευσταθής µνήµη. Αναφέρεται σε µνήµες, οι οποίες διατηρούν τα δεδοµένα τους, όταν διακοπεί η τροφοδοσία τους (όπως για παράδειγµα τα δεδοµένα που είναι αποθηκευµένα στη µνήµη µίας έξυπνης κάρτας)

Numbering Αρίθµηση. Είναι η διαδικασία χάραξης αριθµών πάνω στις έξυπνες κάρτες

OCF (Open Card Framework) Αρχιτεκτονική για κάρτες και τερµατικά που έχει σκοπό την τυποποίηση των τερµατικών εφαρµογών

Open application Εφαρµογή µέσα στην έξυπνη κάρτα που την κάνει διαθέσιµη σε ποικίλους παροχείς υπηρεσιών, χωρίς να είναι απαραίτητη η αµοιβαία νοµική σχέση µεταξύ τους

Optical memory card Οπτική κάρτα µνήµης. Κάρτα, στην οποία οι πληροφορίες έχουν εγγραφεί σε µία ανακλαστική επιφάνεια µε οπτικό τρόπο, παρόµοια µε τη λειτουργία των CD.

OSI (Open Systems Interconnection) Μοντέλο του οργανισµού ISO για τις επικοινωνίες

PAC (PIN Authentication Code) Κωδικός Πιστοποίησης Προσωπικού Μυστικού Κωδικού

Padding Μία µέθοδος, σύµφωνα µε την οποία ένα ή περισσότερα bit προστίθενται σε ένα µήνυµα, ώστε να αποκτήσει το απαιτούµενο µέγεθος

Passivation layer Στρώµα αδρανοποίησης. Ένα υλικό που καλύπτει το ολοκληρωµένο κύκλωµα της κάρτας, ώστε να είναι ανθεκτικότερη στις επιδράσεις του εξωτερικού περιβάλλοντος

PCC (Proof-carrying code) Κώδικας ο οποίος περιλαµβάνει την απόδειξη συµβατότητας µε δεδοµένη πολιτική ασφάλειας

PC/SC Αρχιτεκτονική επικοινωνίας τερµατικών και έξυπνων καρτών. Το PC/SC προτάθηκε από την εταιρεία Microsoft και άλλους κατασκευαστές έξυπνων καρτών και προσωπικών υπολογιστών µε σκοπό την προτυποποίηση των διεπαφών υλικού και λογισµικού των έξυπνων καρτών για την επικοινωνία µε προσωπικούς υπολογιστές

PKCS (Public-Key Cryptography Standards) Ανεπίσηµα πρότυπα που αφορούν στην κρυπτογραφία δηµόσιου κλειδιού. Έχουν δηµοσιευθεί από την εταιρεία RSA Inc

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 112 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

PKI (Public Key Infrastructure) Υποδοµή ∆ηµόσιου Κλειδιού. Εφαρµόζεται στην περίπτωση της ασύµµετρης κρυπτογράφησης και αναφέρεται στην ύπαρξη ενός ζευγαριού κλειδιών, του δηµόσιου και ιδιωτικού) για την ασφάλεια των δεδοµένων. Αποτελείται από κατάλληλο λογισµικό και υλικό.

Plug-In Έξυπνη κάρτα µε µικρό σχήµα και διάταξη που χρησιµοποιείται κυρίως για τα κινητά τηλέφωνα

Processor card Πβ. Microprocessor card PVC (Polyvinyl Chloride) Χλωριούχο Πολυβινύλιο. Το

πλαστικό από το οποίο κατασκευάζεται το σώµα της έξυπνης κάρτας

RAM (Random Access Memory) Μνήµη Τυχαίας Προσπέλασης RISC (Reduced Instruction Set Computer) Μία αρχιτεκτονική

σχεδίασης υπολογιστών Retry Counter Μετρητής Προσπαθειών. Μετρητής, ο οποίος

συγκεντρώνει αρνητικές προσπάθειες/αποτελέσµατα και αποφασίζει αν κάποιο κλειδί θα συνεχίσει να χρησιµοποιείται ή όχι. Αν ο καταµετρητής φτάσει στον µέγιστο αριθµό ανεπιτυχών προσπαθειών τότε το κλειδί απενεργοποιείται και δεν µπορεί πλέον να χρησιµοποιηθεί

ROM (Read Only Memory) Μνήµη Ανάγνωσης Μόνο. Ένας τύπος µνήµης, όπου τα δεδοµένα που αρχικά έχουν εγγραφεί µπορούν µόνο να προσπελαστούν

RSA (Rivest-Shamir-Adleman) Αλγόριθµος κρυπτογράφησης δηµόσιου κλειδιού, ο οποίος πήρε το όνοµά του από τους τρεις εφευρέτες του, τους Rivest, Shamir και Adleman

SAM (Security Access Module) Άρθρωµα, το οποίο χρησιµοποιείται σαν τµήµα ενός τερµατικού για την ασφαλή αποθήκευση κλειδιών και αλγορίθµων

SDA (Static Data Authentication) Η µέθοδος ταυτοποίησης µίας κάρτας µέσω της ψηφιακής υπογραφής ενός αντιγράφου από επιλεγµένα δεδοµένα της κάρτας

Secret Key Μυστικό κλειδί. 1. Το κλειδί στην κρυπτογράφηση δηµόσιου κλειδιού που πρέπει να παραµείνει µυστικό. 2. Το κλειδί στην κρυπτογράφηση συµµετρικού κλειδιού. Και σε αυτήν την περίπτωση, το κλειδί πρέπει να παραµείνει µυστικό

Session Συνεδρία. Αναφέρεται στο χρόνο µεταξύ δύο reset µίας κάρτας ή στο χρόνο µεταξύ της τροφοδότησης (power up) και της διακοπής τροφοδοσίας (power down)

SET (Secure Electronic Transaction) Ασφαλής Ηλεκτρονική Συναλλαγή. Πρωτόκολλο που αναπτύχθηκε από τη MasterCard και τη Visa για την κρυπτογραφηµένη αποστολή αριθµών πιστωτικών καρτών µέσω του ∆ιαδικτύου (Internet). Σύµφωνα µε το SET, ο έµπορος δε µαθαίνει ποτέ τον αριθµό της πιστωτικής κάρτας, περιορίζοντας έτσι τον κίνδυνο της απάτης

SHA-1 (Secure Hash Algorithm 1) Πρότυπο του οργανισµού NIST των Η.Π.Α., το οποίο αναφέρεται στη δηµιουργία κρυπτογραφικά ασφαλών κερµάτων (µικρών δεδοµένων) από µεγαλύτερο σύνολο δεδοµένων

Signed Applets Υπογεγραµµένες Εφαρµογές. Αναφέρεται σε εφαρµογές Java ή Java Card, οι οποίες συνοδεύονται από ψηφιακή υπογραφή. Η υπογραφή αυτή αποδεικνύει την ταυτότητα του κατασκευαστή της εφαρµογής ή του διανοµέα της

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 113 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

SIM (Subscriber Authentication Module) Άρθρωµα Ταυτοποίησης Συνδροµητή

SMG9 (Special Mobile Group 9) Οµάδα ειδικών που καθορίζει τις προδιαγραφές των αλληλεπιδράσεων µεταξύ έξυπνων καρτών και κινητών τηλεφώνων

Super Smart Card Υποδηλώνει µία έξυπνη κάρτα µε ενσωµατωµένα πολύπλοκα στοιχεία, όπως για παράδειγµα οθόνη απεικόνισης και αριθµητικό πληκτρολόγιο

SVC (Stored-Value-Cards) Όρος που χρησιµοποιείται για τις προπληρωµένες κάρτες που έχουν προκαθορισµένη αξία και χρησιµοποιούνται µέχρι εξάντλησης της αξίας αυτής

TASI (Terminal Application Services Interface) Ο τρόπος µε τον οποίο µια εφαρµογή διασυνδέεται µε τον «έξω κόσµο»

TC (Transaction Certificate) Πιστοποιητικό Συναλλαγής TTP (Trusted Third Party) Έµπιστη Τρίτη Οντότητα Transfer Κάρτα µετακίνησης. Είναι µία έξυπνη κάρτα, η οποία

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

Transmission Protocol Πρωτόκολλο Μετάδοσης. Το σύνολο των κανόνων µετάδοσης που χρησιµοποιούνται για την µεταφορά δεδοµένων µεταξύ τερµατικού και έξυπνων καρτών

Verifier Εφαρµογή η οποία επεξεργάζεται τον εισερχόµενο κώδικα και διασφαλίζει την συµβατότητά του µε τις προβλεπόµενες προδιαγραφές ασφάλειας

Virgin Card Κάρτα στην οποία δεν υπάρχει ακόµα ο µικροεπεξεργαστής και δεν έχει ακόµα προσωποποιηθεί

Volatile Memory Ασταθής µνήµη. Αναφέρεται σε µνήµες, οι οποίες χάνουν τα δεδοµένα τους, όταν διακοπεί η τροφοδοσία τους (όπως η µνήµη RAM ενός προσωπικού υπολογιστή)

VOP (Visa Open Platforms) Πολυσήµαντο σύστηµα αρχιτεκτονικής το οποίο επιτρέπει την ταχεία ανάπτυξη παγκόσµιων πρακτικών συστηµάτων έξυπνων καρτών

White list Λευκή λίστα. Η λίστα, συνήθως σε βάση δεδοµένων, η οποία περιέχει όλες τις κάρτες που επιτρέπεται η χρήση τους σε ένα συγκεκριµένο σύστηµα

WORM (Write Once Read Many) Αναφέρεται στην µνήµη των έξυπνων καρτών που µπορεί να γίνει εγγραφή στην κάρτα µόνο µία φορά και να διαβαστεί πολλές

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 114 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

7 Παράρτηµα Β : Ευρετήριο Πινάκων & Εικόνων

7.1 Πίνακες

ΠΙΝΑΚΑΣ 1 ΤΥΠΟΙ ΛΟΓΙΣΜΙΚΟΥ ΕΞΥΠΝΩΝ ΚΑΡΤΩΝ ΜΕ ΕΦΑΡΜΟΓΕΣ ...............................................5

ΠΙΝΑΚΑΣ 2 ΣΥΓΚΡΙΣΗ ΕΡΓΑΣΙΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ...................................11

ΠΙΝΑΚΑΣ 3 ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΑΛΓΟΡΙΘΜΩΝ ΚΡΥΠΤΟΓΡΑΦΗΣΗΣ ΣΤΙΣ ΈΞΥΠΝΕΣ ΚΑΡΤΕΣ ...............12

ΠΙΝΑΚΑΣ 4 ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΞΥΠΝΩΝ ΚΑΡΤΩΝ...............................13

ΠΙΝΑΚΑΣ 5 ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΑΡΧΕΙΩΝ ΤΩΝ ΈΞΥΠΝΩΝ ΚΑΡΤΩΝ ....................................................14

ΠΙΝΑΚΑΣ 6 ΠΡΟΤΥΠΑ ISO ΕΞΥΠΝΩΝ ΚΑΡΤΩΝ ..............................................................................35

ΠΙΝΑΚΑΣ 7 ΌΡΙΑ ΕΚΘΕΣΗΣ ΓΙΑ ΦΥΣΙΚΑ ΦΑΙΝΟΜΕΝΑ ....................................................................37

ΠΙΝΑΚΑΣ 8 ΠΡΟΣ∆ΙΟΡΙΣΜΟΙ ΤΩΝ ΕΠΑΦΩΝ ΤΗΣ ΚΑΡΤΑΣ ...............................................................39

ΠΙΝΑΚΑΣ 9 ΚΑΤΑΣΤΑΣΕΙΣ ΕΠΑΦΩΝ ΚΑΤΑ ΤΗ ∆ΙΑΡΚΕΙΑ RESET ΤΗΣ ΚΑΡΤΑΣ..................................42

ΠΙΝΑΚΑΣ 10 ∆ΟΜΗ ATR (ΑΠΑΝΤΗΣΗ ΣΕ ΑΝΑΣΤΟΙΧΕΙΟΘΕΤΗΣΗ) .............................................45

ΠΙΝΑΚΑΣ 11 ΠΡΟΣ∆ΙΟΡΙΣΜΟΙ ΠΡΩΤΟΚΟΛΛΩΝ ...........................................................................46

ΠΙΝΑΚΑΣ 12 ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΠΡΟΤΥΠΩΝ ΕΞΥΠΝΩΝ ΚΑΡΤΩΝ.......................................................46

ΠΙΝΑΚΑΣ 13 ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΠΡΟ∆ΙΑΓΡΑΦΩΝ ΕΞΥΠΝΩΝ ΚΑΡΤΩΝ ...............................................47

ΠΙΝΑΚΑΣ 14 ΠΡΟΣ∆ΙΟΡΙΣΜΟΙ ΣΥΝΟΛΟΥ ΕΝΤΟΛΩΝ CLA ............................................................54

ΠΙΝΑΚΑΣ 15 ΚΩ∆ΙΚΟΙ ISO/IEC 7816-4 INS .........................................................................54

ΠΙΝΑΚΑΣ 16 Η ATR ΤΗΣ ΚΑΡΤΑΣ 3Κ MULTIFLEX ΤΗΣ SCHLUMBERGER.................................75

ΠΙΝΑΚΑΣ 17 Η ΕΝΤΟΛΗ SELECT FILE ΤΗΣ ΚΑΡΤΑΣ 3K MULTIFLEX ........................................76

ΠΙΝΑΚΑΣ 18 ΠΛΗΡΟΦΟΡΙΕΣ ΕΛΕΓΧΟΥ ΑΡΧΕΙΟΥ ΓΙΑ ΤΟ MASTER FILE (3F0016) ........................78

ΠΙΝΑΚΑΣ 19 ΤΥΠΟΙ ΑΡΧΕΙΩΝ ΤΗΣ MULTIFLEX ........................................................................79

ΠΙΝΑΚΑΣ 20 ΌΡΟΙ ΠΡΟΣΒΑΣΗΣ ΕΝΤΟΛΩΝ ΑΝΑΝΕΩΣΗΣ ΣΤΟΙΧΕΙΩ∆ΩΝ ΑΡΧΕΙΩΝ .......................80

ΠΙΝΑΚΑΣ 21 ∆ΙΑ∆ΙΚΑΣΙΕΣ ΜΕ ΟΡΟΥΣ ΠΡΟΣΒΑΣΗΣ .....................................................................80

ΠΙΝΑΚΑΣ 22 ΟΝΤΟΤΗΤΕΣ ΚΑΙ ΠΙΣΤΟΠΟΙΗΣΕΙΣ ΓΙΑ ΟΡΟΥΣ ΠΡΟΣΒΑΣΗΣ .....................................81

ΠΙΝΑΚΑΣ 23 ΠΛΗΡΟΦΟΡΙΕΣ ΕΛΕΓΧΟΥ ΓΙΑ ΤΟ ΑΡΧΕΙΟΥ ΣΕΙΡΙΑΚΟΥ ΑΡΙΘΜΟΥ (000216) ............83

ΠΙΝΑΚΑΣ 24 ΠΛΗΡΟΦΟΡΙΕΣ ΕΛΕΓΧΟΥ ΓΙΑ ΤΟ ΑΡΧΕΙΟ ΕΞΩΤΕΡΙΚΗΣ ΕΠΙΚΥΡΩΣΗΣ (001116) .....84

ΠΙΝΑΚΑΣ 25 ΑΡΧΕΙΑ ΚΛΕΙ∆ΙΩΝ ΣΤΗΝ 3K MULTIFLEX.............................................................87

ΠΙΝΑΚΑΣ 26 ΜΟΡΦΗ ΕΝΟΣ ΑΡΧΕΙΟΥ PIN ...................................................................................87

ΠΙΝΑΚΑΣ 27 ΜΟΡΦΗ ΕΣΩΤΕΡΙΚΟΥ ΚΑΙ ΕΞΩΤΕΡΙΚΟΥ ΚΛΕΙ∆ΙΟΥ ΠΙΣΤΟΠΟΙΗΣΗΣ .........................88

ΠΙΝΑΚΑΣ 28 ΟΙ 21 ΕΝΤΟΛΕΣ ΤΗΣ 3Κ MULTIFLEX..................................................................95

ΠΙΝΑΚΑΣ 29 ΑΡΧΕΙΟ ΕΣΩΤΕΡΙΚΗΣ ΕΠΙΚΥΡΩΣΗΣ .........................................................................99

ΠΙΝΑΚΑΣ 30 ΧΡΗΣΙΜΟΠΟΙΗΣΗ ΤΗΣ EEPROM ΣΤΗΝ 3Κ MULTIFLEX ΤΗΣ SCHLUMBERGER .103

ΠΙΝΑΚΑΣ 31 ΤΑ OVERHEAD BYTE ΜΙΑΣ ΑΧΡΗΣΙΜΟΠΟΙΗΤΗΣ ΚΑΡΤΑΣ 3K MULTIFLEX. ..........104

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 115 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

7.2 Εικόνες

ΕΙΚΟΝΑ 1 ΤΥΠΟΙ ΛΟΓΙΣΜΙΚΟΥ ΕΞΥΠΝΩΝ ΚΑΡΤΩΝ .........................................................................5

ΕΙΚΟΝΑ 2 ΣΤΟΙΧΕΙΑ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΜΙΑΣ ΈΞΥΠΝΗΣ ΚΑΡΤΑΣ ...............................................24

ΕΙΚΟΝΑ 3 ΚΑΤΑΣΚΕΥΗ ΤΣΙΠ ........................................................................................................29

ΕΙΚΟΝΑ 4 ΣΤΟΙΧΕΙΑ ΕΝΟΣ MODULE ΈΞΥΠΝΗΣ ΚΑΡΤΑΣ..............................................................30

ΕΙΚΟΝΑ 5 ΕΙΣΑΓΩΓΗ ΤΟΥ MODULE ΣΤΗΝ ΚΑΡΤΑ..........................................................................30

ΕΙΚΟΝΑ 6 ΒΗΜΑΤΑ ΚΑΤΑΣΚΕΥΗΣ ΚΑΡΤΑΣ....................................................................................32

ΕΙΚΟΝΑ 7 ΤΕΣΤ ΛΥΓΙΣΜΑΤΟΣ ......................................................................................................38

ΕΙΚΟΝΑ 8 ΤΕΣΤ ΕΥΚΑΜΠΤΟΤΗΤΑΣ ...............................................................................................38

ΕΙΚΟΝΑ 9 ΘΕΣΗ, ΜΕΓΕΘΟΣ ΚΑΙ ΣΧΗΜΑ ΤΩΝ ΕΠΑΦΩΝ ΤΗΣ ΚΑΡΤΑΣ ............................................40

ΕΙΚΟΝΑ 10 ΓΕΝΙΚΟ ∆ΙΑΓΡΑΜΜΑ ΚΑΤΑΣΤΑΣΕΩΝ ΤΗΣ ΚΑΡΤΑΣ ΚΑΙ ΤΟΥ ΑΝΑΓΝΩΣΤΗ..................41

ΕΙΚΟΝΑ 11 Η ΑΚΟΛΟΥΘΙΑ ΑΝΑΣΤΟΙΧΕΙΟΘΕΤΗΣΗΣ ΑΠΟ ΤΟΝ ΑΝΑΓΝΩΣΤΗ ...............................42

ΕΙΚΟΝΑ 12 ΜΟΝΤΕΛΟ ΑΝΑΦΟΡΑΣ OSI ....................................................................................50

ΕΙΚΟΝΑ 13 ΜΕΤΑΦΟΡΑ BYTE ΜΕΤΑΞΥ ΚΑΡΤΑΣ-ΑΝΑΓΝΩΣΤΗ ΚΑΙ ΕΛΕΓΧΟΣ ΛΑΘΟΥΣ ..................52

ΕΙΚΟΝΑ 14 ΣΤΟΙΧΕΙΑ ΤΟΥ Τ=1 ΠΡΩΤΟΚΟΛΛΟΥ.......................................................................57

ΕΙΚΟΝΑ 15 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΠΙΚΟΙΝΩΝΙΑΣ ΕΦΑΡΜΟΓΩΝ........................................................59

ΕΙΚΟΝΑ 16 Η ∆ΟΜΗ ΕΝΤΟΛΩΝ ΤΟΥ APDU...............................................................................61

ΕΙΚΟΝΑ 17 H ∆ΟΜΗ ΑΠΟΚΡΙΣΗΣ APDU...................................................................................62

ΕΙΚΟΝΑ 18 ΚΩ∆ΙΚΟΙ ΕΠΙΣΤΡΟΦΗΣ ΤΟΥ ISO/IEC 7816-4.....................................................62

ΕΙΚΟΝΑ 19 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΤΗΣ ΕΞΥΠΝΗΣ ΚΑΡΤΑΣ..................64

ΕΙΚΟΝΑ 20 ΤΥΠΟΙ ΑΡΧΕΙΩΝ ......................................................................................................64

ΕΙΚΟΝΑ 21 ∆ΟΜΕΣ ΣΤΟΙΧΕΙΩ∆ΩΝ ΑΡΧΕΙΩΝ .............................................................................66

ΕΙΚΟΝΑ 22 ∆ΙΑ∆ΙΚΑΣΙΑ ΕΠΙΚΥΡΩΣΗΣ PIN .............................................................................102

Ιδιότητες Software & Hardware Στις Έξυπνες Κάρτες - 116 -

∆ιπλωµατική Εργασία Μαυρογένη Ελευθέριου Υπεύθυνος Καθηγητής : Μπλέρης Γεώργιος

8 Βιβλιογραφία - Πηγές

Smart Cards: The Developer's Toolkit, των Timothy M.

Jurgensen, Scott B. Guthery

Smart Card Handbook, του Wolfgang Rankl

Smart Card Security and Applications, του Mike Hendry

Smart Cards : A Guide to Building and Managing Smart

Card Applications, των J. Thomas Monk, Henry N. Dreifus

Opencard, http://www.opencard.org/

Axalto (πρώην Schlumberger), http://www.axalto.com/

Smart Card Technology: Introduction To Smart Cards,

http://www.smartcard.co.uk/resources/articles/intro2sc.html

Smart Card Industry Review 2000,

http://www.smartcard.co.uk/resources/articles/indreview-

00.html

Some Aspects of the History of Smart Cards and Tokens -

Ancient and Modern,

http://www.smartcard.co.uk/resources/articles/cardstokens.ht

ml

Smart Card HOW TO, http://tldp.org/HOWTO/Smart-Card-

HOWTO/