Показать значения частного ключа ED22519, сохраненного в формате OpenSSH

Не устанавливайте права на запись в /etc/hosts, потому что вы рискуете тем, что злоумышленник перенаправит ваш трафик на сайт, который находится под контролем, и таким образом совершит гнусные действия, такие как drive-. by download attacks, которые могут привести к установке вредоносного ПО на ваш компьютер без вашего согласия путем создания вредоносного JavaScript кода, который может использовать уязвимости вашего браузера Firefox или одного из его плагинов/расширений. Этот же файл в ОС Windows используется авторами вредоносных программ для распространения троянов. Право на его запись должно быть только у вас, как у владельца.

0
09.09.2018, 23:40
1 ответ

TLDR :(, потому что теперь -анонимный редактор запрещает использование жирного шрифта ):вы не можете конвертировать в OpenSSL

ОБНОВЛЕНО 2021 -02 :Вы не можете преобразовать ключ OpenSSH ed25519 в форму, поддерживаемую OpenSSL. На дату Q и первоначального A OpenSSL не поддерживал ни хранимую форму ключа ed25519, ни Ed25519 (, ни любой другой алгоритм EdDSA ). Он поддерживал X25519 для обмена ключами TLS, но использует только временные ключи, которым не нужен какой-либо формат хранения. OpenSSL 1.1.1, выпущенный позднее в том же месяце, сентябре 2018 г., поддерживает Ed25519 и Ed448 (, а также X25519 и X448 )с использованием формата PKCS8 для закрытого ключа. Однакоssh-keygen(OpenSSH )не может записать ключ Ed25519 в этом формате, совместимом с OpenSSL -, и OpenSSL не может прочитать проприетарный формат OpenSSH -, используемый для него с версии 6.5 (и другие типы также по умолчанию, начиная с версии 7.8 ).

Ed25519 не требует никаких параметров, и формат ключевого файла OpenSSH не хранит их для него; Ed25519 определяется как экземпляр EdDSA (, параметризованный )для кривой Бернштейна 25519 (в форме Эдвардса ), которая определяет все необходимые параметры. Подробности см. в RFC 8032 и 7748.

Для алгоритмов EC, определенных X9 и SECG , которые стандартно называются ECDSA и ECDH, OpenSSL использует параметры, определенные в этих стандартах, которые поддерживают только эллиптические кривые с уравнениями, выраженными в краткой форме Вейерштрасса. Кривая Бернштейна 25519 (и кривая 448 )вместо этого используют формы Монтгомери и Эдвардса по причинам, подробно обсуждаемым в статьях на его веб-сайте, и в любом случае алгоритм EdDSA отличается от алгоритма ECDSA. Но это уже не актуально.

Если вы не хотите использовать ключ с OpenSSL, а просто хотели бы знать, что это такое, ssh-keygen -yуже выводит открытый ключ в предпочтительной для OpenSSH форме,которое представляет собой имя типа в ASCII ssh-ed25519плюс кодировку base64 проводного формата (SSH2 ), что, в свою очередь, составляет 4 байта длины + имя типа + 4 байта длины + 32 байта открытого ключа (с использованием определенной кодировки в RFC8032 ). Если вам действительно нужен секретный ключ, вы можете сначала расшифровать файл с помощью ssh-keygen -p(, убедившись, что никакая копия не помещена туда, где злоумышленник -может получить ее ), и сбросить, например, с помощью. od -tx1; большой двоичный объект открытого ключа начинается со смещения 053 с длиной 063 (, как восьмеричной ), так и обычно -, но -, а не -теперь -зашифрованная часть начинается со смещения 0142 с длиной 0210, что равно 8 проверка байтов, затем частный «блоб» длиной 4 байта + копия открытого ключа длиной 4 байта + длина 4 байта + «секретный» ключ API 64 байта, из которых только 32 байта действительно являются закрытым ключом, а остальные - другим (! )копия открытого ключа, затем длина 4 байта + комментарий.

1
28.01.2020, 04:13

Теги

Похожие вопросы