[ DKIM ]

Diagnozuj awarie DKIM na podstawie MIME i zmian w kodowaniu transferu

Porównaj serializowane wiadomości, aby odróżnić wizualnie identyczną treść od bajtów faktycznie weryfikowanych DKIM .

Przez zespół badawczy EmailAuth

[Kluczowe punkty]

  • DKIM miesza zakodowaną reprezentację treści, a nie dekodowaną treść załącznika.
  • Nagłówki i granice części MIME są bajtami treściowymi; zewnętrzne nagłówki wykorzystują pokrycie oparte na h.
  • Zakończ serializację MIME przed końcową odpowiednią operacją podpisywania.
Na tej stronie

Dwie wiadomości mogą wyglądać identycznie w kliencie pocztowym, a mimo to wyświetlać się inaczej DKIM skróty ciała. DKIM weryfikuje przesłaną reprezentację po jej określeniu kanonizacja, a nie zdekodowany widok czytelnika. Dlatego też odbudowa MIME , konwersja transferu treści i zmiany granic powinny być przeprowadzane na wczesnym etapie badania, gdy komunikat kończy się niepowodzeniem dopiero po przetworzeniu.

Oddziel wygląd od reprezentacji

Wiadomość MIME może zawierać zwykły tekst, kod HTML, załączniki i zagnieżdżone struktury wieloczęściowe. RFC 2046 §5.1.1 umieszcza nagłówki części MIME i linie ograniczające granice wewnątrz wieloczęściowej treści. Ponowne kodowanie części tekstowej z pliku quoted-printable do base64 może zachować to, co czyta użytkownik, zmieniając jednocześnie bajty prezentowane w DKIM . Ponowne zawijanie zakodowanych linii może również zmienić te bajty. Spokojna kanonizacja to zdefiniowana transformacja białych znaków, a nie dekoder MIME lub test równoważności dla renderowanej treści.

RFC 6376 §5.3 zaleca konwersję na odpowiednie kodowanie transferu MIME przed podpisaniem, aby zmniejszyć konwersje transportowe. W szczególności wymaga normalizacji przed podpisaniem lokalnych reprezentacji, które ulegną zmianie przed transmisją. Zasada jest funkcjonalnie prosta: podpisz formularz, który powinien zobaczyć odbiorca.

Znajdź zmianę serializacji

Uzyskaj surowe komunikaty na wyjściu osoby podpisującej, na wyjściu podejrzanej bramy i na urządzeniu końcowym. Przechowuj oryginały bez otwierania i zapisuj je za pomocą edytora, który normalizuje zakończenia linii. Zwróć uwagę na metodę zbierania, ponieważ narzędzie eksportu samo w sobie może zmienić reprezentację.

Porównaj pola Content-Type i Content-Transfer-Encoding w wiadomości zewnętrznej i każdej odpowiedniej części MIME . Sprawdź ciągi graniczne, kodowanie załączników, linie zagięte i konwersję zestawu znaków. Określ, czy zmieniony nagłówek zewnętrzny został uwzględniony w h i czy zmienione nagłówki części wystąpiły wewnątrz podpisanej treści. Traktuj te dwie lokalizacje oddzielnie: nagłówek zewnętrzny może spowodować niepowodzenie weryfikacji podpisu, podczas gdy nagłówek części MIME zwykle uczestniczy w skrót ciała.

Przeanalizuj przykład kodowania

Przykładowa specyfikacja testu: część tekstowa zawierająca znak inny niż ASCII jest przygotowywana przy użyciu cudzysłowu, który można wydrukować przed podpisaniem wiadomości przez aplikację. Usługa podrzędna dekoduje tę część i serializuje ją jako base64. Wyświetlane zdanie pozostaje takie samo, ale kanonizowana treść może się różnić, a oryginalny podpis może zawieść. Uruchom to tylko z kontrolowaną zawartością i sprawdź rzeczywiste różnice w bajtach, zamiast zakładać, że każda usługa wykonuje tę konwersję.

