Кивино гнездо: SSL – иллюзия безопасности
АрхивКивино гнездоЕсли вся система доверия к делам в интернете построена на основе единого протокола инфозащиты, то технология эта, казалось бы, должна быть очень надёжной. Реальная ситуация, увы, выглядит совершенно иначе.
Протокол SSL, применяемый для защиты информации в интернете, на сегодняшний день является, по сути дела, главной технологией безопасности, заложенной в основу всей системы доверия пользователей к сетевым операциям. То есть и покупки на сайтах электронной коммерции, и банковские операции через интернет, и просто работа с электронной почтой в безопасном режиме, а также множество других разнообразных сервисов, обеспечиваемых, к примеру, защищённым веб-соединением типа HTTPS и сопровождаемых пиктограммой замочка в адресной строке браузера, – всё это делается на основе протокола SSL.
При этом ни для кого не секрет, что специфические особенности в устройстве SSL уже давно вызывают весьма серьёзные нарекания со стороны специалистов по компьютерной безопасности. Особенно много претензий на сегодняшний день накопилось к той части протокола, что отвечает за выдачу цифровых сертификатов, подтверждающих полномочия и подлинность сторон при организации безопасных коммуникаций.
Такого рода сертификаты содержат в себе свидетельства примерно следующего рода: "Предъявленный открытый ключ принадлежит корпорации amazon.com (или google.com, или mozilla.com и т.д.)". Кроме того, в них могут содержаться и ещё более сильные свидетельства, типа "этому открытому ключу следует доверять, а также он действует как СА (Certification Authority, т.е. Орган сертификации), уполномоченный подписывать сертификаты для других доменов".
Иначе говоря, на основе SSL-сертификатов выстраиваются цепочки взаимного доверия. Чтобы вся эта система работала, браузеры должны доверять большому количеству самых разных органов сертификации. А итоговая безопасность соединений по HTTPS оказывается сильной и надёжной лишь до той степени, до какой можно доверять наиболее слабому звену в этой цепочке из разных СА.
Если же сертификат по той или иной причине скомпрометирован (украден, подделан и т.д.), то якобы "безопасные" соединения становятся лёгкой добычей для так называемых MITM-атак, то есть атак по типу "человек посередине" (man-in-the-middle). Веб-пользователь полагает, что подсоединился к сайту, предположим, банка, а появившийся в адресном окошке замочек подтверждает, что сеанс связи защищен SSL-криптографией – и значит, сайт предоставил необходимый сертификат, подтверждающий его подлинность. На самом же деле сайт может быть лишь фальшивым пересыльщиком, его сертификат – мошенническим, а управляющий им злоумышленник пересылает пароли доступа или платёжные реквизиты в реальный банк от имени обманутых пользователей, получив возможность их обворовывать или просто незримо контролировать их действия.
Массовое распространение MITM-атак вынуждает применять для защиты разные дополнительные меры помимо SSL. Так, в онлайновом банкинге ныне уже повсеместно стали прибегать к использованию одноразовых паролей – из заранее выдаваемых клиентам чеков или рассылаемых на мобильник через SMS. А почтовый сервис Gmail, к примеру, для дополнительного контроля за аккаунтом сообщает своим пользователям, с какого IP-адреса реально происходит вход в почтовый ящик, и ведёт журнал с регистрацией всех таких заходов.
С другой стороны, регулярно появляющиеся в СМИ известия свидетельствуют, что компрометация SSL-сертификатов уже давно стала совершенно обычным делом. Наиболее громким скандалом из этой области в 2008 году стало выявление катастрофической слабости в SSL-сертификатах, выданных дочерним подразделением одного из самых уважаемых CA – корпорации VeriSign. В 2009 был выявлен массовый выпуск мошеннических реквизитов платежной системы PayPal, обманывавших браузеры Internet Explorer, Chrome и Safari на протяжении более двух месяцев. В 2010 разразилась загадочная история с корневым SSL-сертификатом, который был встроен непосредственно в программное обеспечение Mac OS X и Mozilla, но при этом было совершенно неясно, кому именно эти реквизиты принадлежат (в итоге, после долгой заминки, в своём родительстве решилась признаться фирма RSA Security).
Самой громкой и нехорошей историей года нынешнего стала компрометация Comodo, крупнейшего в интернете перепродавца сертификатов. Некоему неизвестному умельцу (или группе злоумышленников), работая с IP-адресов в Иране, удалось тайно добраться до управления серверами СА Comodo и оформить для своих нужд сертификаты, выдающие их владельца за целый ряд известнейших и весьма чувствительных к компрометации сайтов.
Среди скомпрометированных доменов оказались, в частности, такие адреса, как google.com, login.yahoo.com и addons.mozilla.org (последний из этих доменов, к примеру, можно использовать для встраивания троянцев-шпионов в любую систему, устанавливающую новые функциональные расширения для браузера Firefox). Наконец, один из тех сертификатов, что выдали себе злоумышленники через хакнутый сервер Comodo, был оформлен не на конкретное доменное имя, а на "global trustee" (глобально доверяемая сторона). То есть речь идёт о цифровом документе, подтверждающем полномочия владельца как Органа сертификации, а значит, в принципе позволяющем выдавать себя за любой домен в интернете.
Как это получилось
Чтобы разобраться с сутью обрисованной проблемы и понять, почему здесь не видно простых и эффективных решений, для начала будет полезно вкратце вспомнить историю появления и особенности работы всей этой системы.
В начале 1990-х годов, на заре World Wide Web, несколько инженеров компании Netscape разработали протокол для защищённых HTTP-соединений. То, что получилось у них в итоге, стало известно под именем SSL, или Secure Sockets Layer ("протокол защищенных сокетов") – де-факто общепринятый сетевой стандарт для организации безопасного канала связи между сервером и клиентом в веб-сегменте интернета.
Принимая во внимание тот весьма скромный объём познаний относительно сетевых протоколов безопасности, какой имелся у разработчиков по тем временам, можно только поражаться, что SSL прослужил столько лет, сколько он уже служит. Ныне, по прошествии почти двадцати лет, можно констатировать, что протокол SSL оказался на редкость удачной разработкой – особенно при его противопоставлении другим протоколам такой же давности. Но также необходимо признать и то, что за прошедшее время разработчики систем защиты информации очень много чему научились. А стойкость SSL соответственно ныне выглядит для них существенно иным образом.
Говоря в общем, все протоколы безопасности должны обеспечивать три вещи: засекречивание послания (шифрование), его целостность (никаких вставок или потерь информации) и аутентичность (подлинность отправителя / получателя). Если любой из этих элементов взломан, то оказывается скомпрометированным и весь протокол в целом.
По строгим меркам дня сегодняшнего, протокол-ветеран SSL ни одной из этих вещей не делает красиво и элегантно (во многих случаях можно даже сказать, что еле-еле справляется). Однако самой слабой частью SSL, против которой за прошедшее десятилетие было направлено подавляющее большинство реальных атак, следует считать аутентификацию. То есть процедуру подтверждения подлинности сторон, участвующих в сеансе защищённой связи.
Именно здесь центрально важным элементом протокола SSL являются сертификаты сервера, также известные как сертификаты X.509. Когда клиент хочет соединиться с сервером через защищённый канал связи (например, HTTPS), то в исходном процессе "рукопожатия" он запрашивает этот самый SSL-сертификат сервера, подтверждающий его честность и подлинность. Критично важная проблема – откуда такие сертификаты берутся.
В начале 1990-х разработчики SSL для решения этой проблемы выбрали схему с так называемыми Органами сертификации, или, кратко, CA. Эта схема взаимного доверия, однако, изначально разрабатывалась для систем совсем других, куда меньших масштабов, нежели интернет. Но выбор был сделан, Сеть развивалась так, как развивалась, а в результате этого процесса все мы ныне так и застряли на этом решении. Хотя и прошла уже куча времени с того момента, когда система коммуникаций в интернете сильно переросла те масштабы, для которой первоначально задумывалась схема CA.
По этой причине ко всей этой системе Органов сертификации среди специалистов уже давно характерно отношение, скажем так, не очень хорошее. Правда, поначалу раздражали главным образом неадекватные цены на сертификаты, установленные CA, так что доминирующей характеристикой системы были слова "полное обдиралово". В последние же годы, когда новости об очередной серьёзной компрометации СА стали совершенно обычным делом, та же самая характеристика трансформировалась к виду "полное обдиралово, да ещё к тому же и небезопасное".
В итоге, по состоянию на сегодняшний день, уже отовсюду раздаются настойчивые голоса о необходимости замены в протоколе SSL того явно неадекватного элемента, что отвечает за аутентификацию сторон. Однако при этом в предлагаемых альтернативах нередко просматривается схема, грозящая совершением той же самой ошибки, но уже по второму разу.
Разные взгляды на проблему
Безусловным шагом вперёд к решению проблем SSL является то, что ныне в сообществе уже имеется общий консенсус о непригодности существующей системы СА применительно к современным условиям. Но хотя практически все и согласны, что явно назрела необходимость разработать нечто иное, такого же согласия и близко нет в оценке того, что именно здесь является сутью проблем. Основные различия во взглядах выглядят примерно так.
Согласно одной – наиболее распространённой, наверное – точке зрения, Органов сертификации развелось чересчур много. Специалисты организации EFF, не так давно просканировавшие интернет на данный предмет, установили, что в Сети ныне насчитывается свыше 650 разных организаций, уполномоченных подписывать сертификаты. Для кого-то такие цифры сами по себе выглядят довольно большим количеством, неизбежно чреватым проблемами – от бесконтрольной нечистоплотности в делах до регулярных сбоев при массовых отзывах скомпрометированных сертификатов.
Те, кто выступает против столь механистического подхода к проблеме, тут же напоминают о не столь уж давних временах, когда орган, выдающий сертификаты, был вообще на всю Сеть один. Из-за чего и вёл себя как монополист, заламывающий за свои услуги любые цены и ни с кем не считающийся. Такая ситуация, естественно, не нравилась практически никому (начиная с тех же правозащитников из EFF), и была приложена масса усилий для увеличения численности разных СА.
В частности, немало было сделано для того, чтобы не только почтенные корпорации, но также такие ведомства, как, скажем, DHS, то есть Управление госбезопасности США, правительство Китая или российская ФСБ тоже могли иметь свои собственные СА в этом списке доверяемых органов. Понятно, что это было разумно. Но понятно и то, что если исключительно такие вот структуры сделать единственно валидными органами сертификации (а такая идея звучит ныне весьма настойчиво), то в итоге множество людей и негосударственных структур останутся весьма недовольными. С одной стороны, количество CA в списке валидных органов станет небольшим, но с другой стороны, слишком многие люди имеют основания относиться к государству с недоверием.
Другой взгляд на проблему сводится к тому, что какую бы длину ни имел список СА, там всегда обнаруживается несколько "гнилых яблок". Иначе говоря, всегда найдётся несколько вполне достойных уважения и доверия СА, а множество прочих СА, заведомо сомнительных и не вызывающих никакого доверия, надо эффективно отсеивать.
Насколько сложнее в реальности выглядит картина с разделением СА на "хороших" и "плохих", что не так давно было продемонстрировано в исследовательской работе Криса Сохояна "Сертифицированная ложь". Как установил и продемонстрировал этот американский исследователь, даже в те времена, когда на всю Сеть имелся лишь один-единственный орган сертификации, VeriSign, в этой корпорации тайно работала особая сервисная линия, специализирующаяся на услугах "прослушивания". По сути дела, та же самая организация, которой интернет-сообщество доверило обеспечивать сетевые коммуникации, защищённые от перехвата, имела в своем составе спецподразделение, которое продавало услуги этого самого перехвата. Иначе говоря, по состоянию на сегодняшний день никто не может назвать хотя бы один такой орган CA, который гарантированно не оказывал бы никакой из заинтересованных сторон тайных услуг "прослушки".
Согласно третьей точке зрения, корень проблем с SSL в том, что слишком нечётко разграничены полномочия СА. Если сформулировать позицию чуть иначе, американский орган типа DHS в принципе не должен иметь возможности подписывать сертификаты для китайских или, скажем, российских сайтов. Как и наоборот, ясное дело.
Для множества людей, однако, и такая позиция представляется слишком далёкой от идеала. Потому что даже в тех же США найдётся немало веб-пользователей, которые вообще не доверили бы DHS подписывать сертификаты любых сайтов интернета, за исключением разве что собственных сайтов спецслужбы. В других же странах, особенно с авторитарными режимами правления, про дефицит доверия народа к власти и так всё понятно.
Короче говоря, пока что о ясности с тем, где сосредоточен корень "проблем доверия" к SSL, говорить не приходится. А это означает, что и путь к оптимальной корректировке общепринятого протокола защиты ещё далеко не однозначен. Но в любом случае имеет смысл осознавать, что пиктограмма замочка в адресной строке вашего браузера, как и вообще SSL в его сегодняшнем виде, – это не более чем иллюзия безопасности. А уж как от этой иллюзии удастся избавиться, покажет только время.