Почему государственный HTTPS сертификат это очень вредная и опасная штука

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

Почему государственный HTTPS сертификат это очень вредная и опасная штука, image #1

Кто-то может вспомнить, что пару лет назад в Казахстане уже тоже пробовали продавить государственный HTTPS сертификат, но это вызвало большие протесты и со стороны жителей, интернет-провайдеров, иностранных разработчиков софта и браузеров. И власть там сдала тогда назад.

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

Варианты атак на HTTP и HTTPS

Жил-был нешифрованный протокол HTTP. То, что вы отправляли на условный гугл и то, что гугл вам отвечал, проходило по сети в виде открытого текста. Любой, имеющий доступ к вашему каналу связи (например, ваш интернет-провайдер) мог сделать с этим что угодно - прочитать или даже изменить. И регулярно делал и делает- например, Мегафон внаглую пихает свою рекламу в код незашифрованных веб-страниц. Про это не раз писали в интернетах, например https://pikabu.ru/story/megafon_podmeshivaet_reklamu_na_saytyi_6618814. Я с этим сталкивался лично, когда открыл свой блог через мобильный интернет, и внезапно увидел там рекламу, которой там не должно было быть.

Окей, в ответ на это придумали шифрованный протокол HTTPS. Современная криптография позволяет сделать так, что даже через прослушиваемый канал связи можно установить зашифрованное безопасное соединение. После чего ваш провайдер (и товарищ Майор, стоящий у него за спиной) будут видеть лишь сам факт обращения к веб-сайту, но не смогут ни узнать, что вы там делали, ни модифицировать сообщения.

Казалось бы, все хорошо. Но нет. Если злоумышленник, сидящий в канале связи, может не только читать, но и модифицировать и перехватывать сообщения (а ваш интернет-провайдер имеет для этого все технические возможности), то он может провести так называемую man-in-the-middle атаку.

Злоумышленник не дает вам соединиться напрямую с сайтом, подделывает его ответы и вынуждает соединиться с ним
Злоумышленник не дает вам соединиться напрямую с сайтом, подделывает его ответы и вынуждает соединиться с ним

Вы шлете запрос сайту google.com на установку безопасного соединения. Злоумышленник перехватывает это сообщение и отвечает вам от имени гугла. В итоге вы, ничего не подозревая, устанавливаете зашифрованное соединение не с настоящим гуглом, а со злоумышленником, выдающим себя за него. И в итоге он может читать и менять все ваши сообщения как угодно. При этом пересылая их дальше гуглу, то есть вы сами не заметите разницы, для вас все может работать как обычно, но вот безопасность канала связи будет нарушена.

Чтобы такого не происходило, создана вторая часть безопасного интернета — PKI, инфраструктура публичных ключей.

Сертификаты

В мире есть ряд независимых организаций — удостоверяющих центров, CA (Certificate Authority). Они выдают веб-сайтам некие сертификаты. Что это такое и как оно работает не суть важно, важно что подделать сертификат невозможно, сертификат выдается на доменное имя (например google.com), подписан выдавшей его CA и удостоверяет, что тот кто его предъявил — тот и есть настоящий google.com.

Теперь когда вы пытаетесь открыть в браузере https://mail.google.com происходит примерно следующее:

Ваш браузер: эге-гей, мне нужен mail.google.com

<Кто-то из интернета>: Я mail.google.com, что надо?

Ваш браузер: А не врешь? А ну-ка докажи, что ты именно он.

<Кто-то из интернета>: Вот мой сертификат на доменное имя mail.google.com, выданный организацией GTS CA 1C3

Информацию о сертификате можно просмотреть прямо в браузере
Информацию о сертификате можно просмотреть прямо в браузере

Ваш браузер: Таак, я знаю кто такая эта GTS CA 1C3, это ровные пацанчики, кому попало сертификаты не дают, я им доверяю. Значит все верно, я разговариваю с настоящим google.com, можно устанавливать соединение

Перечень доверенных центров сертификации зашит в вашу операционную систему и в ваш браузер.

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

Подделка сертификатов

Теперь товарищу Майору, чтобы провести атаку man-in-the-middle, надо не просто вклиниться в ваш канал связи, а еще и откуда-то взять сертификат для того сайта, соединение с которым он хочет прослушать, чтобы выдать себя за него.

Сертификат можно создать и самому, технически это очень просто. Но такой самоподписанный сертификат сразу вызовет подозрение у браузера на этапе установки соединения:

Ваш браузер: Докажи что ты google.com

<кто-то из интернета>: Вот мой сертификат на google.com. Выдан TOVARISH MAYOR CA

Ваш браузер: Таак, стопэ, что это за CA такое? Я про такое не знаю. Алярма, ахтунг, поддельный сертификат!!!11!!!1

В итоге вы получите такое вот предупреждение:

Почему государственный HTTPS сертификат это очень вредная и опасная штука, image #4

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

Что же делать бедному майору?

Дальше у товарища майора есть два пути, как избежать появления этого предупреждения, и таки подслушать ваш траффик незаметно.

Вариант 1. Найти какой-нибудь существующий CA и надавить на него, заставив выпустить поддельный сертификат для google.com и отдать его майору.

Проблем тут две. Во-первых, в России просто нет ни одного признанного CA (то есть такого, которому доверяют все ОС и браузеры). Все они находятся за пределами российской юрисдикции, так что ни законами, ни маски-шоу надавить на них не получится.

Во-вторых для CA это огромные риски. Вся PKI и весь бизнес удостоверяющих центров строится исключительно на вере в их честность и неподкупность. Как только просочиться хотя бы слух о том, что какой-то CA выдает поддельные сертификаты — его тут же удалят из списка доверенных все ОС и браузеры, что полностью уничтожит весь его бизнес. За всю историю интернета было несколько подобных случаев, CA оперативно удалялись отовсюду как только про утечку сертификатов становилось известно, несколько примеров есть в вики https://en.wikipedia.org/wiki/Root_certificate

В итоге такой вариант мало реален в текущей российской действительности.

Вариант 2. Завести свою собственную CA в России, которая будет выдавать «правильные» сертификаты кому надо по первому требованию госорганов. Собственно про это речь и идет в письме, и это же пробовали сделать в Казахстане.

Тут проблема в том, что эта CA не будет в списке доверенных в вашем браузере, и по умолчанию подписанные ей сертификаты будут выдавать такое же предупреждение. Поэтому надо ее как-то в браузер добавить. Это можно сделать либо вручную (но для этого надо как-то пользователя в этом убедить или заставить выполнить определенные действия по настройке), либо впарить пользователю свою версию браузера, куда этот CA уже добавлен по умолчанию. Собственно с Яндексом именно это и происходит похоже.

И что будет?

Добавление «государственного сертификата» приведет к тому, что наше правительство и ваш провайдер получат возможность просматривать все ваши зашифрованные соединения незаметно для вас.

Чем это грозит лично вам? Ну, у нас чем дальше тем больше разыгрываются репрессии, блокируются сайты и вводятся ограничения. Без шифрования государству станет гораздо проще контролировать интернет.

Также станет доступна вся ваша личная информация, например данные о платежах при подключении к интернет-банку. И не надо думать, что вы «неуловимый Джо», который никому не интересен. Государству в целом вы может и не интересны, но вот какой-нибудь конкретный нечистый на руку сотрудник провайдера/органов спокойно будет торговать вашими личными данными на черном рынке. Что мы сейчас и наблюдаем с данными от мобильных операторов или всяких государственных систем.

Надеюсь, после моего объяснения стало немного понятнее, что такое государственный CA и почему это очень плохая идея для вашей безопасности и приватности.

473 views·5 shares