Utwórz mały zestaw testowy zawierający zwykły tekst w formacie ASCII, tekst w formacie innym niż ASCII, wieloczęściowy kod HTML i mały załącznik. Wyślij każdy produkt przez bezpośrednią ścieżkę kontroli i ścieżkę przetwarzania równoważną produkcyjnie. Jeśli tylko ta ostatnia zmieni reprezentację, porównanie granic identyfikuje komponent do zbadania. Jeśli oba zawiodą, najpierw sprawdź serializację i normalizację osoby podpisującej.

Napraw granicę

Preferuj ostateczną konstrukcję MIME i wybór kodowania transferu przed podpisaniem. Jeżeli służba bezpieczeństwa musi przepisać treść, zorganizuj etap autoryzowanego podpisywania po jej ostatecznej serializacji. Potwierdź obsługę domeny niestandardowej i model własności; podpis w niepowiązanej domenie usługi może przejść DKIM bez dostosowania DMARC pod RFC 9989 §4.4.1.

Nie naprawiaj próbki na miejscu i przedstaw ją jako dowód, że produkcja jest stała. Zmodyfikowana próbka sprawdza jedynie hipotezę. Zmień odpowiedzialną konfigurację, wysyłaj nowe kontrolowane wiadomości i przechwytuj oryginalne wyniki odbiorcy. Unikaj szerokiego omijania kontroli treści wyłącznie w celu zachowania podpisu bez sprawdzania konsekwencji bezpieczeństwa.

Zachowaj przydatny zapis zdarzenia

Zapisz pierwszą granicę, w której treść serializowana jest rozbieżna, pole lub część MIME , których to dotyczy, osobę podpisującą i selektororaz wyniki dla każdego wariantu badania. Trzymaj wiadomości testowe wolne od danych klientów. Uruchom ponownie pakiet po aktualizacji bramy i zmianach w przetwarzaniu załączników. Ukończona poprawka wyjaśnia, dlaczego stara reprezentacja nie powiodła się i pokazuje, że nowo wyemitowana poczta przetrwa w pełni obsługiwaną trasę.

Porównaj konkretną zakodowaną reprezentację

Dla bajtów UTF-8 C3 A9 reprezentujących é, reprezentacją nadającą się do wydruku w cudzysłowie jest =C3=A9; reprezentacją base64 jest w6k=. Przy odpowiednich nagłówkach MIME oba dekodują ten sam znak, ale zakodowane ciągi znaków są różne. RFC 2045 §6.7 I RFC 2045 §6.8 zdefiniować kodowanie; RFC 6376 §3.7 wymaga mieszania po kodowaniu transferu i przed dekodowaniem podczas weryfikacji. Ten izolowany przykład reprezentacji nie jest kompletną wiadomością MIME ani wykonanym testem podpisu. Jeśli używany jest limit długości treści, należy określić, czy zmienione bajty mieszczą się w zasięgu, zamiast zakładać, że każda część jest chroniona.

[Na wynos]

DKIM miesza zakodowaną reprezentację treści, a nie dekodowaną treść załącznika. Nagłówki i granice części MIME są bajtami treściowymi; zewnętrzne nagłówki wykorzystują pokrycie oparte na h. Zakończ serializację MIME przed końcową odpowiednią operacją podpisywania.

[ Według roli ]

Co to oznacza dla Ciebie

Wybierz swoją rolę, aby uzyskać praktyczne dalsze kroki.

Administrator IT / poczty

Porównaj formularze serializowane

Zidentyfikuj pierwszą zmienioną część MIME , zamiast polegać na zrzutach ekranu.

Kolejne kroki

  1. Zachowaj eksport surowców.
  2. Przetestuj kodowanie transferu przed podpisaniem.

CISO / SecOps

Zachowaj kontrolę i autentyczność razem

Wybierz projekt, który sprawdza zawartość przed ostateczną granicą podpisania.

Kolejne kroki

  1. Przejrzyj proponowane obejście.
  2. Ogranicz dostęp do przechwyconych wiadomości.

Założyciel / Nietechniczny

Chroń bogate wiadomości klientów

Podstawowy e-mail testowy nie obejmuje formatów używanych przez faktury i raporty.

