|
|
 |
|
|
 |
Smartcards: Die Architektur
Die physische Struktur
Der Aufbau einer Smartcard wird durch die ISO-Standards 7810, 7816/1 und 7816/2 festgelegt. Der Hauptbestandteil ist nach eine Plastikkarte mit den Dimensionen 85,60 x 53,98 x 0,80 mm. Darin ist eine gedruckte Schaltung integriert, d. h. die Kontakte zwischen den Komponenten werden durch gegenseitige Berührung und nicht durch Kabel hergestellt. Diese Schaltung enthält alle Bestandteile eines vollwertigen Computers. Sie wird als Mikrocontroller (MCU - Micro Controller Unit) bezeichnet.
|
 |
Abbildung 1: Die Architektur und die Anordnung der Kontakte einer Smartcard nach ISO 7816
Die Kontakte C4 und C8 sind für zukünftige Anwendungen reserviert. |
Der Mikrocontroller: Computer im Mikroformat
In der Industrie werden vorwiegend bewährte, zuverlässige und preisgünstige Mikrocontroller wie der Intel 8051 oder der Motorola 6805 eingesetzt. Für diese Controller existieren ausgereifte Programmierwerkzeuge. Aufgrund der hohen Anforderungen an die Rechenleistung von Smartcards, zum Beispiel für kryptografische Funktionen , werden zunehmend 16- und 32-Bit-Architekturen verwendet. Einfache Verschlüsselungsalgorithmen lassen sich jedoch auch für 8-Bit-Prozessoren implementieren.
Typische Mikrocontroller sind in 0,5- bis 0,7-μm-CMOS-Technologie realisiert, neue Controller mit bis zu 64 KB EEPROM sogar in 0,25- oder 0,22-μm-Technologie. Eine derart hohe Dichte von Bauelementen ist notwendig, da die Größe des Controllers nicht mehr als 25 mm² betragen darf. Der ISO-7816-Standard schreibt eine bestimmte Biegsamkeit der Karte vor, größere Siliziumbausteine würden bei dieser Belastung brechen. Außerdem wird durch eine höhere Dichte der Stromverbrauch gesenkt.
Security Controller: Mikrocontroller für Sicherheitsanwendungen
Ein Mikrocontroller, der speziell für Sicherheitsanwendungen ausgelegt ist, wird als Security Controller bezeichnet.
Für Signaturkarten werden hauptsächlich die 16-Bit-Security-Controller der Serien SLE 66C und SLE 66CX von Infineon eingesetzt. Das X bedeutet, dass es sich um einen Kryptocontroller handelt. Die darauffolgende Zahl bezeichnet die EEPROM-Größe des Controllers (z. B. SLE 66CX160P: 16 KByte EEPROM). Wenn die Produktbezeichnung auf "P" oder "PU" endet, verfügt der Controller zusätzlich über eine Speicherverwaltung, eine Schutzeinheit und einen DES -Beschleuniger.
Ein weiterer Hersteller von Security Controllern ist Philips Semiconductors. Die 8-Bit-Controller der P8WE50- und P8WE60-Familien verfügen über bis zu 32 KByte EEPROM und einen integrierten DES -Koprozessor. Die Produktlinie P8WE50 ist als Kryptocontroller realisiert. Die 16-Bit-Kryptocontroller der neuen SmartXA-Serie besitzen eine integrierte Hardware-Firewall und können bis zu 16 MByte ausführbaren Code adressieren.
Die Mikrocontroller Infineon SLE C164P, 66CX640P, -320P, -160M und -160S sowie Philips P8WE6017V1I und P8WE5032VOG haben das ITSEC-Zertifikat E4/hoch erhalten. Sie dürfen in Signaturkarten eingesetzt werden, mit denen qualifizierte elektronische Signaturen erzeugt werden.
Die folgende Tabelle zeigt, welche Mikrocontroller für signaturgesetzkonforme Smartcards verwendet werden:
| Signaturkarte |
Mikrocontroller |
| TeleSec PKS-Card ,Version 2.0 |
Infineon SLE 66CX160S |
| TeleSec PKS-Card, Version 3.0 |
Infineon SLE 66CX320P |
| Signtrust SEA-Card, Version 1.0 |
Infineon SLE 66CX160S |
| Signtrust SEA-Card, Version 2.0 |
Infineon SLE 66CX320P |
| DATEV e:secure-Card, Version 1.0 |
Infineon SLE 66CX320P |
| STARCOS SPK 2.3-Signaturkarte |
Philips P8WE5032V0G |
|
|
| Tabelle: Signaturkarten und verwendete Mikrocontroller |
Kryptocontroller: Spezialisten für PKI -Anwendungen
Ein Kryptocontroller ist ein Security Controller mit zusätzlichen Fähigkeiten zur schnellen Ausführung kryptografischer Funktionen. Die Algorithmen werden auf einem zusätzlichen Prozessor, dem Krypto-Koprozessor, ausgeführt.
Die Infineon-Kryptocontroller der SLE 66CX-Serie enthält einen Koprozessor, der als Advanced Crypto Engine bezeichnet wird. Er kann alle heute bekannten Public-Key-Algorithmen ausführen, darunter RSA-Operationen mit einer Schlüssellänge von bis zu 2048 Bit. Die Erzeugung einer RSA -Signatur mit einem 1024-Bit-Schlüssel dauert laut Herstellerangaben auf einem Infineon SLE 66CX320P bei einer Taktfrequenz von 15 MHz nur ca. 273 ms.
Die Philips-Controller der P8WE50-Serie enthalten einen FameX-Koprozessor mit 32-Bit-Architektur und Direct Memory Access. Er kann unter anderem RSA- und Elliptische-Kurven-Algorithmen mit Schlüssellängen bis 4096 Bit ausführen. Eine 1024-Bit-RSA-Verschlüsselung dauert ca. 160 ms.
Der Mikroprozessor: Die Schaltzentrale
Das Herzstück des Controllers ist der Mikroprozessor, auch als CPU (Central Processing Unit) bezeichnet. Die Mikrocontroller Intel 8051 und der Motorola 6805 enthalten eine 8-Bit-CISC-CPU mit zusätzlichen kartenspezifischen Befehlen. CISC bedeutet Complex Instruction Set Computer. Derartige Prozessoren verfügen über einen komplexen Befehlssatz, allerdings wird in den meisten Fällen nur ein kleiner Anteil dieser Befehle verwendet. Die Ausführung eines Befehls dauert oft mehrere Taktzyklen. Die Befehlssätze der CPUs der Infineon- und Philips-Security-Controller sind kompatibel mit der 8051-Familie. Allerdings unterscheidet sich die innere Architektur vollständig von der eines 8051-Prozessors, so dass die Rechenleistung um ein Vielfaches höher ist.
Koprozessoren: Mehr Leistung für Spezialanwendungen
Um einen Mikrocontroller mit zusätzlichen Fähigkeiten zu erweitern und die CPU zu entlasten, kann er mit Koprozessoren ausgestattet werden. Beispiele dafür sind numerische Koprozessoren (NPU, Numerical Processing Unit oder MAP, Modular Arithmetic Processor) zur Ausführung kryptografischer Funktionen . Krypto-Koprozessoren, die in Kryptocontrollern eingesetzt werden, sind speziell für Public-Key-Algorithmen ausgelegt. Sie basieren auf einer RISC-Architektur (Reduced Instruction Set Computer). Da ihr Anwendungsbereich auf bestimmte mathematische Berechnungen beschränkt ist, kommen sie mit einem reduzierten Befehlssatz aus. Die Ausführung einzelner Befehle nimmt dafür sehr wenig Zeit in Anspruch. Weitere Beispiele für NPUs sind DES -Beschleuniger und Prozessoren zur Erzeugung von Zufallszahlen. Für kryptografische Algorithmen haben möglichst gute, d. h. möglichst zufällige Zufallszahlen eine große Bedeutung. Die Generatoren auf Smartcards nutzen z. B. das Rauschen einer Diode zur Gewinnung zufälliger Werte.
Das I/O-System: Die Schnittstelle zum Lesegerät
Wenn die CPU dem Lesegerät Informationen übermitteln möchte, werden die entsprechenden Daten an eine bestimmte Speicheradresse geschrieben. Diese Adresse wird jedoch nicht durch ein wirkliches Speichermodul, sondern durch das I/0-System belegt, das mit den Kontakten der Smartcard verbunden ist. Da nur ein I/0-Kontakt vorhanden ist, erfolgt die Datenübertragung seriell im Halbduplex-Betrieb. Das bedeutet, dass nur ein Bit gleichzeitig übertragen wird, und dass Karte und Lesegerät nicht gleichzeitig Daten senden können.
Die Kontakte der Smartcard
Die kleine golde Fläche auf der Oberseite einer Smartcard ist in acht Kontaktfelder unterteilt. Ihre Anordnung ist in Abbildung 1 dargestellt.
I/O - Ein- und Ausgabe
Über diesen Kontakt werden Daten zwischen Smartcard und Lesegerät ausgetauscht.
Vpp - Programmierspannung
Frühere Karten wurden für das Beschreiben des EEPROM-Moduls mit einer Programmierspannung von ca. 20 V versorgt. Heutige Smartcards erzeugen die Programmierspannung über kaskadierende Spannungsverdopplung aus der Vcc-Spannung. Auf diese Weise werden Angriffe verhindert, bei denen der Schreibvorgang durch eine Änderung der Programmierspannung manipuliert wird.
Vcc - Versorgungsspannung
Über diesen Kontakt wird die Smartcard mit der für den Betrieb nötigen Spannung versorgt. Moderne Smartcards arbeiten mit Spannungen von 2,7 bis 5,5 V. Die Stromstärke beträgt maximal 10 mA. Bei 5 V und 10 mA beträgt die Leistungsaufnahme 50 mW.
CLK - Takt
Normalerweise sind Smartcard-Controller auf eine externe Taktquelle angewiesen, da der Quarz aufgrund seiner Größe nicht auf der Karte untergebracht werden kann. Moderne Controller können mit externen Taktfrequenzen von ca. 1 bis 8 MHz betrieben werden. Einige Controller verdoppeln diese Rate und arbeiten mit internen Taktraten von bis zu 15 MHz.
RST - Reset
Das Reset-Signal wird für die Bootsequenz und zum Zurücksetzen der Karte in den Ausgangszustand verwendet. RST ist aktiv, wenn keine Spannung anliegt.
Die Speicherbausteine
ROM (Read Only Memory)
Auf ROM-Bausteine kann nur lesend zugegriffen werden. Das Betriebssystem der Smartcard wird in einem ROM-Modul gespeichert. Alle Karten einer Baureihe besitzen das gleiche Betriebssystem, d. h. der Inhalt der Betriebssystem-Bausteine ist identisch.
Moderne Controller besitzen bis zu 136 KByte ROM. Dieser Speicher kann teilweise für Anwendungsprogramme genutzt werden, die bei der Chipherstellung integriert werden.
RAM (Random Access Memory)
Der Arbeitsspeicher einer Smartcard wird durch RAM-Module realisiert. Der Inhalt dieser Module ist flüchtig, d. h. die Daten gehen nach dem Beenden der Sitzung verloren. Da RAM-Bausteine recht groß sind, besitzen auch moderne Controller nur bis zu 5 KByte RAM. Die Zugriffszeit beträgt ca. 70 ns. Smartcard-Controller verwenden statischen RAM. Diese Bausteine müssen nicht ständig mit einem Takt versorgt werden, das Abschalten des Taktsignals bedeutet keinen Datenverlust.
EEPROM (Electrically Erasable Programmable Read Only Memory)
EEPROM-Bausteine können im Unterschied zu ROM-Bausteinen beschrieben werden. Allerdings ist die Anzahl der Schreibzyklen begrenzt, eine moderne EEPROM-Speicherzelle kann zwischen 100.000- und 500.000-mal beschrieben werden. Die Stabilität der gespeicherten Daten ist zeitlich begrenzt. Die meisten Hersteller garantieren eine Speicherdauer von 10 Jahren.
Aufgrund der relativ hohen Zugriffszeit von ca. 3-5 ms können EEPROM-Module nicht als Arbeitsspeicher genutzt werden. Zur Haltung von Kundendaten wie Signaturschlüssel und Zertifikate sind sie dagegen sehr gut geeignet. Die Funktion eines EEPROM-Bausteins entspricht der einer Festplatte in einem Desktop-Computer. Security Controller besitzen normalerweise einen nur einmal beschreibbaren EEPROM-Bereich ("write once area", "security area"), der zur sicheren Aufbewahrung von Daten, z. B. von Signaturschlüsseln , genutzt werden kann. |
|
|