Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
В блоге Security Fix пишут про новый метод атаки на шифрование GSM (A5/1). Если изложить кратко, то предложен некий полностью пассивный метод (“взломщик” только слушает эфир), позволяющий, в теории, на оборудовании стоимостью около двух тысяч долларов раскрывать шифрованный трафик GSM приблизительно за час. Новизна тут вот в чём: пассивная атака на очень дешёвом оборудовании.
Комментарии (6) »
Деятельность нехороших программ-роботов (ботов), засыпающих спамом комментарии блога, заставляет использовать для борьбы со спамом в комментариях капчу. Капча – это задача, решение которой для человека не составляет труда, а робота ставит в тупик (тут, кстати, есть некоторое глубокое пересечение с NP-полными задачами, – шутка).
Для отправки комментария капчу требуется решить. Не слишком вежливо по отношению к комментатору, но что делать – я пробовал отключать капчу на dxdt.ru, результат ошеломляющий: несколько сотен комментариев со ссылочным спамом от ботов в сутки.
Так вот, капчи бывают самые разные. Я уже опробовал на dxdt.ru несколько вариантов, самые ранние из которых были текстовыми, а не “картиночными”.
Первый вариант состоял в решении простой арифметической задачи: “Сложите 3 и 1, результат введите в поле ответа”. Через некоторое время пришли боты и оставили спамерские сообщения.
Второй вариант капчи был даже и не капчей, а “вежливой системой” опознавания “свой-чужой”, работавшей по схеме “запрос-ответ”. Противоботовый комплект включал серверную и клиентскую часть. Впрочем, это конечно громко сказано, потому что обе части исчерпывались парой десятков написанных мной строк кода на загадочных языках PHP и javascript.
Система работала так: в форму комментирования сервером передавался некий код-пароль, отзыв на который вычислялся на стороне браузера с помощью особого кода javascript. Вычислялся отзыв автоматически, пользователю ничего решать не надо было. А без знания начальных установок серверной части сделать универсальный решатель для бота также оказывалось затруднительным. Кроме того, по моим тогдашним ощущениям, бот не должен бы разбирать javascipt на атакуемых страницах.
Некоторое время всё шло хорошо и спама не было. Потом пришёл некто (со стороны сервера выглядевший как браузер) и оставил спам на нескольких страницах, выполнив javascript. Не ясно, был ли это бот или биоробот (специалисты в этой непростой области мне потом говорили, что возможны оба варианта).
Третий вариант капчи опять стал невежливым и работал в кольце вычетов по модулю два (опять шутка): от комментатора требовалось определить ключевое слово, введя только чётные (или нечётные) буквы исходного слова, которое приводилось в форме комментирования. Почему-то с этой капчей не умели справляться некоторые живые комментаторы. Поэтому пришлось видоизменить задачу: длительное время проработавший вариант предлагал ввести короткое ключевое слово наоборот, справа-налево (rumba = abmur).
Впрочем, однажды текстовую капчу на dxdt.ru заменили картинки из найденного в закромах вордпрессовского репозитория хорошего плагина. Картиночная капча предлагает распознать символы на картинке. Для бота такая задача трудна. Особенно если символы качественно подобраны. (Правда, некоторые капчи из картинок-символов боты умеют распознавать хорошо.) Работающая сейчас на dxdt.ru картиночная капча пока не пропустила сколь-нибудь заметного количества спама. Тем не менее, на неё иногда жалуются комментаторы, что распознать сложно. Я думаю, что подобная жалоба однозначно идентифицирует человека. Впрочем, может уже есть и боты-жалобщики.
Тем не менее, я подумываю сделать новую капчу – геометрическую. Пример – на картинке к этой заметке. Задача капчи будет формулироваться так: “Сколько {треугольников|прямоугольников|квадратов|кругов|ромбов} вы видите на картинке?”. Посмотрим, какой будет эффект.
Комментарии (6) »
Физический arXiv blog пишет, со ссылкой на работу группы исследователей из Гарварда, что практические квантовые компьютеры, когда (и если) они появятся, окончательно добьют химию.
Речь о том, что квантовый компьютер сможет полностью и точно моделировать химические реакции. Современным классическим компьютерам пока под силу только весьма приблизительное моделирование, работающее для “частных случаев” химических задач.
Появление же квантовых компьютеров достаточной мощности (в несколько сотен кубитов) позволит, как пишут, отказаться от химических опытов вообще (перевод мой):
“[вычислительные способности квантовых компьютеров] …обречены превратить химию в ещё более непопулярную дисциплину, чем она есть сейчас. Кому захочется возиться с пробирками и бунзеновскими горелками, если квантовый компьютер может сам вычислить ответ, пока вы сидите сложа руки?”
Комментарии (6) »
На “Математических этюдах” – документальный фильм про вычислительную технику, которую использовали в МГУ в 1950-х годах.
Комментарии (1) »
Где только не бывает вредоносного ПО. В блоге Threat Level пишут, что вредоносные файлы обнаружились в цифровых ЖК-фоторамках. В результате продавцам пришлось отзывать большую партию устройств. Наверное, следующие это СВЧ-печи и стиральные машины.
Comments Off on Вредоносное ПО в “фоторамках”
Думаю, что правильно будет развить тему с АФАР (Активной Фазированной Антенной Решёткой – более подробно о том, что такое АФАР, я писал в отдельной заметке ранее).
А добавить нужно вот что: каких-то сомнений в том, что перспективные бортовые РЛС истребителей будут только с АФАР – нет.
АФАР обладает во много раз большим потенциалом по повышению чувствительности. Дело в том, что пассивная ФАР, использующая один приёмо-передатчик, вынуждена мириться с очень существенными потерями энергии в волноводах и фазовращателях. В АФАР непосредственно по антенне распределены отдельные приёмо-передатчики – и потери энергии минимальны.

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

