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:

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ść kluczaCzas życia
1024do 2010 roku
2048do 2030 roku
3072po 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.

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ść kluczaCzas życia
192do 2020 roku
224do 2030 roku
256po 2030 roku
384po 2030 roku
512po 2030 roku

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ść kluczaCzas życia
112do 2020 roku

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ść kluczaCzas życia
128po 2030 roku
192po 2030 roku
258po 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.
RSADSAECC3DESAESSHACzas życia
10241024160--SHA-1do 2010 roku
2048-224112-SHA-224do 2030 roku
3072-256-128SHA-256po 2030 roku
7680-384-192SHA-384po 2030 roku
15360-512-256SHA-512po 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:

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.

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.