Monday, February 20, 2012

Открит е потенциален проблем в SSL сетфифицирането на сайтове

Открит е проблем при SSL сертифицирането на сайтове за защитени връзки. Самият проблем в момента не е особено голям, но има потенциал да стане много сериозен, защото някои хакери могат да си поискат сертификат, и после като си получат сертификата, да проверяват своя публичен ключ дали съвпада с този на някой друг, и ако има съвпадения да злоупотребят с това.

Да погледнем въпроса в детайли... в съставянето на сертификат, за защитена връзка с уеб сайт участва RSA базиран алгоритъм за шифроване на данните по асиметричен ключ, което значи че веднъж когато вие шифровате данните никой освен сървъра не може да ги дешифрова, дори вие. Обменът на данни става на принципа на частният и публичният ключ.

Защитеният обмен на принципа на асиметричното шифроване се състои в следното:

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

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

Когато сървъра ви праща нещо, той го шифрова с неговият частен ключ и вие го дешифровате с вашият публичен ключ.

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

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

До тук картинката изглежда прекрасна нали?

Проблемът идва там че при съставянето на тези двойки ключове за сертификатите на сайтовете, те не се съставят достатъчно произволно, и има много съвпадения между ключове в сертификати, на напълно независими сайтове, и издатели на сертификати, които нямат нищо общо, помежду си, и дори са издавани в различно време. Вече са открити около 7 милиона сайта, със съвпадащи ключове, най-често по 2 или 3 сайта със съвпадащи ключове, което значи че ако вземем за пример:

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

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

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

Чиста проба успешен Man-In-The-Midle, Чиста работа.

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

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.