Комментарии (1) »
Вот, на примере космического аппарата MESSENGER (почему на его примере – будет понятно в конце заметки), хочу поделиться таким наблюдением из мира разработки программного обеспечения.
Точнее, там есть два мира.
Первый – очень известен, с ним соприкасаются очень многие (в основном, на правах пользователей). Этот первый мир – разработка “офисного” ПО. “Офисное” – конечно, условное название. Тем не менее, большая часть этого ПО используется именно в офисной работе. Это ПО работает на настольных компьютерах, серверах. К этому же миру относится и типичное современное web-программирование. Здесь в ходу такие “типы” ПО: текстовый процессор, редактор изображений, бухгалтерская программа и др. И известны такие “характеристические” понятия: Windows, Visual Basic, Delphi и т.п.
Хорошо известно, что в мире “офисного” ПО можно смело выдать на рынок недоделанный, не отлаженный продукт с кучей ошибок (потому что главное – регулярно и быстро выпускать новую версию, опережая конкурентов; особенно рельефно эта тенденция видна в современных web-сервисах, которые теперь уже публикуют в неработающем виде, заявив, что это альфа-версия, ну или “бета” – особенной разницы на практике нет). Массовый клиент, понятно, уже приучен к ошибкам в программах и к тому, что нет никаких гарантий работоспособности. Это давно известная тенденция.
Вторая тенденция вот в чём: в связи с тем, что комплектующие для офисного (и, конечно, серверного) компьютерного оборудования всё дешевеют и дешевеют (в пересчёте на вычислительную мощность), то разработчики из “офисного” мира готовы напрочь забыть об оптимизации и алгоритмов, и кода. Эти разработчики говорят так: “Лучше взять побольше железа – это выйдет дешевле, чем год возиться с оптимизацией”, “Пока вы оптимизируете ваш код, память подешевеет ещё в два раза” и тому подобные вещи.
И разработчики тут, в общем-то, правы. Допустим, стоит задача вывалить хоть как-то работающий новый поисковик (условно) уже через месяц. Конечно, лучше купить два дополнительных сервера в систему, на которой поисковик будет работать, чем рисковать усложнением кода и тем, что квалификации имеющихся программистов (это вообще отдельная история про “логарифмическую сложность”) просто не хватит на то, чтобы реализовать оптимальный алгоритм в коде.
Это свой мир. Со своими ценностями.
А есть второй – совершенно другой: разработка специального ПО для встроенных систем. Здесь не только в ходу неизвестные в “офисном” мире понятия из теории сложности, но и совсем другие представления о надёжности. Потому что ошибка в “текстовом процессоре” грозит лишь секретарше (да и угроза лишь в том, что придётся набирать полэкрана текста заново). Ошибка в ПО управления спутником связи грозит многомиллионными убытками, а иногда – реальной катастрофой. Хуже того, в случае со спутником – его разработчикам придётся отвечать. (Понятно, что в “офисном” случае всякая ответственность с разработчиков заранее “списана” условиями лицензирования.)
Другой важный момент, отличающий мир разработки встроенного ПО, в том, что здесь вычислительные ресурсы всегда существенно ограничены и алгоритмы и программный код приходится оптимизировать.
В мире встроенного ПО совсем не работают методы типа “за год память подешевеет вдвое”. Почему? Вот тут-то мы и приходим к примеру с космическим аппаратом MESSENGER.
Внимание, пример: MESSENGER стартовал летом 2004-го года. На орбиту вокруг Меркурия аппарат должен встать весной 2011-го года. Понятно, что как бы ни подешевели за это время на Земле компьютерная память и процессоры – “проапгрейдить” аппарат в районе Меркурия вряд ли получится. А вот загрузить на борт новое ПО – можно, с Земли.
При этом, если, скажем, удалось “ужать”, в смысле того или иного используемого ресурса, программную реализацию какой-то функции на борту аппарата, то освободившиеся ресурсы можно использовать для решения новых задач, расширив функциональность аппарата. То есть грамотная и интенсивная оптимизация приносит прямые выгоды. Про надёжность программного кода и отсутствие в нём ошибок, думаю, можно не повторяться.
Кстати, в мире встроенного ПО, на “борту изделий”, Windows совсем не в ходу, как ни странно. Там свои операционные системы.
Так вот, к чему это длинное наблюдение: оказывается, многие и многие люди, связанные с разработкой ПО, нынче думают, что существует только первый, “офисный” мир и его законы универсальны. Про то, как делают управляющее ПО, скажем, для ракеты “воздух-воздух”, эти “офисные” разработчики даже и не задумываются. И это, наверное, правильно – зачем бы им?
Комментарии (10) »
Вообще говоря, в наступающем году (2008, правильно?) нас ждёт мощный эффект от хорошо спроектированных ботнетов нового поколения. Собственно, если верить аналитикам, соответствующее “клиентское ПО” уже хорошо разошлось по машинам. Ну и бурный рост Интернета только способствует.
Речь, конечно, про “вредоносные программы”. А под “клиентским ПО”, понятно, подразумеваются “черви-вирусы”, новое поколение которых производит на аналитиков мощное впечатление, которое в паре слов можно охарактеризовать так: “качественная инженерия”.
Основные особенности новых “червей-вирусов” такие: например, теперь они научились образовывать “одноранговые сети”, самостоятельно обнаруживая собратьев, доступных с заражённого компьютера через Интернет. Связи сети формируются самостоятельно, в результате деятельности узлов. При этом в сети нет критически важного центра. О центре, как и положено, “договариваются” в процессе выполнения конкретной задачи. И каждый узел может контролировать доступную часть сети. Ну и, конечно же, единого консолидированного списка узлов-участников также не существует.
Понятно, что бороться с таким ботнетом крайне сложно. Удаление некоторого набора (произвольного) узлов сети лишь приводит к тому, что оставшаяся часть узлов меняет конфигурацию связей. В теории, удачно удалив большой набор узлов, можно разрезать ботнет на несколько несвязанных частей, но для осуществления такой операции нужно обладать информацией о топологии ботнета.
А где взять эту информацию? Негде.
Хитрость в том, что черви-узлы теперь не только научились “мутировать” и обмениваться “апгрейдами”. Не только научились сидеть в “пассивном режиме”, ничем себя не выдавая до наступления “часа Х”. Нет. Хитрость в том, что они теперь шифруют свой “системный” трафик. То есть, команды и данные внутри ботнета, между узлами, передаются в недоступном для анализа виде – грубо говоря, эти “данные-команды” никак нельзя отличить от прочего шифрованного трафика, которого полно в Интернете.
Так что никто даже и не знает, сколько там машин вовлечено в ботнеты нового поколения. И когда их, эти ботнеты, “включат в работу”.
В общем, с Новым годом!
Комментарии (2) »
Что-то довольно часто смешивают квантовый компьютер и квантовую криптографию – самым причудливым образом, особенно в этом преуспевают журналисты. Видимо, причина вот в чём: криптография в сознании обывателя теперь прочно привязана к компьютерам вообще (что, в общем, соответствует окружающей действительности), в этой канве и делаются “логические” привязки – неверные.
Между тем, квантовый компьютер – это гипотетическое устройство, которое может позволить выполнять некоторые “вычислительные” операции, используя, скажем так, “квантовые свойства материи”. Но, во-первых, в строгом смысле, квантовый компьютер ничего не вычисляет – вычисления на нём можно проводить лишь приведя некоторую задачу к физической модели, реализуемой в данном квантовом компьютере. (Сразу оговорюсь: только что приведённое описание ситуации – очень грубое.) А, во-вторых, практических квантовых компьютеров пока не создано. Например, про упражнения коммерческих компаний по созданию квантовых компьютеров я как-то писал в одной из колонок на “ИнфоБуме”.
Квантовая криптография – это метод создания канала связи, скрытное прослушивание которого “невозможно” (более строго: такое прослушивание будет обнаружено с очень высокой вероятностью). Квантовая криптография тоже использует “квантовые свойства материи”, но, вообще говоря, ничего не шифрует. А практическая польза квантовой криптографии состоит в том, что с её использованием можно организовать очень защищённый (законами квантовой механики) обмен ключами. После того как ключи, с помощью “квантовой криптографии”, распределены между сторонами, шифрование производится вполне традиционным образом. Реальные системы квантовой криптографии уже созданы.
Теоретически, квантовый компьютер может дать инструмент для быстрой факторизации больших чисел [факторизация – это нахождение разложения числа (целого, понятно) на простые множители]. Для этого придуман особый алгоритм Шора. На сложности задачи факторизации основаны распространённые сегодня криптосистемы с открытым ключом (например, RSA). Таким образом, – теоретически, опять же, – появление квантового компьютера достаточной “разрядности” ставит под угрозу практическую стойкость этих криптосистем. Впрочем, оценка этой угрозы очень туманна: может так статься, что раньше, чем появится квантовый компьютер, придумают очередной аналитический метод факторизации, быстро работающий на традиционных компьютерах (исследования этого направления в математике не затихают).
Квантовая криптография абсолютна надёжна тоже только в теории, потому что на стойкость практической системы сильно влияют возможные ошибки в практической реализации протокола и электронных схем. Зашифрованная с помощью распределённых по “квантовому каналу” ключей информация вполне может быть расшифрована криптоаналитиком, вооружённым традиционным компьютером – квантовый компьютер тут совсем не является необходимым.
Комментарии (1) »
Всё-таки довольно забавно начинает звучать текст, если автор называет псевдослучайные числа – случайными. Вот в “Компьютерре” статья, где как раз речь о псевдослучайных числах, но автор предпочитает уверенно называть их “случайные”. В статье пишут, например:
”
Скажем, генератор случайных чисел, встроенный в ОС Windows, автоматически используется во всех приложениях системы, связанных с защитой информации. И при этом конкретные алгоритмы генерации, используемые в Microsoft для данной цели, никогда открыто не публиковались[…]…аналитики нашли уязвимость, позволяющую организовать атаку, эффективно отыскивающую предыдущие состояния генератора, а значит, и вычислять будущие числа на выходе.”
Вот такие случайные числа, генерируемые, тем не менее, “алгоритмом” и, тем не менее, вычисляемые на будущее аналитиками. По-моему, кошмар.
Как обстоит дело в реальности: в большинстве компьютерных приложений, о которых идёт речь, используются последовательности псевдослучайных чисел. Псевдослучайными они называются потому, что каждый следующий член последовательности вычисляется некоторым заранее известным способом. При этом хороший алгоритм генерации устроен таким образом, что последовательность (точнее, некоторый её фрагмент) обладает важными статистическими свойствами последовательностей случайных чисел. Вообще говоря, некоторый “участок” хорошей псевдослучайной последовательности может быть не отличим от действительно случайной.
Но при этом псевдослучайные числа очевидно не являются случайными, так как они зависят друг от друга, а впечатление случайности (ложное) возникает лишь от того, что аналитику не “виден” механизм генерации. Тем не менее, криптоанализ псевдослучайных последовательностей может принести полезные результаты, а в самих алгоритмах генерации известны уязвимости.
Таким образом, если криптосистема существенным образом использует тот или иной алгоритм генерации псевдослучайных чисел, то стойкость этой криптосистемы оказывается завязана на стойкость “псевдослучайного” алгоритма. Например, сам шифр может быть очень стойким, но если для генерации ключей шифра использован нестойкий алгоритм, то стойкость самого шифра, понятно, уже не имеет значения.
Эта особенность, конечно, давно известна, поэтому для получения более стойких “случайных” последовательностей используются другие методы. На практике они привязаны к некоторым физическим процессам, происходящим в окружающем мире. Например, в качестве источника для получения последовательности чисел используется тепловой шум в электронных устройствах. Этот тепловой шум, несомненно, более близок к случайному процессу. Тем не менее, только близок, а в строгом смысле этот процесс тоже не является случайным.
Дело в том, что зная в подробностях физическое состояние “шумящего” устройства на момент начала генерации последовательности, аналитик, построив математическую модель устройства генерации (физические законы, определяющие тепловой шум, хорошо известны, и всё сводится к мощности вычислителя), может либо определить все члены последовательности в точности, либо сильно сузить область перебора. При этом, если в устройстве генератора допущена ошибка, задача аналитика резко упрощается (почему это так, мы в другой раз обсудим). По этой причине источники “случайности”, подобные только что описанному, называют детерминированными, то есть, по большому счёту, генерируемые ими числа тоже являются псевдослучайными.
С генерацией же действительно случайных чисел, совершенно непредсказуемых (по современным представлениям), имеются большие проблемы. Однако и такие генераторы сейчас существуют, они основаны на квантовых физических процессах. Например, генератор действительно случайных чисел может быть построен на основе регистрации радиоактивного распада – этот процесс совершенно непредсказуем.
Ссылка по теме: моя колонка про случайные числа на “Информационном буме”.
Комментарии (2) »
В блоге на Aviation Week пишут, что шведские разработчики, в лице Saab Microwave Systems, готовы предложить на рынок РЛС для обнаружения малозаметных целей (тех, которые “Стелс”). Речь там идёт о “разнесённой радиолокации”, при этом идею почему-то представляют как новую, хотя именно идея-то вовсе не нова, да и практические реализации имеются. В общем, как раз повод для очередной заметки о радарных хитростях.
Суть шведского предложения: система использует разнесённые в пространстве передатчики и приёмники, действующие согласованно. Один из ключевых аспектов современных технологий “Стелс” вот в чём: форма малозаметного для радаров объекта выбирается таким образом, что падающие на него радиоволны в основном отражаются не в сторону источника, а куда-нибудь в другую сторону. То есть если воздушный радар облучает летящий истребитель “Стелс” “со стороны носа” (с передней полусферы), то обратно к радару от истребителя возвращается минимум излучённой энергии. При этом энергия, пришедшая от радара, конструкцией истребителя полность не поглощается (с поглощением достаточно длинных волн – в сантиметры, – вообще возникают существенные трудности), а отражается в другом направлении, например вниз, к земле. Кроме того, в определенных направлениях возникают “тени”, то есть, самолёт как бы загораживает луч передатчика. Эту тень также можно использовать для обнаружения цели.

