Основные принципы работы протокола SSH | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Node.js Developer
-25%
Unity Game Developer. Professional
-25%
React.js Developer
-25%
Android Developer. Professional
-25%
Software Architect
-25%
C++ Developer. Professional
-25%
Backend-разработчик на PHP Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Team Lead Разработчик голосовых ассистентов и чат-ботов Архитектура и шаблоны проектирования Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Подготовка к сертификации Oracle Java Programmer (OCAJP) Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Administrator Linux. Professional MS SQL Server Developer Безопасность Linux PostgreSQL Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Administrator Linux.Basic Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Основные принципы работы протокола SSH

В этой заметке мы расскажем, как работает SSH, каким образом он применяется для создания безопасной связи с удалёнными компьютерами, и как именно ПК устанавливают и настраивают сеанс.

SSH — что это?

SSH представляет собой сокращение от «secure shell», что переводится как безопасная оболочка. А ещё это протокол, который всё чаще применяют в целях управления удалёнными персональными компьютерами по сети.

Как установить SSH-сессию?

Дабы начать SSH-сеанс между компьютерами, вам следует пройти ряд шагов: 1. Обеспечьте безопасный способ обмена сообщениями, что делается путём настройки зашифрованного канала. 2. Проверьте целостность данных, которые отправляет клиент. 3. Проверьте подлинность клиента.

Выполнив эти 3 шага, можно общаться с удалённым ПК безопасно и делиться конфиденциальной информацией. Давайте подробно опишем каждый из вышеописанных этапов.

Настраиваем зашифрованный канал

Все данные, которые отправляются с помощью протокола SSH, зашифрованы. Следовательно, обе стороны должны знать и понимать метод шифрования.

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

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

Проблема решается с помощью протокола обмена ключами Диффи-Хеллмана. Два компьютера создают свой открытый и закрытый ключ, образуя вместе пару ключей. Далее компьютеры делятся открытыми ключами друг с другом посредством интернета. В результате, применяя свой закрытый и чужой открытый ключи, обе стороны смогут независимо друг от друга сгенерировать одинаковый симметричный ключ.

Верификация данных

Следующий этап установки SSH-сеанса — проверка, что данные не были подделаны в процессе их передачи, а также проверка, что другой компьютер действительно тот, за кого себя выдаёт.

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

После того, как хост и клиент сгенерируют свои симметричные ключи, клиент применит хеш-функцию для генерации HMAC («код аутентификации сообщений, применяющий хеширование») с последующей отправкой этого HMAC на сервер для верификации.

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

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

Если сформированный хеш будет совпадать с HMAC, полученным от клиента, мы будем уверены, что подключаемый компьютер является ПК с симметричным ключом, так как только клиент и хост знают симметричный ключ.

Плюс подхода — мы не только проверили личность клиента и убедились, что данные не подделаны, но и выполнили это без передачи какой-нибудь конфиденциальной информации.

Аутентификация

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

Большинство выполняют аутентификацию по паролю, когда клиент отправляет хосту сообщение, содержащее пароль (сообщение, разумеется, зашифровано). Хост расшифровывает сообщение, а потом ищет пароль в БД, дабы убедиться, существует ли у клиента разрешение на доступ. Применение пароля для аутентификации в принципе допустимо, однако имеет минусы, ведь нужно хранить все пароли на сервере.

Лучший вариант — аутентификация по сертификату. Сформировав сертификат, клиент всего один раз вводит пароль, необходимый для доступа к серверу, с отправкой ему открытой части сертификата. Далее ввод пароля не потребуется. Этот метод считают более безопасным, ведь хранить секреты пользователя на хосте не потребуется.

Источник: «A top-down introduction to SSH and how it enables secure data-sharing».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!