डाउनलोड की गई फ़ाइलों की गणना क्यों करें?


19

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

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


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

1
टीसीपी चेकसम वास्तव में बहुत घटिया है: यह केवल 16 बिट्स है। यदि आप हजारों लोगों को बड़ी फ़ाइलों की सेवा दे रहे हैं (सोचें: स्थापना डीवीडी छवियां), यह लगभग निश्चित है कि उनमें से कुछ डाउनलोड निस्संदेह भ्रष्ट हो जाएंगे।
मार्क

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

जवाबों:


9

भ्रष्टाचार का पता लगाना पूरी तरह से सही नहीं है। सॉफ्टवेयर की अखंडता का पता लगाने के लिए एक अधिक सही उपयोग होगा। आम तौर पर एक सॉफ्टवेयर एक एकल सर्वर से वितरित नहीं किया जाता है। एक ही सॉफ्टवेयर कई सर्वरों से वितरित किया जा सकता है। इसलिए जब आप किसी विशेष सॉफ़्टवेयर को डाउनलोड करते हैं, तो डाउनलोड गति बढ़ाने के लिए आपके गंतव्य के निकटतम सर्वर को डाउनलोड स्रोत के रूप में चुना जाता है। हालाँकि, इन 'गैर-आधिकारिक' (थर्ड पार्टी) सर्वरों पर हमेशा भरोसा नहीं किया जा सकता है। वे कार्यक्रम में ट्रोजन / वायरस / एडवेयर / बैकडोर शामिल कर सकते हैं जो अच्छा नहीं है

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

प्रैक्टिकल यूनिक्स और इंटरनेट सिक्योरिटी से लिया गया उदाहरण

MD5 (नीले बॉक्स में $ 1500 है।) = 05f8cfc03f4e58cbee731aa4a14b3f03

MD5 (नीले बॉक्स में $ 1100 है।) = d6dee11aae89661a45eb9d21e30d34cb

संदेश, जो केवल एक एकल वर्ण (और, केवल एक द्विआधारी बिट द्वारा उस वर्ण के भीतर) से भिन्न होते हैं, के पास पूरी तरह से अलग संदेश खुदाई होती है।

यदि डाउनलोड की गई फ़ाइल में 'आधिकारिक' वेबसाइट पर दिए गए चेकसम के समान चेकसम है, तो सॉफ्टवेयर को संशोधित नहीं माना जा सकता है।

साइड नोट: सिद्धांत रूप में, दो अलग-अलग फ़ाइलों में समान हैश मान हो सकता है। हैश / चेकसम एल्गोरिथ्म को सुरक्षित माना जाने के लिए, एक अन्य फाइल को खोजने के लिए कम्प्यूटेशनल रूप से बहुत महंगा होना चाहिए जो समान चेकसम का उत्पादन करता है।


1
तो अगर फ़ाइल और चेकसम एक ही मेजबान द्वारा प्रदान की जाती है, तो यह कुछ हद तक बेकार है?
करोलिस जुओडेलो

शायद। चेकसम केवल अखंडता का पता लगाने का एक साधन है। एक विशेष परिदृश्य में कहें, अगर कोई हमलावर संगठन के FTP सर्वर तक पहुंच प्राप्त करता है, तो वह सॉफ़्टवेयर में बदलाव कर सकता है। लेकिन अखंडता का पता लगाने के लिए आप अभी भी उसी चेकसम का उपयोग कर सकते हैं IF और ONLY IF हमलावर को HTTP सर्वर में नहीं तोड़ा गया है। इसलिए यदि दोनों हमलावर के नियंत्रण में हैं, तो वह आसानी से दोनों को बदल सकता है और आपको अंतर पता नहीं चलेगा।
आश्विन PJ

1
एक अन्य स्थिति जहां चेकसम प्रासंगिक हो सकता है, उन स्थितियों का पता लगाना है जहां हिचकी के बाद एक फ़ाइल स्थानांतरण फिर से शुरू किया जाता है, लेकिन फ़ाइल को अंतरिम में बदल दिया गया है।
सुपरकैट

