• Время чтения ~8 мин
  • 25.03.2024

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

Secure Shell, или Secure Socket Shell, — это сетевой протокол, который позволяет устройствам выполнять две важные задачи: обмениваться данными и обмениваться ими. Кроме того, протокол SSH также шифрует данные, что делает его идеальным для незащищенных сетей. Но что такое SSH и как он работает?

Термин Secure Socket Shell определяет как криптографический сетевой протокол, так и программы, обеспечивающие его работу.

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

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

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

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

Как работает SSH?

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

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

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

SSH-клиент и сервер делают это с помощью различных методов шифрования, но наиболее распространенными из них являются Blowfish и Advanced Encryption Standard

Blowfish — старейший симметричный алгоритм шифрования. Однако более широко используется Advanced Encryption Standard, разработанный Национальным институтом стандартов и технологий

Вот упрощенное представление всего этого процесса.

Four actions between SSH-клиент and SSH-сервер.
How SSH-клиент contacts server, SSH-сервер sends public key, client negotiates parameters and server logs into host system

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

Также важно отметить, что защищенное SSH-соединение работает по-разному в разных операционных системах:

  • На Mac и Linux – через Терминал
  • На Windows – через установленный SSH-клиент 

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

SSH-сервер

As stated previously, the SSH-сервер is always the one that initiates the network connection. However, it also stays vigilant for new connections and responds to them. The server does that using the host system’s TCP port 22

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

После того, как клиент и сервер установят безопасное соединение, пользователи могут выполнить:

  • Передача файлов
  • Удаленное выполнение команд
  • Удаленное администрирование хоста
  • Безопасность трафика других приложений
List of actions internet users can perform because of safe SSH connection.
What internet users can do using a safe connection

Unfortunately, the SSH-сервер is often the chosen target of cyberattackers as it provides remote access to the host system. Due to that, the software quality must be high, and the server must have strict security requirements. In other words, its code has to be reliable to prevent bugs and imperfections that could lead to unnecessary exposure. 

SSH-клиент

System administrators can benefit from secure connections by installing a program on their local machine and the remote computer. This software is known as the Secure Socket Client. There are many popular SSH-клиент services on the web to choose from for local and remote computers. 

В то время как устройства Mac и Linux обычно используют терминальную программу, операционной системе Windows требуется специальная клиентская программа для выполнения команд SSH. Например, PuTTY, KiTTY, MobaXterm или WinSCP

Once you have a client installed on a local machine, you also have to install an SSH-сервер to accept SSH connections. This is how you can start using this secure alternative to regular remote access options. Essentially, the client acts as a secure environment, via which you connect to a remote host device.

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

SSH authentication using public and private keys.
How SSH-клиентs and servers use private and public keys

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

Ключ

шифрования Ключ шифрования — это форма аутентификации пользователя в протоколе SSH. 

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

Ключи SSH — это, по сути, криптографическая пара ключей, состоящая из закрытого и открытого ключей.

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

Однако система не идеальна, поэтому следует также использовать парольную фразу, так как она шифрует закрытый ключ. 

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

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

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

Для чего обычно используется SSH?

Протокол SSH наиболее часто используется в центрах обработки данных, где он обеспечивает:

  • Удаленный доступ к различным ресурсам
  • Безопасное управление
  • Поставка исправлений программного обеспечения
  • Администрирование платформы виртуализации
  • Безопасное управление маршрутизатором
  • Обслуживание серверного оборудования
List of ways in which the SSH is useful.
How SSH is typically used

Практически во всех центрах обработки данных SSH поставляется вместе с операционными системами Mac, Unix и Linux.  

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

SSH также очень полезен для крупных компаний . Корпорации используют протокол SSH для передачи зашифрованных файлов и, таким образом, избегают других, менее безопасных методов передачи файлов. Инженерная проектная группа Интернета (IETF) создала протокол SSH File Transfer Protocol (SFTP) в качестве расширения SSH для обеспечения безопасности каждой передачи файлов.

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

  • Отчётность
  • Резервное копирование системы
  • Резервное копирование данных
  • Архивирование данных
  • Очистка баз данных
  • Обслуживание сети

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

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

Уязвим ли SSH?

Безопасность SSH-коммуникаций не идеальна. К счастью, мы знаем о его недостатках, и они, как правило, связаны с ключами SSH и их неправильным использованием. 

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

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

Hacker uses SSH key illegally to gain access.
How a hacker can use an SSH key illegally to gain unauthorized access

Давайте рассмотрим несколько уязвимостей SSH, с которыми следует быть особенно осторожными:

  • Неадекватное отслеживание ключей SSH
  • Частый обмен ключами SSH
  • Статические SSH-ключи и встроенные ключи

Неадекватное отслеживание

ключей SSH Крупные компании обычно накапливают огромное количество ключей SSH. Если у них 10 000 или более серверов, у них есть миллионы ключей. Поэтому неудивительно, что они могут потерять из виду некоторые из них. 

Однако это может легко привести к тому, что хакеры получат доступ к неучтенным ключам. В результате они могут получить долгосрочный доступ к компании. 

Частый обмен SSH-ключами

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

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

Статические ключи SSH и встроенные ключи

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

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

Заключение

SSH might be one of the more complicated network protocols. However, the reason for its wide use and popularity is simple: All communication between the SSH-клиент and server is entirely encrypted and, therefore, incredibly safe. 

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

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

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297