• Главная
  • Карта сайта
Не найдено

Що Таке SSH

  1. Що Таке SSH Що таке SSH
  2. Як працює SSH
  3. Пояснення різних технік шифрування
  4. симетричне шифрування
  5. асиметричне шифрування
  6. хешування
  7. Як працює SSH з цими техніками шифрування
  8. Процес вибору шифрування
  9. авторизація користувача
  10. висновок
  11. Що Таке SSH
  12. Як працює SSH
  13. Пояснення різних технік шифрування
  14. симетричне шифрування
  15. асиметричне шифрування
  16. хешування
  17. Як працює SSH з цими техніками шифрування
  18. Процес вибору шифрування
  19. авторизація користувача
  20. висновок
  21. Що Таке SSH
  22. Як працює SSH
  23. Пояснення різних технік шифрування
  24. симетричне шифрування
  25. асиметричне шифрування
  26. хешування
  27. Як працює SSH з цими техніками шифрування
  28. Процес вибору шифрування
  29. авторизація користувача
  30. висновок

Що Таке SSH

Що таке SSH

SSH, або Безпечна Оболонка, це протокол віддаленого адміністрування, який дозволяє користувачеві управляти і вносити зміни на його віддалений сервер через Інтернет. Ця служба була створена в якості заміни не зашифровані Telnet і використовує криптографічні техніки, щоб забезпечити, що все сполучення між сервером і користувачем було зашифровано. SSH надає механізм для авторизації віддаленого користувача, передаючи команди клієнта хосту і повертаючи відповідь назад клієнту.

На малюнку нижче показано звичайне вікно SSH. Будь-який користувач Linux або macOS може скористатися SSH безпосередньо з вікна терміналу. Користувачі Windows можуть скористатися SSH-клієнтом на кшталт Putty . Ви можете виконувати shell команди також, як якщо б ви безпосередньо управляли віддаленим комп'ютером.

Ви можете виконувати shell команди також, як якщо б ви безпосередньо управляли віддаленим комп'ютером

Це керівництво по SSH розповість про те, що таке SSH, як працює SSH і заодно допоможе вам зрозуміти технології дозволяють протоколу надавати захищене віддалене управління. Ми докладніше зупинимося на кожному з шарів і типів шифрування, а також розповімо про значення кожного з них.

Як працює SSH

Якщо ви використовуєте Linux або Mac, тоді використання SSH для вас не складе особливих труднощів. Якщо ви використовуєте Windows, вам необхідно встановити SSH-клієнт для підключення. Найпопулярнішим SSH-клієнтом є PuTTy, про який ви можете дізнатися докладніше тут .

Для користувачів Mac і Linux, перейдіть до вашій програмі терміналу і дотримуйтесь інструкцій нижче:

SSH команда складається з 3 окремих частин:

ssh {user} @ {host}

Частина з SSH дасть системі знати, що ви хочете відкрити SSH з'єднання. {user} дасть системі відомості про акаунт до якого ви хочете підключитися. Наприклад, ви захочете отримати доступ як root користувача, який фактично є синонімом для адміністратора системи з повними правами на зміну будь-яких даних в системі. {host} означає комп'ютер до якого ви хочете підключитися. Це може бути IP адреса або доменне ім'я (наприклад www.домен.xyz).

Коли ви натиснете Enter, вилізе вікно з проханням ввести пароль від запитаного аккаунта. Коли ви його введете не буде ніяких повідомлень, проте, ваш пароль буде переданий. Після того, як ви закінчите введення пароля, натисніть кнопку Enter двічі знову. Якщо ваш пароль правильний, то вас зустріне вікно терміналу віддаленого управління.

Якщо ви хочете дізнатися більше про SSH командах, відвідайте цей посібник .

Пояснення різних технік шифрування

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

  1. симетричне шифрування
  2. асиметричне шифрування
  3. хешування

симетричне шифрування

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

У симетричному шифруванні зазвичай використовується один ключ або пара ключів, де один ключ може бути легко обчислений за допомогою іншого.

