HTTPS
OSI модел |
---|
1. Физически слой |
2. Канален слой |
3. Мрежов слой |
4. Транспортен слой |
5. Сесиен слой |
6. Представителен слой |
7. Приложен слой |
Hypertext Transfer Protocol Secure (HTTPS) или на български: Защитен протокол за прехвърляне на метаданни е протокол за защитена комуникация в компютърна мрежа, широко разпространена в интернет. Технически HTTPS не е самостоятелен протокол, а резултат от поставянето на протокола за пренос на хипертекст (HTTP) върху SSL/TLS протокол и по този начин защитава стандартната HTTP връзка. Основната цел на тази комбинация е да се осигури защитена връзка и уебсайт сигурност при преноса на данни между интернет потребителите.
HTTPS удостоверява сайта и съответния уеб сървър, на който е качен. Също така двупосочно криптира връзката между клиент и сървър, което осигурява защита срещу подслушване, подправяне или фалшифициране на съдържанието на съобщенията. На практика това дава достатъчно гаранции, че потребителят се свързва с правилния сайт (а не фалшиво копие), както и гарантира, че съдържанието на съобщенията между потребителя и сайта не може да се прочете или подправи от трети страни.
Исторически погледнато HTTPS връзките са били използвани главно за парични трансакции в мрежата, електронни пощи и деликатни сделки в корпоративните информационни системи. Впоследствие употребата на HTTPS се е разширила до защита на всякакъв тип уеб сайтове, потребителски акаунти, поддържане на потребителските комуникации и сърфиране в мрежата.
Преглед
[редактиране | редактиране на кода]HTTPS сигнализира браузъра да използва кодиращ SSL/TLS слой, за да предпази трафика на данни. SSL/TLS слоят е специално пригоден за HTTPS, като осигурява защита, дори ако само едната страна на съобщението е заверена. Такъв е случаят с HTTP трансакциите по интернет, където обикновено само сървърът е удостоверен с цифров сертификат.
HTTPS създава сигурен канал през незащитена мрежа. Това осигурява добра защита от подслушване и атаки, при условие, че са налице достатъчно цифрови пакети и сертификатът на сървъра е проверен и надежден.
HTTPS представлява HTTP слой, скачен с TLS слой, което позволява криптирането на целия HTTP протокол. Това включва URL адреса на поисканата страница, параметрите на заявката, заглавията и бисквитките (които често съдържат информация за самоличността на потребителя). Тъй като хост адресите и номерата на портовете са задължително част от основните протоколи TCP/IP, HTTPS не може да защити тяхното разкриване. На практика това означава, че дори и при правилно конфигуриран уеб сървър, подслушвачи могат да разберат IP адреса и номера на порта на уеб сървъра (също и името на домейна, например www.example.org, без останалата част от URL адреса), с когото потребителят комуникира, както и количеството прехвърлени данни и продължителността на сесията. Самото съдържание на съобщенията обаче остава скрито.
Уеб браузърите се доверяват на HTTPS сайтовете чрез доставчиците на удостоверителни услуги (ДУУ, на английски: certificate authorities, CA), чиито сертификати са предварително инсталирани в техния софтуер. Създателите на уеб браузъри се доверяват на доставчиците на такива услуги (като Симантек, Comodo, GoDaddy, GlobalSign, StartSSL, а в по-ново време и Let’s Encrypt) в осигуряването на валидни сертификати. Следователно потребителят може да се довери на HTTPS връзката, единствено ако всички следващи критерии са изпълнени:
- Потребителят е уверен, че браузърът реализира коректно HTTPS връзката и с преинсталирани правилни сертификати на ДУУ.
- Потребителят е уверен, че доставчикът на удостоверителни услуги издава сертификати само на легитимни сайтове.
- Уеб сайтът представя сертификат с валиден подпис с неизтекъл срок на валидност от надежден ДУУ.
- Сертификатът правилно идентифицира сайта (например, когато браузърът посети https://example.com, полученият сертификат е именно за „example.com“, а не за някакъв друг сайт).
- Потребителят е убеден, че шифриращият слой (SSL/TLS) е достатъчно защитен срещу подслушване.
HTTPS е особено важен при нешифрирани мрежи (като публични WiFi точките за достъп), защото всеки, който е свързан със същата локална мрежа може да прихване пакетите на съобщението и да разкрие дискретна информация. Много свободни или платени WLAN мрежи „инжектират“ пакети с реклами. Това обаче може да се използва злонамерено чрез инжектиране на малуер и кражба на лична информация.
HTTPS е много важен за връзка през мрежата на Tor, тъй като злонамерени Tor възли могат да повредят или да променят съдържанието, преминаващо през тях, и да вкарат малуер във връзката. Това е една от причините Electronic Frontier Foundation и Проектът Tor да разработят HTTPS Everywhere, който да бъде включен в браузъра.
Колкото повече информация се разкрива за световното масово проследяване и за престъпници, задигащи лични данни, толкова повече използването на HTPPS на всички сайтове става все по-актуално.
Внедряването HTTPS също позволява използването на HTTP/2, което ускорява зареждането на уеб страниците.
Препоръчително е да се използва HTTP Strict Transport Security с https, за да се защитят потребителите от нападения тип „човек по средата“.
HTTPS не трябва да се бърка с рядко използвания Secure HTTP (S-HTTP)
Използване на HTTPS в уебсайтовете
[редактиране | редактиране на кода]Анализ на Alexa Internet от Юни 2016 показва, че 10,2% от топ 1 000 000 на уебсайтовете използват HTTPS по подразбиране. 43,1% от 141 387-те най-популярни уебсайта имат имплементиран HTTPS и 45% от зарежданията в браузърите използват HTTPS, показва телеметрията на Firefox.
Интеграция в браузърите
[редактиране | редактиране на кода]Повечето браузъри показват предупреждение, ако получат невалиден сертификат. Също така показват сигурността на сайта в адресната лента. Сертификатите с разширена валидация оцветяват адресната лента или надписа „https“ в зелено. Напоследък повечето браузъри са възприели „зелен катинар“ като символ за сигурна връзка, ратифицирана от благонадежден сертификационен орган. Повечето браузъри също изкарват предупреждение при посещение на сайт, който съдържа смес от криптирано и некриптирано съдържание.
-
Много уеб браузъри, като Opera, отбелязват със зелен катинар в адресната лента, че връзката е защитена. Когато потребителят кликне върху катинара, браузърът показва допълнителна информация за сертификата, който ползва съответния сайт.
Фондацията Electronic Frontier е разработила добавката HTTPS Everywhere, която използва HTTPS по подразбиране за стотици от най-често използваните сайтове.
Сигурност
[редактиране | редактиране на кода]Сигурността на HTTPS лежи в основата на Transport Layer Security (TLS), който използва дългосрочни публични и секретни ключове за обмен на краткосрочен сесиен ключ, за да кодира потока от данни между клиент и сървър. За да се удостовери сървърът, се използват сертификатите X.509. Нужни са сертификационни центрове и сертификат на публичен ключ, за да се провери връзката между сертификата и неговия собственик, съдържанието на сертификата, а също и да се генерира, подпише и администрира валидността на сертификатите.
Един сайт трябва да е изцяло качен на HTTPS без да има съдържание върху обикновен HTTP, в противен случай потребителят би бил уязвим от някои атаки и наблюдение. Ако само определена страница, която съдържа чувствителна информация (като страница за вписване) е качена на HTTPS, а останалата част от уеб сайта е върху HTTP, това излага потребителя на опасност. В сайт, който съдържа важна информация, всеки път когато сайтът е посетен чрез HTTP, вместо с HTTPS, потребителят и сесията са открити. По същия начин бисквитките трябва да са сесийни с включен защитен атрибут.
Технически характеристики
[редактиране | редактиране на кода]Разлика от http
[редактиране | редактиране на кода]HTTPS URL адресите започват с https:// и ползват порт 443 по подразбиране, докато HTTP URL адресите започват с http:// и ползват порт 80.
HTTP не е криптиран и е уязвим за атаки тип „човек по средата“ и подслушване, което позволява на атакуващите да се сдобият с достъп до ценна информация и да подправят страниците, допълвайки ги с малуер и реклами.
HTTPS създава сигурен канал през незащитена мрежа. Това осигурява достатъчна защита от подслушване и атаки, при условие, че са налице достатъчно цифрови пакети и сертификатът на сървъра е проверен и надежден.
Мрежови слоеве
[редактиране | редактиране на кода]HTTP работи в най-горния пласт – програмния, където е и TLS протоколът, който криптира HTTP съобщението при трансмисия и след това го дешифрира при пристигането. Строго погледнато HTTPS не е отделен протокол, а представлява обикновен HTTP протокол върху криптирана SSL/TLS връзка.
Всичко в HTTPS съобщението е криптирано, включително заглавията, заявките и отговорите. С изключение на някои криптографски атаки, недоброжелателят може само да разбере, че се осъществява връзка между две страни, името на домейна и IP адресите на страните.
Настройка на сървъра
[редактиране | редактиране на кода]За да се подготви един уеб сървър да приеме HTTPS връзка, администраторът трябва да създаде цифров сертификат на уеб сървъра. Този сертификат трябва да бъде подписан от сертификационен център, за да може уеб браузърът да го приеме без предупреждение. Сертификационният център удостоверява, че притежателят на сертификата е оператора на уеб сървъра. Уеб браузърите обикновено се разпространяват със списък със сертификати на големите сертификационни центрове.
Получаване на сертификати
[редактиране | редактиране на кода]Сертификатите, подписани от сертификационните центрове, могат да бъдат безплатни или да струват между 8 и 70 щатски долара годишно. В случай на безплатните сертифициращи органи, като CACert, популярните браузъри (Firefox, Chrome, Internet Explorer) може да включват сертификати на доверените фирми, което може да предизвика появата на предупредителни съобщения към крайния потребител. StartCom е пример за компания, която предлага безплатни сертификати с широк съпорт от браузъри.
Някои организации може да имат свои сертификационни центрове, особено ако настройват браузърите за достъп до техни мрежи и сайтове (например Интранет мрежи или сайтове на големи университети). Така компаниите лесно могат да си добавят копия на сертификатите, подписани от тях, към списъка с доверените сертификати в браузърите.
Съществуват също peer-to-peer сертификационни центрове, като CACert. Но той не присъства в списъците на популярните браузъри, което може да доведе до предупредителни съобщения към потребителя.
Контрол на достъпа
[редактиране | редактиране на кода]Системата може да се използва за удостоверяване на клиента, за да се ограничи достъпа до уеб сървъра само за оторизирани потребители. Администраторът на сайта обикновено създава сертификат за всеки потребител, който се зарежда в неговия/нейния браузър. Обикновено се съдържат името и адреса на електронната поща на оторизирания потребител и при всяко свързване сървърът автоматично проверява самоличността на потребителя без последният да въвежда парола.
В случай на компрометиран секретен ключ
[редактиране | редактиране на кода]Криптографията има важно свойство, което се нарича Съвършена секретност. При притежанието на един от дългосрочните асиметрични ключове, използвани за създаване на HTTPS сесията, не трябва да се улеснява получаването на краткосрочния сесиен ключ, с който недоброжелател да може да декриптира разговора на по-късен етап.
Обмяната на ключове по модела Дифи-Хелман (Diffie–Hellman key exchange – DHE) и Елиптичната крива на Дифи-Хелман (Elliptic curve Diffie–Hellman) са единствените, които имат подобно свойство за предотвратяване на кражбата на ключ. Само 30% от сесиите на Firefox, Opera, и Chromium ползват това приложение докато Safari на Apple и Internet Explorer почти не го ползват. От по-големите интернет доставчици само Google поддържат PFS.
Едно удостоверение може да бъде оттеглено преди изтичането на срока му, когато частният ключ е компрометиран. Новите версии на Google Chrome, Firefox, Opera, и Internet Explorer прилагат Протокол за онлайн статус на сертификати, за да удостоверят, че всичко е наред. Браузърът праща серийният номер на сертификата към сертифициращия орган през OSCP и оттам получава съобщение за валидността на сертификата.
Ограничения
[редактиране | редактиране на кода]SSL се предлага в два варианта: прост и взаимен. Взаимната версия е по-сигурна, но изисква от потребителя да инсталира личен сертификат в браузъра си, за да се удостовери.
Какъвто и вариант да се използва, нивото на сигурност силно зависи от изпълнението на уеб браузъра, сървърния софтуер и самите криптографски алгоритми.
SSL / TLS не пречи на уеб роботи да индексират даден сайт, а в някои случаи УИР (универсален идентификатор на ресурси) схемата на криптирания ресурс може да бъде разгадана само по размера на поисканата заявка или отговор. Това позволява на атакуващия да се сдобие с некриптираната публично-достъпна информация и криптирания текст (криптираната версия на статичното съдържание).
Тъй като TLS работи под HTTP слоя и не чете протоколи от по-високо ниво, TLS сървърите могат да представят само един сертификат за определен IP адрес и порт. Това означава, че не е възможно да се използва виртуален хостинг с HTTPS на един и същ IP адрес. Решение, наречено Server Name Indication (SNI) изпраща името на хоста до сървъра преди криптирането на връзката. Поддръжката на SNI е достъпна от следните версии на браузърите насам: Firefox 2, Opera 8, Safari 2.1, Google Chrome 6 и Internet Explorer 7.
От архитектурна гледна точка:
- Една връзка SSL/TLS се управлява от първата предна машина, която я инициира. Ако по някакви причини (маршрутизация, оптимизация на трафика и т.н.) тази предна машина не е програмният сървър и няма дешифриращи данни, трябва да се потърси решение за разпространение на потребителското удостоверение или сертификата на програмния сървър, за да се знае кое ще бъде свързано.
- За SSL/TLS с взаимно удостоверяване, SSL/TLS сесията се управлява от първия сървър, който направи връзката. В ситуация, в която криптирането трябва да бъде предадена през свързани сървъри, управлението на timeOut сесията се изпълнява изключително трудно.
- С взаимно SSL/TLS удостоверяване сигурността е максимална, но е невъзможно за клиента да прекрати SSL връзката и да се изключи без да изчака сесията да свърши ли или да затвори всички свързани клиентски приложения.
Сложната атака „човек по средата“, наречена SSL stripping е представена на Blackhat Conference през 2009. Този тип атака преодолява защитата на HTTPS като превръща линка https в http, възползвайки се от факта, че малко потребители изписват ръчно https в адресната лента. Те влизат в защитения сайт през линк, мислейки си, че ползват защитен HTTPS протокол, като всъщност използват обикновен HTTP. Нападателят комуникира безпроблемно с клиента. Този проблем доведе до появата на HTTP Strict Transport Security.
През май 2010, в проучване на Майкрософт и университетът в Индиана изследователи открили, че потребителските данни могат подробно да се отгатнат през големината на пакетите. По-специално изследователите разгледали случай, в който подслушвач може да разбере за болестите, лекарства, кабинетите на потребител, включително неговия семеен доход и инвестиционни тайни. Това станало въпреки HTTPS защитата на няколко профилирани програмни приложения на системите в здравеопазването, данъчните служби и инвестиционни фондове.
История
[редактиране | редактиране на кода]Компанията Netscape Communications създава HTTPS през 1994 за техния уеб браузър – Netscape Navigator. Първоначално HTTPS се е ползвал заедно с SSL протокол. Впоследствие SSL еволюира до Transport Layer Security (TLS).
Вижте също
[редактиране | редактиране на кода]Външни препратки
[редактиране | редактиране на кода]- RFC 2818: HTTP Over TLS
- Hacking HTTPS by man-in-the-middle attack
- RFC 5246: The Transport Layer Security Protocol 1.2
- HTTPS Error: Your connection is not private Архив на оригинала от 2016-12-07 в Wayback Machine.
Тази страница частично или изцяло представлява превод на страницата HTTPS в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.
ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни. |