jcxz 184 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба У Диффи — Хеллмана самая затратная операция не возвести в степень, а найти большое простое число. На ARM9 это у меня занимало до десятка секунд. Затратная по какому критерию? Десяток секунд - это что - в лоб, делением? ;) Я как раз на ARM9 как то и реализовывал поиск максимального простого не превышающего заданное. Использовал Решето Сундарама. И в этом алгоритме самой затратной частью был размер ОЗУ. А вот производительности процессора он не требует большой. Без всяких делений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба А можно подробнее? Хеш чего должна проверить программа? Дивайс отдает настройки (см ниже), включая время. Хэш этого пакета считается и отдается тоже. Соответственно рассчитанный хэш и принятый должны совпадать. Поскольку время постоянно меняется, напряжение тоже дергается, заводской номер разный, подобрать хэш невозможно. Без времени прибор не работает. Только не убеждайте, что в этой защите полно дыр - я знаю. Цена - дизассемблирование программы на 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( ¤t_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); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Так что у вас ещё всё впереди. шоб у мене украли столько же копий, сколько у била гейтса виндов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 18 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Где на вашем сайте ссылка для скачивания прошивки/схем? ну схемы конечно и не подразумевается, хотя купив нашу аппаратуру скопировать схему большой проблемы не составит, а софтвер опенсорсный (на данный момент находится в стадии конвертации в опенсорс, у бета-тестеров исходники имеются, далее и у всех будут). А вот про нарушения - я действительно серьезно, ибо нарушать можно по всякому, можно повторить, а можно что-то сделать слегка по-другому, и вот как раз такие нарушения и будут пресекаться... правда в тех странах, где мне это захочется делать (где рынок будет большим). Я просто к чему - если у вас продукт клевый, а в прошивке все замудрено с клчами, хешами, биткойнами, проблем нет, и прошивку перепишут, и в схеме чуток что подправят, чтобы прошивку упростить - все это делается тривиально. И с этим есть два способа борьбы: 1. быть открытым и массовым, чтобы ни один повторяльщик не смог бы сделать дешевле, ибо он будет вас догонять, 2. прикрыться еще легальными вещами и чморить повторяльщиков на таможне (это правда делается только а нескольких странах, и требует тоже усилий, но позволяет охватить случай переповторения аппарата с переписыванием прошивки) ну а лучше - оба два способа сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Дивайс отдает настройки (см ниже), включая время. Хэш этого пакета считается и отдается тоже. Соответственно рассчитанный хэш и принятый должны совпадать. Поскольку время постоянно меняется, напряжение тоже дергается, заводской номер разный, подобрать хэш невозможно. Без времени прибор не работает Если алгоритм расчёта хеша известен злоумышленнику, то что мешает ему этот хеш посчитать и передать своим клоном? Если прошивки "утекают" налево, то никакие хеши и шифрования протокола не помогут. Сперва надо утечки побороть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Добавить в устройство смарткардридер с интегрированной JCOP картой, внутри карты не извлекаемый сертификат железки, открытый ключ сервера и кусочек алгоритма из прошивки железки. По интернету JCOP<->ваш сервер обеспечить выдачу токена с разрешением работать ну на 24 часа к примеру или на кол-во запусков алгоритма. Весь обмен обильно сдобрить подписями и дифф-хелманами. Помучатся с реверсом такого придется изрядно. Вести разработку и производство JCOP'а в "белой" комнате. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 17 августа, 2017 Опубликовано 17 августа, 2017 (изменено) · Жалоба Так это просто другой канал связи с устройством, что это меняет? Это многое меняет. Вы можете авторизовать устройство с очень высокой долей вероятности того, что это то самое устройство, а не какое-то другое. То есть вы посылаете на устройство ключ или уникальную ссылку на сервер (и т.п.), и при этом можете быть уверены, что ключ получит именно тот, кому вы продали свое устройство. Если бы это был просто другой канал связи и ничего более, то его бы не использовали повсеместно (банкинг и пр.). У смс-аутентификации есть все-таки свои заметные преимущества перед другими каналами связи. Изменено 17 августа, 2017 пользователем x736C Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Помучатся с реверсом такого придется изрядно. А если не будут мучаться, а сделают свой сервер, на который перенаправят запросы и который всегда будет выдавать разрешение? ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба А если не будут мучаться, а сделают свой сервер, на который перенаправят запросы и который всегда будет выдавать разрешение? ;) Прошивка просто не возьмет ответы с сервера подписанные левым сертификатом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Десяток секунд - это что - в лоб, делением? ;) Святая наивность. Что нибудь слышали о Miller-Rabin probabilistic primality test? Нет!? Тогда идите учите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 17 августа, 2017 Опубликовано 17 августа, 2017 · Жалоба Если алгоритм расчёта хеша известен злоумышленнику, то что мешает ему этот хеш посчитать и передать своим клоном? Если прошивки "утекают" налево, то никакие хеши и шифрования протокола не помогут. Сперва надо утечки побороть. Любые защиты для целей, декларированных автором, обречены, поскольку прошивки легко снимаются в Китае. Лучшая защита - не подниматься до уровня интереса потенциальным похитителям. Моего основного заказчика устраивает защита кодом из 5 цифр без всяких защит от подбора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kibi 0 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Самая надежная защита - сержант с автоматом у каждого устройства, а защита интеллектуальной собственности от копирования - гос. тайна. Защита прежде всего должна соотносится с ценой устройства и объемом спроса. Ставить в устройство за 1$, где сама защита дороже устройства и поднимет цену устройства... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexvu 5 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба поскольку прошивки легко снимаются в Китае. Я правильно понял, что Вы имели в виду чтение защищенной прошивки? К каким контроллерам это относится? Из STM32, допустим, можете привести пример? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Да пилят они там кристаллы и глядя в микроскоп считывают. Не думаю, что STM32 тут какой-то особенный в этом плане. Не забывайте, что защита от чтения - это просто бит в нужном месте... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Да пилят они там кристаллы и глядя в микроскоп считывают. Не думаю, что STM32 тут какой-то особенный в этом плане. Не забывайте, что защита от чтения - это просто бит в нужном месте... Все это уже давно делают, стирают биты УФ лазером и т.п. Вопрос только цены, а она не дешевая, иногда проще создать свою прошивку, по тз в виде документации производителя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться