?

Log in

No account? Create an account
Про PKI - Журнал Восставшей Машины [entries|archive|friends|userinfo]
ArkanoiD

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Про PKI [Oct. 11th, 2010|03:03 pm]
ArkanoiD
[Tags|, , ]

Не знаю, для кого я это пишу. Мне кажется, что те, кто знает основы функционирования инфраструктуры публичных ключей и так в курсе, а остальным это неинтересно и непонятно. Однако, vitus_wagner меня спровоцировал на этот пост своим утверждением, что концепции PKI не укладываются у людей в голове и сурово осуждал использование самоподписанных сертификатов, как следствие этого. Так что этот текст для тех, кому лень было читать мой whitepaper и кто не следит за проектом EFF "ssl observatory".

Ну-ну. Итак, что я имею сказать? Прежде всего, увы, очевидные концепции PKI были не то чтобы неочевидны, а скорее злостно проигнорированы два раза. В первый раз -- при проектировании применения X509 для веба. Второй раз -- при реализации в веб-браузерах. (Из зала тут подсказывают, что задача "сделать нормально" изначально не ставилась, изначальная формулировка была ближе к "обеспечить компании RSA Data Security безоблачное будущее"). В результате был построен чудовищный карточный домик.

Проблема с архитектурой: отсутствует разделение зон доверия. Все верят всем. То есть, при существующей схеме, количество организаций, способных продделывать ЛЮБОЙ (а в этом и есть фатальная уязвимость, можешь построить "цепочку доверия" до известного корневого сертификата -- тебя не ограничивает НИЧТО) сертификат не поддается никакому учету и растет экспоненциально. Я не буду вдаваться в подробности возможных технических уязвимостей (короткие ключи, слабые хэш-функции), уязвимости организационные на настоящий момент гораздо опаснее. Ford Motors, Yandex, NSA или безвестный аллахакбар-телеком из Эмиратов, которому посчастливилось получить сертификат промежуточного удостоверяющего центра могут подделать любой сайт в Интернете. И все это при том, что в рамках технологии x509v3 ввести разделение зон доверия (этот подписывай только в своем домене, этот -- только в своей стране и т д) можно было на раз-два. Но никому же не хотелось морочиться..

Проблема с реализацией: естественно, что при таком бардаке, что бы там себе ни думал Витус, гораздо эффективнее модель доверия по схеме PGP -- получил публичный ключ -- сохрани, запомни, присвой ему статус доверия согласно личным причинам доверять или не доверять. Как проект monkeysphere рекомендует, например. Повторюсь, опять же, стотысячный раз: пользователю абсолютно плевать, принадлежит ли домен "odnoglazniki.ru" ЗАО "Одноглазники". Ему важно подтверждение того, что сайт на который он зашел утром и сайт, на который он зашел вечером -- один и тот же. Но не тут-то было. Доблестные авторы браузеров сделали ВСЕ, чтобы сообщения об ошибках были максимально бессмысленны, пугающи, не позволяли реально оценивать степень риска и соответственно, игнорировались пользователями тотально.

Кстати, насчет аллахакбар-телекомов. Есть такой Etisalat в Эмиратах. Вот они дали джазу отлично: подключенным к ним владельцам Blackberry под видом апдейта прошивки подсунули троян, который крысит переписку, да еще и чудовищно сажает батарейку при этом. У этого Этисалата тоже есть сертификат удостоверяющего центра. EFF требует у Веризона, который подписал им этот сертификат, отозвать его. Веризон даже до ответа не снизошел. Выкорчевать гнилое дерево Verizon/Cybertrust при отсутствии официальной реакции, как, НЕСОМНЕННО, нужно было бы сделать в течении максимум месяца, пороху у Mozilla, например, явно не хватит, а остальные и не заморочатся.

Во избежание разночтений, следует отметить нюанс: речь идет об утрате доверия к организации, а не сертификату УЦ. Spyware было подписано другим УЦ и это скорее проблемы Blackberry.

Да и отзыв сертификатов в его нынешнем виде не очень-то работает. Но это уже технические детали.

