Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
В продолжение комментариев к заметке про управляемые пули. Интересно посчитать, примерно прикинуть, на каких интервалах времени должна работать гипотетическая система, обнаруживающая снайперов путём наблюдения полёта пули. Обнаружить стрелка нужно до того, как пуля поразит цель. Это только на первый взгляд кажется фантастикой. Существуют системы, работающие с куда более быстрыми процессами, чем полёт пули.
Итак, предположим, что скорость пули в момент вылета из ствола винтовки составляет 1000 м/с. Это очень и очень высокая оценка. Обычный винтовочный показатель – 700-900 м/с, для мощного патрона, заметьте. Дистанция до цели – 700 метров. Это довольно далеко (хотя рекордные показатели сейчас превышают километр). Понятно, что на всем протяжении полёта пуля теряет скорость. Да, для очень точных результатов нужно ещё учитывать, что траектория не будет прямой линией. Однако в нашем случае и без этих деталей понятно, что оптимистичная оценка времени полёта – около 800 мс (0.8 с). Важная особенность: получается, что полёт пули будет сверхзвуковым на всём протяжении, так что звуковые детекторы отпадают.
Для наблюдения за пулей используется сенсор, работающий с тем или иным электромагнитным полем (излучением). Пусть это будет специальный лидар, или РЛС миллиметрового диапазона (тут есть свои трудности с выбором технического решения, но это другая история). Для преодоления пути 700*2=1400 м (до винтовки и обратно) сигналу РЛС потребуется примерно 5 мкс (5*10-6 секунды). То есть, за одну десятую часть времени полёта пули (0.08 с), зондирующий сигнал успеет сбегать до места нахождения снайпера и обратно примерно 16000 раз. Понятно, что требуется время на генерацию зондирующего сигнала и обработку принятого отражённого, и всё такое прочее. Но всё равно масштабы времени столь различаются, что сенсоры нашей гипотетической системы, пока пуля летит, будут успевать сканировать большой сектор пространства.
Вернёмся к одной десятой от подлётного времени. 0.08 секунды. Микропроцессор, работающий с тактовой частотой в 10 МГц и выполняющий одну команду за такт, успеет пробежать программу из 800000 команд. (Если, конечно, программисты не “накосячат” в коде и штука не повиснет раньше.) Это много.
Что в итоге? Во-первых, есть куча времени на то, чтобы промерить траекторию полёта пули (тысячи зондирующих импульсов); во-вторых, есть ещё больше команд вычислителя, которые за то же время рассчитают возможные точки попадания пули. И, естественно, местоположение снайпера. И вот остаётся только один занятный вопрос: а не проще ли будет обнаруживать этой сверхбыстрой суперсистемой не пулю, а самого снайпера, до того, как он выстрелит?
Комментарии (20) »
В воскресенье продолжаем тему управляемых пуль. С ними связано много интересных аспектов. Так, например, обычное баллистическое исследование предполагает, что пуля в полёте не корректировалась. Измерения, выполненные в точке попадания пули, помогают определить, где находился стрелок. И, что не менее важно, где стрелок никак не мог находиться. Но методика работает только для истинно “баллистических” пуль. Если пуля активная, то ситуация сильно меняется.
Тут можно сразу построить специальные “теории заговора”, предположив, что кто-то уже давно обладает корректируемыми пулями. Пусть даже их делают по дорогущему спецзаказу, в секретной лаборатории, партией из нескольких штук. Использование такой пули заведомо портит результаты баллистической экспертизы. Впрочем, нужно ещё добиться, чтобы странная пуля при этом не попала в руки к экспертам. Получается противоречие, да.
Можно не строить теорий заговора, а построить теорию дополнительной маскировки для снайпера: сейчас придумывают автоматические системы, которые станут вычислять местоположение стрелка практически в режиме реального времени, проанализировав звук выстрела и пронаблюдав полёт (попадание) пули. Маневрирующая пуля делает работу такой системы гораздо более сложной. И тут противоречий нет.
Комментарии (35) »
Если посмотреть на проблематику “самоуправляемых пуль будущего” чуть более системно, то окажется, что там есть три главных инженерных интерпретации задачи. Две – едва ли не реальных, а одна – совсем фантастическая.
Интерпретация первая. Пуля, после того, как покинула ствол, автономно корректирует свой полёт и следует идеальной траектории, как если бы выстрел был произведён из оружия без изъянов, в вакууме. Строго говоря, это вовсе не самонаводящаяся пуля, а лишь “корректируемая”. Отличие от самонаводящейся тут фундаментальное: если за время полёта пули цель переместилась, а стрелок не взял нужного упреждения, то корректируемая пуля промахивается. Иными словами, активная корректируемая пуля – просто демонстрирует сверхстабильный полёт, компенсируя действие внешних (атмосферных) факторов. Цель такая пуля не преследует: хорошо прицелился стрелок – есть попадание; прицелился плохо или цель увернулась – промах.
Второй вариант. Действительно самонаводящаяся пуля: летит не по заданной траектории, а, напротив, сама изменяет траекторию для того, чтобы попасть в цель. Это как раз пуля из фантастических произведений. Стрелок отметил цель, потом выстрелил “как придётся”, примерно в направлении этой цели, а пуля сама наводится, агрессивно маневрируя. Если стрелок неряшливый, то пули потребуется больше энергии для того, чтобы компенсировать ошибки.
В случае с корректируемой пулей решение может быть полностью автономным: внутри пули размещается инерциальная навигационная система, на основе её данных корректируется полёт. Не требуется загружать “на борт” пули какие-нибудь траекторные указатели. Ускорение при выстреле – известно (либо его можно измерить); второй необходимый параметр – длина канала ствола, – также известен заранее. Корректируемая пуля подходит для снайпера и, если вычеркнуть необходимый учёт атмосферных условий при точной стрельбе на большую дальность, вроде бы, не противоречит сложившейся стрелковой практике. При стрельбе по движущейся цели потребуется брать упреждение, вообще нужно выставлять правильные углы прицеливания, учитывая баллистику, ну и так далее – читайте соответствующие наставления, как говорится.
Пуля самонаводящаяся устроена заведомо сложнее, так как здесь ещё требуется либо система связи с прицелом оружия, для передачи целеуказания, либо собственные сенсоры, позволяющие не только “наблюдать” цель, но и распознавать её, либо и то, и другое, и ещё куча электронного барахла на борту – ибо получается уже не пуля, а некая “ракета” (пусть и без двигателя). Заметьте, что из-за размеров пули заведомо возникают большие трудности с размещением сенсоров системы наведения: ни антенны, ни мощного объектива к пуле прикрепить не получится. Тем не менее, проект пули, вокруг которого сейчас некоторая шумиха, как раз представляет собой самонаводящийся вариант.
Ну а третий, фантастический, вариант появляется, если представить, что между самонаводящейся пулей и её целью возникло препятствие. По условиям задачи, пуля умеет маневрировать. Вопрос: может ли она облететь препятствие? Понятно, что информация о текущем положении цели имеется. Есть проблема с детектированием самого этого препятствия и определением его формы. Хотя, на фоне того, что самонаводящаяся пуля уже как-то справляется с селекцией цели, следующий уровень, подразумевающий наблюдение прочих объектов, не выглядит недостижимым. Или всё ж выглядит?
Комментарии (10) »
В комментариях к фотографии ночного полёта F-35 интересовались: что это за огни зелёные видны на фюзеляже и киле? Так вот, это особые огни – formation lights (или огни полёта строем, строевые огни). Цель их использования – обозначить контуры самолёта при ночном полёте, чтобы пилоты соседних истребителей видели машины друг друга. Поэтому по обеим сторонам самолёта цвет одинаковый (зелёный, в данном случае). Думаю, очевидно, что малозаметные истребители ночью не обязательно используют мощные проблесковые огни для обозначения своего местоположения.
Используемые “ночные огни” специально выполняются неяркими. В конструкции не используют ламп, что, кроме прочего, повышает надёжность. Есть огни, работающие в видимом диапазоне, есть инфракрасные, и есть комбинированные, которые можно переключать между режимами (видимый/ИК). При этом огни видимого диапазона не имеют побочной тепловой сигнатуры. А ИК-огни используются вместе с приборами ночного видения.

