История и участники проекта
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 сервера.
scanssh используется для сбора
статистики о внедрении и использовании
протокола SSH в сети Интернет. Измерения позволяют взглянуть на распределение
различных протоколов и реализаций SSH.
SSH: Completely free at last.
www@openbsd.org
$OpenBSD: history.html,v 1.12 2012/12/16 07:54:13 ajacoutot Exp $