CompTIA Security+ SY0-701: Digital signatures (PL)

vilya.pl 1 dzień temu
Źródło: pixabay.com

Artykuł jest częścią serii opracowań zagadnień obowiązujących na egzaminie CompTIA Security+ SY0-701. Zapisz się na newsletter, jeżeli nie chcesz przegapić kolejnych publikacji.

Podpis cyfrowy (ang. digital signature) to mechanizm bazujący na szyfrowaniu asymetrycznym, wykorzystujący matematyczną relację pomiędzy kluczem publicznym (ang. public key) i prywatnym (ang. private key), a jego celem jest zagwarantowanie niezmienności (integrity) oraz niezaprzeczalności (non-repudiation) podczas komunikacji. Innymi słowy: zapewnia, iż wiadomość pochodzi od domniemanego nadawcy i nie została w żaden sposób naruszona (intencjonalnie bądź przypadkowo) podczas transmisji danych.

Podpis cyfrowy nie gwarantuje poufności (ang. confidentiality). jeżeli nadawca chce wysłać tajny komunikat, używa publicznego klucza odbiorcy do zaszyfrowania całej wiadomości. Odbiorca, po jej otrzymaniu, może odszyfrować treść dzięki swojego klucza prywatnego.

W przypadku podpisów cyfrowych działa to trochę inaczej: nadawca używa swojego klucza prywatnego do zaszyfrowania skrótu (digest; hash) oryginalnej wiadomości. Jest to nic innego jak podpis cyfrowy, dołączany do przesyłanego komunikatu, który może być wysłany w postaci jawnej. Odbiorca najpierw uzyskuje skrót poprzez odszyfrowanie otrzymanego podpisu dzięki klucza publicznego nadawcy. Następnie sam generuje skrót otrzymanej wiadomości, używając tego samego algorytmu hashującego i sprawdza, czy dwa skróty są identyczne.

Uproszczony przykład:

  1. Nadawca chce wysłać istotny komunikat o treści: Do kogo należy czarna Alfa Romeo, która blokuje wjazd dla mojej fury?
  2. Najpierw liczony jest hash (można spotkać się również z terminem: digest) powyższej wiadomości, który może wyglądać następująco: 202143dc887c251745bd7e8a5677b8603b52eb40b729192a86ed9dd3425c19bf (SHA256).
  3. Hash jest następnie szyfrowany z użyciem klucza prywatnego nadawcy.
  4. Do odbiorcy wysyłana jest oryginalna wiadomość wraz z dołączonym podpisem (zaszyfrowanym skrótem).
  5. Odbiorca odszyfrowuje dołączony podpis dzięki klucza publicznego nadawcy, który (jak sama nazwa wskazuje) jest ogólnodostępny. W wyniku powinien otrzymać hash: 202143dc887c251745bd7e8a5677b8603b52eb40b729192a86ed9dd3425c19bf.
  6. Aby stwierdzić autentyczność otrzymanego komunikatu, odbiorca powinien ponownie wyliczyć skrót z otrzymanej wiadomości, używając tego samego algorytmu (w przykładzie jest to SHA256). jeżeli wartości obu skrótów są identyczne, mamy pewność, iż wiadomość nie została w żaden sposób naruszona i pochodzi od właściciela klucza publicznego.

Podpisy cyfrowe znajdują zastosowanie nie tylko w komunikacji pomiędzy stronami, ale również do podpisywania kodu. Dzięki temu mamy pewność, iż aktualizacja systemu (patch), którą chcemy zainstalować, pochodzi z zaufanego źródła.

Do potwierdzenia spójności oraz uwierzytelnienia (ang. authentication) wiadomości można jeszcze wykorzystać mechanizm MAC (Message Authentication Code), który w odróżnieniu od pełnoprawnych podpisów używa współdzielonego klucza prywatnego (ang. shared private key) do utworzenia znacznika MAC. Mechanizm ten jest trochę wydajniejszy ze względu na wykorzystanie szyfrowania symetrycznego, jednakże nie gwarantuje niezaprzeczalności. ponieważ każdy, kto jest w posiadaniu klucz prywatnego może wygenerować prawidłowy kod MAC.

HMAC (Hash-Based Message Authentication Code) jest wyspecjalizowaną techniką nadawania sygnatury MAC. Działa na podobnej zasadzie, jednakże może różnić się sposobem obliczania znacznika. Jak sama nazwa wskazuje, mechanizm HMAC używa w tym celu tylko kryptograficznej funkcji skrótu, gdzie w przypadku MAC można wykorzystać jeszcze m.in. symetryczne szyfrowanie blokowe (w skrócie: MAC jest bardziej ogólnym terminem).

Materiały źródłowe

Idź do oryginalnego materiału