Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


15.1.7

Signieren von JAR-Dateien


Dieser Abschnitt gibt eine kurze Anleitung, wie JAR-Dateien signiert werden können, um Signatur-bezogene Permissions zu vergeben. Diese Vorgehensweise ist für signierte Applets aber auch für Teile von Applikationen, die unter einem SecurityManager laufen, gleichermaßen gültig. Im Einzelnen sind folgende Schritte erforderlich: Die Generierung des Schlüsselpaars, mit dem später die Signatur erfolgt, wird mit dem keytool durchgeführt. Standardmäßig wird die Schlüsseldatenbank als Passwort-geschützte Datei im Homeverzeichnis des Benutzers unter dem Namen .keystore angelegt (unter Windows im Verzeichnis des Benutzerprofils). In einem Keystore werden die Einträge mit einem Aliasnamen identifiziert. Das folgende Kommando erzeugt eine neues Schlüsselpaar unter dem Alias »duke«:
  keytool -genkey -alias duke
Nach der Eingabe dieses Kommandos werden noch Angaben zum Schlüsselinhaber abgefragt. Diese werden als Benutzeridentifikation im automatisch erzeugten selbst signierten Zertifikat eingetragen. Dieses selbst signierte Zertifikat kann man sich in eine Datei exportieren und mit einem zweiten Kommando anzeigen lassen:
  keytool -export -alias duke -file selfsigned.crt
  keytool -printcert -file selfsigned.crt
Dieses selbstsignierte Zertifikat genügt bereits, um für Testzwecke Signierer-bezogene Berechtigungen auszuprobieren. Im Produktivbetrieb sollte aber ein Zertifikat einer bekannten Certification Authority (CA) vorhanden sein. Um ein solches Zertifikat zu erhalten, sind zwei Schritte durchzuführen: Als nächstes ist die JAR-Datei zu erstellen, die den Code enthält, der die besonderen Privilegien benötigt. Hierzu wird das jar-Kommando ausgeführt, das ausführlich im Anhang B.3 beschrieben wird:
  jar cvf test.jar ».class-Dateien«
Dabei ist darauf zu achten, dass sich die Paketstruktur auch in der Verzeichnisstruktur in der JAR-Datei wiederspiegelt, d. h., dass der Bytecode der Klasse de.demo.MyClass mit dem vollständigen Pfad de/demo/MyClass in der JAR-Datei abgelegt sein muss. Für Testzwecke muss die so erzeugte JAR-Datei gegebenenfalls noch in den CLASSPATH aufgenommen werden.

Anschließend kann die eigentliche Signatur mit jarsigner vorgenommen werden. Dieses Kommando signiert die Datei test.jar mit dem unter dem Alias duke abgelegten Schlüssel:
  jarsigner test.jar duke

Als letzter Schritt ist noch die Policy entsprechend zu definieren. Wenn das policytool hierzu eingesetzt wird, sind zwei Dinge zu beachten:

Abbildung 15.4: Signierer-bezogene Regel im policytool
Abbildung 15.4

In der Regel selbst wird der Signierer durch den Alias im Keystore bezeichnet. Abbildung 15.4 zeigt, wie eine Signierer-bezogene Definition im policytool aussieht. Der folgende Ausschnitt aus der Policy-Datei zeigt die dazugehörigen Einträge:

 
  keystore "file:/f:/winnt/profiles/Administrator/.keystore", "JKS";
  ...
  
  grant signedBy "duke" {
    permission java.io.FilePermission "<<ALL FILES>>", "write, read";
  }; 


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.