डिजिटल हस्ताक्षर के उपयोग का विश्लेषण: 15 शीर्ष क्रिप्टोकरेंसी में से 10 सॉफ्टवेयर पर हस्ताक्षर नहीं करते हैं

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


आइए देखें कि फिनटेक क्रांति के गढ़ में डिजिटल हस्ताक्षर के उपयोग के साथ चीजें कैसी हैं।


प्रेरणा


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


के विश्लेषण


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


परिणाम


परियोजनापरिणाम
बिटकॉइन कोरएक स्रोत में कुंजी और कोड का प्रकाशन
एथेरियम गेटहएक स्रोत में कुंजी और कोड का प्रकाशन
एथेरियम एसडीकेकोई हस्ताक्षर नहीं
समानताकोई हस्ताक्षर नहीं
XRP-
Litecoinएक स्रोत में कुंजी और कोड का प्रकाशन
कार्डानो डेडालसकोई हस्ताक्षर नहीं
Cardanoकोई हस्ताक्षर नहीं
तारकीयअप्रकाशित कुंजियाँ
तारकीय sdkअहस्ताक्षरित रिलीज़, अप्रकाशित कुंजियों के साथ हस्ताक्षर
IOTA IRIकोई हस्ताक्षर नहीं
IOTA वॉलेटकोई हस्ताक्षर नहीं
ट्रॉन कोरकोई हस्ताक्षर नहीं
ट्रोन वॉलेटकोई हस्ताक्षर नहीं
नव गइकोई हस्ताक्षर नहीं
नव क्लीकोई हस्ताक्षर नहीं
Moneroएक स्रोत में कुंजी और कोड का प्रकाशन
डैश कोरएक स्रोत में कुंजी और कोड का प्रकाशन
डैश इलेक्ट्रमकोई हस्ताक्षर नहीं
एनईएम नैनो वॉलेटकोई हस्ताक्षर नहीं
नेम निसअप्रकाशित कुंजियाँ
एथेरियम क्लासिक*
Qtum कोरकोई हस्ताक्षर नहीं
Zcashअहस्ताक्षरित रिलीज़

(*) एथेरियम क्लासिक थर्ड-पार्टी सॉफ्टवेयर का उपयोग करता है और रिलीज की पुष्टि करने के लिए जानकारी प्रकाशित नहीं करता है।


सामान्य गलतियाँ


  1. हस्ताक्षर की कमी जैसे ( 10/15 ):
    यह निष्पादन योग्य कोड के रूप में अहस्ताक्षरित हो सकता है, लेकिन अहस्ताक्षरित लाइब्रेरी और एप्लिकेशन सॉफ़्टवेयर जैसे वॉलेट अधिक सामान्य हैं।
  2. अप्रकाशित कुंजी द्वारा हस्ताक्षर ( 2/15 ):
    कोड को कई डेवलपर्स द्वारा हस्ताक्षरित किया जाता है जिनकी कुंजी कहीं भी प्रकाशित नहीं होती है, और तदनुसार ऐसे हस्ताक्षर बेकार हैं।
  3. कुंजी और कोड का एक स्रोत में प्रकाशन ( 5/15 )।
    एक बहुत ही सामान्य गलती तीसरे पक्ष के संसाधन पर एक लिंक के माध्यम से कुंजी का प्रकाशन है, या साइट के रूप में एकल विश्वसनीय स्रोत का निर्माण। इस प्रकार, डेटा को बदलने के लिए, यह केवल साइट को हैक करने के लिए पर्याप्त है।

Atypical त्रुटियाँ


मोनेरो हस्ताक्षरित डेटा के साथ फ़ोल्डर में कुंजियों को देखने की पेशकश करता है। संक्षेप में, यह एक महत्वपूर्ण वितरण त्रुटि है, जिससे विश्वसनीयता का पूर्ण नुकसान होता है।


टिप!


  • Litecoin भरोसेमंद संसाधन pgp.mit.edu के लिंक सहित कुंजियाँ प्रकाशित करता है।
  • Ethereum और Zcash ने विस्तृत कीलिस्ट प्रकाशित किए:
  • Ethereum CI सेवा कुंजी प्रकाशित करता है।

