Systeme und ihr Umfeld

Software-Zertifikate

Camouflage für Krypto-Keys

Von Andreas Gatz, München

Gelangt ein Angreifer in den Besitz eines Software-Zertifikats, so kann er üblicherweise offline versuchen den Verschlüsselungsschutz zu brechen. Die patentierte "Cryptographic Camouflage"-Technik soll das verhindern.

Kryptoschlüssel oder X.509-Zertifikate zur starken Authentifizierung von Anwendern, die nur durch Software geschützt werden, können nicht als wirklich sicher gelten. Sowohl freier Sourcecode als auch käufliche Programme sind zum Knacken solcher Key-Container verfügbar (zum Beispiel "ncrack" für Netscape, zu Microsoft IE siehe [1], [3]). Soll aus Kosten- oder Praktikabilitätsgründen keine Hardware die geheimen Schlüssel schützen, so ist das sichere Speichern der Private Keys jedoch von zentraler Bedeutung; üblicherweise schützt sie nur ein symmetrisches Passwort. Kommt ein Hacker in den Besitz einer Datei mit einem Private Key, so kann er jedoch durch Dictionary Attacks (Wörterbuchangriffe) das Passwort herausfinden.

[GRAFIK] Passwort-verschlüsselte Zertifikate ermöglichen Offline-Attacken auf den Private Key des Anwenders: Beim Durchprobieren möglicher Schlüssel ergibt nur ein Schlüssel ein sinnvolles Ergebnis, sodass der Angreifer weiß, wann er die richtige PIN benutzt hat.

Verschiedene Applikationen, die unterschiedliche Dateien zur Speicherung von Zertifikaten und Private Keys (Application Key Stores) verwenden, können für zusätzliche Schwierigkeiten sorgen, beispielsweise wenn Anwender mit ihrer Identität in unterschiedlichen Programmen mit unterschiedlichen Key Stores als derselbe User identifiziert werden möchten oder mit unterschiedlichen Browsern oder E-Mail-Clients arbeiten, die jeweils ein eigenes Key Store einsetzen. Noch komplexer ist die Situation beim Roaming, also der Verwendung unterschiedlicher Endgeräte an verschiedenen Standorten. Die meisten zurzeit implementierten Key Stores können weder von verschiedenen Applikationen auf dem gleichen Rechner noch von gleichen Applikationen auf verschiedenen Endgeräten verwendet werden.

So genannte Software Smartcards versuchen, die Vorteile von Passwort-geschützten Dateien (keine Hardware, transparente Handhabung durch Applikationen) mit dem hohen Sicherheitsstandard von Smartcards zu verbinden. Wichtig ist dabei die Immunität des Software-Containers gegen Wörterbuchangriffe. Mögliche Gegenmaßnahme bei der Passwortsicherung sind lediglich die Verwendung extrem langer Passworte (die allerdings schlecht zu merken wären – siehe Gesetz von Moore in [12]), um den Passwort-Suchraum besonders groß zu veranschlagen, oder man verlangsamt die Entschlüsselung eines Passworts, um Brute-Force-Angriffe unattraktiv zu machen. Keine dieser Methoden kann sich aber in der Praxis bewähren.

Ein neuer, mittlerweile patentierter Ansatz ist die Cryptographic Camouflage [5]. Entwickelt wurde sie von der Firma Arcot unter Mitwirkung von Bruce Schneier, Taher ElGamal und Martin Hellmann. Diese Technik basiert darauf, den Private Key unter tausenden anderen, unechten, jedoch plausibel aussehenden Private Keys zu verbergen (zu camouflieren). Ein Hacker, der versucht, den Container per Brute Force oder Wörterbuch-Attacke über die PIN anzugreifen, kann dann den echten Private Key nicht aus der Menge vieler plausibler Private Keys herauspicken. Den richtigen Private Key kann er nur verifizieren, indem er ihn zur Authentifizierung gegenüber dem zuständigen Server anwendet. Der Authentifizierungsserver registriert jedoch mehrfache Fehlversuche und sperrt umgehend die entsprechende Software-Smartcard.

