Docker Hub заблокировал доступ с российских IP-адресов. Последовало множество насмешливых инструкций в стиле “простейшего перехода на зеркала и прокси”. Проблема тут, впрочем, привычная: в практике Docker, в сопутствующих скриптовых обвязках (всякий CI/CD), и так не всё хорошо с аутентификацией источников сборок и самих “контейнеров”. Методы, типа DCT (Docker Content Trust), конечно, есть, это известно. Вопрос в их эффективности и использовании на практике. А прокси и “разбегание” зеркал – тут только добавляют ненадёжных слоёв. Кстати, целевые манипуляции часто удобнее проводить именно с точками выхода прокси и точками входа зеркал (вспомните, как работает разное перемешивание и, скажем, onion routing – тут ситуация обратная).

(Update, 09/06/24: доступ вернули через несколько дней.)



Комментарии (2) »

NRO (штатовская военно-космическая разведка) продолжает выводить на околоземную орбиту свою специальную часть от более общей программы, связанной со Starlink от SpaceX. В этот запуск отправили, насколько можно понять, несколько десятков аппаратов. Вообще же речь тут про сотни спутников, которые, скорее всего, используют некоторые базовые компоненты, совпадающие со спутниками Starlink, а также разделяют со Starlink, как системой, технологии запуска и управления. Эти спутники выводят на низкую орбиту (от 300 км), так как задумана именно близкая к поверхности, быстрая система, которая позволит эффективно решать задачи разведки новыми способами: много точек наблюдения, обеспечиваемых работающей синхронно однотипной аппаратурой.

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



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

Если кто-то сомневается в стремительности наступления Нового средневековья, то вот ещё свежий пример: Высшая школа экономики (ВШЭ) предлагает использовать предоставленную “Яндексом” говорилку-синонимайзер, которая даже признаки делимости не обрабатывает, для того, чтобы “выбрать профессию и образовательную программу абитуриентам”.

То есть, сначала говорилки, построенные на генераторах псевдослучайных цепочек слов, “обучали”. Потом объявили, что говорилки обучились и “успешно сдают экзамены” (ЕГЭ, например; это при том, что такая говорилка не сможет даже найти на столе и заполнить анкету). Видимо, сдавшие экзамены говорилки можно использовать для работы с абитуриентами. А на следующем шаге – уже и непосредственно в процессе обучения обучающихся (“человеков”). Нейросеть с LLM и сейчас способна читать лекцию. Непрерывно. По любому, вообще говоря, предмету, даже по полностью вымышленному.

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

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



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

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

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

О принципах, на которых работает GPS-спуфинг (или GNSS-спуфинг) – я довольно подробно писал почти восемь лет назад.



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

На Ars Technica попался занятный краткий обзор научного исследования, посвящённого выяснению того, как использование в заголовках СМИ оборотов типа “учёные полагают”, “учёные думают” (в оригинале – scientists believe, так как исследование об английском языке) влияет на читательскую оценку “достоверности” понятий, упомянутых в том же заголовке. Собственно, противопоставлены там слова “думать/полагать” (believe) и “знать” (know), а абсолютно точно перевести на русский довольно сложно. То есть, предположим, читатели читают заголовки: “Учёные думают, что на Марсе есть вода” и “Учёные знают, что на Марсе есть вода” – влияет ли разница в семантике заголовков на классификацию конкретным читателем утверждения “на Марсе есть вода” как являющегося бесспорным “научным фактом” или как “одного из возможных мнений”? Исходное исследование строится на опросе многих людей-участников, которым предлагали оценить различные варианты заголовков.

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

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



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

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

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



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

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

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

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

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



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

В Chrome версии 124 всё же включили по умолчанию гибридную криптосистему с постквантовой стойкостью X25519Kyber768 для TLS. Проверить можно на тестовом TLS 1.3 сервере: tls13.1d.pw – там поддержка есть с сентября прошлого года.

(Поскольку “Яндекс.Браузер” является клоном Chrome/Chromium, то поддержка X25519Kyber768 по умолчанию должна появиться и там.)



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

Сообщают, что “Яндекс”, вместо поиска сайтов с выдачей ссылок на найденное, переходит к использованию синонимайзера, который будет пользователю тут же, в приложении от “Яндекса”, показывать переписанный текст, “найденный в Интернете”, – то есть, скопированный с тех же сайтов, – но уже без того, чтобы пользователь куда-то там переходил, на какие-то сайты-источники текстов для “Яндекса”. Решение называется “Нейро” и относится к модному классу ИИ LLM. Да, формально, там всё ещё упоминается “отдельный блок ссылок” на источники, но “задача пользователя” уже формируется как получение ответа в виде развернутого текста тут же.

Занятно, что в описании данного сервиса утверждается следующее: “Пользователь может задать ему любой вопрос. Чтобы ответить на него, нейросети изучат и подберут необходимые источники в результатах поисковой выдачи”. Обратите внимание: “нейросети изучат и подберут”. То есть, тут, буквально и прямолинейно, развивается основная проблема, связанная с непониманием современных LLM/ИИ-сервисов пользователями: пользователи ошибочно полагают, что нейросети “изучают” (“анализируют”) источники и потом готовят ответ. Однако “многослойные синонимайзеры” ИИ ничего не исследуют в принципе, поскольку лишь строят цепочки слов.



Комментарии (1) »

В марте довольно много писали про новую атаку на SHA-256, “с обнаружением коллизий”. Вообще, тут нужно отделять академические атаки от практики, условно говоря, всяких биткойнов: в исходной работе (“New Records in Collision Attacks on SHA-2”, Li, Liu, Wang) речь идёт про академические атаки на урезанную “функцию сжатия” (см. ниже) из состава SHA-2 (SHA-256 – это разновидность SHA-2), да ещё и со специально подобранным предыдущим состоянием. Это общепринятый подход к исследованию стойкости хеш-функций, результат существенно лучше предыдущих достижений, но нужно учитывать, что он не обязательно приводит к практической атаке на полную хеш-функцию. В статье сказано именно про “практическую атаку”, это верно, однако это разная “практика”.

