signed applet



Aplety Java uruchamiane są po stronie klienta, dlatego mogą stwarzać zagrożenie dla systemu, zwłaszcza kiedy mają dostęp do operacji odczytu i zapisu na dysku. Sposobem na uruchomienie naszego kodu po stronie klienta jest podpisanie cyfrowo apletu. Wykorzystuje się do tego narzędzia keytool oraz jarsigner.
Keytool służy do zarządzania kluczami i certyfikatami. Wszystkie klucze są
przechowywane w tzw. keystore. Aby wygenerować nowy klucz, należy użyć opcji:
keytool -genkey -keystore mojeklucze -alias mojAlias

gdzie -alias określa nazwę jaką będziemy się posługiwać, aby odwołać się do klucza. Podczas pierwszej operacji na keystore (magazynie kluczy), należy ustawić do niego hasło, a następnie podać następujące dane:
  • imię i nazwisko
  • nazwa oddziału naszej firmy lub organizacji
  • nazwa naszej firmy
  • nazwa miasta
  • nazwa województwa
  • dwuliterowe oznaczenie swojej narodowości, np. PL
Po zatwierdzeniu danych, należy ustawić hasło dla naszego klucza (alias).


Za pomocą keytool można wyświetlać zawartość keystore, importować i eksportować certyfikaty do plików .cer oraz wyświetlać zawartość certyfikatu. Więcej szczegółowych informacji o narzędziu keytool można znaleźć tutaj.


Jarsigner jest wykorzystywany do podpisywania plików jar. Aby podpisać plik jar za pomocą wygenerowanego wcześniej klucza należy użyć polecenia:
jarsigner -keystore mojeklucze appletfile.jar mojAlias


Po podaniu hasła do keystore, operacja powinna zakończyć się komunikatem informującym o wygaśnięciu ważności certyfikatu po 6 miesiącach od daty utworzenia:
Warning:
The signer certificate will expire within six months.

Istnieje możliwość przedłużenia okresu ważności za pomocą przełącznika
-validity podczas generowania klucza
keytool -genkey - validity liczbaDni
I tutaj przyznam, że tej kwestii trochę nie rozumiem, ponieważ wg dokumentacji narzędzia keytool, domyślny okres validity to 90 dni, a po podpisaniu jar narzędziem jarsigner dostajemy informację o okresie 6 miesięcy. Być może zna ktoś z Was rozwiązanie tej zagadki.

W celu weryfikacji podpisanego pliku .jar można wykorzystać polecenie:
jarsigner -verify appletfile.jar
lub jeśli chcemy uzyskać więcej dodatkowych informacji:
jarsigner -verify -verbose appletfile.jar


Jeśli weryfikacja przebiegła pomyślnie, otrzymamy komunikat
jar verified.
W przeciwnym przypadku:
jar is unsigned. (signatures missing or not parsable)

Więcej szczegółowych informacji o narzędziu jarsigner można znaleźć tutaj.

Komentarze