В своей карьере я работал над частной веткой ssh, которая продавалась как коммерческое программное обеспечение с закрытым исходным кодом.Даже они во всей своей сумасшедшей глупости (частная вилка? Кто в здравом уме использует программное обеспечение для шифрования не с открытым исходным кодом? Я думал, что наши клиенты совершенно не в себе) не добавили новый алгоритм шифрования.
Это может быть сделано, хотя.Добавление хуков к протоколу ssh для его поддержки не сложно.Протокол разработан таким образом, чтобы быть расширяемым.Вначале клиент и сервер обмениваются списками алгоритмов шифрования, которые они готовы использовать.
Это означает, конечно, что только модифицированный клиент и модифицированный сервер будут общаться друг с другом.
Настоящая трудность - это OpenSSL.ssh не использует TLS / SSL, но использует библиотеку шифрования OpenSSL.Вам придется добавить новый алгоритм в эту библиотеку, и эта библиотека - ужасный зверь.
Хотя, я полагаю, вы могли бы добавить алгоритм, не добавляя его в OpenSSL.Это может быть сложно, хотя, я думаю, openssh может сильно полагаться на работу API-интерфейсов OpenSSL.И часть того, как они работают, позволяет передавать константу, представляющую, какой алгоритм вы хотите использовать, а затем стандартный набор вызовов для шифрования и дешифрования, которые используют константу для выбора алгоритма.
Опять же,если я правильно помню, у OpenSSL есть API специально для добавления новых алгоритмов в его набор.Так что это может быть не так сложно.Вы должны будете убедиться, что это происходит при инициализации библиотеки OpenSSL.
В любом случае, это довольно расплывчатый ответ, но, возможно, он укажет вам правильное направление.Вы должны заставить того, кто делает это, платить огромные суммы денег.Глупость, которая требует такого уровня знаний, никогда не должна обходиться дешево.