Защита программного обеспечения с помощью аппаратного ключа

Я прочитал все существующие дискуссии о пиратстве и поддержке оборудования, так что это не тот же самый старый вопрос. У меня есть новый поворот в этой старой дискуссии. Теперь вы можете приобрести ключи для USB, которые позволят вам вставить в ключ некоторые важные коды. Если у вас есть сложный алгоритм, и вы помещаете его в ключ, кто-то должен будет реконструировать содержимое ключа. Если бы они попытались подделать ключ, как это было возможно в прошлом, это не сработало бы. Все, что они могут видеть, - это то, что данные попадают в "черный ящик", и данные о результатах выходят. Больше не нужно искать переход true / false, чтобы обойти проверку лицензии в исходном коде.

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

Поэтому я хочу взять сценарий и посмотреть, пропустил ли я что-то. Я поместил важную часть моего алгоритма в ключ, чтобы защитить его. 6 двойных и 1 int входят в ключ, 1 двойной и 1 int возвращаются. Это происходит для тысяч точек данных. Это одна из нескольких функций аналогичной сложности. Хакер может увидеть остальную часть моего ассемблерного кода (который я делаю, насколько это возможно, чтобы запутать), но давайте предположим, что он легко взломан. У меня вопрос: насколько сложно взломать ключ для доступа к моему ассемблерному коду на этом проприетарном оборудовании? Давайте возьмем в качестве примера продукт этой компании: http://www.senselock.com/

Меня не интересуют лекции о том, как я доставляю неудобства клиентам, и мне следует открыть исходный код моего продукта, пожалуйста. Я ищу техническую дискуссию о том, как инженер по программному / аппаратному обеспечению может подойти к извлечению моего сборочного объекта из такого устройства. И я не спрашиваю, чтобы взломать один, но знать, сколько у меня хлопот, как мое уныние против подделки. Я знаю, есть ли желание, всегда есть способ. Но на первый взгляд кажется, что для обхода этой схемы потребуются усилия в несколько тысяч долларов?

Учитывая ответ, я добавляю еще некоторые особенности. Ключ имеет следующее свойство: "Доступ к микросхеме защищен ПИН-кодом, а максимальное количество повторных попыток предварительно устанавливается разработчиками программного обеспечения. Например, при атаке по словарю, когда число повторных попыток превышает предварительные. заданное значение, чип запустит самоблокирующийся механизм ". Таким образом, чтобы получить доступ к чипу и, следовательно, к коду внутри него, вы должны знать PIN-код, в противном случае после, скажем, 10 попыток вы будете заблокированы. Лично я не вижу, чтобы кто-нибудь мог скомпрометировать эту систему. Не имеет значения, что входит или выходит, важно то, что работает внутри процессора ARM ключа. Физический принудительный доступ разрушил бы чип. Для электрического доступа потребуется ПИН-код, иначе микросхема заблокируется. Как еще это может быть скомпрометировано?

2 ответа

Я в значительной степени согласен с вашей точкой зрения, что все ключи могут быть взломаны, это всего лишь вопрос времени и затрат. Если ваша схема шифрования хорошо спроектирована, чип EAL 5+ должен быть достаточно безопасным, чтобы ваше программное обеспечение не могло злонамеренно атаковать.

И я думаю, что если вы можете ПРОЧИТАТЬ ключ, это, вероятно, означает, что вы уже взломали ключ, или это доказывает, что в схеме шифрования существует фатальная уязвимость.

Кстати, ссылка, которую вы даете выше, не работает. Вы имеете в виду этот ключ? http://www.senselock.com/en/productinfor.php?nid=180&id=142&pid=

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

Другие вопросы по тегам