En raison des nouvelles exigences du secteur relatives au stockage des clés privées, les clés privées des certificats de signature de code doivent être stockées sur un module de sécurité matériel (HSM) conforme. L’une des options disponibles est le jeton matériel SafeNet fourni par DigiCert. Ce jeton matériel conforme, associé aux pilotes SafeNet, permet de signer du code sur l’ordinateur local, mais modifie la procédure nécessaire pour signer les macros Visual Basic for Applications (VBA). Lorsque la clé privée est stockée directement dans le magasin de clés de l’ordinateur, la signature VBA peut être effectuée. Toutefois, lorsqu’elle est stockée sur le jeton matériel SafeNet, les tentatives de signature génèrent une erreur tant que quelques étapes supplémentaires n’ont pas été effectuées.
"Un problème est survenu avec le certificat numérique. Le projet VBA n’a pas pu être signé. La signature sera annulée."
Cause:
La signature des macros VBA utilise l’algorithme de hachage MD5 de Microsoft, qui est obsolète et n’est plus considéré comme fiable. Comme de nombreux autres fournisseurs, SafeNet a désactivé cet algorithme par défaut en raison de problèmes de performances et de sa vulnérabilité aux attaques par collision et par recherche de préimage. Le certificat ne peut pas être exporté depuis le jeton matériel.
Solution:
La solution consiste à autoriser les anciens algorithmes de hachage, tels que SHA1 et MD5, dans le pilote SafeNet. Cette modification peut être effectuée dans le registre Windows:
Après avoir défini cette valeur, la signature des macros VBA fonctionne comme prévu:
Ouvrez l’éditeur VBA -> Tools -> Digital Signature -> Sélectionnez le certificat DigiCert -> Ok -> Fermez l’éditeur VBA et enregistrez
Si vous ne pouvez pas modifier le registre du pilote SafeNet ou si vous ne savez pas comment procéder, vous pouvez également télécharger les anciens pilotes SafeNet ici.
Les anciens pilotes n’ont pas désactivé les algorithmes de hachage plus anciens et peuvent permettre leur utilisation pour la signature sans avoir à modifier le registre du pilote.