2013-06-21 5 views
0

У меня есть надстройка Excel, которую мы хотим развернуть для клиентов. В настоящее время это файл .xlam. Я знаю, что надстройки Excel, вероятно, не лучший способ распространения программного обеспечения, но это то, что у меня есть. Мой вопрос: как защитить эту надстройку от использования на других компьютерах, чем предполагаемый клиент?Ограничить распространение надстройки Excel

Я рассмотрел следующие:

  1. надстройка проверяет наличие файла в каком-то неясном месте. Если он существует, перейдите к шагу 6
  2. Если файл не существует, сгенерируйте файл с некоторым случайным набором символов. И отобразите это как регистрационную информацию для пользователя.
  3. Затем пользователь связывается с нами для получения кода активации.
  4. Мы создаем код активации с использованием некоторого алгоритма с соленой хешей и отправляем его обратно пользователю.
  5. Пользователь вводит этот код активации в приглашение. Макрос проверяет его, а затем сохраняет код активации на защищенном листе в .xlam.
  6. Затем макрос проверяет, что код активации на защищенном листе действителен для кода в файле. Если он не запрашивает активацию.
  7. Если файл и активация совпадают, разрешите доступ к функциям надстройки.

проблем, которые я с высказанной идеей является следующее:

  1. Где должен храниться файл, и что о машинах, которые не позволяют текущему пользователю создавать файлы в этом месте?
  2. Было бы легко для пользователя узнать о существовании этих файлов? Если файл будет скопирован на другой компьютер, надстройка будет проверять его и работать без проблем.
  3. Если мы обновим надстройку, она потеряет код активации. Это может быть легко устранено, если мы используем второй файл вместо защищенного листа для его хранения.
+0

Ваша предлагаемая схема похожа на замок на вашей входной двери: это только держит честных людей. Если вы серьезно относитесь к обеспечению безопасности своего продукта, вам нужно будет отказаться от VBA _and_, используя высокоуровневое решение безопасности (другие, более квалифицированные, чем я, должны будут прокомментировать, что это может быть) –

ответ

2

Его довольно легко создать установщик XLA/XLAM, для которого требуется пароль для установки (Setup Factory, InstallShield и т. Д.). Однако они не предотвращают случайного копирования самого XLA/XLAM.
Но главная проблема с XLA/XLAM заключается в том, что их легко взломать, поэтому любой код лицензирования для управления активацией, встроенный в XLA/XLAM, не является безопасным. Это может быть или не иметь значения в зависимости от вашей целевой аудитории.
Для большей безопасности система лицензирования действительно нуждается в кодировании на более безопасном языке, предпочтительно полностью скомпилированной DLL или, возможно, запутанной сборке .NET. В сети есть множество готовых решений, которые делают это.