Jump to content

OpenSSH

OpenSSH или OpenBSD Secure Shell
Разработчик(и) Проект OpenBSD
Первоначальный выпуск 1 декабря 1999 г .; 24 года назад ( 1999-12-01 )
Стабильная версия
9.8 [1]  Отредактируйте это в Викиданных / 1 июля 2024 г.
Репозиторий github /openssh /openssh-портативный
Написано в С
Операционная система Кросс-платформенный [2]
Стандарт (ы) RFC 4250, RFC 4251, RFC 4252, RFC 4253, RFC 4254, RFC 4255, RFC 4256, RFC 4335, RFC 4344, RFC 4345, RFC 4419, RFC 4462, RFC 5656, RFC 6594, RFC 6668, RFC 7479 [3]
Тип Удаленный доступ
Лицензия BSD , ISC , общественное достояние
Веб-сайт openssh.com

OpenSSH (также известный как OpenBSD Secure Shell) [а] ) — это набор безопасных сетевых утилит, основанных на протоколе Secure Shell (SSH), который обеспечивает безопасный канал через незащищенную сеть в архитектуре клиент-сервер . [4] [5]

OpenSSH начинался как ответвление бесплатной программы SSH , разработанной Тату Юлёненом; более поздние версии SSH Юлёнена были проприетарным программным обеспечением , предлагаемым SSH Communications Security . [6] OpenSSH был впервые выпущен в 1999 году и в настоящее время разрабатывается как часть OpenBSD операционной системы .

OpenSSH — это не отдельная компьютерная программа, а скорее набор программ, которые служат альтернативой незашифрованным протоколам, таким как Telnet и FTP . OpenSSH интегрирован в несколько операционных систем, а именно Microsoft Windows , macOS и большинство Linux . операционных систем [7] [8] в то время как портативная версия доступна в виде пакета в других системах. [9] [10] [11]

OpenBSD Secure Shell был создан разработчиками OpenBSD в качестве альтернативы оригинальному программному обеспечению SSH Тату Юлёнена, которое теперь является проприетарным программным обеспечением . [12] Хотя исходный код исходного SSH доступен, на его использование и распространение накладываются различные ограничения. OpenSSH был создан как ответвление Бьорна Грёнвалля OSSH , которое само по себе было ответвлением оригинальной бесплатной версии SSH 1.2.12 Тату Юленена. [13] который был последним, имеющим лицензию, подходящую для форка. [14] [15] Разработчики OpenSSH утверждают, что их приложение более безопасно, чем оригинал, благодаря их политике создания чистого и проверенного кода, а также потому, что оно выпущено под лицензией BSD , лицензией с открытым исходным кодом , к которой относится слово open в названии.

OpenSSH впервые появился в OpenBSD 2.6. Первый портативный релиз вышел в октябре 1999 года. [16] С тех пор были добавлены шифры (например, ChaCha20-Poly1305 в версии 6.5 от января 2014 г.). [17] ), сокращая зависимость от OpenSSL (6.7, октябрь 2014 г. ) [18] ) и расширение для облегчения обнаружения и ротации открытых ключей для доверенных хостов (для перехода от DSA к Ed25519 , версия 6.8 от марта 2015 г.). открытым ключам хоста [19] ).

19 октября 2015 года Microsoft объявила, что OpenSSH будет поддерживаться в Microsoft Windows и будет доступен через PowerShell , выпустив раннюю реализацию и сделав код общедоступным. [20] Клиентские и серверные программы на основе OpenSSH включены в Windows 10 , начиная с версии 1803. Клиент SSH и агент ключей включены и доступны по умолчанию, а сервер SSH является дополнительной функцией по требованию. [21]

​​защита закрытых ключей, находящихся в оперативной памяти, от спекуляций и атак по побочным каналам памяти. В октябре 2019 года в OpenSSH 8.1 была добавлена [22]

Разработка

[ редактировать ]
OpenSSH удаленно управляет сервером через оболочку Unix