(Фото: Lockheed Martin.)
Комментарии (1) »
Интересно придумать побочные каналы передачи информации, которые могут уже по причине своей “побочности” служить хорошей основой для стеганографии, сокрытия самого факта передачи информации. Речь о сценарии, когда кто-то (пусть это будет персонаж шпионского романа), находящийся, допустим, под наблюдением, скрытно передаёт данные третьей стороне.
Вообще, всякие наводки/излучения, с которыми борются, защищая информацию, годятся для организации подобного скрытого канала. Просто достаточно естественную наводку не блокировать. Скажем, годится сеть электропитания компьютера: в таком случае принимающая сторона ставит “прослушивающее” оборудование на линию, а тот, кто информацию передаёт, просто просматривает определённые файлы на своём компьютере – всё как обычно. Понятно, что есть куча сходных ЭМ-вариантов: сигнал, транслируемый монитором; наводки от принтера и так далее.
Есть в меру литературная идея с “передатчиком”, модулирующим свет лампы освещения в квартире: специальная лампа незаметно мерцает, мерцание представляет собой шумоподобный сигнал, передающий информацию; принимается утечка с помощью небольшого телескопа, который установлен в припаркованном на улице автомобиле. Проблема тут одна: слишком медленный канал получается, так как лампы освещения – это не лазерные стробоскопы.
Едва ли не идеальное решение – Wi-Fi. Источник достаточно мощный, частота высокая. Можно намеренно поставить жучок в точку доступа. Жучок подмешивает в сигнал “дополнительную нагрузку” – то есть, организует спланированную утечку, работающую без всякого вмешательства пользователя, который, как обычно, просто работает с документами на своём компьютере.
Наверняка, есть ещё немало занятных идей.
Комментарии (13) »
В комментариях к записке о долгожданных летающих автомобилях приходят к выводу, что таковые не появятся никогда (обидно!) – причина: слишком много проблем несёт с собой практическая массовая эксплуатация подобных транспортных средств.
Кстати, резкое возрастание сложности с переходом от плоского автомобильного движения к “объёмному”, напоминает известную с древности задачу удвоения куба. Квадрат удвоить легко: достаточно построить второй квадрат на диагонали данного. При этом удвоение куба (при помощи циркуля и линейки) – неразрешимая задача. Такая вот шуточная (отчасти) историческая параллель.
Комментарии (5) »
А вот персональные летающие автомобили – едва ли не самая ожидаемая штука, которая, как принято считать, станет доступна в радужном будущем. Занимательные рисунки футурологов, прогнозы насчёт появления таких автомобилей (ну или массовых персональных самолётов, дирижаблей – что практически то же самое) “через пятьдесят лет” известны уже более века.
За прошедшие десятилетия появились многие системы, механизмы и технологии, которых в древних прогнозах не было. Конечно, самый яркий пример – это очень персональные компьютеры, служащие средством коммуникации (всякие смартфоны и тому подобные штуки). А вот персональные летающие автомобили так и остаются в прогнозах. Более того, похоже, сейчас можно без особого риска прогнозировать, что “через пятьдесят лет” никаких летающих автомобилей в гараже граждан развитых стран так и не появится. Да, есть большая проблема с массовым переходом от автоматизированного машинного движения на плоскости к такому же движению в трёхмерном пространстве.
Комментарии (22) »
Продолжим тему восстановления недоуничтоженных шредером документов. В комментариях к прошлой записке jno подтверждает, что восстановить простую “лапшу” – возможно. Напомню, что “лапша” – это вариант, в котором шредер разрезает лист на множество одинаковых узких полос, в одном из направлений, например, вдоль. Вообще, почему-то часто в ответ на вопрос о том, сколько вариантов потребуется перебрать для восстановления документа, разрезанного на n аккуратных полосок, приходится слышать о числе n! – очень много, да. Естественно, если бы это было так на практике, то для уверенного уничтожения оказалось бы достаточно резать листы вдоль на, скажем, 29 полосок (любой ширины, заметьте!). К счастью исследователей мусора, всё обстоит иначе, и факториал, задающий верхний предел для перестановок полосок, тут не играет решающей роли.
Из-за того, что в исходном документе содержится некоторая дополнительная структура, для восстановления не нужно перебирать все варианты перестановок. Так, если вы можете точно определить, что две данные полоски были (или не были) соседними (даже без выяснения правый или левый “сосед” обнаружился), то сложность восстановления всего документа из “лапши” не превысит n2. Занятно, что восстановление чистого белого листа оказывается более проблематичным, чем листа с текстом. Если, конечно, предполагать, что в качестве опорной структуры используется начертание букв и строк текста (или некий рисунок). С другой стороны, зачем восстанавливать чистый лист?
Полезную информацию могут нести и сведения о том, как именно шредер режет бумагу. Кроме простой “лапши” есть набор других методов: например, полоски могут разрезаться на множество кусков в поперечном направлении. Если все шаги резаков задаются равными интервалами, то документ оказывается преобразован в некоторую “матрицу”, размеры изображений-элементов в которой равны. И этот вариант самый лучший. Потому что если шредер режет лист в куски произвольных (нерегулярных) размеров, то собрать их может оказаться проще: размеры и форма исходного листа известны, так что появляется дополнительная информация о возможном расположении каждого из найденных фрагментов. (В случае с регулярной сеткой – все фрагменты, с точки зрения только расположения, взаимозаменяемы, это понятно.)
И, конечно, можно устроить шредер так, что восстановить документ будет невозможно: достаточно измельчать бумагу в труху, пусть и механическим способом.
Комментарии (1) »
Занятное состязание DARPA провело осенью прошлого года: участникам предлагалось восстановить информацию, содержащуюся в порезанных шредером записках (и зарисовках), сделанных от руки. То есть, основная идея там в том, чтобы показать, что при помощи современных информационных технологий и, связанных с ними, методов совместной работы, можно восстановить сведения из “уничтоженных” документов. Очевидно, шредер – один из типичных инструментов уничтожения бумаг. Как обычно, условия соревнования изящны: предлагалось не просто прочитать исходный текст, а решить некоторые задачи, использовав информацию из восстановленного документа в качестве исходных данных. Например, требовалось определить географическое положение места, описанного в документе, и так далее.
Состязание началось 27 октября, а ответы на все пять головоломок от команды-победителя были получены 2 декабря. Недолго, если учитывать, что как минимум две задачи выглядят довольно сложными из-за тщательности “уничтожения” исходного документа. В общем, очередной раз подтвердился хорошо известный факт: для уничтожения бумажного документа – его нужно дотла сжигать в камине (ну или в особой бочке, ага). Да. И тщательно измельчать образовавшийся пепел.
Подробности и исходные задачи – на специальном сайте.
Комментарии (5) »
Кстати, известно, что для развития древней криптографии большое значение имела система письменности. Так, фонетический алфавит, состоящий из букв, позволяет конструировать шифры простой замены, которые можно эффективно использовать без всяких там вычислительных машин. (Такой шифр, например, основан на подстановке вместо буквы открытого текста буквы шифротекста из того же алфавита с использованием некоторой таблицы замены.) В фонетическом письме слово записывается несколькими буквами, при этом буквы фиксируют не смысл слова, а его звучание. По сути, фонетическое письмо – первая система кодирования звука, с целью записи для последующего воспроизведения. Отчасти поэтому, используя алфавит и сложные правила подстановки, удавалось проектировать и внедрять довольно стойкие, – ну, для докомпьютерной древности, – шифры.
А вот если у вас иероглифическое письмо, то ситуация складывается иная. Иероглифов много. Для записи сложного понятия может быть достаточно одного иероглифа. Да, в теории, подстановку по таблице можно сделать и здесь. Более того, расшифровка содержательного сообщения из трёх-пяти иероглифов без знания ключа может оказаться принципиально невозможной: из-за того, что валидных вариантов слишком много. Но при этом таблица замены должна быть огромной. Это проблема. Фонетический алфавит позволяет представить все слова соответствующего языка, и при этом содержит обозримое число знаков. А иероглифов слишком много: даже если ограничить список допустимых в сообщениях символов, таблица получится неудобной. Ну и как тут развивать криптографию?
Комментарии (13) »
История с чередой “поломок” удостоверяющих центров, выдающих SSL-сертификаты, наводит на довольно логичный вывод: коммерческую систему “управления доверием” могут очень сильно перекроить. Потому что момент подходящий.
Вообще, иерархия удостоверяющих центров в реализации браузерных криптографических схем с SSL вводится при помощи одного вроде бы простого утверждения: обязательно требуется механизм, позволяющий проводить идентификацию предъявителей сертификатов с помощью “третьей стороны”. Напомню простой пример: кто-то предъявляет браузеру SSL-сертификат, выпущенный для домена test.ru – откуда браузер знает, что этот кто-то действительно имеет отношение к test.ru? Выпустить самоподписанный сертификат для test.ru может кто угодно.
Страшилка: этот “кто угодно” может вмешаться в канал связи и выдать себя за владельца test.ru. Неожиданным образом, этот момент лежит в основе продаж SSL-сертификатов. Предлагается поступать так: пользователь выбирает некую доверенную организацию, которая проверяет, что предъявитель сертификата действительно представляет test.ru; теперь пользователь принимает только те сертификаты для test.ru, которые подписаны доверенной организацией. Вроде бы, все довольны.
Но в реальности – проблемы. Например, оказалось, что эти самые “доверенные организации” могут подписать что угодно. Либо в результате взлома, это как раз основа нынешней шумихи, либо вполне себе осознанно, скажем, действуя в рамках сотрудничества с производителями систем мониторинга трафика. Самое занятное, что ни пользователь браузера, ни тот, кто приобретает SSL-сертификат, не могут повлиять на ситуацию и как-то предотвратить подобное использование имеющейся инфраструктуры: в браузеры встроены десятки “корней” удостоверяющих центров (УЦ), каждый из них технически может подписать любую ерунду. Выходит, что для пользователей и потребителей SSL-сертификатов от коммерческих УЦ заявленный механизм идентификации не факт, что работает. (Да, понятно, что можно возразить: нет, работает! Но плана для проверки всё равно не реализовано.)
Кстати, а нужен ли вообще этот механизм удостоверения “третьей стороной”? Существует другой подход, предусматривающий сохранение некоторого уникального “отпечатка” (это может быть открытый ключ, например) при первом “контакте” с другой стороной, участвующей в обмене данными. В дальнейшем проверяется, не изменился ли отпечаток. Понятно, что если в канал связи кто-то вмешался и выдаёт себя за другого, то такая подмена будет обнаружена (если, конечно, этот “другой” не принял чужую личину с самого начала). Например, так работает SSH. Тут есть свои проблемы, их много. Но есть и крайне привлекательный момент: в схеме участвуют только те, кто действительно обменивается данными и им не нужно звать “третью сторону”, в том числе, в финансовом плане.
Естественно, описанные трудности SSL касаются только имеющейся практической реализации. Если у вас есть возможность пользоваться действительно добротными услугами по идентификации от “третьей стороны”, то полученная схема, надстроенная поверх непрерывного контроля подлинности при помощи уникальных отпечатков (см. предыдущий абзац), оказывается весьма сильной защитой.
И вот тут появляется DNS и DNSSEC. В DNS единый корень. Как раз доменное имя (читай – инфраструктура DNS) позволяет типичному пользователю установить “первый контакт” с неизвестным ему ранее сайтом. DNSSEC, понятно, также содержит единый корень и подписать “что попало” – не выйдет, так как доменные имена должны быть уникальны. С чисто технической точки зрения с помощью DNSSEC можно удостоверить не только адресную информацию, но и дополнительные сведения, например, указать, какие именно сертификаты – или, что конкретнее, криптографические ключи, – может использовать сайт под данным доменом. Заметьте, существующая иерархия УЦ здесь уже не нужна!
Но главное, что криптографическая часть от DNSSEC уже неплохо популяризована, корневые ключи сгенерированы, а у руля уже стоит бренд VeriSign, который хорошо узнаваем и в отношении SSL-сертификатов.
Так что шумиха раскручена не просто так. Наверняка готовятся очень интересные перемены.
Дополнение: да, понятно, что при условии изменения порядка и появления у DNSSEC новой роли, корректирующей судьбу SSL, к бизнесу по “управлению доверием” прямо подключаются регистраторы доменов.
Комментарии (3) »
Новый