Un outil robuste et sécurisé pour signer cryptographiquement votre code source. Protégez vos utilisateurs en leur permettant de vérifier l'authenticité et l'intégrité de votre code.
- 🔑 RSA 4096 bits pour une sécurité maximale
- 🛡️ Double hachage (SHA-256 + SHA3-512)
- 🔒 Chiffrement du manifeste des signatures
- ⏰ Vérification temporelle des signatures
- 🎯 Sélection flexible des fichiers par extension
- 🚨 Détection avancée des manipulations
- 📝 Rapports de vérification détaillés
- Protection contre les attaques Man-in-the-Middle
- Détection des replay attacks via timestamps
- Vérification multi-niveaux de l'intégrité
- Chiffrement de la clé privée par mot de passe
- Permissions système restrictives sur les fichiers sensibles
- Alertes sur les signatures périmées
- Python 3.7 ou supérieur
- Package cryptography (
pip install cryptography
)
- Clonez le dépôt :
git clone https://github.com/CiscoDerm/codesigner.git
cd codesigner
- Installez les dépendances :
pip install cryptography
# Génération simple
python codesigner.py generate-keys
# Génération avec protection par mot de passe (recommandé)
python codesigner.py generate-keys --password "votre_mot_de_passe_fort"
Cela créera un dossier keys
contenant :
- 🔒
private_key.pem
(PRIVÉ - Ne jamais partager!) - 🌐
public_key.pem
(À distribuer aux utilisateurs) - 🔑
manifest.key
(Pour la vérification du manifeste)
# Signature avec mot de passe
python codesigner.py sign --extensions .py --password "votre_mot_de_passe"
# Signature de plusieurs types de fichiers
python codesigner.py sign --directory ./mon_projet --extensions .py .js .css
Pour permettre à vos utilisateurs de vérifier votre code, fournissez :
- 📦 Le code source
- 📄 Le fichier
signatures.manifest
- 🔑 La clé publique (
public_key.pem
) - 🔐 La clé du manifeste (
manifest.key
)
# Vérification complète
python codesigner.py verify --public-key ./keys/public_key.pem --manifest-key ./keys/manifest.key
mon_projet/main.py: ✓ Valide
mon_projet/utils.py: ✓ Valide
tests/test_main.py: ✓ Valide
Résumé de vérification:
- Fichiers vérifiés: 3/3
- Statut global: ✓ OK
-
🔒 Protection de la clé privée :
- Ne jamais partager votre clé privée
- Utiliser un mot de passe fort
- Sauvegarder la clé de manière sécurisée
-
🔄 Gestion des signatures :
- Signer à nouveau après chaque modification
- Renouveler les signatures tous les 30 jours
- Vérifier l'intégrité du manifeste régulièrement
-
📢 Distribution :
- Distribuer la clé publique via un canal sécurisé
- Inclure des checksums pour les fichiers de vérification
- Documenter la procédure de vérification
⚠️ Signature périmée
: La signature a plus de 30 jours- ❌
Hash invalide
: Le fichier a été modifié ⚠️ Manifeste altéré
: Le fichier de signatures a été compromis- ❌
Fichier manquant
: Un fichier signé est absent
Les contributions sont bienvenues ! Processus :
- 🍴 Forker le projet
- 🔨 Créer une branche (
git checkout -b feature/amelioration
) - 📝 Commiter vos changements
- 🚀 Pusher vers la branche
- 🎉 Ouvrir une Pull Request
- Créé par [CiscoDerm]
⭐️ Si ce projet vous aide à sécuriser votre code, n'hésitez pas à lui donner une étoile sur GitHub !