(U.S. Air Force Photo)
Теперь представим, что мы облучаем истребитель “Стелс” “со стороны носа”, но при этом принимаем отражённый сигнал вовсе не там, где передатчик, а другим приёмником, расположенным на земле, как раз в том месте, куда от “Стелса” отражаются радиоволны, излучаемые нашим радаром. Понятно, что если в поле излучения передатчика никакого “Стелса” нет, то импульсы будут “улетать” далеко, в направлении ионосферы, и к нашему наземному приёмнику могут и вовсе не вернуться. Но вот если “невидимый” истребитель попал в поле действия системы, то приёмник тут же начнёт получать отражённый сигнал.
Теперь предположим, что таких приёмников у нас много, они работают вместе с несколькими передатчиками, всё хозяйство объединено в вычислительную сеть, а сигналы передатчиков кодируются так, что приёмник может определить, импульс какого передатчика он принимает (это всё давно известно как реализовать). Так как система в целом знает местоположение передатчиков и приёмников и знает, когда какой импульс излучался, то по распределению во времени и пространстве отражённых сигналов можно вычислить координаты “невидимой” цели.
Да, точность такой системы, вообще говоря, будет хуже, чем в “традиционном случае”, но всё равно можно добиться практически важной точности определения координат цели (до десятков метров).