Симетричні ключі використовуються для шифрування всього повідомлення протягом SSH сесії. І клієнт, і сервер отримують ключ узгодженим методом, і даний ключ ніколи не розголошується третім особам. Процес створення симетричного ключа здійснюється за допомогою алгоритму обміну ключами. Що робить цей спосіб шифрування в деякому сенсі безпечним, так це те, що ключ ніколи не передається від клієнта до хосту. Навпаки, обидва комп'ютера ділять частини публічної інформації та використовують її для обчислення ключа. Навіть якщо інша машина зможе перехопити інформацію, вона не зможе обчислити ключ, тому що алгоритм обміну ключем буде невідомий.

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

Існує різні шифри симетричного шифрування, включаючи AES (Advanced Encryption Standard), CAST128, Blowfish і т.д. Перед установкою захищеного з'єднання, кліет і хост вирішують який з шифрів використовувати, створюючи список підтримуваних шифрів в порядку їх переваги. Самий кращий шифр зі списку клієнта, який присутній в списку хоста буде використовуватися в якості двонаправленого шифру.

Наприклад, якщо дві машини Ubuntu 14.04 LTS повідомляються один з одним за допомогою SSH, то вони будуть використовувати aes128-ctr як шифру за замовчуванням.

асиметричне шифрування

На відміну від симетричного шифрування, асиметричне використовує два окремих ключа для шифрування і дешифрування. Ці два ключа також відомі як приватний і публічний ключі. Разом вони формують пару публічних-приватних ключів.

Публічний ключ, як зрозуміло з його назви вільно поширюється між усіма групами. Однак незважаючи на те, що він тісно пов'язаний з приватним ключем в плані його функціональності, приватний ключ не може бути математично вирахувано за допомогою публічного. Взаємини між двома ключами вкрай складні: повідомлення, яке зашифроване публічним ключем машини може бути розшифровано лише приватним ключем тієї ж машини. Ці односторонні відносини означають, що публічний ключ не може дешифрувати свої ж повідомлення, також як не може розшифрувати нічого зашифрованого приватним ключем.

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

На відміну від усталеного думки про шифрування, асиметричне шифрування використовуватись для шифрування всієї SSH сесії. Замість цього воно використовується тільки в процесі алгоритму обміну ключами симетричного шифрування. Перед налагодженням захищеного з'єднання, обидві групи генерують тимчасові пари публічно-приватних ключів і діляться приватним ключами для створення загального секретного ключа.

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

хешування

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

Створити криптографічний хеш із заданого значення досить легко, але отримати значення з хешу неможливо. Це означає, що якщо клієнт має потрібний значенням, він може генерувати криптографічний хеш і порівняти його значення зі значенням сервера, щоб перевірити чи збігаються вони.

SSH використовує хеш-кодування для підтвердження повідомлень про аутентифікації. Це робиться за допомогою HMACs або H ash-based M essage A uthentication C odes (Кода Аутентифікації Повідомлень, використовують Хеш-функції). Це забезпечує достовірність отриманої команди.

Якщо обраний необхідний алгоритм симетричного шифрування, це означає, що також правильно вибрано алгоритм аутентифікації повідомлень. Це працює також, як вибирається шифр в розділі про симетричному шифруванні.

Кожне передане повідомлення повинно містити MAC, який розраховується за допомогою симетричного ключа, порядкового номера пакета і вмісту повідомлення. Воно відправляється ззовні симетрично зашифрованих даних в якості підсумкового розділу пакета зв'язку.

Як працює SSH з цими техніками шифрування

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

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

Далі він організовує захищене з'єднання, проводячи аутентифікацію клієнта і відкриваючи необхідну оболонку, якщо перевірка успішна

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

Є дві стадії установки підключення: перше, обидві системи повинні домовитися про стандарти шифрування для захисту їх майбутніх з'єднань, і друге, користувачі повинні пройти перевірку справжності. Якщо дані вірні, то користувач отримає доступ.