Возьмём в качестве примера SHA-256 и одну из практических (в академическом смысле) атак, представленных в упомянутой выше работе. Ядром схемы хеш-функции SHA-256 являются преобразования, соответствующие симметричному шифру. Повторно выполняемые раунды преобразований шифра, внутри хеш-функции, и образуют так называемую “функцию сжатия” – это важнейший элемент. Входной текст для преобразования в SHA-256 разбивается на блоки. Блок – это последовательность байтов, соответствующая разрядности функции, здесь – 256 бит или 32 байта. Блоки обрабатываются функцией сжатия, внутри которой выполняется заданное количество раундов – то есть, повторное применение одних и тех же преобразований, в цикле, к обрабатываемому блоку. Далее речь будет идти только про один блок, а не про полный входной текст.

После каждого раунда, блок, в результате применения преобразований, изменяется и потом снова подвергается тем же преобразованиям, которые опять изменяют блок. Эта комбинаторная часть позволяет добиться нужного разрежения для отображения входных блоков в выходные значения. Штатная схема SHA-256 использует 64 раунда в функции сжатия. Атака, о которой идёт речь, работает для 39 раундов (обратите внимание: с подобранным начальным состоянием – это очень важный момент).

Что это означает? Это означает, что исследователи нашли и предъявили кортеж из трёх конкретных значений (чисел или массивов байтов – как хотите), которые, будучи подставленными в урезанную до 39 раундов сжатия версию хеш-функции SHA-256, дают одинаковый результат. Одно из этих значений – это начальное состояние, устанавливаемое перед вызовом функции сжатия внутри урезанной SHA-256. То есть, при штатной реализации SHA-256 – этим состоянием либо был бы предыдущий обработанный блок, либо начальные константы из спецификации SHA-256. Два других упомянутых значения – это различающиеся в некоторых байтах входные блоки. Обработка этих блоков при указанных, весьма строгих, условиях – даёт коллизию. То есть, академическая “практическая” демонстрация, с конкретными числами. Это вполне себе строгий и разумный способ анализа стойкости преобразований. В данной науке это называется SFS-коллизия (от Semi-Free-Start). Но, опять же, очень далеко от демонстрации реальной, практической, “уничтожающей” коллизии SHA-256, то есть, демонстрации двух различных входных текстов, дающих одинаковый результат хеш-функции. (Что, конечно, не отменяет заметного продвижения.)

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

Естественно, обнаружение точек совпадения для уменьшенного количества раундов нередко даёт инструменты для взлома всей хеш-функции целиком. Именно поэтому академические атаки на примитивы с урезанным количеством раундов – важнейший инструмент. Однако, является ли тот факт, что коллизия найдена для более чем половины количества раундов, автоматической гарантией успешного применения того же метода к, предположим, половине оставшейся половины? Нет, совсем не является. Методы тут развиваются, так сказать, полностью “нелинейно”, так что непреодолимое вычислительное препятствие может возникнуть хоть бы и на каждом следующем раунде – потребуется полностью переделать метод атаки. Собственно, это очередное улучшение атак на SHA-2 как раз построено на новых методах, если сравнивать с теми методами, которые использовали для атак на MD5 и пр.

Конкретный пример, взятый из исходной работы: для 39 раундов SHA-256, при заданном начальном состоянии, получаются совпадающие значения для разных входных блоков (выдача программы, прилагаемой к работе):

431cadcd ce6893bb d6c9689a 334854e8 3baae1ab 038a195a ccf54a19 1c40606d
431cadcd ce6893bb d6c9689a 334854e8 3baae1ab 038a195a ccf54a19 1c40606d

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

d33c0cff 17c9de13 21f528f0 3362e217 563f1779 521a1b9c df062e86 19fb5973 
105d6c34 43ceb0ad 120ba1a0 3362e217 d6dd86e0 7da567b5 cf1ca736 19fb5973

Это, ещё раз, никак не уменьшает ценности результата для 39 раундов, но показывает, что для полной SHA-256 всё, – пока что, – хорошо.

Криптографические хеш-функции отображают сообщения произвольной длины в блоки фиксированной длины, так что, математически, коллизии там есть по определению. Другое дело, что если хеш-функция хорошо отображает множество входных текстов в, скажем, 2^256 выходных значений, то о коллизиях “на полном переборе” можно не особенно задумываться: мало кто может создать и записать даже 2^128 текстов. Атаки с обнаружением точек совпадения в функции сжатия как раз, потенциально, выявляют дефекты отображения, которые могут позволить найти коллизии без необходимости полного перебора. А возможно, что и позволят найти способы решения гораздо более сложной задачи вычисления прообраза, – то есть, подбора входного текста по значению хеш-функции.



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

Касательно свежей истории с обнаружением закладки/бэкдора (CVE-2024-3094) в пакете xz (liblzma), которая на системах с systemd/glibc, потенциально, протягивалась в sshd: понятно, что такого может быть ещё много в уже массово используемых библиотеках, но всё равно это весьма неплохая и практическая демонстрация того, что подобное удаётся быстро обнаружить силами сообщества. По этой теме я не так давно писал, что, во-первых, добавление закладок и прочего вредоносного кода – это совсем не какая-то особенность Open Source; во-вторых – доступность исходников связана с возможностями по добавлению и обнаружению вредоносного кода, но вовсе не так прямо, как часто говорят и пишут.



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