Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC
Wdrażaj i weryfikuj zasady Sender Policy Framework, DomainKeys Identified Mail i DMARC, które zapobiegają podszywaniu się pod domenę oraz phishingowi.
Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC to bezpłatna lekcja Security+ Academy na CoddyKit. To lekcja 1 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 Security+ Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Security+ Academy zawiera 4 lekcji w sumie.
Problem podszywania się pod nadawcę wiadomości e-mail
Podstawowy protokół SMTP, zaprojektowany w latach 70. XX wieku, nie ma wbudowanego uwierzytelniania nadawcy. Dowolny serwer pocztowy może podawać się za nadawcę wiadomości z dowolnej domeny — technika ta nosi nazwę spoofingu poczty e-mail. Atakujący wykorzystują ją do wysyłania wiadomości phishingowych, które wyglądają tak, jakby pochodziły od legalnych organizacji (banku, dyrektora firmy lub znanego dostawcy). Aby rozwiązać ten problem, opracowano trzy standardy uwierzytelniania poczty e-mail oparte na DNS: SPF, DKIM i DMARC. Każdy z nich dotyczy innego aspektu problemu podszywania się, a najlepsze rezultaty daje ich wspólne wdrożenie.
Sender Policy Framework (SPF)
SPF to rekord DNS TXT określający, które serwery pocztowe są upoważnione do wysyłania wiadomości w imieniu danej domeny. Gdy serwer odbierający otrzyma wiadomość rzekomo pochodzącą z domeny example.com, wyszukuje rekord SPF dla example.com i sprawdza, czy adres IP serwera wysyłającego znajduje się na liście. Jeśli adres IP nie jest upoważniony, wiadomość może zostać oznaczona jako spam lub odrzucona. SPF sprawdza adres nadawcy w kopercie (polecenie SMTP MAIL FROM), a nie widoczny dla użytkownika nagłówek From.
# SPF DNS TXT record for example.com
# Authorize Google Workspace + SendGrid + company IP
example.com. TXT 'v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.10 -all'
# Mechanism meanings:
# include: authorize another domain's SPF record
# ip4: authorize specific IPv4 address/range
# ip6: authorize specific IPv6 address
# -all FAIL (reject) mail from non-listed sources
# ~all SOFTFAIL (accept but mark as spam)
# ?all NEUTRAL (no policy stated)Ograniczenia SPF
SPF ma dwa istotne ograniczenia. Po pierwsze, przekazywanie wiadomości psuje SPF: gdy wiadomość e-mail jest przekazywana dalej, adres IP serwera przekazującego nie znajduje się w rekordzie SPF pierwotnej domeny, co powoduje niepowodzenie kontroli SPF w przypadku prawidłowo przekazanej wiadomości. Po drugie, SPF uwierzytelnia wyłącznie adres nadawcy w kopercie (niewidoczny dla użytkownika), a nie widoczny w klientach pocztowych nagłówek From. Atakujący nadal mogą podszyć się pod widoczny nagłówek From, używając jednocześnie adresu nadawcy w kopercie, dla którego kontrola SPF zakończy się powodzeniem — dlatego samo SPF jest niewystarczające. Te luki uzupełniają DKIM i DMARC.
DomainKeys Identified Mail (DKIM)
DKIM dodaje do wysyłanych wiadomości e-mail podpis kryptograficzny. Serwer pocztowy nadawcy używa klucza prywatnego do podpisania określonych nagłówków wiadomości i jej treści, dodając nagłówek DKIM-Signature. Klucz publiczny jest publikowany jako rekord DNS TXT w subdomenie selektora. Serwery odbierające pobierają klucz publiczny i weryfikują podpis, potwierdzając, że wiadomość nie została zmodyfikowana podczas przesyłania oraz że pochodzi z serwera mającego dostęp do klucza prywatnego. W przeciwieństwie do SPF podpisy DKIM zachowują ważność po przekazaniu wiadomości, ponieważ są przenoszone w jej nagłówkach.
# DKIM DNS TXT record (selector: 'google')
google._domainkey.example.com. TXT \
'v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...'
# DKIM-Signature header in email:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com;
s=google; h=from:to:subject:date;
bh=<body_hash>; b=<signature>
# Verification:
# 1. Extract 'b=' (signature)
# 2. Fetch public key at google._domainkey.example.com
# 3. Verify signature over 'h=' headers + body hashSelektory DKIM i rotacja kluczy
DKIM używa selektorów, aby umożliwić jednoczesne stosowanie wielu kluczy publicznych dla jednej domeny — jest to przydatne przy korzystaniu z wielu usług pocztowych (Google Workspace i platforma marketingowa) lub podczas rotacji kluczy bez przerw w działaniu. Nazwa selektora znajduje się w nagłówku DKIM-Signature, dzięki czemu serwery odbierające wiedzą, którego rekordu DNS szukać. Organizacje powinny rotować klucze DKIM raz w roku lub wtedy, gdy istnieje podejrzenie ich przejęcia. Długość klucza: zalecane są klucze RSA o długości co najmniej 2048 bitów; klucze 1024-bitowe są przestarzałe i można je złamać przy użyciu współczesnych zasobów obliczeniowych.
DMARC: uwierzytelnianie wiadomości oparte na domenie
DMARC (Domain-based Message Authentication, Reporting, and Conformance) bazuje na SPF i DKIM, dodając: kontrolę zgodności domen (domena w widocznym nagłówku From musi być zgodna z domeną uwierzytelnioną przez SPF lub DKIM) oraz zasadę informującą serwery odbierające, co zrobić z wiadomościami, które nie przejdą kontroli. Zasady DMARC to none (wyłącznie monitorowanie), quarantine (dostarczenie do folderu spamu) lub reject (niedostarczenie wiadomości). DMARC umożliwia także wysyłanie raportów zbiorczych (RUA) i raportów kryminalistycznych (RUF) do właściciela domeny, zapewniając wgląd w to, kto wysyła wiadomości w jego imieniu.
# DMARC DNS TXT record
_dmarc.example.com. TXT \
'v=DMARC1; p=reject; sp=reject; \
pct=100; \
rua=mailto:dmarc-reports@example.com; \
ruf=mailto:forensic@example.com; \
adkim=s; aspf=s'
# p=reject : reject failing messages (strongest)
# pct=100 : apply to 100% of messages
# adkim=s : strict DKIM alignment
# aspf=s : strict SPF alignment
# rua= : aggregate report destinationZgodność DMARC
Zgodność sprawia, że DMARC skutecznie chroni przed fałszowaniem nagłówków. W przypadku zgodności SPF domena w polu From koperty SMTP musi odpowiadać domenie w widocznym nagłówku From. W przypadku zgodności DKIM domena podpisująca (d= w DKIM-Signature) musi odpowiadać domenie z nagłówka From. W trybie ścisłym domeny muszą być identyczne. W trybie swobodnym akceptowane są subdomeny. Wiadomość przechodzi kontrolę DMARC, jeśli przejdzie kontrolę SPF LUB DKIM z prawidłową zgodnością — nie musi przejść obu. To połączenie zamyka lukę, którą SPF pozostawia w zakresie fałszowania widocznego nagłówka.
# DMARC alignment example
Envelope From: attacker@legit.com <- SPF may PASS for legit.com
From header : spoofed@example.com <- VISIBLE to user
# Without DMARC: SPF passes (envelope from legit.com)
# User sees spoofed@example.com and trusts it
# With DMARC on example.com:
# SPF alignment check: legit.com != example.com -> FAIL
# DKIM: attacker has no private key for example.com -> FAIL
# DMARC result: FAIL -> message rejected per policyWdrażanie DMARC etapami
Organizacje powinny wdrażać DMARC stopniowo, aby uniknąć zakłóceń w dostarczaniu prawidłowych wiadomości. Etap 1: wdrożyć SPF i DKIM dla wszystkich strumieni poczty. Etap 2: opublikować rekord DMARC p=none z raportowaniem RUA. Analizować raporty (narzędzia: DMARC Analyzer, dmarcian), aby w ciągu 2–4 tygodni wykryć wszystkie prawidłowe źródła wysyłki. Etap 3: przejść na p=quarantine; pct=10, stopniowo zwiększając wartość pct do 100%. Etap 4: przejść na p=reject, gdy wszystkie prawidłowe strumienie będą przechodzić kontrolę. Zbyt szybkie przejście do odrzucania wiadomości, zanim zostaną wykryte wszystkie strumienie poczty, powoduje odrzucanie prawidłowych wiadomości.
# DMARC rollout stages
Stage 1: p=none; pct=100 (monitoring only)
Stage 2: p=quarantine; pct=10 (10% to spam)
Stage 3: p=quarantine; pct=100 (all to spam)
Stage 4: p=reject; pct=100 (block at MTA)
# Monitor RUA reports between each stage
# Look for legitimate sources failing alignment
# Common gotchas:
# - Marketing platforms sending as your domain
# - IT ticketing systems
# - Automated notification services
# - Third-party CRM toolsBIMI: wskaźniki marki do identyfikacji wiadomości
BIMI to rozwijający się standard bazujący na DMARC. Gdy domena ma politykę DMARC quarantine lub reject, klienty pocztowe (Gmail, Apple Mail) mogą wyświetlać zweryfikowane logo marki obok nazwy nadawcy w skrzynce odbiorczej. BIMI wymaga certyfikatu Verified Mark Certificate (VMC) od zatwierdzonego wystawcy, potwierdzającego prawo własności do znaku towarowego. BIMI nie jest jeszcze uwzględniany na egzaminie Security+, ale wskazuje kierunek rozwoju uwierzytelniania poczty — umożliwia szybkie wizualne odróżnienie zweryfikowanych nadawców od nadawców podszywających się pod inne osoby.
Współdziałanie SPF+DKIM+DMARC
Te trzy standardy tworzą kompletny system uwierzytelniania poczty elektronicznej. SPF weryfikuje, czy serwer wysyłający jest autoryzowany przez właściciela domeny. DKIM weryfikuje integralność wiadomości oraz to, czy organizacja wysyłająca posiada klucz prywatny. DMARC wiąże oba te mechanizmy z widocznym nagłówkiem From, wymusza politykę w przypadku niepowodzeń i zapewnia raportowanie. Żaden pojedynczy standard nie jest wystarczający: sam SPF nie zapobiega fałszowaniu widocznego nagłówka, sam DKIM nie wymusza odrzucania wiadomości, które nie przeszły kontroli, a sam DMARC bez SPF lub DKIM nie ma czego weryfikować. Wszystkie trzy standardy należy wdrożyć razem, aby zapewnić pełną ochronę przed podszywaniem się pod domenę.
# Email authentication check order
1. Receiving MTA receives message
2. SPF check: is sending IP authorized? (envelope From)
3. DKIM check: is signature valid? (using public key DNS)
4. DMARC check:
a. Did SPF pass with alignment? OR
b. Did DKIM pass with alignment?
-> If YES: PASS (deliver normally)
-> If NO: apply DMARC policy (none/quarantine/reject)
5. Reporting: send aggregate data to rua= addressBanery ostrzegawcze dotyczące zewnętrznej poczty
Praktycznym środkiem ochrony warstwowej przed phishingiem i BEC jest dodawanie banera ostrzegawczego dotyczącego zewnętrznej wiadomości do każdej wiadomości pochodzącej spoza organizacji. Taki baner — zwykle wstawiany przez SEG — ostrzega pracowników, że wiadomość pochodzi od zewnętrznego nadawcy, nawet jeśli wyświetlana nazwa wygląda jak nazwa współpracownika lub członka kadry kierowniczej. Banery są szczególnie skuteczne w sygnalizowaniu prób BEC, w których napastnik używa podobnej domeny lub fałszuje nazwę wyświetlaną. Baner powinien być wyraźnie widoczny (na przykład jako kolorowy nagłówek lub stopka) i zawierać instrukcje zgłaszania podejrzanych wiadomości.
# Example external email banner (SEG inserts this)
# --- EXTERNAL EMAIL ---
# This message was sent from outside the organization.
# Do not click links or open attachments unless
# you expected this email and trust the sender.
# Report suspicious email: phishing@company.com
# ----------------------
# Proofpoint SEG: add disclaimer via content filter
# Match: Header 'X-MS-Exchange-Organization-SCL' absent
# Action: Prepend HTML banner to message bodySzybkie sprawdzenie
Sprawdź swoją znajomość zagadnień z CompTIA Security+ (SY0-701) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznano następujące zagadnienia: SPF używa rekordów DNS TXT do autoryzowania adresów IP nadawców, ale sprawdza tylko pole From koperty, a nie widoczny nagłówek; DKIM dodaje podpisy kryptograficzne, które weryfikują integralność wiadomości i pozostają zachowane po przekazaniu wiadomości dalej; natomiast DMARC wiąże SPF i DKIM z widocznym nagłówkiem From za pomocą kontroli zgodności oraz wymuszanej polityki (none/quarantine/reject), a także zapewnia raportowanie. Następnie omówimy bezpieczne bramy pocztowe i mechanizmy ochrony przed spamem.
Często zadawane pytania
Czy lekcja „Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC” jest bezpłatna?
Tak — pełny tekst „Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC” 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 Security+ Academy, przejdź na CoddyKit PRO. Kurs Security+ Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC”?
Wdrażaj i weryfikuj zasady Sender Policy Framework, DomainKeys Identified Mail i DMARC, które zapobiegają podszywaniu się pod domenę oraz phishingowi. Ćwiczysz 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ąć Security+ Academy?
Nie wymagamy żadnego doświadczenia. 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 1 z 4.
Ile czasu zajmuje lekcja „Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC”?
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 Security+ Academy?
Tak. Każda lekcja 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
- Uwierzytelnianie poczty e-mail: SPF, DKIM i DMARC
- Bezpieczne bramy pocztowe i ochrona przed spamem
- Filtrowanie treści internetowych i DNS sinkhole
- Inspekcja SSL/TLS i ataki Man-in-the-Browser