heise networks

Wiadomości i artykuły heise Networks

29 grudnia 2008, 08:02


Vergrößern

Johannes Endres, Patrick Koetter, Adam Rudziński

Podpisywanie e-maili z wykorzystaniem mechanizmu DKIM

Odpowiedź kryptografii na phishing i spam

Procedura DomainKeys Identified Mail miała pierwotnie służyć jako zapora przed spamem. Jednak dzięki temu, że pomaga ona wykrywać podrobione adresy nadawcy, okazała się także właściwym narzędziem chroniącym przed atakami phishingowymi. A w połączeniu z oceną poziomu "spamowatości" nadawcy (Spam-Reputation), pozwala zmniejszyć liczbę reklam viagry trafiających do skrzynki pocztowej.

Ze względu na gigantyczne kary finansowe, przewidziane na przykład w prawie amerykańskim, spamerzy starają się zwykle pozostać anonimowi. Dlatego też elektroniczne śmieci rozsyłane są często ze sfałszowanym adresem nadawcy. Podobnie jest z wiadomościami phishingowymi, które mają kierować użytkownika na sfałszowane strony internetowe w celu pozyskania jego haseł, numerów PIN oraz TAN. Podszywanie się pod wiarygodnego adresata ma na celu wywołanie wrażenia autentyczności. Niejeden internauta uwierzył, że list z prośbą o podanie kolejnych numerów z listy haseł jednorazowych został wysłany przez bank.

Takie oszustwa byłyby znacznie trudniejsze do przeprowadzenia, jeżeli dysponowalibyśmy narzędziem pozwalającym na jednoznaczne rozstrzygnięcie, czy odebrany e-mail pochodzi faktycznie od nadawcy, którego nazwa widnieje w polu Od:. A autorzy listów powinni uwiarygodnić wysyłane wiadomości w sposób pozwalający na ich automatyczną weryfikację.

Oczywiście zadanie uwiarygodnienia przesyłek mogłoby spocząć na samych nadawcach – wystarczyłoby, aby wychodzące e-maile zostały opatrzone podpisem elektronicznym albo zaszyfrowane. Oprogramowanie pozwalające dołączać do wiadomości sygnatury – takie jak PGP (bądź GPG) albo S/MIME – jest tak proste w obsłudze, że podpisanie (lub zaszyfrowanie) przesyłki sprowadza się zwykle do jednego kliknięcia. Niestety – mimo upływu 15 z górą lat od pojawienia się PGP liczba użytkowników korzystających zeń wciąż pozostaje znikoma.

Trzeba więc liczyć na usługodawców odpowiedzialnych za łącza sieciowe. Nadawca musi zostać sprawdzony, a jego tożsamość potwierdzona przez poszczególne serwery. Mechanizm, który za to odpowiada, nosi nazwę SPF (pierwotnie skrót ten pochodził od Permitted From, a obecnie jest akronimem nazwy Sender Policy Framework). Na serwerze DNS umieszczone są specjalne wpisy (MX records) określające, który serwer obsługuje pocztę kierowaną do konkretnej domeny. Operatorzy serwerów pocztowych (postmaster) dowiadują się w ten sposób, któremu węzłowi sieciowemu wolno przekazywać dane z wybranego adresu. Jeżeli e-mail od danego nadawcy przychodzi z innym adresem IP niż wcześniej zdefiniowano, wówczas serwer odbiorcy po prostu przerywa połączenie.

Jednak w praktyce szybko ujawniła się największa słabość SPF: wystarczy niewielka zmiana architektury Sieci (wywołana na przykład chwilową awarią jednego z jej segmentów) i tymczasowe przejęcie obsługi poczty przez inny serwer niż zdefiniowany w rekordzie MX, aby numer IP pośrednika nie pasował już do adresu nadawcy. Poza tym operator poczty stale musi dbać o aktualizowanie wpisów DNS dotyczących SPF (tak by uwzględniały wszystkie zmiany na danym serwerze pocztowym). Na skutek istnienia tych mankamentów często zdarza się, że SPF zamiast odsiewać spam z potoku istotnych wiadomości po prostu odrzuca uprawnione przesyłki. Poza tym SPF bazuje na milczącym i zarazem ryzykownym założeniu, że mechanizm DNS jest bezpieczny i nie podlega manipulacjom.

W roku 2004 firmy Yahoo! i Cisco równolegle rozwinęły procedurę uwiarygadniania poczty i opracowały mechanizm łączący zalety obydwu przedstawionych wyżej rozwiązań. Aby nie obciążać użytkownika zadaniami sygnowania listów, sam serwer miał dołączać do każdego e-maila podpis kryptograficzny. Co istotne, postać takiej sygnatury nie była zależna od adresu IP serwera. Obie firmy połączyły swoje wysiłki i w 2007 roku powstał standard internetowy znany obecnie właśnie jako DKIM, a opisany w dokumencie RFC 4871. Jednocześnie wciąż można spotkać z reguły akceptowane, choć przestarzałe podpisy przygotowane według procedury opracowanej jeszcze samodzielnie przez Yahoo!.

Podpisy cyfrowe to chleb powszechny kryptografii. Podpisujący generuje parę kluczy: informacja zaszyfrowana za pomocą jednego z nich może być odkodowana wyłącznie z wykorzystaniem drugiego. Nadawca zachowuje pierwszy z kluczy dla siebie (jest to klucz prywatny), natomiast drugi upublicznia. Dzięki temu wiadomo, że informacje dające się odszyfrować za pomocą klucza publicznego musiały zostać zakodowane za pomocą jego odpowiednika pozostającego do wyłącznej dyspozycji autora wiadomości. Jeżeli więc klucz publiczny pasuje do danej wiadomości, to możemy mieć pewność, że pochodzi ona od kogoś, kto dysponuje kluczem prywatnym (czyli od uprawnionego nadawcy).

W systemie DKIM do wiadomości dołącza się wartość funkcji skrótu (funkcji haszującej) wyliczonej ze wszystkich znaków składających się na list, a zakodowanej za pomocą klucza prywatnego. Wartość funkcji haszującej zmienia się znacząco na skutek wprowadzenia choćby najdrobniejszych zmian w samej wiadomości. Dlatego też sygnatura przestaje uwierzytelniać listy, które zostałyby w jakiś sposób zmanipulowane. Najważniejszą cechą DKIM jest to, że poszczególne e-maile nie są podpisywane przez indywidualnych użytkowników, lecz przez serwer, który je przesyła. Tym samym jeżeli jego operator będzie trzymał w tajemnicy swój klucz prywatny, to uzyska pewność, że wiadomość sygnowana jego podpisem zostanie potraktowana jako pochodząca właśnie z jego serwera i że ewentualne próby zmodyfikowania listu zostaną wykryte. Odbiorca przesyłki może bowiem odkodować wartość funkcji skrótu, samodzielnie obliczyć tę samą wartość i porównać wyniki. Jeśli będą niezgodne, wniosek jest prosty: ktoś albo podłączył sfałszowaną funkcję skrótu do listu, albo zmienił zawartość e-maila. Pozwala to uniknąć sytuacji, w której ktoś np. dołączy odsyłacz kierujący na sfałszowaną stronę WWW do prawdziwego listu z banku.

  • Podziel się
  • Wykop.pl
  • StumbleUpon
  • del.icio.us
  • OSnews.pl