LINUX.ORG.RU

Проблема доверия центрам сертификации и вариант её решения

 , , , ,


1

2

Как нам всем известно, особенно в свете последних скандалов с АНБ, что использование подписанных сертификатов даже крупными центрами сертификации далеко не исключает возможность атаки MitM. Корень проблемы в том, что при использовании SSL/TLS браузер (и не только) безпрекословно доверяет подписанным сертификатам. Для того, чтобы он доверял, нужно наличие отпечатка сертификата конкретного центра сертификации в браузере или в ОС в качестве корневого. Все сертификаты, подписанные им, автоматически становятся доверенными и валидными (если всё верно с временем действия, именем домена и некоторыми другими, менее существенными параметрами) для пользователя. Т.е., если центр сертификации с дулом у виска и зажатыми в тисках йайцами подпишет подставной сертификат на какой-то конкретный домен (т.е., выпустит с технической точки зрения легитимный сертификат), то его можно будет подсунуть пользователю и совершить атаку MitM. Обнаружить её можно только сверив отпечатки сертификатов, которые внезапно изменились. Но так же может быть и внезапное плановое обновление, запланированное самой компанией (сайтом/сервисом). Это так, очерк проблемы вкратце.

Т.е., уязвимость не технического характера, а чисто из-за человеческой некомпетентности или предательства, так как схема изначально построена на доверии.

//В тексте я периодически мешаю то сайты, то сервисы, то домены. В общем случае, идёт разговор о ПО или сервисе, который использует TLS/SSL шифрование, не обязательно только сайты.

То, что я предлагаю, наверное и не ново, но найти что-то подобное и близкое в этих ваших интернетах я не сумел. Ткните носом, где я ошибаюсь. Всё несет чисто академический параноидальный характер и я надеюсь на поддержку шифропанков и криптоанархистов.

Возьмём к примеру схему распространения публичных ключей GPG/PGP. Есть десятки серваков, куда можно заливать эти ключи, делать поиск и просматривать отпечатки. В данном случае нам не нужна анонимность, наоборот, мы должны раструбить всему миру, что этот отпечаток сертификата принадлежит этому домену. Нам понадобится:

1. Кучи серваков по всему миру, чем больше, тем лучше. Аналог серваков с публичными ключами PGP/GPG. В разных странах, в разных континентах. Туда будут заливаться отпечатки сертификата, предварительно проверив действительную принадлежность домена или сервиса тому, кто заливает сертификат. Это может быть конкретный файл на сервере (в случае веб-сервера), или специфическая запись в DNS, и т.д. Желательно, чтобы это всё можно было автоматизировать, как со стороны серваков с отпечатками, так и со стороны сайта, который хочет обновить сертификат.

2. Тулза для админов, которая позволит одним движением руки пачкой обновить отпечатки сертификатов на кучи серверов, с проверкой принадлежности, и с возможностью отзыва сертификата, и т.д.

3. Клиентская утилита, интегрирующаяся в браузер или в ОС, которая после соединения с сервером проверяет его отпечаток с кучами других серверов, и если выявленно несоответствие отпечатков, то делать то или иное действие. Можно вначале сверить отпечатки только с несколькими «приоритетными» серваками (для более быстрого первого соединения), а дальше продолжить проверки в фоне, кешировать локально результаты и периодически в фоне обновлять, чтобы работа

Если выявлены несоответствия отпечатков, то в зависимости от количества серверов, которые подтвердили или не подтвердили идентичность, делать эвристический вывод: или обнаружена атака MitM, или некоторые сервера с отпечатками дискредитированы, или на некоторых серверах инфа не обновляется, или... В итоге, клиент должен быть в курсе проверки, будь это зеленый значек прошедшего валидацию сертификата, или предупреждение. Инфа с проблемами (опционально и с позволения пользователя) может отправляться владельцам сайтов.

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

