2009-02-17 18 views
5

मेरे पास यह जावा स्विंग एप्लिकेशन है जिसे मैं इंटरनेट पर बेचने का इरादा रखता हूं। फिलहाल मैं जावा वेबस्टार्ट का उपयोग कर एप्लिकेशन को तैनात करने की ओर झुका रहा हूं। उपयोगकर्ता को केवल एक समय में एक कंप्यूटर पर प्रोग्राम का उपयोग करने के लिए लाइसेंस प्राप्त होगा। मैं इस मॉडल के साथ समुद्री डाकू के बारे में चिंतित हूं। मैं लाइसेंस मॉडल को लागू करने के लिए कुछ सुरक्षा सुविधाओं को स्थापित करना चाहता हूं। लक्ष्य कम से कम लाइसेंस प्राप्त उपयोगकर्ता के लिए स्थापित उत्पाद की प्रतिलिपि बनाना मुश्किल है, जिसमें लाइसेंस रहित उपयोगकर्ताओं को लाइसेंस कुंजी शामिल है। यहां वे विकल्प मैं अब से देख रहा हूँ कर रहे हैं:जावा वेबस्टार्ट एप्लिकेशन के लिए समुद्री डाकू को कैसे रोकें

  1. फोर्स उपयोगकर्ता हर बार कार्यक्रम का शुभारंभ किया गया है एक उपयोगकर्ता नाम/पासवर्ड के साथ माँ जहाज को प्रमाणित करने के लिए।

  2. पंजीकरण और भुगतान के बाद उपयोगकर्ता पीसी पर कहीं भी लाइसेंस कुंजी स्थापित करें (छुपा?)। रनटाइम पर, सत्यापित करें कि वैध लाइसेंस कुंजी स्थापित है।

  3. उपयोगकर्ता कंप्यूटर के हार्डवेयर फ़िंगरप्रिंट पर आधारित सुरक्षा पैकेज का उपयोग/निर्माण करें। प्रत्येक फिंगरप्रिंट की गणना प्रत्येक बार ऐप शुरू होने पर की जाती है और कुछ प्रकार के हैश का उपयोग करके स्थानीय रूप से स्थापित लाइसेंस कुंजी की तुलना में की जाती है। यह लाइसेंस कुंजी केवल इस हार्डवेयर फिंगरप्रिंट के साथ मान्य होगी।

मुद्दों यहाँ से एक एक बार इस आवेदन स्थापित किया गया है, वहाँ आवेदन माँ जहाज, जावा webstart का उपयोग कर आवेदन अपडेट की जांच करने के अलावा अन्य से संपर्क करने के लिए किसी भी क्रम की जरूरत नहीं है कि है। ऐप जो कुछ भी करता है वह स्थानीय रूप से करता है और स्विंग का उपयोग कर उपयोगकर्ता को परिणाम प्रदर्शित करता है। तो एक मां जहाज से जुड़े किसी भी समाधान का मूल रूप से लाइसेंस सत्यापन के एकमात्र उद्देश्य के लिए एक सर्वर आधारभूत संरचना का निर्माण करना होगा।

मुझे लगता है कि मैं जो खोज रहा हूं वह कुछ जावा आधारित है जो कम से कम कुछ सुरक्षित, तैनात करने में आसान है और उपयोगकर्ता के लिए दर्द नहीं है। आपने किस सुरक्षा/लाइसेंसिंग दृष्टिकोण का उपयोग किया है?

संपादित करें: मुझे यह जोड़ना चाहिए कि मैं जरूरी नहीं कि चांदी को बुलेट की तलाश कर रहा हूं ताकि पूरी तरह से सुरक्षा को हराने से रोका जा सके। ऐसा करने के तरीके खोजने के लिए हमेशा अपने हाथों पर पर्याप्त समय वाला कोई व्यक्ति होगा। मैं इन लोगों से इतना चिंतित नहीं हूं। मैं मूल रूप से एक आरामदायक उपयोगकर्ता के लिए लाइसेंस कुंजी की प्रतिलिपि बनाना और अपने दोस्तों को भेजना मुश्किल बना रहा हूं। सही तरीके से कार्यान्वित किया गया, समाधान को आकस्मिक उपयोगकर्ता को यह समझाना चाहिए कि इसे खरीदने के लिए यह आसान है।