Процес вибору шифрування

Коли клієнт починає з'єднуватися з сервером через TCP, то сервер надасть протоколи шифрування і їх версії, які він підтримує. Якщо клієнт має такий же відповідний протокол і версію, досягається угода і з'єднання встановлюється з обраним протоколом. Сервер також використовує асиметричні публічні ключі, які клієнт може використовувати для перевірки аутентифікації.

Як тільки воно встановлено, сторони використовують алгоритм обміну Діффі-Хеллмана для створення симетричних ключів. Цей алгоритм дозволяє і клієнту, і сервера отримати загальний код шифрування, який вони використовуватиме для подальших сесій підключення.

Ось як працює алгоритм на найпростішому рівні:

  1. І клієнт, і сервер генерують дуже велике число, яке не має ніяких спільних рис. Це число також називається стартове значення.
  2. Далі, обидві сторони домовляються про загальний механізм шифрування для генерації іншого набору значень в особливою для алгоритму манері. Ці механізми також відомі як генератори шифрування, які проводять великі операції на стартовому значенні. Як приклад можна привести AES (Advanced Encryption Standard).
  3. Обидві сторони окремо один від одного генерують інші числа. Вони використовуються в якості приватних ключів для повідомлень.
  4. Ці щойно згенеровані приватні ключі, із загальним числом і алгоритмом шифрування (AES) використовуються для обчислення публічного ключа, який доставляється на інший комп'ютер.
  5. Потім сторони використовують їх персональні приватні ключі, загальний публічний ключ іншої машини і початкове число, щоб створити фінальний загальний ключ. Цей ключ буде вирахувано обома комп'ютерами незалежно один від одного, але він буде однаковим.
  6. Тепер, коли обидві сторони мають загальний ключ, вони можуть симетрично шифрувати всю SSH сесію. Той же ключ може бути використаний для шифрування і дешифрування повідомлень (читайте розділ про симетричному шифруванні).

Тепер, коли сесія захищена симетричним шифруванням була встановлена, користувач повинен бути авторизований.

авторизація користувача

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

Однак навіть якщо паролі зашифровані, їх не рекомендують використовувати для захищеного з'єднання. Причиною тому є відносна простота з якою боти можуть підібрати пароль до вашого облікового запису. Тому рекомендується використання пари ключів SSH.

Це набір асиметричних ключів, які використовуються для авторизації користувачів без введення будь-яких паролів.

висновок

Поглиблення своїх знань про те, що таке SSH і як він працює допомагає краще зрозуміти захисні аспекти цієї технології. Багато людей думають про цей процес як про незрозуміле і неймовірно складному, однак, це набагато простіше ніж їм здається. Якщо вам цікаво дізнатися, скільки часу буде потрібно комп'ютера, щоб обчислити хеш і авторизувати користувача, що ж, це відбувається менше ніж за секунду. Більша частина цього часу йде на передачу даних через Інтернет.

Сподіваємося, це керівництво допомогло вам дізнатися, що таке SSH і зрозуміти як різні технології можуть об'єднатися разом і грати в одному механізмі дуже важливу роль. Також ви дізналися чому Telnet став надбанням минулого відразу після того як прийшов SSH.

Щоб знайти ще більше керівництво по Linux, загляньте в розділ VPS .

Що Таке SSH

Що таке SSH

SSH, або Безпечна Оболонка, це протокол віддаленого адміністрування, який дозволяє користувачеві управляти і вносити зміни на його віддалений сервер через Інтернет. Ця служба була створена в якості заміни не зашифровані Telnet і використовує криптографічні техніки, щоб забезпечити, що все сполучення між сервером і користувачем було зашифровано. SSH надає механізм для авторизації віддаленого користувача, передаючи команди клієнта хосту і повертаючи відповідь назад клієнту.

