Les services de timestamping alternatifs pour Authenticode

nous réalisons la signature de code et le timestamping pour toutes nos constructions de production. De temps en temps (généralement lorsque nous sommes sur le point de RTM (!)) le serveur timestamp de Verisign (" http://timestamp.verisign.com/scripts/timstamp.dll ") décide de se déconnecter par intermittence.

Que faire dans ce cas?

  • le serveur d'horodatage doivent être hébergé par votre autorité de certification racine?
  • Y a-t-il d'autres serveurs d'horodatage réseau que nous pourrions utiliser au lieu de Verisign si leur serveur est en panne? Des Suggestions pour d'autres, hautement disponible et libre alternatives sont les bienvenus :)
96
demandé sur Peter Mortensen 2010-05-20 12:30:43

6 réponses

j'utilise le fichier batch suivant qui boucle un maximum de 300 fois. Il y a deux arguments, %1 est le chemin vers un dossier contenant le fichier batch, le fichier pfx et signtool.EXE. %2 est le chemin complet vers le fichier signé. Vous pouvez l'appeler dans votre événement visual studio post build avec quelque chose comme "$(SolutionDir)thirdparty\signing\sign.chauve-souris" "$(SolutionDir)tiers\signature" "$(TargetPath)" J'ai modifié ce fichier batch pour utiliser des serveurs timestamp différents à chaque itération. Actuellement, il utilise Comodo, Verisign, GlobalSign et Starfield. Si tout va bien ceci est le Script de signature ultime ;)

@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

j'ai aussi mis http://timestamp.comodoca.com sur les sites de confiance (merci Vince). Je pense que cela peut être une étape importante. J'ai mis à jour les certificats racine sur le PC aussi.

76
répondu flobadob 2016-02-26 08:46:36

Je ne suis pas sûr que le serveur timestamp doive être la propriété de l'AC racine ou non.

nous utilisons http://timestamp.comodoca.com/authenticode (et ont un certificat Comodo authenticode) mais ont en fait un problème similaire, en ce que leur serveur semble donner une erreur ou un temps d'arrêt de temps en temps. Nous signons dans le cadre d'une construction nocturne (ou à la demande) sur notre serveur d'intégration continue pour les constructions de publication uniquement (pas pour les constructions de débogage).

j'ai eu autour de ce (pour la plupart) de deux façons:

  • si l'appel à signtool.exe échoue, il tente à nouveau (immédiatement) deux fois plus
  • le script de construction utilisé pour signer chaque exe dans une étape (et nous avons plusieurs comme partie de notre produit), et maintenant il fait un par un-prend un peu plus de temps, mais est moins susceptible d'échouer

entre ceux-ci, les échecs de construction causés par des problèmes de serveur de timestamp ont disparu d'une fois ou deux fois par semaine chose à pratiquement jamais.

modifier: j'ai une tâche MSBuild qui fait ceci (ainsi que lit un mot de passe de certificat stocké à l'extérieur du dépôt ) à https://gist.github.com/gregmac/4cfacea5aaf702365724

13
répondu gregmac 2017-05-23 12:10:07

cela fonctionne bien en remplaçant l'url de l'horodatage verisign par l'une de celles-ci:

http://timestamp.comodoca.com/authenticode

http://www.trustcenter.de/codesigning/timestamp

11
répondu David 2012-04-02 12:21:39

n'importe quel serveur timestamp peut être utilisé: je suis récemment passé du serveur timestamp de mon émetteur à Verisign car j'ai constaté que le serveur de GlobalSign n'était pas fiable. De plus, Thawte ne fait pas tourner son propre serveur timestamp mais recommande aux utilisateurs de Verisign.

6
répondu BCran 2010-08-04 21:31:42

le service d'horodatage VeriSign est gratuit. C'est peut-être la raison pour laquelle sa fiabilité est moins qu'adéquate; on ne lui donne pas un budget d'entretien!

certainement c'est un grand problème. La perte de temps due à l'échec des compilations à partir des échecs de code timestamping est un problème croissant dans l'ensemble de l'industrie du développement de logiciels. Bien sûr, vous pouvez écrire un script complexe pour tourner à travers, jusqu'à ce que vous trouviez un serveur de pointage de temps de travail.. mais, vraiment?

Nous devrions exiger mieux. Nous payons beaucoup pour ces certificats.

notez que j'ai trouvé plus tard d'autres serveurs horodateurs que peu ont entendu parler étaient bien à utiliser dans les périodes où Verisign et Comodo est en baisse (se produit généralement pendant les heures de travail les jours de travail).

6
répondu dyasta 2017-05-13 16:29:42

j'ai eu le même problème. verisign server n'était pas accessible parfois pour certains fichiers que j'ai essayé de signer (mais d'autres fichiers de la même compilation étaient correctement signés).

d'habitude je réessaie et ça marche mais aujourd'hui, pas question.

donc après quelques recherches inutiles sur internet j'ai essayé de mettre http://*.verisign.com dans les sites de zones de confiance et ça marche... Enfin je ne sais pas si le serveur avait un problème et fonctionne maintenant ou si j'ai fait la bonne chose, verra en prochains jours, je pense. Espérons qu'il peut aider d'autres qui sont bloqués.

La configuration du serveur: Windows server 2003 sp2, IE8, une sécurité améliorée.

3
répondu Vince 2012-03-22 09:51:51