Перейти к содержанию
    

Как защититься от подделки устройства?

У Диффи — Хеллмана самая затратная операция не возвести в степень, а найти большое простое число.

На ARM9 это у меня занимало до десятка секунд.

Затратная по какому критерию?

Десяток секунд - это что - в лоб, делением? ;)

Я как раз на ARM9 как то и реализовывал поиск максимального простого не превышающего заданное. Использовал Решето Сундарама. И в этом алгоритме самой затратной частью был размер ОЗУ. А вот производительности процессора он не требует большой. Без всяких делений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно подробнее? Хеш чего должна проверить программа?

Дивайс отдает настройки (см ниже), включая время. Хэш этого пакета считается и отдается тоже. Соответственно рассчитанный хэш и принятый должны совпадать. Поскольку время постоянно меняется, напряжение тоже дергается, заводской номер разный, подобрать хэш невозможно. Без времени прибор не работает.

 

Только не убеждайте, что в этой защите полно дыр - я знаю. Цена - дизассемблирование программы на PC.

 

    ptr=buf;
    ptr+=sprintf(ptr,"INFO\n");    
    ptr+=sprintf(ptr,"Device=XXXXXX\n");
    ptr+=sprintf(ptr,"Serial number=%d\n", se.serial_number);
    ptr+=sprintf(ptr,"Firmware version=118\n");
    ptr+=sprintf(ptr,"Voltage battery=%d\n", (int)bat_voltage);
    ptr+=sprintf(ptr,"Report time  = ");
#ifndef NO_INT_RTC
    actual_time=GetRtcTime( BURTC->CNT, BURTC_RetRegGet(RET_RTC_OVFL_COUNTER));
    ptr+=ConvertLocalTimeToString( &actual_time , (uint8_t*)ptr );

    ptr+=sprintf(ptr,"\nExt RTC time = ");
#endif

    ReadCurrentTime();
    ptr+=ConvertLocalTimeToString( &current_time , (uint8_t*)ptr );
    ptr+=sprintf(ptr,"\n");
    ptr+=sprintf(ptr,"Maximum xxxx qty=%d\n",shot_rec_qty );
    ptr+=sprintf(ptr,"Actual xxxx qty=%d\n", (int) num.num);
    ptr+=sprintf(ptr,"Units=0.1*grad\n");

    ptr+=sprintf(ptr,"Averaging=%d\n", se.average_number);
#ifdef STAT_AVERAGE    
    ptr+=sprintf(ptr,"Statistic=averaging\n");
#else
    ptr+=sprintf(ptr,"Statistic=mediana\n");
#endif
    ptr+=sprintf(ptr,"Standby time=%d\n", se.standby_time);
    ptr+=sprintf(ptr,"Enable samples=%d\n", se.enable_samples);
    ptr+=sprintf(ptr,"Accept. noise=%d\n", se.accept_noise);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так что у вас ещё всё впереди.

шоб у мене украли столько же копий, сколько у била гейтса виндов

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где на вашем сайте ссылка для скачивания прошивки/схем?

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

 

Я просто к чему - если у вас продукт клевый, а в прошивке все замудрено с клчами, хешами, биткойнами, проблем нет, и прошивку перепишут, и в схеме чуток что подправят, чтобы прошивку упростить - все это делается тривиально.

 

И с этим есть два способа борьбы:

 

1. быть открытым и массовым, чтобы ни один повторяльщик не смог бы сделать дешевле, ибо он будет вас догонять,

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

 

ну а лучше - оба два способа сразу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дивайс отдает настройки (см ниже), включая время. Хэш этого пакета считается и отдается тоже. Соответственно рассчитанный хэш и принятый должны совпадать. Поскольку время постоянно меняется, напряжение тоже дергается, заводской номер разный, подобрать хэш невозможно. Без времени прибор не работает

Если алгоритм расчёта хеша известен злоумышленнику, то что мешает ему этот хеш посчитать и передать своим клоном?

Если прошивки "утекают" налево, то никакие хеши и шифрования протокола не помогут. Сперва надо утечки побороть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавить в устройство смарткардридер с интегрированной JCOP картой, внутри карты не извлекаемый сертификат железки, открытый ключ сервера и кусочек алгоритма из прошивки железки. По интернету JCOP<->ваш сервер обеспечить выдачу токена с разрешением работать ну на 24 часа к примеру или на кол-во запусков алгоритма. Весь обмен обильно сдобрить подписями и дифф-хелманами. Помучатся с реверсом такого придется изрядно.

Вести разработку и производство JCOP'а в "белой" комнате.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так это просто другой канал связи с устройством, что это меняет?

Это многое меняет. Вы можете авторизовать устройство с очень высокой долей вероятности того, что это то самое устройство, а не какое-то другое. То есть вы посылаете на устройство ключ или уникальную ссылку на сервер (и т.п.), и при этом можете быть уверены, что ключ получит именно тот, кому вы продали свое устройство.

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

Изменено пользователем x736C

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помучатся с реверсом такого придется изрядно.

А если не будут мучаться, а сделают свой сервер, на который перенаправят запросы и который всегда будет выдавать разрешение? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если не будут мучаться, а сделают свой сервер, на который перенаправят запросы и который всегда будет выдавать разрешение? ;)

Прошивка просто не возьмет ответы с сервера подписанные левым сертификатом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Десяток секунд - это что - в лоб, делением? ;)

Святая наивность.

Что нибудь слышали о Miller-Rabin probabilistic primality test?

Нет!? Тогда идите учите. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если алгоритм расчёта хеша известен злоумышленнику, то что мешает ему этот хеш посчитать и передать своим клоном?

Если прошивки "утекают" налево, то никакие хеши и шифрования протокола не помогут. Сперва надо утечки побороть.

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

Лучшая защита - не подниматься до уровня интереса потенциальным похитителям.

 

Моего основного заказчика устраивает защита кодом из 5 цифр без всяких защит от подбора.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самая надежная защита - сержант с автоматом у каждого устройства, а защита интеллектуальной собственности от копирования - гос. тайна.

Защита прежде всего должна соотносится с ценой устройства и объемом спроса. Ставить в устройство за 1$, где сама защита дороже устройства и поднимет цену устройства...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поскольку прошивки легко снимаются в Китае.

Я правильно понял, что Вы имели в виду чтение защищенной прошивки?

К каким контроллерам это относится? Из STM32, допустим, можете привести пример?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да пилят они там кристаллы и глядя в микроскоп считывают. Не думаю, что STM32 тут какой-то особенный в этом плане.

Не забывайте, что защита от чтения - это просто бит в нужном месте...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да пилят они там кристаллы и глядя в микроскоп считывают. Не думаю, что STM32 тут какой-то особенный в этом плане.

Не забывайте, что защита от чтения - это просто бит в нужном месте...

 

Все это уже давно делают, стирают биты УФ лазером и т.п. Вопрос только цены, а она не дешевая, иногда проще создать свою прошивку, по тз в виде документации производителя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...