Чуть более пяти лет назад, в декабре 2019 года, я опубликовал на dxdt.ru небольшой текст про перспективы квантовых компьютеров в разрезе прикладной криптографии: “Постквантовый мир прикладной криптографии“. “Хайп” про квантовые компьютеры был уже тогда, пусть и меньше, чем сейчас.

Что поменялось за прошедшие пять лет? Самое главное – не поменялось: универсальных квантовых компьютеров как не было пять лет назад, так и сейчас нет, даже близко. Тут просто ничего не изменилось. Даже “хайп” начал спадать (под давлением AI/LLM, возможно).

В первом абзаце записки из 2019 года отмечено: “рассказывать-то нужно о том, что постквантовый криптографический мир наступит раньше, чем будут созданы опасные квантовые компьютеры (если их вообще создадут)”. Вот уж где сработал неожиданно быстрый технологический прогресс, так это тут: постквантовыми криптосистемами сейчас уже защищёна заметная доля TLS-трафика в вебе – поскольку в 2024 году соответствующие криптосистемы внедрены в современные браузеры; и это касается не только TLS – криптосистемы с постквантовой стойкостью поддерживаются и в SSH, и в других протоколах; TLS лишь взят как пример с большим количеством трафика (видео и пр.). Естественно, далеко не всё ещё понятно со стойкостью предложенных постквантовых криптосистем, но это обычное дело.

Посмотрим на другие моменты. Ниже – некоторые цитаты и комментарии к ним.

“Например, когда говорят о задаче криптографии с открытым ключом, речь идёт об алгоритме Шора”.

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

“Считается, что время ещё есть, но криптосистемы с открытым ключом, обладающие стойкостью к криптоанализу на квантовом компьютере, хорошо бы получить заранее”.

Именно этот подход сейчас и применён на практике – постквантовые криптосистемы внедрены сильно заранее.

“NIST уже несколько лет выполняет программу по выбору постквантовых криптосистем”.

В результате этой программы в августе 2024 года стандартизованы практические криптосистемы. Опять же, что касается криптосистем и данных стандартов, то тут есть и криптологические оговорки, и тонкости, даже выдвинуты весомые замечания методологического характера, но одно ясно точно: в области создания универсальных квантовых компьютеров – не определены ещё и способы физической реализации кубитов.

“Более вероятно, что к моменту создания этого самого компьютера – постквантовые криптосистемы уже давно войдут в практику. Или даже так: постквантовые криптосистемы уже будут широко использоваться, а подходящий для взлома 1024-битной RSA квантовый компьютер всё ещё будут пытаться построить”.

Как бы там ни было, но пока что всё идет к реализации прогноза: постквантовые криптосистемы стандартизовали и начали внедрять на практике, уже не как эксперимент; квантовые компьютеры, подходящие, – в теории! – для атак, всё ещё находятся на стадии “возможно, что-то более практическое сможем выяснить по результатам следующего эксперимента, если текущий эксперимент завершится успешно”.

“Тем не менее, на данный момент, массово внедрённых постквантовых криптосистем с открытым ключом – нет. Существуют только экспериментальные варианты”.

Пять лет спустя – есть такие, массово внедрённые, криптосистемы: см. выше про ML-KEM в Chrome, например. Это очень быстро, по меркам данной области.

“Скорее всего, на практике будет использован тот или иной вариант криптосистемы на эллиптических кривых”.

Пока не сбылось, к сожалению: первыми массово внедрёнными стали криптосистемы “на решётках”, как их принято называть сейчас. Но ещё может сбыться позже. Посмотрим.

“Третья фундаментальная часть практической криптографии – симметричные шифры — не столь подвержена квантовым атакам”.

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

“Первыми будут вводиться в строй криптосистемы, позволяющие получить общий секрет (распределение ключей). […] Не предполагается быстрый переход исключительно на постквантовые системы. Напротив, их будут вводить в качестве дополнительного инструмента, работающего вместе с классическими, хорошо проверенными”.

Именно так и сделано (но это, конечно, довольно очевидный вариант): ML-KEM – схема для распределения ключей, в браузерах для TLS внедрена в составе “гибридов” с классическими X25519 и ECDH.

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

(Кстати, вот ещё тематически близкая записка – про кванты и квантовую криптографию с компьютерами.)



Комментировать »

