Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Szyfrowanie poczty w Thunderbird

31 stycznia 2013, 10:17 | Teksty | komentarzy 11

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”.

enigmail_instalacja

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ść.

Uwaga: klucz prywatny może służyć również do podpisu cyfrowego wiadomości, a klucz publiczny do jego weryfikacji. Tu nie będziemy jednak zajmować się tym zagadnieniem.

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.

Uwaga: Przy pierwszym odwołaniu opcji Zarządzanie kluczami zostanie wywołany kreator. Na potrzeby poniższego artykułu – nie sugerujemy korzystać z kreatora.

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.

enigmail_generacja_kluczy

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).

enigmail_tworzenie_maila

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ę.

wysylka_pubkey

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:

zaszyfrowany_mail

 

Podsumowanie

Aby móc przesyłać i odczytywać zaszyfrowane treści wystarczy wykonać kilka prostych operacji:

  1. Zainstalować odpowiednie oprogramowanie.
  2. Wygenerować parę kluczy (prywatny i publiczny).
  3. Zapamiętać hasło chroniące klucz prywatny.
  4. Udostępnić klucz publiczny – w celu umożliwienia wysyłania do nas komunikacji szyfrowanej.
Klucz publiczny może (i powinien) być udostępniany publicznie. Korzystają z niego wszyscy, którzy chcą przesyłać do nas szyfrowaną pocztę

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

  • Przypominamy, że informacje zawarte w tekście służą jedynie celom edukacyjnym.

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. WielkiInformatyk

    Świetny poradnik, naprawdę mi się przydał.
    Polecam!

    Odpowiedz
  2. Kuba

    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…

    Odpowiedz
  3. Callahan

    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.

    Odpowiedz
  4. 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ść.

    Odpowiedz
  5. karol

    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…

    Odpowiedz
  6. Grzegorz

    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)

    Odpowiedz
    • daxoo

      Thunderbird portable i zawsze mamy wszystko pod ręką

      Odpowiedz
  7. Artur

    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?

    Odpowiedz
  8. Mikołaj

    @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 :)

    Odpowiedz
  9. 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

    Odpowiedz
  10. Indyk

    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)?

    Odpowiedz

Odpowiedz