Работа протокола 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