Предложения по защите программного обеспечения
Я пытаюсь найти хороший способ защитить программу, которая должна управлять ее пользователями. Программа нацелена на очень специфический рынок, у которого есть низкий шанс того, что люди будут стараться изо всех сил взломать или пиратствовать, так что проблема не в этом.
В настоящее время мы связываем пользователя по имени пользователя / MAC-адресу, и это очень плохой способ защиты программного обеспечения из-за проблем с док-станциями для ноутбуков или Wi-Fi.
Мне нужен способ выяснить, как привязать пользователя к машине, чтобы, если они попытаются использовать то же программное обеспечение на другом компьютере, он не будет работать.
-Не нужно быть полностью безопасным, просто нужно меньше ошибок
Это будет среда только для windows от xp-> windows 7, которая может быть на любом ноутбуке, серверах и виртуальных машинах.
Спасибо
2 ответа
Обычно они привязываются к нескольким идентификаторам (серийный номер жесткого диска, MAC-адрес, серийный номер процессора и т. Д.) И проверяют, что хотя бы некоторые идентификаторы совпадают (поэтому замененный жесткий диск не сломает sw). Но список идентификаторов hw/license довольно специфичен для конкретной платформы, поэтому, не зная, что точного ответа нет.
Редактировать: (если вы привязываетесь к одному MAC-адресу, вы все равно можете работать достаточно хорошо, если вы используете встроенный (-ые) интерфейс (-ы) локальной сети, а не активный) (для серверов это сложнее, поскольку они обычно несколько LAN if-s, так что вам определенно понадобится список идентификаторов)
(Раскрытие информации - я работаю на Agilis Software, поставщика систем защиты программного обеспечения).
Прежде всего, MAC-адрес не является хорошей идеей для блокировки, даже если он широко используется, так как он может быть установлен администратором, что позволяет легко запускать ваше приложение где угодно. Лучше всего использовать комбинацию параметров, но вам нужно подумать о следующем (конечно, все это предусмотрено в системе Agilis):
- Что, если параметр изменяется из-за того, что пользователь обновляет свою систему? Хотите ли вы, чтобы лицензия перестала работать, или чтобы у вас были небольшие отклонения от системных изменений, чтобы она продолжала работать?
- Как вы получите параметры блокировки? Любое участие человека может привести к ошибкам и неудобствам для вашего пользователя (опечатки, прописные и строчные буквы, ввод "1" для "l" или "O" для "0" и т. Д.)
- Что если пользователь захочет перенести свою лицензию на другой компьютер? Могут ли они сделать это без неудобств, но без того, чтобы у вас было много копий, работающих под одной лицензией?
- Смежная тема - что вы будете делать, когда пользователь звонит и говорит: "Помогите, моя система сломалась, и мне нужно установить лицензию на другом компьютере!". Вы получите эти звонки...
- Вы упомянули виртуальные машины. Основным подходом здесь является привязка к инвариантным логическим параметрам виртуальной машины. Для дополнительной безопасности вы также можете периодически запускать приложение "Телефон домой".
Надеюсь это поможет.