Что, как лечить? Проблемы реализации хоть как-то можно скорректировать клиентским софтом хотя бы в корпоративной среде, я этим занимаюсь, в частности. Проблемы разделения доверия -- сложнее. Я связался с проектом SSL Observatory и надеюсь, что смогу придумать, как на основе данных "картографирования" сделать хоть какие-то эвристики, ограничивающие это "безграничное доверие" на основе существующих де факто связей.

И на закуску: в комментах у Шнаера я был поражен тем, что люди ставят в зависимость от этого карточного домика свою КОРПОРАТИВНУЮ ключевую инфраструктуру. Хотя казалось бы, нет и не может быть ни одной разумной причины, зачем доверять "всему Интернету" ключи от собственной входной двери. Оказывается, БОЛЬШАЯ часть системных администраторов или тупо не понимает, что этого делать не следует, или считает настройку софта, исключающую подобные ситуации, слишком сложной. Кстати, говорят, в некоторых смартфонах от доверия конкретных приложений или даже доступа к wifi публичным рутам так просто и не откажешься.
linkReply

Comments:
From: pustota1
2010-10-11 11:08 am (UTC)
А откуда дровишки про Etisalat?
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-11 11:13 am (UTC)
Да ты чо, известный скандал, гуглится по Etisalat spyware :-) Лично я у Шнаера увидел.

Edited at 2010-10-11 11:14 am (UTC)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: legolegs
2010-10-11 11:22 am (UTC)
Когда в университете нам рассказывали про идею этих сертификатов (а я уже до того был знаком с PGP) я никак не мог понять: то ли я то-то не понимаю, то-ли система дурацкая. Теперь вроде забрезжил свет понимания, спасибо.
(Reply) (Thread)
[User Picture]From: _slw
2010-10-11 11:26 am (UTC)
Кстати, говорят, в некоторых смартфонах от доверия конкретных приложений или даже доступа к wifi публичным рутам так просто и не откажешься.
не пропарсил.
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-11 11:30 am (UTC)
Если сертификат WiFi сети подписан от публичного CA, очень сложно объяснить, что не надо такую сеть считать доверенной и искать в ней свой radius чтобы выложить там свои пароли.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: mcmurphy
2010-10-11 11:35 am (UTC)
Очень познавательно. В очередной раз убедился — если непонятно, зачем это наворочено, значит внутри скрыта какая-то хрень.
(Reply) (Thread)
[User Picture]From: msh
2010-10-11 12:14 pm (UTC)
Ну так уже всем стало очевидно, что построенная для веба инфраструктура сертификатов - это fail. Поэтому на нее плюнули и ввели поверх нее новую - EV ;-)
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-11 12:26 pm (UTC)
Которая тоже fail и отличается только размером песочницы, потому что первая стала слишком большой.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: Aceler [aceler.ru]
2010-10-11 12:20 pm (UTC)
> Ему важно подтверждение того, что сайт на который он зашел утром и сайт, на который он зашел вечером -- один и тот же. Но не тут-то было. Доблестные авторы браузеров сделали ВСЕ, чтобы сообщения об ошибках были максимально бессмысленны, пугающи, не позволяли реально оценивать степень риска и соответственно, игнорировались пользователями тотально.

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

Кстати, почтовый клиент в Symbian тоже прекрасно выводит предупреждение о недействительном сертификате и не позволяет хотя бы запомнить его в лицо.
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-11 12:51 pm (UTC)
Угу.

На симбиане я, кстати, почтовый сертификат успешно импортировал, и в imap и в mfe.
(Reply) (Parent) (Thread)
[User Picture]From: molly_chan
2010-10-11 01:58 pm (UTC)
То что с сертификатами произошел epic fail - понятно. Но почему организации, которые заинтересованы в том, чтобы их клиенты и потенциальные клиенты были уверены, что этот сайт принадлежит ООО "Компания" не распространять как-то свой сертификат? Типа брать там, удостоверится там, позвонить туда, выслать на почту...
(Reply) (Thread)
[User Picture]From: msh
2010-10-11 02:11 pm (UTC)
Потому что построение канала распространения - дорогая задача и не окупается для большинства применений. Брать там - как удостовериться что "там" - это все еще "там"? Позвонить "туда" - куда? Выслать на почту - а как проверить кто конкретно это выслал?

