poniedziałek, 30 maja 2011

Zmiana mac-a

ifconfig wlan0 down

ifconfig wlan0 hw ether 00:00:00:00:00:01

ifconfig wlan0 up

czwartek, 19 maja 2011

Bridge

#!/bin/sh
#Zaladowanie modulu mostka tak na wszelki wypadek :)
/sbin/modprobe bridge

#Musimy zresetować adresy na kartach sieciowych
ifconfig eth0 up 0.0.0.0
ifconfig eth1 up 0.0.0.0


# Tworzymy mostek o nazwie 'br0'.
brctl addbr br0

# Dodajmy do mostka br0 obie karty sieciowe
brctl addif br0 eth0
brctl addif br0 eth1

# Przydzielmy mostkowi adres ip, żeby komputer na eth0 i eth1 widział serwer na którym jest mostek
ifconfig br0 up 192.168.1.1 netmask 255.255.255.0

wtorek, 10 maja 2011

Certyfikat SSL - jak to działa ?

Podstawy SSL (Secure Socket Layer)

SSL jest protokołem sieciowym używanym do bezpiecznych połączeń internetowych. Został opracowany przez firmę Netscape i powszechnie go przyjęto jako standard szyfrowania na WWW.

Normalnie strony z serwerów oraz formularze do serwera są przesyłane przez sieć otwartym tekstem, który stosunkowo łatwo przechwycić (szczególnie w sieci lokalnej). Jeśli serwer używa protokołu SSL do komunikacji z przeglądarką, wówczas informacja w obie strony (między serwerem www i przeglądarką) jest przesyłana przez sieć w sposób zaszyfrowany.

SSL realizuje szyfrowanie, uwierzytelnienie serwera (ewentualnie użytkownika również) i zapewnienie integralności oraz poufności przesyłanych informacji. W momencie nawiązania połączenia z bezpieczną (stosującą protokół SSL) stroną www następuje ustalenie algorytmów oraz kluczy szyfrujących, stosowanych następnie przy przekazywaniu danych między przeglądarką a serwerem www.

Protokół SSL jest jedną z metod zapewniających bezpieczeństwo w transakcjach finansowych.

Moc szyfrowania

Ważną sprawą dla bezpieczeństwa zaszyfrowanych informacji jest długość używanych kluczy (np. 128 bitów). Im klucze są dłuższe, tym trudniej jest informacje odszyfrować. Powszechnie się uważa, że:

dla kluczy asymetrycznych: 512 - to zbyt mało, 768 - stosunkowo bezpiecznie, 1024 - silne bezpieczeństwo.
dla kluczy symetrycznych: 40 - to zbyt mało, 56 - stosunkowo bezpiecznie, 128 - silne bezpieczeństwo.

Łamanie kluczy metodą brute force (sprawdzanie po kolei możliwych kluczy).

Złamanie klucza 40 bitowego zajęło 3 godziny sieci komputerów.
Złamanie klucza 56 bitowego (w algorytmie RC5) zajęło 250 dni w ramach jednego z projektów distributed.net. Eksperyment został przeprowadzony przez sieć komputerów, których moc obliczeniowa była równoważna 26 tysięcom komputerów klasy Pentium 200.
Złamanie klucza 128 bitowego zajęłoby 1 bilion x 1 bilion lat (za pomocą pojedynczego superkomputera).

Powszechnie używa się takich skrótów myślowych:

SSL 128 bitów - transmisja danych szyfrowana z użyciem klucza symetrycznego o długości 128 bitów.
SSL 40 bitów - transmisja danych szyfrowana z użyciem klucza symetrycznego o długości 40 bitów.

Certyfikat SSL

W pierwszej fazie nawiązywania połączenia SSL serwer i przeglądarka wymieniają tzw. certyfikaty. Certyfikat jest odpowiednikiem dokumentu tożsamości dla serwera WWW oraz dla klienta banku. Certyfikat zawiera następujące składniki:

nazwę właściciela certyfikatu,
nazwę wydawcy certyfikatu,
publiczny klucz właściciela dla algorytm asymetrycznego,
cyfrowy podpis wystawcy certyfikatu (np. Verisign),
okres ważności,
numer seryjny (tzw. fingerprint).

Certyfikaty są wydawane przez niezależne i zaufane urzędy - Certification Authorities (CA). Wydanie certyfikatu jest poprzedzone sprawdzeniem autentyczności danego wnioskodawcy (czy taki ktoś istnieje, czy rzeczywiście jest tym za kogo się podaje).

