Выдадите соседу генеральную доверенность на всё своё имущество? Тогда почему вы делаете это со своим компьютером?

Есть вещи, которые большинство людей устанавливает на компьютер, совершенно не задумываясь о последствиях. Программа, драйвер, обновление, сертификат — если это предлагает банк, государственный сервис или крупная организация, возникает естественная мысль: «Наверное, это безопасно». Но в вопросах компьютерной безопасности такой подход может быть ошибочным. Особенно когда речь идёт о корневом сертификате. Я не говорю сейчас о том, что какой-то конкретный государственный орган, банк или компания обязательно использует сертификат во вред пользователю. Для этого потребовались бы отдельные доказательства. Речь о другом: какие возможности мы технически предоставляем, устанавливая такой сертификат, и можем ли после этого продолжать считать устройство полностью доверенным? И здесь ответ при строгом подходе получается неприятным.

Что происходит при установке корневого сертификата

Если объяснять без специальной терминологии, компьютер имеет собственный список тех, кому он доверяет при установлении защищённых соединений. Когда мы добавляем туда новый корневой сертификат, мы фактически говорим компьютеру: «Этому новому участнику тоже доверяй». Причём это не обычный файл и не безобидная «галочка для Госуслуг». Корневой сертификат становится частью механизма, с помощью которого компьютер определяет, кому можно доверять при установлении защищённого соединения. Именно поэтому к его установке нельзя относиться так же, как к установке, например, шрифта или картинки.

Доверие — это полномочие

Представьте совершенно бытовую ситуацию. Вы выдаёте соседу генеральную доверенность на своё имущество. Он говорит: «Не переживай. Я хороший человек. Я ничего плохого делать не собираюсь». Вы отвечаете: «Хорошо, я тебе верю» — и отдаёте доверенность. Через месяц сосед ничего не сделал. Через год тоже ничего не сделал. Можно ли на этом основании сказать, что вы поступили безопасно? Нет. Вы просто предоставили человеку определённые полномочия, рассчитывая на его порядочность. А теперь представим ещё более интересную ситуацию. Вы выдаёте такую доверенность государственному органу, банку или крупной компании и говорите: «Я доверяю вам, потому что вы государственный орган или банк. Просто обещайте, что ничего плохого не сделаете». С точки зрения безопасности принципиально ничего не меняется. Статус организации не превращает широкие полномочия в отсутствие полномочий. Если у человека есть ключ от вашей квартиры, безопасность вашей квартиры зависит не от того, хороший это человек или плохой. Сам факт наличия у него ключа уже является изменением вашей системы безопасности. С цифровым доверием происходит то же самое.

«Но ведь сертификат никто не использует против меня»

Именно здесь часто возникает логическая ошибка. Говорят: «Ну хорошо, сертификат установлен. Но ведь никто пока ничего плохого не сделал». Это примерно то же самое, что сказать: «Я выдал соседу генеральную доверенность, но он пока не продал мою квартиру. Значит, никакой опасности нет». Для оценки безопасности не требуется ждать злоупотребления. Если человеку предоставлены определённые возможности, они уже существуют. Безопасность должна строиться не на надежде, что обладатель полномочий окажется порядочным, а на том, что у него изначально нет ненужных полномочий. Это один из фундаментальных принципов нормальной защиты информации.

Что может произойти в худшем случае

Если сторонний корневой сертификат используется в соответствующей инфраструктуре, он потенциально может позволить доверенной стороне участвовать в создании доверенных защищённых соединений. Для обычного пользователя это можно объяснить очень просто. Вы открываете сайт банка. Ваш браузер показывает замок и говорит: «Соединение защищено». Но возникает вопрос: от кого именно защищено это соединение? Если в компьютере появился дополнительный доверенный участник, который технически способен участвовать в проверке защищённых соединений, то нельзя автоматически считать, что шифрование защищает вас и от этого участника. В определённых конфигурациях дополнительное программное обеспечение может использовать такое доверие для перехвата и анализа защищённого трафика. А если вместе с сертификатом устанавливается специальная программа, служба или другой компонент, возможности могут быть ещё шире. Поэтому нельзя смешивать две совершенно разные вещи: «сертификат уже используется для слежки» и «установленная система доверия технически позволяет использовать его определённым образом». Первое требует доказательств. Второе определяется технической архитектурой. И для оценки риска второе уже достаточно серьёзно.

Почему особенно настороженно нужно относиться к сертификатам банков

Иногда подобные сертификаты предлагаются не государственными сайтами, а банками, платёжными системами или другими финансовыми организациями. Здесь действует тот же принцип. Фраза «Это сертификат нашего банка, поэтому установите его» сама по себе не является аргументом безопасности. Банк может быть абсолютно добросовестным. Государственный орган может быть абсолютно добросовестным. Разработчик программного обеспечения может быть абсолютно добросовестным. Но безопасность компьютера не должна строиться исключительно на предположении: «Они хорошие люди и обещают ничего плохого не делать». Потому что мы не только доверяем организации. Мы технически расширяем круг тех, кому доверяет наш компьютер. И если завтра изменится программное обеспечение, политика организации, ключи, сотрудники, владельцы инфраструктуры или требования законодательства, предоставленное ранее доверие никуда само по себе не исчезнет.

Почему это важно для шифрованного трафика

Большинство людей думает примерно так: HTTPS = никто не может прочитать мои данные. На самом деле правильнее говорить: HTTPS защищает соединение от тех, кому система не доверяет. А если мы сами добавили нового доверенного участника, ситуация изменилась. В определённых условиях это потенциально может затронуть не только сайты, которые человек посещает, но и содержимое защищённых соединений: сообщения, передаваемые данные, документы, авторизационные сведения и другую информацию. Конкретный объём возможностей зависит от того, что именно установлено и как это настроено. Но принципиальный момент остаётся: если мы сознательно добавили третью сторону в цепочку доверия, мы больше не можем считать её внешней по отношению к нашей системе безопасности.

«Но это же государственный сертификат»

И вот здесь возникает самая опасная подмена. Люди начинают обсуждать не технические полномочия сертификата, а репутацию организации: «Это государство». «Это банк». «Это официальный сайт». «Это сертифицированный продукт». Но безопасность работает иначе. Если вам предлагают установить что-либо с повышенными полномочиями, главный вопрос должен звучать не: «Хорошие ли они?» а: «Что именно я разрешаю им делать?» Потому что человек, который имеет доступ, уже обладает возможностью. А человек, который не имеет доступа, даже при самых плохих намерениях не сможет воспользоваться тем, чего у него нет.

Строгая модель безопасности

Если придерживаться максимально строгого подхода к приватности, принцип можно сформулировать очень просто: Не доверяй тому, кому доверять технически не обязан. И ещё жёстче: Не предоставляй полномочия только потому, что обещают ими не злоупотреблять. Представьте дверь своего дома. Можно поставить обычный замок и сказать: «Ключ есть только у меня». А можно раздать копии ключей соседу, банку, управляющей компании и государственному учреждению, а затем успокаивать себя: «Все они хорошие, поэтому всё нормально». С точки зрения безопасности второй вариант очевидно хуже. В цифровом мире разница просто менее заметна.

Что происходит с телефоном

То же самое относится и к смартфону. Если на телефон устанавливается сторонний корневой сертификат или иным образом расширяется круг доверенных участников, то с точки зрения строгой модели безопасности телефон больше нельзя считать полностью доверенным относительно этого участника. Неважно, Android это или iPhone. Неважно, банк это, государственная структура или коммерческая компания. Неважно, пользовались ли предоставленными возможностями сегодня. Если устройство теперь технически доверяет дополнительной стороне, модель безопасности устройства уже изменилась.

Важнейшее уточнение: что означает «скомпрометирован»

Здесь нужно чётко разделить два понятия. Если мы говорим: «Компьютер взломан, злоумышленник уже читает мои сообщения» — это утверждение о фактическом инциденте. Для него нужны доказательства. Но если мы говорим: «Я установил сторонний корневой сертификат и тем самым предоставил новой стороне доверие, которого раньше не было» — это утверждение о состоянии системы доверия. И именно в рамках строгой модели безопасности этого достаточно, чтобы считать исходную модель безопасности скомпрометированной. То есть слово «скомпрометирована» здесь не обязательно означает: «за мной уже прямо сейчас кто-то шпионит». Оно означает: «Устройство больше не находится в том состоянии доверия, в котором оно было до установки стороннего компонента». Это принципиально разные вещи.

Почему это особенно важно сейчас

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

Главный вывод

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

Компьютер или телефон, в который установлен сторонний корневой сертификат с предоставлением ему доверия, следует считать скомпрометированным с точки зрения модели безопасности и приватности. Это не означает доказанного факта шпионажа. Это означает, что прежней границы доверия больше нет. Именно поэтому вопрос должен стоять не так: «А вдруг они будут за мной следить?» А так: «Зачем я вообще должен предоставлять им техническую возможность это сделать?» В конечном счёте безопасность — это не вера в чужие добрые намерения. Безопасность — это когда даже при плохих намерениях у другой стороны недостаточно полномочий, чтобы причинить вам вред.

Примечание: Если на устройстве есть программа, служба или прокси, которому разрешено использовать это доверие, она может:

  1. Перехватывать HTTPS-соединения — устанавливать отдельное защищённое соединение с вашим браузером и отдельное с настоящим сайтом. Именно так работает TLS inspection: трафик расшифровывается, анализируется и снова шифруется.
  1. Читать содержимое HTTPS-трафика: URL целиком, заголовки, содержимое запросов и ответов, отправляемые и загружаемые файлы. Microsoft прямо указывает эти возможности для TLS inspection.
  1. Видеть данные, которые вы вводите на сайтах, если они проходят через перехватываемое HTTPS-соединение: сообщения, формы, документы, поисковые запросы и т. п.
  1. Перехватывать отправляемые файлы и анализировать их содержимое.
  1. Модифицировать трафик на лету, поскольку посредник получает содержимое до повторного шифрования. Это позволяет не только читать, но и применять правила к содержимому или изменять обработку соединения. Сама архитектура TLS inspection предполагает расшифровку → проверку → повторное шифрование.
  1. Подменять сертификаты посещаемых сайтов для вашего устройства. Например, вместо настоящего сертификата example.com устройство может получить сертификат example.com, подписанный доверенным внутренним CA. Именно поэтому клиенту необходимо установить соответствующий корневой сертификат.
  1. Получать возможность контролировать HTTPS-трафик значительно глубже, чем просто видеть, какой сайт вы открыли. Например, системы TLS inspection используют это для фильтрации URL, проверки файлов и предотвращения утечек данных.