Я хочу лицензировать свой продукт.
Речь идет о проверке и обеспечении того, чтобы открытый ключ не был изменен, так же как и сертификат (Человек в середине атаки).
То, что я запланировал до сих пор;
Теперь проблема в том, если кто-то перепроектирует EXE-файл, заменит открытый ключ своим собственным открытым ключом и получит новый сертификат, сгенерированный с его собственным закрытым ключом. Тогда EXE всегда будет проверять сертификат и мой EXE взломан.
Это возможно? Если да, что может быть решением, чтобы мой открытый ключ не был изменен?
ПРИМЕЧАНИЕ: нет подключения к Интернету.
Чтобы обеспечить целостность чего-либо (например, исполняемого файла), подпишите его (или его важные части) закрытым ключом и проверяйте, что подпись действительна при каждом запуске приложения.
Кто-то, у кого достаточно времени, может, конечно, выяснить, как делается подпись, и заменить ее. Они могли бы вообще обойти чек. Единственное лекарство от этого — шифрование. Но кто-то с достаточным количеством времени мог бы разработать алгоритм расшифровки …
Обычным способом защиты вашей лицензии является привязка программного обеспечения к некоторому оборудованию, например, к USB-ключу, TPM или жесткому диску. Это все еще не гарантирует, что решительный хакер не обойдет ваше лицензирование.
Нет 100% защиты от хакеров. Все, что вам нужно сделать, это сделать это неэкономичным для ваших пользователей взломать его. Приложите усилия, чтобы взломать гораздо дороже, чем вы берете за продукт. Сделайте условия лицензирования очень четкими и предупредите о риске судебного преследования в случае нарушения. Внедрите механизм отчетности о предполагаемых нарушениях, чтобы вы могли следить за ними.