Основы функционирования SSH

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

linux

Введение в SSH: Определение и возможности

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

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

Применение и назначение SSH

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

  • Доступ на расстоянии. SSH предоставляет шифрованные каналы для удалённого доступа как пользователям, так и системным процессам;
  • Обмен файлами. Протокол SFTP, работающий под управлением SSH, позволяет безопасно переносить файлы через сеть;
  • Перенаправление X11. Эта функция дает возможность запуска графических приложений с сервера на клиентском компьютере;
  • Перенаправление портов. SSH позволяет связать локальные порты с портами на удалённом сервере, тем самым защищая данные при передаче через другие протоколы, включая TCP/IP;
  • Туннелирование. Используя туннелирование, можно безопасно передавать информацию даже через открытые сети, что делает эту технологию привлекательной альтернативой VPN для защиты критически важных бизнес-данных;
  • Контроль за сетью. SSH играет важную роль в администрировании сетевых устройств и системных компонентов.

Механизм действия протокола SSH

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

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

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

Процесс подключения через SSH

На клиентском компьютере введите эту команду, чтобы подключиться по SSH:

Сервер, получив запрос, начнет устанавливать шифрование сеанса.

Методы шифрования в сеансах SSH

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

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

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

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

Для генерации ключа они следуют этим шагам:

  • Обе стороны согласовывают большое простое число (модуль) и базу, что помогает избежать взлома методом перебора;
  • Затем каждая сторона выбирает секретное число и применяет его в специальной формуле с использованием общедоступных чисел;
  • Сервер и клиент обмениваются результатами этих вычислений;
  • Используя полученные данные, каждая сторона проводит окончательные расчёты и получает общий секретный ключ.

После согласования ключа сервер пытается аутентифицировать пользователя, который хочет получить доступ.

Идентификация пользователя в системе SSH

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

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

Разбор шифровальных методов в SSH

В процессе передачи данных через SSH применяются три различных метода криптографии:

  • Шифрование с симметричным ключом;
  • Шифрование с использованием пары ключей (асимметричное);
  • Применение хеш-функций.

Шифрование с симметричным ключом

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

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

Шифрование с использованием пары ключей (асимметричное)

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

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

Применение хеш-функций

В SSH для гарантии того, что данные поступают именно от указанного источника, применяется техника хэширования. Для этого используются такие алгоритмы создания хэшей, как Код аутентификации сообщений (MAC) и Хэшированный код аутентификации сообщений (HMAC).

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий