новый алгоритм шифрования для SSH - PullRequest
3 голосов
/ 03 октября 2010

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

спасибо

Ответы [ 2 ]

3 голосов
/ 03 октября 2010

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

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

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

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

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

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

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

3 голосов
/ 03 октября 2010

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

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

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

...