Szyfrowanie poczty przy pomocy Enigmail

Spis treści

Szyfrowanie wiadomości email można uznać za paranoiczne podejście do kwestii wymiany informacji, bo zwykły człowiek mówi sobie: "ja przecie za pomocą poczty nie wysyłam nic ważnego, nawet swoich nagich fotek, a nawet jeśli już, to są one od pasa w dół. Poza tym, gmail jest szyfrowany, bo używa SSL/TLS". SSL/TLS, co prawda, jest ale ogranicza się do szyfrowania tego co robimy na gmailu. Same wiadomości natomiast są przesyłane między różnymi serwerami i niekoniecznie są szyfrowane. Poza tym google kiedyś wspominał, że w przypadku gdy policja będzie żądała dostępu do naszej skrzynki pocztowej, to nie dość, że on im to umożliwi, to jeszcze wyciągnie wszelkie maile jakie przez tę skrzynkę zostały przepuszczone -- zarówno te odebrane jak i wysłane.

Szyfrować każdy może

Gdyby ludzie wiedzieli jak prosto można zabezpieczyć komunikację między dwoma punktami, nie mielibyśmy problemów z wdrażaniem różnych technik szyfrowania danych. Jak to się jednak dzieje, że po mimo faktu prostoty implementacji oprogramowania szyfrującego, cała rzesza osób w dalszym ciągu nie potrafi zabezpieczyć swojej poczty? Obecnie cała filozofia szyfrowania sprowadza się do zainstalowanie jednego pakietu czy wtyczki i wyklikania odpowiednich opcji. W tym wpisie postaram się prześledzić szyfrowanie poczty na przykładzie klienta mailowego Thunderbird i jednego z jego dodatków enigmail.

W debianie nie ma takiej aplikacji jak Thunderbird ale jest za to Icedove, który z grubsza ma tylko zmienioną nazwę, także wszystkie kroki przeprowadzone pod kątem Thunderbirda stosują się także do Icedove. Jeśli jednak zamierzamy korzystać z Icedove, to mamy także w systemie dostępny pakiet enigmail , który możemy doinstalować. W przeciwnym wypadku, trzeba go będzie pobrać ze strony mozilli i ręcznie zainstalować.

Zakładam, że mamy już dodane konto pocztowe, oraz, że orientujemy się w kwestiach związanych z kluczami gpg. Jeśli nie, to polecam pierw zapoznać się z artykułami na temat pliku konfiguracyjnego gpg.conf, jak i również ze sposobem tworzenia samych kluczy gpg.

Konfiguracja dodatku enigmail

Po zainstalowaniu dodatku enigmail w Thunderbirdzie, w jego menu powinna się nam pojawić dodatkowa pozycja:

enigmail-menu-thunderbird

Mamy tam do dyspozycji szereg opcji, dzięki którym jesteśmy w stanie tworzyć, usuwać klucze, przypisywać je do określonych kont pocztowych. Możemy również szyfrować, deszyfrować i podpisywać wiadomości przy pomocy tych kluczy:

enigmail-menu

Jak wspomniałem wyżej, klucze możemy tworzyć za pomocą narzędzia gpg . Jeśli jednak chcemy tego dokonać za pośrednictwem dodatku enigmail, to wybieramy z menu Enigmail => Key Managment i tam już dajemy Generate => New Key Pair . Powinno nam się pokazać to poniższe okienko:

generowanie-klucza-enigmail

Zgodnie z informacją widoczną wyżej, generowanie klucza może zająć nawet kilka minut. By przyśpieszyć ten proces i poprawić siłę samego klucza, dobrze jest zmobilizować komputer do generowania losowego szumu. Możemy to zrobić przez wciskanie przycisków na klawiaturze, chaotyczne poruszanie myszą, czy też przez odczyt/zapis danych na dysku.

Po wygenerowaniu klucza, zostaniemy także poproszeni o stworzenie certyfikatu unieważniającego klucz. To na wypadek gdyby klucz szyfrujący wpadł w niepowołane ręce:

generowanie-certyfikatu-enigmail

Klucz powinien już widnieć na liście kluczy gpg:

lista-kluczy-enigmail

Pamiętajmy też by wysłać klucz na jeden z serwerów kluczy.

Jeśli z jakichś względów byśmy zmieniali adres email, lub też klucz nie został by przypisany do żadnego z istniejących kont, to by go wykorzystać musimy go powiązać z jakimś kontem. W tym celu przechodzimy w menu Thunderbirda do Enigmail => Edit Per Recipient Rules i definiujemy reguły dla kluczy:

reguly-kluczy-enigmail

Po określeniu dopasowania, nasz klucz powinien pojawić się na liście reguł:

lista-regul-enigmail

Możemy naturalnie dostosować sobie poszczególne opcje. Ja domyślnie podpisuje wszystkie swoje wiadomości, dlatego też zaznaczyłem jedynie sign .

Szyfrowanie poczty

Mając już przygotowany klucz, przejdźmy do zaszyfrowania testowej wiadomości. Zaszyfrowanego maila tworzymy dokładnie w taki sam sposób, co w przypadku jego zwykłego odpowiednika:

szyfrowanie-wiadomosci-enigmail

Jeśli kłódka jest wciśnięta, wiadomość będzie szyfrowana. Podobnie sprawa ma się w przypadku ołówka, z tym, że on odpowiada za podpisywanie wiadomości. Jeśli nie wysyłaliśmy klucza publicznego na jeden z serwerów kluczy, to możemy dołączyć klucz publiczny do samej wiadomości. W ten sposób odbiorca będzie w stanie zweryfikować sygnaturę, która zostanie przez nas złożona.

Jeśli to my jesteśmy odbiorcą wiadomości i w przypadku gdy ona została zaszyfrowana, to raczej nie będziemy w stanie jej przeczytać bez odpowiedniego klucza prywatnego:

zaszyfrowania-wiadomosc-enigmail

Jeśli jednak ktoś zaszyfrował tę wiadomość przy pomocy naszego klucza publicznego, to przy założeniu, że mamy odpowiadający mu klucz prywatny, jesteśmy w stanie odszyfrować tę wiadomość. W tym celu z menu wybieramy Enigmail => Decrypt/Verify. Przy czym, nie musimy tego robić ręcznie za każdym razem gdy tylko otrzymamy zaszyfrowaną wiadomość.Możemy zaznaczyć opcję pod Enigmail => Automatically Decrypt/Verify Messaged, by wiadomości były automatycznie deszyfrowane i weryfikowane w przypadku gdy posiadamy odpowiednie klucze. Tak czy inaczej wiadomość powinna zostać odszyfrowana:

odszyfrowana-wiadomosc-enigmail

Jak widzimy wyżej, wszystko przebiegło bez problemów. Sygnatura także jest w porządku. Od tej chwili szyfrowanie/deszyfrowanie wiadomości odbywać się będzie automatycznie. W przypadku gdy ktoś prześle nam zaszyfrowaną wiadomość naszym kluczem publicznym, to by uzyskać do niej dostęp będziemy musieli podać hasło do klucza prywatnego. W taki oto prosty sposób mamy pewność, że tylko my i nasz rozmówca znamy treść wiadomości.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.