Небольшая подборка избранных записок, опубликованных на dxdt.ru в феврале 2024 года:

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

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

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

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

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

DNSSEC и особенности развития технологий – краткая заметка о том, что хрупкость, которую DNSSEC вносит в DNS, делает перспективы DNSSEC туманными.

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



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

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

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



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

Отдельные занимательные эффекты, связанные с переключением морфологических веток, можно наблюдать в автоматических переводчиках с ИИ. Кстати, надо сказать, что автоматический переводчик “Яндекса“, приправленный LLM ИИ, при переводе специальных фраз с английского на русский действует несколько лучше переводчика от Google (не менее приправленного). Вот примеры, иллюстрирующие и переключение интерпретаций по контексту, и качество.

1.
Исходная фраза:
“As a sailor once said: having logs removed in timely manner keeps bank totally speckless.”

Google:
Как однажды сказал один моряк: если вовремя убрать бревна, берег будет совершенно чистым.

“Яндекс”:
Как однажды сказал один моряк: своевременное удаление бревен позволяет сохранить берег совершенно чистым.

2.
“As a bookkeeper once said: having logs removed in timely manner keeps bank totally speckless.”

Google:
Как однажды сказал бухгалтер: своевременное удаление бревен делает банк совершенно чистым.

(Здесь Google предпочёл “брёвна” в банке, а не несколько более уместные “журналы”, как “Яндекс”.)

“Яндекс”:
Как однажды сказал один бухгалтер: своевременное удаление журналов позволяет сохранить банк полностью незапятнанным.

3.
“Bookkeeper mumbled the old nautical adage: having logs removed in timely manner keeps bank totally speckless.”

Google:
Бухгалтер пробормотал старую морскую поговорку: своевременное удаление бревен делает берег совершенно чистым.

“Яндекс”:
Бухгалтер пробормотал старую морскую пословицу: “своевременное удаление бревен сохраняет банк совершенно чистым”.

(Использование nautical успешно превращает logs в “брёвна”, сохранив “банк” силами слова bookkeeper, в котором три “дуплета”, но зато переводчик “Яндекса” даже кавычки поставил.)



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

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

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



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

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

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



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

Обновил страницу “Избранные записки“.



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

Описание того, как в iMessage внедрили вариант постквантовой криптосистемы Kyber1024, Apple сопровождает иллюстрацией, на которой популярные мессенджеры ранжированы по степени “защиты” пользовательских сообщений криптографическими методами. Telegram находится на самом низком, нулевом уровне (Level 0 – защиты E2E нет), вместе со Skype и др. – см. скриншот ниже.

Messengers and Levels



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

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

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

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

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

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



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

Затихшая OpenAI

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



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

Немного технологических параллелей. Предположим, что на сервер баз данных, через сеть, отправляются запросы добавления записей. При этом каждый запрос требует завершения транзакции – то есть, обратно клиенту должен прийти пакет, подтверждающий выполнение, после этого клиент может отправить следующий запрос. В условных терминах привычного SQL – это будут команды INSERT. Известно, что в такой схеме производительность, по числу добавлений в секунду, определяется сетевой задержкой. То есть, если пакет находится в пути 10 ms, то сервер должен дожидаться следующего INSERT 20 ms (потому что в обе стороны), а это гарантирует верхний предел в 50 записей в секунду, даже если сервер выполняет одну запись за 1 микросекунду (на несколько десятичных порядков быстрее).

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

Естественно, эта особенность действует не только для баз данных: ограничивающее влияние сетевых задержек на транзакционные схемы с подтверждением есть в TCP (где с этим явлением борются: см. TCP Fast Open), в TLS (здесь тоже борются: см. TLS Early Data/0-RTT и др.), и в других протоколах. Схема обобщается и на многие решения, которые не имеют отношения к интернет-протоколам.

Рассмотрим такой сценарий: РЛС, предназначенная для определения координат и скорости “быстрых объектов” на “существенном расстоянии”. Тривиальная импульсная РЛС, полагающаяся на отражения отдельных зондирующих импульсов в строгом порядке, оказывается в такой же ситуации, как и сервер баз данных выше (при том, конечно, что РЛС появились раньше таких серверов). Излучили короткий импульс – приняли отражённый сигнал, обработали, отправили очередной импульс – если время до цели 1 ms (300 км, примерно), то получается разрешающая способность наблюдения в 500 Гц, максимум. А если цель дальше, то будет меньше. Хуже всего, что отражённый сигнал вообще может не прийти обратно к точке излучения на нужном уровне. Но если импульсы отправлять чаще, не ждать отражения, или даже использовать непрерывный зондирующий сигнал, то ситуация, в теории, резко улучшается, как и в случае с сервером баз данных: можно обрабатывать отражённый сигнал с разрешением хоть в гигагерц. На практике, впрочем, возникнут проблемы, потому что РЛС – это не сервер баз данных. Принимать сигнал одновременно с излучением – весьма трудно, если не использовать разнесённые в пространстве антенны (бистатическая радиолокация). А увеличение частоты следования зондирующих импульсов требует использования более сложных алгоритмов кодирования и обработки, которые позволяют различать отражённые сигналы, соответствующие различным зондирующим импульсам. Это, впрочем, обычная задача для современных РЛС.



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

В браузере Chrome версии 122, вышедшей на днях, включена по умолчанию поддержка постквантовой гибридной криптосистемы TLS X25519Kyber768 (раньше данная возможность включалась вручную, через флаг). Данная криптосистема уже некоторое время поддерживается моим экспериментальным сервером TLS – посмотрим, увеличится ли количество подключений с X25519Kyber768: у этой криптосистемы на сервере повышен приоритет, но подключений пока что очень мало (естественно, там далеко не только браузеры в качестве клиентов).

(Кстати, так как популярный “Яндекс.Браузер” является клоном Chromium/Chrome, а TLS-стек там соответствует версии Chromium, то и в браузер от “Яндекса”, как я понимаю, поддержка постквантовой криптосистемы в TLS тоже приехала автоматически.)

(Update, 07/03/2024: оказывается, в последний момент выход передвинули на версию 124.)



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