Складывается впечатление, что корпорации-разработчики разных LLM и “графических” “моделей” (то есть, систем, которые генерируют картинки по вводу пользователя), показывая всё более качественные тексты, всё более качественные изображения и даже видео с элементами “интерактивности”, начали активно предлагать результаты там и тут, на разных направлениях реальной разработки, в роли полезного инструмента: инструмент, мол, годится если не для создания рабочего продукта, то хотя бы для быстрой подготовки прототипов, например, для видеоигр.

Но те, кто в охватываемой области работает непосредственно, отвечают: “Спасибо, конечно, но мы начинаем разработку с простых схем и сценариев, нам не нужны детальные “видеопрототипы” того, что мы не знаем как сделать; не подходят подобные инструменты”. Или: “У нас задача – понимать, какие физические ресурсы для чего могут быть реально использованы, а не создание “броского” текста, описывающего, какой ожидается результат”. Или даже так: “Мы проектируем игровую механику на уровне логики “движка”, нам для этого не нужно интерактивное видео сгенерированного игрового пространства, которое к “движку” не имеет отношения”. Впрочем, для массового “кодинга”, похоже, пока что не очень применимы данные возражения.



Комментировать »

Немного о статусе постквантовой криптографии в TLS. Постквантовые криптосистемы обмена ключами для TLS планируется поддерживать только в TLS 1.3. По крайней мере, так сейчас выглядит тенденция: скорее всего, TLS 1.2 сперва “заморозят”, а потом, достаточно скоро, объявят нерекомендуемым, как уже сделано в RFC 8996 для версий 1.0, 1.1. Обратите внимание, что в RFC прямо сказано: “MUST NOT be used” – в терминах этих документов MUST NOT именно и означает, что строго запрещено использовать, без вариантов. Конечно, если ваше приложение соответствует данному RFC – так-то все спецификации носят рекомендательный характер.

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

Именно стройная логика установления соединения теперь и позволила прозрачно добавить в TLS 1.3 криптосистемы обмена ключами с постквантовой стойкостью. Версия 1.3 полностью несовместима с 1.2, даже на уровне описания процессов, но зато в 1.3 убрано очень много невнятных нагромождений из “дополнений, расширений и уточнений”, которые характерны для 1.2. Конечно, в 1.3 есть свои невнятные моменты – например, трактовка значения “исторических” номеров версий в заголовках TLS-записей, – но, пока что, объём этих недостатков не существенен.

Технически, принести постквантовые криптосистемы можно и в TLS 1.2 – там достаточно механизмов для расширения протокола. Но смысл в поддержке TLS 1.2 можно найти только такой, что сохраняется совместимость со старыми программами и средами, которые невозможно обновить. Однако, если исходить из этого, то не стоит ожидать и добавления реализаций постквантовых криптосистем в эти программы и среды. При этом, TLS 1.3 лучше со всех сторон, – в том числе, в плане программной реализации, – поэтому продолжать тянуть ещё одну версию, за вычетом требований исторической совместимости, несколько странно. Да, можно предположить, что если вдруг в 1.3 обнаружится какой-то удивительный и фатальный архитектурный дефект, то использование 1.2 позволит избежать одномоментного обвала всего и вся. Но на уровне протоколов TLS – это сильно вряд ли, а учитывая архитектурную выверенность TLS 1.3, что-то подобное скорее произойдёт с 1.2. А вот поверить в какие-то дефекты распространённых реализаций – нетрудно. Но, опять же, не факт, что поломается именно 1.3, в котором меньше мест, где можно споткнуться. Поэтому-то развитие, в виде добавления постквантовых криптосистем, и относится только к 1.3.



Комментировать »

Постоянно тиражируются странные утверждения про “суперпозицию” и “мощность квантовых компьютеров”. Вот свежий пример: в небольшой справке по квантовым “оборонным технологиям” для штатовских конгрессменов написано, что термином “суперпозиция” обозначается “способность квантовых систем существовать в двух или более состояниях одновременно” (оригинал: “Superposition refers to the ability of quantum systems to exist in two or more states simultaneously”). Дальше из этого ошибочного определения выводится, что если классический компьютер кодирует информацию в битах, “которые представляют двоичные состояния нуль и единицу”, а квантовый компьютер – использует кубиты, которые могут быть и нулём, и единицей, и комбинацией нуля и единицы одновременно, то мощность квантового компьютера “увеличивается экспоненциально с добавлением каждого кубита” (буквально: “Thus, the power of a quantum computer increases exponentially with the addition of each qubit”).

