Работа протокола SSH на практике

Принцип работы стека TCP/IP. Переадресация портов, поиск открытого защищенного канала и обмен идентификационными данными по протоколу SSH. Выбор алгоритмов обмена ключами, шифрования и сжатия при сетевом подключении. Защита сервера от хакерских атак.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 26.05.2021
Размер файла 18,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Московский технический университет связи и информатики

Работа протокола SSH на практике

Ракчеев А.Ю.

г. Москва

Аннотация

Ракчеев Алексей Юрьевич - студент, кафедра 09.04.01 Бизнес-информатика.

В статье анализируется принцип работы SSH протокола. В статье есть 1 таблица. Рассмотрены разные для просмотра алгоритма обмена ключами SSH. Также показано, чем обеспечивается безопасность SSH соединения.

Ключевые слова: анализ, информационные системы, протокол SSH, ключи.

Периодически читая статьи, посвящённые SSH, обратил внимание, что их авторы не раскрывают принцип работы протокола. В большинстве случаев они ограничиваются рассмотрением темы генерации ключей и описанием опций основных команд.

Попытаюсь внести немного ясности в работу протокола SSH и рассмотреть роль алгоритма RSA и ключей авторизации пользователя.

Алгоритм протокола SSH можно разделить на три уровня, каждый из которых располагается над предыдущим: транспорт (открытие защищённого канала), аутентификация, подключение.

Для целостности картины я также добавлю уровень установки сетевого соединения, хотя официально этот уровень находится ниже SSH. Установка TCP-соединения

Не буду подробно останавливаться на принципе работы стека TCP/IP, так как эта тема достаточно хорошо задокументирована. На этом этапе происходит сетевое подключение клиента к серверу на TCP-порт, указанный в опции Port (по умолчанию: 22) в файле конфигурации сервера /etc/ssh/sshd_config.

Открытие защищенного канала и обмен идентификационными данными. После установки TCP-соединения, клиент и сервер обмениваются версиями SSH-протокола и другими вспомогательными данными, необходимыми для выяснения совместимости протоколов и для выбора алгоритмов работы.

Выбор алгоритмов: обмена ключами, шифрования, сжатия и т.п.

При работе SSH используется довольно много алгоритмов, одни из них используются для шифрования, вторые для обмена ключами, третьи для сжатия передаваемых данных и т.п. На этом шаге стороны отсылают друг другу списки поддерживаемых алгоритмов, наибольший приоритет имеют алгоритмы в начале каждого списка.

Затем сравнивают алгоритмы в полученных списках с алгоритмами, имеющимися в системе, и выбирают первый совпавший в каждом списке.

Список доступных алгоритмов обмена ключами на стороне клиента (используются для получения сессионного ключа) можно посмотреть командой:

ssh -Q kex

Список доступных в системе симметричных алгоритмов (используются для шифрования канала):

ssh -Q cipher

Список типов ключей для авторизации у клиента:

ssh -Q key-cert

Получение сессионного ключа шифрования. Процесс получения сессионного ключа может отличаться в зависимости от версии алгоритма, но в общих чертах сводится к следующему:

• Сервер отсылает клиенту свой ключ

• Если клиент производит соединение с данным сервером впервые (о чем говорит отсутствие записи в файле /home/username/.ssh/known_hosts у клиента), то пользователю будет задан вопрос о доверии ключу сервера. Если же соединение с данным сервером уже устанавливалось ранее, то клиент сравнивает присланный ключ с ключом, записанным в /home/username/.ssh/known_hosts.

Если ключи не совпадают, то пользователь получит предупреждение о возможной попытке взлома. Впрочем, эту проверку можно пропустить, если вызвать ssh с опцией StrictHostKeyChecking:

ssh -o StrictHostKeyChecking=no username@servername

Также, если пользователю нужно удалить старый ключ сервера, то используется команда:

ssh-keygen -R servername

• Как только клиент определился с доверием к ключу сервера, с помощью одной из реализаций (версия определяется в п.2.2) алгоритма Диффи-Хеллмана клиент и сервер генерируют сеансовый ключ, который будет использоваться для симметричного шифрования канала.

Сеансовый ключ создается исключительно на период жизни канала и уничтожается при закрытии соединения.

Аутентификация клиента. И только теперь, когда клиент и сервер установили канал для зашифрованной передачи данных, они могут произвести аутентификацию по паролю или ключам. В общих чертах, аутентификация посредством ключей происходит следующим образом:

• Клиент отсылает серверу имя пользователя (username) и свой публичный ключ.

• Сервер проверяет в файле /home/username/.ssh/authorized_keys наличие присланного клиентом открытого ключа. Если открытый ключ найден, то сервер генерирует случайное число и шифрует его открытым ключом клиента, после чего результат отправляется клиенту.

• Клиент расшифровывает сообщение своим приватным ключом и отправляет результат серверу.

• Сервер проверяет полученный результат на совпадение с тем числом, которое он изначально зашифровал открытым ключом клиента, и в случае совпадения считает аутентификацию успешной.

