HTTP

Как работи HTTPS? - Ръководство за начинаещи

Как работи HTTPS? - Ръководство за начинаещи
Сертификатните органи са един от най-важните крайъгълни камъни за интернет сигурността. Сертифициращият орган е някой, на когото всички се доверяват в началото, когато никой не вярва на никой друг. Тогава това е работата на този сертифициращ орган (a.к.CA), за да се гарантира, че се установява доверие между сървъри и клиенти, преди те да установят комуникация през Интернет.CA е важен не само за HTTPS, използван от браузъри и уеб приложения, но и за криптирани имейли, подписани актуализации на софтуер, VPN и много много повече. Ще вземем прототипния пример на HTTPS и ще научим за CA в този конкретен контекст. Въпреки че можете да екстраполирате резултата към всеки друг софтуерен пакет.

Проблеми с HTTP и обикновен текст

Интернет е ненадежден канал за комуникация. Когато изпращате или получавате информация от стар HTTP сайт http: //www.пример.com във вашия браузър много неща могат да се случат по средата на вашите пакети.

  1. Лош актьор може да прихване комуникацията, да копира данните за себе си, преди да ги изпрати отново по канала към вас или към сървъра, с който сте разговаряли. Без знанието на която и да е от страните информацията е компрометирана. Трябва да гарантираме, че комуникацията е такава частни.
  2. Лош актьор може да модифицира информацията, докато се изпраща по канала. Боб може да е изпратил съобщение "х" но Алис щеше да получи „У“ от Боб, защото лош актьор прихвана съобщението и го модифицира. С други думи, интегритет на съобщението е компрометирано.
  3. И накрая, и най-важното, трябва да гарантираме, че човекът, с когото разговаряме, наистина е този, за когото се казва. Връщайки се към пример.com домейн. Как можем да се уверим, че сървърът, който ни отговори, наистина е законният притежател на www.пример.com? Във всеки момент от вашата мрежа можете да бъдете погрешно насочени към друг сървър. DNS някъде е отговорен за конвертиране на име на домейн, като www.пример.com, в IP адрес в обществения интернет. Но вашият браузър няма начин да провери дали DNS е превел IP адрес.

Първите два проблема могат да бъдат решени чрез криптиране на съобщението, преди то да бъде изпратено по интернет на сървъра. Това ще рече, като преминете към HTTPS. Въпреки това, последният проблем, проблемът с идентичността, е мястото, където сертифициращият орган влиза в игра.

Иницииране на шифровани HTTP сесии

Основният проблем с криптирана комуникация по несигурен канал е „Как да го стартираме?”

Първата стъпка би включила двете страни, вашия браузър и сървъра, да обменят ключовете за криптиране, които да се обменят по несигурния канал. Ако не сте запознати с термина ключове, помислете за тях като за наистина дълга случайно генерирана парола, с която вашите данни ще бъдат криптирани, преди да бъдат изпратени по несигурния канал.

Е, ако ключовете се изпращат по несигурен канал, всеки може да слуша това и да компрометира сигурността на вашата HTTPS сесия в бъдеще. Освен това, как можем да вярваме, че ключът се изпраща от сървър, който твърди, че е www.пример.com наистина е действителният собственик на това име на домейн? Можем да имаме криптирана комуникация със злонамерена страна, маскирана като легитимен сайт и да не знаем разликата.

Така че проблемът с осигуряването на идентичност е важен, ако искаме да осигурим сигурен обмен на ключове.

Сертифициращи органи

Може да сте чували за LetsEncrypt, DigiCert, Comodo и няколко други услуги, които предлагат TLS сертификати за вашето име на домейн. Можете да изберете този, който отговаря на вашите нужди. Сега лицето / организацията, която притежава домейна, трябва да докаже по някакъв начин на своя сертифициращ орган, че наистина има контрол върху домейна. Това може да бъде направено или чрез създаване на DNS запис с уникална стойност в него, както е поискано от сертифициращия орган, или можете да добавите файл към вашия уеб сървър, със съдържание, посочено от сертифициращия орган, след което CA може да прочете този файл и потвърдете, че сте валиден собственик на домейна.

След това договаряте TLS сертификат с CA и това води до частен ключ и публичен TLS сертификат, издадени на вашия домейн. След това съобщенията, кодирани от вашия частен ключ, могат да бъдат декриптирани от публичния сертификат и обратно. Това е известно като асиметрично криптиране

Клиентските браузъри, като Firefox и Chrome (понякога дори операционната система) имат знанията на сертифициращите органи. Тази информация се вписва в браузъра / устройството от самото начало (тоест, когато са инсталирани), така че те знаят, че могат да се доверят на определени CA. Сега, когато се опитат да се свържат с www.пример.com през HTTPS и ще видите сертификат, издаден от, да речем DigiCert, браузърът всъщност може да провери, че използвайки локално запазените ключове. Всъщност има още няколко посреднически стъпки към него, но това е добър опростен преглед на случващото се.

Сега, когато сертификатът, предоставен от www.пример.com може да се вярва, това се използва за договаряне на уникален симетричен ключ за криптиране, който се използва между клиента и сървъра за останалата част от тяхната сесия. При симетричното криптиране се използва един ключ за криптиране, както и за дешифриране и обикновено е много по-бърз от асиметричния си аналог.

Нюанси

Ако идеята за TLS и сигурността в Интернет ви привлича, можете да разгледате по-нататък тази тема, като разровите LetsEncrypt и техния безплатен TLS CA. Има много повече минути за цялата тази система, отколкото е посочено по-горе.

Други ресурси, които мога да препоръчам за научаване на повече за TLS, са блогът на Troy Hunt и работата, извършена от EFF като HTTPS Everywhere и Certbot. Всички ресурси са безплатни за достъп и наистина евтини за изпълнение (просто трябва да платите за регистрация на име на домейн и почасови такси за VPS) и да получите опит.

Урок Сянка на Tomb Raider за Linux
Shadow of the Tomb Raider е дванадесетото допълнение към поредицата Tomb Raider - франчайз за екшън-приключенска игра, създаден от Eidos Montreal. Игр...
Как да увеличите FPS в Linux?
FPS означава Кадри в секунда. Задачата на FPS е да измерва честотата на кадрите при възпроизвеждане на видео или игрални изпълнения. С прости думи бро...
Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...