यह है मेरा पहला सवाल तो कोमल हो कृपया ...लाइसेंस योजना, हंसोड़-सुरक्षित और रद्द क्षमताओं
मैं एक सॉफ्टवेयर है जो मैं लाइसेंस योजना के कुछ प्रकार का उपयोग कर की रक्षा करना चाहते हैं पर काम कर रहा हूँ। उपयोगकर्ता के लिए कुछ "अद्वितीय" कुंजी उत्पन्न करने के लिए एक मूल योजना होगी। उपयोगकर्ता इस कुंजी और पंजीकरण कोड भेजता है जब वह सॉफ़्टवेयर पंजीकृत करना चाहता है और एक सक्रियण कोड प्राप्त करता है।
जब एप्लिकेशन चलाता है तो सक्रियण कोड को डिक्रिप्ट करके प्राप्त "अद्वितीय" कुंजी और डेटाबॉब की तुलना करके सक्रियण कोड को मान्य करता है।
यह उचित और लागू करने के लिए काफी सरल है, एक आदि हालांकि इस योजना के दो गुण का अभाव अलग क्रिप्टो एल्गोरिदम चुन सकते हैं: उपयोगकर्ता हंसोड़ हार्डवेयर हस्ताक्षर आदि में सफल हुआ तो एक ही "अद्वितीय निर्माण करने के लिए
- "एक और कंप्यूटर पर कुंजी वह एक ही लाइसेंस डेटा का उपयोग कर सकता है।
- यदि उपयोगकर्ता एप्लिकेशन को अनइंस्टॉल करने का निर्णय लेता है और उसे किसी अन्य कंप्यूटर पर ले जाना चाहता है, तो ऐसा कुछ भी नहीं है जो पुराने कंप्यूटर पर पुराने लाइसेंस डेटा का उपयोग करने से रोकता है और फिर भी नई स्थापना के लिए नया लाइसेंस डेटा प्राप्त करता है।
क्या आपके पास इन मुद्दों को हल करने के बारे में कोई सुझाव है?
एक विचार जो मुझे "अद्वितीय" कुंजी में कुछ यादृच्छिक डेटा जोड़ना था, यह यादृच्छिक डेटा एक अस्पष्ट तरीके से संग्रहीत किया जाएगा, यदि उपयोगकर्ता इस यादृच्छिक डेटा को हटा देगा, और किसी प्रकार का हैश पिछले यादृच्छिक डेटा के साथ और लाइसेंस डेटा जेनरेट किया जाएगा जो मुझे यह सत्यापित करने के लिए भेजा जा सकता है कि उसने वास्तव में एप्लिकेशन को अनइंस्टॉल कर दिया है और मुझे यह सुनिश्चित किया है कि यादृच्छिक डेटा बदलने के बाद से वह पिछले लाइसेंस डेटा का उपयोग करने में सक्षम नहीं होगा।
से अधिक और बाहर अब के लिए...
संपादित करें: मैं वर्तमान में एक योजना है कि काम करता है, मुझे लगता है कि सबसे आम उत्पाद एक एम्बेडेड वातावरण में स्थापित किया गया है जहां हार्डवेयर-परिवर्तन बहुत दुर्लभ हैं उल्लेख करना चाहिए और यदि हार्डवेयर विफलता है तो सबसे निश्चित है कि मशीन टूटा हुआ है। लेकिन मैं हार्डवेयर-कुंजी योजना को ध्यान में रखकर संशोधित कर सकता हूं और कुछ बदलावों की अनुमति देता हूं।
इसके कारण सॉफ़्टवेयर संभवतः वीएम के अंदर नहीं चलाया जाएगा, हालांकि अच्छा बिंदु और मैंने इसके बारे में सोचा नहीं है।
यदि कोई नेटवर्क कनेक्शन उपलब्ध है, तो एप्लिकेशन नियमित रूप से कॉल नहीं करता है, उपयोगकर्ता को अधिक स्वचालित पंजीकरण करने का विकल्प मिलता है, अन्यथा उसे पंजीकरण कुंजी मिलती है, इसे सॉफ़्टवेयर में प्रवेश करती है और एक इंस्टॉलेशन आईडी प्राप्त होती है जो मुझे प्रदान किया जाता है, पंजीकरण कोड + स्थापना आईडी एक सक्रियण कुंजी उत्पन्न करती है जिसे उपयोगकर्ता मुझसे प्राप्त करता है जो तब सॉफ़्टवेयर को अनलॉक करता है।
जो मैं खोज रहा हूं वह 2 अंकों के लिए अच्छा/व्यवहार्य समाधान है। हार्डवेयर स्पूफिंग, लाइसेंस कुंजी को रद्द करना यानी यह सुनिश्चित करने के लिए कि उपयोगकर्ता एक ही regcode + activationcode का उपयोग नहीं कर सकता है।
यदि ऐप बस चाबियाँ "तुलना करता है", तो एक क्रैकर आसानी से तुलना करने के लिए एक जेएमपी निर्देश डाल सकता है, या "सत्यापित" वापस कर सकता है। उन्हें बस इतना करना है कि ऐप को तोड़ने और एक अच्छी कुंजी बनाम एक खराब कुंजी के निष्पादन की तुलना करें। कोड को सुरक्षित रखना बहुत मुश्किल है क्योंकि कोड को अपना काम करने के लिए चलाना चाहिए, और जब आप इसे देखते हैं तो आप इसे देख सकते हैं। –
यह सच है, हालांकि सक्रियण कुंजी में कुछ एम्बेडेड क्रिप्टो-कुंजी हो सकती है जिसे एप्लिकेशन के लिए सही ढंग से कार्य करने के लिए आवश्यक डेटा फ़ाइलों को डिक्रिप्ट करने के लिए चुपचाप उपयोग किया जाता है, यदि क्रैकर jzz में jz बदलने के लिए प्रबंधित करता है या इसके विपरीत उसे अभी भी आवश्यकता होती है सॉफ़्टवेयर के लिए सही तरीके से कार्य करने के लिए सही कोड प्राप्त करें। रास्ते से अच्छी टिप्पणी! –
एचएम। क्या इसका मतलब है कि डेटा फाइल प्रति ग्राहक अद्वितीय हैं? –