Використання інтернету для зберігання чи передачі платіжних і конфіденційних даних потребує надійного каналу зв’язку між комп’ютером користувача та вебсервером. Створення такого каналу можливе завдяки протоколам шифрування та автентифікації даних, одним із яких є SSL/TLS. Розглянемо його основні характеристики, можливості та принципи роботи на практиці.
Загальні відомості
SSL/TLS належить до класу криптографічних протоколів, які забезпечують безпечний обмін даними між учасниками мережі на основі криптографічних алгоритмів і перетворень.
Спочатку був розроблений протокол SSL (Secure Sockets Layer). Його остання версія — SSL 3.0 — вийшла у 1996 році, але вже через кілька десятиліть була визнана застарілою через численні вразливості та недоліки архітектури.
На основі SSL 3.0 створили протокол TLS (Transport Layer Security), актуальна версія якого сьогодні — TLS 1.3. Хоча абревіатура SSL досі часто використовується, технічно більшість сучасних реалізацій базується саме на TLS як більш безпечному варіанті.
На базі SSL був створений протокол HTTPS, який «загортає» передані дані в криптографічний формат SSL. Для HTTPS-сервера ідентифікатором використання шифрування є номер порту 443 — це спрощує встановлення з’єднання між клієнтом і сервером.
SSL є проміжною ланкою між прикладними протоколами (HTTP, TELNET, FTP тощо) і транспортним рівнем, виконуючи роль фільтра, що захищає дані від перехоплення чи підміни.
Основні функції SSL/TLS
Як і будь-який криптографічний протокол, SSL/TLS виконує такі ключові завдання:
- Формування, обмін і розподіл ключів шифрування;
- Автентифікація сторін, що взаємодіють;
- Забезпечення конфіденційності та цілісності даних;
- Підтримка цілісності самого з’єднання.
Для реалізації цих функцій застосовуються різні криптографічні алгоритми:
- для роботи з ключами — Diffie-Hellman, SRP, ECDH, а також застарілий RSA;
- для автентифікації — ECDSA, RSA та інші;
- для шифрування — DES, RC4, AES;
- для перевірки цілісності даних — хеш-функції MD5 і SHA.
Як утворюється захищений канал із сервером
Перед встановленням захищеного каналу між клієнтом і сервером відбувається процедура підтвердження зв’язку, або так зване «рукостискання» (SSL Handshake). Під час нього узгоджуються параметри безпечного з’єднання.
Роль клієнта зазвичай виконує браузер користувача, який під’єднується до вебсайту. Процес складається з кількох етапів:
- Клієнт надсилає запит на встановлення захищеного з’єднання.
- Сервер отримує інформацію про криптографічні алгоритми, які підтримує клієнт.
- Сервер обирає із запропонованих алгоритмів ті, що він також підтримує, та повідомляє про це клієнту.
- Сервер надсилає цифровий сертифікат разом із відкритим ключем, необхідним для перевірки справжності.
- Клієнт перевіряє отриманий сертифікат, звіряючи його з довіреними кореневими сертифікатами центрів сертифікації (CA).
- У разі успішної перевірки генерується спільний сеансовий секретний ключ, який використовуватиметься для шифрування сеансу (наприклад, з використанням алгоритмів RSA або Діффі-Геллмана).
Після завершення процедури «рукостискання» між клієнтом і сервером встановлюється безпечне з’єднання, через яке дані передаються за допомогою симетричного шифрування. Канал залишається активним доти, доки з’єднання не буде розірване.
Якщо з будь-яких причин сторони не зможуть узгодити параметри, з’єднання не створиться, а клієнт отримає повідомлення про помилку.
Цифрові сертифікати
Щоб підтвердити справжність власника відкритого ключа, SSL/TLS використовує цифрові сертифікати.
Вони можуть бути:
- самопідписаними (Self-Signed);
- виданими довіреними центрами сертифікації (CA).
Тип сертифіката визначає рівень перевірки власника. Існують три основні рівні:
- DV (Domain Validation) — перевіряється лише домен;
- OV (Organization Validation) — перевіряється домен і юридична особа;
- EV (Extended Validation) — найвищий рівень перевірки, із детальною ідентифікацією власника.
Щоб дізнатися, який тип сертифіката використовується на сайті, достатньо натиснути на значок замка ліворуч від адресного рядка у браузері.
Рівень сертифіката безпосередньо впливає на ступінь довіри користувачів до сайту.
Саме тому банки та фінансові установи зазвичай використовують сертифікати EV, оскільки вони передбачають не лише перевірку домену, а й офіційне підтвердження особи власника — компанії або фізичної особи. Це значно підвищує довіру до вебресурсу.