OpenSSH разработан как часть операционной системы OpenBSD . отдельную инфраструктуру переносимости Вместо того, чтобы включать изменения для других операционных систем непосредственно в OpenSSH, команда OpenSSH по переносимости поддерживает , и периодически выпускаются «портативные выпуски». Эта инфраструктура является существенной, отчасти потому, что OpenSSH требуется для выполнения аутентификации , возможности, которая имеет множество различных реализаций. Эта модель также используется для других проектов OpenBSD, таких как OpenNTPD .

В комплект OpenSSH входят следующие командной строки утилиты и демоны :

  • scp , замена рцп .
  • sftp , замена ftp для копирования файлов между компьютерами.
  • ssh , замена рлогин , рш и telnet , чтобы разрешить доступ оболочки к удаленному компьютеру.
  • ssh-добавить и ssh-agent — утилиты, упрощающие аутентификацию путем хранения ключей наготове и позволяющие избежать необходимости вводить парольные фразы каждый раз, когда они используются.
  • ssh-keygen — инструмент для проверки и генерации ключей RSA , DSA и эллиптических кривых , которые используются для аутентификации пользователя и хоста .
  • ssh-keyscan , который сканирует список хостов и собирает их открытые ключи.
  • sshd — демон SSH-сервера.

Сервер OpenSSH может аутентифицировать пользователей стандартными методами, поддерживаемыми протоколом SSH : с помощью пароля; аутентификация с открытым ключом с использованием ключей каждого пользователя; аутентификация на основе хоста, которая представляет собой безопасную версию rlogin доверительные отношения хоста с использованием открытых ключей; интерактивная клавиатура, общий механизм запроса-ответа , который часто используется для простой аутентификации по паролю, но который также может использовать более надежные средства аутентификации, такие как токены ; и Керберос / GSSAPI . Сервер использует методы аутентификации, встроенные в операционную систему хоста; это может включать использование системы аутентификации BSD или подключаемых модулей аутентификации (PAM) для обеспечения дополнительной аутентификации с помощью таких методов, как одноразовые пароли . Однако иногда это имеет побочные эффекты: при использовании PAM с OpenSSH его необходимо запускать от имени пользователя root , поскольку для работы PAM обычно требуются права root. Версии OpenSSH после 3.7 (16 сентября 2003 г.) позволяют отключать PAM во время выполнения, поэтому обычные пользователи могут запускать экземпляры sshd.

В OpenBSD OpenSSH использует выделенный sshd по умолчанию, чтобы отказаться от привилегий и выполнить разделение привилегий в соответствии с принципом наименьших привилегий , применяемым во всей операционной системе, включая Xenocara X-сервер .

OpenSSH включает в себя возможность настройки защищенного канала, через который данные, отправленные в локальные сокеты домена Unix порты на стороне клиента, на стороне клиента или локальные TCP- могут быть « перенаправлены » (отправлены через защищенный канал) для маршрутизации на стороне сервера; когда эта пересылка настроена, серверу дано указание отправить пересылаемые данные на какой-либо сокет или хост/порт TCP (хостом может быть сам сервер, «localhost»; или хостом может быть какой-либо другой компьютер, чтобы он другому компьютеру кажется, что сервер является источником данных). Пересылка данных является двунаправленной, что означает, что любая обратная связь сама пересылается обратно на сторону клиента таким же образом; это известно как « SSH-туннель », [23] и его можно использовать для мультиплексирования дополнительных TCP-соединений через одно SSH-соединение с 2004 года. [24] для сокрытия соединений, шифрования протоколов, которые в противном случае не защищены, а также для обхода брандмауэров путем отправки/получения всех видов данных через один порт, разрешенный брандмауэром. Например, туннель X Window System может быть создан автоматически при использовании OpenSSH для подключения к удаленному хосту, а другие протоколы, такие как HTTP и VNC , могут быть легко перенаправлены. [25]

