Ви помічали, що поруч з адресою веб-сайту у вашому браузері з’являється значок замка, і хочете дізнатися, чому це важливо?
SSL – це технологія, яка допомагає захистити інформацію, що передається між вашим комп’ютером і сайтом.
Наша розповідь про протокол-шифрувальник, без якого не обходиться жодна покупка в інтернеті.
Протокол SSL
В одній із попередніх статей ми розповідали, що SSL-сертифікати дають змогу упевнитися в автентичності сайту і встановити з ним захищене з’єднання.
Без цього сертифіката не можна безпечно надіслати важливі дані Мережею – адже в теорії будь-хто зможе їх перехопити, прочитати або змінити. Наприклад, узяти ваше онлайн-замовлення в піцерії та замінити всі топінги на чорний перець і лакрицю ?
SSL, або secure sockets layer, – це протокол, який шифрує та захищає дані під час їхнього передавання інтернетом. Для цього він використовує спеціальні криптографічні ключі, що змінюють дані до невпізнання.
У моделі TCP/IP протокол знаходиться на прикладному рівні, а в OSI – між транспортним і прикладним. Тут SSL відповідає за шифрування/дешифрування і створення сесій, у межах яких відбувається спілкування між клієнтом і сервером.
Відразу скажемо, що сьогодні SSL використовують рідко: його замінив більш сучасний і безпечний протокол TLS. Розробники взяли за основу SSL 3.0 і додали туди кілька поліпшень – переважно пов’язаних із безпекою і підтримкою в різних браузерах.
І TLS, і SSL виконують одну й ту саму роботу – створюють з’єднання і захищають передачу даних по них. Різниця лише в тому, що TLS більш сучасний, надійний і безпечний.
Роботу SSL-протоколу можна описати так.
Коли ви заходите на сайт, захищений 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 користувачі відчувають себе впевненіше, а сайт отримує більше довіри і кращі позиції у пошуку. Застосовуючи цей протокол, ви робите спілкування з сайтом безпечнішим для себе і своїх користувачів.








