Разликата между кореневите сертификати и междинните сертификати

Нека да поговорим за междинни и главни сертификати за сертифициране за няколко минути. SSL (или по-точно TLS) е технология, за която повечето крайни потребители не знаят почти нищо. Дори хората, които го придобиват, обикновено не знаят много повече от факта, че се нуждаят от SSL сертификат, и те трябва да го инсталират на своя сървър, за да обслужват уебсайта си чрез HTTPS.

Ето защо, когато започнете да споменавате междинни сертификати и сертификати за CA и Root и CA, очите на повечето хора започват да се затъмняват, което го прави тема, от която вероятно трябва да останете далеч от първата среща (веригите за сертификати са повече от разговор на четвърта или пета среща ).

Но като се има предвид, че SSL е нещо наше и понеже ни се задават много въпроси за тях, днес ще се задълбочим в веригите, междинните продукти и корените на сертификатите. В началото може да изглежда много, но да се надяваме, че в края на тази статия ще изглежда доста просто.

Така че без допълнително обожание, нека го изхвърлим

Какво е коренен сертификат?

Коренният сертификат, често наричан доверен корен, е в центъра на модела на доверие, който подценява SSL / TLS. Всеки браузър включва магазин за корени. Някои браузъри работят самостоятелно, докато други използват магазин на трети страни. Корен магазин е колекция от предварително изтеглени коренови сертификати, които живеят на вашето устройство. Коренният сертификат е безценен, защото всеки сертификат, подписан с неговия частен ключ, ще бъде автоматично доверен от браузърите.

Доверените корени принадлежат на сертифициращите органи - организациите, които валидират и издават SSL сертификати. Ще се задълбочим в това малко по-дълбоко след няколко мига, но първо нека обсъдим веригата на сертификатите.

Какво представлява веригата на сертификатите?

Преди да продължим по-нататък, трябва да въведем концепцията на веригата на сертификати. Нека започнем с поставянето на въпрос: как вашият браузър знае да се доверява на SSL сертификата на уебсайта? Когато стигнете до уебсайт, браузърът ви разглежда SSL сертификата и извършва бърз процес за проверка на автентичността на сертификата.

Това, което браузърът ви прави за удостоверяване на сертификата, следва веригата на сертификатите. И така, каква е тогава веригата на сертификатите? За да получите издаден SSL сертификат, започвате, като генерирате заявка за подписване на сертификат (CSR) и частен ключ. В най-простата си итерация изпращате CSR до сертифициращия орган, след това той подписва вашия SSL сертификат с частния ключ от неговия корен и го изпраща обратно.

Сега, когато браузърът вижда SSL сертификата, той вижда, че сертификатът е подписан от един от надеждните корени (или по-точно, подписан с частния ключ на root). Тъй като се доверява на корена, той се доверява на всеки сертификат, който коренните знаци. В този пример сертификатът на сървъра се свързва директно към корена.

Какво е междинен сертификат?

Органите за сертифициране не издават сървърни сертификати (SSL сертификати за краен потребител) директно извън техните корени. Това би било опасно, защото ако някога има грешно издаване или грешка, която изисква коренът да бъде отменен, всеки сертификат, който е подписан с корен, ще бъде доверен веднага.

За да се изолират, СА обикновено издават това, което се нарича междинен корен. CA подписва междинния корен със своя частен ключ, което го прави надежден. Тогава CA използва личния ключ на междинния сертификат за подписване на SSL сертификати на крайния потребител. Този процес може да се играе няколко пъти, когато междинен корен подписва друг междинен и след това СА го използва за подписване на сертификат.

Ето визуализация на веригата на сертификати. За нашия пример ще използваме само един междинен продукт, за да го опростим. Веригите за сертификати в реалния свят често са много по-сложни.

Каква роля играе цифровият подпис?

Цифровият подпис е нещо като цифрова форма на нотариално заверяване в този контекст. Когато корен сертификат цифрово подпише междинен сертификат, той по същество прехвърля част от доверието му към междинния. Тъй като подписът идва директно от личния ключ на доверения корен сертификат, той автоматично се вярва.