PKI и является попыткой решить задачу распространения сертификата с приемлимой ценой
(Reply) (Parent) (Thread)
[User Picture]From: vit_r
2010-10-11 06:11 pm (UTC)
А как в этом кюче выглядит деятельность http://www.cacert.org/ ?
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-11 06:17 pm (UTC)
Да ничем не отличаются от любого root CA, только бесплатные. Так что это скорее плюс.
(Reply) (Parent) (Thread)
[User Picture]From: lugoblin
2010-10-12 03:16 am (UTC)
> скорректировать клиентским софтом хотя бы в корпоративной среде
О чём речь? Запретить весь внешний SSL и аккуратно вести белый список фингерпринтов?
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-12 12:26 pm (UTC)
Не запретить, а управлять. Списки можно вестии белые и черные и ограничивать действие любого УЦ.
http://www.nobunkum.ru/issue002/ssl
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: kzh7
2010-10-12 09:44 am (UTC)
У финов в блоге недавно было расследование относительно сертификатов использованных для подписи троянов. Смысл сводился к обзваниваю компаний, чьими сертификатами были подписаны найденные трояны. Обычно разговор происходил по такому сценарию:

-Алё. Здравствуйте. Меня зовут Микко, я из антивирусной компании, меня интересует как вашей подписью может быть подписан троян.
- Чо? Какой троян? Какой антивирус? Мы тут обувь шьём!

Ну и т.д.

http://www.f-secure.com/weblog/archives/00002017.html
(Reply) (Thread)
[User Picture]From: xsaper
2010-10-13 09:40 pm (UTC)
На прошлой неделе видел сайт, у которого сертификат по цепочке доходил до какого то знаменитого CA (VeriSign, GlobalSign, etc). Так вот в промежутке был сертификат предназначенный для подписывания кода, но им как то удалось подписать сайт и IE пустил на него с предупреждением (2 зеленых щита из 3-х кажется).
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-13 09:47 pm (UTC)
Феерично, можешь вспомнить сайт?
(Reply) (Parent) (Thread)
[User Picture]From: irsi_ro
2010-10-20 01:59 pm (UTC)

Вот недавно перечитал мессагу от тормозилы...

Это соединение является недоверенным
Вы попросили Firefox установить защищённое соединение с 192.168.20.1, но мы не можем гарантировать, что это соединение является защищённым.
Обычно, когда вы пытаетесь установить защищённое соединение, сайты предъявляют проверенный идентификатор, служащий доказательством того, что вы направляетесь в нужное место. Однако идентификатор этого сайта не может быть проверен.
Что мне делать?
Если вы обычно без проблем соединяетесь с данным сайтом, эта ошибка может означать, что кто-то пытается подменить этот сайт другим. В этом случае вам не следует продолжать соединение.
Технические детали
192.168.20.1 использует недействительный сертификат безопасности.
К сертификату нет доверия, так как он является самоподписанным.
Сертификат действителен только для EMC Storage_storage
(Код ошибки: sec_error_untrusted_issuer)
Я понимаю риск
Если вы понимаете что происходит, вы можете попросить Firefox начать доверять идентификатору данного сайта.
Даже если вы доверяете этому сайту, эта ошибка может означать, что кто-то вклинивается в ваше соединение с сайтом.
Не добавляйте исключение, если вы не знаете о веской причине, по которой этот сайт не использует доверенный идентификатор.

Вот такая мессага... Я не полный лох в данных вопросах, но сразу вспомнились "Физики шутят" - вы не могли бы повторить еще раз?
Ну что говорить о том что НИ ОДИН "обычный" пользователь ну нихуя не понял чего от него хотят...
(Reply) (Thread)
[User Picture]From: golosptic
2010-10-21 02:48 pm (UTC)
Ты б проявился, как будешь в МСК?
Надо.
(Reply) (Thread)
[User Picture]From: arkanoid
2010-10-21 02:52 pm (UTC)
Ты у меня по-моему из жабера выпал, переавторизуйся?
(Reply) (Parent) (Thread)