Перейти до основного контенту

Як працює https? Детальна схема дії SSL-шифрування

10 хв читання
2153 переглядів

HTTPS (HyperText Transfer Protocol Secure) - це криптографічний протокол, який забезпечує безпечну передачу даних між клієнтом і сервером в Інтернеті. Він використовує SSL (Secure Sockets Layer) або його наступну версію, TLS (Transport Layer Security), для створення захищеного каналу зв'язку.

Процес роботи HTTPS складається з декількох етапів. Він починається з Клієнта, який надсилає запит на сервер через захищене З'ЄДНАННЯ HTTPS. У відповідь сервер надсилає свій сертифікат, який містить відкритий ключ для шифрування даних.

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

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

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

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

Значення протоколу https

Протокол https (HTTP Secure) являє собою розширення основного протоколу передачі даних HTTP (Hypertext Transfer Protocol) із забезпеченням безпеки і шифрування. Він використовує протокол SSL/TLS (Secure Socket Layer / Transport Layer Security) для захисту передачі даних між клієнтом і сервером.

На противагу протоколу http, який передає дані у відкритому вигляді, https забезпечує конфіденційність і інтегритет інформації, а також аутентифікацію сервера, з яким встановлюється з'єднання.

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

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

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

Переваги протоколу https
1. Конфіденційність даних
2. Цілісність даних
3. Аутентифікація сервера
4. Захист від підробки
5. Довіра користувачів

Криптографія

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

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

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

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

Криптографія є невід'ємною частиною роботи протоколу HTTPS, забезпечуючи безпеку і захист даних в Інтернеті.

Основні поняття асиметричної криптографії

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

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

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

SSL-сертифікати

SSL-сертифікати видаються центрами сертифікації (Certificate Authorities - CA), які виконують перевірку особи і достовірності даних, наданих власником сайту. Коли клієнт підключається до захищеного сайту, сервер надсилає свій сертифікат SSL.

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

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

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

Роль сертифікатів SSL у безпеці протоколу https

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

Довіра в SSL-сертифікати здійснюється за допомогою сертифікаційних центрів (Certificate Authorities - CA), які випускають SSL-сертифікати. CA є незалежною стороною, яка підтверджує справжність і відповідність веб-сайту певним вимогам. Для цього CA проводить перевірку ідентичності власника домену та волоконно-оптичного кабелю (для EV SSL-сертифікатів). Після успішної перевірки CA видає сертифікат, який підтверджує, що веб-сайт дійсно належить зазначеному в сертифікаті власнику.

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

Переваги SSL-сертифікатів:

  • Захист конфіденційності даних користувачів.
  • Захист від підміни і фальсифікації даних.
  • Підвищення довіри користувачів до веб-сайту.
  • Поліпшення ранжирування в пошукових системах (в разі використання SSL-сертифіката зі стандартом HTTPS).

Типи сертифікатів SSL:

  • Доменні SSL-сертифікати-захищають тільки один домен або субдомен.
  • Розширені перевірені (EV) SSL-сертифікати - забезпечують більш високий рівень перевірки і зелену Рядок адреси.
  • Wildcard SSL-сертифікати-захищають кілька піддоменів одного домену.
  • Багатофункціональні SSL-сертифікати-захищають кілька різних доменів.

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

Рукостискання TLS

1. Початок рукостискання: Клієнт відправляє серверу повідомлення, в якому міститься інформація про те, які алгоритми шифрування і параметри безпеки клієнт підтримує.

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

3. Перевірка сертифіката: Клієнт перевіряє сертифікат сервера, щоб упевнитися в його справжності. Якщо сертифікат дійсний і можна встановити довірене з'єднання, Клієнт приймає його.

4. Обмін ключами: Клієнт генерує випадковий секретний ключ (session key), який буде використовуватися для шифрування даних в рамках поточної сесії. Ключ шифрування передається серверу, захищеним за допомогою його відкритого ключа.

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

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

Детальний опис процесу рукостискання TLS

Далі наведені основні етапи рукостискання TLS:

  1. Початок з'єднання: Клієнт і сервер запускають процес рукостискання шляхом відправки спеціальних пакетів - "ClientHello" (від клієнта) і "ServerHello" (від сервера).
  2. Вибір параметрів: Клієнт і сервер обмінюються інформацією про підтримувані криптографічні алгоритми та версії TLS. Цей крок передбачає вибір симетричного ключа, який буде використовуватися для шифрування даних під час сеансу.
  3. Аутентифікація сервера: Сервер представляє клієнту свій цифровий сертифікат, який містить відкритий ключ сервера та інформацію, щоб клієнт міг перевірити його справжність. Клієнт перевіряє справжність сертифіката за допомогою ланцюжка сертифікатів розташованої в його браузері або ОС.
  4. Генерація ключів: Клієнт і сервер використовують обмін асиметричними ключами для створення спільного секретного ключа. Цей ключ буде використовуватися для шифрування та розшифрування даних під час сеансу.
  5. Захищена передача ключа: Секретний ключ шифрується публічним ключем сервера і надсилається клієнту. Клієнт використовує свій особистий ключ для розшифровки секретного ключа.
  6. Завершення рукостискання: Після успішного завершення всіх попередніх етапів, клієнт і сервер підтверджують, що вони повністю готові до безпечної передачі даних. Тепер вони можуть розпочати шифрування та передачу даних через захищене з'єднання.

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