2011, год

К Новому Году что-то особенное писать не стану, посмотрим потом по ходу календаря, что интересного случится. Тем более, что намечаются всякие новшества, типа пришествия коммерческих 3D-принтеров и очередного витка развития противоспутникового оружия (вот прямо “от и до”, вещи, конечно, это не связанные).

В общем, просто – с Новым Годом!



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

Вот, пишут в новостях:

Российские корабелы отказались от идеи переоборудования атомных ракетоносцев класса “Тайфун” для перевозки руды или нефти. Их использование для гражданских целей нецелесообразно, сообщил генеральный директор ОАО “ЦКБ морской техники “Рубин” Андрей Дьячков.

Так вот.



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

Тема открытый код против закрытых исходников – не иссякает: вот, например, в работе The Mathematics of Obscurity: On the Trustworthiness of Open Source (найдено в блоге Алексея Лукацкого) авторы, построив некую модель жизненного цикла программного кода, приходят к выводу, что открытый исходный код не улучшает “надёжность и безопасность”. Грубо говоря, уязвимости всё равно найти можно, несмотря на то, что код (теоретически) проверяют многие разработчики. А вот в закрытом коде – найти уязвимости может быть сложнее (ну, выходит, именно из-за того, что такой код сложнее анализировать).

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



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

Вот сообщают новости из мира разработки ПО:

По словам Перри, в то же время он консультировал ФБР в рамках проекта, занимавшегося внедрением закладок в смарткарты и прочие аппаратные средства защиты. Кроме того, он сообщил, что тогда же ФБР внедрила ряд закладок и в OCF [OpenBSD Crypto Framework], и вот теперь закончившаяся десятилетняя подписка о разглашении перестала мешать раскрытию этого милого факта.

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

Но можно же и более тщательно спроектировать архитектуру. Да.



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

Штаты продолжают более или менее успешно испытывать электромагнитную пушку. Вот пишут, что имеющийся тестовый экземпляр отстрелялся с рекордной энергией (33 мегаджоуля). Записка про предыдущий вариант электромагнитной пушки появлялась на dxdt.ru в 2008 году, тогда энергия выстрела составила 10 мегаджоулей. Судя по картинкам, новый вариант пушки отличается в деталях. Вообще, это весьма перспективное оружие, подробности в старой заметке по теме.



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

Между прочим, идея о хранении паролей от разных онлайн-сервисов в записях Twitter – идея в меру здравая, но требующая приложения технической хитрости в реализации. Конечно, просто “постить” пароли в открытом виде нельзя. Нужно их зашифровать каким-нибудь симметричным шифром (3DES, Blowfish и т.п.), используя мастер-пароль, и преобразовать в Base64, чтобы получить текстовое представление, пригодное для отправки на страницы Twitter.

Зашифровать и преобразовать легко – используем openssl, поддерживающий все нужные шифры и коды. Мастер-пароль, понятно, придётся запомнить. Логины можно либо помнить, либо шифровать вместе с паролем (одной строкой, как обычно). Но возникает резонный вопрос: как найти нужную запись? Оказывается, очень просто: генерируем хеш (MD5, например) от названия ресурса, логин/пароль для которого сохранён в данной записи, и часть строки со значением хеша добавляем в качестве “индекса”, через пробел, или можно использовать “#” (как это принято в “Твитере”). Для экономии места можно использовать пять или семь последних символов от значения хеша. Теперь найти запись можно стандартным поиском “Твитера”.

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

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

Как восстановить зашифрованные пароли на своей машине – понятно: взял и восстановил (непонятно, впрочем, почему же тогда не воспользоваться локальным хранилищем). А вот получить доступ к паролям на произвольном компьютере, подключенном к Интернету – сложно. Ведь дешифровать пароли нужно локально (иначе снижается секретность), но на компьютере может отсутствовать подходящий инструментарий. Даже для поиска пароля потребуется вычислить MD5.

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

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



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

Пишут агентства:

Ракетные войска стратегического назначения (РВСН) отказываются от моноблочного мобильного ракетного комплекса “Тополь-М” и перевооружаются на РС-24 “Ярс” с разделяющейся головной частью, сообщил во вторник журналистам командующий РВСН генерал-лейтенант Сергей Каракаев.



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