Този параграф ще бъде малко технически, така че не се колебайте да прескочите напред. Всеки път, когато браузърът или устройството се представи със SSL сертификат, той получава самия сертификат, както и публичния ключ, свързан със сертификата. Използвайки публичния ключ, той дешифрира цифровия подпис и вижда от кого е направен - какъв сертификат го е подписал. Вероятно можете да започнете да свързвате това заедно сега. Когато вашият браузър удостоверява SSL сертификата на крайния потребител на уебсайт, той използва публичния ключ, който се предоставя, за да дешифрира подписа и да премести една връзка нагоре по веригата. Той продължава да повтаря този процес - дешифрира подписа и следва веригата до сертификата, който го е подписал - докато в крайна сметка не стигне до един от основните сертификати в доверието на браузъра.

Ако не може да свърже сертификата обратно към един от надеждните си корени, той няма да се доверява на този сертификат.

Добре, така че каква е разликата между Root CA и Intermediate CA?

Това всъщност е доста ясно. Root CA е сертифициращ орган, който притежава един или повече доверени корени. Това означава, че те имат корени в магазините за доверие на основните браузъри. Междинните CA или Sub CA са сертифициращи органи, които издават междинен корен. Те нямат корени в доверителните магазини на браузъра, вместо това техните междинни корени се връщат към доверен корен на трета страна. Това понякога се нарича кръстосано подписване.

Ето, ето къде може да стане малко объркващо. Както обсъждахме по-рано, СА не издават директно от корените си. Те добавят слоеве на сигурност чрез издаване на междинни продукти и след това подписват сертификати с тях. Това помага да се минимизират и разделят щетите в случай на неправилно издаване или събитие за сигурност. Вместо да отмените главния сертификат и буквално всеки сертификат, който е подписал чрез разширение, вие просто отменяте междинния продукт, което само предизвиква недоверие на групата сертификати, издадени извън този междинен продукт.

Ето практически пример, Google и другите браузъри наскоро повериха SSL сертификатите на марката Symantec CA. Отначало руж, който може да изглежда като монументална задача, недоверие на милиони SSL сертификати за крайни потребители. В действителност беше много просто. Те просто премахнаха всички корени на Symantec CA от техните доверителни магазини. Сега всеки сертификат, който трябва да се върне обратно към тези корени, се проваля и е недоверчив. (Заслужава да се отбележи, че DigiCert е почистил Symantec прекрасно, но това служи като добър пример в реалния живот за тази дискусия.)

Каква е разликата между верижен корен и един корен?

Това всъщност се връща към последния ни въпрос. Един-единствен корен се притежава от СА. Той може да издава сертификат директно, което го прави много по-лесно за разгръщане на сертификати и опростяване на инсталирането. Верижен корен е това, което Sub CA използва за издаване на сертификати. Това е междинен сертификат, но тъй като Sub CA няма собствен доверен корен, трябва да се свърже към CA на трета страна, който има такъв.

Това също има значение. Ето защо:

  • Верижните корени правят по-сложни инсталации, тъй като междинният корен ще трябва да бъде зареден на всеки сървър и приложение, което е домакин на сертификата.
  • Окованите корени са на милостта на СА, за които са оковани. Те нямат контрол над корена, така че ако Root CA не работи, те са прецакани.
  • Корените и междинните сертификати също изтичат. Макар и при по-дълги срокове. Все пак един междинен продукт трябва да изтече преди неговия корен, което добавя сложност.

Последна дума за корените и междинните продукти

Това, което току-що описахме - моделът на доверие, включващ сертифициращи органи, вериги на сертификати и криптографски подписи - е по същество PKI или публична ключова инфраструктура. Досега избягвах да използвам този термин, защото изглежда много абстрактно, докато не навлезете малко в подробностите.

Но когато някой се позовава на PKI, това има предвид. И като се има предвид това, вероятно можете да разберете как частен CA и самоподписани сертификати са разположени в Enterprise контекст. Работейки заедно с доверен CA, организацията генерира корен сертификат (и) и частен ключ (това се нарича церемония на ключовете). След това организацията добавя root към собствените си магазини за корени, във всичките си системи и устройства. И от този момент организацията може да подпише собствените си сертификати X.509, като използва частния ключ от собствените си корени и на тях ще се вярва в цялата му мрежа.

Честно казано, това е бъдещето на PKI. И бъдещето пристига по-бързо, отколкото някой осъзнава.

Първоначално публикуван на www.thesslstore.com на 28 август 2018 г.