OpenSSH Цели проекта


Наша задача проста: так как telnet и rlogin небезопасны, все операционные системы должны поставляться с поддержкой протокола SSH.

SSH протокол доступен в двух несовместимых вариантах: SSH 1 и SSH 2

Cтарый SSH 1 протокол доступен в двух вариантах: 1.3 и 1.5. Поддержка обоих была удалена из OpenSSH начиная с версии 7.6. Оба использовали асимметричный алгоритм шифрования RSA (срок действия патента в США истёк, так что теперь его можно свободно использовать) для обмена ключами и аутентификации, 3DES и Blowfish для конфиденциальности. Использовался простой CRC для целостности данных, который оказался ненадежным.

Второй вариант SSH - это вторая версия протокола SSH. Вторая версия была написана, чтобы, во-первых, избежать проблем с патентом RSA (более не существующей проблемы, так как срок действия патента истёк), во-вторых, чтобы решить проблему с CRC, которая была в первой версии, а так же по ряду технических проблем. Используя только асимметричные алгоритмы DSA и DH, вторая версия не имеет проблем с патентами, а проблема с CRC решена в результате перехода на алгоритм HMAC. Протокол SSH 2 поддерживает множество симметричных алгоритмов шифрования, а так же множество новых возможностей.

OpenSSH использует библиотеку LibreSSL для некоторых своих криптографических операций, одним из примеров которой является AES-GCM.

Итак, продолжая работать, разработчики OpenBSD из команды OpenSSH, реализовали поддержку протокола SSH 2. Работа была проделана в основном Маркусом Фриедлом (Markus Friedl). 4 мая 2000 года поддержка протокола SSH 2 была завершена и готова к использованию.