Суперпозиция – это не про одновременное пребывание “в двух состояниях”, а про вероятности (специальные): состояние-то там, очевидно, одно. Причём, за квантовыми вычислениями, как концепцией, как раз и стоит именно представление о том, что значения вероятностей в квантовых состояниях “интерферируют” особым образом и можно, правильно устроив преобразование, максимизировать вероятность полезного исхода измерения. То есть, грубо говоря, эти квантовые состояния можно “складывать”, а когда они “складываются”, то вероятности эти преобразуются и могут сокращаться, уничтожая, таким образом, ненужные для вычисления вероятности и “усиливая” нужные. Тут, конечно, не нужно забывать, что речь о потоке вероятности, а не о привычных “процентах”, но это уже технические детали.

Ну и что касается второй части, то с добавлением каждого кубита – экспоненциально, как минимум, растёт количество классических вычислительных ресурсов, нужных для того, чтобы численно с высокой точностью моделировать получающуюся систему. Факт – каждый может проверить. А вот прямо транслировать этот эффект в обратную сторону, хоть такая трансляция и есть ещё одна концептуальная основа квантовых вычислений, пока не очень получается, если это вообще возможно: иначе квантовый компьютер, даже теоретический, был бы сразу быстрее на любых алгоритмах и задачах; следовательно, не потребовалось бы изобретать алгоритмы квантовые и предлагать надуманные “квантовые задачи” для, гипотетической, демонстрации “квантового превосходства”.



Комментировать »

В теоретической математике существует немало открытых проблем, которые пусть и не известны широкой публике, но всё же “широко известны среди специалистов”, то есть, достаточно знамениты, поскольку есть канонические списки (“Коуровская тетрадь” и др., не важно). Для заметной части из этих проблем и связанных задач можно было бы отыскать контрпримеры (и даже просто – примеры), используя современные возможности по оптимизированному перебору текстов компьютерных доказательств. В этом не только нет ничего особенно удивительного, но даже нет и проявления какого-то “нового интеллекта”: схема известная – перебирай себе тексты программ, проверяя автоматом корректность записи (см. историю проблемы о четырёх красках и так далее). Если бы, конечно, универсальным образом работал и перебор, и методы перевода на язык систем компьютерного доказательства нужных наборов теорем. Теоремы, впрочем, интенсивно переводят.

То есть, это самое реальное применение для знаменитых “LLM с нейросетками” на ближайшее время, при котором они могли бы оказаться очень эффективными для математических исследований. Попытки такие, вроде как, предпринимались, потому что подход достаточно очевидный, однако массового результата пока что не видно.



Комментировать »

Современные смартфоны и приложения мессенджеров: вообще, приложение на конкретном целевом устройстве может подменить как провайдер сервиса мессенджера, так и провайдер операционной системы. А различные утечки в современном мире не обязательно должны происходить строго через радиосеть и непосредственно со смартфона на центральные серверы того же мессенджера. Почему про эти моменты постоянно забывают – не понятно.

Целевая подмена приложения пройдёт незаметно для конкретного атакуемого пользователя, а других пользователей – вообще не затронет. В смартфоне много сенсоров. То, что какие-то из них заявлены как “отключенные”, то, что к каким-то запрещён доступ данному приложению на уровне ОС – всё это нужно воспринимать с определённой долей скептицизма: кто его там знает, как оно реально работает в конкретном устройстве.

Телефонный номер, привязанный к смартфону, тоже даёт много неожиданных возможностей по идентификации: если номер доступен в сети оператора, то это означает, что можно сопоставлять события мобильной телефонии с тем, что происходит в приложении. И не стоит забывать про межоператорские “сигнальные системы” – то, что принято обозначать аббревиатурой SS7. Занятно, кстати, что в том же Telegram в описании “приватности” буквально сказано: “В Telegram телефонные номера играют роль уникальных идентификаторов” (то есть, ресурс оператора связи служит идентификатором в мессенджере, как бы независимом).

Не следует забывать и о том, что сейчас очень много других устройств (не только смартфонов), находящихся неподалёку от целевого устройства. Поэтому, даже если на конкретном устройстве действуют некоторые эффективные методы защиты, это не означает, что эти же методы действуют и на других устройствах рядом: на них, напротив, могут быть установлены скомпрометированные приложения, как минимум. Такое устройство может передавать на удалённые сервера сведения о том, что наблюдается вокруг – вспомните, что уже внедрены даже штатные методы “отслеживания контактов”, а немного рассуждений про нештатные – ниже. Так что и полезные для идентификации геометки могут приходить от других устройств, и информация о присутствии того или иного “защищённого смартфона” рядом тоже не потеряется.

