Възможности за сертификатната измама в X.509

Версия 1.0, 22 юни 2008

Веселин Колев, Софийски Университет "Св. Климент Охридски"

Адрес за кореспонденция: vesso AT vesselin.org

Първоизточник: http://www.vesselin.org

Лиценз на документа: CC Attribution-ShareAlike

 

Съдържание:

  1. Увод

  2. Удостоверителски сертификати в хранилищата на браузърите

  3. Правилна схема на проверка на удостоверителски X.509 сертификат

  4. Некоректни удостоверители

  5. "Подхвърляне" на X.509 сертификати

  6. Измама по удостоверителната верига

 

1. Увод

В рамките на сертификатния модел X.509 се следва йерархична структура, която представлява пирамида на доверитето. На върха на пирамидата стои един единствен (въховен) удостоверител. Възможно е в йерархията да има още удостоверители, но всички те са подчинени на върховния удостоверител.

Всеки, който е удостоверяван в рамките на пирамидата на доверие е директно или индиректно удостоверяван от върховния удостоверител. Индиректното удостоверяване става чрез подудостоверител, но на практика той е удостоверяем от върховния удостоверител и така пак схемата на доверие започва от върха.

Всеки публичен ключ има свой хеш за проверка, който може да бъде изчислен чрез някой от най-често използваните за целта алгоритми (например MD5 и SHA1). Основата на всеки X.509 сертификат е публичния ключ заложен в него. Следователно, ако се знае сумата за проверка на публичния ключ, който е основа на сертификата, по някакъв независим път, то може да се провери дали копието от дадено копие на сертификата е оригинално или е фалшифицирано.

 

2. Удостоверителски сертификати в хранилищата на браузърите

Всички браузъри, които поддържат протокола HTTPS, имат локални хранилища за сертификати на удостоверители. Сертификатите, които се намират там са обект на дискусия. Причината за това е, че производителят на браузъра подава списък със сертификати на удостоверители и така той се превръща в удостоверител на удостоверителите. Учудващо е как огромното болшинство от потребители вярват на производителя на браузъра безрезервно и приемат сертификатите на удостоверителите за истински. Дори не си правят труда да проверят цифровия отпечатък на удостоверителските сертификати, които най-често използват. Това е една невероятно широка база за измама с непредвидими последствия. Проблемът може да има почти катастрофални последствия при използването на нелицензиран софтуер, при който използващия по подразбиране избягва контакт с производителя. Най-често такъв софтуер се изтегля от неофициални файлови хранилища или се отключва и декодира с външни на производителя или дистрибутора софтуерни продукти (т.нар. "cracks")

Използването на софтуер с отворен код не е панацея и при неговото използване трябва да се внимава особено много. Най-използваният браузър в операционни системи с отворен код си остава Mozilla, макар напоследък да се забелязва ускорена миграция към компонентните решения като FireFox. Множество дистрибуции включват този браузър като стандартен пакет и така те включват и хранилището му със сертификати на удостоверители. Доколкото в светът на отворения код дистрибуциите се разпространяват не директно от производителя им, а се предлагат за изтегляне от различни сървъри в Интернет, то потребителят трябва сам да се увери, че е свалил и инсталирал неподменена дистрибуция. Единственият начин да направи това е да провери електронният подпис извършен от производителя върху файловете на дистрибуцията. Тук изникват ведната два проблема:

Един много опасен навик на потребителя е да поставя в хранилището за удостоверителски сертификати на браузъра такива с непроверен произход само и само за да се отърве от съобщенията, които браузъра му подава при посещение на страница със сертификат, чиито удостовеител е неизвестен. Невероятно опасно е да се следват инструкции от типа "за да не виждате предупреждението за използване на неразпознат сертификат, моля инсталирайте сертификата чрез следването на следната хипервръзка". Опасността идва от това, че не се знае кой наистина е издал удостоверителския сертификат. Както ще бъде показано по-долу, това е една от техниките за измама.

 

3. Правилна схема на проверка на удостоверителски X.509 сертификат

Перфектната схема на удостоверяване на сертификат в сертификатния модел X.509 може да се опише накратко чрез следните последователни стъпки:

 

4. Некоректни удостоверители

Некоректни са такива сертификатни удостоверители, които издават безогледно сертификати без надлежна проверка на лицето или организацията, която ще бъде титуляр на сертификата.

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

 

5. "Подхвърляне" на X.509 сертификати

Подхвърлените сертификати са "смъртоносната отрова" за сертификатния модел X.509. За жалост те са често използван похват при атака над различни услуги, най-често разплащания. Целта, с която те се използват, е да се декларира пред браузъра или друг софтуер използващ X.509 сертификати, мним удостоверител. Истината е, че подобна измама минава и пред добре обучени в сертификатния модел потребители, доколкото софтуера не генерира предупреждения при проверката на X.509 сертификатите. Учудващо е, че често тази измама минава пред администратори, чиято задача е преди всичко да внимават какво инсталират.

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

Истината е, че големият ефект от подхвърлен сертификат най-добре се вижда при масовото му подхвърляне на потребителите така, че да се знае, че над определен процент от тях са го поставили в сертификатните си хранилища. Например, много е лесно да направиш страница за безплатно изпращане на SMS и да обясниш на всеки новодошъл в тази страница, че за да може да използва пълната функционалност на сайта и за защита на данните, той трябва да използва HTTPS и за целта трябва да постави в хранилището за сертификати на браузъра си удостоверителски сертификат като следва някаква хипервръзка. Оттук нататък може да се следи колко потребители са изтеглили сертификата и да се направи оценка на заразяването на хранилищата. Ако атаката е обмислена добре, извършващите я могат да изчакат определен период от време за да са сигурни, че имат гарантиран ефект (ще разберат за това като видят, че броят HTTPS сесии е сравнително постоянен, а изтеглянията на сертификата са непропорционално малко). Тогава те могат да пристъпят към атака, като генерират дублирани сертификати на често използвани услуги и извършат IP измама (или DNS измама). При една добре организирана измама, атакуващите могат да произведат сертификат на сървър, който да дублира реално съществуващ сървър за електронно разплащане. Последиците от това са ясни на всички.

 

6. Измама по удостоверителната верига

Сертификатният модел X.509 позволява използването на подудостоверители. За да може да има подудостоверители, техния X.509 сертификат, трябва да е подписан от върховния удостоверител. Така се създава верига на доверие. Върховният удостоверител вярва на подудостоверителя и го упълномощава да удостоверява лица, организции и др. като им издава сертификати. Всеки сертификат издаден от подудостоверител всъщност е облечен в доверието на върховния удостоверител.

Истината е, че моделът X.509 не може адекватно да отчита наличието на увеличаване на вероятността за пробив в удостоверителната система по протежение на веригата. Възможно е (има данни за такива измами) някой от подудостоверителите да издаде поради грешка подудостоверителски сертификат на измамник и той да генерира дублиращи сертификати и да участва в измами основани на дублиране на услуга чрез IP измама или дублиране на потребителска идентификация.

В X.509v3 съществуват v3 разширения, които декларират "дълбочина" на веригата, т.е. колко подудостоверителски нива да има в нея. На пръв поглед това разширение би следвало да препятства неконтролирумото и злонамерено удължаване на веригата на удостоверяване. Реално обаче малко софтуерни продукти се съобразяват със стойността на разширението "depth".

 

Този документ е с OpenPGP подписано съдържание
[информация] [електронен подпис][TimeStamp]

Creative Commons - Признание 2.5 Valid CSS! Valid XHTML 1.0 Strict