+0

सॉफ़्टवेयर जो आपके हार्डवेयर के फिंगरप्रिंट की गणना करता है और केवल लाइसेंसिंग उद्देश्य के लिए मातृत्व से बात करता है? एक ** में दर्द की तरह लगता है और मुझे विंडोज़ सक्रियण सामग्री की याद दिलाता है। कृपया, ऐसा मत करो। –

उत्तर

10

मैं कहूंगा (2) आपकी सबसे अच्छी शर्त है। आप पहले से ही (1) से बात कर चुके हैं, और (3) यदि उपयोगकर्ता कहते हैं, तो एक नया मदरबोर्ड खरीदा है तो समस्याएं पैदा होंगी। (2) एक उचित कंप्यूटर-समझदार उपयोगकर्ता के खिलाफ ज्यादा सुरक्षा नहीं होगी, लेकिन इससे कई समस्याएं नहीं होनी चाहिए।

लेकिन अंत में, आप कुछ भी नहीं कर सकते हैं एक निर्धारित उपयोगकर्ता को आपके सॉफ़्टवेयर को पायरेट करने से रोक देगा।

वास्तव में, सबसे प्रभावी एंटी-पायरेसी सॉफ्टवेयर विकास की रणनीति सभी का सबसे सरल एक है:

  1. एक महान गुस्सा उत्पाद है।
  2. इसके लिए उचित मूल्य चार्ज करें।

- Jeff Atwood

+0

मुझे पूरा यकीन नहीं है कि "फ्रिकिंग उत्पाद" क्या है। –

9

आईएमओ, ग्राहक पक्ष पर प्रतिलिपि संरक्षण को लागू करने की कोशिश कर रहा है, यह शायद इसके लायक से अधिक परेशानी है। आप अपने ग्राहकों को बाहर निकालने की कोशिश कर रहे अनगिनत घंटे बिताएंगे (घंटे जो आप अपने उत्पाद को बेहतर बनाने में खर्च कर सकते हैं), लेकिन अंत में समुद्री डाकू हमेशा जीतेंगे।

आप अन्य विकल्पों, हालांकि है:

  1. एक आकर्षक मूल्य निर्धारण मॉडल है, और यह बहुत आसान लोगों को अपने उत्पाद को खरीदने के लिए हैं। यदि आपके पास संदेह के बजाय सम्मान और विश्वास के साथ अपने ग्राहक को प्रवेश करने और इलाज करने के लिए पर्याप्त बाधा है, तो आप समुद्री डाकू के जोखिम को कम करते हैं।
  2. अपने उत्पाद को किसी प्रकार की ऑनलाइन सेवा से टाई। ग्राहक को दें, लेकिन सेवा के लिए चार्ज करें। यह बर्फ़ीला तूफ़ान वर्ल्ड वार्कक्राफ्ट के साथ करता है, और यह उन कुछ खेलों में से एक है जहां चोरी की कोई समस्या नहीं है (उनके पास कई अन्य समस्याएं हैं, लेकिन यह एक और कहानी है)।
+0

बस एक नाइटपिक, लेकिन प्वाइंट 2 का उदाहरण गलत है: बर्फ़ीला तूफ़ान क्लाइंट के लिए भी शुल्क लेता है, और उनके पास चोरी की समस्याएं होती हैं, यही कारण है कि वे सर्वर इम्यूलेशन सॉफ़्टवेयर लिखने वाले लोगों के पीछे जाते हैं। – Powerlord

+0

उनके पास चोरी की समस्याएं हैं, लेकिन वे लोग भुगतान करने वालों के समान अनुभव प्राप्त करने में सक्षम नहीं हैं। वे कम आबादी वाले कमजोर निजी सर्वर पर फंस गए हैं। – ryeguy

+0

वाह के बारे में मेरा उदाहरण पूरी तरह सटीक नहीं हो सकता है, लेकिन मेरा मुद्दा यह है कि पीसी गेम कंपनियों के बीच, बर्फ़ीला तूफ़ान के अधिकांश लोगों की तुलना में समुद्री डाकू के साथ बहुत कम समस्याएं हैं (क्रिस्टिस की निराशाजनक बिक्री की तुलना में, एक प्रमुख खेल जो भारी समुद्री डाकू था)। –

3

ईमानदारी से, जब तक कि वास्तव में कार्य करने के लिए (के रूप में फ्रेड-ओ कहा Warcraft की दुनिया की जरूरत है, और सच है) सर्वर से डेटा की जरूरत है, तो कुछ भी नहीं आप क्लाइंट साइड कर सकते हैं कि हो जाएगा पूरी तरह से मूर्ख प्रमाण। आपके द्वारा किए गए सभी 3 विचारों को आसानी से घुमाया जा सकता है। सर्वर/लॉगिन एक कठिन हो सकता है, लेकिन मैंने स्थानीय रूप से एक डमी लॉगिन सर्वर बनाने के लिए क्रैक को भी देखा है, इसलिए प्रोग्राम को लगता है कि यह प्रमाणीकृत है।

समुद्री डाकू को रोकने का एकमात्र सही तरीका कुछ सर्वर-साइड तर्क है कि प्रोग्राम को चलाने की आवश्यकता है। उदाहरण के लिए - आप ऐसे सॉफ़्टवेयर बना रहे हैं जो छवियों का आकार बदलते हैं (मुझे पता है, मुझे पता है)। यदि कच्ची छवि को आपके सर्वर पर भेज दिया गया था और वहां आकार बदल दिया गया था और फिर क्लाइंट को वापस भेज दिया गया था (क्लाइंट के आकार बदलने के विरोध में), तो आप सुरक्षित रहेंगे क्योंकि आपका सर्वर किसी प्रकार की लॉगिन प्रणाली से आसानी से संरक्षित हो सकता है । और वैध उपयोगकर्ता नाम या पासवर्ड के बिना (या यदि उन्होंने नकली उत्पन्न करने का प्रयास किया), तो प्रोग्राम बेकार होगा।

यदि आप क्लाइंट साइड कार्यक्षमता को लागू करते हैं, तो यह आपके द्वारा किए जाने वाले कार्यों से कोई फर्क नहीं पड़ता है।

+0

हां, मैं कुछ मूर्ख प्रमाण की तलाश नहीं कर रहा हूं।चूंकि इस ऐप द्वारा आवश्यक सर्वर पर वास्तव में कोई डेटा और/या तर्क नहीं है, इसलिए शायद मैं # 2 की कुछ भिन्नता देख रहा हूं। – startmeup

2

आपके तीन समाधानों में से:

पहले किसी को कुछ भी करने के लिए नेट कनेक्शन की आवश्यकता होती है। उपयोगकर्ता खुश होने वाले नहीं हैं अगर वे इसे ऑफ़लाइन उपयोग नहीं कर सकते हैं। Google को इसके कार्यालय सॉफ्टवेयर के लिए इसका सामना करना पड़ा।

दूसरा स्थान प्रतिलिपि नहीं है, जब तक कि स्थान छिपा हुआ न हो, और एक छिपे हुए स्थान की अपनी कठिनाइयों (उदाहरण के लिए, कुछ लोग, विभिन्न स्थानों में चीजों को छिपाने के लिए ऐप्स को इंस्टॉल करना नापसंद करते हैं), और ' वैसे भी सुरक्षित नहीं है।

तीसरा काम तब तक काम करेगा जब तक कोई उपयोगकर्ता कंप्यूटर पर कुछ ऐसा नहीं करता जो फिंगरप्रिंट को बदलता है (मुझे नहीं पता कि आप क्या जांच रहे हैं), या ऐप को एक कंप्यूटर से प्रतिस्थापन में ले जाना चाहता है। तो आपके पास संभावित रूप से परेशान उपयोगकर्ता होगा। ("मैंने हार्ड ड्राइव को बदल दिया/एक अलग लैन कनेक्शन में स्थानांतरित कर दिया/सिस्टम की विफलता/जो भी हो, और [विलुप्त हो गई] चीज बस काम करना बंद कर दिया!")

तो, जबकि नंबर 2 की संभावना नहीं होगी उपयोगकर्ता की समस्याएं, यह प्रतिलिपि सुरक्षा योजना के लिए काम नहीं करेगी। नंबर 1 और 3 आपको दुखी उपयोगकर्ताओं के लिए जा रहे हैं, आपके लिए कुछ हद तक परेशानी होगी, और निर्धारित लोगों को इसे कॉपी करने से रोक नहीं पाएंगे।

3

मेरे सबसे अच्छा शर्त, एक आसान समाधान है कि आप बहुत ज्यादा कर नहीं करता लागू, और कहा कि कभी-कभी चोरी को हतोत्साहित करने के लिए ग्राहकों को क्रुद्ध नहीं है,। कुछ और जटिल और यह एक हथियार दौड़ होगी। एक जो जीतना बहुत मुश्किल है।

1

मैं गंभीरता से लाइसेंसिंग आवश्यकताओं पर पुनर्विचार करता हूं, क्योंकि उन्हें लागू करने से आपको वैध ग्राहक खो देंगे। यदि आप एक बड़ी कंपनी हैं, तो आप इसे बर्दाश्त कर सकते हैं, लेकिन यदि आप स्टार्टअप या एक व्यक्ति हैं जो आप नहीं कर सकते हैं।

एक तरीका बाहर व्यक्तिगत लाइसेंस प्रदान करना है - व्यक्तिगत मशीनों के सभी मशीनों के लिए अच्छा है। यह बेहतर या बदतर के लिए, लोगों को लगता है कि सॉफ़्टवेयर "बेचना" बेचा जाना चाहिए। यदि आप उन्हें प्रत्येक मशीन के लिए भुगतान करते हैं तो वे उपयोग करेंगे जैसे वे लाभ उठा रहे हैं, और यही वह समय है जब वे किसी और की लाइसेंस कुंजी के लिए वेब को टोल करना शुरू करते हैं।

यदि उपयुक्त हो, तो आप उन्हें अलग-अलग खरीदने पर छूट के लिए कॉर्पोरेट लाइसेंस, या लाइसेंस के 10-पैक, या जो भी पेशकश कर सकते हैं। यह कानूनी रूप से आपके सॉफ़्टवेयर का उपयोग करने के लिए व्यक्तियों और संगठनों दोनों तरीकों को देता है जो उन्हें ऐसा महसूस नहीं करते हैं कि आप उन्हें अनुचित तरीके से निचोड़ रहे हैं।

0

जेएनएलपी का उपयोग अपने आवेदन में समय सीमित घटक रखने के लिए - लाइसेंस मॉड्यूल? - जिसे इंटरनेट पर नियमित रूप से अपडेट किया जाना चाहिए। अद्यतन संस्करण की पहुंच के लिए पंजीकरण की आवश्यकता है।

कार्यक्षमता को अक्षम करने से पहले एक अवधि के लिए उपयोगकर्ता को ऑफ़लाइन होने (या अपग्रेड करना नहीं चाहते) की लंबी अनुग्रह अवधि है।

0

जब तक एप्लिकेशन को वास्तविक कार्य करने के लिए पहले से नेट से कनेक्ट करने की आवश्यकता नहीं होती है, तो घर पर फोन करने से आसानी से स्पाइवेयर के रूप में वर्गीकृत किया जा सकता है।

और मुझे यकीन नहीं है कि यह जावा वेब स्टार्ट पर लागू होता है, लेकिन फ़ायरवॉल आपके एप्लिकेशन को फोनिंग होम से अवरुद्ध कर सकता है, तो आपके भुगतान करने वाले ग्राहक अभी भी अपना एप्लिकेशन अवरुद्ध कर सकते हैं।

तो: मैं उस चीज़ का उपयोग नहीं करता जो हर समय घर पर फोन करता है।

(लाइसेंस कुंजी के लिए: यदि कोई कुंजी केवल एक विशिष्ट पंजीकरण नाम के साथ काम करती है, और यदि वह नाम कुछ संवाद में दिखाया गया है, तो मैं इसे हार्डवेयर निर्भर करने के बारे में चिंता नहीं करता। निश्चित रूप से, कुछ पंजीकरण नाम और उनकी चाबियाँ साझा की जाएंगी, लेकिन कुछ भी फैंसी प्रयास के लायक नहीं है। अगर मेरा मैक मुझे विफल कर देता है तो मैं नए हार्डवेयर पर 1-क्लिक टाइम मशीन पुनर्स्थापना देखने के लिए खुश नहीं हूं, आपका एप्लिकेशन शुरू करने में विफल रहता है।)

संबंधित मुद्दे