[GRAFIK]Cryptographic Camouflage schützt vor Offline-Attacken: Beim Durchprobieren der PINs kann der Angreifer den echten Private Key des Anwenders nicht von den vielen falschen, aber ebenfalls plausiblen Entschlüsselungsergebnissen unterscheiden.

Strukturinformationen

Zu verschlüsselnde Daten (auch kryptographische Schlüssel) bestehen normalerweise aus als solchem erkennbaren Klartext. Auf der Grundlage seiner Strukturen erkennen Krypto-Experten sofort, wenn bei einem Angriff der richtige Schlüssel zur Dekodierung verwendet wurde: Erhält man eine plausible Struktur als Resultat, lassen sich die unlogischen Varianten automatisch aussondern. Bei der Entschlüsselung eines natürlichsprachlichen Texts mit einem falschen Schlüssel entsteht kein logischer Text, sondern nur ein Wirrwarr zufälliger Zeichen. Nach diesem Prinzip kann ein Hacker, ohne den Originaltext zu kennen, den gesamten Schlüsselraum (PIN-Space) absuchen, bis ein plausibler Plaintext vorliegt, und er erkennt, wenn er den gültigen Schlüssel verwendet hat. Ähnliches gilt für die Strukturen von verschlüsselt gespeicherten Public oder Private Keys.

Die Cryptographic Camouflage setzt eine Stufe früher an: Enthalten nämlich alle Dekodierungen die gleiche Struktur wie der Originaltext, so kann ein Angreifer nicht mehr zwischen der richtigen und den anderen plausiblen Möglichkeiten unterscheiden. In diesem Fall genügt daher ein kleinerer Schlüsselraum. Der gültige Schlüssel wird unter ebenfalls logisch erscheinenden (aber falschen) Alternativen camoufliert. Bei einem natürlichsprachlichen Text müssten dann beim Durchprobieren des PIN-Space immer wieder korrekte Sätze erscheinen, auch wenn ein falscher Schlüssel zum Dechiffrieren genutzt worden wäre – das wäre schwierig umzusetzen. Praktikabel ist das Verfahren jedoch zur Camouflage von Kryptoschlüsseln.

Um einen Private Key zu camouflieren, bedarf es folgender zusätzlicher Maßnahmen:

Nichtdeterministische Signaturen

Besitzt ein Hacker einen Key-Container, signierte Daten und eine "normale" Signatur, so könnte er durch Ausprobieren den richtigen Private Key herausfinden, der zur Signatur passt. Zur Vermeidung dieser Attacke wird der Hash der Daten nicht deterministisch, sondern zufällig ergänzt. Signaturen gleicher Daten sind dann niemals gleich.

Eliminierung der Strukturen

Beispielsweise sind RSA-Keys immer ungerade. Das Weglassen der 1er-Bits entfernt diese Information.

----------Anfang Textkasten----------

Struktur von RSA-Keys

Obwohl es sich bei RSA-Schlüsseln um Binärdaten handelt, enthalten sie dennoch ausreichend Strukturen, um bei einem Angriff die korrekte Entschlüsselung offline zu verifizieren:

Für Cryptographic Camouflage sind diese Strukturen unbedingt zu vermeiden – das bedeutet: Verzicht auf dieVerschlüsselung einer BER-Codierung, auf die Verschlüsselung von n (mit bekannten, mathematischen Eigenschaften) sowie auf die Verschlüsselung von Objekten, die eine bekannte Beziehung zueinander haben (n, p, q, d, ...). Statt dessen wird nur der Private Exponent d verschlüsselt.

----------Ende Textkasten----------

Schutz des Public Keys

Das Verschlüsseln verifizierbaren Klartextes mit dem Public Key muss ausgeschlossen sein (Verhindern der Known-Signature-Attacke). Nur definierte, vertrauenswürdige Instanzen haben Zugang zum Public Key des Users, auch der Anwender selbst darf seinen eigenen Public Key nicht kennen.

Geheimhaltung der PIN

Obwohl dieser Aspekt selbstverständlich erscheint, enthalten viele Key Container einen Hashwert des Passworts. Die Camouflage-Technik verwendet immer nur einen Partial Hash oder Secure Hash.