Certyfikaty SSL serwera zapewniają uwierzytelnienie serwera bankowego. Łącząc się z serwerem WWW sprawdzaj czy jego certyfikat jest ważny oraz sprawdzaj informacje zawarte w certyfikacie (np. czy nazwa właściciela jest prawidłowa).

Oznaczenia SSL

Połączenie się ze stroną WWW poprzez SSL jest oznaczane w przeglądarkach następująco:

W obu przeglądarkach aktualny adres zaczyna się od https://.
W Internet Explorer, w prawej części paska stanu jest wyświetlany symbol kłódki. Kilkając kłódkę można zobaczyć szczegółowe informacje o certyfikacie. Po najechaniu na symbol kłódki wyświetlana jest informacja o długości klucza symetrycznego.
W Netscape Communicator zamknięta kłódka pokazuje się w lewej części paska stanu (normalnie jest otwarta). Wybierając opcję Security (Toolbar) możemy obejrzeć (View Certificate) certyfikat autentyczności danej strony. Wybierając polecenie View | Page Info możemy zobaczyć, jaki klucz symetryczny jest używany w transmisji. We wcześniejszych wersjach zamiast kłódki, występował cały kluczyk (SSL włączone) lub był przełamany (bez SSL).

Zbadaj teraz swoją przeglądarkę wchodząc na szyfrowane strony firmy Thawte (serwis posiada certyfikat SSL 128): https://www.thawte.com

Przeglądarki WWW: SSL 128 czy 40?

Długość klucza użyta w SSL zależy od dwóch elementów:

Rodzaju certyfikatu SSL serwera.
Przeglądarki WWW i jej możliwości szyfrowania.

Zawsze używany jest klucz o maksymalnej długości obsługiwanej przez oba elementy.

Certyfikaty serwerów dzielą się na dwa rodzaje: pełny SSL oraz SSL/SGC (Server Gated Cryptography). SGC jest pewnym uproszczeniem SSL na potrzeby omnięcia ograniczeń eksportowych (patrz dalej). Inicjacja połączenia szyfrowanego przy użyciu SSL/SGC 128 jest mniej bezpieczna, niż przy standardowym SSL 128, transmisja danych jest identyczna w SSL/SGC i SSL.

Przeglądarki IE oraz NN od wersji 4.0 wzwyż standardowo obsługują szyfrowanie SSL tylko do 56 bitów oraz szyfrowanie SSL/SGC do 128 bitów. Do pełnej obsługi szyfrowania SSL 128 potrzebna jest rozszerzona wersja przeglądarki (patrz dalej).

