История и участники проекта
OpenSSH основан на бесплатной версии ssh 1.2.12 от Tatu Ylönen. Эта
версия была достаточно свободной, для использования её в нашем проекте.
Некоторые части OpenSSH все ещё находится под лицензией Tatu. Эта и более
старые версии использовали математические функции из библиотеки libgmp.
Библиотека libgmp доступна под (LGPL) Lesser GNU Public Licence, хотя в то
время она находилась под обычной (GPL) GNU Public Licence.
Объединённая лицензия для всех частей OpenSSH доступна на
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE.
После версии 1.2.12, новые версии выпускались со все более ограничивающей
лицензией, хотя libgmp все ещё был включён и необходим для использования ssh.
Сначала они запретили создавать Windows и DOS версии ssh. Позднее они
запретили использование ssh в коммерческой деятельности, и предлагали купить достаточно дорогую версию у Datafellow.
Ранее, в 1999 году, Björn Grönvall занялся разработкой последней версии и начал исправлять ошибки. Его версия ssh называется
OSSH и на тот момент поддерживала
только SSH протокол версии 1.3. Говорят, что OSSH был интегрирован в
какой-то коммерческий продукт в Швеции. На текущий момент в OSSH до сих пор нет поддержки протокола SSH 2.
Участники проекта OpenBSD узнали о работе Björn менее чем за два месяца перед релизом OpenBSD 2.6.
Мы хотели включить поддержку ssh протокола в OpenBSD 2.6, но мы должны были убедится в том, что она достаточно хороша. Поэтому мы решили взять за основу OSSH и продолжить разработку. Процесс шел очень быстро, так как мы должны были быть готовы к сроку.
Список разработчиков:
- Theo de Raadt (Канада) удалил непортабельный код, который загромождал основной, делая его трудно читаемым. После этого некоторые ошибки, а так же ошибки в безопасности можно было очень просто определить.
- Niels Provos (Германия, переехал в США) быстро удалил оставшиеся
криптографические и GPL лицензированные компоненты.
- Markus Friedl (Германия) заменил код протокола SSH 1.3 из версии 1.2.12 на протокол версии SSH 1.5, совместимый с новой серией ssh 1.2.27 (это
позволило работать со множеством SSH-совместимых Windows клиентов
в которых нет поддержки SSH 1.3). Его реализация теперь используется в OSSH.
Протокол SSH 1.5 был добавлен таким образом, чтобы протокол SSH 1.3 оставался функциональным. Позже, он добавил поддержку протокола SSH 2 и SFTP.
- Bob Beck (Канада) помог с написанием Makefile; что позволило
скомпилировать OpenSSL без патентованных алгоритмов; так как OpenBSD 2.6 был выпущен перед тем, как срок действия RSA патента закончился, нам необходимо было поставлять CD с библиотеками libssl и libcrypto, в которых отсутствовал RSA. Во время установки, пользователь мог заменить эти библиотеки по FTP/HTTP через Internet. К счастью этот хак больше не нужен.
- Aaron Campbell (Канада) устранил множество изъянов документации. Главным
образом благодаря ему, man страницы настолько полные.
- Dug Song (США) помог с несколькими проблемами аутентификации в
KerberosIV (его изменения были тщательно проверены, чтобы убедится,
что они не затронули криптографию, а решали только проблемы аутентификации).
OpenSSH основан на старой версии ssh 1.2.12, но с многочисленными
исправлениями ошибок и добавленными возможностями:
- все компоненты ограничительного характера (т.е патенты, см.
ssl)
были удалены из исходных тестов; все лицензированные или патентованные
компоненты используются из внешних библиотек (например,
OpenSSL).
- поддерживает
KerberosIV-аутентификацию и передачу билетов.
- поддерживает
skey-аутентификацию по одноразовому паролю.
- и сотни других изменений, которые можно определить по новым man-страницам
и изменениям исходного текста.
Это относится к OpenSSH 1.2.2, который был включён в OpenBSD 2.6, выпущенную
1-го декабря, 1999. С того времени, в разработке OpenSSH участвовали
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt, и
Dug Song. Мы благодарим всех, кто нашёл ошибки и сообщил о них.
Портирование OpenSSH
После того, как мы выпустили нашу реализацию протокола SSH 1, многие другие
группы заинтересовались проектом. Damien Miller, Philip Hands и многие другие
начали портировать OpenSSH на GNU/Linux и на другие Unix операционные системы.
Перед появлением нашего проекта, мы чувствовали, что даже оригинальная
реализация SSH была усложнена; она имела очень много зависимостей от
операционных систем. Наш подход к написанию безопасного и чистого кода позволил избежать этого, сделал весь процесс разработки проще для всех - мы отделили базовую разработку от портирования.
Протокол SSH 2
После выхода OpenBSD 2.6, Markus Friedl решил сделать поддержку протокола
SSH 2. Работая несколько месяцев, он сумел сохранить
OpenSSH таким же простым и маленьким, но в тоже время сделать поддержку
обоих протоколов SSH 1 и SSH 2. Эта версия называлась OpenSSH 2.0 и была
включена в OpenBSD 2.7. Проверкой изменений Markus,
занимались Niels Provos и Theo de Raadt. Bob Beck обновил OpenSSL на
более новую версию.
Поддержка SFTP
Поддержка сервера подпротокола SFTP была написана Markus Friedl и включена
в OpenSSH 2.3.0, в Ноябре 2000. Вскоре, Damien Miller начал работу над
клиентом sftp, который впервые появился в OpenSSH 2.5.0.
Сканирование версии SSH сервера
Чтобы облегчить контроль разрастания SSH серверов, например для
сети компании, Niels Provos написал утилиту
scanssh.
scanssh сканирует список адресов и сетей на запущенные SSH сервера и
их номер версии. Она поддерживает случайный выбор адресов из
больших диапазонов сети и полезна для сбора статистики по используемым
SSH серверам в компании или во всем Internet. Статистика включает
поддерживаемые SSH протоколы и версию SSH сервера.
SSH: Completely free at last.
www@openbsd.org
Originally [OpenBSD: history.html,v 1.35 2004/12/22 02:06:00 david Exp $ ]
$Translation: history.html,v 1.8 2010/07/30 22:07:32 alex Exp $