• Час читання ~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 Клієнт and Сервер.
How Клієнт contacts server, Сервер sends public key, client negotiates parameters and server logs into host system

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

Також важливо відзначити, що захищене з'єднання SSH працює по-різному на різних операційних системах:

  • На Mac і Linux – через термінал
  • У Windows – через встановлений SSH-клієнт 

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

Сервер

As stated previously, the Сервер 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 Сервер 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. 

Клієнт

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 Клієнт services on the web to choose from for local and remote computers. 

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

Once you have a client installed on a local machine, you also have to install an Сервер 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 Клієнт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 для завершення зашифрованої передачі файлів і, таким чином, уникають інших, менш безпечних методів передачі файлів. Internet Engineering Task Force (IETF) створила протокол передачі файлів SSH (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 Клієнт 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