Polskie banki (np. Pekao, BPH, Fortis) w większości posiadają certyfikaty SSL/SGC 128 bitów, co oznacza że do korzystania z ich usług wystarczy standardowa zalecana przez bank przeglądarka. Certfyfikaty SSL 128 bitów posiada wiele sklepów poza Polską, jak również polski onet (np. adres https://secure.onet.pl), co oznacza że do korzystania z tych serwisów bardzo zalecane jest posiadanie rozszerzonej przeglądarki z pełnym SSL 128.

Przeglądarki obsługujące tylko 40-bit (lub 56-bit) dla certyfikatów SSL oraz 128-bit dla certyfikatów SSL/SGC to:

Netscape Communicator 4.0 i wyżej (wersja angielska)
http://home.netscape.com/download/
Internet Explorer 4.0 i wyżej (wersje polska i angielska)
http://www.microsoft.com/downloads/

Przeglądarki obsługujące w pełni szyfrowanie 128-bit dla certyfikatów SSL oraz SSL/SGC to:

specjalna wersja Netscape Communicator 128-bit (zwykle na CD-ROM'ach zamieszczana jest wersja Netscape Communicator 40-bit lub 56-bit) - musisz zainstalować specjalną wersję przeglądarki od nowa; od wersji 4.75 jest jedno - pełne 128-bitowe - wydanie;
http://home.netscape.com/download/
dodatek Fortify dla Netscape - dodatek doinstalowywany do Twojej przeglądarki Netscape (już od wersji 2.02), jeszcze brak takiego dodatku dla Sylaby;
http://www.fortify.net/ - sekcja Download
dodatek High Encryption Pack dla IE - dodatek doinstalowywany do Twojej przeglądarki IE. http://www.microsoft.com/downloads/ - wybierz wersję IE, którą posiadasz, a następnie znajdź odpowiedni link

Wszystkie wymienione przeglądarki i dodatki są bezpłatne, zarówno dla użytku domowego jak i komercyjnego.

Ograniczenia eksportowe związane z SSL 128 bitów obowiązywały do 2000-01-14. Ograniczenie nie pozwalały na ściąganie do naszego kraju przeglądarek z pełną obsługą 128-bitów SSL. Obecnie Polska nie jest obwarowana żadnymi ograniczeniami co do długości kluczy. Ograniczenia pozostały dla krajów: Afganistan, Kuba, Iran, Irak, Libia, Północna Korea, Serbia (z wyjątkiem Kosowa), Sudan, Syria.

Regulacja eksportowa dotycząca kryptografii z dnia 14.01.2000 wydana przez Departament Handlu rządu USA.

Test SSL przeglądarki

Pod jednym z poniższych adresów możesz sprawdzić czy Twoja przeglądarka obsługuje w pełni szyfrowanie RC-4 128 bitów w SSL, czy SSL 40 bitów.

https://www.rbc.com/cgi-bin/security/browser_test.cgi
https://www.fortify.net/sslcheck.html

Powyższe testy pokazują 128-bitów tylko dla przeglądarek, które w pełni obsługują szyfrowanie 128-SSL. Testy nie wskazują, czy przeglądarka obsługuje 128 bitów w SGC.

Algorytmy w SSL

SSL jest protokołem w którym stosuje się różne algorytmy szyfrujące.

Algorytm asymetryczny z kluczem publicznym i prywatnym serwera WWW (np. algorytm RSA). Ten algorytm jest używany w czasie inicjacji połączenia SSL: przeglądarka generuje losowo klucz prywatny symetryczny (dla następnego algorytmu), szyfruje go z użyciem klucza publicznego serwera i przesyła go do serwera, serwer za pomocą swojego klucza prywatnego asymetrycznego odczytuje klucz prywatny symetryczny.
Algorytm symetryczny z kluczem prywatnym (np. RC-4). Kiedy już przeglądarka oraz serwer posiadają ten sam klucz prywatny, rozpoczyna się komunikacja. Cała transmisja danych między serwerem i przeglądarką jest szyfrowana za pomocą klucza prywatnego symetrycznego. Jeden klucz jest używany podczas jednej sesji, w następnej sesji zostaje wygnerowany już nowy klucz prywatny.
Funkcja skrótu (np. MD-5) używana do generowania podpisów cyfrowych dla przesyłanej informacji. Podpisy zapewniają integralność przesyłanej informacji. Jeśli ktoś spróbuje zmienić dane w trakcie transmisji, zostanie to wykryte.

Meandry SSL

Poniższy rysunek przedstawia rodzaje szyfrowania SSL występujące między różnymi przeglądarkami i różnymi serwerami.

środa, 27 kwietnia 2011

Snort rules

Moduł sygnatur

Główny mechanizm systemu detekcji zagrożeń polega na dopasowaniu przetworzonych pakietów i ich zrekonstruowanych strumieni z bazą sygnatur. System detekcji porównuje cechy pakietu ze zbiorem reguł. Po dopasowaniu, zostaje podjęta odpowiednia akcja. Do porównywalnych cech należą atrybuty główne - adresy, porty źródłowe i docelowe oraz opcje pomocnicze: flagi TCP identyfikujące np. żądania związane z WWW, różne typy pakietów ICMP, opcje IP czy wreszcie sama treść pakietu. Na razie w głównej części reguł możliwe jest śledzenie protokołów IP, ICMP, TCP i UDP. Autorzy przewidują rozszerzenie Snorta o następne protokoły sieciowe, m.in. IPX, GRE, czy protokoły wymiany informacji między routerami - RIP, OSPF oraz IGRP.

Reguły identyfikowania ataku pozwalają na podjęcie pięciu rodzajów akcji: przepuszczenia pakietu (pass), zapisania informacji do dziennika (log), ogłoszenia alarmu (alert), alarmowania i podjęcia do działania innej dynamicznej reguły (activate) i pozostanie w spoczynku do czasu aktywowania przez regułę activate, po czym działanie jako reguła log (dynamic).

Sygnatury Snorta zazwyczaj składają się z dwóch głównych sekcji - nagłówka i ciała (treści). Nagłówek określa m.in., jaką akcję należy podjąć po przypasowaniu reguły, informacje o wykorzystanym protokole, adresy bądź porty źródłowe i docelowe. Ciało reguły pozwala rozwinąć informacje zawarte w nagłówku, tu także podaje sią treść wzbudzanych alarmów i różnego rodzaju informacje dodatkowe (np. odniesienia do bazy z opisami danego naruszenia, tzw. referencje - Bugtraq, CERT czy CVE).

Najprostsze sygnatury obejmują wskazanie akcji, protokołu, kierunku, adresów i portów będących przedmiotem obserwacji, jak np. poniższa reguła, stanowiąca reakcję na próbę skorzystania z usługi pop3 (port 110):

log tcp any any -> 192.168.1.0/24 110

W sygnaturach można umieszczać zmienne zdefiniowane jako adresy sieci (wg CIDR) lub porty zapisane w pliku konfiguracyjnym snort.conf:

log tcp $EXTERNAL_NET -> $HOME_NET 110

W podanych powyżej regułach wykorzystany był jednokierunkowy operator "->". Język sygnatur umożliwia zadeklarowanie reguły, który dopasuje pakiety poruszające się w obu stronach operatorem dwukierunkowym "<>", np.:

alert tcp any any <> $HOME_NET 23

Do zasadniczej części reguły można dodać ograniczone okrągłymi nawiasami pole opcjonalne (tzw. ciało), zawierające definicję bardziej złożonych i wyrafinowanych działań związanych z przejęciem danego pakietu. Użytkownik może także sformułować własny komunikat, np.:

log tcp $EXTERNAL_NET -> $HOME_NET 110 \
("msg: Proba polaczenia z pop3";)

Podjęte działania nie muszą być ograniczone do pojedynczej czynności. Średnik separuje deklaracje poszczególnych działań, jak w poniższym przykładzie, w którym opcją content testowana jest treść przesyłanego strumienia TCP, a w razie odnotowania podejrzanego ciągu znaków generowany jest odpowiedni komunikat:

alert tcp any any -> 192.168.1.0/24 80 (content: "/cgi-bin/phf"; \
msg: "PHF probe!";)

Opcji content można użyć nawet kilka razy w jednej regule. Pozwala to na wyszukiwanie wielu różnych ciągów znaków w obrębie przesyłanych treści.

Warto nadmienić, iż do przeszukania treści pakietów i reasemblowanych strumieni używany jest obecnie najbardziej efektywny algorytm - Boyera-Moore'a, którego wydajność rośnie wraz z długością poszukiwanych ciągów. Możliwość rekonstrukcji całych strumieni transmisji TCP, wglądu w warstwę aplikacyjną i efektywne wyszukiwanie treści pozwala na walkę przy użyciu Snorta również z zainfekowanymi załącznikami elektronicznych listów. Oprócz przeszukiwania treści pakietów możemy badać pod różnymi kątami ich nagłówki, m.in. pola i kody ICMP, pole TTL, rozmiary fragmentacji czy numery sekwencji.

Bardzo silną konstrukcją w regułach Snorta jest możliwość aktywowania kolejnych reguł po pierwszym dopasowaniu. Konstrukcja ta nosi nazwę activate/dynamic rules i wygląda w następujący sposób:

activate tcp any any -> $HOME_NET 143 (flags: PA; content: \
"|E8C0FFFFFF|bin|;activates: 1; msg: "IMAP buffer overflow!";)
dynamic tcp any any -> $HOME_NET 143 (activated_by: 1; count: 50;)

Opcje activates i activated_by wiążą reguły activate i dynamic. W powyższym przykładzie wykrycie ataku typu buffer overflow na serwer IMAP powoduje uruchomienie kolejnej, dynamicznej reguły, która zbiera treść następnych 50 pakietów (opcja count) w celu późniejszej analizy. Druga opcja w reguły dynamicznej jest obligatoryjna - reguła zawierająca wyłącznie opcję dowiązania do innej, macierzystej konstrukcji jest bezużyteczna.

Następne godne uwagi parametry, to resp i react wspierają mechanizm elastycznego reagowania na atak. Opcja resp może doprowadzić do zerwania połączenia, np. poprzez wysłanie do atakującego komunikatu ICMP o niedostępności trasy do zaatakowanego komputera, natomiast react służy do blokowania dostępu do usług związanych z WWW.

Naprawa systemu pliku

System plików to mechanizm organizowania różnych typów pamięci masowej (dysków twardych, płyt CD/DVD i innych) i prezentowania ich użytkownikowi. Każdy system plików składa się z kilku elementów. Blok startowy (boot block) zawiera informacje potrzebne do uzyskania przez system dostępu do systemu plików. Superblok zawiera informacje o strukturze samego systemu plików (długość i położenie tablic i-węzłów, rozmiar grup cylindrów itd.). Lista i-węzłów (inode list) to zbiór struktur danych, zawierających informacje o poszczególnych plikach w systemie (co gdzie jest itd.). Blok danych - obszar na nasze dane.
System plików może być zamontowany lub odmontowany (dostępny lub nie). Systemy plików do montowania w czasie rozruchu systemu zawiera plik /etc/fstab a listę zamontowanych obecnie nośników - /etc/mtab.

PONIŻSZYCH POLECEŃ OPERUJĄCYCH NA PARTYCJACH PROSZĘ NIE WYKONYWAĆ DLA ZABAWY/PRAKTYKI... MOGĄ USZKODZIĆ ISTNIEJĄCE SYSTEMY PLIKÓW - ZNISZCZYĆ NASZEGO LINUXA (JEŻELI UŻYTE NIEPOPRAWNIE/NIEPOTRZEBNIE ITD.)


debugfs opcje
Sprawdza i debuguje system plików ext2/3. Jest to polecenie interaktywne i stosujemy je na partycje odmontowane lub zamontowane "tylko do odczytu" (rw, read only). Źle zastosowane może uszkodzić poprawny system plików... Przykłady:
debugfs -w /dev/hda1
Co sprawdzi system plików na pierwszej partycji i naprawi w miarę możliwości napotkane błędy (debugfs pracuje w trybie odczytu i zapisu).
debugfs -R show_super_stats /dev/hda1
Co wyświetli zawartość superbloku pierwszej partycji.
Opcje:

-w urządzenie - otwiera system plików w trybie do odczytu i zapisu
-R polecenie - wykonuje polecenie i kończy działanie
-R help - wyświetla listę poleceń dla -R



df
Wyświetla rozmiar wolnej i wykorzystanej przestrzeni w systemie plików. Przykłady:
df -h


e2fsck opcje urządzenie
Służy do sprawdzania wewnętrznej spójności partycji typu ext2 i 3. Polecenie to potrafi w miarę możliwości naprawić błędy. Aby wymusić sprawdzanie spójności:
e2fsck -f /dev/hda3

Opcje:

-a - automatycznie naprawia system plików jeżeli to możliwe
-c - znajduje i oznacza wszystkie uszkodzone bloki w systemie plików



.

fsck opcje urządzenie/punkt montowania
Sprawdza i naprawia system plików linuksa. Jako cel możemy podać nazwę urządzenia lub jego punkt montowania. Przykłady:
fsck -N /mnt/hda2
Opcje:

-N - pokazuje co zostałoby zrobione/naprawione lecz nie dokonuje żadnych zmian
-A - za jednym zamachem próbuje sprawdzić wszystkie systemy plików wymienione w /etc/fstab
-a - naprawia system plików bez pytania o potwierdzenie
-r - naprawia system plików pytając o potwierdzenie.



mount opcje urządzenie punkt montowania
Montuje systemy plików. Przykłady:
mount -t vfat /dev/hda1 /mnt/win
mount -t reiserfs /dev/hda2 /mnt/linux2
mount -t iso9660 /dev/sr0 /media/cdrom
Pierwsze polecenie montuje partycję FAT (w linuxie oznaczaną jako vfar), drugie partycję linuksową reiserfs a trzecie płytę CD/DVD (iso9660). Opcje:

-t typ systemu plików - Określa typ systemu plików
-a - za jednym zamachem próbuje zamontować wszystkie systemy plików wymienione w /etc/fstab
-r - montuje system plików w trybie tylko do odczytu.
-w - montuje system plików w trybie do oczytu i zapisu



rdev
[ROOT] Wyświetla linię z pliku /etc/mtab dla bierzącego głównego systemu pliów (nazwę urządzenia na którym jest system z którego korzystamy). Przykłady:
rdev


umount punkt montowania
Odmontowuje systemy plików. Przykłady:
umount /mnt/win

Polecenie dd

Polecenie dd to narzędzie do niskopoziomowego kopiowania bit po bicie. Działa w ten sposób, że kopiuje bit po bicie źródło if= do lokalizacji of=. Można określić ile bajtów ma być przekopiowanych.

To copy a hard disk, one would use the following command (whilst root):

dd if=/dev/hdx of=/dev/hdy

Tworzenie obrazu ISO partycji;

dd if=/dev/hda1 of=/katalog/obraz_partycji1.iso

i odtwarzanie partycji:

dd if=/katalog/obraz_partycji1.iso of=/dev/hda1

Wykonanie komendy dd if=/dev/hda1 spowoduje wyrzucenie zawartości partycji na standardowe wyjscie, zatem mozemy w locie skompresować obraz:

dd if=/dev/hda1 | gzip > /katalog/obraz_parycji1.gz

Przywracanie partycji ze skomresowanego obrazu:

gzip -dcv obraz_partycji1.gz | dd of=/dev/hda1

w tym przypadku dd pobiera dane ze standardowego wejścia i zapisuję na partycji.

Tworzenie kopii MBR:

dd if=/dev/hda of=/katalog/mbr_backup bs=512 count=1

Generowanie pliku z losowymi danymi 1GB:

dd if=/dev/urandom of=1gb.random bs=512 count=2097152

Tworzenie obrazu płyty kompaktowej

dd if=/dev/cdrom of=/katalog/obraz_plyty.iso

wtorek, 26 kwietnia 2011

Szyfrowanie poczty w Thunderbird

W kategorii: bezpieczeństwo danych, zabezpieczenia, gpg, thunderbird, e-mail, szyfrowanie
Bezpieczeństwo-pocztyPo przeczytaniu 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.

Jeśli tekst będzie dla Ciebie przydatny, prosimy o umieszczenie linku do artykułu na Twojej stronie www.
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:

* szczegółowe dane osobowe Klientów,
* strategiczne plany przedsiębiorstwa,
* inne 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.
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.
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 (sekcja Binaries, "GnuPG 1.4.9 compiled for Microsoft Windows").

Można również skorzystać z Bezpośredniego linku do pobrania wersji 1.4.9 GPG.
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".
szyfrowanie-poczty-thunderbird-instalacja-enigmail



Po wybraniu pobranego przez nas wcześniej pliku instalacyjnego Enigmail (np. enigmail-0.95.7-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. W niniejszym tekście 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.
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. 6 miesięcy.

Thunderbird - generacja kluczy

W związku procedurą generacji haseł mogą nasunąć się następujące pytania:

* W jakim celu dodatkowo zabezpieczać klucz prywatny?
Otóż 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.

* Dlaczego warto zmienić okres ważności klucza na krótki?
Procedura wymiany pary kluczy po kompromitacji (np. upublicznieniu) klucza prywatnego jest 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 6 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).

Aby przetestować poprawność szyfrowania, wykorzystać można nasz klucz publiczny dostępny tutaj (umożliwiający przesyłanie szyfrowanych maili na adres: securitum@securitum.pl).

Klucz publiczny można zaimportować wybierając z menu głównego Thunderbird:

OpenPGP -> Zarządzanie kluczami -> Plik -> Import kluczy z pliku

Import klucza publicznego



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 securitum@securitum.pl).

Jeśli chcemy zaszyfrować e-mail, wystarczy podczas tworzenia wiadomości, w menu OpenPGP zaznaczyć opcję "Wyślij z szyfrowaniem". 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).

Thunderbird - wysylka szyfrowanej poczty



Podsumowując: aby wysłać zaszyfrowany e-mail należy:

* Poprosić adresata e-maila o klucz publiczny.
* 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:
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ę.

Thunderbird - wysylka klucza publicznego


Przekazując plik

* Wybieramy opcję: OpenPGP-> zarządzanie kluczami.
* Klikamy prawym przyciskiem na naszym kluczu i wybieramy opcję eksport kluczy do pliku.
* Na pytanie "Czy chcesz włączyć klucz prywatny do zapisywanego pliku z kluczami OpenPGP" należy odpowiedzieć: NIE. Przypominamy: nazwa "klucz prywatny", podpowiada że nie powinniśmy nikomu przekazywać tego klucza.
* Zapisany plik dostarczamy (np. za pośrednictwem pendrive) osobom, które chcą do nas wysyłać szyfrowaną korespondencję.

Z wykorzystaniem serwera kluczy

* W managerze zarządzania kluczami (OpenPGP -> Zarządzanie Kluczami) odpowiednie opcje dostępne są w menu (Serwer Kluczy).
* 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. Po wpisaniu poprawnego hasła, e-mail zostanie automatycznie odszyfrowany i pokazany w analogicznej formie jak korespondencja nieszyfrowana.
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.
Weryfikacja instalowanego oprogramowania

Aby zwiększyć bezpieczeństwo całej procedury warto weryfikować instalowane binaria - np. poprzez kontrolę sumy SHA-1.
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.

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.