Java Code Signing 1.4 6.0 Uycie certyfikatów niekwalifikowanych do podpisywania kodu w technologii Java wersja 1.1
Spis treci 1. WSTP... 3 2. TWORZENIE KLUCZA PRYWATNEGO I CERTYFIKATU... 3 2.1. TWORZENIE DANIA CERTYFIKATU (CSR)... 3 2.2. TWORZENIE CERTYFIKATU NA PODSTAWIE UTWORZONEGO DANIA (CSR)... 5 2.3. POBIERANIE CERTYFIKATU CERTUM CA I CERTYFIKATÓW POREDNICH... 5 2.4. IMPORTOWANIE CERTYFIKATU CERTUM CA I CERTYFIKATÓW POREDNICH... 5 2.5. INSTALOWANIE CERTYFIKATU UYTKOWNIKA... 6 3. PODPISYWANIE KODU... 7 4. WERYFIKOWANIE... 7 5. IMPORT/EKSPORT KLUCZY... 8
1. Wstp Wykonywalny kod Java moe by podpisany cyfrowo w technologii Java Code Signing przy zastosowaniu specjalnego certyfikatu do podpisywania kodu, oferowanego przez CERTUM. Niezbdna do tego celu jest równie aplikacja Sun JDK (w szczególnoci programy keytool oraz jarsigner, lub dostpny w starszych wersjach javakey). Dziki podpisowi cyfrowemu dowolny aplet lub plugin moe da rozszerzonych uprawnie. Podpis cyfrowy daje równie odbiorcy du pewno co do autentycznoci kodu. W celu uzyskania dalszych informacji odwied stron Sun Java Developer Kit. 2. Tworzenie klucza prywatnego i certyfikatu 2.1. Tworzenie dania certyfikatu (CSR) Zmie katalog na c:\program Files\Java\jdk1.x (lub inny gdzie została zainstalowana Java), gdzie x oznacza wersje Javy lub dodaj t ciek do PATH i wydaj polecenie: keytool -genkey -keyalg RSA -keysize 1024 -alias cunizetowski Powysze polecenie spowoduje wygenerowanie klucza prywatnego wraz z odpowiadajcym mu daniem certyfikatu CSR. Algorytm generujcy klucze jest zgodny ze standardem RSA i jest 1024 bitowej długoci. -alias jest nazw certyfikatu np. Imie, pseudonim itp. Podczas generowania CSR bdziesz musiał poda ponisze informacje: What is your first and last name? podaj swoje imi i nazwisko, np. Jan Kowalski. W przypadku, kiedy staramy si o certyfikat dla firmy programistycznej powinnimy poda nazw firmy lub jej alias, np.: Firma Trusted Code, Firma S.A, Firma Java Code itp. What is the name of your organizational unit? podaj nazw oddziału lub wydziału swojej firmy czy instytucji, dla której starasz si o certyfikat. Osoby prywatne mog wpisa: Unizeto(r) Developer Certificates, pozostali podaj jednostk organizacyjn np.: Dział Programowania, Instytut Metalurgii, Oddział Intensywnej Terapii itp. What is the name of your organization? podaj nazw swojej firmy lub instytucji, dla której starasz si o certyfikat. Osoby prywatne mog wpisa: Java Code Signing, pozostali podaj nazw firmy lub Organizacji np.: Firma S.A, Uniwersytet w Ludowie dolnym, Klub Kubusia Puchatka itp. What is the name of your City or Locality? Podaj nazw swojej miejscowoci, np.: Szczecin, Warszawa, Lodowo Dolne itp. What is the name of your State or Province? Podaj nazw swojego województwa nie stosujc skrótów, np.: Zachodniopomorskie, Mazowieckie itd. What is the two-letter country code for this unit? Podaj kod ISO swojego kraju - PL (due litery). Nie naley stosowa małych liter lub innych popularnych oznacze np.: RP, PRL itd. Uwaga: Uywanie znaków specjalnych % ^ $ _ lub polskich znaków diakrytycznych: Ł przy podawaniu tych informacji spowoduje nieprawidłowe wygenerowanie certyfikatu! Java Code Signing 1.4 6.0 Wstp 3
Przykład wygenerowania pary kluczy przy uyciu narzdzia keytool : Aby sprawdzi czy polecenie zostało wykonane poprawnie, mona uy polecenia keytool -list lub keytool -list -v. Obie te opcje wywietl (z rónym poziomem szczegółowoci) zawarto bazy z kluczami./keystore: Powykonaniu powyszej czynnoci naley wyda polecenie keytool -certreq -alias cunizetowski -file c:\mycert.csr Spowoduje to zapisanie dania certyfikatu o nazwie cunizetowski do pliku mycert.csr : Przykładowy plik dania powinien wyglda podobnie jak poniej: Java Code Signing 1.4 6.0 Tworzenie klucza prywatnego i certyfikatu 4
2.2. Tworzenie certyfikatu na podstawie utworzonego dania (CSR) Majc wygenerowane danie wchodzimy na stron CERTUM (http://www.certum.pl/certum/cert,oferta_java.xml) i wybieramy Kup Java Code Signing. Wypełniamy formularz zgłoszeniowy i wklejamy CSR. UWAGA: W celu wklejania certyfikatu do pliku naley skopiowa fragment tekstu od linii "--BEGIN CERTIFICATE --" do "--END CERTIFICATE--", uywajc do tego celu edytora tekstowego np. Notepad i myszki. Nie naley uywa do tej operacji Worda, czy innego procesora tekstowego! Po wykonaniu powyszej procedury zostaniemy poinformowani stosownym emailem o dalszych krokach naszych działa. 2.3. Pobieranie certyfikatu Certum CA i certyfikatów porednich Aby pobra certyfikat Certum CA lub certyfikaty porednie naley wej na stron www.certum.pl do działu Obsługa certyfikatów Zawiadczenia i klucze. Po wybraniu certyfikatu naley wybra opcj Certyfikat dla serwerów WWW. Wywietli si interesujcy nas certyfikat, który zaznaczymy myszk, wkleimy do pliku i zapiszemy. UWAGA: W celu wklejania do pliku certyfikatu prezentowanego na stronie naley skopiowa fragment tekstu od linii "--BEGIN CERTIFICATE --" do "--END CERTIFICATE--", uywajc do tego celu edytora tekstowego np. Notepad i myszki. Nie naley uywa do tej operacji Worda, czy innego procesora tekstowego! W przypadku pobierania certyfikatów porednich, wybieramy interesujcy nas certyfikat, np. CERTUM Level IV z listy (Certyfikaty Level IV naley pobra w przypadku, gdy posiadamy certyfikat typu Trusted, certyfikat poziomu III naley pobra w sytuacji, gdy posiadamy certyfikat typu Enterprise / Wildcard, certyfikat poziomu II naley pobra w sytuacji, gdy posiadamy certyfikat typu Commercial; dla certyfikatów typu Private pobierany jest certyfikat klasy I). Pozostała cz procesu (zapisanie do pliku) przebiega jak dla certyfikatu Certum CA. 2.4. Importowanie certyfikatu Certum CA i certyfikatów porednich Aby do bazy certyfikatów doda certyfikat Certum CA naley wyda polecenie: keytool -import -trustcacerts -file c:\work\ca.der -alias CertumCA W ten sposób do bazy z zaufanymi urzdami certyfikujcymi zostanie dodany certyfikat Certum CA. Opcja -file wskazuje nam połoenie pliku z certyfikatem, z kolei -alias to nazwa, pod któr certyfikat bdzie widniał w bazie: Java Code Signing 1.4 6.0 Tworzenie klucza prywatnego i certyfikatu 5
Procedur powtarzamy dla certyfikatu poredniego, uywajc polecenia: keytool -import -trustcacerts -file c:\work\ca1.der -alias Certumlvl_1 Do bazy zostanie dodany certyfikat poredni Certum Level I. Znaczenie opcji -file i -alias jest takie same jak powyej. Aby wywietli zawarto naszej bazy z certyfikatami uyjemy opcji: keytool -list lub keytool -list -v 2.5. Instalowanie certyfikatu uytkownika Aby zainstalowa certyfikat uytkownika w bazie, naley pobra go ze stron CERTUM (certfikat powinien by szyfrowany binarnie algorytmem DER cigajc certyfikat z naszej strony poprzez Zapisz binarnie zapisuje certyfikat szyfrowany algorytmem DER rozszerzenie *.cer), a nastpnie wyda polecenie (nie ma koniecznoci zmiany rozszerzenia z *.cer na *.der): keytool -import -file c:\work\certkod.der -alias cunizetowski gdzie -alias oznacza nazw certyfikatu, natomiast -file jest ciek prowadzc do naszego pliku z certyfikatem: Aby wywietli zawarto naszej bazy z certyfikatami uyjemy opcji: keytool list Java Code Signing 1.4 6.0 Tworzenie klucza prywatnego i certyfikatu 6
lub keytool -list -v 3. Podpisywanie kodu Przejd do katalogu, w którym zapisany jst program jarsigner (domylnie c:\program Files\Java\jdk1.x.0\bin\, gdzie x oznacza numer wersji javy - mona równie doda ciek do PATH) i wydaj polecenie: jarsigner Notepad.jar cunizetowski Spowoduje to złoenie podpisu na pliku Notepad.jar przy uyciu klucza o nazwie cunizetowski: 4. Weryfikowanie Aby zweryfikowa poprawno podpisu wydajemy polecenie: W celu uzyskania bardziej szczegółowych informacji o podpisie, wpisujemy: Wywietlone zostan szczegółowe dane podpisów. Java Code Signing 1.4 6.0 Podpisywanie kodu 7
5. Import/Eksport kluczy Po otrzymaniu certyfikatu wskazane jest by klucz prywatny zabezpieczony został na osobnym noniku, np. dyskietce lub CD. Wszystkie niezbdne do pracy programu klucze dla podpisywania apletów Java przechowywane s w pliku *.keystore (w katalogu domowym). Jego zabezpieczenie pozwala odzyska certyfikat w wypadku awarii dysku twardego. Java Code Signing 1.4 6.0 Import/Eksport kluczy 8