Як криптографія робить інтернет безпечнішим: Види шифрування, ключі та сфери застосування
На чому побудована безпека інтернету, зʼєднань та передачі даних
Зі швидким розвитком інтернету ми дедалі більше починаємо розуміти, що така концепція, як-от «безпечний інтернет» — це фікція. У цьому середовищі будь-які дані можуть перехопити, змінити чи використати треті особи.
Саме тому потрібне шифрування — спосіб зробити дані непридатними для читання сторонніми, навіть у разі перехоплення. У цій статті розповідаємо детальніше про базові концепції шифрування, що вважають золотим стандартом, і як воно працює.
Що таке шифрування і навіщо воно потрібне?
Шифрування — це процес перетворення даних на такий вигляд, який може зрозуміти лише той, хто має «ключ» до розшифрування. Воно, до прикладу, захищає наші паролі, банківську інформацію, контакти чи повідомлення у месенджерах.
На папері все зроблено розумно: дані зашифровані та в безпеці. Але ж вони не існують у вакуумі, а перебувають у якомусь середовищі, передаються каналами звʼязку. Що ж робити, якщо ненадійна саме остання інстанція?
Для цього спеціально розробили криптографію з відкритим ключем, яку ще часто називають асиметричним шифруванням. За цим підходом можна шифрувати дані без потреби передавати ключ обом сторонам.
Цей підхід став основою безпечного інтернету, включно з технологіями на кшталт SSL/TLS, які захищають сайти з позначкою HTTPS.
Симетричне та асиметричне шифрування
Щоб зрозуміти суть асиметричного шифрування, треба поглянути й на його попередника, який був першим способом захисту даних у криптографії.
Симетричне шифрування
У цьому підході застосовують один і той самий ключ як для шифрування, так і для дешифрування даних. Це ніби однакова відмичка для замикання й відкривання замка.
Проблема? Обом сторонам потрібно мати цей ключ, а отже — якось передати його мережею. Якщо ця передача скомпрометована, то вся безпека зводиться нанівець.
Асиметричне шифрування
На противагу попередньому підходу, асиметричне шифрування розв’язує проблему елегантно, використовуючи пару ключів.
- Публічний (відкритий), який можна сміливо передавати будь-кому.
- Приватний (закритий), який зберігають у таємниці.
Ці два ключі математично повʼязані між собою. Дані шифрують відкритим ключем, але розшифрувати можна лише закритим ключем — і навпаки. Таким чином, асиметричне шифрування дає змогу обмінюватися зашифрованими даними без потреби передавати секретні ключі, що робить його фундаментом сучасної інтернет-безпеки.
Як працює шифрування з відкритим ключем
Окрім розуміння, як працює шифрування з відкритим ключем, важливо знати й те, що таке сам ключ. У криптографії це набір даних (зазвичай велике число або низка символів), який використовують для перетворення звичайного тексту на шифрований (ciphertext) та навпаки. У цьому процесі алгоритм шифрування (наприклад, RSA або ECC) задає, як текст перетворюється, а ключ визначає, яке саме перетворення буде застосовано.
Без ключа результат шифрування має вигляд випадкового набору символів і майже не піддається дешифруванню. Наприклад:
- Відкритий текст (plaintext): hello.
- Відкритий ключ (public key): MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A... (укорочений RSA-ключ).
- Алгоритм: RSA (асиметричний шифр).
- Результат (ciphertext): T2dnM3dygV8x5pS2x0D8VZk4kNluf1...
Щоб розшифрувати це повідомлення, потрібен закритий ключ, який відповідає цьому відкритому.
Звідки беруться ключі?
У класичних алгоритмах типу RSA генерація ключів відбувається на основі добутку двох дуже великих простих чисел (по кілька сотень цифр). Цей добуток — частина відкритого ключа, але прості множники залишаються таємницею. Саме тому обчислити закритий ключ майже неможливо без надзвичайно потужної обчислювальної техніки (а в ідеалі — взагалі неможливо).
В інших системах, як-от ECC (еліптична криптографія), використовують іншу математику — еліптичні криві. Але принцип лишається той самий: пара пов’язаних між собою ключів.
Роль криптографії з відкритим ключем у SSL/TLS
Щоразу, коли ви бачите в адресному рядку браузера https://, це означає, що між вами та сайтом застосовується захищене з’єднання, реалізоване за допомогою SSL/TLS (сучасна версія — TLS, але термін SSL досі часто вживають як синонім).
Що таке SSL/TLS?
Secure Sockets Layer та його наступник Transport Layer Security — це криптографічні протоколи. Вони шифрують дані під час передавання між клієнтом (браузером) і сервером. Окрім цього, вони гарантують автентичність сервера та захищають дані від підробки та перехоплення у транзиті.
З їх допомогою браузер перевіряє справжність сайту. Коли користувач переходить на сайт через HTTPS-протокол, браузер:
1. Отримує цифровий сертифікат сайту. Це документ, підписаний центром сертифікації (CA), що містить доменне ім’я, відкритий ключ сайту, його термін дії та підпис від СА.
2. Перевіряє сертифікат. Аналізує, чи підписаний він довіреним центром сертифікації, чи не закінчився термін дії та чи відповідає відкритий ключ цьому домену.
3. Якщо все гаразд — браузер довіряє сайту, і встановлюється захищене з’єднання. В іншому разі браузер часто видає типове попередження про те, що зʼєднання не є безпечним. Ось красномовна ілюстрація, чому, власне, він видає це попередження:

