0Pricing
Cryptology Academy · Lekcja

Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera

Wyjaśnić adaptacyjne ataki z wybranym szyfrogramem na PKCS#1 v1.5

Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Dopełnianie PKCS#1 v1.5 było dominującym standardem dopełniania RSA przez 20 lat. W 1998 roku Daniel Bleichenbacher wykazał, że jest podatne na adaptacyjny atak z wybranym szyfrogramem.

Struktura PKCS#1 v1.5

Format: 0x00 0x02 [random non-zero bytes] 0x00 [message] Prefiks 0x00 0x02 oznacza dopełnianie używane podczas szyfrowania (w przeciwieństwie do 0x00 0x01 używanego podczas podpisywania). Losowe bajty zapobiegają deterministyczności i nie mogą mieć wartości zero.

Dlaczego używano PKCS#1 v1.5

PKCS#1 v1.5 został zaprojektowany przez RSA Security w 1993 roku, na długo przed powstaniem dowodów bezpieczeństwa IND-CCA2. Wprowadził losowość i sprawdzanie struktury. Od 1995 roku był szeroko wdrażany w SSL/TLS.

Atak Bleichenbachera

Bleichenbacher (1998): jeśli serwer ujawnia, czy deszyfrowanie RSA daje prawidłowe dopełnienie PKCS#1 v1.5 (za pośrednictwem komunikatu o błędzie lub czasu wykonania), atakujący może odszyfrować dowolną wartość zaszyfrowaną za pomocą RSA, wykonując około miliona zapytań.

Definicja wyroczni

„Wyrocznia dopełniania” to dowolny kanał boczny, który rozróżnia „prawidłowe dopełnienie” od „nieprawidłowego dopełnienia”. Nawet niewielka różnica czasu wykonania lub inny komunikat o błędzie tworzy wyrocznię możliwą do wykorzystania.

Mechanizm ataku

Atakujący mnoży docelowy szyfrogram C przez s^e mod n i wysyła zmodyfikowane C×s^e. Jeśli serwer odpowie „prawidłowe dopełnienie”, oznacza to, że s zostało dobrane poprawnie. Powtarzanie tej operacji zawęża możliwy zakres tekstu jawnego, aż do odzyskania M.

Atak DROWN (2016)

Atak DROWN wykorzystywał Bleichenbachera za pośrednictwem SSLv2. Nowoczesne serwery TLS współdzielące klucz z dowolnym serwerem SSLv2 były podatne na atak. Odszyfrowywano wymiany kluczy RSA nowoczesnego TLS, używając SSLv2 jako wyroczni. Dotyczyło to 33% serwerów HTTPS.

Atak ROBOT (2017)

ROBOT (Return Of Bleichenbacher's Oracle Threat) ponownie ujawnił wyrocznie czasowe w 7 z 10 najpopularniejszych implementacji TLS, w tym Cisco, F5 i Radware. Atak Bleichenbachera wciąż jest możliwy, ponieważ implementacje są trudne do wykonania poprawnie.

Deszyfrowanie RSA w stałym czasie

Środki ochrony: zawsze kontynuuj deszyfrowanie, niezależnie od prawidłowości dopełnienia; w przypadku nieprawidłowego dopełnienia zwracaj identyczną odpowiedź. Używaj kodu działającego w stałym czasie, aby zapobiegać różnicom czasu wykonania. Poprawna implementacja jest trudna.

Dlaczego OAEP zastąpiło v1.5

OAEP zawiera jednokierunkową funkcję skrótu z zapadką, która pozwala dowieść bezpieczeństwa IND-CCA2 (odporności na wybrane szyfrogramy). Nawet przy obecności wyroczni dopełniania losowa struktura OAEP sprawia, że zapytania do wyroczni nie dostarczają informacji.

Systemy starszego typu nadal używają v1.5

Mimo istnienia OAEP PKCS#1 v1.5 nadal występuje w starszych systemach płatniczych, starszych aplikacjach Java i niektórych implementacjach PKI. TLS 1.3 całkowicie usunął wymianę kluczy RSA, eliminując tę powierzchnię ataku.

Szybkie sprawdzenie

Czym jest „wyrocznia dopełniania” w kontekście ataku Bleichenbachera?

Podsumowanie

Atak Bleichenbachera jest przełomowym przykładem praktycznej kryptoanalizy. Następnie omówimy OAEP — dopełnianie z bezpieczeństwem popartym dowodem, które zastępuje v1.5.

Często zadawane pytania

Czy lekcja „Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera” jest bezpłatna?

Tak — pełny tekst „Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera”?

Wyjaśnić adaptacyjne ataki z wybranym szyfrogramem na PKCS#1 v1.5 Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. RSA w wersji podręcznikowej i powody jego niebezpieczeństwa
  2. Dopełnianie PKCS#1 v1.5 i atak Bleichenbachera
  3. OAEP: optymalne dopełnianie szyfrowania asymetrycznego
  4. RSA-PSS do podpisów cyfrowych
← Powrót do Cryptology Academy