Туннелирование полезной нагрузки, инкапсулирующей TCP (например, PPP SSH ), через соединение на основе TCP (например, перенаправление портов ) известно как «TCP-over-TCP», и это может привести к резкому снижению производительности передачи (известная проблема). как «обвал TCP»), [26] [27] поэтому программное обеспечение виртуальной частной сети может вместо этого использовать для туннельного соединения протокол, более простой, чем TCP. Однако это часто не является проблемой при использовании переадресации портов OpenSSH, поскольку во многих случаях использования не требуется туннелирование TCP-over-TCP; сбоя можно избежать, поскольку клиент OpenSSH обрабатывает локальное TCP-соединение на стороне клиента, чтобы получить фактически отправляемые полезные данные, а затем отправляет эти полезные данные непосредственно через собственное TCP-соединение туннеля на сторону сервера, где OpenSSH сервер аналогичным образом «разворачивает» полезную нагрузку, чтобы снова «обернуть» ее для маршрутизации к конечному пункту назначения. [28]

Кроме того, некоторое стороннее программное обеспечение включает поддержку туннелирования через SSH. К ним относятся DistCC , CVS , rsync и Fetchmail . В некоторых операционных системах удаленные файловые системы можно смонтировать через SSH с помощью таких инструментов, как sshfs (с помощью FUSE ).

Специальный прокси - сервер SOCKS можно создать с помощью OpenSSH. Это обеспечивает более гибкое проксирование, чем это возможно при обычной переадресации портов.

Начиная с версии 4.3, OpenSSH реализует OSI уровня 2/3 Tun на основе VPN . Это наиболее гибкая из возможностей туннелирования OpenSSH, позволяющая приложениям прозрачно получать доступ к удаленным сетевым ресурсам без модификаций для использования SOCKS. [29]

Поддерживаемые типы открытых ключей

[ редактировать ]

OpenSSH поддерживает следующие типы открытых ключей: [30] [31]

  • ssh- dss (отключен во время выполнения, начиная с OpenSSH 7.0, выпущенного в 2015 году) [32]
  • ssh- rsa (отключен во время выполнения, начиная с OpenSSH 8.8, выпущенного в 2021 году) [33]
  • ecdsa - sha2 -nistp256 (начиная с версии OpenSSH 5.7, выпущенной в 2011 г.) [34]
  • ecdsa - sha2 -nistp384 (начиная с OpenSSH 5.7)
  • ecdsa - sha2 -nistp521 (начиная с OpenSSH 5.7)
  • ssh- ed25519 (начиная с версии OpenSSH 6.5, выпущенной в 2014 г.) [35]
  • rsa - sha2 -256 (начиная с OpenSSH 7.2, выпущенного в 2016 г.) [36]
  • rsa - sha2 -512 (начиная с OpenSSH 7.2)
  • ecdsa -sk (начиная с OpenSSH 8.2, выпущенного в 2020 г.) [37]
  • ed25519 -sk (начиная с OpenSSH 8.2)
  • NTRU Prime x25519 (начиная с OpenSSH 9.0, выпущенного в 2022 г.) [38]

Уязвимости

[ редактировать ]

До версии OpenSSH 5.2 злоумышленник мог восстановить до 14 бит открытого текста с вероятностью успеха 2. −14 . [39] Уязвимость была связана с режимом шифрования CBC. Режим AES CTR и шифры arcfour не уязвимы для этой атаки.

В OpenSSH версий 6.8–6.9 существовала локальная уязвимость повышения привилегий ( CVE 2015-6565 с возможностью записи по всему миру (622) ) из-за устройств TTY , что считалось уязвимостью, связанной с отказом в обслуживании . [40] Благодаря использованию TIOCSTI ioctl аутентифицированные пользователи могли вводить символы в терминалы других пользователей и выполнять произвольные команды в Linux. [41]

Вредоносные или скомпрометированные серверы OpenSSH могут читать конфиденциальную информацию на клиенте, такую ​​как личные ключи входа в другие системы, используя уязвимость, основанную на недокументированной функции возобновления соединения клиента OpenSSH, которая называется роумингом и включена на клиенте по умолчанию. но не поддерживается на сервере OpenSSH. Это относится к версии 5.4 (выпущенной 8 марта 2010 г.) [42] ) до 7.1 клиента OpenSSH и исправлено в OpenSSH 7.1p2, выпущенном 14 января 2016 года. Номера CVE , связанные с этой уязвимостью, — CVE - 2016-0777 (утечка информации) и CVE - 2016-0778 (переполнение буфера). [43] [44]

29 марта 2024 г. в цепочке поставок серьезной атаке на XZ Utils поступило сообщение о , косвенно нацеленной на сервер OpenSSH (sshd), работающий под управлением Linux. Код OpenSSH напрямую не затрагивается, бэкдор вызван зависимостями от liblzma через libsystemd, примененными с помощью патча tierce, применяемого различными дистрибутивами Linux. [ нужна ссылка ]

1 июля 2024 года была раскрыта уязвимость безопасности RegreSSHion , которая могла позволить удаленному злоумышленнику заставить OpenSSH выполнить произвольный код и получить полный root-доступ. Он был случайно представлен в предыдущей версии OpenSSH 8.5p1 в октябре 2020 года и был исправлен после версии 9.8/9.8p1. [45] [46]

Торговая марка

[ редактировать ]

В феврале 2001 года Тату Юленен, председатель и технический директор SSH Communications Security, сообщил списку рассылки разработчиков OpenSSH, что компания намерена заявить о своем намерении заявить о своем праве собственности на товарные знаки «SSH» и «Secure Shell» . [47] и стремился изменить ссылки на протокол на «SecSH» или «secsh», чтобы сохранить контроль над именем «SSH». Он предложил OpenSSH сменить название, чтобы избежать судебного иска, но разработчики сопротивлялись этому предложению. Разработчик OpenSSH Дэмиен Миллер ответил, призывая Юлёнена пересмотреть свое решение, утверждая, что «SSH» уже давно является общей торговой маркой . [48]

В то время «SSH», «Secure Shell» и «ssh» фигурировали в документах, предлагающих этот протокол в качестве открытого стандарта. Не отметив их в предложении как зарегистрированные товарные знаки, Юленен рисковал отказаться от всех исключительных прав на название как средство описания протокола. Ненадлежащее использование товарного знака или разрешение другим лицам использовать товарный знак неправильно приводит к тому, что товарный знак становится общим термином, таким как «Клинекс» или «Аспирин» , что открывает доступ к использованию товарного знака другими лицами. [49] После изучения базы данных товарных знаков USPTO многие интернет-эксперты пришли к выводу, что термин «ssh» не является товарным знаком, а просто логотип, в котором используются строчные буквы «ssh». Кроме того, шесть лет между созданием компании и моментом, когда она начала защищать свой товарный знак, а также тот факт, что только OpenSSH получал угрозы юридических последствий, влияли на действительность товарного знака. [50]

