Путаница с документацией по SSH - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь создать очень простую и легкую реализацию клиента протокола SSH для node.js.

Следующая документация смущает меня полностью: http://www.snailbook.com/docs/transport.txt

В нем отсутствует полный пример всей процедуры обмена ключами. Есть много хорошо объясненных вещей, но я не совсем уверен, как соединить эти вещи.

Не могли бы вы помочь мне собрать пример?

Я застрял после раздела 7.1. Я успешно получаю список alorightms сервера и отправляю на сервер список только с необходимыми alorithms. Также успешно.

Итак, в этом случае мы имеем следующие alorightms:

  • kex: diffie-hellman-group1-sha1
  • ключ: ssh-dss
  • шифрование: 3des-cbc
  • mac: hmac-sha1

После этого я пропустил разделы 7.2 и 7.3 и перешел непосредственно к разделу 8, поскольку для генерации ключа требуются значения H & K, которые генерируются в разделе 8.

Но раздел 8 не имеет смысла для меня. Это требует, чтобы и клиент, и сервер уже знали одно и то же простое число, генератор и стоимость заказа. Когда эти значения были согласованы и отправлены друг другу? В четком разделе 8 говорится, что он следует непосредственно за алгоритмом обмена, поэтому между этими шагами ничего нет ... Я что-то упустил?

Большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 23 февраля 2012

Простое число определяется алгоритмом обмена ключами. Например, чтобы процитировать из вашего источника:

Метод diffie-hellman-group1-sha1 определяет обмен ключами Диффи-Хеллмана с SHA-1 в качестве HASH и Oakley Group 2 [RFC2409] (1024-bit MODP Group).

И если вы обратитесь к RFC 2409 & 6.2; вы найдете:

Простое число 2 ^ 1024 - 2 ^ 960 - 1 + 2 ^ 64 * {[2 ^ 894 пи] + 129093}. Его шестнадцатеричное значение

FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
    29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
    EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
    E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
    EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
    FFFFFFFF FFFFFFFF
Генератор 2 (десятичный)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...