कारणों


  1. एकीकृत रणनीति का अभाव । आज कोई निर्देश नहीं है जो विभिन्न डेवलपर्स को विभिन्न प्लेटफार्मों पर गारंटी कोड डिलीवरी सुनिश्चित करने की समस्याओं को हल करने के लिए उपयुक्त होगा। शौकिया प्रदर्शन का एक बड़ा हिस्सा।
  2. अप्रचलन । यदि आप PGP प्रौद्योगिकी के मुख्य स्थलों को देखते हैं, तो आपको यह आभास होता है कि प्रौद्योगिकी गुमनामी में है:
  3. हस्ताक्षरों के प्रकाशन और सत्यापन के लिए व्यापक उपकरणों का अभाव । यहां तक ​​कि अगर कोई इच्छा है, तो उपयोगकर्ता रास्ते में गंभीर बाधाओं का सामना करेगा - बहुत से उपयोगकर्ता यह नहीं जानते हैं कि हस्ताक्षर को सत्यापित करने के लिए अनिवार्य कंसोल का उपयोग करने के लिए कैसे तैयार नहीं हैं। यहां तक ​​कि डेवलपर्स के लिए, एक हस्ताक्षर का उपयोग करना एक तुच्छ कार्य नहीं है।
  4. पदावनत कुंजी विनिमय प्रोटोकॉल । 21 वीं सदी में, जब डेवलपर्स लगभग व्यक्तिगत रूप से कभी नहीं मिलते हैं, तो पी 2 पी आधार पर एक प्रमुख एक्सचेंज की व्यवस्था करना बहुत सुविधाजनक नहीं होता है और हस्ताक्षर के तेजी से वितरण और निरसन के लिए उपकरणों की आवश्यकता होती है।

टिप्स


इस स्थिति में सबसे अच्छा सुझाव:


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

निर्देश मैनुअल


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


