Как это получилось
Чтобы разобраться с сутью обрисованной проблемы и понять, почему здесь не видно простых и эффективных решений, для начала будет полезно вкратце вспомнить историю появления и особенности работы всей этой системы.
В начале 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 является то, что ныне в сообществе уже имеется общий консенсус о непригодности существующей системы СА применительно к современным условиям. Но хотя практически все и согласны, что явно назрела необходимость разработать нечто иное, такого же согласия и близко нет в оценке того, что именно здесь является сутью проблем. Основные различия во взглядах выглядят примерно так.