Gdy biuro rachunkowe przesyła klientowi deklaracje, umowy albo raporty finansowe, zwykły e-mail nie daje wystarczającej ochrony poufnych danych. Algorytm RSA pomaga zabezpieczyć komunikację dzięki parze kluczy, ale jego skuteczność zależy od właściwego zastosowania, długości klucza i sposobu przechowywania sekretów. Wyjaśniam, jak działa, czym różni się szyfrowanie od podpisu cyfrowego oraz jak rozsądnie wykorzystać ten mechanizm w ochronie dokumentów.
Najważniejsze zasady bezpiecznego użycia tego algorytmu
- RSA korzysta z klucza publicznego i prywatnego, które tworzą nierozłączną parę.
- Do nowych wdrożeń należy wybierać co najmniej 2048 bitów, a przy długim okresie ochrony rozważyć 3072 bity.
- Do szyfrowania danych używa się schematu OAEP, a do podpisów cyfrowych PSS.
- Dużych plików nie szyfruje się bezpośrednio. Stosuje się połączenie RSA z szybkim szyfrowaniem symetrycznym, takim jak AES-256.
- Bezpieczny algorytm nie ochroni danych, jeśli ktoś zdobędzie klucz prywatny albo aplikacja używa przestarzałego trybu.
Czym jest szyfrowanie asymetryczne i do czego służy
RSA to algorytm kryptograficzny opracowany przez Rivesta, Shamira i Adlemana. Jego działanie opiera się na dwóch kluczach. Klucz publiczny można udostępniać innym osobom, natomiast klucz prywatny musi pozostać tajny, ponieważ pozwala odszyfrować wiadomość lub złożyć podpis.
Bezpieczeństwo tego rozwiązania wynika z trudności rozkładu bardzo dużej liczby na czynniki pierwsze. Dla użytkownika najważniejszy jest jednak praktyczny efekt. Nadawca może zaszyfrować dokument kluczem publicznym odbiorcy, a odczytać go będzie mógł tylko właściciel odpowiadającego mu klucza prywatnego.
Jak wygląda para kluczy
| Element | Rola | Czego nie wolno robić |
|---|---|---|
| Klucz publiczny | Służy do szyfrowania wiadomości dla właściciela oraz sprawdzania jego podpisu. | Nie należy traktować go jako tajnego hasła. |
| Klucz prywatny | Pozwala odszyfrować dane i tworzyć podpisy cyfrowe. | Nie wolno przesyłać go e-mailem ani przechowywać bez ochrony. |
| Certyfikat | Łączy klucz publiczny z konkretną osobą, firmą lub serwerem. | Nie potwierdza sam z siebie, że cały system jest bezpieczny. |
W księgowości taki model może zabezpieczyć na przykład przesyłanie zestawień płacowych albo dokumentów podatkowych. Samo posiadanie klucza publicznego przez kontrahenta nie wystarczy jednak do potwierdzenia jego tożsamości. Do tego potrzebny jest certyfikat, zaufany kanał przekazania klucza lub dodatkowa weryfikacja.

