2010-10-03 3 views
3

Меня попросили добавить новый алгоритм в ssh, чтобы данные зашифровались в новом алгоритме, любая идея, как добавить новый алгоритм в ssh?новый алгоритм шифрования для ssh

благодаря

+0

Зачем вы хотите это сделать? Новые алгоритмы шифрования очень трудно получить, как с точки зрения самого алгоритма, так и с точки зрения его безопасного использования в качестве части протокола. AES256-CTR в текущем ssh в настоящее время является одним из наиболее безопасных алгоритмов. – Omnifarious

+0

Я согласен с Omnifarious. Кроме того, если вы достаточно сумасшедшие, чтобы сделать это, вам придется изменить программное обеспечение сервера и программное обеспечение, используемое каждым клиентом, которого вы разрешаете подключать. –

+0

хотя я знаю, что это так глупо, но я прошу сделать это! Мне нужно что-то изменить, чем открыть ssh и ssh-client? как это сделать? не могли бы вы мне посоветовать? – amin

ответ

3

Можно добавить новый алгоритм для SSH связи, и это делается время от времени (например, AES был добавлен позже). Но вопрос в том, что вам нужно модифицировать как клиент, так и сервер, чтобы они оба поддерживали этот алгоритм, иначе это не имеет смысла.

Я предполагаю, что вас попросили добавить какой-то пользовательский, либо самодельный, либо нестандартный алгоритм. Поэтому первое, что я хотел бы сделать, это предупредить вас, что добавленный алгоритм может быть слабым. Вам нужно выполнить хотя бы базовый поиск информации об этом алгоритме, как будто он сломан, вы сделаете совершенно бесполезную и даже опасную работу.

Что касается самих модификаций программного обеспечения - это редкая работа, чтобы сделать это, скорее всего, вы не найдете никого с этим опытом. Однако код, который обрабатывает различные алгоритмы, типичен, и добавление нового алгоритма тривиально - вы добавляете один исходный файл с реализацией алгоритма, а затем изменяете кучу мест, добавляя еще один случай для переключения оператора.

+0

На самом деле, я работал над вилкой с открытым исходным кодом opensh. Учитывая пару недель, я мог бы, вероятно, получить достаточное количество знаний о коде для этого. :-) – Omnifarious

3

В моей карьере я работал над частной вилкой ssh, которая была продана как коммерческое программное обеспечение с закрытым исходным кодом. Даже они во всей своей безумной глупости (частная вилка? Кто в здравом уме использует программное обеспечение для шифрования без открытия исходного кода? Я думал, что наши клиенты полностью отключены от своих рокеров.) Не добавили нового алгоритма шифрования.

Это можно сделать, хотя. Добавление крючков в протокол ssh для поддержки не сложно. Протокол разработан таким образом, чтобы быть расширяемым. Вначале клиент и сервер обмениваются списками алгоритмов шифрования, которые они готовы использовать.

Это означает, конечно, что только измененный клиент и модифицированный сервер будут разговаривать друг с другом.

Настоящая трудность - это OpenSSL. ssh не использует TLS/SSL, но использует библиотеку шифрования OpenSSL. Вам нужно будет добавить новый алгоритм в эту библиотеку, и эта библиотека - ужасный зверь.

Хотя, я полагаю, вы могли бы добавить алгоритм, не добавляя его в OpenSSL. Это может быть сложно, поскольку, поскольку я думаю, что openssh может сильно зависеть от того, как работают API OpenSSL. И часть того, как они работают, позволяет вам передавать константу, представляющую, какой алгоритм вы хотите использовать, а затем стандартный набор вызовов для шифрования и дешифрования, которые используют константу для определения алгоритма.

Опять же, если я правильно помню, OpenSSL имеет API специально для добавления новых алгоритмов в свой набор. Так что это может быть не так сложно. Вы должны убедиться, что это происходит, когда библиотека OpenSSL инициализируется.

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

+4

Я должен не согласиться с глупостью, и вот почему: возможно, они добавляют некоторый национальный стандарт шифрования. Например, в России они используют ГОСТ, а ГОСТ - единственный принятый алгоритм шифрования (фактически семейство алгоритмов) для использования в общественных местах. –

+1

@ EugoS Corp.Eueene Mayevski да, но это задача для опытного криптографа. Также я лично не вижу преимущества использования альтернативного примитива, даже если рассматриваю неясные примитивы, такие как ГОСТ. – rook

+1

@ Соответствие национальным нормам может быть преимуществом или требованием. ЕСЛИ это так, это не мы или разработчики, которые решают, что делать - они просто должны это сделать. Нам пришлось добавить GOST к нашему продукту SecureBlackbox, потому что клиенты xUSSR сказали, что GOST является единственным разрешенным алгоритмом, поэтому, если они хотят выпускать свои продукты на локальных рынках, им нужно было это делать, нравится это или нет. –