Drive Snapshot bietet die Möglichkeit, einen Generalschlüssel zu vereinbaren, sodass verschlüsselte Images auf jeden Fall mit einem Generalschlüssel entschlüsselt werden können, auch wenn der Mitarbeiter gerade in Urlaub ist.
Die Implementierung hat folgende Eigenschaften:
Die ausführbare Datei SNAPSHOT.EXE wird vom OEM modifiziert; dazu wird mit einer Public Key Methode (s.u.) das OEM spezifische Kennwort 'OEMSuperSecret' als öffentlicher Schlüssel in den EXE file geschrieben.
Alle mit diesem SNAPSHOT.EXE verschlüsselten Dateien sind danach sowohl mit dem Benutzerschlüssel, als auch dem OEM-Schlüssel lesbar.
Es ist aber in keiner Weise möglich, den OEM-Schlüssel oder den Benutzerschlüssel zu rekonstruieren.
Diese Funktionalität steht ausschließlich größeren Kunden auf gesonderte Nachfrage zur Verfügung.
Da Verschlüsselung nur sicher ist, nachdem einige Experten sich die Implementierung angesehen haben, und wir sowieso danach gefragt werden, hier sind die
Der Schlüssel, mit dem das Image verschlüsselt wird, ist immer eine
Zufallszahl.
Damit das Image gelesen werden kann, wird dieser Archivschlüssel
mit dem Benutzerschlüssel verschlüsselt und im Image gespeichert.
Bei Nutzung
des Images wird dann dem einzugebenden Schlüssel der Archivschlüssel
rekonstruiert.
Wenn ein OEM Key vorhanden ist, wird der Archivschlüssel ebenfalls mit dem OEM Key verschlüsselt gespeichert und kann rekonstruiert werden.
Der OEM Key darf natürlich nicht aus der .EXE Datei rekonstruierbar sein.
Basierend auf dem Diffie-Hellman Algorithmus, erfolgt die Implementierung wie
folgt:
Der OEM erzeugt aus 'OEMSuperSecret' eine Zahl X (von 160 Bit Länge).
Der OEM publiziert seinen Schlüssel in der Form von
OEM Public Key = (A ^ X) modulo P
mit festen und bekannten Konstanten A = 4711, P = 2^2203-1 ist eine große Primzahl.
Wenn der Image spezifische Schlüssel verschlüsselt werden soll, erzeugt Snapshot eine weitere Zufallszahl Y='SomethingRandom' und bildet
Archive Public Key = (A ^ Y) modulo P
und
CommonSecretKey = OEM Public Key = (A^X)^Y modulo P
mit CommonSecretKey wird dann der Archiv Schlüssel gespeichert; zusätzlich wird im Image auch der Archiv Public Key (A^Y) gespeichert.
Bei Rekonstruktion mit dem OEM Key wird dann
CommonSecretKey = ArchivePublicKey ^ X modulo P
gebildet, und sowohl beim Ver- als auch Entschlüsseln haben beide Partner den gleichen CommonSecretKey zur Verfügung.
Das Verfahrens beruht auf der Tatsache, dass A^X^Y = A^Y^X ist.
Die Sicherheit des Verfahrens beruht darauf, dass es schwer ist, aus der
Kenntnis von A^X mod P schwierig ist, X zu errechnen, sofern P eine hinreichend große
Primzahl ist (in unserer Implementierung 2^2203-1).
Literatur:
Security
Issues in the Diffie-Hellman Key Agreement Protocol [Raymond, Stiglic]l
Discrete
logarithms: The past and the future [Odlyzko 99]