Jak przebiega szyfrowanie wiadomości krok po kroku
Mechanizm można przedstawić na prostym przykładzie. Firma chce przesłać biuru rachunkowemu plik zawierający dane pracowników. Biuro udostępnia swój klucz publiczny, a firma wykorzystuje go do zabezpieczenia materiału przed wysłaniem.
- Odbiorca generuje parę kluczy i chroni klucz prywatny.
- Nadawca pobiera klucz publiczny odbiorcy z wiarygodnego źródła.
- Program tworzy losowy klucz sesyjny i szyfruje nim dokument za pomocą AES.
- Klucz sesyjny zostaje zaszyfrowany kluczem publicznym odbiorcy.
- Odbiorca odszyfrowuje klucz sesyjny swoim kluczem prywatnym, a potem otwiera dokument.
Ostatnie dwa kroki pokazują, dlaczego RSA zwykle nie szyfruje całego pliku. Jest stosunkowo wolny i może obsługiwać tylko ograniczoną ilość danych zależną od długości klucza oraz zastosowanego wypełnienia. W praktyce używa się więc szyfrowania hybrydowego, czyli połączenia szybkiego AES z ochroną klucza sesyjnego przez RSA.
Przy pliku o wielkości 500 MB różnica jest zasadnicza. AES może zaszyfrować całość sprawnie, a algorytm asymetryczny zabezpiecza jedynie niewielki, losowo wygenerowany klucz. To rozwiązanie jest szybsze, łatwiejsze do skalowania i stosowane w wielu protokołach komunikacyjnych.
Szyfrowanie i podpis cyfrowy rozwiązują różne problemy
Te dwa zastosowania bywają mylone, ponieważ korzystają z tej samej pary kluczy. Szyfrowanie chroni poufność, czyli sprawia, że treść mogą odczytać tylko uprawnione osoby. Podpis cyfrowy potwierdza natomiast, kto wysłał dokument i czy jego treść nie została zmieniona.
| Cel | Używany klucz | Rezultat |
|---|---|---|
| Szyfrowanie | Klucz publiczny odbiorcy | Treść może odczytać właściciel klucza prywatnego. |
| Podpis cyfrowy | Klucz prywatny nadawcy | Odbiorca może zweryfikować autentyczność i integralność dokumentu. |
| Weryfikacja podpisu | Klucz publiczny nadawcy | Można sprawdzić, czy dokument pochodzi od właściwej osoby i nie został zmieniony. |
Przykładowo zaszyfrowana faktura ukrywa kwoty, dane kontrahenta i opis usługi. Podpisana faktura nie musi być tajna, ale pozwala wykazać, że po podpisaniu nie zmieniono numeru rachunku ani wartości podatku. W praktyce dokument może być jednocześnie zaszyfrowany i podpisany, jeśli wymaga tego procedura firmy.
Do podpisów stosuje się schemat PSS, a do szyfrowania OAEP. Oba mechanizmy dodają bezpieczne wypełnienie i losowość, dzięki czemu nie należy ich zastępować prostą operacją matematyczną ani starszymi ustawieniami tylko dlatego, że są dostępne w programie.
Jak wdrożyć RSA w firmie bez tworzenia nowych luk
Najwięcej problemów nie wynika z samej matematyki, lecz z zarządzania kluczami. Z mojego doświadczenia wynika, że firmy poświęcają dużo uwagi wyborowi algorytmu, a zbyt mało temu, kto ma dostęp do klucza prywatnego i co dzieje się po odejściu pracownika.
Dobierz długość klucza do okresu ochrony
Klucz 1024-bitowy nie powinien być używany w nowych systemach. 2048 bitów jest dziś praktycznym minimum dla wielu zastosowań, natomiast 3072 bity dają większy margines bezpieczeństwa przy danych, które mają pozostać chronione przez wiele lat. Klucze 4096-bitowe są jeszcze cięższe obliczeniowo, więc nie zawsze przynoszą proporcjonalną korzyść.
Jeżeli dokumenty finansowe muszą zachować poufność przez długi czas, rozsądniej wybrać 3072 bity i zaplanować migrację niż bezrefleksyjnie ustawiać największy możliwy parametr. NIST wskazuje długości 2048 i 3072 bitów jako istotne poziomy dla zarządzania kluczami, a RFC 8017 opisuje bezpieczne schematy używane z tym algorytmem.
Wybierz właściwe schematy i bibliotekę
- OAEP stosuj do szyfrowania, najlepiej z nowoczesną funkcją skrótu, na przykład SHA-256.
- PSS wybieraj przy tworzeniu podpisów cyfrowych.
- Unikaj nowych wdrożeń opartych wyłącznie na PKCS#1 v1.5, chyba że wymaga tego starszy system i masz zaplanowaną migrację.
- Korzystaj ze sprawdzonej biblioteki kryptograficznej, która jest regularnie aktualizowana.
- Nie implementuj operacji matematycznych samodzielnie w kodzie aplikacji.
Przeczytaj również: Zgubiony dowód? Zastrzeż go! Ochrona przed wyłudzeniem
Zabezpiecz klucz prywatny
Klucz prywatny powinien być przechowywany w menedżerze sekretów, sprzętowym module bezpieczeństwa albo przynajmniej w zaszyfrowanym magazynie z ograniczonymi uprawnieniami. Kopia zapasowa ma sens tylko wtedy, gdy również jest zaszyfrowana i objęta kontrolą dostępu.
Firma powinna prowadzić ewidencję kluczy, znać ich właścicieli i mieć procedurę unieważnienia po wycieku. Rotację najlepiej ustalić według ryzyka i okresu ważności certyfikatu. Przykładowo klucz używany przez system o dużej liczbie odbiorców może wymagać częstszej wymiany niż klucz wykorzystywany do pojedynczej, wewnętrznej usługi.
Kiedy lepiej użyć innego rozwiązania
RSA nie jest uniwersalnym szyfrem do każdego zadania. Dobrze sprawdza się przy ochronie kluczy sesyjnych, podpisach i wybranych mechanizmach uwierzytelniania, ale przy dużych zbiorach danych lepszy będzie szyfr symetryczny. Przy nowym systemie warto też sprawdzić, czy używany protokół nie preferuje nowocześniejszych mechanizmów opartych na krzywych eliptycznych.
| Potrzeba | Rozsądny wybór | Dlaczego |
|---|---|---|
| Szyfrowanie dużych plików | AES-256 w trybie AEAD | Jest szybki i zapewnia poufność oraz wykrywanie zmian. |
| Ochrona klucza sesyjnego | RSA z OAEP lub mechanizm uzgodnienia klucza | Chroni mały sekret używany później przez szyfr symetryczny. |
| Podpis dokumentu | RSA-PSS albo nowoczesny podpis eliptyczny | Potwierdza autora i integralność danych. |
| Dane przechowywane przez wiele lat | Plan migracji i kryptograficzna elastyczność | Pozwala wymienić algorytm bez przebudowy całego systemu. |
Osobnym tematem jest ryzyko rozwoju komputerów kwantowych. Odpowiednio duży komputer tego typu mógłby zagrozić obecnym systemom opartym na faktoryzacji, w tym RSA. Nie oznacza to, że mała firma powinna dziś wyłączać działające szyfrowanie, ale przy danych o długim okresie poufności warto przechowywać informacje o użytych algorytmach i unikać rozwiązań, których później nie da się łatwo wymienić.
Najczęstszy błąd polega na uznaniu, że sam certyfikat rozwiązuje problem ochrony danych. Nie rozwiązuje. Potrzebne są także aktualizacje, uwierzytelnianie wieloskładnikowe, kontrola uprawnień, kopie zapasowe i monitoring dostępu. Kryptografia ogranicza skutki przechwycenia danych, lecz nie zatrzyma osoby, która ma legalny dostęp do odblokowanego systemu.
Najbezpieczniejszy plan ochrony dokumentów księgowych
W małej firmie zacząłbym od spisania danych, które naprawdę wymagają ochrony. Inaczej traktuje się publiczny cennik, inaczej listę płac, deklaracje podatkowe czy skany dowodów osobistych. Taki podział pomaga dobrać zabezpieczenia bez niepotrzebnego komplikowania codziennej pracy.
- Ustal, które dokumenty mają być szyfrowane, a które dodatkowo podpisywane.
- Wybierz sprawdzone narzędzie korzystające z OAEP i PSS.
- Zastosuj minimum 2048 bitów, a dla długiej ochrony rozważ 3072 bity.
- Przechowuj klucz prywatny poza zwykłą skrzynką e-mail i ogranicz do niego dostęp.
- Przetestuj odzyskiwanie danych po utracie urządzenia lub odejściu pracownika.
- Raz na jakiś czas sprawdzaj, czy program i biblioteka kryptograficzna są aktualne.
Dobrze skonfigurowany algorytm RSA może być solidnym elementem ochrony danych finansowych, ale nie powinien być traktowany jak samodzielna tarcza. Najlepszy efekt daje połączenie go z szyfrowaniem symetrycznym, bezpiecznym przechowywaniem kluczy i prostą procedurą reagowania na ich utratę.
