Signer des Archives
Signez cryptographiquement les archives pour la sécurité de la chaîne d'approvisionnement.
Vue d'Ensemble
Sherpack utilise Minisign pour les signatures :
- Signatures petites et sécurisées
- Gestion simple des clés
- Commentaires de confiance pour les métadonnées
Générer des Clés
sherpack keygen [options]
Interactif (avec mot de passe)
sherpack keygen -o ~/.sherpack/keys
# Entrez le mot de passe à l'invite
Non-interactif (CI/CD)
sherpack keygen -o ~/.sherpack/keys --no-password
Sortie
Generating keypair...
Created:
Secret key: ~/.sherpack/keys/sherpack.key
Public key: ~/.sherpack/keys/sherpack.pub
⚠️ Keep sherpack.key secret! Distribute sherpack.pub to users.
Signer des Archives
sherpack sign <archive> -k <secret-key>
Signature de Base
sherpack sign mypack-1.0.0.tar.gz -k ~/.sherpack/keys/sherpack.key
Avec Commentaire de Confiance
sherpack sign mypack-1.0.0.tar.gz \
-k ~/.sherpack/keys/sherpack.key \
-c "Release v1.0.0 - Production ready"
Sortie
Signing: mypack-1.0.0.tar.gz
Key ID: RW...
Created: mypack-1.0.0.tar.gz.minisig
Trusted comment: Release v1.0.0 - Production ready
Fichier de Signature
Le fichier .minisig contient :
untrusted comment: sherpack signature
RW...base64-signature...
trusted comment: Release v1.0.0 - Production ready
...signature-of-trusted-comment...
Gestion des Clés
Sécurité de la Clé Secrète
- Stockez dans un emplacement sécurisé (coffre-fort, stockage chiffré)
- Utilisez la protection par mot de passe pour la signature manuelle
- Effectuez une rotation périodique des clés
- Ne jamais committer dans le contrôle de version
Distribution de la Clé Publique
Distribuez sherpack.pub via :
- Métadonnées du dépôt de paquets
- Documentation
- Point de terminaison dédié aux clés
- Contrôle de version (clés publiques uniquement)
Configuration CI/CD
# Exemple GitHub Actions
- name: Sign release
env:
SIGNING_KEY: ${{ secrets.SHERPACK_SIGNING_KEY }}
run: |
echo "$SIGNING_KEY" > /tmp/sherpack.key
sherpack sign mypack-*.tar.gz -k /tmp/sherpack.key
rm /tmp/sherpack.key
Rotation des Clés
Lors de la rotation des clés :
- Générez une nouvelle paire de clés
- Signez les nouvelles versions avec la nouvelle clé
- Gardez l'ancienne clé publique disponible pour la vérification
- Documentez la date de transition de clé
# Générer de nouvelles clés avec un nom différent
sherpack keygen -o ~/.sherpack/keys-2024 --no-password
Signatures Multiples
Pour les environnements à haute sécurité, exigez plusieurs signatures :
# Signer avec la première clé
sherpack sign mypack-1.0.0.tar.gz -k key1.key
# Signer avec la deuxième clé (signataire différent)
sherpack sign mypack-1.0.0.tar.gz -k key2.key -o mypack-1.0.0.tar.gz.sig2
Les utilisateurs vérifient avec les deux :
sherpack verify mypack-1.0.0.tar.gz -k key1.pub
sherpack verify mypack-1.0.0.tar.gz -k key2.pub --signature mypack-1.0.0.tar.gz.sig2