В нестабильной версии браузера 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-сертификата начнут теперь сокращаться всё быстрее и быстрее.



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

Хоть и совсем не планировал, но всё же собрался с силами и, прямо к концу года, подготовил и выпустил обновление технического описания TLS: очень меня беспокоило то, что скоро десять лет регулярным обновлениям описания, а в текущей версии (2023 года, да) вообще не было упоминания ML-KEM; что, с одной стороны, простительно, так как в 2023 году ещё и официального названия такого не было у данной криптосистемы, – было Kyber, – но, с другой стороны, промелькнувшую Kyber768 читающему описание может быть сложно сопоставить с современной ML-KEM.

Поэтому основное изменение новой версии – это раздел про криптосистемы с постквантовой стойкостью в TLS, который я переписал с учётом того, что X25519+Kyber768 в основных браузерах стала ML-KEM+X25519. Ну и ещё внёс в нескольких местах небольшие исправления, актуализировав текст – например, про то, что RSA не рекомендуется в качестве средства обмена ключами.



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

Пишут, что свежие рекомендации профильного агентства правительства Австралии требуют отказаться от современных распространённых криптосистем (ECDH, ECDSA и др.) и перейти на постквантовые криптосистемы совсем скоро – к 2030 году. Занятно, что в этих рекомендациях запрещают SHA-256 в HMAC, но оставляют AES. Это тем более странно, что отказ от SHA-256 мотивируют традиционным развитием квантовых компьютеров. При этом, конечно, ничего не сказано про алгоритмы, используемые для защиты по высшим категориям (TOP SECRET).

Нетрудно посчитать, что знаменитый 2030 год планируется уже через пять лет. С одной стороны, пять лет это очень мало. С другой стороны – пяти лет может оказаться достаточно для того, чтобы появились квантовые алгоритмы для взлома, скажем, криптосистем на кодах и решётках. (Но и квантовые алгоритмы для AES – тоже нельзя исключать.) Естественно, алгоритмы будут не менее теоретическими, чем алгоритм Шора, и смогут сработать только на “гипотетических квантовых компьютерах”, но это всё равно потребует, как минимум, пересмотра рекомендаций, а как максимум – разработки новых криптосистем. Впрочем, всегда можно просто увеличить длину ключей (как долгие годы и делается с RSA).



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

Достаточно давно сформировалась тенденция к сокращению срока действия TLS-сертификатов для веба. Let’s Encrypt в следующем году обещает шестидневные сертификаты. То есть, TLS-сертификаты, срок действия которых будет около шести суток (ну, плюс какие-то интервалы в несколько часов, видимо). Цитата:

[…] short-lived certificates. Specifically, certificates with a lifetime of six days. This is a big upgrade for the security of the TLS ecosystem because it minimizes exposure time during a key compromise event. ([…] короткоживущие сертификаты. Точнее, сертификаты со сроком действия шесть дней. Это большое обновление безопасности для TLS-экосистемы, поскольку оно минимизирует время действия уязвимости в случае компрометации ключа.)

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

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

Это нововведение Let’s Encrypt, не сомневайтесь, прямо означает, что браузеры, следом за Chrome/Chromium от Google, постараются оперативно перейти на короткие сертификаты, запретив срок действия дольше месяца (например).



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

Воскресное чтение манускриптов. А точнее – наблюдение над “вырезками” и рыбами. Так, из страниц манускрипта Vat.Gr.1990 (Ватиканская Апостольская библиотека), датируемых 10 веком, кто-то сделал немало вырезок, забрав себе орнаментальные виньетки, разделявшие статьи. Пример, сопровождающийся рисунком рыбы, на скриншоте (это вступление и начало текста одного из трудов, приписываемых Иоанну Златоусту):

Manuscript, screenshot

Заметьте, что изображение рыбы вырезать не стали.

Вот пример с уцелевшей виньеткой и рыбой из того же манускрипта в начале другой статьи (написано, что это Слово Леонтия, пресвитера Константинопольского, на Пятидесятницу – изображения рыб, естественно, тут имеют конкретный смысл):

Manuscript, screenshot

Удаление виньетки привело к потере части текста на обратной стороне листа. Можно было бы подумать, что удаляли, по соображениям цензуры, именно часть текста (такое бывает: “данные удалены”, как говорится), но нет – тут почему-то более или менее аккуратно вырезаны именно виньетки. Вряд ли виньетки содержали закодированные послания, по типу QR-кода. Хотя, всякое возможно в средневековом скриптории. Как бы там ни было, но возникшие лакуны в текстах, где возможно, потом заполняли по другим копиям или по переводам, например, латинским. Но если орнамент виньетки содержал код послания, то это послание потеряно.