Для выдачи в окружающее пространство сигнала присутствия вовсе и не обязательно использовать радиоэфир: приложение или специально настроенный системный модуль ОС могут сигналить ультразвуком – об этом, опять же, привычно забывают, несмотря на то, что эффект многократно продемонстрирован на практике. Для передающего данные по акустическому каналу приложения-пищалки, кстати, не требуется разрешать в ОС доступ к микрофону (но у современных приложений мессенджеров и он, обычно, есть – требуется для голосовых вызовов). Акустический канал не закрывает клетка Фарадея и он прекрасно работает транспортом для утечек даже в тех “умных” устройствах, которые смартфоном не являются, управляются “по проводу USB”, а поэтому продвинутыми пользователями считаются безопасным “чистыми приёмником”. Но достаточно, чтобы в устройстве был управляемый динамик. Более того, звук, в качестве побочного излучения, генерируют многие другие компоненты “умных устройств”.



Комментировать »

Часто приходится сталкиваться с неверным пониманием того, как криптографические хеш-функции можно применять для “анонимизации” данных и какой эффект можно получить на практике. Связано это с излишне общей трактовкой основного свойства хеш-функций: сложности вычисления аргумента по значению, нахождения прообраза – то есть, сложной обратимости. Из того факта, что только по известному значению хеш-функции нельзя вычислить исходный аргумент, делается вывод, что после применения хеш-функции к исходным данным полностью исчезает различительная способность. Это, конечно, далеко не так.

Заметьте, кстати, что из-за гарантированного наличия коллизий, одному значению добротной криптографической хеш-функции заведомо соответствует бесконечно много аргументов. Это так потому, что хеш-функция отображает входные массивы произвольной длины в массивы фиксированной длины. Поэтому, на практике, для определения “подлинного аргумента” всегда используется либо дополнительная структура, либо сам этот аргумент.

Сложность обращения мешает далеко не всегда. Во многих и многих практических случаях достаточно использовать прямое вычисление хеш-функции, чтобы, перебирая допустимые аргументы на входе, найти подходящий. Если известны ограничения на входные данные, метод оказывается очень эффективным. Чем больше ограничений, тем эффективность выше. В практических случаях – ограничения есть, и не одно. Я обычно привожу в пример домашние адреса из некоторой базы данных с пользователями, где адрес разбит на поля “Улица”, “Номер дома/квартира”. Пусть анонимизирующее значение хеш-функции вычисляется от объединения этих полей для одной записи. Сколько всего есть таких строк с возможными записями домашнего адреса для огромного мегаполиса? Десяток миллионов? Что-то около того. И эти строки можно взять из открытых картографических данных.

По современным вычислительным меркам – проверка десятка миллионов записей по SHA-256 не займёт какого-то существенного времени (вот, например, я посчитал для сравнения: реализация SHA-256 в OpenSSL на Raspberry Pi 5 обрабатывает больше миллиона 1024-байтовых блоков в секунду). Обычно, предлагают очевидные методы защиты: взять вместо SHA-256 специальную медленную хеш-функцию, привязанную к объёму памяти; взять секретный параметр (“соль”), который будет подмешиваться при “анонимизации”. Оба метода – не слишком подходят: требуют кратно больше вычислительных ресурсов и на стороне легитимного “анонимизатора”, требуют управления генерированием и хранением “соли” (так как это не защита от использования предвычисленных данных, “соль” нельзя совсем зафиксировать или передавать вместе с данными, но при этом текущее значение должно быть как-то проиндексировано, поскольку изменение соли приведёт к изменению соответствия в разных версиях анонимизированной таблицы).

Необходимо рассматривать и актуальную “модель угроз” – то есть, знать, от чего пытаемся защитить данные. Рассмотрим другой пример: анонимизация “хешированием” URL, которые посещает пользователь через браузер. На первый взгляд, URL-ы сложнее перебирать (но тоже можно). Однако, если задача состоит в обнаружении факта посещения конкретных URL, то, зная эти URL, определить соответствие труда уже не составляет. Если сторона, принимающая “анонимизированные” URL от браузера, использует какие-то “соли”, то это не мешает данной стороне без проблем самостоятельно обращать значения по списку URL. Ну и, по большому счёту, подсчитать хеш-функции по массиву мыслимых URL – тоже возможно, однако, из-за слишком слабых ограничений на входные данные, ограниченным тут будет успех: представьте, что в URL дописывается псевдослучайная строка из 32 ASCII-символов.

Тем не менее, пример из предыдущего абзаца показывает, что такая схема позволяет с легкостью находить пользователей, посетивших один и тот же URL. Это существенный дефект используемой схемы “анонимизации”: одинаковые значения – отображаются в одинаковые значения, то есть, подобное хеширование вовсе и не удаляет “различительную способность”. Если вернуться обратно к записям адресов пользователей, то это означает, что нетрудно определить пользователей, проживающих вдесятером по одному адресу, даже не нужно ничего перебирать.

Не удаляет простое хеширование и сведения о том, какие “анонимизированные” носители прообразов обменивались между собой некоторыми аретфактами (см. недавнюю записку про разноцветные шары). Вообще никакие взаимосвязи между объектами не удаляются. Так что необходимо учитывать, что если в “анонимизированной” БД с географическим перемещением персон “захешированы” имена и фамилии, а также и координаты, то это не отменяет характерных траекторных цепочек. Цепочки очень быстро становятся уникальными. Так что, не только в данных будет отчётливо виден бегемот, который ходит к реке через туннель, проделанный им в зарослях, но и нетрудно определить персональный хеш этнографа, убегающего от этого бегемота через тот же туннель.



Комментировать »

Скрытые метки (“водяные знаки”), добавляемые в тексты, которые генерируют ИИ LLM, могут содержать много дополнительной информации. Вообще, в метку можно поместить и уникальный идентификатор пользовательской сессии, внутри которой этот текст был выдан системой. То есть, получается, что какой-то пользователь привычно использовал очередной сервис GPT для генерирования текста, который потом подредактировали и опубликовали в Сети. Бот провайдера сервиса GPT этот текст позже находит и связывает с пользовательской сессией. Теперь провайдер сервиса знает, какие пользователи для чего тексты генерируют. Соответственно, может вносить нужные изменения, оказывая прямое влияние на результат.

Заметьте, что текст может быть не только газетной статьёй, но, как уже показывает практика, и законопроектом, и каким-то более важным распоряжением. То есть, вроде, формальный статус ИИ LLM тут получается на уровне “используется в работе сотрудниками”, а реальный статус – провайдер сервиса получает рычаги для целевого влияния на результат: такой spear phishing в квадрате.

Схема генерирования текста внутри LLM обладает большой глубиной, так что избавиться от качественно построенного криптографического “водяного знака” редактированием текста очень и очень непросто. Лишь бы текст был достаточно длинным. Перестановка некоторых предложений, перестановка некоторых слов, замена на синонимы, перефразирование небольших фрагментов – это всё точно не поможет, но зато предоставит дополнительную информацию для анализирующего бота, то есть появится содержательная статистика, отражающая эволюцию текста в токенах: кто, как, что именно меняет в словах и буквах.

Не нужно забывать, что сама концепция построения LLM происходит из методов атрибуции литературных текстов, так что, если метки строятся на уровне соотношений между многими внутренними коэффициентами, взятыми относительно токенов, то “сокрытие исходного авторства” для достаточно большого текста превращается в отдельную, тоже большую, задачу. Не имея доступа к базам самой LLM, тут придётся повозиться, и без гарантий успешного исхода. Так что процесс окажется не только трудоёмким, но и потребует ресурсов специалиста редкой квалификации, а это уже оказывается полностью вне контекста новомодного применения ИИ, поскольку сводит предполагаемые выгоды к нулю. Очевидно, всякая попытка автоматизации тут просто переключает контроль результата с одного провайдера на другого, то есть, на провайдера очередного “синонимайзера”. А использование собственных, исполняемых локально, сервисов LLM – тоже не приветствуется: кругом же “облачные технологии”, что это ещё за немодное “ретроградство”? И даже если крупный провайдер GPT декларирует создание “выделенных экземпляров”, контроль за этими экземплярами всё равно внешний.

Так что, в рамках идущего сейчас повсеместно административного, – даже директивного, – процесса интенсивного расширения применения ИИ-сервисов, провайдеры этих сервисов получают огромные возможности по стратегическому влиянию на развитие событий. Это влияние даже получше, чем случилось на прошлом этапе – с сервисами социальных сетей.



Комментировать »

