ऑथेंटिकोड के लिए वैकल्पिक टाइमस्टैम्पिंग सेवाएं


115

हम अपने सभी प्रोडक्शन बिल्ड के लिए कोड साइनिंग और टाइमस्टैम्पिंग करते हैं। कभी-कभी (आमतौर पर जब हम RTM (!) के बारे में होते हैं) Verisign पर टाइमस्टैम्प सर्वर (" http://timestamp.verisign.com/scripts/timstamp.dll ") ऑफ़लाइन रुक-रुक कर जाने का फैसला करता है।

इस मामले में हमें क्या करना चाहिए?

  • क्या टाइमस्टैम्प सर्वर को आपके रूट प्रमाणीकरण प्राधिकरण द्वारा होस्ट किया जाना है?
  • क्या कोई अन्य नेटवर्क-होस्टेड टाइमस्टैम्प सर्वर हैं जिनका उपयोग हम अपने सर्वर के डाउन होने पर Verisign के बजाय कर सकते हैं? अन्य अत्यधिक उपलब्ध और मुफ्त विकल्पों के सुझाव का स्वागत है :)

जवाबों:


91

मैं निम्नलिखित बैच फ़ाइल का उपयोग करता हूं जो अधिकतम 300 बार लूप करता है। दो तर्क हैं,% 1 बैच फ़ाइल, pfx फ़ाइल और signtool.exe वाले फ़ोल्डर का पथ है। % 2 हस्ताक्षरित होने वाली फ़ाइल का पूर्ण पथ है। आप इसे अपने दृश्य स्टूडियो पोस्ट बिल्ड ईवेंट में कॉल "$ (सॉल्यूशनर) थर्डपार्टी \ साइनिंग \ साइन.बात" "$ (सॉल्यूडिर) थर्डपार्टी" साइनिंग "" $ (टारगेटपैथ) "" जैसे कुछ बैच फ़ाइल के साथ संशोधित कर सकते हैं। प्रत्येक पुनरावृत्ति में विभिन्न टाइमस्टैम्प सर्वर का उपयोग करें। वर्तमान में यह Comodo, Verisign, GlobalSign और Starfield का उपयोग करता है। उम्मीद है कि यह अंतिम हस्ताक्षर स्क्रिप्ट है;)

@echo off    

