Cyber Security Academy · Lekcja

Podpisywanie DKIM

Kryptograficzne podpisywanie wiadomości

Lekcja 3 z 413 kroki

Podpisywanie DKIM to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 3 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 Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Co zapewnia DKIM

DKIM (DomainKeys Identified Mail) dołącza podpis kryptograficzny do wychodzącej wiadomości e-mail. Odbiorca może zweryfikować ten podpis, aby potwierdzić dwie rzeczy:

  • Wiadomość została rzeczywiście autoryzowana przez domenę podpisującą
  • Podpisana treść nie została zmieniona podczas przesyłania

Podczas gdy SPF autoryzuje serwery, DKIM uwierzytelnia samą wiadomość, a podpis pozostaje ważny mimo przekazywania.

Podstawy kryptografii klucza publicznego

DKIM opiera się na kryptografii asymetrycznej. Właściciel domeny posiada parę kluczy:

  • Klucz prywatny pozostaje tajny na serwerze pocztowym nadawcy i służy do podpisywania
  • Klucz publiczny jest publikowany w DNS i służy każdemu do weryfikowania

Ponieważ tylko posiadacz klucza prywatnego może utworzyć prawidłowy podpis, pomyślna weryfikacja dowodzi, że wiadomość pochodzi od uprawnionej domeny.

Proces podpisywania

Gdy serwer nadawcy wysyła wiadomość, oblicza podpis na podstawie wybranych nagłówków i treści, a następnie dodaje nagłówek DKIM-Signature.

Steps on the sender side:
1. Select headers to sign (From, Subject, Date, ...)
2. Hash the message body
3. Build the DKIM-Signature header with those fields
4. Sign the hash with the private key
5. Attach the signature to the outgoing message

Budowa nagłówka DKIM-Signature

Nagłówek DKIM-Signature zawiera parametry potrzebne odbiorcy do weryfikacji:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=company.com;        domain that signed
  s=mail2024;           selector (which key)
  h=from:subject:date;  signed headers
  bh=base64bodyhash;    body hash
  b=base64signature     the signature itself

Selektor i klucz publiczny w DNS

Selektor (tag s=) informuje odbiorców, który klucz publiczny należy pobrać. Klucz znajduje się pod przewidywalnym adresem DNS:

Location:  <selector>._domainkey.<domain>

Example DNS TXT record:
mail2024._domainkey.company.com.  IN  TXT \
  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."

  p = the base64-encoded public key

Proces weryfikacji

Po otrzymaniu wiadomości serwer weryfikujący odtwarza ten proces w odwrotnej kolejności:

  • Odczytuje domenę d= i selektor s= z nagłówka DKIM-Signature
  • Pobiera klucz publiczny z selector._domainkey.domain w DNS
  • Ponownie oblicza skrót treści i skrót nagłówka
  • Używa klucza publicznego do sprawdzenia, czy podpis jest zgodny

Jeśli podpis jest prawidłowy, weryfikacja DKIM kończy się powodzeniem. Jeśli wiadomość została zmodyfikowana lub podpisano ją niewłaściwym kluczem, weryfikacja kończy się niepowodzeniem.

Skrót treści wykrywa modyfikacje

Pole bh (skrót treści) sprawia, że modyfikacje można wykryć. Nadawca oblicza skrót treści i umieszcza go w podpisywanych danych.

Jeśli ktokolwiek zmieni treść wiadomości podczas przesyłania, ponownie obliczony skrót odbiorcy nie będzie zgodny z podpisanym bh, a weryfikacja zakończy się niepowodzeniem. To właśnie zapewnia DKIM integralność, a nie tylko uwierzytelnianie pochodzenia.

Kanonikalizacja

Serwery pocztowe po drodze często wprowadzają drobne, nieszkodliwe zmiany, ponownie zawijając wiersze lub modyfikując odstępy. Aby zapobiec unieważnieniu prawidłowych podpisów z tego powodu, DKIM używa kanonikalizacji (tagu c=).

  • simple — restrykcyjny; niemal każda zmiana unieważnia podpis
  • relaxed — toleruje zmiany odstępów i wielkości liter w nagłówkach