Kolejne kroki

  1. Uwzględnij rzeczywiste formaty wiadomości z danymi syntetycznymi.
  2. Przypisz właściciela usługi przetwarzania.

[ Często zadawane pytania ]

Często zadawane pytania

Czy identyczny wyświetlany tekst może mieć inny skrót?

Tak. Serializacja MIME i kodowanie transferu mogą się różnić nawet wtedy, gdy klient poczty renderuje ten sam tekst.

RFC 6376 §3.7

Czy DKIM dekoduje załączniki?

DKIM działa na podstawie treści wiadomości po kanonizacji, a nie na oddzielnie zdekodowanym pliku załącznika.

RFC 6376 §3.7

Czy uwzględnione są nagłówki części MIME ?

Występują wewnątrz treści wiadomości i uczestniczą w jej kanonizowanych bajtach. W przypadku zakrycia całego ciała są one uwzględnione; limit l może pozostawić późniejsze części poza zasięgiem.

RFC 2046 §5.1.1 RFC 6376 §3.7

Czy tryb zrelaksowany dekoduje base64?

Nie. Jego transformacje są zdefiniowanymi regułami białych znaków; nie dekoduje kodowania transferu MIME .

RFC 6376 §3.4.4

Kiedy wybrać kodowanie?

Przed podpisaniem, po znormalizowaniu wiadomości do reprezentacji oczekiwanej w transmisji.

RFC 6376 §5.3

Po co chronić eksport surowców?

Wyrenderowany widok ukrywa różnice MIME i kodowaniu, a edytor może wprowadzić własne zmiany.

Czy możemy ominąć bramę bezpieczeństwa?

Kontrolowana ścieżka porównawcza może zdiagnozować problem, ale obejście produkcyjne wymaga osobnej decyzji dotyczącej bezpieczeństwa.

Które próbki regresji są przydatne?

Zwykły tekst, zawartość inna niż ASCII, wieloczęściowy kod HTML i załączniki udostępniają różne ścieżki serializacji.

[ Źródła ]

Źródła

  1. RFC 6376

    Sekcje §1 · §3.4 · §3.4.4 · §3.5 · §3.7 · §5.3

  2. RFC 9989

    Sekcje §4.4.1

  3. RFC 8601

    Sekcje §1.2

  4. RFC 2045

    Sekcje §1 · §6.7 · §6.8

  5. RFC 2046

    Sekcje §5.1.1

[ Słowniczek ]

Słowniczek

MIME
Formaty wiadomości reprezentujące części strukturalne i kodowanie.

RFC 2045 §1 RFC 2046 §5.1.1

Kodowanie transferu
Zakodowana reprezentacja używana do przenoszenia treści, np. cytowana-drukowana lub base64.

RFC 2045 §6.7 RFC 2045 §6.8

Granica wieloczęściowa
Separator identyfikujący separacje pomiędzy częściami treści MIME .

RFC 2046 §5.1.1

Kanonizacja
Przygotowanie bajtu DKIM , które nie dekoduje kodowania transferu MIME .

RFC 6376 §3.4 RFC 6376 §3.7

Pochodzenie przedsiębiorstwa

Dlaczego najlepsze instytucje finansowe i rządy wycofali swoje panele bezpieczeństwa poczty e-mail.

Tradycyjne platformy uwierzytelniania poczty e-mail oferują pulpit nawigacyjny i proszą inżynierów o wykonanie pracy. W środowiskach o dużej stawce ręczny nadzór oznacza opóźnione egzekwowanie, zmianę konfiguracji i niemonitorowane domeny-cienie.

EmailAuth to platforma agentowego pochodzenia wiadomości e-mail. Nasi agenci egzekwują p=reject, dostosuj zewnętrznych nadawców i przenieś swoje domeny do pełnych adresów RFC 9989 zgodność, nowy standard DMARC , z możliwością kontroli przez człowieka.

Rządy Duże przedsiębiorstwa Instytucje finansowe poziomu 1

SaaS · Dedykowany najem · Lokalne rozwiązanie typu air-gapped · Szyfrowanie BYOK

Baza wiedzy