В ML-KEM (ранее – Kyber) возможен вариант, когда корректно полученные сторонами секреты не совпадут. В стандарте NIST это называется Decapsulation failure. То есть, сами криптографические примитивы, составляющие ML-KEM, срабатывают всегда – выводят 256-битное значение. Но с некоторой (чрезвычайно малой) вероятностью принимающая сторона, расшифровывающая секрет, может получить значение, не совпадающее с тем, которое отправлено. “Чрезвычайно малая вероятность” тут означает 2^(-164.8). Выглядит более чем несущественным параметром. Но рассматривать сам факт наличия такой “погрешности” можно с разных сторон.

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

Строго говоря, и в ML-KEM упомянутая “погрешность” оказывается в ряду заданных результатов алгоритма, просто, определяется она на другом уровне. Более того, при практической реализации алгоритмов, не имеющих встроенных “погрешностей”, эти самые погрешности постоянно возникают и из-за ошибок в программах, и даже из-за ошибок в работе оборудования. Особенно, если говорить о вероятностях порядка 2^(-165) – казалось бы, тут и без всяких Rowhammer какой-нибудь залётный нейтрон может вызвать реакцию, которая переключит пару битов в модуле памяти. Нейтрон, конечно, может помешать, но это будет не то же самое, что и внесение обязательного сбоя непосредственно в логику алгоритма.



Комментировать »

В нестабильной версии браузера Chrome (Canary) обнаружили подозрительный новый флаг в настройках – описание флага наводит на мысль, что Google Chrome собирается проверять содержимое просматриваемых веб-страниц при помощи LLM ИИ. Конечно, предполагают, что для защиты пользователя от мошеннических страниц. Цитируемое описание флага гласит:

“Enables on device LLM output on pages to inquire for brand and intent of the page” (“Включает на устройстве вывод LLM для страниц, чтобы запросить тип и предназначение конкретной страницы”)

Смысл ускользает. Например, непонятно, что это за LLM и как она относится к устройству (заметьте, что отсутствует дефис в “on device”). Конечно, LLM ИИ может работать как в браузере, так и на серверах Google. Браузерная LLM (micro-large, да) может “советоваться” с LLM на серверах Google, передавая некоторое сжатое описание страницы. Это всё понятно. Как и то, что эксперимент могут и отменить. Но особенно интересны стратегические моменты.

Во-первых, это очередной шаг к тому, что браузер начнёт отмечать “фейкньюс” и сопровождать некоторые страницы не только предупреждением, но и сообщением от “факт-чекеров” и очередным указанием на Beleive in Science. Соответствующее сообщение, конечно же, сгенерировано при помощи ИИ, потому что “компьютер не может ошибаться”, а “нейросеть, способная рассуждать” ерунды не пришлёт – всё только в строгом соответствии с Правилами и Разрешениями. Во-вторых, браузер может же и поправить содержимое страницы, чтобы оградить пользователя.

Такие же функции можно было реализовать и десять лет назад, но тогда ещё не было тщательно подготовленного СМИ понятийного фундамента про AI/ИИ, да и на слишком многих устройствах просто не хватило бы вычислительной мощности.

Резонный вопрос: зачем вообще выводить веб-страницы с каких-то “несертифицированных узлов”, если можно генерировать при помощи ИИ различные страницы с нужным содержанием сразу в браузере по запросу пользователя? Вроде, и браузер отдельный, и контент индивидуальный. Удобно. В принципе, к этому поисковые системы уже движутся: не просто замкнутый “корпоративный веб”, но ещё и сгенерированный ИИ контент. Закукливание. Это, впрочем, идеальная схема, она не учитывает ключевых требований по наличию каких-то внешних изменений. Ну, грубо говоря, если пользователь ходит внутри сгенерированного корпоративного ИИ-веба, то исчезают и задача защиты этого пользователя, и задача сбора статистики по “неправильным страницам”.

Сложное направление.



Комментировать »

В продолжение записки про “короткие сертификаты” Let’s Encrypt. Сертификаты на шесть дней предлагается выпускать для того, чтобы уменьшить интервал времени, когда компрометация ключа представляет угрозу. Попробуем разобраться, что это вообще за событие такое – компрометация ключа, в контексте TLS для веба, и чем это грозит на практике для обычного веб-сайта.

Прежде всего – речь о компрометации серверного ключа, то есть, о раскрытии третьей стороне секретного ключа из пары, открытая часть которой указана в сертификате сервера. Сам TLS-сертификат – документ публичный, скопировать его может кто угодно. Если у этого “кого угодно” есть секретный ключ от сертификата, то он может выдать свой сервер за легитимный, предоставив сертификат, подписанный Удостоверяющим Центром (УЦ). В данном случае – УЦ Let’s Enncrypt. Однако тут есть очень много “но”.

