S/MIME to długo ustalona metoda wysyłania zaszyfrowanych, podpisanych e-maili, oparta na publicznych standardach internetowych. Regularnie spotykamy się z wymaganiami dotyczącymi S/MIME, szczególnie z branż regulowanych, takich jak bankowość, zdrowie i finanse. S/MIME często jest wymagane podczas komunikacji między firmami a agencjami rządowymi, na przykład.
Inny standard bezpiecznej poczty, PGP (zabawnie nazwany „Pretty Good Privacy”), jest używany głównie do zabezpieczonej komunikacji między osobami. Jest mniej popularny teraz, ponieważ wersje konsumenckie popularnych klientów e-mail opartych na sieci, takich jak Gmail i Outlook/Hotmail, nie są w stanie wyświetlić szyfrowanej poczty. To jeden z powodów, dla których wiele komunikacji między osobami, które wymaga prywatności, przeniosło się na platformy takie jak WhatsApp (i wiele innych), które oferują natywne, end-to-end szyfrowanie.
Zarówno PGP, jak i S/MIME wymagają klienta poczty, który może używać kluczy i certyfikatów. Wiele klientów stacjonarnych i mobilnych, w tym Apple Mail, Microsoft Outlook i Mozilla Thunderbird, spełnia te wymagania, podobnie jak wersje biznesowe niektórych klientów internetowych, takich jak Microsoft Office 365. Ustawienie kluczy wymaga pracy, ale wiele organizacji nadal uznaje to za opłacalne, pomimo ostatnich ujawnień luk, które wymagały środków zaradczych do zablokowania ładowania zdalnych treści.
S/MIME istnieje od 1995 roku i przeszedł przez kilka rewizji; obecna wersja jest objęta RFC 5751. Wymaga wymiany kluczy publicznych, co jest zadaniem niebagatelnym, które często wymaga wsparcia zespołu IT lub podobnego zasobu. Tu pojawiają się komercyjne rozwiązania od firm takich jak partnerzy SparkPost Virtru i Echoworkx, ułatwiając bezpieczeństwo w zakresie przesyłania maili biznesowych między osobami (zobacz nasz SparkPost/Echoworkx jak-to zrobić dla uzyskania dalszych informacji).
Mówiąc o tym, przyjrzyjmy się S/MIME nieco głębiej i zobaczmy, co możemy z tym zrobić.
Czemu powinienem się tym przejmować?
W skrócie:
Szyfrowanie zapewnia prywatność wiadomości.
Podpisywanie zapewnia uwierzytelnianie (nadawcy), niemożność zaprzeczenia pochodzeniu i sprawdzanie integralności wiadomości.
S/MIME działa inaczej niż DKIM i DMARC i może współistnieć z nimi.
Prywatność
Jeśli Twoje wiadomości nie zawierają nic osobistego, prywatnego ani prawnie istotnego, to prawdopodobnie nie musisz myśleć o S/MIME. Nowoczesne systemy dostarczania e-mail, takie jak SparkPost, już używają „optymistycznego TLS” do zabezpieczenia transportu wiadomości z serwera wysyłającego do serwera odbierającego.
Jednak część „optymistyczna” oznacza, że jeśli serwer wysyłający nie może negocjować bezpiecznego połączenia, wyślemy pocztę w formie zwykłego tekstu. To nie jest odpowiednie, jeśli chcesz wymusić, aby wiadomość była zabezpieczona na całej długości. Możesz rzucić okiem na które dostawcy skrzynek pocztowych twierdzą, że wspierają TLS i które naprawdę to robią. Zakładając, że serwer odbiorcy obsługuje TLS, Twoja wiadomość jest zabezpieczona w ten sposób:
TLS zabezpiecza rozmowy między serwerami pocztowymi (to dlatego nazywa się to Transport Layer Security). MIME (w tym S/MIME) dotyczy treści wiadomości i jej obróbki, i można to traktować jako część „warstwy prezentacji”.
S/MIME zabezpiecza treść wiadomości całkowicie („od końca do końca”) od pochodzenia wiadomości do klienta pocztowego odbiorcy, inkapsulując treść wiadomości.
S/MIME szyfruje treść wiadomości za pomocą klucza publicznego odbiorcy. Treść nie może być odszyfrowana bez klucza prywatnego odbiorcy — nie przez żadną „osobę w środku”, taką jak Twój dostawca internetowy, SparkPost czy serwer pocztowy odbiorcy.
Klucz prywatny nigdy nie jest ujawniany; jest przechowywany w wyłącznym posiadaniu odbiorcy. Zaszyfrowana wiadomość podróżuje przez Internet do serwera pocztowego odbiorcy. Gdy ląduje w skrzynce odbiorczej odbiorcy, jest (zwykle automatycznie) odszyfrowana ich kluczem prywatnym i staje się czytelna.
Kilka pułapek S/MIME, o których warto pamiętać:
Zaszyfrowanie S/MIME ma skutki uboczne polegające na uniemożliwieniu skanowania wiadomości przychodzących pod kątem złośliwego oprogramowania, ponieważ ładunek wiadomości jest w formie zaszyfrowanej i dlatego nierozpoznawalny.
Zauważ, że nagłówki wiadomości (Od:, Do:, Temat: itd.) nie są szyfrowane, więc zawartość linii tematu musi być tworzona z tym na uwadze.
Podpisywanie – uwierzytelnianie
S/MIME zapewnia również odbiorcy możliwość sprawdzenia, że tożsamość nadawcy wiadomości jest taka, jak oni mówią.
Adres e-mail nadawcy ma dołączony certyfikat, który, podobnie jak certyfikat na zabezpieczonej witrynie, można prześledzić do organu wydającego. Pełny opis procesu podpisywania znajdziesz tutaj.
Przyjmiemy podejście polegające na tym, że najpierw podpiszemy wiadomość, a następnie ją zaszyfrujemy, więc proces wygląda tak.
Niemożność zaprzeczenia
Kolejną użyteczną korzyścią z podpisywania dla odbiorcy jest niemożność zaprzeczenia pochodzeniu. Rozważ sytuację, w której wiadomość e-mail jest używana do zatwierdzenia umowy. Odbiorca otrzymuje umowę w wiadomości od nadawcy. Jeśli nadawca później spróbuje powiedzieć: „Nie, nigdy nie wysłałem Ci tej wiadomości”, to otrzymana wiadomość pokazuje, że certyfikat nadawcy został w rzeczywistości użyty.
Integralność wiadomości
Proces podpisywania tworzy odcisk palca zwykłej wiadomości źródłowej (znanej jako skrót wiadomości), szyfruje skrót za pomocą klucza prywatnego nadawcy i dołącza go do dostarczonej wiadomości. Klient poczty odbiorcy może stwierdzić, czy treść wiadomości została zmieniona.
Możesz powiedzieć: „Myślałem, że DKIM zapewnia mi sprawdzanie integralności wiadomości!” Tak, DKIM zapewnia sprawdzanie integralności treści wiadomości i nagłówków wiadomości — gwarancje przed manipulacją. Jednak niepowodzenie (lub brak) DKIM zwykle nie spowoduje, że wiadomość przychodząca zostanie oznaczona jako całkowicie nieważna, …chyba że polityka DMARC `p=reject` jest w toku (więcej o DMARC tutaj). DKIM to jeden z wielu czynników używanych przez dostawcę internetowego do wiarygodnego przypisania reputacji do domeny i jest, oczywiście, istotną częścią całego stosu komunikacyjnego.
Twój klient poczty pokaże Ci wyraźnie, jeśli wiadomość S/MIME nie przejdzie kontroli podpisu:
Podsumowanie: od końca do końca (S/MIME) vs od serwera do serwera (DKIM, DMARC, TLS)
S/MIME to funkcjonalność warstwy prezentacji, która może działać między dwoma końcowymi użytkownikami e-mail (z ważnymi certyfikatami/kluczami) bez żadnej interwencji ze strony administratora e-mail. S/MIME zapewnia szyfrowanie i podpisywanie i jest osobiste dla każdego użytkownika.
S/MIME wiąże się z pełnym adresem wysyłającym (częścią lokalną i częścią domeny), więc na przykład alice@bigcorp.com i bob@bigcorp.com będą potrzebować różnych certyfikatów. W przeciwieństwie do tego, DKIM weryfikuje, że e-mail pochodzi z podpisanej domeny. DKIM to temat sam w sobie; ten artykuł jest dobrym miejscem na początek.
Ustawienie DKIM i DMARC należy do administratora e-mail (pracującego na serwerze pocztowym i w rekordach DNS). Po skonfigurowaniu są aktywne dla domen, a nie dla poszczególnych użytkowników.
Jak to się ma do SparkPost?
Systemy pocztowe do komunikacji między osobami, takie jak Microsoft Exchange Server, od dawna wspierają S/MIME.
Jeśli używasz SparkPost do wysyłania do konkretnych odbiorców z klientami pocztowymi, którzy mogą odczytać S/MIME, to warto podpisać swoje wiadomości S/MIME. Podpisywanie S/MIME dodaje dalsze zapewnienie, że wiadomość faktycznie pochodzi od Ciebie (lub Twojego systemu) i nie została zmanipulowana, co może być wartościowe w niektórych przypadkach użycia. Wszystko, czego potrzebujesz do tego, to własny klucz i trochę darmowego oprogramowania, które zaprezentujemy w części 2 tego artykułu.
Korzystanie z szyfrowania S/MIME to osobny wybór, który trzeba podjąć. Będziesz potrzebować klucza publicznego dla każdego z odbiorców. Uzyskanie go może być tak proste, jak poproszenie ich o przesłanie Ci (lub Twojej aplikacji) podpisanej wiadomości e-mail. Zbadamy praktyczne narzędzie do wysyłania wiadomości e-mail podpisanych i zaszyfrowanych S/MIME przez SparkPost w kolejnym poście.
Które klienty wspierają S/MIME?
Konsumencki Gmail
Zwykły klient internetowy Gmail wyświetla podpisy wiadomości przychodzących (zobacz poniżej), ale nie jest skonfigurowany do przechowywania Twojego klucza prywatnego do odczytu zaszyfrowanych wiadomości. Nawet gdyby to było możliwe za pomocą wtyczek firm trzecich, przesyłanie swojego klucza prywatnego nie jest najlepszym pomysłem z punktu widzenia bezpieczeństwa.
Nie mogłem sprawić, by Yahoo! Mail w ogóle dekodował podpisy w wiadomościach.
Konsumencka wersja Microsoft Outlook/Hotmail informuje użytkownika o obecności podpisu S/MIME, ale nie daje pełnego dostępu do wyświetlenia ani sprawdzenia certyfikatu.
Hosted business mail
Dla organizacji z hostowaną pocztą Microsoft Office 365 i G Suite Enterprise mają wsparcie S/MIME.
Klienci Outlook
Klientowy Microsoft Outlook (np. 2010 na Windows) działa:
Kliknięcie ikon daje więcej informacji:
W Outlook 2010 / Windows, magazyn certyfikatów jest dostępny poprzez Plik / Opcje / Centrum zaufania / Ustawienia centrum zaufania / Bezpieczeństwo e-mail / Importuj / Eksportuj.
Thunderbird – wieloplatformowy i darmowy
Jeśli szukasz darmowego klienta, Mozilla Thunderbird spełnia te wymagania. Jest dostępny na PC, Mac i Linux i wspiera S/MIME na wszystkich tych platformach. Oto jak wiadomość wygląda na Macu. Ikona „zamkniętej koperty” wskazuje, że wiadomość jest podpisana, a kłódka oznacza, że została zaszyfrowana.
Kliknięcie na ikonę koperty/kłódki wyświetla informacje o wiadomości:
Thunderbird ma własny magazyn kluczy, dostępny w podobny sposób na każdej platformie:
Mac przez Preferencje / Zaawansowane / Certyfikaty / Zarządzaj certyfikatami
PC: menu („hamburger” w prawym górnym rogu), Zaawansowane / Certyfikaty / Zarządzaj certyfikatami
Linux: menu („hamburger” w prawym górnym rogu), Preferencje / Zaawansowane / Zarządzaj certyfikatami
Poczta Mac
Poczta Mac również obsługuje S/MIME. Opiera się na Twoim Macowym łańcuchu kluczy do przechowywania Twoich kluczy.
Poczta iOS
Najpierw zaimportuj certyfikat swojego konta e-mail w ten sposób, a następnie możesz przeglądać podpisane i zaszyfrowane wiadomości S/MIME. Nie wyglądają one naprawdę inaczej na ekranie oglądania.
Android
Niektóre urządzenia i aplikacje wspierają S/MIME; istnieje wiele różnorodności. Samsung ma przewodnik.
Na koniec…
To nasze szybkie podsumowanie praktycznych zastosowań S/MIME. Jeśli chcesz uzyskać własne certyfikaty pocztowe, jest lista dostawców tutaj. Znalazłem, że Comodo działa dobrze (darmowe na użytek niekomercyjny – otwórz to w Firefoxie, a nie w Chrome).
W części 2 zbadamy, jak zastosować podpisywanie i szyfrowanie S/MIME do wiadomości, które dostarczasz za pośrednictwem SparkPost.
Dalsza lektura
Microsoft ma dobry wprowadzenie do S/MIME tutaj.
Więcej informacji na temat podatności EFAIL i jak została ona rozwiązana, ta jest witryną ostateczną. Inne łatwe do zrozumienia wyjaśnienia są tutaj i tutaj.