Jak wygenerować silne klucze RSA przy użyciu OpenSSL i bezpiecznie ich używać do podpisywania cyfrowego
Algorytmy Cyberbezpieczeństwo

Jak wygenerować silne klucze RSA przy użyciu OpenSSL i bezpiecznie ich używać do podpisywania cyfrowego

🔐 Jak wygenerować silne klucze RSA przy użyciu OpenSSL i bezpiecznie ich używać do podpisywania cyfrowego

📌 Wprowadzenie

W erze cyfrowej, gdzie bezpieczeństwo danych i tożsamości online odgrywa kluczową rolę, kryptografia klucza publicznego (PKI) stanowi fundament zabezpieczania komunikacji. Jednym z najczęściej stosowanych algorytmów w tym zakresie jest RSA (Rivest-Shamir-Adleman), szczególnie w wersji z kluczem 2048 lub 4096-bitowym.

W tym poradniku dowiesz się:

✅ jak wygenerować silne klucze RSA przy użyciu narzędzia OpenSSL,
✅ jak ich używać do podpisywania cyfrowego,
✅ i jak zabezpieczyć prywatny klucz przed niepowołanym dostępem.


🔧 Co to jest RSA i do czego służy?

RSA to asymetryczny algorytm kryptograficzny używany do:

  • 🔒 szyfrowania danych,
  • 🧾 tworzenia podpisów cyfrowych,
  • uwierzytelniania tożsamości,
  • 🔑 wymiany kluczy szyfrowania symetrycznego (np. AES).

🧰 Co będzie potrzebne?

  • System z zainstalowanym OpenSSL (Linux, macOS, Windows z WSL lub Git Bash)
  • Podstawowa znajomość terminala
  • Katalog do bezpiecznego przechowywania kluczy
Jak wygenerować silne klucze RSA przy użyciu OpenSSL i bezpiecznie ich używać do podpisywania cyfrowego
Jak wygenerować silne klucze RSA przy użyciu OpenSSL i bezpiecznie ich używać do podpisywania cyfrowego

🔑 Krok 1: Generowanie klucza prywatnego RSA

openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:4096

📌 Wyjaśnienie:

  • genpkey — nowoczesna komenda do generowania kluczy.
  • rsa_keygen_bits:4096 — klucz o długości 4096 bitów zapewnia wysoki poziom bezpieczeństwa.
  • private_key.pem — plik z kluczem prywatnym w formacie PEM.

🔓 Krok 2: Wygenerowanie klucza publicznego

openssl rsa -pubout -in private_key.pem -out public_key.pem

🗝️ Teraz masz dwa pliki:

  • private_key.pem — klucz prywatny (trzymaj go w tajemnicy!),
  • public_key.pem — klucz publiczny (może być udostępniany innym).

✍️ Krok 3: Tworzenie podpisu cyfrowego

Załóżmy, że masz dokument plik.txt, który chcesz podpisać cyfrowo.

openssl dgst -sha256 -sign private_key.pem -out podpis.bin plik.txt

📌 To polecenie:

  • oblicza skrót SHA-256 pliku,
  • szyfruje go kluczem prywatnym (czyli tworzy podpis).

✅ Krok 4: Weryfikacja podpisu cyfrowego

Aby odbiorca mógł zweryfikować podpis, potrzebuje:

  • pliku plik.txt,
  • podpisu podpis.bin,
  • twojego klucza publicznego.
openssl dgst -sha256 -verify public_key.pem -signature podpis.bin plik.txt

✅ Jeśli podpis jest prawidłowy, zobaczysz:

Verified OK

🔒 Dobre praktyki bezpieczeństwa

🛡️ Ochrona klucza prywatnego

  • Przechowuj private_key.pem tylko na zaszyfrowanym nośniku.
  • Zmień uprawnienia dostępu:
    chmod 600 private_key.pem
    
  • Nigdy nie przesyłaj klucza prywatnego przez sieć (nawet zaszyfrowaną).

📁 Backup i rotacja kluczy

  • Twórz kopie zapasowe na offline’owym nośniku (np. pendrive zaszyfrowany VeraCryptem).
  • Rotuj klucze co 1-2 lata (lub częściej w środowiskach korporacyjnych).
  • Przechowuj hash kluczy w systemie logowania i uwierzytelniania.

🔍 Zastosowania podpisu cyfrowego

  • 📄 Podpisywanie dokumentów elektronicznych (np. PDF, XML)
  • 📦 Weryfikacja pakietów oprogramowania
  • 📬 Zabezpieczanie wiadomości e-mail (np. S/MIME)
  • 🔑 Komunikacja bezpieczna (np. SSH, TLS certyfikaty)

🧠 Ciekawostka: Dlaczego RSA 4096?

RSA 2048-bit jest obecnie uznawany za bezpieczny, ale 4096-bitowy klucz zapewnia znacznie większą odporność na ataki brute-force i lepiej przygotowuje infrastrukturę na przyszłe wyzwania kryptograficzne.


🏁 Podsumowanie

Tworzenie i używanie kluczy RSA do podpisywania cyfrowego to jedna z najważniejszych umiejętności w dziedzinie bezpieczeństwa IT. Dzięki OpenSSL możesz to zrobić za darmo i z pełną kontrolą nad procesem.

🔐 Klucz publiczny identyfikuje, klucz prywatny chroni. Odpowiedzialność zaczyna się od Ciebie.

Polecane wpisy
Wpływ oprogramowania antywirusowego na wydajność systemu Windows. Jak zminimalizować obciążenie?
Wpływ oprogramowania antywirusowego na wydajność systemu Windows. Jak zminimalizować obciążenie?

💻 Wpływ oprogramowania antywirusowego na wydajność systemu Windows. Jak zminimalizować obciążenie? 🔍 Czy antywirus spowalnia komputer? Wielu użytkowników systemu Windows Czytaj dalej

Ataki SQL Injection – czym są i jak się przed nimi bronić
Ataki SQL Injection – czym są i jak się przed nimi bronić

Ataki SQL Injection – czym są i jak się przed nimi bronić SQL Injection (SQLi) to jedna z najstarszych i Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.