(Lockheed Martin)
Вот, собственно, если верить исходному сообщению, такая система и предлагается Saab. Важная хитрость в том, что цена для такой РЛС названа очень небольшая – всего лишь полторы сотни миллионов долларов. На первый взгляд – много, но надо учитывать, что столько же стоит один F-22 Raptor, а каждый бомбардировщик “Стелс” B-2 Spirit обошёлся более чем в миллиард долларов.
Да, а идея радиолокации с разнесёнными в пространстве приёмником и передатчиком, мягко говоря, не нова. Из актуальных и реализованных сейчас в разных системах практических применений можно назвать вот какие:
Например, бортовые РЛС истребителей могут подсвечивать цель для, например, наведения ракеты. В этом случае облучает цель передатчик РЛС истребителя (он более мощный), а приёмник РЛС головки наведения ракеты принимает отражённые от цели сигналы и наводится по ним. Выгоды: ракету можно запускать с большей дальности; ракета некоторое время работает в пассивном режиме, не раскрывая, так сказать, своё присутствие.
Другой вариант: в группе согласованно действующих истребителей цель подсвечивает один, а наводится (атакует) по отражённым сигналам – другой. В этом случае атакующий истребитель также, можно сказать, до последнего момента не раскрывает своих намерений.
Ну и понятно, что можно подсвечивать цель с земли. И, наверное, очевидно, что во всех только что описанных случаях действующие в группе летательные аппараты должны обмениваться информацией между собой.
Комментарии (7) »
Новый