На малюнку нижче показано звичайне вікно SSH. Будь-який користувач Linux або macOS може скористатися SSH безпосередньо з вікна терміналу. Користувачі Windows можуть скористатися SSH-клієнтом на кшталт Putty . Ви можете виконувати shell команди також, як якщо б ви безпосередньо управляли віддаленим комп'ютером.

Ви можете виконувати shell команди також, як якщо б ви безпосередньо управляли віддаленим комп'ютером

Це керівництво по SSH розповість про те, що таке SSH, як працює SSH і заодно допоможе вам зрозуміти технології дозволяють протоколу надавати захищене віддалене управління. Ми докладніше зупинимося на кожному з шарів і типів шифрування, а також розповімо про значення кожного з них.

Як працює SSH

Якщо ви використовуєте Linux або Mac, тоді використання SSH для вас не складе особливих труднощів. Якщо ви використовуєте Windows, вам необхідно встановити SSH-клієнт для підключення. Найпопулярнішим SSH-клієнтом є PuTTy, про який ви можете дізнатися докладніше тут .

Для користувачів Mac і Linux, перейдіть до вашій програмі терміналу і дотримуйтесь інструкцій нижче:

SSH команда складається з 3 окремих частин:

ssh {user} @ {host}

Частина з SSH дасть системі знати, що ви хочете відкрити SSH з'єднання. {user} дасть системі відомості про акаунт до якого ви хочете підключитися. Наприклад, ви захочете отримати доступ як root користувача, який фактично є синонімом для адміністратора системи з повними правами на зміну будь-яких даних в системі. {host} означає комп'ютер до якого ви хочете підключитися. Це може бути IP адреса або доменне ім'я (наприклад www.домен.xyz).

Коли ви натиснете Enter, вилізе вікно з проханням ввести пароль від запитаного аккаунта. Коли ви його введете не буде ніяких повідомлень, проте, ваш пароль буде переданий. Після того, як ви закінчите введення пароля, натисніть кнопку Enter двічі знову. Якщо ваш пароль правильний, то вас зустріне вікно терміналу віддаленого управління.

Якщо ви хочете дізнатися більше про SSH командах, відвідайте цей посібник .

Пояснення різних технік шифрування

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

  1. симетричне шифрування
  2. асиметричне шифрування
  3. хешування

симетричне шифрування

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

У симетричному шифруванні зазвичай використовується один ключ або пара ключів, де один ключ може бути легко обчислений за допомогою іншого.

Симетричні ключі використовуються для шифрування всього повідомлення протягом SSH сесії. І клієнт, і сервер отримують ключ узгодженим методом, і даний ключ ніколи не розголошується третім особам. Процес створення симетричного ключа здійснюється за допомогою алгоритму обміну ключами. Що робить цей спосіб шифрування в деякому сенсі безпечним, так це те, що ключ ніколи не передається від клієнта до хосту. Навпаки, обидва комп'ютера ділять частини публічної інформації та використовують її для обчислення ключа. Навіть якщо інша машина зможе перехопити інформацію, вона не зможе обчислити ключ, тому що алгоритм обміну ключем буде невідомий.

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

Існує різні шифри симетричного шифрування, включаючи AES (Advanced Encryption Standard), CAST128, Blowfish і т.д. Перед установкою захищеного з'єднання, кліет і хост вирішують який з шифрів використовувати, створюючи список підтримуваних шифрів в порядку їх переваги. Самий кращий шифр зі списку клієнта, який присутній в списку хоста буде використовуватися в якості двонаправленого шифру.

Наприклад, якщо дві машини Ubuntu 14.04 LTS повідомляються один з одним за допомогою SSH, то вони будуть використовувати aes128-ctr як шифру за замовчуванням.

асиметричне шифрування

На відміну від симетричного шифрування, асиметричне використовує два окремих ключа для шифрування і дешифрування. Ці два ключа також відомі як приватний і публічний ключі. Разом вони формують пару публічних-приватних ключів.

Публічний ключ, як зрозуміло з його назви вільно поширюється між усіма групами. Однак незважаючи на те, що він тісно пов'язаний з приватним ключем в плані його функціональності, приватний ключ не може бути математично вирахувано за допомогою публічного. Взаємини між двома ключами вкрай складні: повідомлення, яке зашифроване публічним ключем машини може бути розшифровано лише приватним ключем тієї ж машини. Ці односторонні відносини означають, що публічний ключ не може дешифрувати свої ж повідомлення, також як не може розшифрувати нічого зашифрованого приватним ключем.

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

На відміну від усталеного думки про шифрування, асиметричне шифрування використовуватись для шифрування всієї SSH сесії. Замість цього воно використовується тільки в процесі алгоритму обміну ключами симетричного шифрування. Перед налагодженням захищеного з'єднання, обидві групи генерують тимчасові пари публічно-приватних ключів і діляться приватним ключами для створення загального секретного ключа.

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

хешування

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

Створити криптографічний хеш із заданого значення досить легко, але отримати значення з хешу неможливо. Це означає, що якщо клієнт має потрібний значенням, він може генерувати криптографічний хеш і порівняти його значення зі значенням сервера, щоб перевірити чи збігаються вони.

SSH використовує хеш-кодування для підтвердження повідомлень про аутентифікації. Це робиться за допомогою HMACs або H ash-based M essage A uthentication C odes (Кода Аутентифікації Повідомлень, використовують Хеш-функції). Це забезпечує достовірність отриманої команди.

Якщо обраний необхідний алгоритм симетричного шифрування, це означає, що також правильно вибрано алгоритм аутентифікації повідомлень. Це працює також, як вибирається шифр в розділі про симетричному шифруванні.

Кожне передане повідомлення повинно містити MAC, який розраховується за допомогою симетричного ключа, порядкового номера пакета і вмісту повідомлення. Воно відправляється ззовні симетрично зашифрованих даних в якості підсумкового розділу пакета зв'язку.

Як працює SSH з цими техніками шифрування

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

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

Далі він організовує захищене з'єднання, проводячи аутентифікацію клієнта і відкриваючи необхідну оболонку, якщо перевірка успішна

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

Є дві стадії установки підключення: перше, обидві системи повинні домовитися про стандарти шифрування для захисту їх майбутніх з'єднань, і друге, користувачі повинні пройти перевірку справжності. Якщо дані вірні, то користувач отримає доступ.

Процес вибору шифрування

Коли клієнт починає з'єднуватися з сервером через TCP, то сервер надасть протоколи шифрування і їх версії, які він підтримує. Якщо клієнт має такий же відповідний протокол і версію, досягається угода і з'єднання встановлюється з обраним протоколом. Сервер також використовує асиметричні публічні ключі, які клієнт може використовувати для перевірки аутентифікації.

Як тільки воно встановлено, сторони використовують алгоритм обміну Діффі-Хеллмана для створення симетричних ключів. Цей алгоритм дозволяє і клієнту, і сервера отримати загальний код шифрування, який вони використовуватиме для подальших сесій підключення.

Ось як працює алгоритм на найпростішому рівні:

  1. І клієнт, і сервер генерують дуже велике число, яке не має ніяких спільних рис. Це число також називається стартове значення.
  2. Далі, обидві сторони домовляються про загальний механізм шифрування для генерації іншого набору значень в особливою для алгоритму манері. Ці механізми також відомі як генератори шифрування, які проводять великі операції на стартовому значенні. Як приклад можна привести AES (Advanced Encryption Standard).
  3. Обидві сторони окремо один від одного генерують інші числа. Вони використовуються в якості приватних ключів для повідомлень.
  4. Ці щойно згенеровані приватні ключі, із загальним числом і алгоритмом шифрування (AES) використовуються для обчислення публічного ключа, який доставляється на інший комп'ютер.
  5. Потім сторони використовують їх персональні приватні ключі, загальний публічний ключ іншої машини і початкове число, щоб створити фінальний загальний ключ. Цей ключ буде вирахувано обома комп'ютерами незалежно один від одного, але він буде однаковим.
  6. Тепер, коли обидві сторони мають загальний ключ, вони можуть симетрично шифрувати всю SSH сесію. Той же ключ може бути використаний для шифрування і дешифрування повідомлень (читайте розділ про симетричному шифруванні).

Тепер, коли сесія захищена симетричним шифруванням була встановлена, користувач повинен бути авторизований.

авторизація користувача

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

Однак навіть якщо паролі зашифровані, їх не рекомендують використовувати для захищеного з'єднання. Причиною тому є відносна простота з якою боти можуть підібрати пароль до вашого облікового запису. Тому рекомендується використання пари ключів SSH.

Це набір асиметричних ключів, які використовуються для авторизації користувачів без введення будь-яких паролів.

висновок

Поглиблення своїх знань про те, що таке SSH і як він працює допомагає краще зрозуміти захисні аспекти цієї технології. Багато людей думають про цей процес як про незрозуміле і неймовірно складному, однак, це набагато простіше ніж їм здається. Якщо вам цікаво дізнатися, скільки часу буде потрібно комп'ютера, щоб обчислити хеш і авторизувати користувача, що ж, це відбувається менше ніж за секунду. Більша частина цього часу йде на передачу даних через Інтернет.

Сподіваємося, це керівництво допомогло вам дізнатися, що таке SSH і зрозуміти як різні технології можуть об'єднатися разом і грати в одному механізмі дуже важливу роль. Також ви дізналися чому Telnet став надбанням минулого відразу після того як прийшов SSH.

Щоб знайти ще більше керівництво по Linux, загляньте в розділ VPS .

Що Таке SSH

Що таке SSH

SSH, або Безпечна Оболонка, це протокол віддаленого адміністрування, який дозволяє користувачеві управляти і вносити зміни на його віддалений сервер через Інтернет. Ця служба була створена в якості заміни не зашифровані Telnet і використовує криптографічні техніки, щоб забезпечити, що все сполучення між сервером і користувачем було зашифровано. SSH надає механізм для авторизації віддаленого користувача, передаючи команди клієнта хосту і повертаючи відповідь назад клієнту.

На малюнку нижче показано звичайне вікно SSH. Будь-який користувач Linux або macOS може скористатися SSH безпосередньо з вікна терміналу. Користувачі Windows можуть скористатися SSH-клієнтом на кшталт Putty . Ви можете виконувати shell команди також, як якщо б ви безпосередньо управляли віддаленим комп'ютером.

Ви можете виконувати shell команди також, як якщо б ви безпосередньо управляли віддаленим комп'ютером

Це керівництво по SSH розповість про те, що таке SSH, як працює SSH і заодно допоможе вам зрозуміти технології дозволяють протоколу надавати захищене віддалене управління. Ми докладніше зупинимося на кожному з шарів і типів шифрування, а також розповімо про значення кожного з них.

Як працює SSH

Якщо ви використовуєте Linux або Mac, тоді використання SSH для вас не складе особливих труднощів. Якщо ви використовуєте Windows, вам необхідно встановити SSH-клієнт для підключення. Найпопулярнішим SSH-клієнтом є PuTTy, про який ви можете дізнатися докладніше тут .

Для користувачів Mac і Linux, перейдіть до вашій програмі терміналу і дотримуйтесь інструкцій нижче:

SSH команда складається з 3 окремих частин:

ssh {user} @ {host}

Частина з SSH дасть системі знати, що ви хочете відкрити SSH з'єднання. {user} дасть системі відомості про акаунт до якого ви хочете підключитися. Наприклад, ви захочете отримати доступ як root користувача, який фактично є синонімом для адміністратора системи з повними правами на зміну будь-яких даних в системі. {host} означає комп'ютер до якого ви хочете підключитися. Це може бути IP адреса або доменне ім'я (наприклад www.домен.xyz).

