Я использовал как FLEXlm от Macrovision (ранее Globetrotter), так и новый RLM от Reprise Software (как я понимаю, написанные авторами FlexLM). Оба могут отключить либо MAC-адрес, либо физический ключ, могут быть либо заблокированы узлом (привязаны только к одному компьютеру), либо «плавающие» (любой авторизованный компьютер в сети может получить лицензию, выделенную центральным сервером лицензий, вверх до максимального количества одновременно выписанных копий, определяемых тем, сколько они заплатили). Существует множество гибких способов его настройки, включая даты истечения срока действия, отдельные суб-лицензированные функции и т. Д. Интеграция в приложение не очень сложна. Это только те два, которые я использовал, я уверен, что есть и другие, которые выполняют эту работу так же хорошо.
Эти программы легко взломаны, что означает, что существуют известные эксплойты, которые позволяют людям либо обойти безопасность вашего приложения, которое их использует, либо разрезая свои собственные лицензии, чтобы обманывать сервер лицензий, либо просто исправляя ваш двоичный файл в обход проверка лицензии (по существу, замена вызова подпрограммы на их библиотеку кодом, который просто говорит «return» true ». Это сложнее, но это то, к чему это в основном сводится. Вы увидите взломанные версии вашего продукта, различные сайты Warez. Это может быть очень неприятно и деморализовать, тем более, что они часто заинтересованы в растрескивании ради трещин и даже не используют ваш продукт или не знают, что с ним делать. очевидно, если у вас достаточно специализированная программа.)
Из-за этого некоторые люди скажут, что вы должны написать свой собственный, возможно, даже часто меняете схему шифрования. Но я не согласен. Это правда, что использование ваших собственных средств означает, что известные эксплойты против FLEXlm или RLM не будут мгновенно работать для вашего приложения. Однако, если вы не являетесь экспертом по такой безопасности (что явно не так, или вы не зададите вопрос), весьма вероятно, что в вашей неопытности вы в конечном итоге напишите гораздо менее безопасный и более уязвимый чем лидеры рынка (слабые, как они могут быть).
Другая причина не сворачивать самостоятельно - это просто бесконечная игра в кошки-мышки. Для ваших клиентов и ваших продаж лучше приложить минимальные усилия для обеспечения безопасности лицензий и провести отладку или добавление дополнительных функций. Вам нужно понять схему лицензирования, как просто «честную честность людей», но не предотвращение решительного взлома. Примите, что взломщики не заплатили бы за программное обеспечение в любом случае.
Не каждый может принять такое отношение дзэн. Некоторые люди не могут спать по ночам, зная, что кто-то где-то ничего не получает. Но постарайся научиться справляться с этим. Вы не можете остановить пиратов, но вы можете сбалансировать свое время/усилия/расходы, пытаясь остановить все пиратство, или сделать ваш продукт лучше для пользователей. Помните, иногда самые пиратские приложения также являются самыми популярными и прибыльными. Удачи и хорошо спать.
пока вы используете MD5 в качестве подписи, вы также можете использовать правильную асимметричную подпись ключа. –
@ Джейсон, если вы просто используете MD5, вы можете безопасно обрезать результат, чтобы создать что-то управляемое. Подпись потребует, чтобы значительно большее количество данных было частью «ключа», поскольку это была бы полная зашифрованная подпись MD5. Если вы усекаете его, он нарушит проверку. – tylerl