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

Два принтера, которые я использую и сейчас, это Anycubic Mega X и Anycubic 4Max Pro 2.0 (далее – просто 4Max). Третий – Wanhao Duplicator 4S (как я понимаю – больше не выпускается), его я некоторое время назад всё же разобрал с прицелом на модификацию, поскольку и качество печати оставляло желать лучшего, и принтер требовал постоянной настройки и мелкой возни с механической частью. Единственное преимущество этого принтера состоит в том, что там двойной печатающий узел, который, в теории, позволяет печатать двумя типами пластика одновременно. Упомянутый принтер Wanhao вполне можно использовать, но, к сожалению, добиться устойчивого и приемлемого результата с этим устройством весьма непросто, кроме того, сам принтер на настоящий момент сильно устарел. Так что в этой записке речь, в основном, только об упомянутых принтерах Anycubic, которыми я пользуюсь. Эти принтеры, кроме кинематической схемы, отличаются тем, что первый – полностью открытый, а второй имеет закрываемый корпус, с прозрачной крышкой и дверкой.

(Продолжение с картинками.)

Читать полностью


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

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

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

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

(Starlink Dishy Teardown.)



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

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

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

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

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

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

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

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

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



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

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

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

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

Данное направление особенно интересно выглядит в контексте набирающих всё большую популярность систем биометрической идентификации по голосу.



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

Пишут, что шифры, предложенные АНБ, очередной раз не утвердили в качестве стандартов ISO (для “Интернета вещей”). Как следует из неофициальных публикаций, мотивируют решение против шифров АНБ тем, что агентство могло внести в них бэкдоры. Такая мотивировка сейчас популярна и привлекательна для СМИ, но каких-то внятных описаний бэкдоров, конечно, не предлагается. Шифры Speck и Simon – относятся к классу “лёгких” шифров, предназначенных для устройств, сильно ограниченных в вычислительных возможностях. Обычно, это микроконтроллеры, используемые для управления разным оборудованием, в том числе, бытовым. Я довольно подробно писал про Speck в прошлом году, рассматривая его реализацию для микроконтроллера AVR (точнее, для Arduino), в той записке есть схема шифра и соответствующий исходный код.

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



Comments Off on Шифры АНБ Speck и Simon в ISO

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

(Речь здесь идёт только о шифровании, обеспечение целостности и аутентификацию – оставим за рамками заметки. И там же, за рамками, очевидный момент: тезис “внутренней сети” – весьма и весьма спорный.)

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

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

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

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



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

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

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

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

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



Comments Off on Квантовое распределение ключей и практическая безопасность

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

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

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

Пусть кодирование речевого сигнала с приемлемым уровнем качества требует (с запасом) 500 байт/сек. Периоды, когда ничего не слышно, не пишутся, поэтому активности в сутки будет где-то часов пять, в самом напряжённом графике. Тогда требуемый объём памяти для хранения данных за сутки составит: 3600*5*500=9*106 байтов, или около 9 Мбайт/сутки. Сохранять такой объём в современном смартфоне труда не составляет: типичные объёмы памяти измеряются гигабайтами. Естественно, хранить запись можно незаметно для пользователя, например, зарезервировав часть памяти. И девять мегабайт – это очень большой объём речи, подавляющее большинство сценариев использования будут выдавать меньше.

Как незаметно передать несколько мегабайт информации? Неплохим вариантом является маскировка данных под случайные – шум. Для этого достаточно шифровать выходной поток, соответственно, он будет практически неотличим от (псевдо)случайных данных. Хорошим носителем для дальнейшей передачи данного “шума” являются цифровые изображения – фотографии, сделанные встроенной камерой. В них, кстати, полезный сигнал и записываться может без ведома операционной системы, непосредственно в схемах камеры. Фотографии загружаются “в облако”. Получаем стеганографический канал. Обнаруживать наличие скрытых данных может только та сторона, у которой есть соответствующий секретный ключ – для всех других “шум” выглядит как шум, обычный для цифровых камер. Проблема лишь в том, что “плотность записи” в подобных стеганографических схемах невелика, не более нескольких процентов от объёма данных, выступающих в роли носителя. Соответственно, чтобы передать 10 мегабайт скрытых данных, потребуется исходящий трафик вплоть до 500 Мбайт. С другой стороны, все 9 мегабайт разом можно было бы передать в виде одной “испорченной” фотографии – данная схема вполне реализуема, так как её тоже можно замаскировать под сбой (главное, чтобы пользователь не удалил фотографию раньше, чем она будет загружена “в облако”).

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

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



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

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

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

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



Комментарии (2) »
Навигация по запискам: Раньше »