Если ключ от сертификата скомпрометирован, то штатный метод реагирования состоит в немедленном отзыве сертификата. Технически, сертификат отзывает УЦ. Более того, правила позволяют УЦ отозвать сертификат даже по собственной инициативе, если, например, стало “достоверно известно о компрометации ключа” (не единственная возможная причина). Программы-клиенты, подключающиеся к веб-сайту, должны как-то узнать, что сертификат отозван. Существует два практических способа это сделать: OCSP и CRL.

OCSP. Online Cerificate Status Protocol (Онлайн-протокол [определения] статуса сертификата). Этот способ позволяет отправить запрос о сертификате специальному респондеру, который ответит, отозван сертификат или нет. Технически способ напоминает работу с веб-сервером. Оператором OCSP-респондера является сам УЦ или доверенная сторона, а ответ о статусе сертификата удостоверяется цифровой подписью. Адрес респондера указывается в составе сертификата. В практике Интернета OCSP работает очень плохо. Протокол может показаться простым, но поддерживать его УЦ очень сложно. Начиная с того, что, при правильном внедрении, получаем сервис, блокирующий доступ к внешним ресурсам: без ответа респондера клиент не должен бы подключаться по HTTP к узлу, который пытается аутентифицировать при помощи данного сертификата. Почему? Потому, что если OCSP-респондер недоступен, то, формально, клиент не может узнать, что сертификат был отозван. Очевидно, что никакого смысла в OCSP, если игнорировать недоступность респондера, нет: третья сторона, перехватывающая сетевой доступ и использующая скомпрометированный ключ, тогда может просто заблокировать сетевой доступ и к OCSP-респондеру, чтобы скрыть факт отзыва.

В предыдущем абзаце использованы обороты “при правильном внедрении”, “формально” и др. Это сделано не просто так: в вебе – OCSP принято игнорировать. Например, браузер Chrome давно не поддерживает этот протокол. Хитрости ситуации добавляет тот факт, что, поскольку оператор OCSP-респондера видит индивидуальный запрос о конкретном сертификате (серийный номер), знает имена, для которых сертификат выпускался, то он может сопоставить адреса и запросы, построив статистику посещения веб-ресурсов ничего не подозревающими пользователями. А это уже “угроза приватности”. Конечно, есть технология OCSP stapling, позволяющая встроить актуальный ответ OCSP-респондера о статусе сертификата непосредственно в ответ TLS-сервера, чтобы клиент не обращался к OCSP-респондеру. Но данная технология не особенно распространена.

Наличие OCSP-респондера недавно признали опциональным для УЦ, отразив это в требованиях CA/B-форума (это объединение организаций – УЦ и разработчиков браузеров, – которое определяет базовые требования для включения корневых ключей УЦ в браузерные списки доверенных). Let’s Encrypt планирует закрыть свои OCSP-респондеры в следующем году. (И это правильно, поскольку OCSP, так или иначе, не самый лучший вариант.)

Следующий способ, позволяющий узнать о факте отзыва сертификата, это CRL – Certificate Revocation List (список отзыва сертификатов). CRL – это подписанный УЦ (или доверенной организацией) перечень серийных номеров отозванных сертификатов. Простое правило гласит, что если серийный номер сертификата указан в соответствующем CRL, то сертификат был отозван. Адрес точки раздачи CRL указывается в сертификате. Клиент может скачать список отзыва (со всеми сертификатами) и проверить статус нужного сертификата по нему. В общем случае, “точка раздачи” не знает, сертификат какого ресурса пытается проверить клиент (есть экзотические оговорки, но мы их тут пропустим) – поэтому “приватность” сохраняется лучше. Проблема в том, что на практике CRL тоже проверяется далеко не всегда, поскольку точка раздачи является почти таким же блокирующим сервисом, как и OCSP. Какой смысл в наличии CRL, если недоступность CRL игнорируется? Правильно – никакого смысла.

Получается, что проверки отзыва сертификатов, фактически, нет, поэтому клиент не узнает, что сертификат был отозван и, вероятно, поверит в отозванный сертификат. Традиционная трактовка гласит, что “короткий” сертификат закончится быстро, а в закончившийся сертификат клиент верить уже не станет, что и поможет снизить угрозу. То есть, если сертификат выпущен на шесть дней, а ключи утекают “равновероятно”, то есть неплохие шансы, что сертификату для скомпрометированного ключа останется всего пара дней срока. Хватит ли этого подменяющей соединение стороне? Технически, подменить соединение и прочитать пароли/куки-файлы можно за доли секунды. Но нужно учитывать и тот факт, что ключ от сертификата может утечь с большой задержкой, но “долгий” сертификат всё ещё будет валидным.

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

