Technologie
Na stronie tej znajdują się podstawowe pojęcia i informacje związane
z tematem szyfrowania i podpisywania poczty elektronicznej.
Spis treści:
Kryptografia klucza publicznego
Kryptografia klucza publicznego jest jedną z kluczowych technologii dzisiejszego
Internetu. Bez niej niemożliwe byłoby przeniesienie do sieci wielu usług, które na
co dzień wymagają zapewnienia poufności i uwierzytelnienia:
- bankowość elektroniczna,
- szyfrowanie i podpisywanie poczty elektronicznej,
- zdalny dostęp do sieci lokalnej i telepraca,
- i wiele innych.
Cała idea kryptografii
z kluczem publicznym może być obrazowo przedstawiona
w następujący sposób. Wyobraźmy sobie, że jesteśmy właścicielem samozatrzaskującej
się kłódki
i tylko my posiadamy do niej klucz. Taką odblokowaną kłódkę możemy wysłać
naszemu znajomemu.
Nasz znajomy może przy jej użyciu zabezpieczyć przesyłkę. Aby to zrobić nie potrzebuje klucza,
gdyż kłódkę wystarczy zatrzasnąć. Po zabezpieczeniu przesyłki może nam ją odesłać
z powrotem.
Ponieważ posiadamy klucz do kłódki, jesteśmy
w stanie otworzyć ją
i wydobyć zabezpieczoną zawartość.
W opisanej sytuacji kłódka stanowi
klucz publiczny, a klucz do kłódki jest
kluczem prywatnym. Oczywiście
w praktyce nie wykorzystuje się kłódek, tylko
odpowiednie formuły matematyczne. Niemniej jednak zasada działania mechanizmów kryptografii
klucza publicznego jest taka sama jak
w przypadku kłódki posiadającej mechanizm
samozatrzaskujący.
Kryptografia symetryczna
Historia szyfrów symetrycznych jest prawdopodobnie tak długa, jak historia piśmiennictwa.
Od wieków bowiem ludzie starali się ukryć informacje zapisane w postaci tekstu
jawnego. Cała idea kryptografii symetrycznej polega na tym, żeby na samym początku uzgodnić
między sobą tajny klucz.
Uzgodniony klucz jest następnie wykorzystywany do zabezpieczania przesyłanych informacji.
Jest to idea dużo prostsza od kryptografii klucza publicznego, ale ma jedną zasadniczą wadę:
musi istnieć możliwość bezpiecznej wymiany kluczy. Należy tutaj podkreślić, że
w dzisiejszych czasach nie stanowi to już większego problemu. Wynika to
z faktu łączenia ze sobą metod klucza publicznego
i kryptografii
symetrycznej.
Klucze i algorytmy
Przez lata wypracowano wiele standardów i norm kryptograficznych, które
określają jakich algorytmów i jakich długości kluczy należy używać. Co prawda
zalecenia dotyczące odpowiednich standardów zmieniają się dość wolno, ale warto od czasu
do czasu (przynajmniej raz na rok) sprawdzić, czy nie korzystamy czasem
z przestarzałych metod. W tym miejscu podajemy spis najpopularniejszych
algorytmów kryptograficznych oraz prezentujemy aktualne zalecenia dotyczące długości kluczy
dla wybranych mechanizmów.
Algorytm klucza publicznego RSA
Algorytm RSA jest bez wątpienia najszerzej stosowanym algorytmem klucza publicznego. Pozwala on
zarówno na podpisywanie, jak
i na szyfrowanie wiadomości. Aktualnie rekomendowane
długości kluczy wynoszą
Długość klucza | Czas życia |
1024 | do 2010 roku |
2048 | do 2030 roku |
3072 | po 2030 roku |
Algorytm klucza publicznego DSA
Standaryzacja tego algorytmu obejmuje jedynie klucze
o długości 1024 bitów. Ze względu
na ich niewielką długość zaleca się rezygnację
z tego algorytmu do 2010 roku.
- Trwają prace nad rozszerzeniem standardu DSA na większe długości kluczy kryptograficznych, jednak
do tej pory ukazały się w tej sprawie jedynie dokumenty robocze.
- Najprawdopodobniej standard ten zostanie wyparty przez algorytm ECDSA,
który oferuje dużo wyższy poziom ochrony, przy relatywnie krótkich kluczach.
Rodzina algorytmów klucza publicznego ECC
Są to algorytmy nazywane często
algorytmami następnej generacji. Określenie to wiąże się
z ich bardzo istotną cechą, która pozwala na zapewnienie bezpieczeństwa przy dużo
mniejszej długości klucza. Nie bez znaczenia pozostaje też fakt, że są one dużo lepiej dostosowane
do implementacji
w niewielkich urządzeniach (karty chipowe, tokeny, telefony).
Dwa najbardziej popularne mechanizmy kryptograficzne
z tej rodziny to: ECDSA
(podpis elektroniczny)
i ECDH (szyfrowanie). Aktualnie rekomendowane długości kluczy
wynoszą:
Długość klucza | Czas życia |
192 | do 2020 roku |
224 | do 2030 roku |
256 | po 2030 roku |
384 | po 2030 roku |
512 | po 2030 roku |
- Należy zwrócić uwagę na to, z jaką funkcją skrótu powiązany jest dany klucz ECDSA
(zobacz aktualne funkcje skrótu).
- System Windows XP nie wspiera tej rodziny algorytmów.
Algorytm symetryczny DES
Algorytm szyfrowania DES
w swojej podstawowej postaci (56 bitów klucza) jest
w tej chwili zupełnie niewystarczającym zabezpieczeniem. Urządzenia zdolne łamać klucze
takiej długości
w ciągu godziny kosztują obecnie około
10.000 USD.
Dlatego też użycie algorytmu DES powinno być ściśle powiązane
z zastosowaniem odpowiedniego
trybu (wydłużającego klucz). Aktualnie rekomendowane tryby pracy algorytmu DES pozwalają na szyfrowanie
z następującymi długościami klucza:
Długość klucza | Czas życia |
112 | do 2020 roku |
- Algorytm ten należy w miarę możliwości zastępować jego następcą - standardem
szyfrowania symetrycznego AES.
Algorytm symetryczny AES
AES jest aktualnym standardem szyfrowania symetrycznego.
W tej chwili to jeden
z najczęściej używanych szyfrów. Poniżej znajduje się rekomendacja wykorzystania
poszczególnych długości kluczy:
Długość klucza | Czas życia |
128 | po 2030 roku |
192 | po 2030 roku |
258 | po 2030 roku |
Funkcje skrótu MD5, SHA-1 i SHA-2
Aktualnie zaleca się używanie funkcji z rodziny SHA-2 (SHA-224, SHA-256, SHA-384
i SHA-512). Stosowanie funkcji SHA-1 jest zalecane jedynie do roku 2010,
a funkcja MD5 nie powinna już być
w ogóle używana.
Długość klucza, a bezpieczeństwo
Każdy
z wierszy poniższej tabeli zawiera mechanizmy kryptograficzne
o zbliżonym poziomie bezpieczeństwa.
RSA | DSA | ECC | 3DES | AES | SHA | Czas życia |
1024 | 1024 | 160 | - | - | SHA-1 | do 2010 roku |
2048 | - | 224 | 112 | - | SHA-224 | do 2030 roku |
3072 | - | 256 | - | 128 | SHA-256 | po 2030 roku |
7680 | - | 384 | - | 192 | SHA-384 | po 2030 roku |
15360 | - | 512 | - | 256 | SHA-512 | po 2030 roku |
Dane zaprezentowane
w tabeli pochodzą ze specjalnych publikacji opracowanych
przez amerykańską agencję
NIST (National Institute of
Standards and Technology).
Hasła do szyfrowania kluczy
Bezpieczeństwo kluczy przechowywanych
w zaszyfrowanych plikach zależy głównie od
tego, jak mocnego hasła zabezpieczającego użyjemy. Trzeba tutaj zaznaczyć, że używanie haseł
mających mniej niż 8 znaków jest bardzo ryzykowne. Jeśli taki zaszyfrowany plik wpadnie
w niepowołane ręce, to złamanie hasła przy obecnych możliwościach zajmie zaledwie
kilka godzin. Dlatego też należy chronić takie pliki przed nieuprawnionym dostępem
i stosować odpowiednio długie hasła.
Alternatywą dla kluczy zapisywanych w plikach jest zastosowanie komponentów
sprzętowych (tokenów lub kart inteligentnych), które zablokują dostęp po kilku wprowadzeniach
niepoprawnego PINu.
Certyfikaty
Certyfikaty lub inaczej identyfikatory cyfrowe (terminologia stosowana przez Microsoft)
to dokumenty cyfrowe, które potwierdzają tożsamość właściciela danego klucza publicznego.
Innymi słowy certyfikat wiąże konkretny klucz publiczny z osobą (organizacją),
do której ten klucz należy. Jego zadaniem jest upewnienie nas, że:
- wiadomość została podpisana przez daną osobę (organizację),
- zaszyfrowanie wiadomości wskazanym kluczem publicznym pozwoli odczytać wiadomość tylko
danej osobie (organizacji).
Certyfikaty podpisane są cyfrowo przez jakąś jednostkę nadrzędną (Centrum Certyfikacji
Kluczy). Istotne dla działania całego systemu jest zaufanie, którym użytkownik darzy
jednostkę nadrzędną. Jeżeli na przykład otrzymujemy od banku wiadomość podpisaną cyfrowo,
to po wyświetleniu certyfikatu zobaczymy, że jest on podpisany przez jedną ze znanych
jednostek - np.
VeriSign.
Daje nam to pewność, że nasz nadawca jest tym za kogo się podaje,
a jego
tożsamość została zweryfikowana przez znaną instytucję. Należy tutaj podkreślić, że
instytucja wystawiająca certyfikaty nie musi być znana powszechnie. Jeśli chcemy
zorganizować bezpieczną wymianę informacji
w obrębie sieci firmowej, to taką
instytucją może być na przykład nasza firma. Certyfikacja
w jednostkach
powszechnie znanych jest konieczna, gdy chcemy komunikować się
z zupełnie
obcymi nam osobami.
Certyfikaty X.509
Standard ANSI X.509 określa jaka jest wewnętrzna struktura certyfikatu. Opracowany został
w celu ujednolicenia formatu
i umożliwienia wymiany informacji
pomiędzy różnymi systemami
i aplikacjami. Dlatego poczta szyfrowana przez
program Outlook może być odszyfrowana programem Thunderbird
i vice-versa.
- Brak możliwości deszyfrowania wiadomości wysłanych przez inny program pocztowy
może być spowodowana jedynie brakiem wsparcia dla użytych algorytmów kryptograficznych.
- Osoby, które korzystają z programów pocztowych MS Outlook
i Outlook Express pod systemem Windows XP mają do dyspozycji jedynie
algorytm RSA z kluczami długości do 2048 bitów oraz funkcje skrótu MD5
i SHA-1. Jest to więc dość mocno przestarzały zestaw algorytmów.
W dużo lepszej sytuacji są użytkownicy korzystający z tych
programów pod systemem Windows Vista.
Certyfikaty PKCS#12 (PFX, P12)
Standard PKCS#12 (PFX, P12) został opracowany przez firmę RSA. Jego zadaniem jest określenie f
ormatu struktury, która umożliwia jednoczesne przechowywanie kilku certyfikatów X.509
i kluczy kryptograficznych. Można więc powiedzieć, że jest to taki magazyn
certyfikatów, który dodatkowo ma możliwość przechowywania klucza. Ułatwia to użytkownikowi
zarządzanie oraz import certyfikatów
i kluczy do odpowiednich programów.
Certyfikaty SSL
Są to certyfikaty X.509, które zawierają odpowiednie pola rozszerzeń. Pola te informują
przeglądarki oraz programy pocztowe
o przeznaczeniu kluczy umieszczonych
w tych certyfikatach. Informacje te mogą na przykład określać, że klucz
może być użyty jedynie do podpisywania wiadomości, itp.
Weryfikacja ważności certyfikatu
W przypadku, gdy użytkownik zorientuje się, że jego klucze mogły zostać skradzione
powinien poinformować o tym niezwłocznie Centrum Certyfikacji Kluczy.
Zadaniem CCK będzie w tym momencie unieważnienie certyfikatu
i opublikowanie odpowiedniej informacji o tym fakcie.
Listy CRL
Listy unieważnionych certyfikatów (CRL), to jeden ze sposobów publikowania informacji
o nieważnych certyfikatach. Po wygenerowaniu, lista jest zazwyczaj
umieszczana
w jakimś publicznie dostępnym miejscu (na przykład strona
internetowa). Daje to możliwość zainteresowanym użytkownikom pobrania jej
i weryfikacji, czy otrzymywane wiadomości nie są podpisywane przy
użyciu nieważnych kluczy.
Usługa OCSP
Usługa OCSP (Online Certificate Status Protocol) pozwala na weryfikację ważności
certyfikatu
w trybie online. Aby
w ten sposób publikować
informacje
o unieważnionych certyfikatach należy posiadać specjalny
serwer, który będzie udostępniał niezbędne informacje użytkownikom. Taką obsługę
certyfikatów unieważnionych warto rozważać
w przypadku, gdy listy
CRL są duże
i ich aktualizacja powoduje znaczne obciążenie łącza
internetowego.