0

Я хочу лицензировать свой продукт. Вопрос о проверке и обеспечении того, чтобы открытый ключ не был изменен, так это сертификат (Man in the middle attack).Public Key Integrity - Человек в средней атаке

Что я запланировал до сих пор;

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

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

Возможно ли это? Если да, то каким может быть решение, чтобы убедиться, что мой открытый ключ не изменен?

ПРИМЕЧАНИЕ: подключение к интернету отсутствует.

+0

Ну, они могли бы просто отредактировать EXE и пропустить бит, где он выполняет валидацию (притворяться, что он всегда возвращает успех). –

ответ

1

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

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

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

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

Смежные вопросы