Рассмотрим ситуацию подмены TLS-узла. Если для подмены выпускается сертификат, – тем или иным способом, – то речь уже идёт не о компрометации ключа и срок действия сертификата не особенно влияет: новый сертификат будет действовать, а подменный ключ от него – есть у подменяющей стороны по условиям задачи (см. историю с jabber.ru, например). То есть, короткий срок действия приводит к тому, что нужно быстро использовать новый сертификат, ну, или придётся выпустить ещё один подменный. Конечно, при длительном подобном перехвате заметить пачку подменных сертификатов проще, чем один, выпущенный на год. Но часто ли такое требуется? Часто ли подменные сертификаты вообще попадают в “область видимости”? Нет, не часто – это ответ на оба предыдущих вопроса.

Насколько частым является событие “компрометация ключа” в деятельности обычного веб-сайта? Это, что называется, вопрос из серии многогранных: на “обычном веб-сайте” секретный ключ хранится в обычном файле, в открытом виде, а файл лежит там, куда его записала неведомая утилита certbot. Спросите доброго инженера по сертификации СКЗИ (Средств Криптографической Защиты Информации) – и он вам скажет, что так хранимый ключ уже скомпрометирован. Спросите то же самое у строгого инженера по сертификации СКЗИ – и он вам ответит, что ключ был скомпрометирован ещё в тот самый момент, когда его сгенерировала исполняемая с правами суперпользователя неведомая утилита certbot, свойства и недокументированные возможности которой “не только не документированы, но и не установлены”.

Однако, на практике, пусть где-то и вздохнёт специалист ИБ, очередной раз выполнив проверку конвертов tamper-proof и сверив записи в журналах, а опытный админ железного сервера всё равно уверенно сложит секретные ключи от сертификатов в резервные копии, хранимые неподалёку от ежесуточных дампов памяти виртуальных машин, в которых соответствующие TLS-серверы исполняются.

Что поделать – такова практика веба. Естественно, ключ может оказаться скомпрометирован и без всякой утечки непосредственно из места хранения ключа: ошибки в ПО могут привести к тому, что будет сгенерирован нестойкий ключ или ключ утечёт в рамках штатного выполнения криптографических операций. Такое, к сожалению, случается не так редко, как хотелось бы. Наверное, в такой ситуации короткие сертификаты можно признать благом. Вот только на то вопрос и многогранный, чтобы рассмотреть и другие грани тоже.

Чтобы применить скомпрометированный ключ в вебе, применяющая сторона должна перехватить трафик в направлении веб-сайта. Для важных сервисов, типа веб-почты Gmail или систем дистанционного банковского обслуживания, эта угроза подмены довольно серьёзная, поэтому можно рассматривать целевые атаки, когда трафик перехватывается ближе (в сетевом смысле) к точке подключения конкретного пользователя. Однако в других случаях (опять вспомним про jabber.ru) – перехват проводится рядом с точкой подключения атакуемого “обычного веб-сайта”. Но такой перехват позволит без проблем выпустить подменный сертификат, если вдруг ключ “скомпрометировать не удалось”. Так что практическая ситуация не такая прямолинейная, как можно подумать.

А вот что можно сказать точно, так это то, что сертификаты, выпускаемые на несколько дней, привяжут всякий ресурс к сервису выпуска сертификатов. Внедрение требования о коротких сертификатах в основные браузеры – приведёт к тому, что многие и многие “производные браузеры” получат это же требование автоматически. Просто потому, что мало кто рискует вмешиваться в “ядро валидации” сертификатов. И требование о коротком сроке действия начнёт работать даже для “собственных корней”.

Обратите внимание, что один из законодателей моды в данной области, – Google, – сейчас выпускает сертификаты для своих доменов от собственного УЦ. И эти сертификаты уже имеют достаточно короткий срок действия – три месяца. Если добавить сюда инициативу Let’s Encrypt с шестидневными сертификатами, то остаётся слишком мало сомнений в том, что требования браузеров к сроку действия TLS-сертификата начнут теперь сокращаться всё быстрее и быстрее.



Комментировать »