All streams
Search
Write a publication
Pull to refresh
441
0
Dmitry @Ocelot

Инженер-схемотехник

Send message
Огромное спасибо! Добавил в статью.
Сегодня утром вспомнил, что впервые встретил упоминания об этих атаках у Бёрда Киви (книга «Гигабайты власти»).
Чем быстрее начнете, тем быстрее войдут в обиход =)
> Незачем предвычислять амплитуды отсчетов на весь семпл.
Это был скорее комментарий к приведенному в статье коду. Если нужно сгенерировать 1000 периодов синусоиды, совершенно незачем повторять цикл 1000 раз, достаточно обсчитать один период. Нет, даже четверть периода, а потом периодически менять знак результата и переворачивать порядок отсчетов.
Если генерим что-то посложнее синусоиды, этот трюк может не сработать.

А за подход с решением (точнее, аппроксимацией, так?) дифура на ходу — отдельное спасибо!
Ближе всего к описанной ситуации повсеместного введения токенов — использование Sim-карт для мобильной связи.
1) Стоимость снижена до минимума, за счет массовости. Часто карта бесплатна для пользователя, за нее платит поставщик услуг.
2) Потеряли-украли? Не беда. Двухфакторная аутентификация не даст воспользоваться вашей картой никому кроме вас.
3) Восстановление тоже довольно просто: генерируется новый ключ, а старый аннулируется. Естественно, после того, как вы подтвердите, что вы — это вы.
4) Смысл защиты не в том, чтобы ее нельзя было преодолеть, а в том, чтобы это было нерентабельно. И в sim-картах это на сегодняшний день достигнуто: затраты на извлечение ключа (нес-ко десятков тысяч $) не окупятся при использовании этого ключа злоумышленником.
Чтобы ускорение (которе измеряет акселерометр) преобразовать в координаты, нужно дважды проинтегрировать. Но тут проблема в том, что из-за погрешностей координаты будут «плыть»: акселерометр неподвижен, а система думает, что он медленно куда-то едет.
Если интегрировать один раз, получим скорость. С ней уже проще, ошибки не так сильно накапливаются, но все равно накапливаются.
Наклоны хорошо обрабатываются акселерометром, но только когда перчатка неподвижна. Если мы хотим измерять угловое ускорение, нужен гироскоп (три — по трем осям). Но у гироскопа та же проблема: данные с него нужно интегрировать, а значит углы наклона тоже будут «плыть». Для контроля неподвижности по осям крена и тангажа достаточно использовать акселерометр (куда смотрит вектор g, там низ). А вот для задания нуля по оси рыскания это не поможет, и обычно используют магнитный компас (и пусть он показывает не на север, а на ближайшую батарею, главное, что все время в одну и ту же сторону).
Если хотите все это реализовать, ищите материалы по ключевым словам «фильтр Калмана», на хабре тоже полно статей на эту тему.
Хотя токены, используемые для защиты ПО от копирования (HASP, например), с переменным успехом эмулируются. Отгадайте с трех раз, кому это нужно :)
Я слышал, что ключевая дискета — это не просто дискета, на которой лежит ключ, но еще определенным образом поцарапанная, чтобы ее нельзя было скопировать, т.к. конфигурация бэд-блоков от царапины — часть ключевой информации. Это правда?
Под DOS на PC динамик тоже разговаривал. Была прога-заподлянка, произносившая фразу «здравствуй, жопа!». Технически это было реализовано как прямое обращение к порту динамика и формирование ШИМ-сигнала. Несущая частота в районе десятка кГц была не слышна, а огибающая давала как раз речевой сигнал.
Пианино — это основная частота (синус) + несколько гармоник. Проше всего снять спектр настоящего рояля и по нему выставить амплитуды гармоник. Да, еще нужно обеспечить резкую атаку и плавное затухание семпла, иначе орган получится.
Хм… Как бы вам объяснить. Тут возможны 2 варианта:
1) Вы не понимаете, в чем смысл токена, зачем он имеет свой процессор и т.д. Перечитайте статью и купите USB-хаб, ибо ответ: «Нет, такого софта не существует». Или не используйте токен, а авторизуйтесь по паролю, если вам все равно.
2) Вы все это прекрасно понимаете, но решили всех обхитрить, т.к. без токена банк-клиент не работает, а лишних портов нет. Ответ все равно: «Нет, такого софта не существует», поскольку никто не заинтересован в снижении защищенности системы, которое неизбежно наступит, когда пользователи начнут использовать эмуляторы вместо токенов.
Запароленный .rar упомянут как пример совсем уж колхозного решения. Если цель — аутентификация, обычно используют менеджеры паролей, которые ничего лишнего на диск не пишут. Основное преимущество токенов — не защита от логгеров (пин достаточно легко перехватить, выше в комментах как раз сейчас это обсуждают), а защита от брутфорса, так как дается всего несколько попыток на ввод пин-кода. А к запароленному архиву или базе какого-нибудь KeePass'а можно подбирать пароль до победного конца.
Сам спрашивал, сам отвечаю :) Такие токены действительно есть, причем гораздо больше, чем я ожидал. Например:
safetok.com/solutions/biometric.html
www.ftsafe.com/products/biopass.html
www.softlock.net/default.aspx?DocSN=eSign-Smart-Token

Таким образом, самые отъявленные параноики могут организовать трехфакторную аутентификацию: токен + пин-код + биометрия.
Спасибо, Капитан! А ссылкой не поделитесь?
Все алгоритмы шифрования открыты и общедоступны. Существуют ли open-source реализации токенов? Имеется в виду не код библиотеки и драйверов (хотя куда же без них?), а прошивка самого USB-«свистка».
Удалось заставить его разговаривать?
Канал ПЭМИН отличная штука, но для его использования нужна дополнительная аппаратура, часто очень сложная. Здесь использован встроенный гироскоп, вся обработка данных программная, а внедрить программную закладку на порядок легче, чем аппаратный жучок.
А спасибо не мне, а тем двум китайцам, которые до такого додумались. Это перевод.
Замечательно!
А noise + saw будет, наверное, вдох Вейдера.
У Рутокена, судя по описанию:
3 уровня доступа к токену: Гость, Пользователь, Администратор
(Источник: www.rutoken.ru/products/rutoken/capability/)
Незачем предвычислять амплитуды отсчетов на весь семпл. Достаточно вычислить один период и повторить нужное число раз.
Если код выполняется на микроконтроллере, например, то даже вычисление синуса — часто непозволительная роскошь. Используют один раз вычисленную таблицу синусов, которая хранится в EEPROM.
Это простой делитель опорной частоты в частоту сигнала А с коэффициентом 254.
Откуда 254? Между двумя последовательными выполнениями строки
10. A <= not A;
пройдет 256 (FF+1) тактов. Это половина периода выходного сигнала, значит коэффициент деления частоты будет 512.

Information

Rating
Does not participate
Registered
Activity