Генерация ключей / проверка, что там? - PullRequest
0 голосов
/ 24 января 2010

Меня попросили разработать систему генерации / проверки ключей для некоторого программного обеспечения. Они также были бы открыты для разработанной системы с открытым исходным кодом или коммерческой системы, но предпочли бы систему с нуля. Активация в сети должна быть необязательной, поскольку вполне вероятно, что некоторые установки будут выполняться на изолированных серверах. Я знаю, что есть своего рода комплекс пользователя / безопасности с множеством методов борьбы с пиратством. Так что, наверное, я спрашиваю, какие программы, библиотеки и методы существуют? Буду признателен за личные знания, веб-сайты или книги.

Ответы [ 2 ]

1 голос
/ 24 января 2010

Если вы берете хеш чего-либо, это приведет (в идеале) к непредсказуемой строке символов.

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

Например, если вы берете SHA1 из «1» (ваш первый лицензионный ключ) и сверхсекретную соль «stackoverflow8as7f98asf9sa78f7as9f87a7», вы получаете ключ «95d78a6331e01feca457762a092bdd4a77ef1de1». Вы можете добавить это к номерам версий, если хотите.

Если вы хотите авторизоваться онлайн, вам нужно три вещи:

  1. Чтобы гарантировать, что ответ не может быть подделан
  2. Чтобы гарантировать, что запрос не может быть подделан
  3. Чтобы убедиться, что если Интернет недоступен, вы предпримите соответствующие действия

Криптография с открытым ключом может помочь с элементами один и два. Даже у Photoshop CS4 есть проблемы с пунктом 3, это сложный вопрос.

0 голосов
/ 27 января 2010

Я предвзят, учитывая, что компания, которую я соучредил, разработала решение по лицензированию программного обеспечения Cobalt для .NET , но я бы предложил вам использовать стороннее решение, а не использовать свое собственное .

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

Мы считаем, что большинство компаний лучше обслужить, купив качественное стороннее лицензирование система. Такой подход освободит ваш разработчики работают над ядром функциональность и облегчит расходы на обслуживание и поддержку. Это также позволяет вам воспользоваться экспертиза предметной области, предлагаемая лицензированием специалисты, и избежать выпуска программное обеспечение, которое легко взломать.

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

Если вы не готовы к тому, чтобы катиться самостоятельно, совет: попробуйте самый широкий спектр клиентских систем. Реальное оборудование странно , и поведение Windows в некоторых версиях довольно сильно различается.

Вам почти наверняка придется потратить много времени, чтобы сгладить складки любой системы идентификации оборудования, которую вы внедряете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...