HTTPS
Матеріал з Вікіпедії — вільної енциклопедії.
HTTPS — схема URI, що синтаксично ідентична http: схемі яка звичайно використовується для доступу до ресурсів Інтернет. Використання https:URL указує, що протокол HTTP має використовуватися, але з різним типовим портом (443) і додатковим шаром шифрування/автентифікації між HTTP і TCP. Ця схема була винайдена у компанії Netscape Communications Corporation для забезпечення автентифікації і шифрування комунікацій і широко використовується на Інтернет для чутливих для безпеки комунікацій як наприклад платіжні операції і корпоративні логіни.
[ред.] Принцип роботи
Власне кажучи, HTTPS не є окремим протоколом, але являється комбінацією нормальної взаємодії HTTP через SSL або TLS. Це гарантує помірний захист від підслухування і від нападу "людина-посередині" (man-in-the-middle) (якщо це здійснюється належним чином і уповноважені на видачу сертифікатів верхнього рівня роблять свою роботу належним чином).
Типовим TCP портом HTTPS є 443 (для HTTP типове значення складає 80).
Щоб підготовити веб-сервер для прийняття https транзакцій адміністратор повинен створити сертифікат з відкритим ключем для веб-сервера. Ці сертифікати можуть бути створені на UNIX сервері такими програмами, як наприклад OpenSSL ssl-ca. Цей сертифікат повинен бути підписаним уповноваженим на видачу сертифікатів (certificate authority) який засвідчує, що утримувач сертифікату - той самій, що стверджується у сертифікаті. Браузери розповсюджуються з сертифікатами уповноважених на видачу сертифікатів верхнього рівня, таким чином браузери можуть перевірити сертифікати підписані ними.
Організації можуть також мати їх власні уповноважені на видачу сертифікатів, особливо якщо вони відповідальні за конфігурацію браузерів, що мають доступ до їх власних сайтів (наприклад, сайти на внутрішній мережі компанії), оскільки вони можуть тривіально додати свого власного сертифіката до браузера.
Деякі сайти використовують самостійно підписані сертифікати. Їх використання забезпечує захист проти підслуховування але є ризик нападу "людина-посередині". Для запобігання нападу необхідна перевірка сертифікату деяким іншим методом (наприклад подзвонити власнику сертифіката задля перевірки контрольної суми сертифіката).
Система може також використовуватися для клієнтської автентифікації, для того, щоб обмежити доступ до веб-сервера тільки зареєстрованими користувачами. Для цього адміністратор сайту створює сертифікати для кожного користувача, які завантажуються в їх браузер. Ці сертифікати звичайно містять ім'я і електронну пошту зареєстрованого користувача і автоматично перевіряються сервером при кожному повторном підключенні. Ввід паролю не потрібен.
[ред.] Обмеження
Рівень захисту залежить від коректності запровадження браузерного і серверного програмного забезпечення і підтримуваних криптографічних алгоритмів.
Загальне непорозуміння серед користувачів кредитних карток на Інтернет є що HTTPS повністю захищає їх номер карти від злодіїв. Фактично шифроване підключення до веб-сервера тільки захищає номер кредитної картки в транзиті між комп'ютером користувача і сервером безпосередньо. Це не гарантує що сервер безпосередньо захищений - він навіть може бути зламаним.
Напади на веб-сервери що зберігають дані клієнта є як легші так і більш загальні ніж намагання перехопити дані в транзиті. Вважається що комерційні сайти негайно пересилають операції що поступають до шлюзу оплати і зберігають тільки операційний номер, але вони часто зберігають номери карт в базі даних. Звичайно сервер і база даних є ціллю для нападу.
Оскільки SSL діє на нижчому за HTTP рівні і не знає нічого щодо вищого протоколу, сервери SSL можуть тільки представити один сертифікат для специфічної комбінації IP адреса/порт. Це означає, що в більшості випадків HTTPS не використується для заснованого на імені віртуального хостінгу. (Це підлягає зміні в наступаючому TLS 1.1, який вирішить проблему заснованого на імені віртуального хостінгу. На грудень 2006 р. всі головні браузери підтримують нову властивість TLS - Вказівку Серверного Імені (Server Name Indication), але поки вона не використовується веб-серверами широко.)