Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Szyfrowanie poczty w Thunderbird
Z tekstu dowiesz się
- Dlaczego warto szyfrować komunikację e-mail.
- Na jakiej zasadzie funkcjonuje szyfrowanie wiadomości z wykorzystaniem oprogramowania GPG.
- Jaka jest różnica pomiędzy kluczem prywatnym a publicznym?
- Jak skonfigurować szyfrowanie wiadomości e-mail w programie pocztowym Thunderbird (w środowisku Windows).
- Jak za pomocą dwóch kliknięć wysyłać szyfrowane e-maile.
Wstęp
Poczta elektroniczna jest niezmiernie wygodnym i popularnym sposobem komunikacji. Nagminnie jednak za pośrednictwem e-maili przesyłane są takie poufne informacje jak:
- hasła dostępowe do systemów,
- dokumentacje projektowe,
- szczegółowe dane osobowe klientów,
- inne istotne informacje (np. listy płac), do których dostęp powinny mieć tylko uprawnione osoby.
Informacje te często nie są w żaden sposób chronione – mogą być przechwytywane, a następnie odczytywane przez osoby postronne.
Jednym z popularnych, a zarazem relatywnie prostych sposobów na zapewnienie poufności e-maili, jest szyfrowanie wiadomości.
W artykule zostanie pokazany sposób konfiguracji klienta pocztowego, umożliwiający tworzenie i odczytywanie zaszyfrowanych informacji. W tym celu wykorzystane zostanie następujące oprogramowanie:
- Klient poczty Thunderbird.
- Oprogramowanie szyfrujące GPG (the GNU Privacy Guard).
- Dodatek do Thunderbird o nazwie Enigmail.
Wszystkie wskazane powyżej programy są dostępne bezpłatnie – również do użytku komercyjnego. Co więcej, obsługa oprogramowania możliwa jest w języku polskim.
Lista oprogramowania
Poniżej przedstawiamy listę oprogramowania, które można bezpłatnie pobrać ze wskazanych stron producentów. W kolejnym kroku określimy w jaki sposób zainstalować i skonfigurować poniższe aplikacje.
1. Klient poczty – Thunderbird
Jest to znany program do obsługi poczty, stworzony przez twórców przeglądarki internetowej Firefox. Thunderbirda w polskiej wersji językowej można pobrać tutaj.
2. Oprogramowanie kryptograficzne – GPG (the GNU Privacy Guard)
Oprogramowanie to nie będzie wykorzystywane bezpośrednio – odpowiednie wywołania wykonywane będą bez naszego udziału – poprzez program Thunderbird.
Wersję dla systemu Windows można pobrać tutaj
3. Enigmail – rozszerzenie do Thunderbird
Enigmail umożliwia bardzo proste korzystanie z funkcjonalności GPG w kliencie pocztowym Thunderbird. Dzięki Enigmail nie musimy znać skomplikowanej składni wywołań programu GPG.
Najnowszą wersję – zawierającą polskie tłumaczenie interface – można pobrać bezpłatnie ze strony producenta.
Instalacja oprogramowania
Klient poczty Thunderbird oraz GPG – posiadają programy instalacyjne, które zapewniają szybką i niewymagającą zaangażowania instalację.
Dodatek Enigmail można zainstalować poprzez wybranie w Thunderbird, z menu głównego, opcji: Narzędzia -> Dodatki, a następnie kliknięcie przycisku „Zainstaluj”.
Po wybraniu pobranego przez nas wcześniej pliku instalacyjnego Enigmail (np. enigmail-1.5-tb+sm.xpi) oraz restarcie Thunderbird, dodatek jest gotowy do użycia – dostępna staje się nowa pozycja menu głównego: OpenPGP.
Zanim przejdziemy do omawiania konfiguracji Thunderbird, warto poruszyć kwestie dotyczące tzw. kluczy szyfrujących wykorzystywanych w procesie szyfrowania wiadomości.
Klucze: publiczny i prywatny
Środowisko, którego konfigurację omawia artykuł opiera się na tak zwanej kryptografii asymetrycznej. W skrócie, pojęcie wiąże się z wykorzystaniem dwóch kluczy szyfrujących:
- Klucza publicznego
- Klucza prywatnego
Klucz publiczny służy do szyfrowania danych. Jego nazwa (publiczny) umożliwia zapamiętanie, że klucz może być publicznie dostępny dla wszystkich. Jeśli ktoś chce zaszyfrować do mnie informację – wykorzystuje mój klucz publiczny. Każdy może posiadać mój klucz publiczny, więc każdy może zaszyfrować do mnie informację.
Klucz prywatny służy do deszyfrowania danych. Jego nazwa (prywatny) przypomina, że nie powinien być znany nikomu poza właścicielem. Jeśli chcę odszyfrować wysłaną do mnie informację – wykorzystuję klucz prywatny – znany tylko mi. W ten sposób tylko ja mogę odszyfrować przesłaną do mnie zaszyfrowaną wiadomość.
Powyższa para kluczy generowana jest każdorazowo dla użytkownika, który chce korzystać z możliwości szyfrowania wiadomości. Zatem naszą pierwszą czynnością po zainstalowaniu odpowiedniego oprogramowania, będzie wygenerowanie tej pary kluczy.
Konfiguracja Thunderbird – generacja kluczy
Zakładamy, iż czytelnik skonfigurował już odpowiednie konto pocztowe (opcje: Narzędzia -> Konfiguracja kont -> Dodaj konto) i może wysyłać oraz odbierać nieszyfrowaną pocztę.
Jak wspomnieliśmy wcześniej, pierwszym punktem na drodze do korzystania z szyfrowanych e-maili jest wygenerowanie pary kluczy – prywatnego i publicznego. Można to wykonać korzystając z opcji:
OpenPGP -> Zarządzanie kluczami -> Generowanie -> Nowa para kluczy.
W oknie generowania klucza powinniśmy uzupełnić następujące dane:
- Hasło zabezpieczające klucz prywatny (na formularzu – pole „szyfr”)
Hasło powinno być odpowiednio skomplikowane i trudne do odgadnięcia. - Okres ważności klucza.
Domyślnie okres ważności to 5 lat. Rekomendujemy zmienić tą wartość na o wiele mniejszą, np. 1 rok.
W związku procedurą generacji kluczy mogą nasunąć się następujące pytania:
- W jakim celu dodatkowo zabezpieczać klucz prywatny?
Jeśli ktoś uzyska dostęp do naszego klucza prywatnego – jest m.in. w stanie odszyfrować wysłane do nas wiadomości. Hasło to dodatkowe zabezpieczenie przed uzyskaniem dostępu do klucza prywatnego przez niepowołane osoby.
- Co zrobić w przypadku uzyskania dostępu do klucza prywatnego przez inne osoby?
Wygenerować nową parę kluczy, oraz poprosić wszystkich zainteresowanych o usunięcie z programów pocztowych naszego wcześniejszego klucza i dodanie klucza nowego. Może do tego służyć też certyfikat unieważnienia, który może być generowany przez enigmail automatycznie w drugim kroku – po wygenerowaniu kluczy.
- Dlaczego warto zmienić okres ważności klucza na krótki?
Procedura wymiany pary kluczy po kompromitacji (np. wykradzeniu / upublicznieniu) klucza prywatnego może być uciążliwa. Krótki okres ważności powoduje zmniejszenie przedziału czasowego, w którym skompromitowany klucz może być przedmiotem nadużyć (np. max 12 miesięcy, zamiast domyślnej wartości 5 lat).
Szyfrowanie danych
Jak wspomnieliśmy wcześniej, aby zaszyfrować do kogoś wiadomość, należy skorzystać z klucza publicznego adresata. Klucze publiczne przekazywane są najczęściej w formie pliku tekstowego (umieszczanego na stronie www lub przesyłanego w e-mailu). Alternatywna możliwość to wysłanie wysłanie swojego klucza publicznego na jeden z tzw. serwerów kluczy (OpenPGP -> Zarządzanie kluczami -> Prawy Przycisk Myszy na wybranym kluczu -> Eksportuj klucze publiczne na serwer).
Aby przetestować poprawność szyfrowania, wykorzystać można nasz klucz publiczny dostępny tutaj (umożliwiający przesyłanie szyfrowanych maili na adres: sekurak@sekurak.pl).
Klucz publiczny można zaimportować wybierając z menu głównego Thunderbird:
OpenPGP -> Zarządzanie kluczami -> Plik -> Importuj klucze z pliku
Po zaimportowaniu klucza dostępny jest on na liście kluczy i gotowy do użycia. Warto zauważyć iż zaimportowany klucz skojarzony jest z konkretnym adresem e-mail (np. z sekurak@sekurak.pl).
Jeśli chcemy zaszyfrować e-mail, wystarczy podczas tworzenia wiadomości, w menu OpenPGP zaznaczyć opcję „Szyfruj wiadomość”. Po zredagowaniu maila i naciśnięciu „Wyślij”, wiadomość zostanie zaszyfrowana automatycznie (przy założeniu, że wcześniej zaimportowaliśmy klucz publiczny adresata do którego wysyłamy e-mail).
Podsumowując: aby wysłać zaszyfrowany e-mail należy:
- Poprosić adresata e-maila o klucz publiczny (lub pobrać jego klucz z jednego z zaufanych serwerów kluczy)
- Zaimportować klucz publiczny do Thunderbirda.
- Przy wysyłaniu maila do osoby, zaznaczyć opcję „Wyślij z szyfrowaniem”.
Jak umożliwić innym wysyłanie do nas szyfrowanych maili?
W skrócie – należy przekazać swój klucz publiczny. W ogólności można to zrealizować z wykorzystaniem dwóch metod:
1. Za pośrednictwem e-mail
Najprostszy sposób przekazania klucza publicznego to wysłanie e-maila, zawierającego w załączniku klucz.
Pisząc nowy e-mail zaznaczamy opcję: OpenPGP -> Załącz mój klucz publiczny.
Jak wskazuje powyższa opcja, do takiego e-maila automatycznie zostanie dołączony załącznik zawierający klucz publiczny. Jeśli adresat używa Thunderbirda, wystarczy, że kliknie prawym przyciskiem myszy na załącznik i wybierze opcję „Importuj klucz OpenPGP”. W tym momencie adresat może wysyłać do nas szyfrowaną pocztę.
2. Przekazując plik
- Wybieramy opcję: OpenPGP-> zarządzanie kluczami.
- Klikamy prawym przyciskiem na naszym kluczu i wybieramy opcję: eksportuj klucze do pliku.
- Dalej wybieramy opcję: Eksportuj tylko klucze publiczne. Opcja z eksportem klucza prywatnego może być przydatna – ale w przypadku gdy chcemy wykonać kopię zapasową klucza.
- Zapisany plik dostarczamy (np. za pośrednictwem pendrive) osobom, które chcą do nas wysyłać szyfrowaną korespondencję.
3. Z wykorzystaniem serwera kluczy
- W Thunderbird: OpenPGP -> Zarządzanie kluczami -> Prawy Przycisk Myszy na wybranym kluczu -> Eksportuj klucze publiczne na serwer
- Jest to elastyczna metoda wymiany kluczy, jednak koniecznie wymaga potwierdzenia czy pobrany przez nas klucz jest poprawny (patrz weryfikacja klucza – na końcu tekstu).
Jak odczytać zaszyfrowaną wiadomość?
Jeśli ktoś prześle do nas szyfrowaną pocztę, po wybraniu danego e-maila, pojawi się okno z prośbą o wpisanie hasła do klucza prywatnego (definiowaliśmy to hasło przy generowaniu kluczy). Po wpisaniu poprawnego hasła, e-mail zostanie automatycznie odszyfrowany i pokazany w analogicznej formie jak korespondencja nieszyfrowana.
Jak wygląda zaszyfrowany mail?
Na przykład w ten sposób:
Podsumowanie
Aby móc przesyłać i odczytywać zaszyfrowane treści wystarczy wykonać kilka prostych operacji:
- Zainstalować odpowiednie oprogramowanie.
- Wygenerować parę kluczy (prywatny i publiczny).
- Zapamiętać hasło chroniące klucz prywatny.
- Udostępnić klucz publiczny – w celu umożliwienia wysyłania do nas komunikacji szyfrowanej.
Klucz prywatny nie powinien być nikomu udostępniany. Służy do odszyfrowywania poczty.
Dodatkowe sposoby zwiększające bezpieczeństwo (dla zaawansowanych)
Przedstawiona w powyższym tekście procedura szyfrowania poczty elektronicznej, istotnie zwiększa bezpieczeństwo przesyłanych maili. Szczególnie w przypadku przesyłania danych o krytycznej istotności, bezpieczeństwo to można podnieść stosując poniższe techniki.
1. Weryfikacja instalowanego oprogramowania
Aby zwiększyć bezpieczeństwo całej procedury warto weryfikować instalowane binaria – np. poprzez kontrolę sumy SHA-1 czy weryfikacja podpisu cyfrowego instalowanej paczki (dla enigmail patrz np. tutaj).
2. Weryfikacja importowanych kluczy
Przekazując klucze publiczne, rekomendujemy weryfikować ich autentyczność. Przykładowe sposoby weryfikacji:
- Poprzez weryfikację ID klucza (przykładowe ID: 0x2B8D5361).
- Poprzez weryfikację odcisku palca klucza (przykładowy odcisk: 6AA2 F30B 7536 5491 FF01 C56C 9A30 0444 2B8D 5361).
- W przypadku wysyłki e-mailem klucza publicznego, powyższe dane można zweryfikować np. telefonicznie.
- Poprzez fizyczne przekazanie klucza publicznego do osoby zainteresowanej.
3. Wykorzystanie oprogramowania antywirusowego
Poza ochroną przed wirusami stacji roboczej, oprogramowanie takie jest w stanie wykryć również aplikacje typu malware, umożliwiające np. wrogie przejęcie dostępu do klucza prywatnego.
—Michał Sajdak (michal.sajdak<at>securitum.pl)
Więcej informacji
- Alternatywna metoda szyfrowania poczty: S/MIME.
- Kryptografia asymetryczna.
- Podpis cyfrowy.
- Szyfrowanie poczty w Outlook
- Przypominamy, że informacje zawarte w tekście służą jedynie celom edukacyjnym.
Świetny poradnik, naprawdę mi się przydał.
Polecam!
Każdy serwis internetowy powinien mieć opcję szyfrowania wiadomości. Podczas rejestracji można byłoby podawać klucz publiczny.
Nadal w wielu serwisach, po rejestracji, hasło wysyłane jest na maila plaintextem…
Super poradnik. Znajomych w to wciągam. Swoją drogą tyle słyszymy o globalnej inwigilacji, że na przekór to zacznę nawet kawały o Donku przesyłać zaszyfrowane. A usługi pocztowe to prawdziwa masakra, wszystko po gołym http idzie. Porażka.
Dobry, lekki artykuł. Swoją drogą zamiast przyciężkiego gpg4win z całą jego menażerią, preferuję gpg4usb (choć aby Enigmail z niego korzystał trzeba się trochę pobawić).
BTW. Nie wiem czy to wasz oficjalny klucz, czy tylko na potrzeby artykułu, ale właśnie upłynęła jego ważność.
A jak szyfrować kluczem publicznym, który na pewno jest godny zaufania, ale nie ma w sobie zakodowanego prawidłowego adresu e-mail? Nie wnikając dlaczego przyszły odbiorca listu taki klucz wygenerował, moim celem jest zaszyfrowanie listu jego kluczem.
Jak mam to zrobić skoro o szyfrowaniu automatycznym mogę zapomnieć (adres odbiorcy jest rozny od tego w kluczu publicznym)? Importuje obcy klucz publiczny i jesli jest on jedynym obcym, to Thunderbird wybiera go jako domyślny (mimo nieścisłości formalnych)? Wydaje się, że koduje, ale nie mam pojęcia czym…
Przydała by się jeszcze informacja jak przenieść te ustawienia na inny komputer.
Co gdy system z którego korzystamy nagle się rozsypie ?
Przydała by się informacja jak zabezpieczyć się na taki wypadek (kopia kluczy certyfikatów oraz ponowna ich instalacja)
Thunderbird portable i zawsze mamy wszystko pod ręką
Prawdziwym wyzwaniem jest uruchomienie GPG w środowisku firmowym gdzie króluje Microsoft – Exchange i Outlook. Microsoft z definicji nie wspiera PGP GPG i generalnie opensourocowych rozwiązań kryptograficznych. Oczywiście nieodzowne staje sie używanie dodatkowego softu- używam Kleopatry i jakoś to działa, ale nie jest to moim zdaniem stabilne środowisko – czasem sypie błędami i trzeba restartwać. Ciekawi mnie jakie są wasze doswiadczenia i czy możecie poleicic coś stabilnego poza certyfikatem niekwalifikowanym X.509 – W koncu wszystie szanujące się organizacje związane z bezpieczeństwem stosują PGP/GPG?
@Artur W systemach od microsoft jest to możliwe. W pracy (operator komórkowy) używaliśmy programu PGP Desktop. Można było też szyfrować i podpisywać pocztę w Outlooku używając karty PKI. Ale to wszystko było do celów służbowych bowiem dwóch członków zarządu miało możliwość odszyfrowania każdego szyfrowanego maila czy pliku. Z przyczyn oczywistych do zastosowań prywatnych nigdy nie zaleca się rozwiązań z zamkniętym kodem. To co ja mogę polecić to Gpg4usb. Jest to projekt oparty na GPG ale całkowicie przenośny (portable) nie wymaga instalacji, nie wymaga uprawnień administratora, można go uruchomić nawet z pendriva. Działający na windows i na linux. Umożliwia podpisywanie oraz szyfrowanie ale niestety nie jednocześnie. Jak ktoś jest zupełnie początkujący to program jest godny polecenia. Osoby zaawansowane także docenią prostotę i funkcjonalność tego programu. Ale uwaga, wszystko tam robi się ręcznie, nie ma żadnej automatyki nie można powiązać z programem pocztowym jak w przykładzie z artykułu. Szyfrowanie odbywa się przez kopiuj wklej. W przypadku standardowego GPG trzeba mieć nieco doświadczenia. W gpg4usb już łatwiej się nie da :)
Ja ze swojej strony mogę polecić enigma.p-w.co
jako klucz do szyfrowanej wiadomości użyj dowolnego pliku np
zdjęcie ulubionego piłkarza z jego strony na fb
podajemy np przez telefon bądź skype drugiej osobie namiary na klucz i bez zapamiętywania hasła wymieniamy się wiadomościami niemożliwymi do odszyfrowania :)
jest wiele sposobów na szyfrowanie wiadomości ale to zależy od stopnia wtajemniczenia w steganografie itp
Rozumiem, że po terminie ważności certyfikatu lub jego unieważnieniu (np. po kompromitacji) maile zaszyfrowane z jego wykorzystaniem będą nadal widoczne (możliwe do odszyfrowania)?