पुनरुत्पादनयोग्यता आपूर्ति शृंखलाको गुण हो: एउटै घोषित इनपुटले एउटै आर्टिफ्याक्ट उत्पादन गर्नुपर्छ। VPN क्लाइन्टका लागि त्यो भनाइले तपाईंले डाउनलोड गरेको इन्स्टलरलाई जो कोहीले पुनः बनाउन सक्ने स्रोत र उपकरण शृंखलासँग बाँध्छ। क्लाइन्ट जुन सेवामा जोडिन्छ त्यसबारे यसले केही भन्दैन।

त्यसैले उपयोगी प्रश्न साँघुरो र उत्तरयोग्य छ। परियोजनाले कुनै प्रक्रिया प्रकाशित गर्छ कि, र तपाईंको विशिष्ट आर्टिफ्याक्ट त्यससँग मेल खान्छ कि?

बिल्ड कहाँ निर्धारक रहन छाड्छ

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

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

घोषित इनपुटहरू पनि पूर्ण हुनुपर्छ। ट्यागबिना रिपोजिटरी URL संशोधन होइन, hashबिना लकफाइल निर्भरता-समूह होइन, र रनटाइममा उपकरण डाउनलोड गर्ने बिल्ड स्क्रिप्टमा कोही पनि स्थिर गर्न नसक्ने इनपुट हुन्छ। हरेक खाली ठाउँ पछि फरकमा परिणत हुन्छ। केही तुलना गर्नुअघि सूची पूरा गर्नुहोस्, किनकि अपूर्ण सूची अर्थपूर्ण रूपमा असफल हुन सक्दैन।

InputHow it driftsWhat pins it
SourceBranch moves after releaseCommit hash in the build metadata
ToolchainCompiler patch level differsContainer image digest
PackagingArchive order and mtimes varyNormalised archive settings

तुलनाले वास्तवमा के जाँच्छ

स्वतन्त्र पक्षले घोषित वातावरणमा पुनः निर्माण गर्छ र आउटपुटलाई प्रकाशित आर्टिफ्याक्टसँग तुलना गर्छ। बिट-समानता बलियो रूप हो; रेकर्ड गरिएको फरक उल्टाइने र नतिजा त्यसपछि मिल्ने अभिलेखित सामान्यीकरण चरण कमजोर तर अझै उपयोगी रूप हो।

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

sha256sum wireguard-installer.msi
gpg --verify wireguard-installer.msi.sig wireguard-installer.msi

इन्स्टल गर्नुअघि दुवै चलाउनुहोस्, र एउटै रिलिज र प्लेटफर्मका लागि प्रकाशित hashसँग hash तुलना गर्नुहोस्। विक्रेताको पृष्ठसँग मिल्ने hash ले डाउनलोड अक्षुण्ण आएको प्रमाणित गर्छ; विक्रेताले प्रकाशित गरेको hashसँग मिल्ने पुनर्निर्मित बाइनरीले यो कसरी बनियो भन्नेबारे बलियो कुरा प्रमाणित गर्छ।

असंगति किन छेडछाडको प्रमाण होइन

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

त्यसैले असंगतिलाई कथा बन्नुअघि अभिलेखित प्रक्रियाको विरुद्ध पढ्नुपर्छ। यदि प्रक्रियाले सबै स्थिर गर्छ र फरक अस्पष्ट रहन्छ भने त्यो परियोजनासमक्ष राख्न योग्य वास्तविक भेट हो। यदि प्रक्रिया प्याकेजिङबारे मौन छ भने फरक पूर्ण रूपमा अपेक्षित हुन सक्छ।

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

दाबीले एपपछाडिको सेवाबारे के भन्छ

क्लाइन्ट तपाईंको यन्त्रको प्रोग्राम हो; सेवा भने अन्यत्रका सर्भर, खाता प्रणाली र अवधारण नीति हुन्। पुनरुत्पादनयोग्यताले पहिलोलाई सीमित गर्छ र दोस्रोबारे केही भन्दैन, इन्स्टलर जतिसुकै होसियारीसाथ प्रमाणित गरिए पनि।

इन्डपोइन्ट कन्फिगरेसन इन्स्टलपछि पनि बदलिन सक्छ, टाढाका सेटिङ वा प्रदायकले नियन्त्रण गर्ने प्रोफाइलमार्फत। ती परिवर्तन नेटवर्कबाट आउँछन् र जोडिनुअघि तपाईंले गणना गरेको कुनै पनि hashले तिनलाई समेट्दैन।

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

सम्बन्धित लेखहरू