Уровень подключения. После проведения всех вышеперечисленных процедур, пользователь получает возможность передавать команды серверу или копировать файлы. На этом уровне обеспечивается: мультиплицирование каналов (возможность работы множества каналов к одному серверу за счет объединения их в один канал), туннелирование и т.п. На примере можем разобрать, что если сменить стандартный порт SSH на какой-то другой (таблица 1). стек порт протокол шифрование сервер

Таблица 1. Таблица сравнения взлома и флуда

Конфигурация

Вероятность взлома

Потери от флуда* *

22 порт, авторизация по паролю, без защиты

высокая

высокие

22 порт, авторизация по ключам, без защиты

средняя***

высокие

22 порт, авторизация по ключам, защита на основе ограничения неудачных попыток авторизации

низкая

средние****

Нестандартный порт, авторизация по паролю, без защиты

высокая

низкие

Нестандартный порт, авторизация по ключам, без защиты

средняя***

низкие

Нестандартный порт, авторизация по ключам, защита на основе ограничения неудачных попыток авторизации

низкая

низкие

В сегодняшний ситуации сервера постоянно попадают под атаку на порт 22 порт. В ситуации, если SSH у вас работает на стандартном порту (и ничем дополнительно не защищён), даже если аутентификация исключительно по ключам и никакие подборы паролей не пугают. То по причине постоянно валящихся запросов от недобросовестных клиентов сервер всё равно вынужден совершать массу бесполезной работы: устанавливать TCP-соединение, выбирать алгоритмы, генерировать сессионный ключ, отправлять запросы аутентификации, писать лог-файл. В ситуации же, когда на 22-м порту ничего нет, или порт защищён с помощью iptables (либо надстройками над ним типа fail2ban), то злоумышленник будет отброшен ещё на этапе установки TCP-соединения.

Наиболее интересно описанное выглядит в виде таблицы 1, где - * это:

* -- значения параметров (высокий, средний, низкий) носят относительный характер и служат только для сравнения показателей.

** -- имеется в виду расход ресурсов сервера (процессор, диск, сетевой канал и т.п.) на обработку лавины запросов, обычно идущих на 22-й порт.

*** -- произвести взлом, если для авторизации используются RSA-ключи, очень сложно, однако неограниченное количество попыток авторизации делает это возможным.

**** -- количество попыток авторизации ограничено, но серверу всё равно приходится обрабатывать их от большого количества злоумышленников.

SSH обеспечивает защищенный канал связи между клиентом и сервером, через который можно передавать данные (почтовые, видео, файлы), работать в командной строке, удаленно запускать программы, в том числе графические. SSH-сервер должен быть установлен на удаленной операционной системе. SSH-клиент должен быть запущен на машине, с которой будет осуществляться удаленное подключение.

Основные функции, доступные при использовании SSH-протокола:

• Передача любых данных через защищенное SSH-соединение, включая сжатие данных для последующего шифрования.

• X11 Forwarding -- механизм, позволяющий запускать программы UNIX/Linux- сервера в виде графической оболочки, как в Windows (использовать X Window System).

• Переадресация портов -- передача шифрованного трафика между портами разных машин.

Безопасность SSH-соединения обеспечивается:

• шифрованием данных одним из существующих алгоритмов;

• аутентификацией сервера и клиента одним из нескольких доступных методов;

• наличием дополнительных функций протокола, направленных на предупреждение различных хакерских атак.

Аутентификация сервера дает защиту от:

• взлома путем подмены IP-адресов (IP-spoofing), когда один удаленный хост посылает пакеты от имени другого удаленного хоста;

• подмены DNS-записей (DNS-spoofing), когда подменяется запись на DNS- сервере, в результате чего соединение устанавливается с хостом, который указан в подмененной записи, вместо необходимого;

• перехвата открытых паролей и других данных, передаваемых в открытом виде через установленное соединение.

На сегодняшний день существуют две версии протокола SSH (SSH-1 и SSH-2), причем вторая версия усовершенствована и расширена по сравнению с первой. Например, вторая версия устойчива к атакам вида MITM. Также существуют две редакции данного протокола: открытая версия (бесплатная) и коммерческая (платная). Бесплатная версия -- OpenSSH -- встроена во все UNIX-подобные операционные системы в виде стандартных утилит SSH-клиента и SSH-сервера [1, c. 57].

Коммерческая реализация SSH-протокола -- SSH Communications Security -- разработана одноименной организацией. Имеет небольшие отличия от бесплатной версии, такие как доступность коммерческой технической поддержки, наличие инструментов веб-управления и др. Основной набор команд и возможностей практически одинаковый у обоих продуктов.

Для ОС Windows выпущены различные SSH-клиенты и оболочки, самые распространенные из них -- это бесплатные PuTTY и WinSCP. Для других операционных систем также существуют свои SSH-клиенты.

Список литературы

1. Silverman Richard E., Byrnes Rober G. The Definitive Guide, 2005. С. 57-58.

Размещено на Allbest.ru

...

