Мне нужно контролировать использование файлов STL, используя настольное программное обеспечение (я буду разрабатывать программное обеспечение). Это может быть либо в C ++, либо в C #.
Здесь файлы STL относится к стереолитографии файлы, используемые для 3D-печати.
Контролируемое использование, относится к использованию, указанному дистрибьютором. Таким образом, это может быть 1 день, 2 часа или что угодно, что дистрибьютор сочтет нужным. Срок действия файлов истекает после их получения пользователем.
Любые идеи должны быть оценены.
Срок действия файлов не истекает сам по себе (если мы не говорим о неисправных носителях), и доступ к ним должен быть ограничен программным обеспечением или комбинацией программного и аппаратного обеспечения.
Если вы планируете сделать файлы STL открытыми в любой момент (например, когда пользователь пытается открыть их в средстве просмотра или редакторе), их содержимое нельзя скрыть или предотвратить копирование.
И даже если вы связываете их с программой, которая извлекает их из себя или получает их с вашего веб-сайта при запуске редактора и удаляет их при выходе (автоматически), редактор все равно может сохранить копию в другом файле ( это может даже сохранить временную / резервную копию автоматически).
Один из способов защитить эти файлы от копирования — сделать их доступными в вашей программе, а не вне ее, что может сделать файлы совершенно бесполезными, если ваша программа не позволяет пользователю определить, хороши ли они (я воображая, 1 day, 2 hour, or whatever
подразумевает какую-то пробную версию). Но даже тогда они все еще могут быть извлечены из него во время выполнения умелыми хакерами.
Если ОС поддерживает DRM для произвольных файлов и интересует вас, возможно, вы сможете использовать функциональные возможности ОС DRM для управления копированием и временем жизни файла. К сожалению, я не обладаю практическими знаниями об этом, чтобы указывать направление такого решения.
Другой вариант — распространять файлы в открытом виде, но встраивать в них какие-то водяные знаки, уникальные для каждого пользователя / лицензии и способные выдержать определенное количество редактирования. Это не решит всех проблем, но если копия начнет распространяться в Интернете, вы сможете сказать, кто ее «слил», и пойти за ними.
В любом случае, вся защита может быть обойдена, если у вас будет достаточно времени и навыков. Если вы не можете сломать это, это не значит, что кто-то другой не сможет.
Я посмотрел на стандартное определение STL и похоже, что может быть трудно вставить некоторые данные лицензии внутри. Несколько вариантов, которые приходят мне на ум:
a) Создайте свой собственный формат, являющийся надмножеством STL, включая некоторые встроенные данные лицензии. Вам придется ограничить использование «чистых» STL-файлов, потому что пользователь может извлечь часть данных вашего файла и сохранить ее в простой STL-файл.
б) Создайте свой собственный формат с вашей собственной структурой, включая лицензию. Это сделает извлечение данных сложнее, чем в пункте а).
c) Заставьте программу загрузить данные с вашего сервера — тогда тестирование лицензии будет на вашей стороне. Убедитесь, что на жестком диске не сохраняются данные, так как в противном случае пользователь может снова извлечь данные и сохранить файл в другом месте.
d) (Предпочитается). Не применяйте никаких мер безопасности (определенный взломщик в конечном итоге уничтожит их, потому что в какой-то момент вам придется хранить незашифрованные данные STL на диске или в памяти, чтобы к ним можно было получить доступ). Вместо этого лицензируйте свои файлы правильно.
Помните, что нет никаких мер безопасности, которые не могут быть нарушены. Для ваших клиентов гораздо ценнее то, что вы тратите время на разработку новых функций, чем на внедрение новых мер безопасности, которые будут раздражать законных пользователей и в конечном итоге будут игнорироваться недобросовестными.