FAQ Hero
Confiance pour la signature de code

Qu’est-ce que la signature continue de code dans le cadre du CI/CD ?

Qu’est-ce que le CI/CD ?

Le sigle CI/CD signifie « intégration continue/livraison continue » ou « intégration continue/déploiement continu » (Continuous Integration/Continuous Delivery ou Continuous Integration/Continuous Deployment). Il désigne un processus de développement logiciel qui prend en charge le modèle de développement Agile, conçu pour accélérer le déploiement de nouvelles versions logicielles sans compromettre la qualité. L’intégration continue fait référence aux processus automatisés qui prennent en charge la séquence build-test-merge sur un référentiel partagé. La livraison continue renvoie à une approche automatisée de test et de publication de code sur le référentiel partagé. Quant au déploiement continu, il prend en charge les séquences automatisées permettant de déployer le code en production. En adoptant un pipeline CI/CD et une approche de développement Agile, les entreprises sont en mesure d’enchaîner les itérations sur des fonctions logicielles et de commercialiser rapidement ces fonctionnalités haute qualité. Sur le terrain, de nombreuses équipes de développement exécutent les processus CI/CD plusieurs fois par jour.

Qu’est-ce que la signature continue (CS) dans le cadre du CI/CD ?

Comme le CI/CD, la signature continue est un mode de développement logiciel qui vise à éliminer les failles de sécurité en implémentant une signature de code complète, automatisée et de bout en bout. Elle consiste à déployer des certificats de signature automatisée de logiciel qui sont émis et contrôlés via une plateforme centralisée de gestion des certificats – comme DigiCert® Software Trust Manager, l’une des composantes de DigiCert® ONE. Ces outils automatisés garantissent que le code est signé correctement et continuellement, tout au long du build CI/CD – peu importe le stade de développement, l’identité et le nombre d’ingénieurs qui interviennent sur le code.

La signature continue ajoute également des marqueurs d’identité uniques sur le plan cryptographique. Résultat : toute personne disposant d’une autorisation peut voir quand le code a été signé et quelle clé de certificat a été utilisée pour cette signature. Cela réduit nettement le risque d’erreur humaine tout en améliorant considérablement l’intégrité et la sécurité du code, dans un système de développement qui évolue rapidement et peut impliquer plusieurs développeurs et entreprises tout au long de la supply chain logicielle.

Comment la signature de code s’intègre-t-elle au sein d’un processus CI/CD ?

Le CI/CD est un processus du cycle de développement logiciel (SDLC) qui prend en charge un modèle de développement Agile, conçu pour accélérer le déploiement de nouvelles versions logicielles sans compromettre la qualité. L’intégration continue fait référence aux processus automatisés qui prennent en charge la séquence build-test-merge sur un référentiel partagé. La livraison continue renvoie à une approche automatisée de test et de publication de code sur le référentiel partagé. Quant au déploiement continu, il prend en charge les séquences automatisées permettant de déployer le code en production.

Lorsque le code ou le logiciel est prêt à être déployé en production, il peut être mis à disposition de nombreux services ou entreprises et installé sur leurs systèmes. Le code doit être signé avant la publication afin que les entreprises ou services puissent vérifier l’identité de l’éditeur de code et s’assurer que le code n’a pas été modifié entre la publication et le téléchargement.

L’intégration aux outils CI/CD permet d’automatiser la signature de code dans le cadre du processus CI/CD. Alliée à des contrôles de sécurité, l’automatisation de la signature de code permet ainsi à une organisation de respecter ses politiques de sécurité sans ralentir le développement logiciel. En outre, le fait de s’assurer que le code provenant d’autres sources impliquées dans le processus CI/CD est également signé apporte des garanties de confiance sur ce code. Il pourra donc être inclus dans le processus de développement logiciel.