Урок 2 з 4 · 9 хв
Цифрові підписи, сертифікати та TLS
Як браузер знає, що справді спілкується з вашим банком, чому іконка замка означає щось конкретне, і чого вона не означає.
Попереднє заняття залишило одне питання відкритим: асиметричне шифрування дозволяє надіслати секрет комусь, чий відкритий ключ у вас є, — але звідки ви знаєте, що цей відкритий ключ справді належить йому, а не зловмиснику посередині? Цифрові підписи й сертифікати відповідають на це, і разом вони роблять можливим TLS — протокол, що стоїть за кожною адресою https://.
Цифрові підписи: доказ походження, а не секретність
Цифровий підпис виконує асиметричне шифрування у зворотному напрямку. Замість шифрування повідомлення чиїмось відкритим ключем, щоб прочитати його міг лише він, відправник підписує повідомлення власним приватним ключем, а перевірити це може будь-хто за допомогою відкритого ключа відправника. Якщо перевірка успішна, вірні дві речі: повідомлення прийшло від того, хто тримає цей приватний ключ, і його не змінювали згодом — та сама властивість стійкості до колізій із обговорення хешування в попередньому занятті й робить втручання виявним. Підпис доводить автентичність і цілісність; сам по собі він не тримає повідомлення в таємниці.
Сертифікати: підпис, що ручається за відкритий ключ
Цифровий сертифікат вирішує проблему «чий насправді це відкритий ключ». Як пояснює Навчальний центр Cloudflare, сертифікат SSL/TLS — це «файл даних, що зберігається на початковому сервері сайту» і містить доменне ім’я, відкритий ключ, дату закінчення терміну дії і — критично важливо — «цифровий підпис центру сертифікації». Центр сертифікації (CA) — довірена третя сторона, що перевіряє, чи контролює сайт домен, для якого запитує сертифікат, а потім підписує цей сертифікат власним приватним ключем. Ваш браузер постачається з вбудованим списком CA, яким довіряє, тож коли він отримує сертифікат, підписаний одним із них, він може довіряти вкладеному відкритому ключу, ніколи не зустрічавшись з оператором сайту. Самопідписаний сертифікат — той, що сайт підписує сам, а не отримує від CA, — не має такого зовнішнього поручительства, тому браузери за замовчуванням вважають його ненадійним.
TLS: використання обох у справі
RFC 8446, специфікація TLS 1.3, описує рукостискання фазами: обмін ключами, під час якого обидві сторони встановлюють спільний секретний матеріал; потім автентифікація, де, за словами RFC, «серверна сторона каналу завжди автентифікується; клієнтська сторона автентифікується опційно» — зазвичай лише сайт доводить свою особу, а не відвідувач. Сервер доводить, хто він, за допомогою свого сертифіката й підпису, який тільки він міг створити своїм приватним ключем. Щойно обидві сторони довіряють з’єднанню, вони виводять швидкі симетричні ключі (зазвичай AES із попереднього заняття) для самих даних. RFC 8446 прямо стверджує, що це дає: конфіденційність і цілісність для обмінюваних даних, і автентифікацію сервера. Він так само прямо вказує й межу: «TLS не приховує довжину переданих даних», і метадані на кшталт того, до якого сервера ви під’єдналися і коли, залишаються видимими для будь-кого, хто спостерігає за з’єднанням.
Що означає і чого не означає іконка замка
| Замок / https:// означає | Це не означає |
|---|---|
| З’єднання з цим сервером зашифроване, а його цілісність захищена | Що сайт заслуговує на довіру, чесний чи безпечний у використанні |
| Ви спілкуєтеся з тим, хто контролює це доменне ім’я | Що це доменне ім’я — саме те, за яке ви його вважаєте: переконливий домен-двійник теж отримує дійсний сертифікат |
| Ніхто на шляху мережі не може прочитати чи тихо змінити трафік | Що ніхто не бачить, що ви відвідали сайт, коли й як часто |
Фішинговий сайт на домені-двійнику може мати цілком дійсний сертифікат: TLS автентифікує домен, а не наміри того, хто його зареєстрував. Тому попереднє заняття про те, як розгортаються атаки, розглядає фальшиву сторінку входу, з замком і всім іншим, як реальну загрозу, а не суперечність.
Головне
- Цифровий підпис доводить, хто надіслав повідомлення й що його не змінили — сам по собі він не тримає повідомлення в таємниці.
- Сертифікат — це підписана заява, від центру сертифікації, якому вже довіряє браузер, що даний відкритий ключ належить даному домену.
- Рукостискання TLS (RFC 8446) завжди автентифікує сервер; відвідувача автентифікують так само рідко.
- TLS захищає конфіденційність і цілісність під час передавання й підтверджує, що ви дісталися потрібного домену — воно не приховує сам факт з’єднання, ані не гарантує, що сайт за ним заслуговує на довіру.
- Фішинговий сайт на домені-двійнику може показувати цілком дійсний замок; сертифікат автентифікує домен, а не наміри оператора.
Перевірте себе
1. Що доводить дійсний цифровий підпис на повідомленні?
- Що повідомлення секретне для всіх, крім отримувача
- Що повідомлення прийшло від власника конкретного приватного ключа і його не змінювали — Правильно.
- Що повідомлення надіслано через TLS
- Що повідомлення не містить нічого шкідливого
Підписи перевіряють автентичність і цілісність за допомогою пари ключів підписувача; вони не шифрують повідомлення заради секретності.
2. Яку роль відіграє центр сертифікації (CA) у TLS?
- Він зберігає ваші паролі від вашого імені
- Він ручається власним підписом, що відкритий ключ належить певному домену — Правильно.
- Він шифрує весь трафік в інтернеті
- Він автоматично блокує фішингові сайти
CA перевіряє контроль над доменом і підписує сертифікат, дозволяючи браузерам, що вже довіряють цьому CA, довіряти відкритому ключу сертифіката, не звертаючись напряму до оператора сайту.
3. За RFC 8446, яка сторона типового TLS-з’єднання завжди автентифікується?
- Лише клієнт (ваш браузер)
- Сервер — Правильно.
- Жодна сторона за замовчуванням
- Обидві сторони, завжди, без винятків
RFC 8446 стверджує, що серверна сторона завжди автентифікується, тоді як автентифікація клієнта опційна й значно рідша для звичайного перегляду сайтів.
4. Чому фішинговий сайт усе ще може показувати дійсну іконку замка?
- Іконки замка косметичні й нічого не означають
- Сертифікат автентифікує доменне ім’я, а не чесність того, хто його зареєстрував — Правильно.
- Браузери більше не перевіряють сертифікати
- Фішингові сайти взагалі не можуть використовувати HTTPS
Сертифікати TLS підтверджують, що ви спілкуєтеся зі справжнім власником даного домену; переконливий домен-двійник може отримати власний цілком дійсний сертифікат.
Застосуйте на практиці з FireAI
Застосуйте цей урок на своєму Mac.
- Глибока перевірка без розшифрування чогось — Отримайте справжню деталізацію захищеного з’єднання без того, щоб FireAI коли-небудь читав його вміст.
- Що залишається на вашому Mac і коли саме FireAI сам виходить у мережу — Прочитайте весь список того, що надсилає FireAI, замість того щоб просто вірити фаєрволу на слово.
Джерела
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
- Cloudflare Learning Center: What is an SSL certificate?
Застосуйте це на своєму Mac
Усі функції безкоштовно на 17 днів, без банківської картки.