Większość wdrożeń korzysta z relaxed/relaxed, aby zapewnić niezawodność w zróżnicowanej infrastrukturze pocztowej.

Selektory umożliwiają rotację kluczy

Selektory to nie tylko etykiety — umożliwiają bezpieczną rotację kluczy. Należy okresowo wymieniać klucze DKIM, aby ograniczyć skutki ich wycieku.

Proces rotacji:

  • Wygenerować nową parę kluczy z nowym selektorem, np. mail2025
  • Opublikować nowy klucz publiczny w DNS
  • Przełączyć podpisywanie na nowy selektor
  • Pozostawić stary selektor w DNS do czasu dostarczenia wiadomości będących w drodze, a następnie go usunąć

Użycie świeżego selektora zapobiega powstaniu luki, w której nie można zweryfikować podpisów.

DKIM działa mimo przekazywania wiadomości

W przeciwieństwie do SPF, DKIM działa mimo przekazywania wiadomości. Podpis jest przesyłany wraz z wiadomością, więc dopóki podpisane nagłówki i treść nie zostaną zmienione, przekazana wiadomość nadal przejdzie weryfikację.

Doskonale uzupełnia to słabość SPF. Gdy wiadomość jest przekazywana, SPF może zakończyć się niepowodzeniem, ponieważ zmienił się adres IP nawiązujący połączenie, ale DKIM nadal może przejść, dzięki czemu DMARC może zaakceptować prawidłową wiadomość.

Ograniczenia DKIM

DKIM jest skuteczny, ale sam w sobie nie zapewnia pełnej ochrony:

  • Dowodzi, że domena podpisała wiadomość, ale nie wymusza, aby domena podpisująca odpowiadała widocznemu nagłówkowi From — właśnie na tym polega zgodność DMARC
  • Atakujący może podpisać wiadomość prawidłowym kluczem DKIM własnej domeny
  • Ujawniony klucz prywatny pozwala atakującemu tworzyć prawidłowe podpisy do czasu wycofania klucza w ramach rotacji

DKIM należy łączyć z DMARC, aby zapewnić skuteczną ochronę przed podszywaniem się.

Szybki test

Sprawdź swoją wiedzę na temat DKIM.

Podsumowanie

Nauczyli się Państwo, jak DKIM podpisuje wiadomości:

  • DKIM dołącza podpis kryptograficzny potwierdzający pochodzenie i integralność
  • Klucz prywatny służy do podpisywania na serwerze, a klucz publiczny jest publikowany w DNS pod selektorem
  • Skrót treści wykrywa modyfikacje, a kanonikalizacja toleruje nieszkodliwe zmiany
  • Selektory umożliwiają bezpieczną rotację kluczy, a DKIM działa mimo przekazywania wiadomości, w przypadku którego SPF kończy się niepowodzeniem
  • DKIM nadal wymaga zgodności DMARC, aby powiązać podpis z widocznym nagłówkiem From

Następnie połączą Państwo SPF i DKIM za pomocą zasad DMARC oraz raportowania.

Bezpłatny start

Ucz się Cyber Security Academy dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
76
Lekcje
303

Często zadawane pytania

Czy lekcja „Podpisywanie DKIM” jest bezpłatna?

Tak — pełny tekst „Podpisywanie DKIM” 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 Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Podpisywanie DKIM”?

Kryptograficzne podpisywanie wiadomości Ćwiczysz Cyber Security 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ąć Cyber Security Academy?

Nie wymagamy żadnego doświadczenia. Cyber Security 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 3 z 4.

Ile czasu zajmuje lekcja „Podpisywanie DKIM”?

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 Cyber Security Academy?

Tak. Każda lekcja Cyber Security 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. Jak działa spoofing poczty elektronicznej
  2. Rekordy SPF
  3. Podpisywanie DKIM
  4. Polityka i raportowanie DMARC
← Powrót do Cyber Security Academy