Motif



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

Забавно, что в некотором рейтинге “перспективных технологий 2025 года” от газеты “Коммерсант” присутствует постквантовая криптография на седьмом месте, а вот ни квантовых вычислений, ни квантовой криптографии – в данном рейтинге уже нет, хотя, казалось бы. Рейтинг, впрочем, весь забит ИИ – на первом месте “просто всё про ИИ”, а потом ещё, несмотря ни на что, куча пунктов про “подвиды ИИ”, – так что общая тенденция рейтингования сохранилась. (Особенно весёлый термин – “Микро-LLM”: то есть, “очень маленькие, но большие” языковые модели. Если что, то странный термин, конечно, придумал не “Коммерсант” – такое сочетание реально используется.)



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

В DNS бывают “хостнеймы”, а бывают “DNS-имена” (именно так эти объекты нужно называть на русском). Хостнейм – это сетевое имя компьютера (“имя хоста”), для записи которого разрешено использовать только следующие ASCII-символы (без учета регистра при сравнении): [a-z\,\-] (от “a” до “z”, “запятая”, “минус”) и, в качестве разделителя “лейблов”, ASCII-символ “.” (“точка”). “Лейбл” – это подстрока в полном имени хоста: dxdt.ru. Все эти правила сложились, что называется, исторически.

(Есть ещё некоторые старые ограничения, требующие, например, чтобы “лейбл” всегда начинался с буквы, что позволило бы отличать запись IPv4-адресов от хостнеймов; но, к сожалению, эти ограничения сейчас применяются крайне редко, а в практике глобальной DNS – отменены, поэтому в DNS невозможно отличить хостнейм от IPv4-адреса.)

А вот в DNS-именах допускается использование и других символов. Вообще говоря, закодировать можно произвольные октеты, но это тема для другой записки, поскольку сам смысл отстройки по алфавиту от хостнеймов не настолько общий. Широко используется знак “_” (“нижнее подчёркивание”), который позволяет заведомо отличить DNS-имя от хостнейма, чтобы строго определить смысл соответствующей DNS-записи. Пример: _dmarc.dxdt.ru. – это имя (ключ) для размещения политики DMARC в TXT-записи. Такое имя не может быть хостнеймом, но может быть DNS-именем. Это важное отличие: хостнеймы вкладываются в пространство DNS-имён, но не совпадают с ним.



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

NASA сообщает, что марсианский “коптер” Ingenuity, который потерпел аварию 18 января 2024 года, подвела навигационная система. Эта система работала с использованием изображений подстилающей поверхности, которые получала специальная камера (см. картинку). В последнем (а не “крайнем”, да) полёте, при выполнении посадки, слишком однообразное изображение поверхности не позволило программному обеспечению найти достаточно “зацепок”, чтобы корректно посчитать горизонтальную скорость аппарата, а некорректная скорость оказалось слишком большой и робот перевернулся при касании, поломав лопасти.

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

Photo of Navigation Camera

(Фото: NASA/JPL-Caltech)



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

Как я уже не раз упоминал, в том, что dxdt.ru выходит два десятка лет, есть и такая польза: можно иногда доставать старые заметки, подгадывая месяц под актуальный сейчас. Ну, и не только месяц. Например, десять лет назад на dxdt.ru выходила заметка про “ждущего” подземного робота, очевидно, гигантского, но вряд ли человекоподобного:

Предположим, подземный робот самостоятельно проник в нужный район и должен там остаться на длительное время. Естественно, под землёй. Естественно, скрытно, чтобы не обнаружили и не извлекли на поверхность. После наступления условленного часа или получения специального сигнала – робот активируется и, скажем, наконец-то выполняет свою главную задачу. Сколько лет такой робот может спать? (Записка полностью.)



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

Сейчас много новостей про то, что в Google “совершили прорыв в квантовых вычислениях”, представив “метод коррекции ошибок”. Обычное для текущего уровня “хайпа” состояние, тем более, когда в источнике новости упоминается Google.

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

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

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

Занятно, что в исходной работе нет хотя бы примерных описаний используемой “классической аппаратуры” – она как бы подразумевается существующей “за кадром”, в виде “специализированной рабочей станции” с доступом по Ethernet. Наверное, это не имеет отношения к теме публикации (хотя, казалось бы – ведь классический вычислитель точно необходим, чтобы вся эта квантовая коррекция ошибок как-то заработала).

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



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