Prawdziwy świat kryptografii
- Najlepsze praktyki dotyczące korzystania z kryptografii
- Schematy i objaśnienia algorytmów kryptograficznych
Książka pomaga w zrozumieniu technik kryptograficznych stosowanych w popularnych narzędziach, strukturach i protokołach, dzięki czemu Czytelnik łatwiej będzie mógł dokonać właściwych wyborów zabezpieczeń dla swoich systemów i aplikacji. Publikacja nie skupia się na teorii, ale na aktualnych technikach kryptograficznych, które są potrzebne w codziennej pracy. Autor omawia elementy konstrukcyjne kryptografii, takie jak funkcje skrótu i
wymiana kluczy, oraz pokazuje, jak ich używać w ramach protokołów bezpieczeństwa i aplikacji.
Książka omawia też najnowocześniejsze rozwiązania, takie jak kryptowaluty, uwierzytelniana hasłem wymiana kluczy i
kryptografia postkwantowa. Wszystkie techniki są zilustrowane diagramami, rzeczywistymi przypadkami użycia i przykładami kodu, dzięki czemu można łatwo zobaczyć, jak zastosować je w praktyce.
To niezbędne źródło wiedzy dla wszystkich, którzy chcą pracować jako specjaliści ds. cyberbezpieczeństwa i programiści zajmujący się szyfrowaniem danych.
- Kategorie:
- Język wydania: polski
- ISBN: 978-83-01-22928-3
- ISBN druku: 978-83-01-22865-1
- Liczba stron: 440
-
Sposób dostarczenia produktu elektronicznegoProdukty elektroniczne takie jak Ebooki czy Audiobooki są udostępniane online po opłaceniu zamówienia kartą lub przelewem na stronie Twoje konto > Biblioteka.Pliki można pobrać zazwyczaj w ciągu kilku-kilkunastu minut po uzyskaniu poprawnej autoryzacji płatności, choć w przypadku niektórych publikacji elektronicznych czas oczekiwania może być nieco dłuższy.Sprzedaż terytorialna towarów elektronicznych jest regulowana wyłącznie ograniczeniami terytorialnymi licencji konkretnych produktów.
-
Ważne informacje techniczneMinimalne wymagania sprzętowe:procesor: architektura x86 1GHz lub odpowiedniki w pozostałych architekturachPamięć operacyjna: 512MBMonitor i karta graficzna: zgodny ze standardem XGA, minimalna rozdzielczość 1024x768 16bitDysk twardy: dowolny obsługujący system operacyjny z minimalnie 100MB wolnego miejscaMysz lub inny manipulator + klawiaturaKarta sieciowa/modem: umożliwiająca dostęp do sieci Internet z prędkością 512kb/sMinimalne wymagania oprogramowania:System Operacyjny: System MS Windows 95 i wyżej, Linux z X.ORG, MacOS 9 lub wyżej, najnowsze systemy mobilne: Android, iPhone, SymbianOS, Windows MobilePrzeglądarka internetowa: Internet Explorer 7 lub wyżej, Opera 9 i wyżej, FireFox 2 i wyżej, Chrome 1.0 i wyżej, Safari 5Przeglądarka z obsługą ciasteczek i włączoną obsługą JavaScriptZalecany plugin Flash Player w wersji 10.0 lub wyżej.Informacja o formatach plików:
- PDF - format polecany do czytania na laptopach oraz komputerach stacjonarnych.
- EPUB - format pliku, który umożliwia czytanie książek elektronicznych na urządzeniach z mniejszymi ekranami (np. e-czytnik lub smartfon), dając możliwość dopasowania tekstu do wielkości urządzenia i preferencji użytkownika.
- MOBI - format zapisu firmy Mobipocket, który można pobrać na dowolne urządzenie elektroniczne (np.e-czytnik Kindle) z zainstalowanym programem (np. MobiPocket Reader) pozwalającym czytać pliki MOBI.
- Audiobooki w formacie MP3 - format pliku, przeznaczony do odsłuchu nagrań audio.
Rodzaje zabezpieczeń plików:- Watermark - (znak wodny) to zaszyfrowana informacja o użytkowniku, który zakupił produkt. Dzięki temu łatwo jest zidentyfikować użytkownika, który rozpowszechnił produkt w sposób niezgodny z prawem. Ten rodzaj zabezpieczenia jest zdecydowanie bardziej przyjazny dla użytkownika, ponieważ aby otworzyć książkę zabezpieczoną Watermarkiem nie jest potrzebne konto Adobe ID oraz autoryzacja urządzenia.
- Brak zabezpieczenia - część oferowanych w naszym sklepie plików nie posiada zabezpieczeń. Zazwyczaj tego typu pliki można pobierać ograniczoną ilość razy, określaną przez dostawcę publikacji elektronicznych. W przypadku zbyt dużej ilości pobrań plików na stronie WWW pojawia się stosowny komunikat.
przedmowa xv podziękowania xix o książce xxi o autorze xxvii CZĘŚĆ I PRYMITYWY. SKŁADNIKI KRYPTOGRAFII 1 1. Wprowadzenie 3 1.1. W kryptografii chodzi o zabezpieczenie protokołów 4 1.2. Kryptografia symetryczna. Czym jest szyfrowanie symetryczne? 5 1.3. Zasada Kerckhoffsa: tylko klucz pozostaje tajny 7 1.4. Kryptografia asymetryczna. Dwa klucze są lepsze niż jeden 10 ■ O wymienianiu się kluczami albo jak uzyskać dostęp do wspólnego sekretu 11 ■ Szyfrowanie asymetryczne, nie mylić z symetrycznym 14 ■ Podpisy cyfrowe, zupełnie jak te tradycyjne 16 1.5. Kryptografia: klasyfikacje i abstrakcje 18 1.6. Kryptografia teoretyczna a prawdziwy świat kryptografii 20 1.7. Od teorii do praktyki. Każdy może pójść własną ścieżką 21 1.8. Słowo ostrzeżenia 26 2. Funkcje skrótu (funkcje haszujące) 28 2.1. Czym jest funkcja skrótu? 29 2.2. Właściwości zabezpieczeń funkcji skrótu 32 2.3. Uwarunkowania zabezpieczeń funkcji skrótu 34 2.4. Funkcje skrótu w praktyce 36 ■ Zobowiązania 36 ■ Integralność zasobów podrzędnych 36 ■ BitTorrent 37 ■ Tor 37 2.5. Znormalizowane funkcje skrótu 38 ■ Funkcja haszująca SHA-2 39 ■ Funkcja haszująca SHA-3 43 ■ SHAKE i cSHAKE. Dwie funkcje o rozszerzalnym wyjściu (XOF) 47 ■ Jak uniknąć wieloznacznego haszowania za pomocą TupleHash 48 2.6. Haszowanie haseł 50 3. Kody uwierzytelniania wiadomości 54 3.1. Ciasteczka bezstanowe – motywujący przykład dla MAC 55 3.2. Kod z przykładem 58 3.3. Właściwości zabezpieczeń MAC 59 ■ Fałszerstwo znacznika uwierzytelniania 59 ■ Długość znacznika uwierzytelniania 60 ■ Ataki powtórzeniowe 60 ■ Weryfikacja znaczników uwierzytelniania w stałym czasie 62 3.4. MAC w prawdziwym świecie 64 ■ Uwierzytelnianie wiadomości 64 ■ Wyprowadzanie kluczy 64 ■ Integralność ciasteczek 65 ■ Tablice mieszające 65 3.5. Kody uwierzytelniania wiadomości w praktyce 65 ■ HMAC, czyli MAC oparty na haszu 65 ■ KMAC, czyli MAC oparty na cSHAKE 67 3.6. SHA-2 i ataki przedłużenia długości 67 4. Szyfrowanie uwierzytelnione 71 4.1. Czym jest szyfr? 72 4.2. Szyfr blokowy AES 74 ■ Jaki poziom bezpieczeństwa zapewnia AES? 74 ■ Interfejs AES 75 ■ Wewnętrzna konstrukcja AES 76 4.3. Zaszyfrowany pingwin i tryb CBC 78 4.4. Na brak uwierzytelnienia – AES-CBC-HMAC 81 4.5. Konstrukcje typu „wszystko w jednym”. Szyfrowanie uwierzytelnione 83 ■ Czym jest szyfrowanie uwierzytelnione z powiązanymi danymi (AEAD)? 83 ■ Algorytm AEAD o nazwie AES-GCM 85 ■ ChaCha20-Poly1305 90 4.6. Inne rodzaje szyfrowania symetrycznego 94 ■ Opakowywanie klucza 94 ■ Szyfrowanie uwierzytelnione odporne na niepoprawne użycie nonce 95 ■ Szyfrowanie dysku 95 ■ Szyfrowanie baz danych 96 5. Wymiany klucza 98 5.1. Czym są wymiany klucza? 99 5.2. Wymiana klucza Diffiego-Hellmana (DH) 102 ■ Teoria grup 102 ■ Problem logarytmu dyskretnego. Fundament algorytmu Diffiego-Hellmana 107 ■ Normy algorytmu Diffiego-Hellmana 109 5.3. Wymiana kluczy przy użyciu protokołu Diffiego-Hellmana w przestrzeni krzywych eliptycznych 110 ■ Czym jest krzywa eliptyczna? 111 ■ Jak działa algorytm Diffiego-Hellmana oparty na krzywych eliptycznych? 114 ■ Normy dla algorytmu Diffiego-Hellmana w przestrzeni krzywych eliptycznych 116 5.4. Atak przeciwko małym podgrupom i inne czynniki związane z bezpieczeństwem 118 6. Szyfrowanie asymetryczne i szyfrowanie hybrydowe 123 6.1. Czym jest szyfrowanie asymetryczne? 124 6.2. Szyfrowanie asymetryczne i szyfrowanie hybrydowe w praktyce 126 ■ Wymiany klucza i kapsułkowanie klucza 127 ■ Szyfrowanie hybrydowe 128 6.3. Szyfrowanie asymetryczne przy użyciu RSA: złe i mniej złe 132 ■ Podręcznikowe RSA 132 ■ Dlaczego nie należy używać RSA PKCS#1 v1.5 137 ■ Szyfrowanie asymetryczne przy użyciu RSA-OAEP 139 6.4. Szyfrowanie hybrydowe przy użyciu ECIES 142 7. Podpisy i dowody z wiedzą zerową 145 7.1. Czym jest podpis? 146 ■ Jak w praktyce weryfikować podpisy 147 ■ Najważniejszy przypadek użycia podpisów, czyli uwierzytelnione wymiany klucza 148 ■ Rzeczywisty przypadek użycia. Infrastruktura klucza publicznego 149 7.2. Dowody z wiedzą zerową (ZKP). Pochodzenie podpisów 151 ■ Protokół identyfikacji Schnorra. Interaktywny dowód z wiedzą zerową 151 ■ Podpisy jako nieinteraktywne dowody z wiedzą zerową 154 7.3. Algorytmy podpisów, z których powinniśmy korzystać (lub nie) 156 ■ RSA PKCS#1 v1.5, czyli zła norma 157 ■ RSA-PSS. Lepsza norma 160 ■ Algorytm podpisu elektronicznego oparty na krzywych eliptycznych 161 ■ Algorytm podpisu cyfrowego oparty na krzywej Edwardsa 164 7.4. Subtelności schematów podpisów 168 ■ Ataki podstawieniowe na podpisy 168 ■ Deformowalność podpisu 169 8. Losowość i sekrety 172 8.1. Czym jest losowość? 173 8.2. Powolna losowość? Skorzystajmy z generatora liczb pseudolosowych (PRNG) 175 8.3. Uzyskiwanie losowości w praktyce 179 8.4. Generowanie losowości i czynniki związane z bezpieczeństwem 181 8.5. Publiczna losowość 184 8.6. Wyprowadzanie kluczy za pomocą HKDF 186 8.7. Zarządzanie kluczami i sekretami 190 8.8. Decentralizacja zaufania za pomocą kryptografii progowej 192 CZĘŚĆ II PROTOKOŁY, CZYLI PRZEPISY NA KRYPTOGRAFIĘ 197 9. Bezpieczny transport 199 9.1. Bezpieczne protokoły transportowe: SSL i TLS 199 ■ Od SSL do TLS 200 ■ TLS w praktyce 201 9.2. Jak działa protokół TLS? 203 ■ Handshake TLS 204 ■ Jak TLS 1.3 szyfruje dane aplikacji 218 9.3. Aktualny stan szyfrowania w sieci web 219 9.4. Inne bezpieczne protokoły transportowe 222 9.5. Framework protokołu Noise. Współczesna alternatywa dla TLS 222 ■ Wiele odcieni fazy handshake 223 ■ Handshake przy użyciu Noise 224 10. Szyfrowanie od końca do końca 227 10.1. Dlaczego szyfrowanie od końca do końca? 228 10.2. Niemożliwe do odnalezienia źródło zaufania 230 10.3. Porażka szyfrowanych e-maili 231 ■ PGP czy GPG? I jak to w ogóle działa? 232 ■ Skalowanie zaufania pomiędzy użytkownikami za pomocą sieci zaufania 235 ■ Odkrywanie kluczy to prawdziwy problem 236 ■ Jeśli nie PGP, to co? 238 10.4. Bezpieczne przesyłanie wiadomości. Nowoczesne spojrzenie na szyfrowanie od końca do końca w aplikacji Signal 239 ■ Bardziej przyjazny dla użytkownika niż WOT. Ufaj, ale weryfikuj 241 ■ X3DH. Handshake protokołu Signal 243 ■ Podwójna Zapadka. Protokół post-hand shake Signala 247 10.5. Stan szyfrowania od końca do końca 252 11. Uwierzytelnianie użytkownika 256 11.1. Uwierzytelnianie – kilka słów podsumowania 257 11.2. Uwierzytelnianie użytkownika, czyli jak pozbyć się haseł 259 ■ Jedno hasło, by rządzić wszystkimi. Pojedyncze logowanie (SSO) i menedżery haseł 261 ■ Nie chcecie widzieć haseł? Użyjcie asymetrycznej wymiany kluczy uwierzytelnianej hasłem 263 ■ Hasła jednorazowe to tak naprawdę nie hasła. Bezhasłowość przy użyciu kluczy symetrycznych 268 ■ Jak zastąpić hasła kluczami asymetrycznymi 271 11.3. Uwierzytelnianie wspomagane przez użytkownika – parowanie urządzeń wykorzystujące wsparcie człowieka 274 ■ Klucze wstępnie współdzielone 276 ■ Symetryczne uwierzytelnianie hasłem wymiany klucza przy użyciu CPace 278 ■ Czy naszą wymianę klucza zaatakował pośrednik? Po prostu sprawdźmy krótki ciąg uwierzytelniony (SAS) 279 12. Krypto jak w słowie „kryptowaluta”? 285 12.1. Wprowadzenie do algorytmów konsensusu tolerancyjnych na bizantyjskie błędy 286 ■ Problem odporności. Protokoły rozproszone przychodzą na ratunek 287 ■ Problem zaufania? Decentralizacja przychodzi z pomocą 288 ■ Problem skali. Sieci bezpozwoleniowe i odporne na cenzurę 290 12.2. Jak działa bitcoin? 292 ■ W jaki sposób bitcoin obsługuje salda użytkownika i transakcje 292 ■ Wydobywanie bitcoinów w cyfrowej złotej erze 294 ■ Jasny fork! Rozwiązywanie konfliktów wydobywczych 298 ■ Redukcja rozmiaru bloku za pomocą drzew Merkle 301 12.3. Wycieczka po świecie kryptowalut 303 ■ Zmienna wartość 303 ■ Latencja 303 ■ Rozmiar łańcucha bloków 304 ■ Poufność 304 ■ Wydajność energetyczna 304 12.4. DiemBFT. Tolerancyjny na bizantyjskie błędy protokół konsensusu 305 ■ Bezpieczeństwo i żywotność. Dwie własności protokołu konsensusu BFT 305 ■ Runda w protokole DiemBFT 306 ■ Ile nieuczciwości może tolerować protokół? 307 ■ Zasady głosowania DiemBFT 308 ■ Kiedy transakcje uważa się za sfinalizowane? 309 ■ Intuicje stojące za bezpieczeństwem DiemBFT 310 13. Kryptografia sprzętowa 314 13.1. Model napastnika we współczesnej kryptografii 315 13.2. Niezaufane środowiska. Sprzęcie, ratuj! 316 ■ Kryptografia białej skrzynki – zły pomysł 317 ■ Siedzą w naszych portfelach. Inteligentne karty i bezpieczne elementy 318 ■ Banki je uwielbiają. Sprzętowe moduły bezpieczeństwa 320 ■ Moduły zaufanej platformy (TPM). Przydatna normalizacja elementów bezpiecznych 323 ■ Poufne obliczenia z zaufanym środowiskiem wykonawczym 327 13.3. Które rozwiązanie będzie dobre dla mnie? 328 13.4. Kryptografia odporna na wycieki, czyli jak złagodzić ataki kanałem bocznym w oprogramowaniu 330 ■ Programowanie stałoczasowe 332 ■ Nie korzystaj z sekretu! Maskowanie 334 ■ A co z atakami usterek? 335 14. Kryptografia postkwantowa 338 14.1. Czym są komputery kwantowe i dlaczego straszą kryptografów? 339 ■ Mechanika kwantowa – studium rzeczy małych 340 ■ Od narodzin komputerów kwantowych po supremację kwantową 342 ■ Wpływ algorytmów Grovera i Shora na kryptografię 343 ■ Kryptografia postkwantowa, czyli jak się bronić przed komputerami kwantowymi 345 14.2. Podpisy oparte na haszach. Nie potrzeba niczego poza funkcją skrótu 346 ■ Podpisy jednorazowe (OTS) z podpisami Lamporta 346 ■ Mniejsze klucze i jednorazowe podpisy Winternitza 348 ■ Podpisy wielorazowe z XMSS oraz SPHINCS+ 349 14.3. Krótsze klucze i podpisy dzięki kryptografii opartej na kratach 353 ■ Czym jest krata? 353 ■ Uczenie się z błędami podstawą kryptografii? 355 ■ Kyber, czyli wymiana klucza oparta na kracie 356 ■ Dilithium – schemat podpisu oparty na kracie 359 14.4. Czy powinniśmy zacząć panikować? 360 15. Czy to już wszystko? Kryptografia następnej generacji 364 15.1. Im więcej, tym lepiej. Bezpieczne obliczenia wielostronne 365 ■ Przecięcie zbiorów prywatnych (PSI) 366 ■ MPC ogólnego przeznaczenia 367 ■ Stan MPC 370 15.2. W pełni homomorficzne szyfrowania i obietnica zaszyfrowanej chmury 370 ■ Przykład szyfrowania homomorficznego z szyfrowaniem RSA 371 ■ Różne typy szyfrowania homomorficznego 371 ■ Bootstrapping, klucz do w pełni homomorficznego szyfrowania 372 ■ Schemat FHE oparty na problemie uczenia się z błędami 374 ■ Gdzie się z tego korzysta? 376 15.3. Dowody z wiedzą zerową ogólnego przeznaczenia 377 ■ Jak działają schematy zk-SNARK 380 ■ Zobowiązania homomorficzne – ukrywamy części dowodu 381 ■ Parowania bilinearne – ulepszamy nasze zobowiązania homomorficzne 381 ■ Skąd się bierze zwięzłość? 382 ■ Od programów do wielomianów 383 ■ Programy są dla komputerów; nam potrzebne są układy arytmetyczne 384 ■ Układy arytmetyczne R1CS 384 ■ Od R1CS do wielomianu 385 ■ Trzeba dwojga, aby określić wartość wielomianu ukrytego w wykładniku 386 16. Kiedy i gdzie kryptografia zawodzi 389 16.1. Szukanie właściwego prymitywu kryptograficznego lub protokołu to nudna praca 390 16.2. W jaki sposób korzystam z prymitywu kryptograficznego lub protokołu? Uprzejme normy i formalna weryfikacja 392 16.3. Gdzie są dobre biblioteki? 395 16.4. Niewłaściwe wykorzystanie kryptografii. Programiści to wrogowie 396 16.5. Robicie to źle. Użyteczne zabezpieczenia 397 16.6. Kryptografia nie jest wyspą 399 16.7. Nasze obowiązki jako praktyków kryptografii. Dlaczego nie powinniśmy wdrażać własnej kryptografii 400 Dodatek. Odpowiedzi do ćwiczeń 404 Rozdział 2 404 Rozdział 3 405 Rozdział 6 405 Rozdział 7 406 Rozdział 8 406 Rozdział 9 406 Rozdział 10 407 Rozdział 11 407