Коли ви натиснете Enter, вилізе вікно з проханням ввести пароль від запитаного аккаунта. Коли ви його введете не буде ніяких повідомлень, проте, ваш пароль буде переданий. Після того, як ви закінчите введення пароля, натисніть кнопку Enter двічі знову. Якщо ваш пароль правильний, то вас зустріне вікно терміналу віддаленого управління.

Якщо ви хочете дізнатися більше про SSH командах, відвідайте цей посібник .

Пояснення різних технік шифрування

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

  1. симетричне шифрування
  2. асиметричне шифрування
  3. хешування

симетричне шифрування

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

У симетричному шифруванні зазвичай використовується один ключ або пара ключів, де один ключ може бути легко обчислений за допомогою іншого.

Симетричні ключі використовуються для шифрування всього повідомлення протягом SSH сесії. І клієнт, і сервер отримують ключ узгодженим методом, і даний ключ ніколи не розголошується третім особам. Процес створення симетричного ключа здійснюється за допомогою алгоритму обміну ключами. Що робить цей спосіб шифрування в деякому сенсі безпечним, так це те, що ключ ніколи не передається від клієнта до хосту. Навпаки, обидва комп'ютера ділять частини публічної інформації та використовують її для обчислення ключа. Навіть якщо інша машина зможе перехопити інформацію, вона не зможе обчислити ключ, тому що алгоритм обміну ключем буде невідомий.

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

Існує різні шифри симетричного шифрування, включаючи AES (Advanced Encryption Standard), CAST128, Blowfish і т.д. Перед установкою захищеного з'єднання, кліет і хост вирішують який з шифрів використовувати, створюючи список підтримуваних шифрів в порядку їх переваги. Самий кращий шифр зі списку клієнта, який присутній в списку хоста буде використовуватися в якості двонаправленого шифру.

Наприклад, якщо дві машини Ubuntu 14.04 LTS повідомляються один з одним за допомогою SSH, то вони будуть використовувати aes128-ctr як шифру за замовчуванням.

асиметричне шифрування

На відміну від симетричного шифрування, асиметричне використовує два окремих ключа для шифрування і дешифрування. Ці два ключа також відомі як приватний і публічний ключі. Разом вони формують пару публічних-приватних ключів.

Публічний ключ, як зрозуміло з його назви вільно поширюється між усіма групами. Однак незважаючи на те, що він тісно пов'язаний з приватним ключем в плані його функціональності, приватний ключ не може бути математично вирахувано за допомогою публічного. Взаємини між двома ключами вкрай складні: повідомлення, яке зашифроване публічним ключем машини може бути розшифровано лише приватним ключем тієї ж машини. Ці односторонні відносини означають, що публічний ключ не може дешифрувати свої ж повідомлення, також як не може розшифрувати нічого зашифрованого приватним ключем.

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

На відміну від усталеного думки про шифрування, асиметричне шифрування використовуватись для шифрування всієї SSH сесії. Замість цього воно використовується тільки в процесі алгоритму обміну ключами симетричного шифрування. Перед налагодженням захищеного з'єднання, обидві групи генерують тимчасові пари публічно-приватних ключів і діляться приватним ключами для створення загального секретного ключа.

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

хешування

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

Створити криптографічний хеш із заданого значення досить легко, але отримати значення з хешу неможливо. Це означає, що якщо клієнт має потрібний значенням, він може генерувати криптографічний хеш і порівняти його значення зі значенням сервера, щоб перевірити чи збігаються вони.

SSH використовує хеш-кодування для підтвердження повідомлень про аутентифікації. Це робиться за допомогою HMACs або H ash-based M essage A uthentication C odes (Кода Аутентифікації Повідомлень, використовують Хеш-функції). Це забезпечує достовірність отриманої команди.

Якщо обраний необхідний алгоритм симетричного шифрування, це означає, що також правильно вибрано алгоритм аутентифікації повідомлень. Це працює також, як вибирається шифр в розділі про симетричному шифруванні.

