Як SSL / TLS робить HTTPS безпечним?

HTTPS розшифровується як HyperText Transfer Protocol Secure, який є безпечною версією HTTP. Це основний протокол, який використовується для обміну даними між веб-браузером і веб-сайтом. Оскільки HTTPS є безпечною версією, вона додає шифрування в HTTP для підвищення безпеки обміну даними.

Давайте зануримося глибше, щоб зрозуміти, як саме захищені дані в мережі.

Огляд HTTP

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

Наприклад, коли ви вводите URL-адресу в браузері, він фактично відправляє HTTP-команду веб-серверу, направляючи її на вибірку і передачу запитаної веб-сторінки.

HTTP також є протоколом без збереження стану, тому що кожна команда виконується незалежно, без будь-яких відомостей про команди, які були попереду.

Як протокол запиту-відповіді, HTTP надає користувачам спосіб взаємодії з веб-ресурсами, такими як файли HTML, шляхом передачі гіпертекстових повідомлень між клієнтами і серверами. HTTP-клієнти зазвичай використовують з’єднання протоколу управління передачею (TCP) для зв’язку з серверами.

HTTP використовує певні методи запиту для виконання різних завдань:

GET: Запрошує уявлення зазначеного ресурсу. Запити, що використовують цей метод, повинні тільки отримувати дані.
HEAD: Запрошує відповідь, ідентичний відповіді на GET запит, але без тіла відповіді.
POST: Цей метод використовується для відправки об’єкта на зазначений ресурс, що часто викликає зміна стану або побічні ефекти на сервері.
PUT: Цей метод замінює всі поточні уявлення цільового ресурсу корисним навантаженням запиту.
DELETE: Цей метод видаляє вказаний ресурс.
TRACE: Цей метод виконує перевірку зворотного зв’язку по шляху до цільового ресурсу.
OPTIONS: Цей метод використовується для опису параметрів зв’язку для цільового ресурсу.
CONNECT: Цей метод встановлює тунель до сервера, ідентифікованого цільовим ресурсом.
PATCH: Цей метод використовується для застосування часткових модифікацій до ресурсу.

У чому різниця між HTTP і HTTPS?

В чем разница между HTTP и HTTPS?

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

Так як же працює HTTPS? Сертифікат SSL шифрує інформацію, яку користувачі надають сайту, що в основному переводить дані в код. Навіть якщо комусь вдасться вкрасти дані, що передаються між відправником і отримувачем, він не зможе зрозуміти це через це шифрування.

Але крім додавання цього додаткового рівня безпеки, HTTPS також захищений по протоколу TLS (Transport Layer Security). TLS допомагає забезпечити цілісність даних, що допомагає запобігти передачі або зміна даних, а також аутентифікацію, яка доводить вашим користувачам, що вони спілкуються з передбачуваним веб-сайтом.

Користувачі можуть визначити, чи використовує сайт протокол HTTPS за веб-адресою. Найперша частина веб-адреси (перед «www») вказує, чи використовує сайт протоколи HTTP або HTTPS.

Як SSL / TLS робить його безпечним?

Однією з найбільш важливих частин протоколу SSL / TLS є зв’язок SSL / TLS, де кожне з’єднання встановлено.

Коннект TLS складається з трьох етапів:

  • Налаштування комплектів шифрів.
  • Аутентифікація як на стороні сервера, так і на стороні клієнта.
  • Обмін симетричними сеансовими ключами.
Використання асиметричних ключів і симетричних ключів шифрування для зв'язку та обміну даними клієнт-сервер

Налаштування набору шифрів

Веб-браузери є найбільш поширеним клієнтом. Аналогічно, на стороні сервера популярні операційні системи, такі як Windows Server, Apache і NGINX, мають дуже різну підтримку функцій. І все це стає ще складніше, коли ви додаєте призначені для користувача конфігурації. Отже, перші кроки TLS конекту вимагають, щоб клієнт і сервер спільно використовували свої можливості, щоб вони могли знайти криптографічні функції, які вони взаємно підтримують.

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

Аутентифікація як на стороні сервера, так і на стороні клієнта

Клієнт перевіряє, чи є сертифікат «справжнім». Це надзвичайно важливий крок. Щоб дійсно мати безпечне з’єднання, ви не можете просто зашифрувати свої дані, ви також повинні знати, що вони відправляються на правильний сайт. Сертифікати SSL / TLS забезпечують цю аутентифікацію. Але те, як вони це роблять, залежить від використовуваного набору шифрів.

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

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

На цьому етапі клієнт також перевіряє, що сервера належить закритий ключ, пов’язаний із сертифікатом. Сервер відправляє відкритий ключ через сертифікат SSL. Відкритий ключ використовується для шифрування даних, а закритий ключ використовується для розшифровки. Це відомо як «асиметричне» шифрування з відкритим ключем, тому що дві функції виконуються різними ключами. Шифрування ефективно одностороннє.

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

Обмін симетричними ключами сесії

Остання частина з’єднання TLS включає створення «ключа сесії», який є ключем, який фактично буде використовуватися для захищеного зв’язку.

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

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

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

Все зв’язок SSL відбувається за кілька сотень мілісекунд, і все це за кадром. Це перше, що повинно статися при підключенні HTTPS, навіть до завантаження веб-сторінки.

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

Зв’язок SSL / TLS – це захоплюючий процес, який має вирішальне значення для безпечного інтернету, і все ж це відбувається швидко і непомітно, і більшість людей ніколи не замислюється про це.