Страницы

То, о чём все знают..

Безопасность интернета основана на https. Надежную защиту каналов связи, на которую опирается вся коммерция, почта, социальные сети и т.д., удалось построить благодаря инфраструктуре открытых ключей (PKI). На каждом клиентском девайсе существует жестко зашитый перечень удостоверяющих центров, сертификатам которых наше устройство верит и разрешает подписывать защищенные вебсайты. Если вдруг кто-то захочет перехватить ваш трафик и устроить MITM атаку - браузер тут же вас предупредит.



Вот например сертификат Гугла выдан GeoTrust'ом.
Мы верим Гуглу, потому что мы верим GeoTrust'у (WinKey+R -> certlm.msc -> Enter)
Если вдруг злоумышленник подпишет его своим собственным сертификатом, то мы увидим вот такое сообщение:


Но что будет, если сайт https://mail.google.com в один прекрасный день будет подписан сертификатом другого доверенного корневого Центра Сертификации?
А ничего!

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

Современные браузеры реализуют технологию public key pinning - фиксация открытых ключей распространенных вебсайтов (например, google.com). Однако если в локальном хранилище сертификатов имеется пользовательский сертификат корневого CA, то защита отключается...

В перечне доверенных корневых центров на моём windows 8 на данный момент 43 сертификата. Кроме массы американских компаний, там есть еще .. Правительство Нидерландов.
В хранилище доверенных сертификатов Android много интересного. Например сертификат Правительства (какого не уточняется...).


Если открыть перечень доверенных корневых CA iOS, то там вы найдете Правительство Японии,
Правительство Китая, 

пять сертификатов Правительства США (в том числе сертификат DoD)...

и многое многое другое...

Т.о. имея доступ к одному закрытому ключу из сотен подходящих, можно организовать локальный перехват всего шифрованного трафика путем подмены сертификата на сертификат нужного УЦ. Этим часто пользуются разработчики DLP систем и службы корпоративной безопасности, когда добавляют с помощью групповой политики на ПК пользователя собственный сертификат и подписывают все защищенные соединения с его помощью. Под это есть даже специализированные скоростные железки (гражданская версия, есть и спец.версия для государственных заказчиков), способные работать с большими объемами трафика.

Часть приложений (например браузеры Chrome, Firefox) могут правда обнаружить подмену с помощью public key pinning. Гугл в таких случаях вывешивает окошко-предупреждение о "атаках, проспонсированных государством".
Но это не всегда и не на всех платформах срабатывает.

Поэтому чтобы нашим спецслужбам получить доступ к facebook или gmail достаточно просто где-нибудь раздобыть закрытый ключ какого-нибудь коммерческого удостоверяющего центра из списка доверенных УЦ, либо добавить на компьютер пользователя свой сертификат (договорится с Microsoft) и обновить ПО на СОРМах :)

5 комментариев:

  1. Товарищ, Вы такой умный, особенно по поводу "достаточно просто где-нибудь раздобыть закрытый ключ какого-нибудь коммерческого удостоверяющего центра из списка доверенных УЦ". Удачи в этом нелегком деле.

    ОтветитьУдалить
  2. Так ведь уже было такое - раздобывали, название УЦ не помню точно.

    ОтветитьУдалить