ssign English version

Signer un exécutable Windows sous Linux avec Certum SimplySign

Les mêmes commandes fonctionnent sous Linux, macOS et Windows. Il vous faut l'e-mail de votre compte Certum et votre appli d'authentification. Téléchargez ssign d'abord si ce n'est pas fait.

1. Choisir le mode de connexion

La connexion au cloud SimplySign se fait avec votre e-mail et un code à usage unique à 6 chiffres, pas avec un mot de passe. Donnez à ssign exactement l'un des deux :

ModeOptionQuand
Manuel-T, --token <CODE>Sur votre machine : lisez le code du moment dans votre appli d'authentification et passez-le.
Automatique-O, --otp <SEED>CI et scripts : fournissez une fois votre graine TOTP (seed), et ssign calcule le code à 6 chiffres à chaque exécution.
La graine est un secret à longue durée. Avec votre graine et votre e-mail, n'importe qui peut signer du code en votre nom jusqu'à ce que vous régénériez le QR code SimplySign. Ne la passez jamais en argument de ligne de commande : utilisez la variable d'environnement CERTUM_OTP, et préférez --token quand vous signez à la main. Lire les notes de sécurité.

2. Signer

# Manuel, en local — collez le code courant de votre appli :
ssign -e vous@example.com -T 123456 app.exe

# Automatisation — la graine une fois, puis sans intervention :
export CERTUM_EMAIL=vous@example.com
export CERTUM_OTP=VOTRE_GRAINE_TOTP_BASE32       # ou l'URI otpauth:// complète
ssign app.exe installeur.dll pilote.sys

Les fichiers sont signés sur place par défaut. --backup garde l'original sous le nom <fichier>.orig ; -o <DIR> écrit plutôt les fichiers signés dans un autre dossier. ssign affiche signed <fichier> pour chaque fichier ; ajoutez -v pour voir chaque étape.

3. Vérifier le résultat

ssign ne vérifie pas les signatures. Utilisez osslsigncode verify app.exe, ou signtool sous Windows.

Toutes les options

OptionVariable d'environnementEffet
FILESLes fichiers à signer. Signés sur place, sauf avec -o.
-e, --email <EMAIL>CERTUM_EMAILE-mail du compte Certum. Obligatoire.
-O, --otp <SEED>CERTUM_OTPGraine TOTP (en base32, ou une URI otpauth:// complète) : ssign calcule lui-même le code à 6 chiffres. Pour la CI et l'automatisation.
-T, --token <CODE>CERTUM_TOKENUn code à 6 chiffres en cours de validité, lu dans votre appli d'authentification. Pour une signature manuelle ponctuelle.
-o, --output-dir <DIR>Écrit les fichiers signés dans ce dossier (créé au besoin) au lieu d'écraser les originaux.
--timestamp-url <URL>Serveur d'horodatage RFC 3161. Par défaut : http://time.certum.pl/.
-n, --name <TEXT>Description de la signature, intégrée au fichier.
-u, --url <URL>URL d'information de la signature, intégrée au fichier.
--backupEn signature sur place, garde l'original à côté sous le nom <fichier>.orig.
-v, --verboseAffiche chaque étape (connexion ou session en cache, carte, chaque fichier).
-h, --help / -V, --versionAffiche l'aide ou la version.

Seuls l'e-mail, la graine et le code peuvent venir de variables d'environnement. Préférez-les pour les secrets : une valeur passée en ligne de commande est visible dans l'historique du shell et dans la liste des processus. Passer à la fois --otp et --token est une erreur.

La graine : base32 ou URI otpauth://

--otp accepte un secret base32 brut ou une URI otpauth:// complète. Avec un secret brut, ssign applique les réglages de SimplySign : SHA-256 (et non le SHA-1 par défaut de la plupart des bibliothèques TOTP), 6 chiffres, 30 secondes. Avec une URI, l'algorithme, le nombre de chiffres et la période sont lus dans l'URI. Le code est calculé à partir de l'horloge du système.

Une connexion pour de nombreux fichiers

ssign se connecte une fois par exécution et signe tous les fichiers listés avec cette session. Il garde aussi la session pendant 20 minutes : les exécutions suivantes dans ce délai, ainsi que le module PKCS#11, signent sans nouveau code. C'est important, car Certum n'accepte chaque code qu'une seule fois. Où la session est stockée, et ce que cela implique : le cache de session.

Bon à savoir

Vous signez dans un pipeline ? Continuez avec GitHub Actions.