ssign English version

Questions et réponses

Les questions fréquentes sur ssign et la signature de code avec Certum SimplySign. Il en manque une ? Posez-la sur Discord.

Peut-on utiliser un certificat Certum SimplySign sous Linux sans SimplySign Desktop ?

Oui. ssign parle lui-même au cloud SimplySign en HTTPS : il se connecte, récupère votre certificat et demande la signature au cloud, sans SimplySign Desktop, sans interface graphique, sans conteneur et sans pile PKCS#11. Il fonctionne sous Linux, macOS et Windows. Voir la prise en main.

Faut-il Windows pour signer un .exe Windows ?

Non. La signature Authenticode, ce ne sont que des données : ssign hache le fichier, obtient la signature RSA du cloud et construit lui-même la signature PKCS#7, sans aucune API Windows. La version Windows de ssign est d'ailleurs signée ainsi, depuis une machine Linux.

Peut-on signer dans GitHub Actions ou une autre CI ?

Oui. Donnez à ssign CERTUM_EMAIL et la graine TOTP dans CERTUM_OTP : il calcule le code à usage unique à chaque exécution. Gardez la graine dans un environnement protégé qui demande votre accord : voir GitHub Actions.

Quels types de fichiers peut-il signer ?

La commande ssign signe les fichiers PE : .exe, .dll, .sys, .ocx, .cpl. Pour les MSI, CAB, catalogues, APPX et scripts PowerShell, utilisez le module PKCS#11 avec osslsigncode. La signature MSI native dans la commande elle-même est encore en cours.

Qu'est-ce que la graine TOTP, et faut-il la stocker ?

C'est le secret en base32 derrière l'appli d'authentification que vous avez configurée avec le QR code SimplySign. Elle est à longue durée : avec elle et votre e-mail, n'importe qui peut signer en votre nom jusqu'à ce que vous régénériez le QR code. Elle ne sert qu'à l'automatisation (--otp). Sur votre propre machine, passez plutôt le code du moment avec --token : la graine ne quitte alors jamais votre appli. Voir Sécurité.

La connexion échoue avec « no authorization code after login — wrong e-mail or OTP? »

Certum n'a pas accepté l'e-mail et le code. Vérifiez l'e-mail, et que le code est bien en cours de validité : un code vaut environ 30 secondes et Certum ne l'accepte qu'une fois. Avec --otp, ssign calcule le code à partir de l'horloge du système : elle doit donc être à l'heure.

Je signe plusieurs fichiers, ou je lance ssign plusieurs fois. Faut-il un nouveau code à chaque fois ?

Non. Une seule connexion signe tous les fichiers passés sur la ligne de commande. La session est aussi gardée en cache 20 minutes : les exécutions suivantes, et le module PKCS#11, la réutilisent sans nouveau code. Voir le cache de session.

ssign affiche « file already has a signature ».

ssign ne remplace pas une signature Authenticode existante : il s'arrête sur un fichier PE déjà signé. Signez le fichier tel qu'il sort de la compilation.

ssign vérifie-t-il les signatures ?

Non. Vérifiez le résultat avec osslsigncode verify, ou avec signtool sous Windows. La chaîne de publication de ssign contrôle elle-même chaque fichier signé avec osslsigncode verify.

Fonctionne-t-il avec d'autres autorités de certification ou un jeton matériel ?

Non. ssign signe uniquement avec un certificat cloud Certum SimplySign.

ssign fonctionne-t-il dans une image Docker minimale ?

Il n'a besoin d'aucun logiciel SimplySign, mais il vérifie les certificats HTTPS via le magasin de certificats du système. L'image doit donc contenir les certificats des autorités : un conteneur scratch nu n'en a aucun.

SimplySign Desktop tourne en boucle sur la page de connexion.

C'est un problème de SimplySign Desktop, relevé pendant l'étude du protocole : la version 2.9.10 reçoit une erreur HTTP 415 en boucle quand elle liste les cartes, la carte n'est donc jamais insérée et la page de connexion tourne en boucle ; la version 2.9.14 parle l'API actuelle. ssign n'utilise pas du tout SimplySign Desktop. Détails dans les notes sur le protocole (en anglais).

ssign est-il un outil officiel de Certum ?

Non. C'est un client libre et indépendant pour le cloud SimplySign, sans lien avec Certum / Asseco ni approuvé par eux.

Où poser une question ou signaler un bug ?

Sur Discord ou dans les tickets GitHub.