
Kryptografia w Javie. Od podstaw
Cena: 67,00 zł
Stosuj algorytmy kryptograficzne w aplikacjach
- Poznaj architekturę interfejsów kryptograficznych Javy
- Zastosuj klucze symetryczne i asymetryczne
- Naucz się zarządzania certyfikatami w programach
W świecie, w którym najcenniejszym towarem jest informacja, kryptografia coraz bardziej zyskuje na znaczeniu. Cenne dane, przesyłane w sieci lub przechowywane w aplikacjach i bazach danych, muszą być chronione za pomocą skomplikowanych algorytmów szyfrowania i uwierzytelniania. Ponieważ próby włamań do serwerów internetowych zdarzają się regularnie, implementacja mechanizmów kryptograficznych w aplikacjach sieciowych i platformach handlu elektronicznego ma szczególnie wysoki priorytet. Java, wykorzystywana bardzo często do tworzenia takich właśnie rozwiązań, wyposażona została w zestaw interfejsów programistycznych (API), które pozwalają szybko i skutecznie wzbogacać aplikacje o obsługę kryptografii.
Książka "Kryptografia w Javie. Podstawy" to podręcznik przedstawiający na praktycznych przykładach narzędzia kryptograficzne Javy. Opisuje podstawowe zasady ich używania, ułatwia zrozumienie zależności między poszczególnymi interfejsami API i uczy, jak w razie potrzeby korzystać z gotowych rozwiązań, by oszczędzić czas. Daje wiedzę niezbędną do implementowania technik kryptograficznych w aplikacjach bez niepotrzebnego komplikowania kodu źródłowego.
- Architektura interfejsów JCA i JCE
- Szyfrowanie symetryczne
- Generowanie kluczy
- Stosowanie kluczy asymetrycznych
- Podpisy cyfrowe
- Obsługa certyfikatów
- Szyfrowanie poczty elektronicznej
Twórz bezpieczne aplikacje,
wykorzystując nowoczesne mechanizmy kryptograficzne.
O autorze (13)
Wstęp (15)
Rozdział 1. JCA i JCE (21)
- Podstawowa architektura (21)
- Podpisywanie dostawców (24)
- Pliki polityki ograniczeń (25)
- Instalacja plików polityki nieograniczających siły algorytmów (25)
- Rozwiązywanie innych problemów (27)
- Skąd wiadomo, że pliki dostarczone przez firmę Sun naprawdę działają tak, jak powinny? (28)
- Instalacja dostawcy Bouncy Castle (28)
- Instalacja poprzez konfigurację środowiska uruchomieniowego (28)
- Instalacja na etapie wykonania (31)
- Priorytety dostawców (31)
- Sprawdzanie możliwości dostawcy (33)
- Podsumowanie (34)
- Ćwiczenia (35)
Rozdział 2. Kryptografia z kluczem symetrycznym (37)
- Pierwszy przykład (38)
- Prosta klasa narzędziowa (38)
- Klasa SecretKeySpec (42)
- Klasa Cipher (42)
- Dopełnienie w symetrycznych szyfrach blokowych (44)
- Dopełnienie PKCS #5/PKCS #7 (44)
- Inne mechanizmy dopełnienia (47)
- Tryby szyfrowania w symetrycznych szyfrach blokowych (48)
- Tryb ECB (48)
- Tryb CBC (50)
- Słowo o obiektach parametrów szyfru (58)
- Klasa AlgorithmParameters (58)
- Tryb CTS - specjalna odmiana CBC (59)
- Tryby strumieniowe symetrycznych szyfrów blokowych (59)
- Symetryczne szyfry strumieniowe (63)
- Generowanie losowych kluczy (65)
- Interfejs Key (67)
- Klasa KeyGenerator (67)
- Szyfrowanie z hasłem (68)
- Podstawowe PBE (69)
- PBE w JCE (70)
- Opakowywanie klucza (75)
- Szyfrowanie operacji wejścia-wyjścia (78)
- Podsumowanie (80)
- Ćwiczenia (81)
Rozdział 3. Skróty wiadomości, MAC i HMAC (83)
- Klasa narzędziowa (84)
- Problem modyfikacji wiadomości (86)
- Skróty wiadomości (88)
- Klasa MessageDigest (90)
- Modyfikacja skrótu (92)
- HMAC - MAC oparty na skrócie (94)
- Klasa Mac (97)
- Kody MAC oparte na szyfrach symetrycznych (98)
- Funkcje skrótu jako źródło danych pseudolosowych (100)
- Generowanie kluczy PBE (100)
- Generowanie maski (103)
- Operacje wejścia-wyjścia ze skrótami kryptograficznymi (105)
- Podsumowanie (107)
- Ćwiczenia (108)
Rozdział 4. Kryptografia asymetryczna (109)
- Klasa narzędziowa (110)
- Interfejsy PublicKey i PrivateKey (111)
- Algorytm RSA (111)
- Klasa KeyFactory (114)
- Klasa RSAPublicKeySpec i interfejs RSAPublicKey (115)
- Klasa RSAPrivateKeySpec i interfejs RSAPrivateKey (115)
- Tworzenie losowych kluczy RSA (115)
- Przyspieszanie pracy RSA (118)
- Mechanizmy dopełniania RSA (120)
- Opakowywanie kluczy RSA (128)
- Wymiana kluczy tajnych (130)
- Uzgadnianie klucza (133)
- Algorytm Diffiego-Hellmana (133)
- Diffie-Hellman bazujący na krzywych eliptycznych (137)
- Diffie-Hellman z wieloma stronami (142)
- Algorytm El Gamala (144)
- Klasa AlgorithmParameterGenerator (146)
- Podpisy cyfrowe (148)
- Klasa Signature (149)
- Algorytm podpisu cyfrowego DSA (150)
- Algorytmy podpisu oparte na RSA (156)
- Podsumowanie (160)
- Ćwiczenia (161)
Rozdział 5. Opis obiektów kryptograficznych w notacji ASN.1 (163)
- Czym jest ASN.1? (163)
- Klasa narzędziowa (164)
- Podstawowa składnia ASN.1 (165)
- Składnia komentarzy (165)
- Identyfikatory obiektów (165)
- Struktura modułu (166)
- Typy danych w ASN.1 (168)
- Typy proste (169)
- Typy ciągów bitowych (170)
- Typy ciągów znakowych (170)
- Typy strukturalizowane (172)
- Adnotacje typów (172)
- Znaczniki (173)
- Typ CHOICE (177)
- Typ CLASS (178)
- Reguły kodowania (179)
- Kodowanie BER (179)
- Kodowanie DER (181)
- API ASN.1 w Bouncy Castle (182)
- Tworzenie podstawowych typów ASN.1 (183)
- Obsługa znaczników (185)
- Definiowanie własnych obiektów (186)
- Analiza nieznanego zakodowanego obiektu (192)
- Prawdziwe przykłady wykorzystania ASN.1 w Javie (194)
- Podstawowe struktury ASN.1 (194)
- Kodowanie IV (195)
- Budowa podpisu PKCS #1 V1.5 (196)
- Kodowanie parametrów podpisu PSS (199)
- Kodowanie kluczy publicznych i prywatnych (201)
- Podsumowanie (212)
- Ćwiczenia (213)
Rozdział 6. Nazwy wyróżniające i certyfikaty (215)
- Klasa narzędziowa (216)
- Nazwy wyróżniające (216)
- Klasa X500Principal (218)
- Certyfikaty klucza publicznego (219)
- Klasa Certificate (220)
- Certyfikaty X.509 (221)
- Klasa X509Certificate (221)
- Rozszerzenia X.509 (229)
- Interfejs X509Extension (230)
- Rozszerzenia obsługiwane bezpośrednio przez klasę X509Certificate (231)
- Odczyt i zapis certyfikatów (238)
- Klasa CertificateFactory (238)
- Żądania certyfikacyjne (242)
- Tworzenie prostego centrum certyfikacji (248)
- Ścieżki i składy certyfikatów (253)
- Klasa CertPath (254)
- Klasa CertStore (256)
- Klasa X509CertSelector (257)
- Podsumowanie (259)
- Ćwiczenia (260)
Rozdział 7. Unieważnianie certyfikatów i walidacja ścieżek (261)
- Klasa narzędziowa (262)
- Listy unieważnionych certyfikatów (265)
- Klasa CRL (265)
- Listy unieważnionych certyfikatów X.509 (266)
- Klasa X509CRL (267)
- Klasa X509CRLEntry (271)
- Rozszerzenia wpisów list CRL X.509 (272)
- Rozszerzenia list CRL X.509 (273)
- Pobieranie list CRL za pomocą klasy CertificateFactory (278)
- Klasa X509CRLSelector (281)
- Protokół OCSP - weryfikacja statusu certyfikatów w czasie rzeczywistym (283)
- Klasa CertificateID (284)
- Klasa OCSPReq (285)
- Rozszerzenia żądań OCSP (288)
- Klasa OCSPResp (292)
- Klasa BasicOCSPResp (293)
- Rozszerzenia odpowiedzi OCSP (295)
- Walidacja ścieżek certyfikatów (301)
- Klasa TrustAnchor (301)
- Klasa PKIXParameters (302)
- Klasa CertPathValidator (304)
- Klasa PKIXCertPathValidatorResult (305)
- Klasa PKIXCertPathChecker (308)
- Budowanie poprawnej ścieżki na podstawie składu CertStore (313)
- Klasa CertPathBuilder (313)
- PKIXBuilderParameters (313)
- Podsumowanie (316)
- Ćwiczenia (317)
Rozdział 8. Zarządzanie kluczami i certyfikatami (319)
- Klasa narzędziowa (320)
- Klasa KeyStore (321)
- Rodzaje repozytoriów (322)
- Podstawowe API klasy KeyStore (323)
- Zagnieżdżone klasy i interfejsy klasy KeyStore (330)
- Interfejs KeyStore.ProtectionParameter (330)
- Interfejs KeyStore.Entry (331)
- Klasa KeyStore.Builder (335)
- Interfejs KeyStore.LoadStoreParameter (338)
- Format PKCS #12 (338)
- Korzystanie z plików PKCS #12 w API KeyStore (341)
- Program keytool (345)
- Polecenia programu keytool (345)
- Repozytorium certyfikatów maszyny wirtualnej (349)
- Eksperymentowanie z programem keytool (349)
- Podpisywanie archiwów JAR i pliki polityki bezpieczeństwa Javy (353)
- Narzędzie jarsigner (354)
- Pliki polityki bezpieczeństwa Javy (354)
- Podsumowanie (355)
- Ćwiczenia (356)
Rozdział 9. CMS i S/MIME (357)
- Klasa narzędziowa (357)
- Standard CMS (360)
- Podstawy CMS (361)
- Typ Data (361)
- Interfejs CMSProcessable (362)
- Podpisane dane CMS (363)
- Struktura ASN.1 (363)
- Klasa SignerInformation (368)
- Klasa SignerInformationStore (370)
- Klasa CMSSignedData (370)
- Koperty cyfrowe CMS (376)
- Struktura ASN.1 (376)
- Klasa RecipientInformation (379)
- Klasa KeyTransRecipientInformation (380)
- Klasa RecipientInformationStore (381)
- Klasa CMSEnvelopedData (381)
- Klasa KEKRecipientInformation (386)
- Kompresja danych w CMS (389)
- Struktura ASN.1 (389)
- Klasa CMSCompressedData (390)
- Protokół S/MIME (391)
- Klasa CMSProcessableBodyPart (392)
- Klasa SMIMEUtil (392)
- Podpisane wiadomości S/MIME (393)
- Klasa CMSProcessableBodyPartInbound (394)
- Klasa CMSProcessableBodyPartOutbound (394)
- Klasa SMIMESigned (394)
- Koperty cyfrowe S/MIME (399)
- Klasa SMIMEEnveloped (400)
- Łączenie podpisywania z szyfrowaniem (402)
- Kompresowane wiadomości S/MIME (407)
- Klasa SMIMECompressed (407)
- Podsumowanie (409)
- Ćwiczenia (409)
Rozdział 10. Protokoły SSL i TLS (411)
- Protokoły SSL i TLS (411)
- Klasa narzędziowa (413)
- Prosty klient i serwer SSL (415)
- Klasa SSLSocketFactory (416)
- Klasa SSLServerSocketFactory (417)
- Klasa SSLSocket (417)
- Klasa SSLServerSocket (419)
- Interfejs HandshakeCompletedListener (424)
- Uwierzytelnianie klienta (425)
- Konfiguracja klasy SSLServerSocket (426)
- Konfiguracja klasy SSLSocket w trybie serwerowym (426)
- Klasa SSLContext (427)
- Klasa KeyManagerFactory (429)
- Klasa TrustManagerFactory (434)
- Zarządzanie danymi sesji SSL (437)
- Interfejs SSLSession (438)
- Obsługa protokołu HTTPS (443)
- Klasa HttpsURLConnection (444)
- Interfejs HostnameVerifier (446)
- Podsumowanie (451)
- Ćwiczenia (451)
Dodatek A Rozwiązania ćwiczeń (453)
- Rozwiązania do rozdziału 1. (453)
- Rozwiązania do rozdziału 2. (454)
- Rozwiązania do rozdziału 3. (454)
- Rozwiązania do rozdziału 4. (455)
- Rozwiązania do rozdziału 5. (456)
- Rozwiązania do rozdziału 6. (458)
- Rozwiązania do rozdziału 7. (459)
- Rozwiązania do rozdziału 8. (460)
- Rozwiązania do rozdziału 9. (463)
- Rozwiązania do rozdziału 10. (466)
Dodatek B Algorytmy obsługiwane przez dostawcę Bouncy Castle (467)
- Szyfry asymetryczne (467)
- Walidacja ścieżek certyfikatów (467)
- Algorytmy uzgadniania klucza (468)
- Repozytoria kluczy i certyfikatów (468)
- Algorytmy MAC (468)
- Algorytmy podpisu (468)
- Skróty wiadomości (468)
- Symetryczne szyfry blokowe (469)
- Symetryczne szyfry strumieniowe (470)
Dodatek C Krzywe eliptyczne w Bouncy Castle (471)
- Interfejsy obsługi krzywych eliptycznych (471)
- Interfejs ECKey (472)
- Interfejs ECPrivateKey (472)
- Interfejs ECPublicKey (472)
- Interfejs ECPointEncoder (472)
- Klasy obsługi krzywych eliptycznych (472)
- Klasa ECNamedCurveParameterSpec (473)
- Klasa ECNamedCurveSpec (473)
- Klasa ECParameterSpec (473)
- Klasa ECPrivateKeySpec (474)
- Klasa ECPublicKeySpec (474)
Dodatek D Bibliografia i dodatkowe zasoby (475)
- Standardy ASN.1 (475)
- Strony grup roboczych IETF (476)
- Publikacje NIST (476)
- Standardy PKCS (477)
- Dokumenty RFC (477)
- Inne przydatne standardy (479)
- Przydatna literatura (479)
- Przydatne adresy internetowe (479)
Skorowidz (481)







7 zapytań |
0,01477sek.