Implikationen für die PKI

Aus den Camouflage-Maßnahmen resultieren einige Veränderungen im Einsatz der Private und Public Keys gegenüber einer regulären, offenen PKI-Infrastruktur:

Zertifikatsverteilung

Gemäß X.509 kann der Public Key in einem Zertifikat verteilt werden, bei Camouflage aber nur in verschlüsselter Form. Der entsprechende symmetrische Schlüssel der zuständigen Registration Authority (RA) wird nur an vertrauenswürdige Instanzen kommuniziert. Damit vereinfacht sich die Kontrolle über den Gebrauch der Zertifikate sowie das Revoke von Zertifikaten.

Signaturprüfung

Da nur vertrauenswürdige Instanzen auf den Public Key zugreifen können, sind auch nur diese in der Lage, die Signatur eines camouflierten Private Keys zu verifizieren. Beispiel: Signierte Überweisungen an eine Bank, die nicht durch Dritte zu prüfen sein müssen.

Verschlüsselung

Das Chiffrieren einer strukturhaltigen Nachricht würde, wie bereits erwähnt, zur Kompromittierung des camouflierten Private Keys führen. Zur Verschlüsselung dienen daher zusätzliche Standardzertifikate, die mithilfe der Camouflage-Technik sicher transportiert und nur vom authentifizierten User genutzt werden können.

Authentifizierung

Durch ein Standard-Challenge/Response-Verfahren kann sich ein User mit seinem camouflierten Private Key gegenüber einem Server authentifizieren. Voraussetzung ist, dass der Server den Public Key des Users entschlüsseln kann.

Implementierung

Durch die Cryptographic Camouflage erhält man einen gegen Dictionary Attacks resistenten Software-Container in Form einer mobilen Datei (Software Smartcard), die gefahrlos auch über das Internet transportiert werden kann. Dieser Software-Container verbirgt ein X.509-Zertifikat mit symmetrisch verschlüsseltem Public Key, einige zusätzliche, interne Verwaltungsinformationen und den camouflierten Private Key des Users.

Das Basiskonzept der Cryptographic Camouflage ist erweiterbar: So lässt sich außer der Authentifizierung und Signatur an jedem Ort von jedem Gerät aus auch der sichere Transport von 3rd-Party-Zertifikaten in einer "Encrypted Key Bag" ermöglichen. Damit sind Zertifikate beliebiger CAs nach X.509.v3 für Applikationen (PKI-enabled applications) auch über das Internet sicher zu transportieren und – nach erfolgter positiver Authentifizierung – anwendbar. Als Programmschnittstelle dienen Microsofts Cryptographic Service Provider (CSP) und PKCS#11. Für den Benutzer bringt das zusätzliche Vorteile mit sich, zum Beispiel den sicheren Transport von Zertifikaten samt Private Keys, einheitliche Key Stores und die sichere Verwendung eines Zertifikats nach starker Authentifizierung (zum Beispiel Browser- oder S/MIME- Zertifikate). Diese Technik ist übrigens ebenfalls patentiert [10].

Zur sicheren, vor Spionage durch Tastatur-Trojaner geschützten PIN-Eingabe kann die Software zudem die Eingabe über die Maus mit einem "Scrambled Pinpad" nutzen [11]. Bei dieser von Arcot patentierten Technik wechseln nach jedem Mausklick die Ziffern zufällig in eine andere Anordnung.

Sicherheit

Die Sicherheit der Camouflage-Technik ist vergleichbar mit Hardware Smartcards. Sinnvoll einsetzbar ist sie für digitale Signaturen in einer geschlossenen PKI-Umgebung, in der nur "Trusted Parties" Signaturen verifizieren müssen und per Fehlbedienzähler den Software Key Container des Users (Software Smartcard) serverseitig sperren können. Eine berechenbare Restwahrscheinlichkeit, auf Anhieb den richtigen, gültigen Private Key auszuprobieren, bleibt hier genau wie bei der Hardware-Smartcard abhängig von der Länge der PIN.

