?

Log in

 
 
01 May 2013 @ 10:20 am
Сертификаты и политический сыск  
Месяц прошёл с этого поста и вот вам пожалуйста: шведско-финской конторе под названием TeliaSonera, торгующей сертификатами, Mozilla, авторы Firefox, подумывают отказать в аккредитации и выкинуть их корневые сертификаты из списка доверенных. Причина: недавное журналистское расследование обвинило ТелиаСонеру в вовлечённости в прослушку и перехват траффика авторитарными режимами на территории СНГ – в Беларуси, Таджикистане, и т.д. Дискуссию можно прочесть здесь.

При этом их никто не поймал непосредственно на подписывании липовых сертификатов и вообще на том, что они вовлечены в подслушку именно в качестве CA. В принципе, они – сотовые операторы, которые действуют в этих странах и по местным законам должны предоставлять спецслужбам возможность lawful interception (что вообще-то не является спецификой этих государств – аналогичные законы есть, афаик, повсюду). Но сама ситуация означает конфликт интересов: одни клиенты им платят за заверение своих сертификатов, предназначенных для защиты траффика; другие могут заплатить за перехват этого траффика или даже тупо вынудить, угрожая отъёмом лицензии - причём это тоже будет соответствовать местным законам, если понадобится. В таких условиях доверять CA нельзя.

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

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

Выкидывать сертификаты TrustWave из списка доверенных в Файерфоксе не стали, поскольку те вроде бы повинились и сертификат дочернего CA, предназначенный для перехватов, занесли в черный список (CRL).

Но что во всей этой технологии хорошо, так это то, что каждый участник может самостоятельно решать, кому доверять, а кому нет, не дожидаясь решений Мозиллы или там Микрософта. Посему я на своём компе две данных фирмы забанил нахрен. Делается так:

