• 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

Bitcoin, fonctionnement et technologies
22 octobre 2025

Bitcoin, fonctionnement et technologies

Lire la suite

Atlassian Team’25 Europe
16 octobre 2025

Atlassian Team’25 Europe

Lire la suite

Webinaire IA
9 octobre 2025

Webinaire IA

Lire la suite

Optimiser un package SSIS : bonnes pratiques de conception et performance
7 octobre 2025

Optimiser un package SSIS : bonnes pratiques de conception et performance

Lire la suite

Articles associés

Bitcoin, fonctionnement et technologies
22 octobre 2025

Bitcoin, fonctionnement et technologies


Lire la suite
Keycloak : Connexion avec Angular
23 septembre 2025

Keycloak : Connexion avec Angular


Lire la suite
Keycloak : Installation & configuration
5 septembre 2025

Keycloak : Installation & configuration


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