REM create an array of timestamp servers...
set SERVERLIST=(http://timestamp.comodoca.com/authenticode http://timestamp.verisign.com/scripts/timestamp.dll http://timestamp.globalsign.com/scripts/timestamp.dll http://tsa.starfieldtech.com)

REM sign the file...
%1\signtool.exe sign /f %1\comodo.pfx /p videodigital %2

set timestampErrors=0

for /L %%a in (1,1,300) do (

    for %%s in %SERVERLIST% do (

        REM try to timestamp the file. This operation is unreliable and may need to be repeated...
        %1\signtool.exe timestamp /t %%s %2

        REM check the return value of the timestamping operation and retry a max of ten times...
        if ERRORLEVEL 0 if not ERRORLEVEL 1 GOTO succeeded

        echo Signing failed. Probably cannot find the timestamp server at %%s
        set /a timestampErrors+=1
    )

    REM wait 2 seconds...
    choice /N /T:2 /D:Y >NUL
)

REM return an error code...
echo sign.bat exit code is 1. There were %timestampErrors% timestamping errors.
exit /b 1

:succeeded
REM return a successful code...
echo sign.bat exit code is 0. There were %timestampErrors% timestamping errors.
exit /b 0

मैंने भी http://timestamp.comodoca.com को विश्वसनीय साइटों (धन्यवाद विंस) में डाल दिया । मुझे लगता है कि यह एक महत्वपूर्ण कदम हो सकता है। मैंने पीसी पर रूट सर्टिफिकेट भी अपडेट किया।


3
मैं बस यहाँ में छिल रहा हूँ। मुझे पता है कि यह एक पुराना उत्तर है। लेकिन यह स्क्रिप्ट "लगभग" एकदम सही है और इसलिए मैं अपने बदलाव में सिर्फ चिप लगाना चाहूंगा। जब स्क्रिप्ट को पोस्ट-बिल्ड इवेंट के रूप में चलाया जाता है। यदि टाइमस्टैम्प विफल हो जाता है, लेकिन एक निम्न टाइमस्टैम्प सक्सेसफुल है, तो बिल्ड अभी भी विफल रहता है क्योंकि MSBuild साइनटॉल। Ex की घटनाओं पर घूमता है और विफलता को देखता है, इस प्रकार सोचता है कि यह विफलता है। मैं VS2012 के भीतर और एक निर्माण मशीन से हुआ है। मेरा फिक्स टाइमस्टैम्प को एक और cmd में बदलना है ताकि MSBuild खिचड़ी भाषा के रूप में इस तरह से शुरू हो: "साइन टूल" / प्रतीक्षा करें "साइन इन करें" / D "% 1" "signtool.exe" टाइमस्टैम्प / टी %% s% 2
स्किनटैकलिंग

1
मुझे समझ नहीं आता "और अधिकतम दस बार ..." भाग। %%aचर इस्तेमाल कभी नहीं किया है। लूप के लिए टाइपो है या टिप्पणी में है?
l33t

1
फ्लैगबॉब के उत्कृष्ट जवाब के लिए अतिरिक्त नोट। यदि आप दृश्य स्टूडियो में पोस्ट-बिल्ड चरण में इसका उपयोग करने जा रहे हैं, तो आपको "कॉल" कथन का उपयोग करने की आवश्यकता होगी। इस पोस्ट को देखें: Visual Studio Multiple Post Build Commands
GadgetNC

1
Sha256 के लिए आपको / tr " sha256timestamp.ws.symantec.com/sha256/timestamp " का उपयोग करने की आवश्यकता है जो अब काफी तेज है
विंस

1
हर किसी के लिए सोच। हाँ उस मान के बाद /p* .pfx पासवर्ड है।
जेन्सजी

16

मुझे यकीन नहीं है कि टाइमस्टैम्प सर्वर को रूट CA के स्वामित्व में होना चाहिए या नहीं।

हम http://timestamp.comodoca.com/authenticode का उपयोग करते हैं (और एक कोमोडो प्रामाणिक प्रमाण पत्र है), लेकिन वास्तव में एक समान मुद्दा है, जिसमें उनका सर्वर कभी-कभी एक त्रुटि या समय देने लगता है। हम एक निरंतर (या ऑन-डिमांड) निर्माण के हिस्से के रूप में रिलीज के लिए हमारे निरंतर एकीकरण सर्वर पर निर्माण केवल डिबग बिल्ड के लिए करते हैं (डिबग बिल्ड के लिए नहीं)।

मुझे यह (अधिकतर) दो तरीकों से मिला है:

  • अगर signtool.exe पर कॉल विफल हो जाती है, तो यह दो बार और (तुरंत) फिर से कोशिश करता है
  • बिल्ड स्क्रिप्ट का उपयोग प्रत्येक exe को एक चरण में हस्ताक्षर करने के लिए किया जाता है (और हमारे पास हमारे उत्पाद के हिस्से के रूप में कई हैं), और अब यह एक-एक-एक करता है - थोड़ा अधिक समय लेता है, लेकिन असफल होने की संभावना कम होती है

इन सबके बीच, टाइमस्टैम्प सर्वर की समस्याओं के कारण होने वाली असफलताएँ सप्ताह में एक या दो बार वस्तुतः कभी नहीं जाती हैं।

EDIT: मेरे पास एक MSBuild कार्य है जो ऐसा करता है (साथ ही साथ) एक प्रमाणपत्र पासवर्ड भंडार के बाहर संग्रहीत है ) https://gist.github.com/gregmac/4cfacea5aaf702365724 पर


12

यह इनमें से किसी एक के द्वारा सत्यापन टाइमस्टैम्प url को बदलकर अच्छी तरह से काम करता है:

http://timestamp.comodoca.com/authenticode
http://www.trustcenter.de/codesigning/aimentamp


2
ऐसा लगता है कि टाइमस्टैम्पिंग अब Trustcenter.de से उपलब्ध नहीं है: "सिमेंटेक सभी उत्पाद और सेवाएँ जो टीसी ट्रस्टकेंटर जीएमबीएच द्वारा उपलब्ध कराई गई हैं, अब उपलब्ध नहीं हैं। इससे संबंधित कोई भी प्रश्न इस पर निर्देशित किया जाना चाहिए: सिमेंटेक टीसी ट्रस्टकेंटर 24/7 वेबसाइट सपोर्ट फ़ोन: +1 -800-579-2848 या + 1-520-477-3104 "
वल्दिमार

8

VeriSign टाइमस्टैम्पिंग सेवा नि: शुल्क है। शायद यही कारण है कि यह विश्वसनीयता पर्याप्त से कम है; वे इसे रखरखाव बजट नहीं देते हैं!

