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

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

Ну, какой-нибудь ключик типа Guardant Stealth II - это тоже железка. И ломать его весьма недёшево. Так что какую-то часть злоумышленников может отпугнуть.

Тут бы я поостерегся. Чем раскрученней брэнд тем больше вероятность что он уже взломан.

Вспомним ту же историю с HASP4

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

Первые версии оригинальных HASP4 делали на AVR, потом перешли на MK от Cypress. Но все было стравлено и взломано.

Потому как ключи для бухгалтерских программ очень ценились, и игра стоила свеч.

Я бы сначала поинтересовался на какой архитектуре сделан GUARDANT STEALTH II прежде чем что-то им доверять.

Даю подсказку: ищите дешевые аналоги на aliexpress

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


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

Конечно я согласен, что любое такое усложнение добавляет потенциального геморроя как пользователям, так и производителю. Но делать что-то надо.

Когда уровень геморроя превысит порог терпения юзеров, они предпочтут купить девайс конкурента. Или у клонеров. B)

 

1. Делаем свой тщательно засекреченный кодер (на PC) который работает по тщательно засекреченному исходному бинарнику прошивки.

Этого делать не надо, всё уже сделано - AES128. (да и дело это непростое - я думаю далеко не каждый сможет создать аналог сравнимый с AES). Достаточно придумать "тщательно засекреченный" ключ для AES.

Но так ведь у автора в том-то и проблема - как не засекречивай, а всё равно на сторону утекёт. Эту проблему и надо решать в первую очередь. До её решения всё остальное не даст эффекта.

 

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

Защищать надо не только от считывания, но и частичного стирания МК и от записи. Можно оставить только возможность полного стирания всего чипа.

 

Мы примерно так и будем делать. Тут конечно вся надежда на устойчивость защиты флешь МК от чтения/стирания/записи.

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

При увольнении сотрудника знающего ключ, очевидно придётся его менять.

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


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

Понял, вы привязываетесь к уникальному номеру сим-карты. А как сервер определяет номер сим-карты?

Вы знаете мобильный номер, т.к. сами продали симку к прибору. Связываясь с этим номером можете осуществить обмен ключем для расшифровки основной программы. Если симку склонировали, вы можете убить её в системе.

 

А как отличить "правильную" от "неправильной"? Помнится в своё время я много сим-карт склонировал собранным на коленке простым девайсом.

Это замечательно. А можете склонировать симку, не имя на руках оригинал?

И что будет, если не девайс с 10-ю симками, а 10 девайсов с одинаковой симкой зарегистрируются в сети. Думаю, такое событие легко отследить и нейтрализовать.

 

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

 

Складывается ощущение, что Сбербанк-онлайном никто не пользуется :)

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


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

Но так ведь у автора в том-то и проблема - как не засекречивай, а всё равно на сторону утекёт.

Это где вы такое вычитали?

Разово утекло с одним нехорошим человеком. И не у автора, а у одной знакомой конторы.

Понятное дело, что теперь они будут ещё осторожнее. Поэтому и обратились ко мне с просьбой сделать более защищённый вариант.

 

Тут бы я поостерегся. Чем раскрученней брэнд тем больше вероятность что он уже взломан.

Даже если он уже взломан, то всё равно заломать конкретную программу будет стоить очень приличных денег. Гораздо дороже, чем сам ключ. И, скорее всего, дороже, чем одна или даже несколько копий программы. Поэтому ключ может быть выгодным - чтобы окупить взлом программы, пользователям придётся скооперироваться, а это не всегда получается.

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


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

Вай, я не заметил главного подарка врагам:

 

То есть просто ломаем программу и получаем в нагрузку образец правильной прошивки.

Ну это пустые придирки.

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

Я привёл принцип определения целостности прошивки МК на самом простом примере - связи одного МК с одним ПК. Считаю этого было достаточно.

 

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

 

Если сервер не предусмотрен, а есть только клиентские программы на ПК, то образец прошивки защищается элементарно.

Файл образца искажается любым удобным образом - лишь бы он был непригоден для прошивки или дизассемблирования (инверсия, перестановка тетрад, байт, слов, прибавление +1 ко всем байтам, и т.д).

Программа на ПК считает хэш по этому искаженному образцу ничего в нём не меняя - прямо вот как есть.

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

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


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

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

О, так это не 3G/4G, и даже не GPRS, а тупо data call? Я и не думал, что сейчас таким кто-то пользуется:)

Складывается ощущение, что Сбербанк-онлайном никто не пользуется :)

Вряд ли Сбербанк обзванивает все телефоны с целью обмена ключами:)))

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


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

О, так это не 3G/4G, и даже не GPRS, а тупо data call? Я и не думал, что сейчас таким кто-то пользуется:)

 

Вряд ли Сбербанк обзванивает все телефоны с целью обмена ключами:)))

Ну какая разница-то. :) Сбер не обзванивает. Использование двухэтапной аутентификацией с смс сейчас повсеместно и вроде как достаточно надежная вещь.

Насчет использования смс. Вроде много кто использует. Через смс-сообщения работают сигналки для дач и т.п.