Какие я вижу проблемы:

  • Надо базовый список серверов для «бутстрапа», т.е., проверки отпечатков. Он может быть интегрирован в ОС или браузер, и периодически обновляться (кем? как? как исключить исключение неугодных серверов мэнтейнером-злоумышленником?)
  • Более медленное первое соединение с сервером. Дальше результаты проверки кешируются и повторные соединения происходят без оверхеда на проверки.
  • Это потенциально лишит хлеба существующие сертификационные сервисы, которые получают баснословные суммы из воздуха, хотя так же не гарантирующие соблюдения сетевой этики, если на них надавят государства и спецслужбы (ведь неоднократные преценденты были).
  • Нужна простая (и автоматизируемая), но надежная схема подтверждения владельца домена.
  • Проблемы DNS-спуфинга остаются на всех этапах обмена отпечатками.
  • Будет ещё одно решения, которым воспользуются три с половиной шифропанка.

Думаю, что кто-то уже делал нечто подобное в виде плагинов для браузеров - нужно поискать. В остальном все решаемо. Остается вопрос что и как ты будешь сверять без приватного ключа?

Плюс, по-хорошему сертификаты надо тоже подписывать у себя, иначе можно настругать фейков или сверять их с уже скомпроментированным сервером?

gh0stwizard ★★★★★ ()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от gh0stwizard

Буду сверять отпечаток, полученный от конкретного сайта, с отпечатками на 9000 публичных серваках с отпечатками.

Как я говорил, эдакий аналоги серверов ключей GPG. Очень сложно будет подменить отпечатки на всех серверах, чтобы клиент не заметил подмены.

Или другой аналог: представь, что подписывает сертификат не один центр, а несколько десятков или даже больше. Чтобы скомпроментировать сертификат и без привлечения лишнего внимания устроить MitM, понадобится заставить подписать подставной сертификат большую часть центров, что намного сложнее, рискованней.

А если учесть, что центры (серваки с отпечатками) будут в разных странах под разной юрисдикцией, то шанс, что тот же АНБ сможет сделать, всё что захочет, сильно снижается.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от Chaser_Andrey

Вариант первый более простой в реализации. Стать мульти-CA стоит больших капитало-вложений. Таким образом берем сертификаты всех действующих CA + залитый сертификат от пользователя, так? По идее можно даже не заливать и заставлять людей этим заниматься, а запустить zmap/masscan и самим насканить БД.

Попробовать можно :)

gh0stwizard ★★★★★ ()

В решениях подобной сложности всегда можно найти как минимум одну дырку. Тут на первый взгляд их уже несколько, начиная с самой попытки пользования сетями доверия без этого самого доверия к кому-либо.

Сабжевая проблема SSL/TLS решается перекрестным подписыванием, но это никому не выгодно: ни владельцам сайтов, ни спецслужбам, ни самим CA, у которых из-за сопутствующего роста тарифов может резко упасть прибыль. Но в целом это всё равно дешевле и проще, чем имплементить новый велосипед, основанный на дистанционном псевдодоверии.

Кучи серваков по всему миру, чем больше, тем лучше

В тред неявно приходит i2p с pub-ключами в качестве хостнеймов и hosts-сайтами, хранящими карты «ключ.b32.i2p»<=>«хостнейм.i2p», подмена которых толком ничего не дает. Придумать что-либо лучше и надежней тяжело, имхо.

shahid ★★★★★ ()

Глянь на ocsp (ocspd), rfc 2560. Походу уже все решили :)

gh0stwizard ★★★★★ ()
Ответ на: комментарий от gh0stwizard

Т.е., если центр сертификации с дулом у виска и зажатыми в тисках йайцами подпишет подставной сертификат на какой-то конкретный домен (т.е., выпустит с технической точки зрения легитимный сертификат), то...

На этом существование этого CA прекращается, владельцы CA несут многомиллионные (или многомиллиардные?) убытки, причастные идут под суд.
Стоимость такой операции, очевидно, на много-много порядков выше, чем тупо приставить дуло к виску конкретного васи пупкна, против которого вы планируете такой хитрый митм. Датацентр верисайна это знаете ли не то место, куда можно войти со стволом и тисками.

af5 ★★★★★ ()
Ответ на: комментарий от af5

Разных CA много, и не обязательно убеждать владельцев именно того, кто выдавал оригинальный сертификат. Бразуер схавает сертификат, подписанный любым из порядка 150-200 корневых центров. А уж сколько есть вторичных CA сложно представить. Вот статья в тему http://habrahabr.ru/post/88923/

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.