Кожне передане повідомлення повинно містити MAC, який розраховується за допомогою симетричного ключа, порядкового номера пакета і вмісту повідомлення. Воно відправляється ззовні симетрично зашифрованих даних в якості підсумкового розділу пакета зв'язку.

Як працює SSH з цими техніками шифрування

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

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

Далі він організовує захищене з'єднання, проводячи аутентифікацію клієнта і відкриваючи необхідну оболонку, якщо перевірка успішна

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

Є дві стадії установки підключення: перше, обидві системи повинні домовитися про стандарти шифрування для захисту їх майбутніх з'єднань, і друге, користувачі повинні пройти перевірку справжності. Якщо дані вірні, то користувач отримає доступ.

Процес вибору шифрування

Коли клієнт починає з'єднуватися з сервером через TCP, то сервер надасть протоколи шифрування і їх версії, які він підтримує. Якщо клієнт має такий же відповідний протокол і версію, досягається угода і з'єднання встановлюється з обраним протоколом. Сервер також використовує асиметричні публічні ключі, які клієнт може використовувати для перевірки аутентифікації.

Як тільки воно встановлено, сторони використовують алгоритм обміну Діффі-Хеллмана для створення симетричних ключів. Цей алгоритм дозволяє і клієнту, і сервера отримати загальний код шифрування, який вони використовуватиме для подальших сесій підключення.

Ось як працює алгоритм на найпростішому рівні:

  1. І клієнт, і сервер генерують дуже велике число, яке не має ніяких спільних рис. Це число також називається стартове значення.
  2. Далі, обидві сторони домовляються про загальний механізм шифрування для генерації іншого набору значень в особливою для алгоритму манері. Ці механізми також відомі як генератори шифрування, які проводять великі операції на стартовому значенні. Як приклад можна привести AES (Advanced Encryption Standard).
  3. Обидві сторони окремо один від одного генерують інші числа. Вони використовуються в якості приватних ключів для повідомлень.
  4. Ці щойно згенеровані приватні ключі, із загальним числом і алгоритмом шифрування (AES) використовуються для обчислення публічного ключа, який доставляється на інший комп'ютер.
  5. Потім сторони використовують їх персональні приватні ключі, загальний публічний ключ іншої машини і початкове число, щоб створити фінальний загальний ключ. Цей ключ буде вирахувано обома комп'ютерами незалежно один від одного, але він буде однаковим.
  6. Тепер, коли обидві сторони мають загальний ключ, вони можуть симетрично шифрувати всю SSH сесію. Той же ключ може бути використаний для шифрування і дешифрування повідомлень (читайте розділ про симетричному шифруванні).

Тепер, коли сесія захищена симетричним шифруванням була встановлена, користувач повинен бути авторизований.

авторизація користувача

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

Однак навіть якщо паролі зашифровані, їх не рекомендують використовувати для захищеного з'єднання. Причиною тому є відносна простота з якою боти можуть підібрати пароль до вашого облікового запису. Тому рекомендується використання пари ключів SSH.

Це набір асиметричних ключів, які використовуються для авторизації користувачів без введення будь-яких паролів.

висновок

Поглиблення своїх знань про те, що таке SSH і як він працює допомагає краще зрозуміти захисні аспекти цієї технології. Багато людей думають про цей процес як про незрозуміле і неймовірно складному, однак, це набагато простіше ніж їм здається. Якщо вам цікаво дізнатися, скільки часу буде потрібно комп'ютера, щоб обчислити хеш і авторизувати користувача, що ж, це відбувається менше ніж за секунду. Більша частина цього часу йде на передачу даних через Інтернет.

Сподіваємося, це керівництво допомогло вам дізнатися, що таке SSH і зрозуміти як різні технології можуть об'єднатися разом і грати в одному механізмі дуже важливу роль. Також ви дізналися чому Telnet став надбанням минулого відразу після того як прийшов SSH.

Щоб знайти ще більше керівництво по Linux, загляньте в розділ VPS .

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью