|
|
|
|
 |
Технологии |
|
Secure Shell (SSH)
сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Сходен по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы имеются для большинства сетевых операционных систем.
SSH — это протокол прикладного уровня (или уровня приложений). SSH-сервер обычно прослушивает соединения на TCP-порту 22. Для аутентификации сервера SSH использует алгоритм Диффи — Хеллмана (DH). Для аутентификации клиента — шифрование с открытым ключом (оно сравнительно медленное). Для шифрования передаваемых данных — более быстрое симметричное шифрование. Среди алгоритмов шифрования с открытым ключом чаще всего используются RSA и DSA. Из симметричных алгоритмов — AES, Blowfish и 3DES. Целостность переданных данных проверяется с помощью CRC32 в SSH1 или HMAC-SHA1/HMAC-MD5 в SSH2.
Для сжатия шифруемых данных может использоваться алгоритм LempelZiv (LZ77), который обеспечивает такой же уровень сжатия, что и архиватор ZIP. Сжатие SSH включается лишь по запросу клиента, и на практике используется редко.
SSH позволяет безопасно передавать в незащищенной среде практически любой другой сетевой протокол, таким образом, можно не только удаленно работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры). Также SSH может использовать сжатие передаваемых данных для последующего их шифрования, что удобно, например, для удаленного запуска клиентов X Window System.
Большинство хостинг-провайдеров за определенную плату предоставляют клиентам доступ к их домашнему каталогу по SSH. Это может быть удобно как для работы в командной строке, так и для удаленного запуска программ (в том числе графических приложений).
Распространены две реализации SSH: собственническая коммерческая и бесплатная свободная. Свободная реализация называется OpenSSH. К 2006 году 80% компьютеров сети Интернет использовало именно OpenSSH. Собственническая реализация разрабатывается организацией SSH Inc., она бесплатна для некоммерческого использования. Эти реализации содержат практически одинаковый набор команд.
Существуют две версии протокола SSH: SSH-1 и SSH-2. В первой версии протокола есть существенные недостатки, поэтому в настоящее время SSH-1 практически нигде не применяется.
Протокол SSH-2 в отличие от протокола telnet устойчив к атакам прослушивания трафика («снифинг»), то есть, прослушивание трафика ничего не дает злоумышленнику. Но неустойчив к атакам «man-in-middle». Протокол SSH-2 также устойчив к атакам путем присоединения посредине (англ. session hijacking) - невозможно включиться в или перехватить уже установленную сессию.
Для предотвращения атак «man-in-middle» при подключении к хосту, ключ которого еще не известен клиенту, клиентское ПО показывает пользователю "слепок ключа" (key fingerprint). Рекомендуется тщательно проверять показываемый клиентским ПО "слепок ключа" (key fingerprint) со слепком ключа сервера, желательно полученным по надежным каналам связи или лично.
Поддержка SSH реализована во всех UNIXподобных системах, и на большинстве из них в числе стандартных утилит присутствуют клиент и сервер ssh. Существует множество реализаций SSH-клиентов и для не-UNIX ОС. Большую популярность протокол получил после широкого развития анализаторов трафика и способов нарушения работы локальных сетей, как альтернативное небезопасному протоколу Telnet решение для управления важными узлами.
Основные SSH серверы:
- OpenBSD: OpenSSH;
- Debian GNU/Linux: dropbear, lsh-server, openssh-server, ssh;
- Windows: freeSSHd, copssh, OpenSSH sshd, WinSSHD, Cygwin
Основные SSH-клиенты и оболочки:
- GNU/Linux: kdessh, lsh-client, openssh-client, putty, ssh
- MS Windows и Windows NT: PuTTY, SecureCRT, ShellGuard, Axessh, ZOC, SSHWindows, ProSSHD
- MS Windows Mobile: PocketPuTTy, mToken, sshCE, PocketTTY, OpenSSH, PocketConsole
- Mac OS: NiftyTelnet SSH
- Symbian OS: PuTTY
- Java: MindTerm, AppGate Security Server
- J2ME: MidpSSH
Для работы по SSH нужен SSH-сервер и SSH-клиент. Сервер прослушивает соединения от клиентских машин и при установлении связи производит аутентификацию, после чего начинает обслуживание клиента. Клиент используется для входа на удаленную машину и выполнения команд.
Для соединения сервер и клиент должны создать пары ключей — открытых и закрытых — и обменяться открытыми ключами. Обычно используется также и пароль
SSH туннелирование
SSH туннель — это туннель, создаваемый посредством SSH соединения и используемый для шифрования туннелированных данных. Используется для того, чтобы обезопасить передачу данных в интернете (аналогичное назначение имеет IPsec). Особенность состоит в том, что не зашифрованный трафик какого-либо протокола шифруется на одном конце SSH соединения и расшифровывается на другом.
Практическая реализация может выполняться двумя способами:
-Созданием Socks-прокси для приложений, которые не умеют работать через SSH-туннель, но могут работать через Socks-прокси
-Использованием приложений, умеющих работать через ssh-туннель.
| |
|
|
Для корректного отображения этого элемента вам необходимо установить FlashPlayer и включить в браузере Java Script.
|
 | Новая версия |
 | Новые Update&Patch |
|
|