Da die Lösung auf Software basiert, ist sie per Definition nicht bis ITSEC E4 zertifizierbar. Sie kann daher keine "qualifizierte Signatur" nach dem deutschen Signaturgesetz abgeben, bietet aber dennoch eine starke Authentifizierung.

Die Camouflage-Technik beeinflusst auch bestimmte Aspekte bei der Diskussion bekannter Attacken, zum Bespiel Brute-Force-Angriffe auf den RSA Public Exponent, Known Signature Attacks und Wieners Angriffe auf kurze RSA-Exponenten. Bezogen auf den Standard-RSA-Algorithmus sind diese unter anderem in [6] und [9] nachzulesen, während [4] und [5] vor allem auf die Technik der Camouflage eingehen.

Fazit und Ausblick

Die Software Smartcard liefert eine kostengünstige und roamingfähige Lösung als Ergänzung zur physischen Smartcard. Benutzeridentifikation und starke Authentifizierung bei Transaktionen im Internet lassen sich damit einfacher und bequemer gewährleisten – zu einem Bruchteil der Kosten von Verfahren, die auf Hardware angewiesen sind. Auch Streichlisten-Verfahren (z. B. Onlinebanking mit PIN/TAN) können damit durch eine zertifikatsbasierte Lösung ersetzt werden.

Der von VISA für 2002 angesetzte Liability-Shift wird per Cryptographic Camouflage durch eine kostengünstige, softwarebasierte Authentifizierung des Kunden unterstützt, für die dann der Vorgabe entsprechend die zuständige Bank verantwortlich ist. Bei Identrus befindet sich die Software Smartcard in der Zulassungsphase. Dort wird die Camouflage-Technik mit der höchsten Sicherheitsstufe für Software Smartcards bewertet. Auch die Internet Engineering Task Force (IETF) hat eine Arbeitsgruppe zur Standardisierung der Software Smartcard gebildet.

Dipl.-Ing. Andreas Gatz ist Director System Engineering bei der Arcot Deutschland GmbH ([externer Link] www.arcot.com).

Literatur

[1]
Peter Gutmann, How to recover private keys for Microsoft Internet Explorer, Internet Information Server, Outlook Express, and many others, [externer Link] www.cs.auckland.ac.nz/~pgut001/pubs/breakms.txt
[2]
D. Plakosh, S. Hissam and K. Wallnau, Into the Black Box: A Case Study in Obtaining Visibility into Commercial Software, [externer Link] www.sei.cmu.edu/publications/documents/99.reports/99tn010/99tn010abstract.html
[3]
Paul Robichaux, Password=Bad, Microsoft's TechNet, Feb. 2000
[4]
D. N. Hoover, B. N. Kausik, Software Smart Cards via Cryptographic Camouflage, IEEE Symposium on Security, 1999
[5]
US-Patentschrift Nr. 6.170.058, Cryptographic Camouflage, Januar 2001, [externer Link] www.uspto.gov/patft
[6]
Bruce Schneier, Applied Cryptography, Second Edition, Addison-Wesley, 1996, ISBN 3-89319-854-7
[7]
PKCS #1, RSA Encryption Standard, RSA Laboratories Technical Note, [externer Link] www.rsa.com/rsalabs/pkcs/pkcs-1/
[8]
PKCS #5, Password-Based Encryption Standard, RSA Laboratories Technical Note, [externer Link] www.rsa.com/rsalabs/pkcs/pkcs-5/
[9]
Michael J. Wiener, Cryptoanalysis of short RSA secret exponents, IEEE Transactions on Information Theory, v.36 no.3, May 1990
[10]
US-Patentschrift Nr. 6.263.446, Secure Distribution of Authentication Credentials to Roaming Users, Juli 2001, [externer Link] www.uspto.gov/patft
[11]
US-Patentschrift Nr. 6.209.102, Scrambled Pinpad, März 2001, [externer Link] www.uspto.gov/patft
[12]
A. Nash, W. Duane, C. Joseph, D. Brink, PKI – Implementing and Managing E-Security, McGraw-Hill, 2001, ISBN 0-07-213123-3

© SecuMedia-Verlags-GmbH, D-55205 Ingelheim,KES 6/2001, Seite 58