Opóźniona wiadomość może zakończyć się niepowodzeniem ze względu na czas DKIM sprawdź nawet wtedy, gdy nikt nie zmienił jego treści. Zdiagnozuj pola czasowe podpisu i decyzję weryfikatora, zanim zmienisz klucze lub zrzucisz winę na bramkę. Nagłówek daty wiadomości, godzina utworzenia podpisu i godzina przybycia odbiorcy opisują różne zdarzenia.
Przeczytaj poprawnie t i x
w DKIM-Signature nagłówek, t to znacznik czasu utworzenia podpisu, a x to bezwzględny znacznik czasu wygaśnięcia, oba wyrażone w sekundach od epoki Uniksa w formacie UTC. RFC 6376 sekcja 3.5, formalnie oznacza oba tagi jako ZALECANE. Mogą być nieobecni, ale tego dodatku nie należy mylić z OPCJONALNYM poziomem wymagań. Wartość x nie jest czasem trwania, który można dodać do bieżącego czasu. Gdy oba są obecne, x musi być większe niż t. Brak t oznacza nieznany czas utworzenia; brak x oznacza, że w tym tagu nie określono daty wygaśnięcia podpisu. DNS TTL to inna koncepcja i nie ustawia x. Znacznik t w rekordzie klucza DNS DKIM to zestaw flag, a nie znacznik czasu podpisu.
RFC 6376 sekcja 3.5 pozwala implementacjom ignorować podpis z przyszłym znacznikiem czasu. Pozwala również na uznanie podpisu za nieważny, gdy ważność weryfikacji minęła. Dla porównania godziną weryfikacji powinien być moment, w którym domena administracyjna weryfikatora po raz pierwszy otrzymała wiadomość, jeśli jest ona wiarygodnie dostępna, w przeciwnym razie godzina bieżąca. Pozostawia to możliwość wyboru implementacji, którą zapis incydentu musi odróżnić od uniwersalnej reguły odrzucenia.
Zbuduj trzyzegarową oś czasu
Przechwyć dokładny podpis i nieprzetworzone dowody odbiorcy. Konwertuj t i x na czytelny czas UTC, zachowując oryginalne liczby całkowite. Zanotuj zegar osoby podpisującej, czas pierwszego wiarygodnego odbioru w domenie administracyjnej weryfikującej oraz godzinę ponownego sprawdzenia diagnostycznego. Dodaj odpowiednie opóźnienia w kolejce. Nie używaj niezaufanego nagłówka daty jako dowodu odebrania wiadomości przez system.
Przykładowy scenariusz: podpis jest tworzony o godzinie 10:00 UTC i wygasa o godzinie 12:00 UTC. Wiadomość dociera do odbiorcy o godzinie 11:50, ale jest ponownie rozpatrywana o godzinie 12:15. Weryfikator posiadający wiarygodne informacje na temat pierwszego odbioru może zastosować godzinę 11:50; późniejsze samodzielne narzędzie może mieć tylko bieżący czas. Różne wyniki same w sobie nie wskazują na uszkodzoną zawartość. Przykład opisuje rozróżnienie czasowe protokołu, a nie obietnicę dotyczącą konkretnego dostawcy.
Odróżnij przekrzywienie zegara od ciasnego okna
Jeśli wydaje się, że nowo wyemitowane podpisy pochodzą z przyszłości, sprawdź synchronizację zegara osoby podpisującej i generowanie znacznika czasu. Jeśli wartości są rozsądne, ale poczta regularnie przychodzi po x, sprawdź kolejkę, ponów trasy i wybrany okres ważności. RFC 6376 nie określa uniwersalnego idealnego czasu życia. Ustaw go, korzystając z rzeczywistych wymagań dotyczących dostawy i obsługiwanych ustawień osoby podpisującej.
Krótkie wygaśnięcie nie stanowi całkowitej obrony przed powtórką. RFC 6376 sekcja 3.5 wyraźnie mówi, że x nie jest przeznaczony do tego celu. Nie zastępuje również ochrony kluczy ani monitorowania nadużyć. Usunięcie starego klucza publicznego może uniemożliwić opóźnioną weryfikację niezależnie od x, dlatego należy skoordynować politykę wygaśnięcia z zachowaniem klucza.
Przetestuj naprawę i zachowaj wyróżnienie
Po poprawieniu konfiguracji zegara lub zasad wyślij nowe kontrolowane wiadomości ścieżkami wolnymi i normalnymi. Sprawdź ich znaczniki czasu i wyniki odbiornika. Zachowaj dowody wskazujące, czy wcześniejsza awaria dotyczyła czasu, dostępności kluczy, skrót ciała lub weryfikacja podpisu. Nie edytuj t ani x w istniejącej podpisanej wiadomości: te wartości są objęte podpisem i ich zmiana nie stanowi naprawy.
Pracuj nad przykładem z epoki
Wartości syntetyczne t=1794132000 i x=1794139200 odpowiadają dniu 8 listopada 2026 r. o godzinie 10:00 UTC i 12:00 UTC. Różnica wynosi 7200 sekund, czyli dwie godziny, ale samo x pozostaje absolutnym znacznikiem czasu. Wiarygodny pierwszy paragon o godzinie 11:50 jest przed datą ważności; po tym następuje samodzielna ponowna kontrola o 12:15. Wybrany przez weryfikatora czas odniesienia i dozwolona obsługa wygaśnięcia wyjaśniają możliwą różnicę. Natomiast x=t narusza wymaganą kolejność, gdy obecne są oba znaczniki. Wartości te ilustrują reguły arytmetyczne i protokołu, a nie wykonany test poczty.
Prowadź zwarty zapis dochodzenia
Skorzystaj z sugerowanego arkusza ćwiczeń dla sprawdzanej trasy. Jest to pomoc w planowaniu, a nie dowód przeprowadzonego testu.
- Podpis: oryginalne wartości t i x, ich konwersje do czasu UTC, d i selektor.
- Oś czasu: zegar osoby podpisującej, pierwsze wiarygodne potwierdzenie i późniejsze ponowne sprawdzenie, ze strefami czasowymi.
- Znalezienie: przyszłego znacznika czasu, wygasłego podpisu, niedostępnego klucza lub innego niepowodzenia weryfikacji.
- Naprawa: obsługiwana zmiana zegara lub czasu życia oraz wyniki nowo wysłanych testów ścieżki normalnej i opóźnionej.