Немного предсказаний и прогнозов.

Уже несколько лет в массовом медийном поле (СМИ, блоги и так далее) самой популярной технологической темой (если измерять на достаточно протяжённом временном интервале), связанной с Интернетом и ИТ, остаётся безопасность. Безопасность при этом рассматривается в самом широком, словарном значении термина.

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

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

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

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

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

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



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

Немного фантастики в воскресенье.

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

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

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

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

Точка столкновения частиц в земном коллайдере – напротив, вполне обычное место: некоторый кусочек вакуума в подземном туннеле, не звезда, в общем. Поэтому, возникший там ход в параллельный мир не схлопнется, а начнёт расти. Что дальше?

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

Ход в параллельный мир начнёт набирать ширину, но в стороне от Земли, которая неизвестно когда вернётся в ту же самую точку пространства, где находился БАК в момент пробития дыры между измерениями. Обидно. Через какое-то время из параллельного мира полезут монстры, а вокруг – и нет никого. Или того хуже: однажды через эту самую дыру, разросшуюся до огромных размеров, в наш мир провалится целая планета “параллельных монстров”.

Хотя, можно предположить, что есть какая-то вселенская “сетка” привязки точек входа в параллельный мир, и в этой сетке задано движение. В таком случае, ход остаётся где-то в пределах Земли, но вовсе не обязательно в районе установки БАК. Может, где-то в пещере, в центре Австралии. Вот тогда с вылезающими монстрами уже придётся бороться с применением военной силы. При этом на коллайдер никто и не подумает. Ведь между ним и опасными монстрами будут тысячи километров.

Так вот.

(Или, кстати, межпространственный ход вылетает из ближайшей к нашей планете звезды – Солнца – и движется в направлении Земли. Тоже сюжет.)



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

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

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

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

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



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

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

Итак, вот что нам предлагают в этом году:

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

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

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

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

Как это распознавать?

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

Всякий криптолог скажет вам, что шифрованный текст, о котором известно, что он состоит только из числительных – большая радость для взломщика шифров. А случай с капчей “Премии” ещё более простой. Дело в том, что числительные здесь можно очень эффективно распознавать даже при самом большом уровне шума, потому что они записываются словами с известными свойствами и набор этих слов не велик. Например, число 4 можно безошибочно узнать по двум критериям: первая буква “Ч”, а число букв в слове – 6 (тут даже не страшна погрешность по подсчёту букв, потому что числительных на “Ч” в интервале 1-100 – совсем уж мало). То есть, как читатели догадались, для распознавания числительных не нужно распознавать все буквы (можно букв вообще не распознавать – см. ниже), а нужно правильно использовать другие математические свойства изображения капчи. Забавно, что в использованном шаблоне даже число слов даёт уйму информации: например, “сорок” (40), в качестве первого слагаемого, так и записывается в первой строке шаблона одиноким словом, позволяя совершенно точно не перепутать 40 и 41, 42, … И это хорошо, роботы не любят дополнительной работы по проверке, им нужно экономить батарейки.

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

1) найти углы шаблона (приблизительно), это делается с помощью обнаружения крайних компактных комплексов точек (буквы, либо попавшие на буквы окружности);

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

3) посчитать длины слов в строках (определяется длина и в пикселах, и в “буквах”);

4) отфильтровать множество возможных значений элементов капчи по “словарю”, содержащему длины слов, составляющих записи числительных;

5) учесть пробелы и относительные длины слов (сравните сами: “сорок два”, “семнадцать”, “пять” – отличить легко без распознавания букв; составить словарь могут те, кто займётся реализацией очередной распознавалки для народного голосования);

6) в оставшихся после разбора неоднозначных случаях использовать пиксельные признаки записи букв в капче. Там используется один шрифт, пусть и с искажениями. Отличить “семь” и “пять” можно, посчитав число “ножек” у букв по “нижней линии”. У букв слова “семь” – две “ножки” (буква “м” – ну, если с погрешностью, то максимум три “ножки”). У букв слова “пять” “ножек” тоже пять: их дают “п”, “я”, “т”. Считать программно “ножки” не сложно, они складываются из числа границ, пересекаемых при трассировке изображения слова вдоль прямой.

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

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

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

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



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