• Contenu
  • Bas de page
logo ouidoulogo ouidoulogo ouidoulogo ouidou
  • Qui sommes-nous ?
  • Offres
    • 💻 Applications métier
    • 🤝 Collaboration des équipes
    • 🛡️ Sécurisation et optimisation du système d’information
    • 🔗 Transformation numérique
  • Expertises
    • 🖥️ Développement logiciel
    • ♾️ DevSecOps
    • ⚙️ Intégration de logiciels et négoce de licences
      • Atlassian : Jira, Confluence, Bitbucket…
      • Plateforme monday.com
      • GitLab
      • SonarQube
    • 📚​ Logiciel de CRM et de gestion
    • 🎨 UX/UI design
    • 🌐 Accessibilité Numérique
    • 🗂️​ Démarches simplifiées
    • 📝 Formations Atlassian
    • 🤖 L’IA au service de vos projets numériques
  • Références
  • Carrières
    • 🧐 Pourquoi rejoindre Ouidou ?
    • ✍🏻 Nous rejoindre
    • 👨‍💻 Rencontrer nos collaborateurs
    • 🚀 Grandir chez Ouidou
  • RSE
  • Ressources
    • 🗞️ Actualités
    • 🔍 Articles techniques
    • 📖 Livres blancs
    • 🎙️ Interviews Clients
Nous contacter
✕
GitLab userscript to ease label transitions
GitLab userscript to ease label transitions
14 mai 2021
Développer une application mobile : native ou hybride ?
Développer une application mobile : native ou hybride ?
28 mai 2021
Ressources > Articles techniques > Signer nos commits

Signer nos commits

Article écrit par Jonathan Francois

Contexte

Aujourd’hui nous essayons au maximum de sécuriser nos différentes communications. Que ce soit par l’utilisation de messagerie sécurisée ou par l’utilisation de clé GPG pour nos mails par exemple. D’une part cela permet une certaine confidentialité de nos données mais également d’éviter les usurpations d’identités.

Il y a moins d’un mois (fin mars 2021), cela a failli avoir de gros impacts pour la communauté PHP. Deux « hackers » ont tenté d’injecter une backdoor dans le code source du langage (git.php.net) en utilisant le nom des deux principaux développeurs du langage de programmation, Rasmus Lerdorf et Nikita Popov. Ces commits étaient présentés comme de simples résolutions d’erreurs de typographie, avec pour objectif caché la création d’une porte dérobée et donc la possibilité d’exécuter du code à distance.

Heureusement, les failles ont été corrigées avant qu’elles n’aient pu affecter la communauté et les utilisateurs des applications en PHP.

Pour réaliser cette action, les hackers ont dû avoir un accès au gestionnaire de code git.php.net et utiliser l’identité de vrais développeurs pour passer leur code.

Concernant le premier point, nous n’en savons pas plus à l’heure actuelle (pas réalisé de grosses recherches non plus) mais concernant le second il est sûr que les développeurs n’utilisaient pas de clé GPG permettant de vérifier l’identité de leur commit. C’est tout l’objet de cette note rapide.

Configurer et sécuriser l’identité de nos commits

Que ce soit dans des projets OSS ou au sein de votre société, vous avez certainement déjà vu dans l’historique des badges de signature de commit et/ou de commit signé/vérifié.

Example de signature GitLab

Cela permet au-delà de l’authentification de votre gestion de code, de vérifier l’identité de la personne responsable de celui-ci.

Mais comment mettre cela en place dans votre équipe pour éviter les surprises ?

