HTTPS: внутрішній устрій і поштові голуби
HTTPS грає ключову роль в забезпеченні безпеки сучасного інтернету, передачі даних, спілкування і здійснення покупок.
Давайте ж дізнаємося, що таке HTTPS і криптографія.
криптографія може бути важким предметом для розуміння, т. к. містить масу математичних дій. Але якщо ви не розробляєте свій програмний продукт з використанням криптографічних систем, вам не потрібно занадто заглиблюватися в нетрі мат. аналізу і інтегральних обчислень.
Якщо ви очікуєте в цій статті побачити якесь нововведення або опис свіжої версії HTTPS, далі можете не читати. В іншому випадку стаття буде вам корисна.
Будь-яка активність, яку ви робите (листування, покупки на Алі або лайки в улюбленої соціальної мережі), заснована на передачі і отриманні повідомлень сервером.
Щоб додати веселощів в розповідь - уявіть, що ці повідомлення доставляють поштові голуби. Це може здатися дивним, але, повірте, все саме так і працює, хоча і в багато разів швидше.
Замість того, щоб розповідати про хакерів і клієнт-серверній архітектурі, поговоримо про Еліс, Бобі і Меллорі - частих персонажах технічної літератури.
Уявімо, що Еліс хоче відправити повідомлення Бобу. Вона прив'язує до лапи голуба конверт і відправляє його до Бобу. Боб отримує лист, читає, і всі щасливі.
Але що, якщо Меллорі перехопить голуба Еліс, змінить її повідомлення в конверті і відправить голуба далі до Бобу? Боб ніяк не дізнається, що повідомлення, яке відправила Еліс, було змінено.
Ось так небезпечно виглядає робота протоколу HTTP. Я думаю, ви не погодитеся відправляти свої банківські реквізити по такому каналу.
Тепер, після останнього випадку з Меллорі, Еліс і Боб вирішують вести переписку зі спеціальним ключем. Вони будуть зміщувати кожну букву на три позиції в алфавіті. Наприклад: Г → A, Д → Б, Е → В. Підсумкове повідомлення, що минув таємний ключ, має вигляд: "млкалеййемляекев".
Тепер, якщо Меллорі перехопить голуба і спробує щось змінити або зрозуміти сенс, у неї нічого не вийде, т. К. Вона не знає таємного ключа. Але це зможе зробити Боб за допомогою перестановки символів в правильній послідовності, і зашифроване повідомлення "млкалеййемляекев" перетворюється в "програмування".
Таке шифрування називається симетричним тому, що якщо ви знаєте, як зашифрувати повідомлення, ви також знаєте, як його розшифрувати. Приклад шифрування, яким користувалися Еліс і Боб, носить назву "Шифр Цезаря". У реальному житті використовуються набагато більш складні алгоритми, але зміст залишається тим же.
Симетричне шифрування - дуже корисний і безпечний інструмент, якщо ніхто, крім отримувача та відправника, не знає ключа. У шифруванні Цезаря Еліс використовувала зміщення на 3 позиції, але могла і на 9 пересунути. Як Боб дізнається, на яку кількість символів Еліс зрушила оригінал? Якщо відправляти ключ з тим же голубом, то Меллорі при перехопленні отримає шифр і ключ. Дії Меллорі називаються атакою "Людина посередині".
Еліс і Боб придумали інший спосіб, уберегтися від Меллорі:
- Боб відправляє голуба без повідомлення;
- Еліс відправляє у відповідь голуба з шухлядкою і замком;
- Боб кладе лист в ящик, і замикає її;
- Еліс отримує ящик і відкриває його своїм ключем.
Цього разу Меллорі не зможе підмінити повідомлення, т. К. У неї немає ключа від шухлядки.
Еліс і Боб використовують те, що називається асиметричною криптографією. З технічної точки зору, закритий ящик - це public key, а ключ від ящика - це private key.
Як ви вже помітили, ми все ще маємо проблему. Коли Боб отримує голуба, як він може бути впевнений, що він прийшов від Еліс, а Меллорі НЕ перехопила його?
Еліс придумала ще одну схему: ставити на ящик підпис. Коли Боб отримає ящик, він побачить цей підпис, і буде впевнений, що саме Еліс його послала.
Але тут виникає ще одна проблема - як Боб ідентифікує підпис Еліс, якщо він не бачив її підпис до цього? Для вирішення завдання Еліс підключила Теда. Тед - це шанована людина, якому всі довіряють. Він пообіцяв підписувати своїм підписом ящики тільки перевірених людей.
Тед буде підписувати ящик для Еліс, якщо вона прийде особисто. Тепер Меллорі не зможе перехопити ящик і підписати його у Теда, т. К. Він знатиме, що це не Еліс прийшла.
З технічної точки зору, Тед - центр сертифікації. Браузер, в якому ви переглядаєте статтю, поставляється з набором підписів різних центрів сертифікації. Тому, коли ви підключаєтеся до будь-якого сайту вперше, ви довіряєте його скриньки, т. К. Тед сказав, що йому можна довіряти.
Тепер у хлопців є надійна система для спілкування, але голуб з ящиком набагато повільніше, ніж голуб з повідомленням. Тому, вони вирішили використовувати ящик (асиметрична криптографія) тільки для визначення ключа шифрування за допомогою симетричною криптографії (пам'ятаєте метод Цезаря?). Таким чином, вони отримують надійність асиметричною і ефективність симетричною криптографії, а це і є основа HTTPS.
Тепер ви дізналися, як працює HTTPS. Переклад на російську здійснений Бібліотекою Програміста.
оригінал статті
Але що, якщо Меллорі перехопить голуба Еліс, змінить її повідомлення в конверті і відправить голуба далі до Бобу?Як Боб дізнається, на яку кількість символів Еліс зрушила оригінал?
Коли Боб отримує голуба, як він може бути впевнений, що він прийшов від Еліс, а Меллорі НЕ перехопила його?
Але тут виникає ще одна проблема - як Боб ідентифікує підпис Еліс, якщо він не бачив її підпис до цього?
Пам'ятаєте метод Цезаря?