Distribution du certificat de signature de code - meilleures pratiques?
Remarque: je suis un débutant absolu en matière de signature de code et de certificats logiciels. J'ai essayé de chercher et de lire comment résoudre notre problème particulier, mais je n'ai rien trouvé qui ressemble à Internet.
Jusqu'à présent, la signature de code n'était pas un problème pour nous, car nous travaillons sur des systèmes embarqués, basés sur Windows, mais pour lesquels nous fournissons des solutions clé en main. Ensuite, notre antivirus (qui est obligatoire!) A détesté plusieurs de nos fichiers binaires (pour tous les projets), et il ne semble pas y avoir de véritable modèle dans ce qu’il n’aime pas. Après des semaines de discussions avec le fournisseur de l'antivirus, nous avons découvert que la solution à notre problème est que nos développeurs disposent d'un dossier exclu de l'analyse (utilisé pour la construction du logiciel) et que nous implémentons la signature de code tout en ayant notre certificat. sur la liste blanche dans l'application antivirus (utilisé pour la distribution interne limitée et les tests de nos logiciels).
Donc, pour le moment, nous allons utiliser la signature de code, pas pour la sécurité, mais simplement pour pouvoir faire notre travail. Le fournisseur d’antivirus nous a informés que les certificats auto-signés ne peuvent pas être inscrits sur la liste blanche, même si cela aurait eu un sens.
Nos développeurs sont répartis sur cinq sites à travers le monde et nous recherchons la solution la plus simple possible pour nous assurer qu'ils peuvent tous effectuer la signature de code (sinon, il ne leur sera pas possible de tester le code qu'ils ont généré).
Nous espérons qu'une sorte de distribution de certificats est possible, peut-être même en utilisant Active Directory?
Dans un avenir pas si lointain, nous devrons faire de la signature de code pour valider réellement la sécurité de notre logiciel. Par conséquent, si nous utilisons le certificat distribué, serait-il toujours "sûr" d'utiliser pour la validation? Je suppose que non - ce qui me fait me demander si nous pourrions avoir deux certificats et signer avec les deux? Un certificat serait alors distribué et nous permettrait de construire et de tester, puis un autre serait utilisé pour la publication.
Nous allons probablement utiliser un certificat Microsoft Authenticode - sauf s’il existe de bonnes raisons de ne pas le faire.
Toutefois, pour autant que je sache, Microsoft utilise depuis le 1er février 2017 un module de sécurité matérielle (HSM) dans le processus de signature de code. Nous espérons que cela ne signifie pas que chaque développeur doit avoir son propre HSM dans son ordinateur!
Donc, pour résumer mes questions:
- Pour la signature de code des fichiers binaires Windows, un certificat HSM est-il requis ou existe-t-il d'autres alternatives plus intéressantes (dans cette situation).
- Quelles sont les options pour distribuer un certificat entre développeurs? Utiliser AD serait bien, car il est déjà en place dans le monde entier.
- Dans une configuration distribuée, serait-il possible de garder le certificat de signature secret?
- La double signature serait-elle une option pour augmenter la sécurité? (Une signature pour battre l'antivirus lors des tests, une autre pour la sécurité réelle du logiciel fourni)
- Avez-vous une meilleure solution à envisager pour nous?
Merci d'avance.