Dieser Artikel erläutert, wie sich mithilfe einer SmartCard, PKI und dem Eclipse File System eine Verschlüsselung von Daten realisieren lässt. Dabei soll auch aufgezeigt werden, inwiefern sich nicht nur Dokumente, sondern auch applikationsspezifische Metadaten (z. B. ein Suchindex) verschlüsseln und sichern lassen. Ebenfalls werden Aspekte besprochen, die ein Roll-Out eines solchen Systems für mehrere Tausend Mitarbeiter mit sich bringen. Ein Servicetechniker benötigt eine gute Wissensdatenbank, um anhand von Symptomen möglichst schnell eine Lösung für ein technisches Problem an einem Gerät zu finden. Eine solche Datenbank lebt von der Zusammenarbeit vieler Techniker, und somit wäre eine Webapplikation dafür vorteilhaft (klassisch Enterprise 2.0). Andererseits hat ein Techniker, der vor Ort arbeitet, oft keine oder nur sehr eingeschränkte Konnektivität auf eine zentrale Datenbasis. Eine Desktopapplikation mit einem zentralen Dokumentenserver, einer intelligenten Synchronisation der Daten und integrierter Suche bietet hier eine gute Lösung. Die Herausforderung bei einer Applikation mit lokaler Datenablage ist nun, dass die Daten vor nicht autorisiertem Zugriff geschützt werden müssen, insbesondere, wenn es sich um sensible Daten handelt, die für die Konkurrenz einen großen Wert darstellen. Verschärft wird dies durch den Einsatz von Laptops: Ein Techniker hat üblicherweise einen mobilen Computer, dessen Daten auch bei Verlust der Hardware geschützt werden müssen. Folgende Szenarien sind dabei zu berücksichtigen:
- Ein nicht autorisierter User soll durch den Zugang zur Hardware keinen Zugriff auf die Applikation oder die Daten erlangen können.
- Der autorisierte User soll nicht durch eigene Aktivitäten die Sicherheit herabsetzen können, z. B. durch Kopieren der Daten aus einem geschützten in einen offenen Bereich.
- Die Applikation soll die SSO-Standards des Unternehmens erfüllen. Es soll mit einer SmartCard als Träger für den Private Key in einer PKI gearbeitet werden.
- Die Lösung muss für 4000 Techniker weltweit realisierbar sein. Das Fehlen einer zentralen Administration der heterogenen Hardwarelandschaft erschwert die Lösungsfindung. Alle Systeme basieren auf der Windows-Plattform.
Festplattenverschlüsselung
Die erste und plausibelste Lösung ist die Verwendung einer Kryptografieapplikation, die ein virtuelles, verschlüsseltes Laufwerk anlegt. Problematisch dabei ist jedoch eine weltweite Installation mit administrativen Rechten, die von solchen Programmen gefordert wird. Diese Anforderung ist aufgrund der heterogenen Systemumgebungen und Richtlinien bezüglich der Rechteverteilung nur sehr schwer, bzw. überhaupt nicht zu realisieren. Ein weiteres Problem ist es, sicherzustellen, dass der Benutzer ausschließlich die virtuelle Partition für die Daten verwendet. Auch nach der Installation kann nicht ohne weiteres unterbunden werden, dass die Daten vom User auf eine ungesicherte Partition kopiert werden, um dadurch z. B. einen schnelleren Dokumentenzugriff zu erreichen. Dadurch würde bei der Entwendung des Laptops der Angreifer sehr einfach an die Daten gelangen. Aus den oben genannten Gründen ist die Entscheidung getroffen worden, die Verschlüsselung in die Applikation zu integrieren.
Integration der Verschlüsselung
Dabei können wir auf die PKI-Lösung mit einer SmartCard aufbauen. Von Java aus entspricht der Zugriff auf die Karte der PKCS#11-Spezifikation. Die Karte enthält den Security Token des Users und eine Hardwareimplementierung des RSA-Algorithmus. Der Security Token kann nicht direkt ausgelesen, sondern nur mittels eines Challenge-Response-Mechanismus verifiziert werden (dies passiert üblicherweise mit einer PIN). Es kann also nur eine Nachricht nach dem RSA über die Karte ver- oder entschlüsselt werden. Die Hardware ist aber nicht dafür ausgelegt, große Datenmengen "on-the-fly" zu verschlüsseln. Die Geschwindigkeit liegt bei ca. 20 kByte pro Sekunde und ist damit nicht akzeptabel.
Kombination als Lösung
Die Lösung für dieses Problem ist eine Kombination aus asymmetrischen und symmetrischen Kryptografieverfahren. Die lokal abgelegten Dateien werden mittels AES und eines 128 Bit langen Session Keys im CBC Mode und PKCS#5 Padding verschlüsselt. Dabei wird intern ein symmetrischer Schlüssel generiert, der wiederum mit dem Verschlüsselungszertifikat des Benutzers verschlüsselt wird und nur mit dem Security Token des Benutzers zu entschlüsseln ist. Dabei ist zu berücksichtigen, dass diese zusätzliche Verschlüsselung keinen Einfluss auf die Verschlüsselungsstärke der Dateien hat. Sie soll lediglich die Zugriffe auf die SmartCard reduzieren und gleichzeitig ein Entschlüsseln der Dateien ohne Security Token des Benutzers verhindern. Um das Zertifikat des Benutzers zu validieren, wird der Standard Java Keystore der SUN JVM genutzt. Somit ist die Frage nach sicherer Verschlüsselung geklärt. Nur: Was hat das Ganze mit dem Eclipse-RCP-Framework zu tun?
Tabelle 1: Security-Glossar
| Begriff | Erklärung (Quelle) |
|---|---|
| PKCS | Public Key Cryptography Standards, von der Firma RSA Data Security entwickelt, sind eine Serie von Standards, die hauptsächlich Datenformate für verschiedene Bereiche der Public Key Cryptography definieren. |
| PKCS#11 | Cryptographic Token Interface Standard. Beschreibt ein Cryptoki (sprich "crypto-key") genanntes API für Hardwaremodule, die kryptografische Operationen durchführen, wie SmartCards oder HSMs. Sie soll Applikationen eine allgemeine logische Sicht auf ein Modul, genannt "Cryptographic Token" geben, und die Ziele der Hardwareunabhängigkeit und des „resource sharing“ (mehrere Applikationen greifen auf mehrere Tokens zu) verfolgen. |
| SmartCard | Kryptografischer Token |
| PKCS#5 | Password Based Cryptography Standard. Beinhaltet eine Methode zur Verschlüsselung mit einem mittels Hash-Verfahren von einem Passwort abgeleiteten Schlüssel. |
| CBC Mode | Cipher Block Chaining Mode (CBC) ist eine Betriebsart, in der Blockchiffre betrieben werden können. Vor dem Verschlüsseln eines Klartextblocks wird dieser erst mit dem im letzten Schritt erzeugten Geheimtextblock per XOR (exklusives Oder) verknüpft. |
| PKI | Public Key Infrastructure |
| SSO | Single Sign-on |