Подобные документы

  • Методы противодействия сетевым атакам. Алгоритм действия на сетевом уровне. Методы осуществления парольных атак. Атаки типа Man-in-the-Middle. Сетевая разведка, несанкционированный доступ. Переадресация портов. Вирусы и приложения типа "троянский конь".

    курсовая работа [110,1 K], добавлен 20.04.2015

  • Изучение ведущих технологий шифрования и обмена данными. Выбор и разработка архитектуры сетевой технологии управления ключами пользователей. Разработка логической модели базы данных, основных форм и интерфейсов, основных алгоритмов обработки информации.

    курсовая работа [586,6 K], добавлен 18.12.2011

  • Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Перехват передаваемой по сети информации. Подделка источника. Асимметричные алгоритмы шифрования. Механизмы безопасности. Защита от повторений. Контроль доступа. Пример последовательности обмена открытыми ключами. Фильтрация пакетов на сетевом уровне.

    презентация [81,2 K], добавлен 25.10.2013

  • Принцип организации и способы удаленного обмена файлами с использованием протокола. Разработка проекта распространения софта на множество пользовательских машин. Создание программного комплекса системы с механизмами отображения и управления данными.

    дипломная работа [920,0 K], добавлен 03.04.2014

  • Исследование криптографического протокола, способного обеспечить надежную взаимную аутентификацию и обмен ключами, оставаясь наименее уязвимым к DDoS атакам. Анализ существующих аналогичных протоколов. Программная реализация схемы, платформа разработки.

    дипломная работа [850,3 K], добавлен 11.07.2012

  • Алгоритмы работы протокола STP. Статусы портов в протоколе SpanningTree. Виды, описание протоколов, агрегация каналов. Схемы возможных атак, способы обнаружения. Слияние-расхождение деревьев, локализованный отказ в обслуживании, спровоцированный сниффинг.

    курсовая работа [86,8 K], добавлен 07.04.2015

  • Комбинированное использование симметричного и асимметричного шифрования. Зависимость между открытым и закрытым ключами. Основные недостатки симметричного шифрования. Схема двухстороннего конфиденциального обмена. Концепция шифрования по алгоритму DES.

    презентация [1,4 M], добавлен 20.12.2012

  • Просмотр, запись и чтение данных буфера обмена. Динамический обмен данными (DDE), способы его организации. Атомы в Windows, их понятие и функции. Особенности задания параметра lParam сообщений DDE. Обмен и передача данных между клиентом и сервером.

    лекция [303,7 K], добавлен 24.06.2009

  • Задача сетевой защиты и методы её решения. Правила прохождения пакетов. Прокси-брандмауэры и сервера уровня соединения. Шлюзы приложений и сервера прикладного уровня. Классификация систем обнаружения атак. Схема протокола взаимодействия модулей системы.

    дипломная работа [735,4 K], добавлен 11.04.2012

  • Аутентификация в Windows 2000. Преимущества аутентификации по протоколу Kerberos. Стандарты аутентификации по протоколу Kerberos. Расширения протокола и его обзор. Управление ключами, сеансовые билеты. Аутентификация за пределами домена, подпротоколы.

    курсовая работа [369,2 K], добавлен 17.12.2010

  • Шифрование - широко используемый криптографический метод сохранения конфиденциальности информации. Описание схемы шифрования и расшифрования. Структура алгоритмов на основе сети Фейстеля. Скриншоты работающей программы. Скорость работы алгоритмов.

    курсовая работа [545,2 K], добавлен 29.11.2010

  • Поиск информации в Интернет с помощью каталогов и поисковых машин. Мгновенный обмен информацией в Интернете. Основные программы и браузеры для поиска и обмена информацией. Программное обеспечение для просмотра веб-сайтов. Программы для обмена файлами.

    дипломная работа [81,1 K], добавлен 23.06.2012

  • Общая характеристика протокола ICMP, его назначение и формат сообщений. Анализ применимости протокола ICMP при переходе с набора протоколов IP v4 на набор IP v6. Свойства и принцип работы, сферы применения протоколов обмена маршрутной информацией.

    курсовая работа [210,8 K], добавлен 24.08.2009

  • Изучение процесса обмена данными между приложениями в среде MS Office, используя при этом разные форматы хранения и представления информации. Создание файла исходных данных формата CSV по шаблону. Выполнение тестов, расчетов с исходным набором данных.

    курсовая работа [3,4 M], добавлен 27.01.2015

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

  • Краткая история развития криптографических методов защиты информации. Сущность шифрования и криптографии с симметричными ключами. Описание аналитических и аддитивных методов шифрования. Методы криптографии с открытыми ключами и цифровые сертификаты.

    курсовая работа [1,2 M], добавлен 28.12.2014

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

  • Понятие о протоколе Secure Sockets Layer. "Безопасный канал", основные свойства. Использование протокола, его недостатки. Интерфейс программы EtherSnoop. Фазы протокола диалога. Публичные ключи, особенности распространения. Обмен данными в Интернете.

    реферат [1,4 M], добавлен 31.10.2013

  • Основные понятия Proxy-сервера. Принцип сочетания централизации и децентрализации. Выбор протокола для почтового сервера. Синтез глобальных приоритетов. Описание входных и выходных данных. Основные свойства программного продукта, его назначение.

    дипломная работа [1,0 M], добавлен 27.06.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.