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

Documents pareils