@ KarolisJuodelė डाउनलोड लिंक उसी वेबसाइट / होस्ट में हो सकता है। लेकिन जहां यह निराकरण करता है वह भिन्न हो सकता है जिसके आधार पर सर्वर निकटतम है। यह भी ध्यान दें कि, चेकसम पेज https होना चाहिए जबकि डाउनलोड किसी भी प्रोटोकॉल http या ftp हो सकता है
balki

10

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

हर बार नहीं।

आपके पास HTTPS पर दी गई चेकसम के साथ एक कंटेंट लिंक हो सकता है। लिंक एक गैर-लिंक किया गया लिंक हो सकता है - सादा HTTP या एफ़टीपी, या कुछ और।

नकारात्मक पक्ष पर, अनएन्क्रिप्टेड कनेक्शन आसानी से मध्य-मानव हो सकता है, उल्टा, यह वेबमास्टर के लिए तेज़ या अधिक सुविधाजनक हो सकता है (कम कंप्यूटिंग संसाधनों की आवश्यकता होती है और नेटवर्क को उस सामान को कैश करने के अवसर प्रदान करता है)।

यदि चेकबोन एक अटूट विश्वसनीय कनेक्शन पर परोसा जाता है और पेलोड चेकसम से मेल खाता है, तो आपको दोनों दुनिया के सर्वश्रेष्ठ मिलते हैं (बशर्ते चेकसम क्रिप्टोग्राफिक रूप से सुरक्षित हो)।


उस ने कहा, आपने मुझे याद दिलाया है कि वहाँ विकृतियां हैं जो "सुरक्षित" होने का दावा करती हैं और फिर भी उनकी वेबसाइट केवल HTTP पर है, जैसा कि उनकी छवियों के लिंक हैं।

उदाहरण:

यह मज़ेदार है क्योंकि आप संभवतः अधिक असुरक्षित नहीं हो सकते। यहां तक ​​कि अगर वे खुद दुर्भावनापूर्ण नहीं हैं, तो कोई भी आईएसपी आसानी से वेबसाइट और छवि दोनों को बदल सकता है, और किसी को एक कठोर ऑपरेटिंग सिस्टम स्थापित करने के लिए प्राप्त कर सकता है, जबकि ऐसा लगता है कि वे "सुरक्षित" लिनक्स डिस्ट्रो हो रहे हैं pwnage।


1
अनौपचारिक HTTP की तुलना में बहुत सारी चीज़ें कम सुरक्षित हैं, जिसके लिए एक सक्रिय MITM को अवॉयड करने की आवश्यकता होती है।
user253751

4

जहां तक ​​क्यों टीसीपी / आईपी त्रुटि की जाँच सब कुछ नहीं पकड़ती: /programming//a/17083365/525539 से

अलग-अलग त्रुटियां हो सकती हैं (जो टीसीपी का पता लगाएगी) [जैकब क्राल द्वारा इंगित] :

  • पैकेट का गलत क्रम
  • पैकेट का नुकसान
  • पैकेट के अंदर दूषित डेटा
  • फ़ैंटम पैकेट (रिसीवर को ऐसे पैकेट मिलते हैं जिन्हें कभी नहीं भेजा गया)

कुछ अतिरिक्त जानकारी के साथ संपादित करें:

इस अध्ययन के पृष्ठ ९: http://paperhub.s3.amazonaws.com/8ff1e4414c070e900da8ab3885593085.pdf यह बताता है कि ऐसी त्रुटियां हैं जो टीसीपी द्वारा अनिर्धारित की जा सकती हैं। मेरी समझ यह है कि यह तब होता है जब एक गलत डेटाग्राम (अध्ययन में एक "बुरा जुड़वां" कहा जाता है) का उद्देश्य चेकआउट के समान चेकसम होता है (जिसे अध्ययन में "अच्छा जुड़वां" कहा जाता है)।


2
उस उत्तर को अधिक ध्यान से पढ़ें - वे सभी त्रुटियां हैं जो टीसीपी द्वारा ठीक की गई हैं।
याकूब क्राल

4