निश्चित रूप से यह एक बड़ी बात है समस्या है। कोड टाइमस्टैम्पिंग विफलताओं से विफल बिल्ड के कारण व्यर्थ समय सॉफ्टवेयर विकास उद्योग में एक बढ़ता हुआ मुद्दा है। ज़रूर, आप एक जटिल स्क्रिप्ट को तब तक घुमा सकते हैं, जब तक कि आप सर्वर पर काम करने का समय न पा लें .. लेकिन, वास्तव में?

हमें बेहतर मांग करनी चाहिए। हम इन प्रमाणपत्रों के लिए एक बहुत भुगतान करते हैं।

ध्यान दें कि मुझे बाद में वैकल्पिक टाइम-स्टैम्प सर्वर मिले थे, जिनके बारे में कुछ लोगों ने सुना है कि पीरियड्स और कोमोडो जहां पीरियड्स में उपयोग करने के लिए ठीक हैं (आमतौर पर कार्यदिवस में काम के घंटों के दौरान होता है)।


7

किसी भी टाइमस्टैम्प सर्वर का उपयोग किया जा सकता है: मैंने हाल ही में अपने जारीकर्ता के टाइमस्टैम्प सर्वर से Verisign पर स्विच किया क्योंकि मैंने पाया कि GlobalSign का सर्वर अविश्वसनीय था। इसके अलावा, थावटे अपना टाइमस्टैम्प सर्वर नहीं चलाते हैं, लेकिन लोगों को वेरिसाइन का उपयोग करने की सलाह देते हैं


1
खैर, थावे वेरिसाइन है, इसलिए।
स्टेक्सएक्सचेंज यूजर जूल

4

आप आमतौर पर किसी भी समय मुद्रांकन सेवा का उपयोग कर सकते हैं जो आप चाहते हैं। हालांकि अधिकांश सीए एक समय मुद्रांकन सेवा प्रदान करेंगे। उदाहरण

http://timestamp.globalsign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
http://www.startssl.com/timestamp
http://timestamp.digicert.com?alg=sha1
http://timestamp.digicert.com?alg=sha256

timestamp.verisign.com आधिकारिक तौर पर 2019 के बैकएंड पर ईओएल था अधिक जानकारी के लिए वह नीचे दिए गए प्रश्न पर मेरा एवर है।

http-टाइमस्टैम्प-VeriSign-कॉम-स्क्रिप्ट-timstamp-dll-नहीं-उपलब्ध


पाचक alg विनिर्देशन की तलाश में है! यह कहां प्रलेखित है?
यानो

1
knowledge.digicert.com/alerts/… आशा है कि यह मदद करता है
रिकव

3

मुझे भी यही समस्या थी। कुछ फ़ाइलों के लिए जिस पर मैंने हस्ताक्षर करने की कोशिश की थी (लेकिन उसी बिल्ड में अन्य फाइलें सही रूप से हस्ताक्षरित थीं) के लिए कुछ समय पहले सर्वर उपलब्ध नहीं था।

मैं आमतौर पर पुन: प्रयास करता हूं और यह काम करता है लेकिन आज, कोई रास्ता नहीं है।

इसलिए इंटरनेट पर कुछ अप्रयुक्त शोध के बाद मैंने विश्वसनीय ज़ोन साइटों में http: //*.verisign.com डालने की कोशिश की और यह काम करता है ... अंत में मुझे नहीं पता कि सर्वर में समस्या थी और अब काम करता है या यदि मैंने किया सही बात है, मुझे लगता है कि अगले दिनों में देखेंगे। आशा है कि यह अन्य मदद कर सकता है जो अवरुद्ध हैं।

सर्वर कॉन्फ़िगरेशन: विंडोज सर्वर 2003 sp2, IE8, पर बढ़ी हुई सुरक्षा।


शायद संयोग की बात है कि मुझे लगता है कि साइट बस अभिभूत हो जाता है और नीचे चला जाता है। आप इसे अक्सर व्यावसायिक घंटों के दौरान देख सकते हैं।
dyasta

1

आप Jsign का उपयोग कर सकते हैं अपने बिल्ड पर हस्ताक्षर करने और टाइमस्टैम्प करने के बजाय , यह वैकल्पिक टाइमस्टैम्पिंग सेवाओं पर विफल होने का समर्थन करता है।

कमांड लाइन सिंटैक्स इस तरह दिखता है:

jsign --keystore keystore.p12 --alias test --storepass password \
      --tsaurl http://timestamp.comodoca.com/authenticode,http://timestamp.globalsign.com/scripts/timestamp.dll \
      application.exe

आप प्रयासों की संख्या (के साथ --tsretries) और प्रयासों के बीच की देरी (साथ ) को भी कॉन्फ़िगर कर सकते हैं --tsretrywait


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