Генератор на EC ключове
Генерирайте двойка ключове за елиптична крива върху P-256, P-384 или P-521 за подписи ES256, ES384 или ES512, ECDH и сертификати TLS. Резултатът съдържа частния ключ като нешифрован PKCS #8 PEM, публичния ключ като SPKI PEM, ред с публичен ключ OpenSSH ecdsa-sha2 с неговия пръстов отпечатък SHA-256 и JWK отпечатък по RFC 7638. Всяка двойка се създава наново с криптомодула на Node и никога не се съхранява.
Често задавани въпроси
Коя крива да избера?
P-256 (наричана още prime256v1 или secp256r1) е най-широко поддържаната крива и осигурява около 128 бита сигурност. P-384 осигурява около 192 бита и се изисква от някои правителствени профили като CNSA. P-521 е най-голямата крива на NIST и се поддържа по-рядко, затова я избирайте само ако дадена система я изисква.
Кой алгоритъм JWT съответства на всяка крива?
Ключовете P-256 подписват с ES256, ключовете P-384 — с ES384, а ключовете P-521 — с ES512. JOSE свързва всеки алгоритъм точно с една крива, затова генераторът JWT отхвърля ключ на неподходяща крива. В резултата е посочен съответстващият алгоритъм за вашия ключ.
Какви формати се връщат?
Частният ключ е в PEM формат PKCS #8 (BEGIN PRIVATE KEY), а публичният — в PEM формат SubjectPublicKeyInfo (BEGIN PUBLIC KEY) с именуваната крива. Получавате и ред ecdsa-sha2-nistp256, nistp384 или nistp521, който OpenSSH очаква в authorized_keys.
Как да получа формат SEC1 (BEGIN EC PRIVATE KEY)?
Някои инструменти все още изискват по-старото кодиране SEC1. С OpenSSL 3 изпълнете openssl pkey -in key.pem -traditional -out key-ec.pem или openssl ec -in key.pem -out key-ec.pem. Самият ключ остава същият.
Мога ли да създам заявка за подписване на сертификат с този ключ?
Да. Запазете частния PEM и изпълнете openssl req -new -key key.pem -subj "/CN=example.com" -out request.csr, след което проверете заявката с декодера на CSR. Сертифициращите органи приемат ключове P-256 и P-384 за сертификати TLS.
Защо EC ключовете са по-малки от RSA ключовете?
Криптографията с елиптични криви постига същото ниво на сигурност с много по-къси ключове, така че ключ P-256 е сравним с RSA ключ от 3072 бита. Подписите са по-къси, а подписването е по-бързо. Публичният ключ за P-256 се побира в 65 байта.
Защитен ли е частният ключ с парола?
Не, връща се нешифрован, за да могат другите инструменти да го прочетат директно. Шифровайте го за съхранение с openssl pkey -in key.pem -aes256 -out key-encrypted.pem. Никога не записвайте нешифрован частен ключ в хранилище.
За какво служи JWK отпечатъкът?
Отпечатъкът по RFC 7638 е base64url хеш SHA-256 на членовете crv, kty, x и y на ключа. Той е постоянен идентификатор на ключа, който не зависи от формата PEM или JWK, и е подходящ за kid в заглавки JWT и документи JWKS.
Съхранява ли се двойката ключове?
Не. Двойката се генерира в паметта за вашата заявка, връща се еднократно и никога не се записва в лог или не се съхранява. Копирайте двата ключа, преди да напуснете страницата, защото няма да могат да бъдат показани отново.
Какво променя полето за коментар?
То само добавя етикет в края на реда с публичния ключ OpenSSH, например user@laptop, за да разпознавате лесно ключа в authorized_keys. Пръстовите отпечатъци и материалът на ключа остават същите. Коментарът може да съдържа до 200 знака.