SSL

Код

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

SSL – це технологія, яка допомагає захистити інформацію, що передається між вашим комп’ютером і сайтом.

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

Протокол SSL

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

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

SSL, або secure sockets layer, – це протокол, який шифрує та захищає дані під час їхнього передавання інтернетом. Для цього він використовує спеціальні криптографічні ключі, що змінюють дані до невпізнання.

У моделі TCP/IP протокол знаходиться на прикладному рівні, а в OSI – між транспортним і прикладним. Тут SSL відповідає за шифрування/дешифрування і створення сесій, у межах яких відбувається спілкування між клієнтом і сервером.

Відразу скажемо, що сьогодні SSL використовують рідко: його замінив більш сучасний і безпечний протокол TLS. Розробники взяли за основу SSL 3.0 і додали туди кілька поліпшень – переважно пов’язаних із безпекою і підтримкою в різних браузерах.

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

Роботу SSL-протоколу можна описати так.

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

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

Поки що все звучить класно – протокол захищає наші дані і спілкується із сервером своєю мовою. Але давайте дізнаємося, навіщо він ще потрібен.

Головне завдання SSL – перевірити справжність сайту і встановити з ним захищене з’єднання. Щоразу, коли ви заходите на якусь сторінку, браузер переконується в тому, що сайт справжній, а не підроблений. А також дізнається, чи можна безпечно передавати сайту особисті дані.

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

Детальніше про протокол HTTP можна почитати в іншій нашій статті – пояснюємо на пальцях, як він влаштований і як працює.

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

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

Без SSL інтернет-транзакції були б уразливі до атак типу man-in-the-middle («людина посередині»). Можливо, сьогодні користувачеві пощастить і ніхто не перехопить три цифри на звороті його банківської картки, а можливо – ні, і хтось купить кілька біткоїнів за його рахунок.

Чим SSL-протокол відрізняється від SSL-сертифіката

SSL-протокол і SSL-сертифікат працюють у парі, але виконують різні функції.

Протокол SSL визначає послідовність дій, які потрібно зробити, щоб встановити захищене з’єднання між клієнтом і сервером.

Сертифікат SSL – це електронний документ. Він-то і містить інформацію про сайт, яка потрібна для встановлення захищеного з’єднання. Туди входять:

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

SSL-протокол використовує два типи ключів: публічні та приватні.

Публічні відомі всім, і їх можна отримати під час першого «рукостискання» із сервером. Приватні – лежать строго на комп’ютері і не передаються нікому.

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

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

На цей момент з’єднання вважається встановленим: сертифікат нормальний, публічний ключ у нас. Час надсилати дані.

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

DpcuDl6eeIPaPav5JXG6QinLwC21ilDNSBVA80N4HJ4lHDQX8WsmIKN8TbT9bx8zqlUvLOoqLqhW5yC0jhmgwCR1P+nBYCBlEr//YDSHLq7J0MUJXPweOLLOfh5RGYOuYHWErWoD6TN5/Bq7JoqG4nW21UgXxYH0t8uT5mjrMZ8=

Спробуйте розшифрувати наше послання, використовуючи цей 1024-бітний ключ. Вставте текст вище в поле Enter Encrypted Text to Decrypt, а ключ нижче – у поле Enter Public/Private key.

Потім натисніть Decrypt.

Щойно текст зашифровано – час передавати його на сервер. Той його розшифрує за допомогою свого приватного ключа і зрозуміє, що ви хочете від нього отримати.

Дані передано, процес завершується, і з’єднання розривається. Під час наступного візиту на сайт усе повториться.

SSL-протокол шифрує дані

Коротко розповімо про алгоритми шифрування. Загалом є два великих класи алгоритмів – асиметричні та симетричні. Різниця між ними тільки в кількості ключів.

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

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

У SSL-протоколі два типи шифрування працюють разом. Асиметричне шифрування використовують під час «рукостискання» та аутентифікації. Симетричне – для шифрування повідомлень.

Разом із шифруванням використовують алгоритми хешування.

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

Що запам’ятати

Виділимо основні тези, які потрібно запам’ятати про SSL-протокол:

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

Висновок

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

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

Павлов Максим

Founder & CEO Onpage School

Оцініть автора
Onpage School