История и участники проекта
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 на Linux и на другие Unix операционные системы.
Перед появлением нашего проекта, мы чувствовали, что даже оригинальная
реализация SSH была усложнена; она имела очень много зависимостей от
операционных систем. Наш подход к написанию безопасного и чистого кода
позволил избежать этого, сделал весь процесс разработки проще для всех
нас - мы решили отделить базовую разработку от портирования.
Протокол SSH 2
После выхода OpenBSD 2.6, Markus Friedl решил сделать поддержку протокола
SSH 2. Работая несколько месяцев, он сумел сохранить
OpenSSH таким же простым и маленьким, но в тоже время сделать поддержку
обоих протоколов SSH 1 и SSH 2. Эта версия называлась OpenSSH 2.0 и была
включена в OpenBSD 2.7, 15 Июня, 2000. Проверкой изменений 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 протокола в Internet. Измерения позволяют определить распространение
различных версий протокола и сервера SSH.
SSH: Completely free at last.
www@openbsd.org
Originally [OpenBSD: history.html,v 1.33 ]
$RuOBSD: history.html,v 1.5 2004/08/20 10:22:08 dfa Exp $
$Translation: history.html,v 1.7 2004/08/20 10:33:36 dfa Exp $
$OpenBSD: history.html,v 1.7 2004/08/20 11:01:04 jufi Exp $