سؤال

أرغب في توزيع تطبيق، ولكن لدي مفتاح ترخيص يمكنهم إدخاله لفتح القفل.ما هي الخوارزمية الجيدة لإنشاء مفتاح موجز يحتوي على معلومات حول الإصدار الذي قاموا بشرائه، بالإضافة إلى أشياء إضافية مثل مدة الترخيص وما إلى ذلك.

أدرك أن هذه الحماية يمكن اختراقها، لكنها تحافظ على أمانة الأشخاص الشرفاء.قد أقوم أو لا أقوم بتنفيذ التنشيط عبر الإنترنت، ولكنني مهتم بشكل أساسي بالطريقة الجيدة لإنشاء هذه المفاتيح.

لقد رأينا جميعًا هذا الموقف، ما هي الخوارزمية التي تعمل بشكل أفضل؟هل يجب أن أطلب اسمًا عاديًا للمستخدم وأستخدمه لإنشاء مفتاح منتج فريد يعتمد على معلوماته الخاصة؟

هل هناك نظام يمكن استخدامه لجعل إنشاء مفتاح صالح شبه مستحيل؟

ربما يكون موقف تشفير زوج المفاتيح العام/الخاص حيث يكون لدى الشركة المصنعة فقط المفتاح الخاص ويمكن التحقق من صحة البيانات بواسطة مفتاح عام، ولكن لا يمكن اختراق المفتاح العام لإنشاء مفاتيح صالحة.

نظرًا لأن هذا مفتاح منتج، سيكون من الرائع أن يكون قصيرًا إلى حد ما، 64 حرفًا أو ربما 128 حرفًا كحد أقصى، ولكن كلما كان أقصر كان ذلك أفضل، 32 أو أقل سيكون رائعًا.

هل كانت مفيدة؟

المحلول

وأنت لا تقول ما منصة كنت على، ولكن هنا واحد في Microsoft .NET:

http://jclement.ca/devel/dotnet/reallysimplelicensing.html

<اقتباس فقرة>   

هذه الصفحة توثق بسيط جدا   نظام الترخيص التي يمكنك استخدامها مع   تطبيق NET الخاص بك. انه متعمد   أن تكون آمنة إلى حد ما، وسهلة لتنفيذ   ومن السهل على تمديد. النسخة عينة   يسمح لك لتوفير ملفات الترخيص   مع اسم العميل جزءا لا يتجزأ منها   ولكن هل يمكن أن تمتد بسهولة لإضافة   معلومات تعريفية أخرى، وآلة   الارتباطات، وتواريخ انتهاء الصلاحية، وما إلى ذلك.

     

وهذا النظام يجعل من استخدام مايكروسوفت   مكتبة RSA وتوقيع XML. في الأساس   كنت وضعت كل ما تريد إلى XML   وثيقة وتوقيع تلك الوثيقة. ثم   يمكنك تقديم هذا الملف إلى الخاص بك   العملاء وتطبيق يمكن قراءة   معلومات الترخيص من ذلك   ملف. منذ الملف رقميا   وقعت ملف الترخيص لا يمكن أن يكون   العبث بها إلا إذا كنت الافراج الخاص بك   المفتاح الخاص (الذي كنت حقا   لا ينبغي القيام به).

نصائح أخرى

لا يوجد وصول إلى الإنترنت ومفاتيح التصوير

فيما يتعلق بحجم المفتاح التسلسلي ، هناك مقايضة بين المفاتيح القصيرة / القابلة للقراءة البشرية (أقل أمنا) ولها مفاتيح طويلة أو ربما ملفات ترخيص (أكثر أمنا).

إذا كنت تريد مفاتيح قصيرة وقابلة للقراءة البشرية تسمح لك بتخزين أشياء مثل تاريخ انتهاء الصلاحية والميزات، فيمكنك استخدام SKGL مع Software Protector، وكلاهما مفتوح المصدر (https://help.cryptolens.io/faq/what-is-skgl).

ومع ذلك، فإن العيب هو أنهم على الأرجح سيستخدمون التشفير المتماثل و/أو يخزنون خوارزمية إنشاء المفاتيح داخل التطبيق.وهذا يعني أنه يمكن للمستخدم النهائي محاولة العثور على مفتاح التشفير و/أو الخوارزمية (يرجى الاطلاع على http://www.codeproject.com/Articles/764610/Licensing-systems-in-NET).

الوصول إلى الإنترنت (أو غير متصل بالإنترنت مع ملفات التنشيط)

البديل الأفضل هو استخدام نظام قائم على السحابة يتتبع جميع مفاتيح الترخيص ويسمح لك بتعديلها في أي وقت.

إذا كان لديك نظام ترخيص قائم على الويب، فيمكنك إبقاء المفاتيح أقصر ولن تضطر إلى تخزين المعلومات داخل المفتاح الفعلي (كما هو الحال مع معظم الأنظمة غير المتصلة بالإنترنت).

علاوة على ذلك، ستتمكن من دعم المزيد من نماذج الترخيص، على سبيل المثال، النموذج القائم على الاشتراك.

الحلول هي:

  • بناء مثل هذا النظام بنفسك - الأمر الذي سيستغرق الكثير من الوقت ويشتت انتباهك عن الميزات الأساسية للتطبيق.

  • استخدام نظام مفتوح المصدر موجود كنقطة بداية - على الرغم من أنه قد يكون مغريًا لأنه مفتوح المصدر ومجاني، إلا أن إحضارها إلى السحابة + تهيئتها وفقًا لاحتياجاتك الخاصة + صيانتها سيستغرق بعض الوقت.تميل الأنظمة مفتوحة المصدر التي لاحظتها إلى أن تكون واسعة جدًا في الوظائف، مما يساهم في التعقيد.

  • الاستعانة بمصادر خارجية لطرف ثالث - العيب هو أن معظمها ليست مجانية.

في رأيي، يجب الاستعانة بمصادر خارجية لإجراء العملية برمتها لطرف ثالث متخصص في تطوير هذا المكون المعين.بمجرد التوسع، قد تحتاج إلى تغيير منطق الترخيص.بدلاً من تطويره بنفسك، من المحتمل أن الطرف الثالث يدعم هذا السيناريو بالفعل.

هناك عدة حلول (تأكد من البحث عن تلك التي تعتمد على الويب), كريبتولينس هو أحد الأمثلة.إذا كنت تقوم بتطوير تطبيق .NET، فإليك مثال خطوة بخطوة: https://help.cryptolens.io/examples/key-verification.


تنصل:أنا مؤلف SKGL/Software Protector، المقالة حول أنظمة الترخيص وCryptolens.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top