[ Pobierz całość w formacie PDF ] .Wcelu identyfikacji, "keystore" dla pakietu SUN posiada identyfikator JKS.Inicjowanieobiektu klasy KeyStore odbywa się podobnie jak dla pozostałych mechanizmówkryptografii w Javie poprzez przywołanie metody statycznej getInstance().Następnienależy załadować dane aktualnie przechowywane w bazie do pamięci poprzezwykorzystanie metody load().Metoda load() specyfikuje strumień wejściowy (skądczytać) oraz ewentualnie hasło dostępu.Każda pozycja w bazie keystore jestidentyfikowana przez unikalną nazwę (ang.alias).W celu uzyskania nazwy możnaposłużyć się metodą aliases().W celu określenia czy dana pozycja w bazie jestkluczem czy certyfikatem należy wykorzystać metody typu boolean tj.: isKeyEntry()oraz isCertificateEntry() z podaniem jako argumentu odpowiedniej nazwy pozycji, októrą pytamy.Aby stworzyć nową pozycję w bazie keystore musimy najpierw związaćnazwę z daną pozycją poprzez metody: setCertificateEntry() oraz setKeyEntry()podając jako argument odpowiednio certyfikat lub klucz, alias, oraz ewentualniehasło.W razie potrzeby możemy usunąć pozycję z bazy wykorzystując metodędeleteEntry() z podaniem aliasu pozycji do usunięcia.Wszystkie te operacje sąwłaściwe tylko wówczas, gdy baza keystore jest załadowana do pamięci.W celunagrania nowo stworzonej lub zaktualizowanej bazy na dysku należy przywołaćmetodę store() podając odpowiedni strumień wyjścia i hasło.Opróczprzechowywania kluczy w bazie konieczna jest również możliwość pobierania z bazykluczy celem ich wykorzystania np.dla generacji podpisów.W tym celu mając wpamięci załadowaną bazę należy przywołać metodą getKey() lub getCertificate()odpowiedni klucz lub certyfikat poprzez podanie właściwej nazwy jako argumentumetody.Na zakończenie omawiania mechanizmów kryptografii w JCA warto zwrócić uwagęna istnienie specjalnych wyjątków poszczególnych mechanizmów.Przykładowo:DigestException, KeyException, SignatureException, itp.Wyjątki te najczęściejwystępują przy niezgodności inicjowania elementu wedle przyjętego algorytmudanego mechanizmu np.błąd w czasie wywoływania metody sign()(SignatureExcpetion) lub w czasie wykonywania metody digest() (DigestException),itd.10-21Jacek Rumiński - Język JAVA Jacek Rumiński - Język JAVA Rozdział 10Jacek Rumiński - Język JAVA Jacek Rumiński - Język JAVA 10.4.5 Kodowanie danychPodsumowując zagadnienia kryptografii w Javie należy powiedzieć, żemechanizmy służące zapewnianiu autentyczności są dostarczane w sposób prosty,tak więc zastosowanie ich w programach nie wymaga specjalistycznej wiedzyprogramisty.Jakość kodowania jest zależna od zewnętrznych algorytmów, tak więcczysty kodJavy jest niezwykle uniwersalny.Niestety brak możliwości kodowania danych (JCE -tylko w obrębie USA i Kanady) stanowi poważny problem.Kodowanie danych musiodbywać się więc zewnętrznie (inne aplikacje nie w Javie), a zakodowane danemogą być następnie dostarczane do aplikacji Javy.Można również wykorzystaćopracowane przez inne firmy pakiety do kodowania danych, np.:Australian Business AccessABA JCEhttp://www.aba.net.au/solutions/crypto/jce.htmlBaltimore TechnologiesJ/CRYPTOhttp://www.baltimore.ie/products/jcrypto/index.htmlCryptixCryptixhttp://www.cryptix.org/products/cryptix31/index.htmlDSTCJCSIhttp://security.dstc.edu.au/projects/java/release3.htmlEntrust(R) TechnologiesEntrust/Toolkit Java Editionhttp://www.entrust.com/toolkit/java/index.htmForge ResearchForge Security Providerhttp://www.forge.com.au/products/crypto/index.htmlIAIKIAIK-JCEhttp://jcewww.iaik.tu-graz.ac.at/jce/jce.htmRSA Data Security, Inc.Crypto-Jhttp:// www.rsasecurity.com/products/bsafe/cryptoj.htmlNależy jednak zawsze zwracać uwagę na warunki licencjonowania, prawa eksportukodu, oraz dostarczaną funkcjonalność kodu.10-22
[ Pobierz całość w formacie PDF ] zanotowane.pldoc.pisz.plpdf.pisz.plmikr.xlx.pl
|