helion
 
 
 
Kryptografia w Javie. Od podstaw

Kryptografia w Javie. Od podstaw

Tytuł oryginału: Beginning Cryptography with Java

Cena: 67,00 zł

Autor:

David Hook

Tłumacz:

Zbigniew Banach

Data wydania: 10 maj 2006
Okładka: twarda
Format: B5
Stron: 512
ISBN: 83-246-0277-1
Dodatek: Brak
Fragment książki w formacie PDF

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)

Komentarze:

Brak komentarzy

Imię/Nick:

Adres email:

Strona WWW:

Treść Komentarza:

  



Perl. Ćwiczenia

Perl. Ćwiczenia

Cena: 29,00 zł

Czytaj więcej o książce
Kup w Helion.pl