Tout d’abord il faut avoir une clé GPG, pour ceux qui n’en ont pas encore pour les mails ou autres je vous conseille de le faire rapidement (pour l’installation https://gpgtools.org/ pour osx et https://gnupg.org/ pour linux) :

gpg --list-keys  # Verifier les clés existantes gpg --gen-key    # Générer une nouvelle clé 

Une fois votre clé générée, identifions votre identifiant de clé :

gpg --list-secret-keys --keyid-format LONG <VOTRE_EMAIL> 

Ensuite configurons notre client git :

git config --global user.signingkey <ID_GPG> git config --global commit.gpgsign true # Pour éviter de passer l'argument `-S` à chaque commit sinon `git commit -S -m "First commit"` 

Maintenant il faut ajouter votre clé publique dans votre gestionnaire de code. Cela se passe généralement dans votre profil (c’est le cas pour GitLab et GitHub).

Pour connaitre votre clé publique GPG, vous pouvez utiliser la commande suivante :

gpg --armor --export <ID_GPG> 

Pour que cela soit fonctionnel il faut que votre clé GPG comporte l’email que vous utilisez dans votre configuration du client Git.

$ cat ~/.gitconfig [user] 	name = Jon 	email = <VOTRE_EMAIL> 	signingkey = <ID_GPG> 

Besoin de plusieurs identités ?

Il est possible que vous ayez besoin d’avoir des identités différentes en fonction de vos projets. Dans ce cas, il est possible de le spécifier via des fichiers de configuration git spécifiques par dossier.

# ~/.gitconfig [includeIf "gitdir:~/sources/synbioz/"] path = .gitconfig-synbioz 
# ~/.gitconfig-synbioz [user] name = Jonathan Francois email = jfrancois@synbioz.com 

Dans ce cas, nous aurons une identité différente dans tous les projets git se trouvant dans le dossier ~/sources/synbioz/. La configuration est fusionnée, le fichier spécifique surcharge les clés du ~/.gitconfig.

Conclusion

Une fois cette configuration faite pour l’ensemble des équipes, vous pouvez bloquer les commits non signés sur GitLab ou GitHub.

À lire aussi

Optimiser vos tests avec Cucumber
17 novembre 2025

Optimiser vos tests avec Cucumber

Lire la suite

Comment préparer votre Jira Cloud dès maintenant ? 
14 novembre 2025

Comment préparer votre Jira Cloud dès maintenant ? 

Lire la suite

Replay webinaire IA
5 novembre 2025

Replay webinaire IA

Lire la suite

Atlassian arrête le Data Center : pourquoi votre migration doit commencer maintenant
5 novembre 2025

Atlassian arrête le Data Center : pourquoi votre migration doit commencer maintenant

Lire la suite

Articles associés

Comment préparer votre Jira Cloud dès maintenant ? 
14 novembre 2025

Comment préparer votre Jira Cloud dès maintenant ? 


Lire la suite
Replay webinaire IA
5 novembre 2025

Replay webinaire IA


Lire la suite
Challenge technique inter-agences spécial Halloween
31 octobre 2025

Challenge technique inter-agences spécial Halloween


Lire la suite

À propos

  • Qui sommes-nous ?
  • Références
  • RSE
  • Ressources

Offres

  • Applications métier
  • Collaboration des équipes
  • Sécurisation et optimisation du système d’information
  • Transformation numérique

Expertises

  • Développement logiciel
  • DevSecOps
  • Intégration de logiciels et négoce de licences
  • Logiciel de CRM et de gestion
  • UX/UI design
  • Accessibilité Numérique
  • Démarches simplifiées
  • Formations Atlassian

Carrières

  • Pourquoi rejoindre Ouidou ?
  • Nous rejoindre
  • Rencontrer nos collaborateurs
  • Grandir chez Ouidou
logo ouidou

SIEGE SOCIAL
70-74 boulevard Garibaldi, 75015 Paris

Ouidou Nord
165 Avenue de Bretagne, 59000 Lille

Ouidou Rhône-Alpes
4 place Amédée Bonnet, 69002 Lyon

Ouidou Grand-Ouest
2 rue Crucy, 44000 Nantes

Ouidou Grand-Est
7 cour des Cigarières, 67000 Strasbourg

  • Linkedin Ouidou
  • GitHub Ouidou
  • Youtube Ouidou
© 2024 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Nous contacter