Git के साथ GPG का उपयोग करना
  1. मुख्य प्रबंधन सॉफ्टवेयर डाउनलोड करें:
    1. लिनक्स (स्थापना की आवश्यकता नहीं, gpg2 उपयोग gpg2 )।
    2. MacOS GPG उपकरण
    3. विंडोज GPG4Win
  2. एक कुंजी उत्पन्न करें:
     > gpg2 --gen-key 
  3. हमें चाबी का फिंगरप्रिंट मिलता है:
     > gpg2 --fingerprint user@localhost gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u gpg: next trustdb check due at 2020-07-01 pub rsa2048 2018-07-02 [SC] [expires: 2020-07-01] E5F1 2C73 045F 1E85 302D A9D5 269E 7C5E B852 68BB uid [ultimate] User <user@localhost> sub rsa2048 2018-07-02 [E] [expires: 2020-07-01] 
  4. Git में कुंजी जोड़ें (देखें stackoverflow ):
     > git config user.signingkey E5F12C73 
  5. हम साइन-इन स्विच के अतिरिक्त के साथ आते हैं:
     > git commit -S -m 'Signed commit' 
  6. कुंजी निर्यात करें:


     > gpg2 --armor --export user@localhost -----BEGIN PGP PUBLIC KEY BLOCK----- mQENBFs6VDsBCADzd5F4jaJr7Dzp11+h5CmnRNHGSTWOMQe+TSXljR351BCF9hS6 VrIizaPCVkLW/ATsqdf6vZEApvbQplwHecFPwMpFhusTOILk7lsuXm8w5CscqgBo KiZdSBa9bpWmFrSsPgD8/2VMlQdh+3uChOKapsLo7cHKXNuWX8b1L30twNwgavMc Sel/3clO7Bwp9cFftyktsM/HtSUu1oaE//dibS60HzwmscPHsIIoYsfUSCEOj08f DwK2vLbPilYKyE7fONJpXCSPk5pfDnNxzdFWylNBTQL8benhCtSyfabbtHmeywe+ VWfRAGf/BRjjb7meAMX5vO6qh1l4FfHVo7irABEBAAG0FVJ1bWtpbiA8c3BhbUBy dW1rLmluPokBVAQTAQgAPhYhBOXxLHMEXx6FMC2p1SaefF64Umi7BQJbOlQ7AhsD BQkDwmcABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJECaefF64Umi7e4kIALs2 0wbQ0g5557cIbN/eXeK+DsyZFyp3D95RoOnLgWiDknVBluRyPY1QFkjKgNNepMNr 7TM1eNev1CcSDLkuUxlLMrDH9AsAIVWFl7v1+/npJuHkazylU2DgssWICF0yKgWZ tzOQUEDwX7xwIJ3g5v44Lymq0hPi56FVv+rq15hkNsqIOyjDQNVGROUURyO/+vUP khOa2ryjWCpdBzoRNxSyVMlyoABLHwTfXDkCFHV9T7bOa/o0GqILOZ7wCBN9tT5C 38ellwu/HTCtmzZsWvl3a6g8JcunB9yV3RZFQgUDvLEjiVoY2qqn/SWgcl6QR2Ro aEwTKk/p3PU1Foz7mEC5AQ0EWzpUOwEIAPbKGT/xzJ9JvXhMyoOGQZNWkqyXKtV4 zVdfdjxkWMrsMD/C2K1CQ5HPafTM9G/kATGCAmoFPCdLwrc9QqOw3H8PNxnph3Ca irvp0ICj6KDiuCCuptJYICzllKriyLhUDyFkb7GPpRgHpKJZMVCkRbDEau3jcJEx jsdUnjf3gDpEnkuV1pwSxGFxTV3vHNQBqGbFG8mjVkfZSnB++e+tyKPhC5X0QFue K2AlHbnj0/uXZ9wYfRTOJsbW6myR0k1edo7Y5P93fhpW49wwaMTe2Q9p+m6zRguf 8vC9sGUB/eGD9+6OwtIZJ6ZlUa8/MYUBr9er/z+hl7ApdpibChCb8lUAEQEAAYkB PAQYAQgAJhYhBOXxLHMEXx6FMC2p1SaefF64Umi7BQJbOlQ7AhsMBQkDwmcAAAoJ ECaefF64Umi7e3UIAO9ixyXaKmsfWVB11tYPHP+9Xo2s0RRanNMyqAcp1se3jQBZ Z7gfr7DBFBFPU0KeOibWXysMz54hXImxDgYQPKFznzKB5463DiZt8pYjxdphX4/j m6ccw1GnpImRJHpu3mMPSItd/QDqEl87KqSw+IojaLDid3QeL0uRzi2k5/Jwz6ru QMCwdKIMBDPw936YOsfHjQx1RTY9NC59cW1i0lU813By1J80hd24aIJH5vVyYI/I suz153mZUZ+dmN0F6wfnuqNzeCfJRoHKh45ABDD3cRQ2kE76UQ4Kr0xb0G512yUO WJFT8ff3EWn1FulR7bmprA4HHACyx/otL7P777E= =zi5u -----END PGP PUBLIC KEY BLOCK----- 

  7. हम परिणाम की प्रतिलिपि बनाते हैं और इसे गीथब, गिटलब या बिटबकेट इंटरफ़ेस में विश्वसनीय कुंजियों में जोड़ते हैं।

निष्कर्ष


आज, कोड डिलीवरी इन्फ्रास्ट्रक्चर बचपन की बीमारियों से ग्रस्त है: विखंडन, अच्छी तरह से स्थापित प्रथाओं की कमी, सॉफ्टवेयर जो वास्तविकताओं को पूरा नहीं करते हैं, और हजारों आंखों की जांच के तहत बड़ी परियोजनाओं के डेवलपर्स भी सुरक्षा की बात करते हैं और भी सरल गलतियां करते हैं। इतना भरोसा है, लेकिन% उपयोगकर्ता नाम% की जाँच करें!

Source: https://habr.com/ru/post/hi415989/


All Articles