Generator kluczy EC
Wygeneruj parę kluczy krzywych eliptycznych na krzywej P-256, P-384 lub P-521 do podpisów ES256, ES384 lub ES512, ECDH i certyfikatów TLS. Wynik zawiera klucz prywatny w postaci niezaszyfrowanego PEM PKCS #8, klucz publiczny w postaci SPKI PEM, wiersz klucza publicznego OpenSSH ecdsa-sha2 z odciskiem SHA-256 oraz odcisk JWK RFC 7638. Każda para jest tworzona od nowa za pomocą modułu crypto w Node i nigdy nie jest zapisywana.
Najczęściej zadawane pytania
Którą krzywą wybrać?
P-256 (znana też jako prime256v1 lub secp256r1) jest najszerzej obsługiwaną krzywą i zapewnia około 128 bitów bezpieczeństwa. P-384 zapewnia około 192 bitów i jest wymagana przez niektóre profile rządowe, takie jak CNSA. P-521 to największa krzywa NIST i jest rzadziej obsługiwana, więc wybierz ją tylko wtedy, gdy wymaga jej dany system.
Który algorytm JWT odpowiada każdej krzywej?
Klucze P-256 podpisują dane algorytmem ES256, klucze P-384 — ES384, a klucze P-521 — ES512. JOSE przypisuje każdemu algorytmowi dokładnie jedną krzywą, dlatego Generator JWT odrzuca klucz oparty na niewłaściwej krzywej. Wynik podaje algorytm pasujący do klucza.
Jakie formaty są zwracane?
Klucz prywatny jest zakodowany w formacie PEM PKCS #8 (BEGIN PRIVATE KEY), a klucz publiczny w formacie PEM SubjectPublicKeyInfo (BEGIN PUBLIC KEY) z nazwaną krzywą. Otrzymasz również wiersz ecdsa-sha2-nistp256, nistp384 lub nistp521 wymagany przez OpenSSH w pliku authorized_keys.
Jak uzyskać format SEC1 (BEGIN EC PRIVATE KEY)?
Niektóre narzędzia nadal wymagają starszego kodowania SEC1. W OpenSSL 3 uruchom openssl pkey -in key.pem -traditional -out key-ec.pem lub openssl ec -in key.pem -out key-ec.pem. Sam klucz pozostaje bez zmian.
Czy mogę utworzyć żądanie podpisania certyfikatu za pomocą tego klucza?
Tak. Zapisz prywatny plik PEM i uruchom openssl req -new -key key.pem -subj "/CN=example.com" -out request.csr, a następnie sprawdź żądanie za pomocą dekodera CSR. Urzędy certyfikacji akceptują klucze P-256 i P-384 do certyfikatów TLS.
Dlaczego klucze EC są mniejsze niż klucze RSA?
Kryptografia krzywych eliptycznych zapewnia ten sam poziom bezpieczeństwa przy znacznie krótszych kluczach, dlatego klucz P-256 odpowiada kluczowi RSA o długości 3072 bitów. Podpisy są krótsze, a ich tworzenie szybsze. Klucz publiczny krzywej P-256 mieści się w 65 bajtach.
Czy klucz prywatny jest chroniony hasłem?
Nie, jest zwracany w postaci niezaszyfrowanej, aby inne narzędzia mogły go bezpośrednio odczytać. Zaszyfruj go do przechowywania za pomocą openssl pkey -in key.pem -aes256 -out key-encrypted.pem. Nigdy nie umieszczaj niezaszyfrowanego klucza prywatnego w repozytorium.
Do czego służy odcisk JWK?
Odcisk RFC 7638 to skrót SHA-256 w formacie base64url, obliczony na podstawie pól crv, kty, x i y klucza. Jest jego stabilnym identyfikatorem, niezależnym od formatu PEM lub JWK, i sprawdza się jako kid w nagłówkach JWT oraz dokumentach JWKS.
Czy para kluczy jest zapisywana?
Nie. Para jest generowana w pamięci na potrzeby Twojego żądania, zwracana tylko raz i nigdy nie jest rejestrowana ani zapisywana. Skopiuj oba klucze przed opuszczeniem strony, ponieważ nie będzie można ich ponownie wyświetlić.
Co zmienia pole komentarza?
Dodaje jedynie etykietę na końcu wiersza klucza publicznego OpenSSH, na przykład user@laptop, aby łatwo rozpoznać klucz w pliku authorized_keys. Odciski i materiał klucza pozostają bez zmian. Komentarz może mieć maksymalnie 200 znaków.