Оба разработчика OpenSSH и сам Юленен были членами рабочей группы IETF, разрабатывающей новый стандарт; после нескольких встреч эта группа отклонила просьбу Юлёнена о переименовании протокола, сославшись на опасения, что это создаст плохой прецедент для других исков о товарных знаках против IETF. Участники утверждали, что «Secure Shell» и «SSH» являются общими терминами и не могут быть товарными знаками. [6]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Имя «OpenBSD Secure Shell» в основном используется в различных sshd сценарии запуска .
  1. ^ "выпуск-9.8" . 1 июля 2024 г. Проверено 1 июля 2024 г.
  2. ^ «Портативная версия OpenSSH» . OpenBSD . Проверено 15 октября 2015 г.
  3. ^ «Спецификации, реализованные OpenSSH» . Проект OpenBSD . Проверено 14 октября 2015 г.
  4. ^ Венкатачалам, Гириш (апрель 2007 г.). «Протокол OpenSSH под капотом». Linux Journal (156): 74–77 – через базу данных Discovery в LSU.
  5. ^ Сетевая рабочая группа IETF, январь 2006 г., РФК 4252, Протокол аутентификации Secure Shell (SSH).
  6. ^ Jump up to: а б Даффи Марсан, Кэролин (22 марта 2001 г.). «Изобретатель Secure Shell отклонил запрос на товарный знак» . ITworld.com . Проверено 14 декабря 2021 г.
  7. ^ «dragonfly.git/blob — crypto/openssh/README» . gitweb.dragonflybsd.org . Проверено 19 мая 2016 г. Это порт превосходного OpenSSH от OpenBSD на Linux и другие Unices.
  8. ^ «src/crypto/external/bsd/openssh/dist/README — представление — 1.4» . Репозитории CVS NetBSD . Проверено 19 мая 2016 г.
  9. ^ "опенсш" . OpenSUSE . Проверено 17 мая 2016 г.
  10. ^ «Debian — Подробная информация о пакете openssh-client в jessie» . Дебиан . Проверено 17 мая 2016 г.
  11. ^ «Arch Linux — openssh 7.2p2-1 (x86_64)» . Арч Линукс . Проверено 17 мая 2016 г.
  12. ^ «История проекта и авторы» . OpenBSD . Проверено 8 апреля 2008 г.
  13. ^ Источники DSO
  14. ^ ssh-1.2.13 теперь доступен: политика копирования изменена (теперь требуется разрешение для коммерческой продажи ssh, использование по-прежнему разрешено для любых целей)
  15. ^ «OpenSSH: История проекта и авторы» . openssh.com. 22 декабря 2004 года . Проверено 27 февраля 2014 г.
  16. ^ «Портативный OpenSSH — Freecode» . Freshmeat.net . Проверено 11 февраля 2014 г.
  17. ^ Муренин, Константин А. (11 декабря 2013 г.). Неизвестный Ламер (ред.). «В OpenSSH появился новый шифр — Chacha20-poly1305 — от DJ Bernstein» . Слэшдот . Проверено 26 декабря 2014 г.
  18. ^ Муренин, Константин А. (30 апреля 2014 г.). Соулскилл (ред.). «OpenSSH больше не зависит от OpenSSL» . Слэшдот . Проверено 26 декабря 2014 г.
  19. ^ Муренин, Константин А. (1 февраля 2015 г.). Соулскилл (ред.). «OpenSSH будет поддерживать обнаружение и ротацию ключей для упрощения перехода на Ed25519» . Слэшдот . Проверено 1 февраля 2015 г.
  20. ^ «OpenSSH для Центра обновления Windows» . 19 октября 2015 года . Проверено 23 октября 2015 г.
  21. ^ Дурр, Йосеф (7 марта 2018 г.). «Что нового в командной строке в Windows 10 версии 1803» . Инструменты командной строки Windows для разработчиков .
  22. ^ «Защита закрытых ключей, находящихся в оперативной памяти» .
  23. ^ «Страницы руководства OpenBSD: SSH» . openbsd.org . 3 июля 2014 года . Проверено 14 июля 2014 г.
  24. ^ «Примечания к выпуску OpenSSH» .
  25. ^ "Функции" . ОпенСШ . Проверено 26 июня 2016 г.
  26. ^ Титц, Олаф (23 апреля 2001 г.). «Почему TCP поверх TCP — плохая идея» . Проверено 17 октября 2015 г.
  27. ^ Хонда, Осаму; Осаки, Хироюки; Имасе, Макото; Исидзука, Мика; Мураяма, Дзюнъити (октябрь 2005 г.). «Понимание TCP через TCP: влияние туннелирования TCP на сквозную пропускную способность и задержку». В Атикуззамане, Мохаммед; Баландин, Сергей I (ред.). Производительность, качество обслуживания и управление коммуникационными и сенсорными сетями следующего поколения III . Том. 6011. Бибкод : 2005SPIE.6011..138H . CiteSeerX   10.1.1.78.5815 . дои : 10.1117/12.630496 . S2CID   8945952 .
  28. ^ Каминский, Дэн (13 июня 2003 г.). "Re: Расширения для длинных толстых сетей?" . [электронная почта защищена] (список рассылки). код пересылки TCP также довольно быстр. Чтобы предварительно ответить на вопрос, ssh декапсулирует и повторно инкапсулирует TCP, поэтому у вас не возникнет классических проблем TCP-over-TCP.
  29. ^ «Примечания к выпуску OpenSSH 4.3» . openssh.com . 1 февраля 2006 года . Проверено 14 июля 2014 г.
  30. ^ «SSHD(8) — страница руководства Linux» .
  31. ^ «Sshd_config(5) — страницы руководства OpenBSD» .
  32. ^ «Примечания к выпуску OpenSSH 7.0» . ОпенСШ . 11 августа 2015 года . Проверено 13 ноября 2022 г. .
  33. ^ «Примечания к выпуску OpenSSH 8.8» . ОпенСШ . 26 сентября 2021 г. Проверено 13 ноября 2022 г. .
  34. ^ «Примечания к выпуску OpenSSH 5.7» . ОпенСШ . 24 января 2011 года . Проверено 13 ноября 2022 г. .
  35. ^ «Примечания к выпуску OpenSSH 6.5» . ОпенСШ . 29 января 2014 года . Проверено 13 ноября 2022 г. .
  36. ^ «Примечания к выпуску OpenSSH 7.2» . ОпенСШ . 29 февраля 2016 года . Проверено 13 ноября 2022 г. .
  37. ^ «Примечания к выпуску OpenSSH 8.2» . ОпенСШ . 14 февраля 2020 г. Проверено 13 ноября 2022 г. .
  38. ^ «Изменения по сравнению с OpenSSH 8.9 (примечания к выпуску OpenSSH 9.0)» . Разработчики OpenSSH. 8 апреля 2022 г.
  39. ^ Атака CBC с рекомендациями по безопасности OpenSSH
  40. ^ CVE - 2015-6565
  41. ^ Уязвимость OpenSSH PTY
  42. ^ Выпущен OpenSSH 5.4.
  43. ^ Томсон, Иэн (14 января 2016 г.). «Зловещие серверы OpenSSH могут украсть ваши личные ключи входа в другие системы — исправьте это прямо сейчас» . Регистр .
  44. ^ Только что вышел OpenSSH 7.1p2.
  45. ^ «Ошибка regreSSHion» . Квалис . Квалис . Проверено 16 июля 2024 г.
  46. ^ «Примечания к выпуску OpenSSH» . ОпенСШ . ОпенСШ . Проверено 16 июля 2024 г.
  47. ^ Илонен, Тату (14 февраля 2001 г.). «Торговые марки SSH и название продукта OpenSSH» . openssh-unix-dev (список рассылки). МАРК . Проверено 11 февраля 2014 г.
  48. ^ Миллер, Дэмиен (14 февраля 2001 г.). «Re: Торговые марки SSH и название продукта OpenSSH» . openssh-unix-dev (список рассылки). МАРК . Проверено 11 февраля 2014 г.
  49. ^ Лемос, Роберт (2 января 2002 г.). «Тсс! Не используйте этот товарный знак» . CNET . Проверено 19 мая 2016 г.
  50. ^ Илонен, Тату (1 марта 2002 г.). «Юленен: У нас есть торговая марка ssh, но есть предложение» . НовостиФордж . Архивировано из оригинала 1 марта 2002 года . Проверено 20 мая 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ab57ad0ce63430a94a370504dc2207e8__1721081220
URL1:https://arc.ask3.ru/arc/aa/ab/e8/ab57ad0ce63430a94a370504dc2207e8.html
Заголовок, (Title) документа по адресу, URL1:
OpenSSH - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)