Як встановлюють захищене зʼєднання: TLS Handshake
Процес встановлення з’єднання складається з кількох кроків. Головне завдання — узгодити спільний симетричний ключ для подальшого шифрування трафіку. Спрощений сценарій цього процесу має такий вигляд:
1. Клієнт (браузер) ініціює з’єднання й надсилає запит на handshake та отримує від сервера цифровий сертифікат з відкритим ключем.
2. Клієнт перевіряє сертифікат, як описано вище.
3. Клієнт генерує випадкове число (pre-master key), яке стане основою для симетричного ключа.
4. Клієнт шифрує це число відкритим ключем сервера та надсилає на сервер.
5. Сервер розшифровує повідомлення своїм закритим ключем, і тепер обидві сторони мають однакове секретне значення.
6. Обидві сторони на його основі генерують спільний сеансовий симетричний ключ (наприклад, для AES).
7. Надалі всі дані між клієнтом і сервером шифрують цим симетричним ключем, бо це швидше й ефективніше.
Це поєднання асиметричної та симетричної криптографії дає змогу зробити з’єднання і безпечним, і швидким.
Сфери використання та майбутні перспективи
Завдяки простоті й універсальності криптографією з відкритим ключем послуговуються у багатьох сферах.
Захист інтернету та HTTPS
Усі вебсайти, що працюють через HTTPS, застосовують TLS-протокол, що, як згадано вище, базується на криптографії з відкритим ключем. Важливо, що цей підхід забезпечує конфіденційність, адже навіть користуючись загальнодоступним Wi-Fi, ніхто не побачить, що саме ви надсилаєте.
Простими словами, без цієї криптографії не змогли б працювати онлайн-банкінг, E-commerce, месенджери, браузери та безліч інших сервісів.
Документообіг та електронні підписи
Коли ви підписуєте електронний документ, наприклад, через «Вчасно», «Дія», DocuSign, то використовуєте цифровий підпис, створений за допомогою приватного ключа. Сторона, яка отримує підписаний документ, може перевірити його справжність через ваш публічний ключ.
Це підтверджує, що саме ви підписали документ, і гарантує, що документ не змінювався після підписання. Так, ця практика швидко поширюється у світі й має юридичну силу в багатьох країнах, зокрема і в Україні.
Блокчейн та криптовалюти
У блокчейн-середовищах (Bitcoin, Ethereum та інші) кожну транзакцію також підписують приватним ключем юзера. Цей підпис доводить право розпоряджатися грошима певного гаманця.
Публічний ключ та похідна від нього публічна адреса дозволяють перевірити такий підпис. У цій системі криптографія з відкритим ключем виконує роль цифрового підпису транзакцій, перевірки справжності й джерела операцій та заміни класичного, менш надійного механізму логінів і паролів.
VPN, SSH та безпечний доступ
Системні адміністратори та розробники щодня користуються SSH-ключами — це якраз пара приватного і публічного ключа. Вони дозволяють входити на сервер без пароля — лише на основі криптографічного підтвердження особи. Схожим чином працюють багато корпоративних VPN-рішень, доступ до API та інші внутрішні інфраструктури.
Далекі (або не дуже) перспективи
Сучасні криптографічні алгоритми базуються на обчислювальній складності певних математичних задач: розкладу на прості множники, логарифмів на еліптичних кривих тощо. Все ж таки десь пролягає межа їхньої потужності й обчислювальних спроможностей.
Але з появою квантових комп’ютерів ці задачі потенційно можуть стати легкорозв’язуваними, і людству доведеться вигадувати нові способи, які не під силу квантовим компʼютерам.
До прикладу, існує алгоритм Шора, який здатен зламати 2048-бітовий RSA-ключ за лічені хвилини, якщо реалізований на потужному квантовому компʼютері. Звичайному ж комп’ютеру можуть знадобитися мільярди років, щоб зламати ідентичний ключ. Це ставить під загрозу весь сучасний стек безпеки: від HTTPS до блокчейнів.
Втім, уже сьогодні активно розробляється постквантова криптографія, тобто алгоритми стійкі до квантових атак, як-от Kyber, Dilithium, Falcon та інші.