24.3 Dienstprogramme zur Signierung
Wir wollen uns in diesem Abschnitt mit einigen Werkzeugen beschäftigen, die zur Signierung von Applets des Java-SDK in der Standardinstallation angeboten werden. Zum Signieren von Applikationen sowie Applets und zur Vergabe der Zugriffsrechte und -beschränkungen stellt Sun die Dienstprogramme keytool, jarsigner und policytool bereit.
24.3.1 Mit keytool Schlüssel erzeugen
Mit dem Programm keytool lassen sich öffentliche und private Schlüssel erzeugen, die in einer passwortgeschützten und verschlüsselten Datei abgelegt werden. Die Datei hat standardmäßig den Namen .keystore und befindet sich im Benutzerverzeichnis des Anwenders. Mit dem Programm keytool lassen sich neben der Schlüsselgenerierung auch Zertifikate importieren, Zertifikatsanforderungen ausstellen und Schlüssel als vertrauenswürdig festlegen.
Möchten wir einen Schlüssel erstellen, rufen wir das Programm keytool mit der Option -genkey auf. Das ist eine der wichtigsten Optionen. Daneben wird mit der Option -alias ein Name für den Schlüsselinhaber angegeben:
$ keytool -genkey -alias CUllenboom
Anschließend fragt keytool nach dem Passwort des Schlüsselspeichers und erfragt weitere Angaben zum Inhaber. Mit diesen Informationen erzeugt das Programm ein Schlüsselpaar mit einem selbstzertifizierenden Zertifikat. Bei diesem speziellen Zertifikat sind Aussteller und Inhaber identisch.
-genkey
|
Erzeugung eines Schlüsselpaars
|
-import
|
Importieren eines Zertifikats
|
-selfcert
|
Erstellung eines selbstinitiierten Zertifikats
|
-certreq
|
Export einer Zertifikatsanforderung; sie kann als Datei an eine CA geschickt werden.
|
-export
|
Export eines Zertifikats. Dieses kann dann von einem anderen Benutzer importiert und als vertrauenswürdig deklariert werden.
|
-list
|
Listet alle Zertifikate und Schlüssel auf.
|
-delete
|
Entfernt ein Schlüsselpaar.
|
-help
|
Zeigt eine kurze Hilfe an.
|
Tabelle 24.1 Optionen von keytool
Die Angabe der Optionen ist immer dann sinnvoll, wenn die Standardeinstellungen unpassend sind. Über die Optionen lassen sich die Algorithmen zur Verschlüsselung und Schlüsselgenerierung ebenso angeben wie eine Pfadangabe des Schlüsselspeichers oder die Gültigkeitsdauer.
24.3.2 Signieren mit jarsigner
Mit dem Dienstprogramm jarsigner können Jar-Archive signiert und verifiziert werden. Dazu erstellt jarsigner einen Hashcode des Archivs und verschlüsselt dann mit dem privaten Schlüssel die Datei. Das Zertifikat und der öffentliche Schlüssel werden dem Archiv beigelegt. Der allgemeine Aufruf von jarsigner hat folgendes Format:
$ jarsigner Archiv Keystore
Beispiel Signiere das Archiv archiv.jar mit dem Schlüsselspeicher von CUllenboom.
$ jarsigner archiv.jar CUllenboom
|
Dann werden dem Archiv zwei weitere Dateien hinzugefügt. Eine Signatur-Datei mit der Endung .sf und eine Signaturblock-Datei mit der Endung .dsa. Die Signatur-Datei enthält eine Liste aller Dateien im Archiv und speichert zudem den Hash-Wert zu einer mit aufgeführten Hash-Funktion. Diese Signatur-Datei wird dann mit dem privaten Schlüssel des Signierers signiert und zusammen mit dem verschlüsselten Zertifikat des Signierers in der Signaturblock-Datei gespeichert.
Möchten wir wissen, ob ein Archiv verifiziert ist, schreiben wir:
$ jarsigner -verify Archiv
|