4. Zugangskontrolle
Transcription
4. Zugangskontrolle
4. Zugangskontrolle 1 4. Zugangskontrolle Zugangskontrolle (authentication) Kontrolle der Authentizität eines Benutzers, häufig menschlicher Benutzer, durch das Rechensystem (login) Authentizitätsnachweis bei Zugangskontrolle Was man weiß (z.B. Passwort, PIN) Was man hat (z.B. Chipkarte) Was man ist (z.B. Fingerabdruck) Wo man ist (z.B. GPS) Damit ein System Entscheidungen darüber treffen kann, ob ein Benutzer auf eine Datei zugreifen kann, müssen Benutzer eindeutig und fälschungssicher identifiziert werden. Zugriffsentscheidungen werden dann auf Basis dieser eindeutigen und fälschungssicheren Identifizierung getroffen. Der Vorgang, in dem ein Benutzer (oder genauer ein Programm das im Auftrag eines Benutzers läuft) mit einem eindeutigen Bezeichner in Verbindung gesetzt wird, nennt sich Zugangskontrolle (authentication). Bei den eingesetzten Authentifizierungsmechanismen unterscheidet man Maßnahmen, die auf der Kenntnis eines speziellen Wissens, auf einem persönlichen Besitz, auf biometrischen Merkmalen oder auf dem Zugangskontrollort basieren. Der Prozess der Zugangskontrolle besteht darin, die Zugangskontrolldaten entgegenzunehmen, diese zu analysieren und zu entscheiden, ob der Benutzer erfolgreich identifiziert werden konnte. 2 4.1. Passwörter login: mkoch password: ***** Benutzerkennung( user name, login name) Passwort wird nicht am Bildschirm angezeigt Zurückweisung, wenn Benutzerkennung und/oder Passwort falsch ! • Bedeutung der Benutzererkennung: zugangsberechtigter Benutzer, für den bestimmte Benutzungsrechte vereinbart sind. • Kenntnis des geheimen Passworts gilt als Nachweis der Authentizität Passwörter sind ein Beispiel einer Zugangskontrollmethode, welche auf dem Wissen von Benutzern basiert. Mittels eines Passwortverfahrens authentifiziert sich ein Benutzer, indem er/sie mit dem System ein vereinbartes Geheimnis austauscht. Das System muss die Passworte sicher verwalten, so dass keine unautorisierten Zugriffe darauf möglich sind. Üblicherweise werden die Passwörter verschlüsselt und zusammen mit der Benutzerkennung und dem Namen in einer Passwortdatei gespeichert. Bei der passwortbasierten Zugangskontrolle verlangt das System die Kennung des Benutzers durch ein login-Prompt. Der Benutzer identifiziert sich durch seine Kennung und gibt ein Passwort ein. Das System vergleicht dann das eingegebene Passwort mit dem in der Passwortdatei. Im Fehlerfall (Benutzerkennung oder Passwort falsch) wird die Authentifikation abgebrochen. 3 4.1. Passwörter Zuerst wurden Passwörter im Klartext in Dateien gespeichert, die gegen unautorisierten Lese- und Schreibzugriff geschützt sind. Eine kleine Anekdote.... Aufgrund eines Softwarefehlers wurden die Zeiger zur Passwortdatei und der Nachricht-des-TagesDatei vertauscht, so dass bei jedem Anmelden eines Benutzers die Klartext-Passwortdatei ausgegeben wurde. Passwörter wurden schon immer in geschützten Dateien gespeichert, allerdings am Anfang noch unverschlüsselt. Der Inhalt dieser Datei kann jedoch aus Versehen veröffentlicht werden, wie ein Ereignis in den frühen 60iger Jahren belegt: Ein Systemadministrator editierte die Passwortdatei eines Multics-Systems, ein anderer Administrator editierte die Datei für die Nachricht des Tages. Aufgrund eines Entwurffehlers der Software, wurden die Zeiger auf die beiden Dateien vertauscht, so dass bei jeder Benutzeranmeldung die Passwortdatei am Bildschirm ausgegeben wurde. 4 4.1. Passwörter Speicherung der Passwörter in verschlüsselter Form. z.B. mit Einträgen (name, f(password)), wobei f eine Einbahnfunktion (one-way function) ist: nicht notwendig geheim, aber mit unbekannter Umkehrfunktion. Authentisierung 1. Suche zu eingegebenen Benutzernamen n zugehörigen Eintrag (n,x) 2. Verschlüssele eingegebenes Passwort p zu f(p) und vergleiche mit x In einem nächsten Schritt wurden die Passwortdateien in einer schreibgeschützten Datei verschlüsselt gespeichert, z.B. mit den Einträgen (name, f(password)), wobei name der Benutzername, password dessen Passwort und f eine Einbahnfunktion (one-way function) ist, d.h. bei gegebenen Funktionswert f(x) kann nicht auf den Wert x geschlossen werden. Wenn ein Benutzer n sich am System mit einem Passwort p anmeldet, wird dieses verschlüsselt (mit Wert f(p)) und mit dem verschlüsselten Wert f(p‘) für den Benutzereintrag (n,f(p‘)) verglichen. Nur wenn beide Werte gleich sind, ist die Anmeldung erfolgreich. 5 4.1. Passwörter Angriffe auf verschlüsselte, aber lesbare Passwortdateien. - gängige Passwörter (Name etc.) ausprobieren - Wörterbuchattacken: Wörter aus einem Wörterbuch ausprobieren Morris, Thompson: 3.289 Passwörter in einer Studie betrachtet Anzahl Eigenschaften 15 ein ASCII-Zeichen 72 zwei ASCII-Zeichen 464 drei ASCII-Zeichen 477 Vier alphanumerische Zeichen 706 5 Groß- oder 5 Kleinbuchstaben 605 6 Kleinbuchstaben 492 Wöterbuchwort 86% aller Passwörter Angriffe auf diesen Ansatz sind das Ausprobieren wahrscheinlicher Passwörter, da menschliche Benutzer dazu tendieren relativ kurze und einfache Passwörter zu wählen, die sie sich merken können. Dazu kann man Benutzernamen und deren Varianten, andere Eigennamen, Vornamen, Namen von Orten etc. ausprobieren. Ein anderer attraktiver Angriff ist die Wörter eines Wörterbuchs und deren Variationen (z.B. rückwärts, Groß- und Kleinschreibung etc.) auszuprobieren. In einer Studie haben Morris und Thompson 3.289 Passwörter ausgewertet. Die Tabelle der Folie zeigt einige Ergebnisse. Artikel der Studie: R.Morris, K.Thompson „Password Security: A Case History“, Communications of the ACM, 22(11), November 1979 6 4.1. Passwörter Weitere Möglichkeiten zur Ermittlung eines Passwortes Weitergabe Über die Schulter schauen Merkzettel am Bildschirm Social Engineering Default-/Initialwerte etc. Neben dem systematischen Ausprobieren von Passwörtern mittels eines Wörterbuchs, kann man noch auf andere Weise in den Besitz eines Passwortes gelangen. Durch die Weitergabe von Passwörtern an Dritte erhöht sich die Wahrscheinlichkeit, dass das Passwort an unautorisierte Personen gelangt. Ein „Über die Schulter gucken“ bei der Passworteingabe eines Benutzers kann ebenfalls zum Erfolg führen, genauso wie andere Methoden des Social Engineering (wie das Vorspielen falscher Tatsachen am Telefon, wie die Behauptung man sei Systemadministrator, zur Erlangung von Passwörtern). Wenn Benutzer die default-mäßig eingestellten Initialwerte von Passwörtern nicht ändern, erleichtert dies ebenfalls einen Angriff zur unautorisierten Authentifikation. 7 4.1. Passwörter Qualität von Passwörtern - Passwort sollte nicht zu kurz sein und nicht in einem Wörterbuch stehen - Keine Eigennamen, nicht Vor- oder Nachname - Es sollte Sonderzeichen enthalten - es sollte in regelmäßigen Abständen geändert werden - System sollte überprüfen und „schwache“ Passwörter ablehnen - etc. Um das zu einfache Knacken von Passwörtern zu vermeiden, werden an Passwörter gewisse Anforderungen gestellt: es sollte nicht zu kurz sein, kein Eigenname sein, sollte Sonderzeichen enthalten, öfter geändert werden etc. Bei der Auswahl von Passwörtern durch den Benutzer kann das System Passwörter abweisen, die diesen Anforderungen nicht genügen. 8 4.1. Passwörter Systemgenerierte Passwörter sind sicherer, aber schwerer zu merken (z.B. FunkLAN-Passwort, PIN) Personal Identification Number (PIN) – 10-stellige Kontonummer, fünf letzten Zahlen der Bankleitzahl und Kartensequenznummer zusammengesetzt und zu einem 64-Bit Wert codiert – Eingabe für 3-DES mit Institutsschlüssel der Bank – Ausgabe wird in 16 Hexadezimalzahlen transformiert – PIN ist 3tes bis 6tes Zeichen, wobei A-F des Hexcodes durch 0-5 ersetzt wird Sicherheit: PIN ist zu kurz und Zufälligkeit der Erzeugung ist nicht gegeben Anstelle die Auswahl des Passwortes dem Benutzer zu überlassen, kann man das System selbst Passwörter generieren lassen. Systemgenerierte Passwörter sind zwar in der Regel schwerer zu knacken, Benutzer können sie sich aufgrund ihrer Zufälligkeit aber schwerer merken. Die PIN (Personal Identification Number) für Eurocheque-Karten ist ein bekanntes Beispiel eines systemgenerierten Passwortes. Die PIN wird mittels des 3-DES erzeugt. Als Eingabe bekommt der 3-DES einen 64-Bit Wert, der sich aus der Kontonummer, der Bankleitzahl (letzten 5 Zahlen) und der Kartensequenznummer ergibt. Der Schlüssel ist der Institutsschlüssel der Bank, welche die Karte ausstellt. Die Ausgabe des 3-DES wird dann in einen 16-stelligen Hexadezimalwert transformiert und die PIN ergibt sich dann aus dem 3ten bis 5ten Zeichen. Hierbei werden Werte A-F durch 0-5 ersetzt. Die PIN ist zwar systemgeneriert, jedoch erfüllt sie keine hohen Sicherheitsanforderungen, da sie sehr kurz ist und die Erzeugung nicht zufällig genug ist. 9 4.1. Passwörter Ablaufende Passwörter (zwingen zum Passwortwechsel) Einmal-Passwörter – Erzeugen von Passwörtern und Synchronisation zwischen Benutzer und System muss gelöst werden. – Lösungsidee sind Einweg-Funktionen zur Generierung der Passwörter und System übernimmt Synchronisation – Bekanntes Verfahren S/Key Durch das zeitliche Ablaufen von Passwörtern werden die Benutzer gezwungen, ihr Passwörter öfter zu wechseln. Dadurch können einmal geknackte Passwörter nicht beliebig lange für Angriffe genutzt werden. Das Extrem zeitlich begrenzter Passwörter sind EinmalPasswörter (one-time password), die nur einmalig zur Authentifikation verwendet werden. Die Einmal-Passwörter müssen so erzeugt werden, dass der Benutzer von der Generierung möglichst entlastet ist. Die Lösungsidee basiert auf der Verwendung von Einweg-Funktionen. Beispiel eines Einmal-Passwort-Verfahrens ist das S/Key-Verfahren. 10 4.1. Passwörter S/Key-Verfahren 1. Benutzer wählt geheimes Passwort s, dass als Grundlage der Passwortgenerierung dient. 2. Mit einer Einweg-Funktion f (z.B. MD5) werden N Einmal-Passwörter erzeugt: k1 = f(s), k2 = f(k1), ...., kN=f(kN-1) Die Passwörter (in der Reihenfolge, in der sie benutzt werden) sind p1= kN, p2= kN-1, ..., pN-1= k2, pN = k1 Ausgangspunkt des S/Key-Verfahrens ist ein geheimes Passwort s, welches zur Generierung der Einmal-Passwörter genutzt wird. Mit einer Einweg-Funktion f werden zunächst N Werte k1...kN wie auf der Folie beschrieben erzeugt. Die N Einmal-Passwörter ergeben sich dann in umgekehrter Reigenfolge, d.h. der Wert kN wird als erstes Passwort benutzt, der Wert k1 als letztes. 11 4.1. Passwörter Authentifikationsablauf System Benutzer p1... pN Login mit Benutzernamen i+1 pi+1 o.k. pi,i Prüfen: ? f(pi+1)=f(kN-i)=kN-i+1= pi pi+1,i+1 Bei der Zugangskontrolle gibt der Benutzer seinen Benutzernamen ein und das System fragt nach dem nächsten Passwort. Das System merkt sich nach i Authentifikationen das i-te Passwort pi (welches schon geprüft wurde) und den Index i. Bei einer erneuten Anmeldung fordert er vom Benutzer das Passwort pi+1. Das System berechnet dann f(pi+1)=f(kN-i)=kN-i+1 und vergleicht den Wert mit dem gespeicherten Passwort pi. Falls die Werte übereinstimmen, ist die Authentifikation erfolgreich und das System speichert das Passwort pi+1 und den Index i+1. 12 4.1. Passwörter Sicherheit des S/Key-Verfahrens beruht auf der Einweg-Eigenschaft. Annahme: Angreifer erfährt pi=kN-i+1 Gesucht: pi+1= kN-i Da f(kN-i) = kN-i+1 müsste das Urbild für kN-i+1 ermittelt werden, was aufgrund der Einweg-Eigenschaft von f nicht möglich ist. Die Sicherheit des Verfahrens beruht auf der Einweg-Eigenschaft der Funktion f. Nehmen wir an, ein Angreifer erfährt das Passwort pi. Dann müsste er zur Berechnung des nächsten Passwortes pi+1 das Urbild von f-1(kN-i+1) berechnen, da pi=kN-i+1 und pi+1= kN-i. Dies ist aufgrund der Einweg-Eigenschaft von f jedoch nicht möglich. 13 4.1.1. Zugangskontrolle in Unix/Linux Jeder Benutzer hat einen Namen und ist in einer benannten Benutzergruppe zugeordnet. Systemintern werden Benutzer und Gruppen durch Nummern identifiziert: UID – user identifier (0 für root) GID – group identifier Prozessen und Dateien des Benutzers ist die UID zugeordnet. Jeder Benutzer besitzt einen Benutzernamen, der bis zu 8 Zeichen lang ist. Systemintern wird jeder Benutzer über eine eindeutige 16-Bit Zahl, die user id (uid), identifiziert. Zusätzlich ist jeder Benutzer einer Gruppe zugeordnet, die mittels der group id (gid) gekennzeichnet ist. Jedem vom Benutzer gestarteten Prozess und jeder Datei, deren Eigentümer der Benutzer ist, wird dessen uid zugeordnet. Die uid des Benutzers kennzeichnet den Benutzer, in dessen Auftrag der Prozess im System aktiv ist. Zusätzlich besitzt jeder Benutzer eine Gruppenkennung, die intern ebenfalls durch eine eindeutige Zahl (GID) repräsentiert ist. Gruppen sind eine Zusammenfassung von Benutzern, an die Zugriffsrechte verteilt werden können. 14 4.1.1. Zugangskontrolle in Unix/Linux Beispiel: UNIX Passwörter werden vom Benutzer gewählt und in der Passwortdatei /etc/passwd schreibgeschützt und verschlüsselt , aber öffentlich lesbar, gespeichert. Typischer Eintrag dante:X4sCwh/Da%pt2:123:97:Dante Alighieri:/usr/dante:/bin/csh dante X4sCwh/Da%pt2 123 97 Dante Alighieri /usr/dante /bin/sh Benutzername verschlüsseltes Passwort user ID group ID vollständiger Benutzername home-Verzeichnis des Benutzers die Shell des Benutzers In herkömmlichen UNIX-Systemen erfolgt die Zugangskontrolle auf Basis von Passwörtern die vom Benutzer gewählt werden. Diese werden in der Datei /etc/passwd verschlüsselt gespeichert, wobei die Datei, wie alle UNIX-Dateien, der Zugriffskontrolle unterliegen. Die Datei ist schreibgeschützt, jedoch öffentlich lesbar. Jeder Eintrag besteht aus 7 Feldern, die jeweils durch ein ‘:‘ getrennt sind. Die Bedeutung der einzelnen Einträge erklärt die Folie. 15 4.1.1 Zugangskontrolle in Unix/Linux Die Verschlüsselung der Passwörter ist durch die C-Funktion crypt(3) realisiert (nicht Verschlüsselungsprogramm crypt(1)). crypt(3) ist durch eine Variante des DES realisiert. Es erhält als Eingabe das Passwort und das salt eingehen salt = 12 Bits Zahl, die Werte von 0 bis 4095 annehmen und wird bei der Passworterzeugung aus Zeit und Prozessnummer berechnet. Durch das salt gibt es 4096 verschiedene Versionen für das gleiche Passwort. Das salt findet man in der Passwortdatei als 2 Zeichen direkt vor den 11 Zeichen des Kryptotextes Verschlüsseltes Passwort: X4sCwh/Da%pt2 salt: X4 Zur Verschlüsselung der Passworte dient die C-Funktion crypt(3), die eine Einwegfunktion realisiert und im wesentlichen die DES-Funktion implementiert. Die crypt(3)-Funktion ist nicht mit dem Verschlüsselungsprogramm crypt(1) zu verwechseln, das zum Chiffrieren von Dateien benutzt wird und nur eine einfach zu brechende Substitutionschiffre realisiert. crypt(3) erhält als Eingabe das Passwort und einsalt. Das salt ist eine 12-Bit Zahl, die Werte zwischen 0 und 4095 annehmen kann. Der salt-Wert wird bei der ersten Passworterstellung bzw. beim Passwortwechsel unter Einbeziehung der aktuellen Uhrzeit und der Prozessnummer erzeugt. Das salt ist in den ersten beiden Zeichen des Passworttextes abgelegt. Das salt sorgt dafür, dass Benutzer mit gleichem Passwort unterschiedliche Repräsentationen in der Passwortdatei haben. Außerdem kann mittels salt jedes Passwort in 4096 Versionen vorliegen, was einen Angriff erschwert. 16 4.1.1 Zugangskontrolle in Unix/Linux 64Bit Eingabeblock X Schlüssel K IP PC1 Permutierte Eingabe PC1(K) 16 DES-Runden 48Bit 64Bit 16 Teilschlüssel Pre-Ausgabe IP-1 64Bit Data Encryption Standard (DES) Ausgabeblock Y Zur Erinnerung nochmals die Funktionsweise des DES aus Kapitel 3. Als Eingabe erhält der DES einen Eingabeblock, der mit dem eingegebenen Schlüssel verschlüsselt wird. Die Berechnung erfolgte in 16 DES Runden. 17 4.1.1 Zugangskontrolle in Unix/Linux Permutierte Eingabe 32Bit L0 R0 f + L1 R1 L15 R15 32Bit K1 xor In jeder dieser Runden wurde die Funktion f zur Verschlüsselung verwendet. 18 4.1.1 Zugangskontrolle in Unix/Linux Ri-1 32Bit beeinflusst vom salt 48Bit E Funktion f Expansion E(Ri-1) xor 48Bit + Ki A jeweils 6Bit A1 A8 S1 S2 S3 S4 S5 S6 S7 S8 Substitutionsboxen Erster Schritt der Funktion f war die Expansion eines 32-Bit Wertes zu einem 48-Bit Wert. Diese Expansionsfunktion wird durch das salt beeinflusst. Die 4096 Varianten des salt wählen jeweils eine unterschiedliche Variante (bzw. Tabelle) der Expansionsabbildung E aus. 19 4.1.1 Zugangskontrolle in Unix/Linux Berechnen des verschlüsselten Passwortes: Eingabeblock ist die Konstante 0. Schlüssel ist das Passwort des Benutzers. passwd 64-Bit Eingabeblock 0 salt wählt eine Expansionsabbildung DES 64-Bit 25 mal Transformation 11-Bit verschlüsseltes Passwort Das Benutzerpasswort dient als Schlüssel für den DES der crypt(3)-Funktion. Mit dem Schlüssel wird ein 64-Bit Eingabeblock verschlüsselt, der eine Konstante aus Nullen ist. Die Ausgabe wird mit dem gleichen Schlüssel (Passwort) erneut verschlüsselt und dieser Vorgang 25 mal wiederholt. Das Ergebnis der iterierten Verschlüsselung ist eine 64-Bit Ausgabe, die abschließend in 11 Zeichen transformiert wird. Das salt beeinflusst die Verschlüsselung durch die Auswahl einer unterschiedlichen Expansionsabbildung für die Verschlüsselungsfunktion f des DES. Beim erstmaligen Einrichten eines Passwortes, wird das salt neu erzeugt. Bei der Authentifikation wird das salt aus den ersten beiden Zeichen des Passworteintrages ermittelt. 20 4.1.1 Zugangskontrolle in Unix/Linux Zugangskontrolle 1. Benutzer gibt Benutzernamen und Passwort p ein 2. Salt wird aus /etc/passwd bestimmt 3. Berechne verschlüsselten Wert w‘ für p und das salt 4. Vergleiche Ergebnis mit Eintrag in /etc/passwd Zugangskontrolle erfordert keine Entschlüsselung, Klartextpasswörter werden nicht gespeichert. Bei der Anmeldung eines Benutzers muss dieser zunächst seine Benutzerkennung und sein Passwort eingeben. Der salt Wert wird aus der Datei /etc/passwd bestimmt und aus dem eingegebenen Passwort und dem ermittelten salt wird ein verschlüsselter Wert w‘, wie auf der vorigen Folie beschrieben, erzeugt. Dieser Wert w‘ wird dann mit den restlichen 11 Zeichen des Passworteintrages in /etc/passwd verglichen. Bei der Zugangskontrolle muss also keine Entschlüsselung der Passwörter stattfinden, so dass keine Speicherung der Klartext-Passwörter nötig ist. 21 4.1.1 Zugangskontrolle in Unix/Linux Problem lesbarer Passwortdatei /etc/passwd: Wörterbuchattacken – Ausprobieren von Wörtern w aus einem Wörterbuch, da f (d.h. crypt()) und salt bekannt sind. – Vergleichen, ob f(w,salt) = x für einen Eintrag x Auslagern des Passworts in Datei /etc/shadow, die nur vom Systemverwalter gelesen werden kann Da die Passwortdatei lesbar ist, ist es Angreifern möglich, eine Wörterbuchattacke durchzuführen. Hierbei werden die Wörter eines Wörterbuchs für die Passwörter ausprobiert. Dies ist möglich, da das salt und das verschlüsselte Passwort lesbar sind. Dann müssen die Ergebnisse der crypt-Funktion für das Wörtbuch-Passwort mit dem bekannten salt nur mit dem Eintrag in der Passwortdatei verglichen werden, um die Richtigkeit des Wörtbuch-Passwortes zu überprüfen. Um Wörtebuchattacken zu vermeiden, werden die verschlüsselten Passworte in eine Datei ausgelagert, die nur vom Systemadministrator gelesen werden können. Diese ausgelagerte Datei wird als shadowed password file bezeichnet. 22 4.1.1 Zugangskontrolle in Unix/Linux Beispiel: Linux Eintrag in /etc/passwd: dante:x:123:97:Dante Alighieri:/usr/dante:/bin/tcsh Eintrag in /etc/shadow: dante: X4sCwh/Da%pt2 :11297:0:99999:7::: Enthält auch Informationen wie letzte Änderung des Passwortes, wann es wieder geändert werden muss, wann der Benutzer gewarnt werden soll etc. Shadow-Dateien werden in Unix- und in Linux-Systemen verwendet. Ein Eintrag in der Datei /etc/passwd enthält dann nur allgemeinen Informationen für alle Benutzer. Diese Datei ist für alle lesbar. Ein ‘x‘ an der zweiten Stelle, wo sonst das verschlüsselte Passwort steht, zeigt an, dass das Passwort in einer Shadow-Datei gespeichert ist. Die Shadow-Datei ist kann dann nur vom Superuser gelesen werden. Ein Eintrag in der Shdaow-Datei enthält dann das verschlüsselte Passwort mit salt. Außerdem beschreibt ein Eintrag in der shadow-Datei neben Benutzernamen und verschlüsseltem Passwort Informationen, wann das Passwort zuletzt geändert wurde, wann es geändert werden kann, wann es geändert werden muss, wann der Benutzer gewarnt wird, wann das Passwort ausläuft etc. 23 4.1.2 Zugangskontrolle in Windows XP Jeder Anwender bekommt bei jeder Anmeldung eine Benutzer-SID und Gruppen-SID, die für eine Session gültig ist. Security Identifier (SID) – Identifiziert Benutzerkonten und Gruppen – Eindeutig generiert aus MAC-Adresse und Systemzeit Arten von Benutzerkonten – Vordefinierte Benutzerkonten: Gast und Administrator – Lokale Benutzerkonten: Eingetragen in der SAM (Security Account Manager)-Datenbank – Domänenbenutzerkonto: Zugriff auf Computer der Domäne Jeder Benutzer bekommt bei jeder Anmeldung eine eindeutige Benutzer-SID und eine Gruppen-SID zu, die für die gesamte Session gültig ist. Ein Security Identifier (SID) ist eine Windows-interne Datenstruktur, die für die Identifizierung von Benutzerkonten und Gruppen notwendig sind. Eine SID wird auf Basis der MAC-Adresse der Netzwerkkarte und der aktuellen Systemzeit generiert. Die SID ist weltweit eindeutig. Wenn ein Angreifer die SID ermitteln kann, kommt er damit auch in den Besitz der Benutzerkonten oder –gruppen. Für einen Benutzer im System kann man verschiedene Typen von Benutzerkonten anlegen: Vordefinierte Benutzerkonten: Werden nach einer Systemneuinstallation automatisch angelegt. Es gibt ein Gastkonto mit sehr eingeschränkten Rechten und ein Administratorkonto mit allen notwendigen Rechten. Lokale Benutzerkonten: Die lokalen Benutzerkonten befinden sich in der SAM-Datenbank (Security Account Manager). Die vordefinierten Benutzerkonten gehören z.B. in die Gruppe der lokalen Benutzerkonten. Domänenbenutzerkonto: Dient dem Anwender in einem Netzwerk der Anmeldung an einer Domäne. Mit diesem Konto kann er sich an jedem der Domäne angehörenden Computer anmelden auf auf die für ihn freigegebenen Ressourcen zugreifen, ohne über ein lokales Benutzerkonto zu verfügen. 24 4.1.2 Zugangskontrolle in Windows XP Security Access Manager (SAM) speichert verschlüsselt und zugriffsgeschützt Sicherheits- und Benutzerinformationen in – Register (registry) = zentrale Systemdatenbasis von Windows – ..\WINDOWS\system32\config\sam – Für Rettungszwecke auch in ..\repair\SAM SAM-Datei ist Grundlage für die Benutzer- und Rechteverwaltung. Beim Security Access Manager (SAM) handelt es sich im Prinzip um eine Datenbank für alle Benutzer und Gruppen des Systems. In dieser Datei sind alle Sicherheits- und Benutzerinformationen hinterlegt. Die SAM-Datei wird in der Registry und in einer SAMDatei unter ..\system32\config\SAM verschlüsselt gespeichert. Für Rettungszwecke wird die Information auch unter ..\repair\SAM gespeichert, da Windows von dort optional auf eine Rettungsdiskette kopiert. Die SAM-Datei ist die Grundlage für die Benutzer- und Rechteverwaltung. 25 4.1.2 Zugangskontrolle in Windows XP Anmeldeprozess – WINLOGON.EXE steuert Anmeldeprozess – Interaktive Eingabe von Benutzername und Passwort – MSGINA.DLL zuständig für Identifikation und Authentifizierung (GINA=Graphical Identification and Authentication) – Security Account Manager (SAM) vergibt Benutzer- und Gruppen SID – Security Reference Monitor protokolliert Anmeldeprozess Der Anmeldeprozess in Windows XP ist interaktiv und der Benutzer muss seinen Benutzernamen und das Passwort in den Dialog eintragen. Der Anmeldeprozess wird von WINLOGON.EXE in Verbindung mit der MSGINA.DLL ausgeführt. GINA bedeutet Graphical Identification and Authentication und ist für die Identifikation und Authentifizierung von Benutzern eines Rechners zuständig. WINLOGON.EXE ist zuständig für die Profile und den gesamten Anmeldeprozess ist - es lädt das ausgewählte Profil in den Registrierungsschlüssel “HKEY_CURRENT_USER”, bevor die Oberfläche geladen wird. Der Security Account Manager ordnet dem Anwender für diese Session eine Benutzer-SID und eine Gruppen-SID zu. Der gesamte Prozess wird vom Security Reference Monitor (SRM) protokolliert. 26 4.1.2 Zugangskontrolle in Windows XP Beachte • Aktivierung der Tastenkombination Strg+Alt+Entf zur Abwehr von Trojanern, die dem Anwender eine Anmeldemaske vortäuschen. • Datenträger immer mit Dateisystem NTFS formatieren, da bei FAT bzw. FAT32 Systemen keine Berechtigungen überprüft werden. Eine Option ist die Aktivierung der Tastenkombination Strg+Alt+Entf, wodurch der Benutzer gezwungen wird, zum Anmelden diese Tastenkombination zu drücken. Dadurch können eventuelle Trojaner abgewehrt werden, die dem Anwender eine Anmeldemaske vortäuschen. Außerdem sollte der Datenträger immer mit dem Dateisystem NTFS formatiert werden, weil bei FAT und FAT32 Systemen keine Berechtigungen für Dateien und Verzeichnisse beachtet werden. 27 4.2 Chipkarten Chipkarten sind ein Beispiel besitzbasierter Authentifikation Typen von Karten – Magnetstreifenkarten: Informationen sind auf einem Magnetstreifen gespeichert – Speicherchipkarten: zusätzliche Sicherheitslogik (z.B. für die PIN-Speicherung, Zähler für Fehlversuche) – Prozessorchipkarten (smartcards): Besitzen eigenen Mikroprozessor und programmierbaren Speicher (z.B. JavaCard) Karten sind ein besitzbasierter Authentifikationsmechanismus und kommen in verschiedenen Ausprägungen in der Praxis vor. Die einfachsten Typen sind Magnetkarten, bei denen Informationen auf einem Magnetstreifen gespeichert werden. Die nächste Stufe bilden Speicherchipkarten, die eine zusätzliche Sicherheitslogik besitzen, die meist für eine PINSpeicherung und –Überprüfung verwendet wird. Weiterhin besitzen sie in der Regel einen Zähler für Fehlversuche, um die Karte bei zu vielen Fehlversuchen zu sperren. Sind die Karten noch mit einem eigenen Mikroprozessor und einem programmierbaren Speicher ausgerüstet, so spricht man von smartcards. Beispiele sind die JavaCard oder die ec-Karte. 28 4.2 Chipkarten ISO 7816 Standard regelt Größe, Kontakte, Signale, Spannung, Übertragungsprotokolle. Drei Kartengrößen: ID-1 (z.B. Kreditkarte), ID-000 (z.B, Mobiltelefone) ID-00 (Minikarten, verzichten gegenüber ID-1 auf Plastik) Kommunikation über Kontakte oder kontaktlos über Funk Typ ID-1 Dicke: 0,76 mm +/- 0,08 85,6 mm +/- 0,12 Magnetstreifen 53,97 mm +/- 0,05 Chip Der ISO 7816 Standard enthält Vorgaben für Karten-Dimensionen, die Anordnung der Kartenkontakte, die zulässigen Signale und Spannungswerte sowie Übertragungsprotokolle. Chipkarten kommunizieren mittels Kontakten oder kontaktlos über Funk. Ein optionaler Magnetstreifen enthält meist keine sicherheitskritischen Informationen, sondern Daten, wie das Verfallsdatum der Karte. Man unterscheidet drei Kartengrößen: ID-1, ID-000 und ID-00. Die Standardkarte ist vom Type ID-1 und besitzt die Größe einer Kreditkarte. Die ID-000 Karte mit einer Größe von 15mm x 25mm wurde ursprünglich für Mobiltelefone entwickelt. ID-00 Karten (auch als Minikarten bezeichnet) haben eine Größe von 66mm x 33mm. Die Kontakte sind genauso angeordnet wie bei Karten vom Typ ID-1, so dass Lesegeräte beide Kartentypen akzeptieren. Minikarten verzichten lediglich auf etwas Plastik. 29 4.2 Chipkarten Magnetstreifenkarten – Daten werden digital auf einem Magnetstreifen auf der Rückseite der Karte gespeichert. – Lesen durch Vorbeiziehen an einem Lesekopf – Magnetstreifen besteht aus 3 Spuren • Spur 1: es können max. 79 Zeichen gespeichert werden • Spur 2: es können maximal 40 Zeichen gespeichert werden • Spur 3: es können max. 107 Zeichen gespeichert werden. Bei Magnetstreifenkarten werden die Daten digital auf einem Magnetstreifen gespeichert. Dieser befindet sich in der Regel auf der Rückseite der Karte. Zum Lesen des Magnetstreifens wird dieser von Hand oder maschinell an einem Lesekopf vorbeigezogen, wobei die Daten gelesen und zur Weiterverarbeitung gespeichert werden. Der Magnetstriefen besteht aus drei Spuren, wobei auf der ersten 79, auf der zweiten 40 und der dritten 107 Zeichen gespeichert werden können. 30 4.2 Chipkarten Vorteile von Magnetstreifenkarten: • Niedrige Herstellungskosten • Weltweit standardisiert Nachteile: • Geringe Speicherkapazität • Geringe Sicherheitsfunktion (kann mit einfachen Geräten gelesen, kopiert und verändert werden) • Bei Verlust, Diebstahl kein Schutz gegen Auslesen, Modifikation oder Duplizierung der Daten Vorteile der Magnetstreifenkarten sind die niedrigen Herstellungskosten und ein weltweit existierender Standard. Nachteile sind u.a. die geringe Speicherkapazität, die geringen Sicherheitsfunktionen, d.h. die Magnetkarte kann mit einfachen Geräten gelesen, kopiert und verändert werden, so dass bei Verlust oder Diebstahl kein Schutz gegen das Auslesen, die Modifikation oder die Duplizierung der Daten besteht. 31 4.2 Chipkarten Chipkarten – Karten mit integrierter Schaltung mit Elementen für die Energie- und Datenübertragung – Datenübertragung über Kontakte auf der Oberfläche oder kontaktlos über elektromagnetische Felder. – Vorteile • Höhere Speicherkapazität • Höhere Zuverlässigkeit • Höhere Lebensdauer • Möglichkeit des Zugriffsschutzes der Daten durch Sicherheitslogik (z.B.: nach Eingabe einer PIN ist erst der Zugriff auf den Speicher möglich) Bei Chipkarten wird im Kartenkörper eine integrierte Schaltung eingebracht und mit Elementen für die Energie- und Datenübertragung versehen. Die Datenübertragung kann dabei über Kontakte an der Oberfläche der Karte erfolgen oder kontaktlos über elektromagnetische Felder. Chipkarten bieten gegenüber Magnetstreifenkarten eine wesentlich höhere Speicherkapazität und besitzen eine höhere Zuverlässigkeit und eine längere Lebensdauer gegenüber Magnetkarten. Einer der wichtigsten Vorteile der Chipkarten besteht in der Möglichkeit, die gespeicherten Daten vor unerlaubten Zugriffen zu schützen. Der Zugriff auf die gespeicherten Daten erfolgt über eine serielle Schnittstelle, die von einer Sicherheitslogik bei Speicherkarten bzw. vom Chipkartenbetriebssystem bei Prozessorkarten gesteuert wird. Dadurch wird es möglich, geheime Daten in die Chipkarte zu laden, auf die nur kartenintern und nicht von außen zugegriffen werden kann. 32 4.2 Chipkarten Es wird unterschieden zwischen reinen Speicherkarten, Speicherkarten mit Sicherheitslogik und Speicherkarten mit Mikroprozessor reine Speicherkarten – Speicher von einigen Hundert Byte – Keine Rechenfähigkeit, d.h. keine CPU – Beispiele sind Telefonkarten, Krankenversicherungskarten – Vorteil: preiswert Bei den Chipkarten wird unter reinen Speicherkarten, Speicherkarten mit zusätzlicher Sicherheitslogik und Karten mit einem eigenen Mikroprozessor unterschieden (Smart Cards). Reine Speicherkarten sind Chipkarten, die nur über einen nicht flüchtigen Speicher von einigen Hundert Byte bis 8 KByte verfügen und keine Rechenfähigkeit, also keine CPU besitzen. Derartige Karten können preiswert produziert werden. Beispiele sind Telefon- oder Krankenversicherungskarten. 33 4.2 Chipkarten Speicherkarten mit Sicherheitslogik – Zugriff auf gespeicherte Daten mit serieller Schnittstelle, die über die Sicherheitslogik gesteuert wird. – PIN-Speicherung und –Überprüfung – Erst nach erfolgreicher PIN-Überprüfung ist der Zugriff auf den Speicher möglich – Zähler für Fehlversuche, um die Karte gegebenenfalls zu sperren. Prozessorchipkarten (SmartCard) – Chip, der kompletten Mikroprozessor enthält. – Bsp: JavaCard, SIM-Karte etc. Einer der wichtigsten Vorteile der Chipkarten besteht in der Möglichkeit, die gespeicherten Daten vor unerlaubten Zugriffen zu schützen, d.h. mit einer Sicherheitslogik zu versehen. Der Zugriff auf die gespeicherten Daten erfolgt über eine serielle Schnittstelle, die von der Sicherheitslogik bei Speicherkarten bzw. vom Chipkartenbetriebssystem bei Prozessorkarten gesteuert wird. Die Sicherheitslogik ist in der Regel so aufgebaut, dass erst nach Eingabe einer PIN der Zugriff auf den Speicher möglich ist. Dadurch wird es möglich, geheime Daten in die Chipkarte zu laden, auf die nur kartenintern und nicht von außen zugegriffen werden kann. Weiterhin verfügen die Karten über einen Zähler für Fehlversuche, so dass die Karte nach einer bestimmten Anzahl von Fehlversuchen gesperrt wird. Auf der Prozessorchipkarte ist ein Chip montiert, der einen kompletten Mikrocomputer enthält. Diese Karten werden als Smart Cards bezeichnet, Beispiele sind JavaCards oder GeldKarten. Den Prozessorchipkarten kommt heute eine große Bedeutung als Mittel der Authentifikation zu: als GeldKarte oder Visa-Cash Karte, als Firmen-Karte, als SIM-Karte im Handy etc. 34 4.2 Chipkarten Architektur einer SmartCard ROM CPU I/OSystem RAM EEPROM ROM: nicht änderbar mit einer Größe von 10 bis 32 Byte enthält das Betriebssystem, PIN-Prüfung, Kryptoverfahren (Verschlüsseln,Signieren,Hashwerte) RAM: Arbeitsspeicher mit Größe von 256 Byte EEPROM: nicht flüchtiger Speicher der Größe von 8 bis 16 KByte zur langfristigen Speicherung von Daten wie Schlüssel, PIN, Kontonr.etc Umprogrammierung mittels elektrischer Signale Neben dem eigentlichen Mikroprozessor sind folgende Funktionsblöcke auf der SmartCard integriert: ROM: Lässt sich nicht ändern und hat eine Größe von 10 bis 32 KByte. Typischerweise enthält der ROM das Katen-Betriebssystem, das bei der Chip-Produktion geladen wird. Das ROM enthält weiterhin das Verfahren zur PIN-Überprüfung, kryptographische Verfahren zum Verschlüsseln, Signieren und zur Berechnung von Hashwerten. RAM: Ist ein flüchtiger Speicher mit einer Größe von 256 Byte, dessen Inhalt verloren geht, sobald keine Stromversorgung mehr existiert. EEPROM (Electrically Erasable Programmable ROM): Ein nicht-flüchtiger Speicher zur langfristigen Speicherung von benutzerspezifischen, veränderbaren Daten, wie z.B. die PIN, Sitzungsschlüssel oder Kontonummer. Die EEPROM-Technologie ermöglicht mindestens 100.000 Umprogrammierungen mittels elektrischer Signale. 35 4.2 Chipkarten Chipkartenbasierte Authentifikation erfolgt in drei Schritten 1. Benutzer authentifiziert sich gegenüber der Karte mit einer PIN. Der Mikroprozessor der Karte vergleicht im RAM die eingegebene PIN mit der PIN im EEPROM der Karte. Ist die PIN verschlüsselt, lädt der Mikroprozessor der Schlüssel aus dem EEPROM und verschlüsselt die eingegebene PIN mit dem im ROM festgelegten Verschlüsselungsverfahren. Chipkarten werden zur Authentifizierung von Benutzern eingesetzt, wobei drei Stufen der Authentifizierung unterschieden werden. Im ersten Schritt authentifiziert sich der Benutzer gegenüber der Karte. Im zweiten Schritt erfolgt die Authentifikation der Karte gegenüber dem Zielsystem (z.B. Lesegerät oder PC). Im dritten Schritt authentifiziert sich das Zielsystem gegenüber der Karte. Der Benutzer authentifiziert sich gegenüber der Karte in der Regel mittels einer PIN-Nummer. Die PIN gibt der Benutzer am Kartenlesegerät oder direkt auf der Karte ein. Die eingegebene PIN wird vom Mikroprozessor unter Nutzung des RAMs mit der PIN im EEPROM verglichen. Sollte die PIN verschlüsselt im EEPROM liegen, so wird von der CPU zunächst der benötigte Schlüssel aus dem EEPROM gelesen und die eingegebene PIN mit dem im ROM festgelegten Verschlüsselungsverfahrens verschlüsselt und dann erst der Vergleich durchgeführt. 36 4.2 Chipkarten Der Chip führt einen Zähler für Fehlversuche und sperrt die Karte, falls das Maximum überschritten ist. Entsperren möglicherweise erlaubt durch Eingabe eines PIN Unblocking Key (PUK) Auch für die PUK gibt es einen Zähler. Werden hier die maximale Anzahl an Fehlversuchen überschritten, so wird die Karte endgültig gesperrt. Alternativ zur PIN können auch biometrische Informationen zur Authentifikation benutzt werden (Æ 4.4) Der Chip führt daneben noch einen Zähler über die Anzahl der Fehlversuche. Falls die Anzahl der möglichen Fehlversuche überschritten ist, wird die Karte gesperrt. Manche Karten erlauben das Entsperren mit einer speziellen PIN, des PUK (PIN Unblocking Key). Für die PUK wird ebenfalls ein Zähler geführt und bei zu vielen Fehlversuchen für die PUK wird die Karte endgültig gesperrt. Alternativ zur PIN-Authentifizierung können auch biometrische Informationen zum Identitätsnachweis verwendet. Darauf werden wir später genauer eingehen. 37 4.2 Chipkarten 2. 3. Authentifikation der Karte beim Zielsystem mittels Challenge-Response-Verfahren. Authentifikation des Zielsystems bei der Karte ebenfalls mit Challenge-Response Verfahren. Challenge-Response Verfahren Verallgemeinerung von Passwortverfahren bei dem der Benutzer eine Folge von Fragen zu beantworten hat. Login: hmeyer Geburtstag des Vaters: 6.3.1912 Lieblingsautor: Goethe Geburtsname der Mutter: mueller Im zweiten Schritt erfolgt die Authentifizierung zwischen der Karte und dem Zielsystem. Dabei werden Challenge-Response-Verfahren eingesetzt. Diese Verfahren dienen auch im dritten Schritt zur Authentifizierung des Zielsystems gegenüber der Karte. Challenge-Response-Verfahren sind Verallgemeinerungen von Passwortverfahren. Dem Benutzer wird hier eine Frage gestellt, die er zu beantworten hat. In der einfachsten Form kann ein solches Verfahren als Erweiterung des herkömmlichen Zugangskontrollprozesses realisiert sein. Challenge-Response Verfahren werden häufig in Verbindung mit Chipkarten eingesetzt. Im folgenden betrachten wir allgemeine Challenge-Response-Verfahren basierend auf symmetrischen und asymmetrischen Verschlüsselungsverfahren, bei der sich eine Chipkarte gegenüber dem System authentifizieren möchte. 38 4.2.1 Challenge-ResponseVerfahren Challenge-Response-Verfahren mit symmetrischen Kryptosystemen Beispiel: Chipkarte mit Card Identification CID authentifiziert sich gegenüber dem System. Voraussetzung: Chipkarte und System nutzen denselben Verschlüsselungsalgorithmus und den auf der Karte gespeicherten Schlüssel KCID. Bei Challenge-Response-Verfahren basierend auf symmetrischen Kryptosystemen muss das System und die Chipkarte denselben symmetrischen Verschlüsselungsalgorithmus sowie den gleichen Schlüssel verwenden. Wir bezeichnen die Kartenidentifikation der Cipkarte mit CID (Card Identification) und den gemeinsamen Schlüssel KCID, der auf der Chipkarte gespeichert ist. 39 4.2.1 Challenge-ResponseVerfahren System KCID, CID, E Chipkarte KCID, CID, E Login CID RAND C=E(RAND,KCID) C Erzeugen von RAND C‘=E(RAND,KCID) Test: C = C‘ ? Bei der Zugangskontrolle (d.h. beim Login) muss der Benutzer seine Chipkarte in ein an das System angeschlossenes Lesegerät legen, so dass die Kartenidentifikation CID ermittelt werden kann. Das System sucht dann in seiner Schlüsseldatenbank den passenden Schlüssel KCID. Falls der Schlüssel vorhanden ist, stellt das System der Chipkarte eine Frage (Challenge), indem er ihr eine erzeugte Zufallszahl RAND zusendet. Die Chipkarte muss dann die Zahl RAND mit dem Schlüssel KCID verschlüsseln und das Ergebnis ans System schicken (Response). Das System verschlüsselt ebenfalls die Zahl RAND mit dem Schlüssel KCID und vergleicht das Ergebnis mit der Antwort der Chipkarte. Bei Gleichheit hat sich die Chipkarte erfolgreich authentifiziert. 40 4.2.1 Challenge-ResponseVerfahren Challenge-Response-Verfahren mit asymmetrischen Kryptosystemen Beispiel: Chipkarte mit Card Identification CID authentifiziert sich gegenüber dem System. Voraussetzung: System hat den öffentlichen Schlüssel KECID der Karte CID. Bei Challenge-Response-Verfahren mit asymmetrischen Verschlüsselungsverfahren benötigt das System den öffentlichen Schlüssel KECID der Karte CID. 41 4.2.1 Challenge-ResponseVerfahren System KECID, CID Chipkarte KECID, KDCID, CID Login CID RAND Sig=D(RAND,KDCID) Sig Erzeugen von RAND Verifizieren: R=E(Sig,KECID) Test: R = RAND ? Nach dem Login und der Übermittlung der CID erzeugt das System eine Zufallszahl RAND, die das System, als Challenge an die Chipkarte schickt. Die Chipkarte signiert den Wert RAND mit dem geheimen Schlüssel KDCID und sendet das Ergebnis zurück ans System. Das System verifiziert die Signatur durch Anwendung des öffentlichen Schlüssels KECID der Karte und prüft, ob sich die Zufallszahl RAND ergibt. 42 4.3 Sicherheit bei Chipkarten Sicherungseinrichtungen für den Schutz vor unautorisiertem Zugriff auf die Chipkartendaten (z.B. Schlüssel) – Schutz gegen unerlaubtes Lesen. – Schutz gegen unerlaubtes Schreiben. – Schutz gegen unerlaubtes bzw. ungewolltes Löschen – Schutz gegen die Simulation der Karte gegenüber einem Zielsystem. Wir wollen nun die Sicherheit von Chipkarten betrachten, d.h. wie gut sind die Daten auf der Chipkarte vor einem unautorisierten Zugriff geschützt? Wir betrachten im folgenden die Schutzmaßnahmen einer Chipkarte gegen das unerlaubte Lesen der Chipkartendaten, das unerlaubte Beschreiben der Karte, das unerlaubte oder ungewollte Löschen von Daten und den Schutz gegen die Simulation der Chipkarte gegenüber einem Zielsystem. 43 4.3 Sicherheit bei Chipkarten Schutz gegen unerlaubtes Lesen – Kombination aus Besitz und Wissen, d.h. Informationen, die nur der autorisierte Benutzer kennt (z.B. PIN) – Durch Design des Chips und des Chipkartenbetriebsystems wird ein Ausforschen der PIN durch systematisches Probieren verhindert (z.B. maximale Fehlversuche) Achtung: Struktur des Chips und deren Funktionalität kann durch Chip-Reengineering ermittelt werden. Damit kann man auf dem Chip gespeicherte Schlüssel rekonstruieren. Auf Chipkarten können vertrauliche Daten gespeichert sein, die nicht für jedermann zugänglich sein sollen. Es muss deshalb sichergestellt sein, dass diese Informationen nur für autorisierte Personen lesbar sind. Ein Schutz gegen unerlaubtes Lesen ist beispielsweise durch folgende Mechanismen möglich: Ein Schutz bietet die Kombination von Besitz und Wissen. Es reicht nicht aus, die Chipkarte zu besitzen um die Daten auszulesen, sondern es sind zusätzliche Informationen notwendig, die nur der autorisierte Benutzer kennt. Solch ein Mechanismus ist z.B. die PIN. Durch entsprechendes Design des Chips bzw. des eingesetzten Chipkartenbetriebssystems, wird ein Ausforschen der PIN durch systematische Probieren verhindert. Eine weiterer Angriff auf die Karte zum Auslesen der Kartendaten besteht darin, die Struktur des Chips auszuforschen und zusätzlich die Inhalte der Speicher auszulesen. Die Struktur des Chips und damit deren Funktionalität kann man mit den Methoden des Reengineerings rekonstruieren. Es wird dabei der Chip schichtweise abgeschliffen und das auf dem Chip enthaltene dreidimensionale Layout zurückgewonnen. Zusätzlich müssen die Inhalte der Speicherzellen auf diesem Wege sichtbar gemacht werden. Damit wäre es möglich, auf dem Chip gespeicherte geheime Schlüssel zu rekonstruieren. 44 4.3 Sicherheit bei Chipkarten Chip-Reengineering ROM-Speicher kann mit einem Lichtmikroskop Bit für Bit ausgelesen werden. Diese Bits können dann zu Bytes und danach zum kompletten ROM-Code zusammengesetzt werden. Daher befindet sich ROM-Speicher in den unteren, schwer zugänglichen, Sliziumschichten, wodurch eine optische Analyse verhindert wird. Chip-Reengineering Das Speichermedium für die meisten Programme ist das ROM. Der Inhalt eines in der Industrie im Allgemeinen verwendeten ROMs kann mit einem Lichtmikroskop Bit für Bit gelesen werden. Diese Bits zu Bytes zusammenzusetzen und die Bytes zu dem kompletten ROM-Code, stellt dann keine große Schwierigkeit mehr dar. Um genau diese Analyse zu unterbinden, befindet sich das ROM nicht in den obersten und somit am leichtesten zugänglichen Schichten, sondern in den unteren Siliziumschichten. Damit wird eine optische Analyse verhindert. 45 4.3 Sicherheit bei Chipkarten Aber: Chip mit der Vorderseite auf einen Träger kleben und von der Rückseite abschleifen erlaubt wieder das Auslesen. Aber: Selektives Ätzen versucht die Halbleiter so zu ätzen, dass ROM-Inhalte wieder sichtbar werden. Daher benutzt man nur ionenimplantiertes ROM, dessen Inhalte weder im visuellen noch im IR- oder UV-Spektrum sichtbar sind. Würde man aber den Chip mit seiner Vorderseite auf einen Träger aufkleben und dann von seiner Rückseite her abschleifen, könnte man wiederum die ROM-Inhalte auslesen. Um dem vorzubeugen benutzt man bei den Chipkarten-Mikrocontrollern nur ionenimplantiertes ROM, dessen Dateninhalte weder im visuellen noch im IR- oder UV-Spektrum sichtbar sind. Dies schützt auch weitgehend vor so genanntem selektivem Ätzen. Bei diesem Verfahren wird versucht, den Halbleiter so zu ätzen, dass ROM-Inhalte wieder optisch sichtbar werden. 46 4.3 Sicherheit bei Chipkarten Weiterer Schutz gegen Reengineering-Angriffe Dummy-Schaltungsteile: Integration weiterer Schaltungsteile ohne Funktion, die Angreifer in die Irre führen sollen. Metallische Abschirmung des Chips: Dadurch werden beim schichtenweisen Abtragen des Chips die Chipstrukturen zerstört. Moderne Chips für Hochsicherheitsanwendungen haben Vorkehrungen getroffen um einen Reengineering-Angriff zu erschweren. Die Folie zeigt einige dieser Vorkehrungen. Dummy-Schaltungsteile: Bei dieser Methode werden auf dem Chip Schaltungsteile integriert, die keine Funktion haben und deshalb eigentlich unnötig sind. Potentielle Angreifer, die nicht wissen, dass dieser Schaltungsteil keine Funktion haben, werden dadurch in die Irre geführt. Metallische Abschirmung des Chips: Dadurch soll erreicht werden, dass beim schichtweisen Abtragen die Strukturen zerstört werden, und damit ein Reengineering unmöglich gemacht wird. 47 4.3 Sicherheit bei Chipkarten Überspannungs- und Unterspannungsdetektoren: Überwachen die Versorgungsspannung und verhindern, dass der Chip in Zustände gebracht werden kann, aus denen geheime Daten ausgelesen werden könnten. Überwachung der Taktfrequenz: Durch die Überwachung des Taktes auf zu niedrige und zu hohe Werte wird ein Debuggen des Chips unterbunden. Überspannungs- und Unterspannungsdetektoren: Auf dem Chip wird ständig die Versorgungsspannung auf die Einhaltung des Toleranzbereiches überwacht. Es wird dadurch verhindert, dass dadurch der Chip in undefinierte Zustände gebracht werden kann und dann eventuell Daten aus dem Chip gelesen werden können, die eigentlich geheim gehalten werden sollen. Überwachung der Taktfrequenz: Durch die Überwachung des Taktes auf zu niedrige und zu hohe Werte wird ein Debuggen des Chips unterbunden. 48 4.3 Sicherheit bei Chipkarten Schutz gegen unerlaubtes Schreiben (z.B. Erhöhen des Betrages auf der Telefonkarte) – Berechnung eines Message Authentication Codes: Aus den Kartendaten wird der MAC berechnet. Verhindert nicht die Manipulation, aber deckt sie auf. – Setzen von Schreibschutzbits: Bestimmten Speicherbereichen werden Schreibschutzbits zugeordnet. Solange die Bits nicht gesetzt sind, können Daten gelesen und geschrieben werden. Sind die Bits gesetzt ist nur noch Lesen möglich. Zum Schutz vor unerlaubtem Schreiben bieten sich folgende Möglichkeiten an: Berechnung eines Message Authentication Codes (MAC): Dabei wird mit Hilfe eines kryptographischen Algorithmus eine Prüfsumme aus den zu schützenden Daten berechnet. Als kryptografische Funktionen werden sogenannte Einwegfunktionen verwendet. Diese erlauben die Berechnung des Prüfwertes aus den Daten mit relativ geringem Aufwand. Andererseits ist es unmöglich, zu einem vorgegebenen Message Authentication Code die dazu passenden Daten zu generieren. Es ist also einem Angreifer unmöglich, die Daten so zu verändern, dass der MAC unverändert bleibt. Dieses Verfahren kann eine Manipulation von Daten nicht verhindern, aber es werden vorgenommene Manipulationen erkannt. Setzen von Schreibschutzbits: Eine Möglichkeit, die Veränderung von Daten zu verbieten, ist die Anwendung von Schreibschutzbits. Schreibschutzbits werden vor allem in Speicherkarten verwendet, da der Realisierungsaufwand relativ gering ist. Es werden dazu bestimmten Speicherbereichen Schreibschutzbits zugeordnet. Solange die Schreibschutzbits nicht gesetzt sind, können Daten auf die Karte geschrieben und Daten von der Karte gelesen werden. Wenn dann das Schreibschutzbit einmal gesetzt wird, dann können die Daten nur noch gelesen werden. Das setzen der Schreibschutzbits geschieht durch Beschreiben eines bestimmten festgelegten Speicherbereiches. Dieser Vorgang ist irreversibel, d.h. einmal gesetzte Schreibschutzbits können nicht wieder rückgesetzt werden und die entsprechenden Daten auf der Karte sind damit vor Veränderung sicher geschützt. 49 4.3 Sicherheit bei Chipkarten – Zerstören von Halbleiterstrukturen: Strukturen auf dem Chip werden zerstört, um hardwareseitig ein Beschreiben zu schützender Speicherzellen zu verhindern. Zerstören von Halbleiterstrukturen: Dieses Verfahren unterbindet ebenfalls Manipulationen von Daten durch Hardwareschutz. Zum Schutz der Daten werden jedoch keine Speicherzellen beschrieben, sondern Strukturen auf dem Chip zerstört. Dadurch wird hardwareseitig ein Beschreiben der zu schützenden Speicherzellen verhindert. 50 4.3 Sicherheit bei Chipkarten Schutz gegen unerlaubtes Löschen Ziel: Sicherheitsmechanismen unwirksam machen, z.B. Fehlversuchszähler für die PIN, Obergrenzen für Geldtransaktionen Schutz muss schon beim Design des Chips bzw. des Chipkartenbetriebssystems integriert werden, z.B. Löschen des EPROMs durch UV-Licht muss durch konstruktive Maßnahmen verhindert werden. Betriebssystem hat Sicherheitsmechanismen eingebaut, die unerlaubtes Löschen verhindern. Durch das Löschen könnten die eingebauten Sicherheitsmechanismen der Chipkarten unwirksam gemacht werden. Beispiele sind das Löschen des Fehlversuchszählers für die PIN oder die Obergrenzen für Geldtransaktionen. Ein Schutz gegen das unerlaubte Löschen von Daten muss bereits beim Chipdesign oder beim Design des Chipkartenbetriebssystems integriert werden. So muss durch konstruktive Maßnahmen das Löschen von EPROMs durch UV-Licht verhindert werden. Weiterhin sind in Chipkartenbetriebssystemen Sicherheitsmechanismen eingebaut, die ein unerlaubtes Löschen bzw. Verändern von Daten verhindert. 51 4.3 Sicherheit bei Chipkarten Schutz gegen ungewolltes Löschen Ziel: Fehlfunktionen der Software oder Fehlbedienung dürfen nicht zum Löschen von Daten führen. Schutz bietet Hardware mit eingeschränkter Funktionalität. Beispielsweise können Krankenkassenkarten bei Ärzten nur gelesen werden. Neben dem gewollten unberechtigten Löschen und Verändern von Daten muss auch das ungewollte Löschen bzw. Verändern von Daten verhindert werden. Dieser Fall kann z.B. bei Fehlfunktionen der eingesetzten Software, durch Fehlbedienung des Programms durch den Bediener eintreten. Schutz dagegen bietet Hardware mit eingeschränkter Funktionalität. So können die Krankenkassenkarten bei den Ärzten nur gelesen werden, denn die eingesetzten Chipkartenterminals besitzen nur Lesefunktionalität. Ein ungewolltes Löschen oder Verändern der Daten wird somit vermieden. 52 4.3 Sicherheit bei Chipkarten Schutz gegen Simulation Angriff: Datenaustausch zwischen Chipkarte und Terminal aufzeichnen und durch Wiedereinspielen die Chipkarte vortäuschen. Verhindern durch Challenge-Response-Verfahren bei dem sich Karte und Zielsystem gegenseitig authentifizieren. Es ist möglich, den Datenaustausch zwischen Chipkarte und Terminal aufzuzeichnen. Ein Angriff auf die Sicherheit der Chipkarten besteht nun darin, diese aufgezeichneten Daten wieder einzuspielen und das Vorhandensein einer Chipkarte vorzutäuschen. Ein Angreifer kann damit Rechte erlangen, die er gar nicht besitzt. Diese Simulation der Chipkarte kann durch Challenge und Response Protokolle verhindert werden. Dabei authentifizieren sich Chipkartenterminal und Chipkarte gegenseitig. 53