Как реализовать лицензирование во время выполнения? - PullRequest
4 голосов
/ 17 июля 2009

Мне нужно реализовать лицензирование во время выполнения во встроенном стеке протоколов.

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

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

1 Ответ

3 голосов
/ 29 сентября 2009

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

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

...