ट्रांसमिशन त्रुटियां हो सकती हैं। लिंक-लेयर प्रोटोकॉल में आम तौर पर उनसे बचने के लिए चेकसम या त्रुटि-सुधार कोड होते हैं, लेकिन वे सही नहीं हैं: एक छोटा मौका है कि एक त्रुटि ठीक नहीं होगी। टीसीपी पैकेट में एक चेकसम भी होता है, जो त्रुटियों की संभावना को 2 ^ 16 तक कम कर देता है। यह ट्रांसमिशन त्रुटि की एक बहुत छोटी, लेकिन गैर-अक्षीय संभावना बनाता है। यह इस तरह की बात है कि अधिकांश लोग अपने जीवनकाल में कभी भी अनजाने में मुठभेड़ नहीं करेंगे, लेकिन यह क्रिप्टोग्राफिक चेकसमों की कभी-कभी एक-अरब साल की संभावना नहीं है।

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

चेकसमों की गणना करने का वास्तविक कारण वास्तव में सॉफ्टवेयर-स्तर की त्रुटियों का पता लगाना है। ये होते हैं। संभावित त्रुटियों में शामिल हैं:

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

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


2

सिद्धांत रूप में, नेटवर्क हर एक खंड को ठीक से वितरित करेगा और उन्हें डिस्क पर ठीक से इकट्ठा किया जाएगा और कुछ भी गलत नहीं होगा।

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

डेटा की अखंडता को मान्य करने के लिए एक उच्च-गुणवत्ता वाला चेकसम एक विश्वसनीय तरीका है।


0

कोई भी चेकसम 100% विश्वसनीय नहीं हो सकता है क्योंकि कई फाइलें एक ही चेकसम में मैप होती हैं।

जब हम ट्रेन में एक और चेकसम जोड़ते हैं तो हम एक त्रुटि का पता लगाने की संभावना को गुणा करते हैं।

इंटरनेट पर इतना ट्रैफ़िक है कि त्रुटियाँ वास्तव में काफी सामान्य हैं।


वहाँ भी सड़ांध है।
हिरण हंटर

जिसे स्टोरेज हार्डवेयर द्वारा ही पता लगाया जाना चाहिए, लेकिन चेक को ZFS और btrfs की प्रमुख विशेषता होने के नाते, मुझे संदेह है कि यह पूरी तरह से काम कर रहा है।
मैक्स राइड

0

निम्न स्थिति के कारण भ्रष्ट डाउनलोड को रोकने में चेकसम भी मदद करेगा:

डाउनलोड की सेवा के दौरान सर्वर में एक आंतरिक त्रुटि होती है इसलिए डाउनलोड को समाप्त कर दिया जाता है।

जब ऐसा होता है, तो कुछ संभावित परिणाम सामने आते हैं:

  • अच्छा सर्वर - के सर्वर के कार्यान्वयन chunked स्थानांतरण एन्कोडिंग है नहीं गाड़ी:
    • अच्छा ग्राहक (जैसे cURL, wget) आपको सूचित कर सकेगा कि यह एक बुरा डाउनलोड है क्योंकि सर्वर से टर्मिनेटिंग चंक को कभी नहीं भेजा गया है।
    • खराब क्लाइंट को लगता है कि डाउनलोड पूरा हो गया है क्योंकि सर्वर से अधिक डेटा प्राप्त नहीं हो रहा है।
  • ख़राब सर्वर - चंकड ट्रांसफ़र एन्कोडिंग का सर्वर का कार्यान्वयन छोटी गाड़ी है जो इस ख़राब डाउनलोड के लिए समाप्ति चंक भेजती है:
    • किसी भी ग्राहक को लगेगा कि यह डाउनलोड सफलतापूर्वक पूरा हो गया है।

मैंने इन व्यवहारों को लोकप्रिय क्लाइंट टूल्स और सर्वर फ्रेमवर्क के बीच देखा है, इसलिए जब आप चेकसम का उपयोग नहीं करते हैं, तो "अच्छा सर्वर + खराब क्लाइंट" या "खराब सर्वर + किसी भी क्लाइंट" के मामले में, आप दूषित डाउनलोड पर किसी का ध्यान नहीं जाएगा। ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.