Генератор ключей Ed25519
Создавайте пару ключей Ed25519 для подписей EdDSA, входа по SSH, подписанных коммитов Git и JWT. Вы получите закрытый ключ в незашифрованном формате PKCS #8 PEM, открытый ключ в формате SPKI PEM, готовую строку ssh-ed25519 для authorized_keys с необязательным комментарием, отпечаток SHA-256 и JWK-отпечаток RFC 7638. Ключи создаются для каждого запроса с помощью криптографического модуля Node; они нигде не записываются в журнал и не сохраняются.
Часто задаваемые вопросы
Зачем использовать Ed25519?
Ed25519 обеспечивает уровень безопасности около 128 бит при длине ключа 32 байта и подписи 64 байта. Алгоритм быстро создает подписи, и в нем невозможно ошибиться при настройке параметров. Подписи детерминированы, поэтому слабый генератор случайных чисел в момент подписания не может привести к утечке ключа. Это тип ключа по умолчанию в современных версиях OpenSSH.
В каких форматах представлен результат?
Закрытый ключ представлен в кодировке PEM формата PKCS #8 (BEGIN PRIVATE KEY), а открытый — в кодировке PEM формата SubjectPublicKeyInfo (BEGIN PUBLIC KEY), как определено в RFC 8410. Открытый ключ также представлен строкой ssh-ed25519 для OpenSSH.
Можно ли использовать закрытый ключ с OpenSSH?
OpenSSH хранит закрытые ключи Ed25519 в собственном формате, который этот инструмент не создает; кроме того, многие версии OpenSSH не могут загрузить ключ Ed25519 в формате PKCS #8. Строка открытого ключа ssh-ed25519 подходит для authorized_keys, но для файла идентификации SSH проще всего выполнить ssh-keygen -t ed25519 на своем компьютере.
Какой алгоритм JWT подписывает ключ?
Ключи Ed25519 подписывают данные алгоритмом EdDSA, определенным в RFC 8037. Вставьте закрытый ключ PEM в генератор JWT с выбранным EdDSA, а проверяющим передайте открытый ключ PEM или его JWK с kty OKP и crv Ed25519.
Что означает отпечаток SHA-256 в результате?
Это отпечаток двоичного блока открытого ключа OpenSSH в формате SHA256: и далее без дополнения base64, точно в том виде, в котором его выводят ssh-keygen -l и серверы. Сравните его с отпечатком, показанным сервером или GitHub, чтобы убедиться, что вы добавили нужный ключ.
Что такое контрольный отпечаток JWK?
Отпечаток RFC 7638 — это хеш SHA-256 в формате base64url, вычисленный по полям crv, kty и x ключа. Он идентифицирует ключ независимо от его формата; его удобно использовать как kid для JWT и документов JWKS.
Меняет ли комментарий ключ?
Нет. Комментарий лишь добавляется к строке ssh-ed25519, например you@laptop, чтобы различать ключи в authorized_keys. Отпечатки вычисляются только на основе ключа. Комментарий может содержать до 200 символов.
Зашифрован ли закрытый ключ?
Нет, ключ возвращается без парольной фразы. Для хранения зашифруйте его командой openssl pkey -in key.pem -aes256 -out key-encrypted.pem и ограничьте доступ к файлу только для себя.
Можно ли использовать Ed25519 для сертификатов TLS?
X.509 поддерживает ключи Ed25519, и OpenSSL может создавать такие сертификаты и запросы, но браузеры и публичные центры сертификации пока не принимают их для TLS. Для публичных сертификатов TLS используйте ключ P-256 из генератора ключей EC или ключ RSA.
Сохраняется ли сгенерированный ключ?
Нет. Пара ключей существует только в памяти во время выполнения запроса и возвращается один раз в результатах. Ничего не записывается в журнал и не сохраняется, поэтому скопируйте оба ключа, прежде чем покинуть страницу.