В самом начале этого года некоторые пользователи Apple шумели по поводу неожиданно и незаметно включившейся новой функции “Улучшенного визуального поиска” (Enhanced Visual Search), использование которой требует отправки информации об изображениях на серверы Apple, но, конечно, с “полным сохранением” “приваси” пользователей.
Тут интересно даже не то, что опять очень настойчиво привязывают к центральным серверам данные локальных устройств, но то, как хорошо это укладывается в очень модную канву ИИ-агентов. Эти ИИ-агенты, как утверждается, готовы решить кучу насущных задач активными действиями, вплоть до ведения переписки и телефонных переговоров от имени пользователя – типичный пример: запись автомобиля на автосервис. Но ИИ-агенты не могут полностью работать на устройстве – им не хватает вычислительной мощности, да и эта доступная мощность сильно различается на устройствах разных типов.
Поэтому агенты “должны использовать центральный сервер”, называемый “безопасным облаком”, чтобы выполнять полезные агентские функции: пересказывать сообщения из мессенждеров, читать почту, готовить ответы на сообщения и письма, просматривать фотографии и прослушивать разговоры (не только телефонные, конечно). Обработка сообщений, разговоров и фотографий проводится на устройстве. А чтобы лучше выполнять задачи, эти ИИ-агенты обязательно станут собирать информацию о пользователях, что забавно – непосредственно при помощи устройств, этими же пользователями приобретённых, – смартфонов, “умных колонок“, фитнес-браслетов и так далее, – но хоть агент и работает локально, он должен консультироваться с “большим ИИ”, чтобы проводить “поиск на центральных серверах”, потому что “ИИ нужны миллионы процессоров, а то оно не работает”.
Понятно, что ИИ-агент, размещённый непосредственно на устройстве, как часть операционной системы, – а то и и аппаратуры, – получает полный доступ к информации, вне зависимости от того, как эта информация защищалась при передаче по каналам связи: всё может быть качественно зашифровано в очередном протоколе мессенджера, вплоть до полной невидимости на промежуточных узлах, но зато смартфонный ИИ-агент, являющийся необходимой частью устройства, всё полученное и отправленное изучит в открытом виде, а потом, – конечно же, в “сжатой форме”, – передаст на сервер “большого ИИ”. Если что, и если вдруг какой-то информации недостаточно, то сервер агенту про это тут же намекнёт, и агент, не сомневайтесь, уточнит свой отчёт, – нет, не отчёт, а “сжатый запрос”. И нельзя сбрасывать со счетов возможность следующего шага, на котором намёки-запросы агенту поступают хоть и через сервер, но уже от третьей стороны.
Комментировать »
На тестовом сервере tls13.1d.pw сделал некоторые обновления: 1) детализировал вывод шифротекста ML-KEM-768, разбив блок на представления отдельных полиномов; 2) добавил поддержку SecP256r1MLKEM768 – это гибридная криптосистема с постквантовой стойкостью, состоящая из ECDH на кривой P-256 и ML-KEM-768.
Я не так давно писал про статистику соединений с постквантовыми криптосистемами на тестовом сервере, и в той записке обозначил, что SecP256r1MLKEM768 поддерживается сервером, но это оказалось преждевременным, так как в действительности сервер поддерживал ECDH на P-256 только в старом варианте, с Kyber768. А про вариант ECDH с ML-KEM я как-то забыл. Впрочем, на основное утверждение упомянутой записки о том, что с SecP256r1MLKEM768 (идентификатор 0x11EB) на сервер в начале января никто не приходил, этот момент никак не повлиял: понятно, что если никто не пытался подключиться с этой криптосистемой, то и соединения быть не могло, вне зависимости от поддержки сервером.
(Если кто-то из читающих не знает, то данный тестовый сервер TLS 1.3 это достаточно специальный инструмент, позволяющий подключиться по TLS 1.3, отправить HTTP-запрос и получить очень подробные сведения о соединении в ответ. Это можно проделать браузером, чтобы, например, увидеть, работает ли какой-то низкоуровневый элемент TLS, типа обмена ключами с постквантовой стойкостью.)
Кстати, забавно, что в SecP256r1MLKEM768 ключи и секреты объединяются в другом порядке, относительно X25519MLKEM768, описанной в том же черновике RFC. То есть, эти гибридные криптосистемы используют объединение значений, соответствующих работе двух криптосистем. Объединение – при помощи простой конкатенации байтов. Например, объединяется запись открытого ключа ECDH (65 байтов) и запись открытого ключа ML-KEM-768 (1184 байта): одни байты приписываются к другим и получается блок в 1249 байтов. Ничего необычного. Но вот для X25519 и ML-KEM, если смотреть слева направо, в сетевом порядке, то сперва идёт ключ ML-KEM, а потом – ключ X25519. Для ECDH и ML-KEM, определяемой в следующем же абзаце черновика, указан другой порядок: сперва параметр ECDH, а потом – ключ ML-KEM. То же самое с общими секретами. Зачем так делать? Загадка. Какая-то “популярная квантовая механика” на пустом месте. (Никакого криптографического смысла в этом нет и быть не может: криптосистемы, составляющие гибрид, работают независимо.)
Комментировать »
TLS-сертификаты с очень коротким сроком действия должны решить проблему отзыва сертификатов в вебе: то есть, так как отзыв, фактически, не работает, выполнение его функции переносится на штатное истечение срока действия. Это не отменяет возможности по выпуску “быстрых” подменных сертификатов для активного перехвата соединений, но есть и ещё некоторые занятные технические особенности. Короткоживущий сертификат, вообще говоря, оказывается существенно эффективнее механизмов отзыва.
Предположим, что сертификаты начали впускать на 48 часов максимум, а базовым удостоверяющим центром для них всё так же является один централизованный сервис, типа Let’s Encrypt. Например, основная доля веб-узлов зоны .RU “подписана” этим УЦ. Если потребуется быстро отозвать миллионы сертификатов штатным образом, – что через обязательные CRL, что через опциональный OCSP, – то возникнет большая сопутствующая нагрузка на системы УЦ. В случае же с короткоживущими сертификатами – никакой дополнительной нагрузки не возникает, более того, нагрузка уменьшается: отзывать ничего не требуется, а УЦ просто перестаёт выпускать новые сертификаты для заданных имён (и IP-адресов).
Конечно, то же самое произошло бы и с “долгими” сертификатами, но там осталось бы больше времени для манёвра. Не то чтобы это ключевой фактор, но, всё же, особенность занятная, поскольку “короткие” сертификаты не только строго привязывают к некоторой автоматической технологии, но и дополнительно увеличивают степень централизации, вводя очень эффективный, “самосбывающийся” механизм быстрого отключения.
Комментировать »
Шестидневные TLS-сертификаты Let’s Encrypt планирует выпускать и для IP-адресов, что несколько необычно. Тут имеется в виду, что такие сертификаты будут валидными при обращении к узлу без использования DNS-имени, а только по IP-адресу. Такие сертификаты являются редкостью, но выпускались они и раньше – например, сертификат, выпущенный DigiCert 02.01.2025 для сервиса Cloudflare 1.1.1.1, содержит несколько IP-адресов в поле SAN (Subject Alternative Name). Этот сертификат выпущен не на шесть дней, а на срок более года: он действует до 21.01.2026.
Понятно, что DNS для подтверждения управления IP-адресами не подходит. Поэтому проверяется только факт управления узлом под заданным IP-адресом. Let’s Encrypt будет проводить такую проверку по HTTP и через TLS-ALPN (а это довольно экзотический метод, реализующий “прозрачную” проверку на уровне TLS: то есть, на уровне веб-сервера её даже не видно; возможно, я как-нибудь напишу про этот протокол подробнее).
Активный перехват трафика, адресованного некоторому IP, конечно, возможен, – в том числе, через BGP-атаки, – но тогда он же, формально, закрывает и все прочие случаи: например, для DNS-проверки можно перехватывать трафик в направлении авторитативных серверов. Другое дело, что в DNS, обычно, серверов несколько и они даже должны бы находиться в разных автономных системах. Это кроме того, что можно проверять DNSSEC (но это редкость).
Однако сертификаты на IP-адреса позволяют запускать доверенные сервисы, обращение к которым не раскрывает имён уровня приложений. Представьте, что некоторая “точка входа” постоянно мигрирует по IPv6-адресам, автоматически выпуская “короткие” сертификаты с подтверждением через TLS-ALPN – то есть, HTTP там вообще нет. Получается гибкое и скрытное решение. В общем, интересное развитие технологий.
(Я недавно подробно описывал то, как срок действия сертификатов в TLS связан с проблемой компрометации ключей.)
Комментировать »
Небольшое пояснение к предыдущей записке, что там имелось в виду: так как в результате “очередного сбоя” для большинства затронутых пользователей фильтровались соединения 80/tcp (udp, вероятно, тоже) и 443/tcp (udp, вероятно, тоже), то у этих пользователей не открывались привычные веб-сайты – причина понятна: веб штатно работает на этих номерах портов (номера – только один из признаков, но для веба – достаточно). Сервисы, использующие другие номера – оказались не затронуты. Но кто ж про эти сервисы знает, и задумывается, что они тоже “через Интернет”?
А “Интернет” – равно “веб”. Отсюда и странные восклицания: «не работает “Интернет”, но работает Telegram» (приложения последнего могли использовать другие номера портов). Конечно, работал не только Telegram, но и, скажем, Jabber. Ходил ICMP (ping, грубо говоря), что, с одной стороны, затрудняло быструю диагностику, но, с другой стороны, позволяло быстрее же понять, что именно происходит “на сетевом уровне”.
(Да, понятно, что это никак не нивелирует значение самого сбоя, а Интернет в целом, конечно, при этом поломался ещё больше, поскольку штатная работа протоколов оказалась нарушена. Но так-то Интернет сломан уже давно.)
Комментировать »
Исследователями из Watchtowr опубликовано подробное описание того, как обнаружили возможность и реализовали удалённое исполнение кода (RCE) в свежей CVE-2025-0282 (Ivanti Connect Secure – это, как нередко случается, корпоративный продукт для “защищенного корпоративного VPN”).
Описание по ссылке выше – довольно техническое, требует специальных знаний для понимания. Если кратко, то основой данной уязвимости является типовое переполнение буфера из-за перепутанных в исходном коде значений максимального размера массива, но вот для успешной реализации – потребовались не самые прямолинейные техники.
Как справедливо замечают в тексте описания исследователи, исходную ошибку, приводящую к переполнению буфера, смог бы обнаружить даже простой статический анализатор кода. Но, в принципе, понятно, почему статический анализатор не был здесь должным образом использован компанией-разработчиком. Дело в том, что применение таких инструментов не на бумаге требует высокой квалификации от применяющего, так как сам по себе стат. анализатор мало что даёт – ещё нужен редкий специалист, понимающий, что именно происходит, с разных сторон: со стороны ИБ, со стороны устройства компиляторов и разработки ПО, со стороны устройства аппаратуры и практики “сетевых технологий”, и т.д. Ещё один пример, показывающий, что так называемая “безопасная разработка”, как принцип, в целом, интересна, но практическое значение соответствующих инструментов в корпоративной среде сильно преувеличено. Впрочем, вернёмся к описанию уязвимости.
Прямолинейной эксплуатации через перезаписывание стека помешало наличие в этом стеке указателя на блок памяти, который должен был освобождаться перед возвратом из атакуемой функции (то есть, вызов конструкции с free() приводил бы к преждевременному возникновению исключения). Но исследователи смогли найти точку модификации таблицы Vtable, которая содержит указатели на функции (это типовая конструкция для “виртуализации” “методов” в C++), а потом ещё успешно нашли в коде гаджет*, модифицирующий указатель стека. Причём, поиск гаджета был затруднён тем, что требовалось найти точку для входа, которая совпадала бы не только по подобранному значению указателя, но и по значению смещения, жёстко зафиксированного в исполняемом коде. А это стало возможно потому, что исследуемое приложение использует много библиотек: “It’s a good thing that the Ivanti web binary contains so many libraries”. Как говорится, принцип разработки с созданием минималистичного и простого собственного кода мог бы здесь помочь. Ну, раз не помог стат. анализатор.
* – дополнение от 13.01.2025: гаджет – фрагмент машинного кода с нужными свойствами, оканчивающийся командой передачи управления, см. комментарии к записке.
Комментарии (2) »
Чуть более пяти лет назад, в декабре 2019 года, я опубликовал на dxdt.ru небольшой текст про перспективы квантовых компьютеров в разрезе прикладной криптографии: “Постквантовый мир прикладной криптографии“. “Хайп” про квантовые компьютеры был уже тогда, пусть и меньше, чем сейчас.
Что поменялось за прошедшие пять лет? Самое главное – не поменялось: универсальных квантовых компьютеров как не было пять лет назад, так и сейчас нет, даже близко. Тут просто ничего не изменилось. Даже “хайп” начал спадать (под давлением AI/LLM, возможно).
В первом абзаце записки из 2019 года отмечено: “рассказывать-то нужно о том, что постквантовый криптографический мир наступит раньше, чем будут созданы опасные квантовые компьютеры (если их вообще создадут)”. Вот уж где сработал неожиданно быстрый технологический прогресс, так это тут: постквантовыми криптосистемами сейчас уже защищёна заметная доля TLS-трафика в вебе – поскольку в 2024 году соответствующие криптосистемы внедрены в современные браузеры; и это касается не только TLS – криптосистемы с постквантовой стойкостью поддерживаются и в SSH, и в других протоколах; TLS лишь взят как пример с большим количеством трафика (видео и пр.). Естественно, далеко не всё ещё понятно со стойкостью предложенных постквантовых криптосистем, но это обычное дело.
Посмотрим на другие моменты. Ниже – некоторые цитаты и комментарии к ним.
“Например, когда говорят о задаче криптографии с открытым ключом, речь идёт об алгоритме Шора”.
С алгоритмами и общими принципами – тоже ничего не изменилось: алгоритм Шора так и остаётся единственным двигателем, к этому алгоритму даже предложены важные улучшения.
“Считается, что время ещё есть, но криптосистемы с открытым ключом, обладающие стойкостью к криптоанализу на квантовом компьютере, хорошо бы получить заранее”.
Именно этот подход сейчас и применён на практике – постквантовые криптосистемы внедрены сильно заранее.
“NIST уже несколько лет выполняет программу по выбору постквантовых криптосистем”.
В результате этой программы в августе 2024 года стандартизованы практические криптосистемы. Опять же, что касается криптосистем и данных стандартов, то тут есть и криптологические оговорки, и тонкости, даже выдвинуты весомые замечания методологического характера, но одно ясно точно: в области создания универсальных квантовых компьютеров – не определены ещё и способы физической реализации кубитов.
“Более вероятно, что к моменту создания этого самого компьютера – постквантовые криптосистемы уже давно войдут в практику. Или даже так: постквантовые криптосистемы уже будут широко использоваться, а подходящий для взлома 1024-битной RSA квантовый компьютер всё ещё будут пытаться построить”.
Как бы там ни было, но пока что всё идет к реализации прогноза: постквантовые криптосистемы стандартизовали и начали внедрять на практике, уже не как эксперимент; квантовые компьютеры, подходящие, – в теории! – для атак, всё ещё находятся на стадии “возможно, что-то более практическое сможем выяснить по результатам следующего эксперимента, если текущий эксперимент завершится успешно”.
“Тем не менее, на данный момент, массово внедрённых постквантовых криптосистем с открытым ключом – нет. Существуют только экспериментальные варианты”.
Пять лет спустя – есть такие, массово внедрённые, криптосистемы: см. выше про ML-KEM в Chrome, например. Это очень быстро, по меркам данной области.
“Скорее всего, на практике будет использован тот или иной вариант криптосистемы на эллиптических кривых”.
Пока не сбылось, к сожалению: первыми массово внедрёнными стали криптосистемы “на решётках”, как их принято называть сейчас. Но ещё может сбыться позже. Посмотрим.
“Третья фундаментальная часть практической криптографии – симметричные шифры — не столь подвержена квантовым атакам”.
Ничего не изменилось. Есть различные незначительные улучшения теоретических атак на конкретные шифры, как и ожидалось, в целом – симметричные шифры стойкость сохраняют.
“Первыми будут вводиться в строй криптосистемы, позволяющие получить общий секрет (распределение ключей). […] Не предполагается быстрый переход исключительно на постквантовые системы. Напротив, их будут вводить в качестве дополнительного инструмента, работающего вместе с классическими, хорошо проверенными”.
Именно так и сделано (но это, конечно, довольно очевидный вариант): ML-KEM – схема для распределения ключей, в браузерах для TLS внедрена в составе “гибридов” с классическими X25519 и ECDH.
В общем, прогресс в данной области за пять лет большой, выразился он в том, что постквантовые криптосистемы уже используются на практике, а квантовые компьютеры для атак на классические криптосистемы – нет, не используются, и пока не видны.
(Кстати, вот ещё тематически близкая записка – про кванты и квантовую криптографию с компьютерами.)
Комментировать »
В 2023 году я писал про такси-робота буквально следующее:
Найти концы и выработать какую-то конструктивную схему выхода из ситуации будет довольно сложно: это уже не социальная инженерия – взломанного робота, накручивающего круги по городским дворам, не сможет переубедить даже официальная служба поддержки.
Обратите внимание на “круги по городским дворам”: сегодня The Guardian сообщает про пассажира автоматического такси Waymo в штате Аризона (США). Этот пассажир оказался на несколько минут заперт в салоне автомобиля, выписывавшего круги по парковке вместо того, чтобы ехать в аэропорт. При этом пассажир звонил в службу поддержки, но там ему сразу помочь не смогли, сославшись на то, что у сотрудника поддержки “нет возможности контролировать автомобиль” (как пишут, не исключено, что на звонки в поддержку отвечал вообще AI-бот – и в это очень легко поверить).
То ли ещё будет.
Комментировать »
Кстати, про “умные колонки”. Периодически возникают занятные обсуждения того, насколько эффективно работает “физическое отключение” микрофонов в колонке. Тут не важна конкретная модель. Скажем, предполагается, что есть специальная кнопка Mute, которая принудительно отключает микрофоны колонки так, что колонка, – якобы, – совсем перестаёт прослушивать помещение. Речь тут именно про утечку информации, а не про то, что штатное выключение микрофона кнопкой на корпусе – это функция, несомненно, полезная во вполне себе обычных сценариях использования колонки.
Вообще, если подходить к вопросу совсем уж строго и обсуждать возможности, то “микрофонов” в устройстве, подобном “умной колонке”, очень много – слово “микрофонов” в кавычках тут потому, что функции микрофона могут с той или иной степенью акустической чувствительности выполнять самые разные элементы, вплоть до конденсаторов, отрезков коаксиальных кабелей и даже дорожек печатных плат, что уж там говорить про динамики и элементы-экраны, расположенные на платах устройства. В общем, остаётся только выбрать подходящую “помеху” и завести её на вход преобразователя, записывающего сигнал в цифровой форме. А в переключении программной прошивки на “режим прослушивания” поможет аппаратный сигнал на стороне процессора, показывающий статус кнопки Mute.
Всякую подобную наводку нетрудно представить как результат схемотехнической ошибки. В особо продвинутых случаях канал акустической утечки может образовываться после подачи в нужные элементы схемы высокочастотного сигнала “накачки” (подходит для всяких фильтрующих наборов с “ферритами” и пр.) – то есть, потребуется совпадение нескольких факторов. Так что, в идеале, добиться нужного эффекта при проектировании можно так, что и не всякий участник процесса разработки догадается о побочном эффекте. Поэтому, даже если по команде с кнопки от схемы штатного микрофона отключается электропитание, это ещё не означает, что при этом сама физическая кнопка, “подпёртая” транзисторами и диодами, не превращается в “навязанный” микрофон. (Такой вариант с кнопкой был бы особенно забавным.) Я, кстати, несколько лет назад довольно подробно описывал гипотетическую схему смартфона, прослушивающего разговоры.
Понятно, что обсуждение в подобном усиленном контексте схем отключения микрофонов “умной колонки” штатной кнопкой – это слишком: при таких требованиях лучше уж вообще запретить приносить колонку в “защищаемое помещение”. Но, всё же, именно такая колонка представляет собой очень удобный носитель: в колонке штатно используются сигналы высокой частоты (микропроцессоры, схемы WiFi, Bluetooth); в колонке имеется мощный процессор и средства преобразования аналоговых сигналов (в обе стороны); колонка подключена к сети передачи данных. Главное, что в колонку дистанционно устанавливаются программы-приложения. А эти приложения могут взаимодействовать с окружающей электроникой, формируя, кроме прочего, проксирующие звенья для передачи данных с “безопасных” устройств.
Комментировать »
Немного о статусе постквантовой криптографии в 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.
Комментировать »
Регулярно говорят и ещё чаще пишут, что, мол, если это GPS-трекер в наручных часах, то это “просто приёмник” – принимает сигнал со спутника, но ничего не передаёт.
Конечно, тут смотря с чем сравнивать, но, вообще-то, в современных приёмниках обычно есть и вполне себе “передатчик” – это внутренний генератор частоты (или даже сложного сигнала для коррелятора), который, грубо говоря, необходим для эффективной селекции и усиления принимаемого сигнала. Так что уже и этот внутренний генератор будет излучать через прочие схемы в эфир слабый сигнал, который, теоретически можно принимать. Помимо этого, такое сложное электронное устройство, как “умные” часы с GPS, содержит множество прочих элементов, излучающих в эфир сигналы. Понятно, что эти сигналы принимать и детектировать сложно, но, если говорить строго, то и современный приёмник – он же, в качестве побочного эффекта, и передатчик, – и микропроцессорное устройство содержит множество других схем, передающих в эфир побочные сигналы.
Впрочем, с современными часами-трекером всё обычно сильно проще, уточнений про практическую схемотехнику даже не требуется: в таких часах присутствуют, как минимум, ANT и Bluetooth, а то и полноценный WiFi-модуль. Так что, до спутника, может, и не добивает (в случае со Starlink – не факт), но точно уже внутри не “только приёмник”.
Комментировать »