Наверное, можно и с 3G/4G. Но почему не использовать sms для получения уникальной ссылки, например, или ключа? Просто потому, что это кажется Вам забавным?:))

 

P.S. может сложиться впечатление, что агитирую Вас за этот вариант с модемом.

Отнюдь. Сам не стал бы, наверное, использовать. Тут просто стало интересно развить идею до логического конца. :)

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

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


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

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

Так если есть постоянная связь с сервером, то может тогда и ничего не делать в девайсе полезного? Вынести весь функционал девайса в программу на сервере, а девайс пусть обращается постоянно к серверу и спрашивает каждый момент времени "что мне сейчас делать и с каким моим пином"? Вот тут злоумышленники обломаются когда будут взламывать девайс, взломают и окажется что алгоритма работы там нету! :smile3046:

 

Складывается ощущение, что Сбербанк-онлайном никто не пользуется :)

Клиенты сбербанк(или другого банк)-онлайна заинтересованы в сохранении целостности защищаемой таким образом информации. Они не побегут выкладывать полученный код в инет. Тут как-бы вообще другой случай.

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


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

Клиенты сбербанк(или другого банк)-онлайна заинтересованы в сохранении целостности защищаемой таким образом информации. Они не побегут выкладывать полученный код в инет. Тут как-бы вообще другой случай.

Все правильно. Тут в качестве юзера СБ выступает не юзер девайса, а сам девайс. Который тоже очень не заинтересован выкладывать свой код. Поэтому он его разворачивает во внутреннее ОЗУ из зашифрованного образа. МК должен быть защищен от внедрения и исполнения чужого кода, который может передать программу из ОЗУ наружу. Выше кто-то об этом обмолвился. Известный вид атаки.

 

Хотя я сейчас понял, где тут слабое место.

Необходимо считать с МК прошивку. Она будет зашифрованная, но у нее будет открытый участок, который будет принимать из GPRS-модема ключ, а затем расшифровывать основное тело программы.

Затем, когда станет понятно, чего ожидает прошивка от модема, включиться между МК и модемом и снять ключ в момент передачи.

В общем вся идея летит к ... :)

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


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

В общем вся идея летит к ... :)

Вобщем вывод таков: если не гарантируется надёжность защиты внутренней флешь девайса от чтения/записи, то защититься от взлома и клонирования прошивки - невозможно.

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


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

Вряд ли Сбербанк обзванивает все телефоны с целью обмена ключами

вы круто проигрываете сберу, ибо если сбер ломанут, то на поиски хакера встанет вся страна

 

 

Вобщем вывод таков: если не гарантируется надёжность защиты внутренней флешь девайса от чтения/записи, то защититься от взлома и клонирования прошивки - невозможно.

у сбера на этот случай есть сигнал тампер

 

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


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

Так если есть постоянная связь с сервером, то может тогда и ничего не делать в девайсе полезного? Вынести весь функционал девайса в программу на сервере, а девайс пусть обращается постоянно к серверу и спрашивает каждый момент времени "что мне сейчас делать и с каким моим пином"? Вот тут злоумышленники обломаются когда будут взламывать девайс, взломают и окажется что алгоритма работы там нету! :smile3046:

Если система зависима именно от сервера, то можно даже не ставить биты защиты в МК - ни клонирование аппаратуры, ни модификация прошивки не поможет "оживить" систему, а тем более торговать подделками.

Сервер при этом будет работать только с оригинальными девайсами, в которых он может удалённо проверить целостность прошивки, что в свою очередь гарантирует и валидность сообщённого каждым девайсом ID.

 

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

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


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

Но почему не использовать sms для получения уникальной ссылки, например, или ключа? Просто потому, что это кажется Вам забавным?:))

Мне это вовсе не кажется забавным, я просто пытался понять ваш способ. Теперь понял: устройство отправляет запрос на сервер (по 3G/4G), сервер в ответ присылает СМС-ку с кодом. Наверное это хороший способ, но в моём случае не подходит - нет сотовых модемов.

Кстати такой вопрос. Если злобный хакер скопирует вашу симку, то он ведь тоже получит эту СМС?

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


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

Кстати такой вопрос. Если злобный хакер скопирует вашу симку, то он ведь тоже получит эту СМС?

Если одновременно два клона симки онлайн, то входящие звонки/СМС получает та симка, с которой была последняя активность.

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


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

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

А каким образом? Не присылать же исполнимый код...

 

От клонов может спасти:

1. у каждого устройства уникальный id (может даже не UID96, а UID+ODATA).

2. с каждым id на сервере связана маленькая таблица чисел.

3. эти же числа должен хранить контроллер у себя.

4. при инициализации связи контроллера сервер сверяет числа контроллера со своей копией

и если числа в какой-то степени совпадают, то одно из чисел заменяется на случайное число

и на сервере, и в контроллере, при этом работа разрешается.

5. если копии чисел сильно расходятся, то id блокируется, а вопрос решается с клиентом в ручном режиме,

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

после этого id у контроллера меняется и назначается новый набор чисел.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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