Для Internet Explorer / Google Chrome:
  • Сохранить корневые сертификаты на локальный диск с этих двух страничек (TeliaSonera, TrustWave), с расширением *.crt. Вот они одним архивом.
  • Запустить certmgr.msc, пойти в “Untrusted Certificates” -–> “Certificates”, и импортировать туда все сохранённые сертификаты. После чего перезапустить браузер.


    Для Mozilla Firefox:
    Пойти в Options --> Advanced --> Encryption --> View Certificates. Найти все сертификаты в этих группах:
  • SecureTrust Corporation
  • Sonera
  • XRamp Security Devices Inc
    Для каждого нажать на “Edit Trust” и сбросить все виды доверия. После чего перезапустить браузер.



    Какой практический вывод можно сделать из всего этого?
    Если вы считаете, что у спецслужб вашей страны есть хорошая причина интересоваться вашим сетевым траффиком - первым долгом узнайте, кто местный CA, найдите у себя его корневой сертификат и забаньте его. В Израиле это StartCom; в России есть несколько фирм, претендующих на роль CA, но ни одной из них в списке доверия Микрософта или Мозиллы нет. Тем не менее, стоит проверить свой браузер, кому он доверяет. Если вы живёте в Беларуси, Таджикистане, Казахстане, Азербайджане, Узбекистане, Грузии или в Непале :-) - забаньте ТелиоСонеру.

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

    P.S. Наиболее впечатливший меня момент из шведского фильма-расследования: нескольких людей, живущих в Азербайджане и голосовавших по SMS за армянскую команду на Евровидении, таскали в полицию, орали и обвиняли в предательстве. Худших последствий для них это не имело, таким прессованием дело и ограничилось - но всё равно внушает, однако! Впрочем, Азербайджану в некоторых аспектах не впервой совершенно пленять воображение.

    P.P.S. Ещё, кстати, штрих к портрету: Россия, Беларусь, Казахстан и Китай запрещают импортировать компьютеры с чипом TPM на борту. Поскольку такой чип используется для хранения неизвлекаемых криптоключей. Мелочь, а сколько говорит!
  •  
     
    Current Music: Amorphis - Majestic Beast
     
     
     
    Добрый самаритянин: waidertrurle on May 1st, 2013 07:34 am (UTC)
    Система глубокого анализа корпоративного траффика требует предоставления компьютерам, сидящим на корпоративной сети, липовых сертификатов. Одним из решений является добавления во все браузеры, принадлежащие корпорации, фиктивной CA, но это для неленивых. Пироблема, да.
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 07:56 am (UTC)
    Для IE, Chrome (и кто там ещё из браузеров использует виндовское сертохранилище?) это делается довольно легко через group policy. Компьютеры должны быть в домейне, естественно.

    digest, помню, писал, как сталкивался с подобным вживую. Да Вы, впрочем, читали. :-)
    Добрый самаритянинtrurle on May 1st, 2013 08:34 am (UTC)
    Я не только рассуждал об этом, но даже нечто подобное имплементировал.
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 08:38 am (UTC)
    Тогда реквестирую подробности. :-)

    То есть с подсовыванием левого CA всё ясно - а что за система занимается подсовыванием на лету? Или она не на лету, а по закрытому списку?
    Добрый самаритянинtrurle on May 1st, 2013 08:50 am (UTC)
    Система занималась глубокой инспекцией входящего траффика на гейтвее, а для того что бы анализировать SSL траффик его надо на гейтвее расшифровать; а для того что бы браузеры внутри видели SSL страницы как SSL страницы, их надо зашифровать обратно - но для того что бы сходились сертификаты, нужен свой, фиктивный CA, рут которого должен признаваться всеми браузерами на корпоративной сети.
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 09:36 am (UTC)
    Нет, это всё понятно - я имел в виду, как происходит процесс перехвата? Допустим, юзер идёт по случайному сайту https://something.somewhere.com - гейт на ходу генерит сертификат с "CN=something.somewhere.com" или "CN=*.somewhere.com"? А как он узнает, что сгенерить надо именно для "somewhere.com", если браузер не использует SNI? Ведь выслать сертификат браузеру надо перед тем, как можно будет расшифровать HTTP-запрос?

    Или можно браузеру подсунуть тупо "CN=*", и он это схавает?
    Добрый самаритянинtrurle on May 1st, 2013 09:49 am (UTC)
    Я, признаться, не понял вопроса - на гейтвее на самом деле стоит HTTP proxy, которое, получив от браузера запрос, сначала выполняет его, анализирует контент, а только потом начинает передавать данные браузеру.
    Стало быть, и сертификат уходит браузеру после того как прокси провзаимодействовало с сервером.
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 10:22 am (UTC)
    Но ведь последовательность действий, афаик, такая:
  • Браузер коннектится на TCP-порт 443 - гейт это соединение перехватывает. SYN, SYN-ACK, все дела.
  • Браузер высылает запрос "Client Hello", который может включать в себя SNI, поле server_name открытым текстом - а может не включать, если браузер старый или параноидальный.
  • Гейт высылает в ответ "Server Hello", включающий в себе сертификат.
  • Браузер его обнюхивает, сравнивает запрошенный хостнейм с указанным в сертификате, и если что не то - выкидывает предупреждение.
  • И только потом браузер высылает шифрованный HTTP- запрос.

    Если SNI используется, то можно на лету сгенерить сертификат на нужный хостнейм, и всё пройдёт гладко. А если нет?

    Впрочем, если по destination IP можно предположить, что за хостнейм запрашивается, то можно и обойтись. Мне как-то в Азриэли пытались нагло подсунуть липовый сертификат на imap.google.com, по-моему там и до сих пор пытаются. :-)
  • Добрый самаритянинtrurle on May 1st, 2013 10:23 am (UTC)
    Ну так с ответами можно и подождать!
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 10:24 am (UTC)
    Кому? :-)
    Добрый самаритянинtrurle on May 1st, 2013 10:25 am (UTC)
    Я уже не помню как это дело решалось - наверное, за счет поля server_name, а параноики оставались без соединения.

    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 10:27 am (UTC)
    Логично. А на другие протоколы, не на основе HTTP - скажем, IMAPS или SMTPS - системка покушалась?
    Добрый самаритянинtrurle on May 1st, 2013 10:28 am (UTC)
    Не думаю, да и зачем? Корпорации проще настроить свой собственный IMAP(S) и анализировать контент там.
    Аудьярт: edinburghaudiart on May 1st, 2013 08:09 am (UTC)
    Спасибо, ценно. Тоже забаню :)
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 08:29 am (UTC)
    Ну на самом-то деле нашим белорусским друзьям это релевантнее, чем тебе или мне. :-) Вряд ли есть серьёзная опасность, что наш веб-траффик перехватит тамошнее КГБ. :-) Хотя если ты, скажем, переписываешься с кем-то в Беларуси с использованием S/MIME, то для снижения вероятности подмены или перехвата мейлов...
    Аудьярт: edinburghaudiart on May 1st, 2013 08:46 am (UTC)
    Или лажу по беларусским сайтам по хттпсу. А у нас вроде провели пару лет назад закон, что все сайты с доменом .by должны хоститься внутри страны.
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 09:47 am (UTC)
    Или лажу по беларусским сайтам по хттпсу.
    Лазаю. :-) Да, тоже верно.

    А у нас вроде провели пару лет назад закон, что все сайты с доменом .by должны хоститься внутри страны.
    Экая феерия. И как они это энфорсить собираются, интересно? Допустим, я админ DNS-зоны третьего-четвёртого уровня, скажем, raz.dva.tri.by, и я хочу создать запись "blog" для IP 12.34.56.78 - от меня что, требуется проверять, относится ли IP 12.34.56.78 к Беларуси? А с алиасами CNAME что - ставить тоже лишь на .by или проверять принадлежность IP сайта?

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

    Ну и ладно, любой оппозиционный сайт разместится вне зоны .by - или идея в том, что отлучение от национального домейна разом нанесёт по оппозиции страшный удар, а использование .com изобличит их как агентов Запада? :-)
    Аудьярт: edinburghaudiart on May 1st, 2013 12:09 pm (UTC)
    Вне зоны .by, насколько я помню, тоже хотели запретить размещать ресурсы, направленные на предоставление услуг на территории Беларуси, или как-то так. С учетом того, как сложно и дорого покупать домены by, я их понимаю - народ массово откочёвывал на всякий by.org :-)
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 12:34 pm (UTC)
    Да и запретили, похоже.

    Но это уже выглядит попыткой сшибать деньгу с предпринимателей, а не давить оппозицию - оппозиции эта мера вроде должна быть пофигу.
    Аудьярт: edinburghaudiart on May 1st, 2013 07:21 pm (UTC)
    Ну, вопрос в том, насколько широко можно трактовать при желании "оказание услуг" - нельзя ли под него, скажем, подогнать новостной сайт, зарабатывающий показом рекламы. Но первичной целью, скорее всего, была именно защита рынка. "Неправильные" сайты и до этого можно было достаточно легко и просто банить, с учетом того, что практически весь доступ в интернет из Беларуси идет через одну госмонополию "Белтелеком".
    Кот Муций: pic#59955957cat_mucius on May 1st, 2013 10:02 am (UTC)
    Кстати, ещё прикол: в Беларусь, а также в Россию, Китай и Казахстан запрещено импортировать компьютеры с TPM-чипом.