Багато протоколів зв’язку використовують шифрування, щоб переконатися, що ваше з’єднання безпечне. Розуміння того, що насправді робить шифрування і чому воно важливе для всіх, — це гарна ідея, щоб ви знали, від чого воно може вас захистити, а від чого ні.
Шифрування – це математичний процес скремблування даних за допомогою шифру шифрування та ключа шифрування. Зашифровані дані або зашифрований текст можна розшифрувати лише до початкової форми «відкритого тексту» за допомогою ключа дешифрування.
При хорошому алгоритмі шифрування зашифрований текст повинен бути невідрізним від випадкового шуму або безглуздих значень. Це унеможливлює визначення, чи є дані навіть зашифрованим текстом, чи це просто шум. Така конструкція значно ускладнює аналіз зашифрованого тексту, намагаючись розшифрувати його без ключа дешифрування за допомогою процесу, який називається криптоаналізом.
Порада: шум є випадковим фоновим статичним фоном, так само, як сніг або статика, яку можна побачити на деяких старих телевізорах, коли вони не мають сигналу.
Симетричний проти асиметричний
Для деяких класів алгоритмів шифрування ключ дешифрування буде таким же, як і ключ шифрування, в інших ці два ключі відрізняються. Коли ключ дешифрування збігається з ключем шифрування, його називають симетричним шифруванням. У цьому випадку ключ шифрування можна розглядати як пароль, і будь-хто, хто має пароль, може зашифрувати або розшифрувати дані. AES є хорошим прикладом симетричного алгоритму шифрування, оскільки одним із його застосувань є захист HTTPS-зв'язку в Інтернеті.
Порада: HTTPS або Hypertext Transfer Protocol Secure — це основний зашифрований протокол зв’язку, який використовується в Інтернеті.
Асиметричне шифрування використовує окремі ключі шифрування та дешифрування, його також зазвичай називають криптографією з відкритим ключем. Ключ шифрування відомий як відкритий ключ, він опублікований для будь-кого, щоб використовувати його для шифрування даних. Хоча ключ дешифрування відомий як закритий ключ, і, як випливає з назви, він залишається приватним.
Цю форму шифрування можна використовувати, щоб гарантувати, що тільки призначений одержувач зможе розшифрувати та прочитати зашифроване повідомлення. Поширеним прикладом алгоритму шифрування з відкритим ключем є RSA. RSA також зазвичай використовується в з’єднаннях HTTPS, але лише для того, щоб обидва комп’ютери могли безпечно узгодити використання симетричного ключа шифрування.
Порада: асиметричні алгоритми шифрування використовуються повільніше, ніж симетричні, які забезпечують подібні рівні безпеки. Тому асиметричне шифрування використовується лише для узгодження симетричного ключа шифрування в протоколах, які вимагають швидкості та ефективності, наприклад HTTPS.
Порада: HTTPS не гарантує, що ви підключаєтеся до веб-сайту, на який ви збиралися. Він гарантує, що ви підключаєтеся до веб-сайту, який ви ввели в рядку пошуку. Якщо ви зробили помилку і випадково перейшли на exanple.com, а не на example.com, HTTPS підтвердить, що ви безпечно підключені до exanple.com. HTTPS лише перевіряє, що ваше з’єднання з веб-сервером безпечне. HTTPS також не означає, що веб-сайт, до якого ви підключаєтеся, не містить вірусів чи іншого шкідливого програмного забезпечення.
Рівні безпеки
Безпека алгоритму шифрування вимірюється в бітах. Біти безпеки відносяться до розміру використовуваного ключа шифрування і тому, наскільки важко його вгадати. На жаль, таким чином неможливо безпосередньо порівняти безпеку симетричних і асиметричних алгоритмів.
Симетричні алгоритми шифрування, такі як AES, повинні використовувати принаймні 128-бітний ключ шифрування, щоб вважатися безпечним, хоча рекомендується 256-бітний ключ. Асиметричні алгоритми повинні використовувати принаймні 2048-бітний ключ, щоб вважатися безпечними.
256-бітовий ключ шифрування має 2^256 можливих комбінацій, тобто дві, помножені на 256 разів. Виписані повністю, є: 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 можливі комбінації 256-бітного ключа шифрування. Це число настільки велике, що воно приблизно дорівнює кількості атомів, які, за прогнозами вчених, існують у видимому Всесвіті.
Незбагненно важко правильно вгадати ключ, необхідний для розшифровки даних, зашифрованих 256-бітним ключем. Навіть якби у вас був спеціальний доступ до найшвидших суперкомп’ютерів і сторіччя часу, ви все одно статистично навряд чи правильно вгадаєте ключ дешифрування.
Чому це важливо?
При вході на веб-сайт ви надсилаєте своє ім’я користувача та пароль або свої банківські реквізити. Ці відомості є конфіденційними та конфіденційними. Якщо вони є у когось іншого, вони можуть отримати доступ до ваших облікових записів, видавати себе за вас, вкрасти у вас гроші тощо.
При використанні протоколу HTTP із відкритим текстом будь-хто в мережі між вами та веб-сервером може перехопити та прочитати повідомлення, які ви надсилаєте та отримуєте. Це включає ваші паролі та інші конфіденційні дані. Інші користувачі вашої домашньої мережі, ваш провайдер та інші користувачі будь-яких загальнодоступних точок доступу Wi-Fi, до яких ви підключаєтеся, можуть бути в змозі здійснити цей тип атаки.
Якщо ви використовуєте протокол захисту HTTPS на веб-сервері та з нього, ваші дані шифруються і не можуть бути прочитані ніким іншим. Це шифрування забезпечить безпеку ваших паролів та інших конфіденційних даних під час роботи в Інтернеті.
Проте шифрування важливе не тільки для приватних або конфіденційних даних; це також корисний інструмент конфіденційності. Наприклад, це може перешкодити вашому провайдеру, наприклад, стежити за вашими звичками перегляду веб-сторінок.
Шифрування максимально можливої кількості ваших комунікацій робить менш очевидним, де приховані конфіденційні дані, які зловмисники можуть спробувати вкрасти. Тому зазвичай рекомендується використовувати шифрування всюди, де це можливо, щоб захистити все, що ви робите.
Завдяки сучасному апаратному забезпеченню та алгоритмам шифрування шифрування додає лише непомітну затримку, тому вам не потрібно турбуватися про те, що воно також сповільнить ваше інтернет-з’єднання.