Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser Microsoft SignTool with AWS CloudHSM pour signer des fichiers
Dans le domaine de la cryptographie et de l'infrastructure à clé publique (PKI), les signatures numériques sont utilisées pour confirmer que les données ont été envoyées par une entité de confiance. Les signatures indiquent également que les données n'ont pas été altérées pendant le transit. Une signature est un hachage chiffré qui est généré avec la clé privée de l'expéditeur. Le destinataire peut vérifier l'intégrité des données en déchiffrant la signature de hachage avec la clé publique de l’expéditeur. En revanche, il est de la responsabilité de l'expéditeur de conserver un certificat numérique. Le certificat numérique démontre la propriété de la clé privée par l’expéditeur et fournit au destinataire la clé publique qui est nécessaire pour le déchiffrement. Tant que la clé privée appartient à l'expéditeur, la signature est fiable. AWS CloudHSM fournit du matériel sécurisé FIPS 140-2 validé de niveau 3 pour vous permettre de sécuriser ces clés avec un accès exclusif à locataire unique.
De nombreuses entreprises utilisent Microsoft SignTool, un outil de ligne de commande qui signe, vérifie et horodate les fichiers afin de simplifier le processus de signature de code. Vous pouvez les utiliser AWS CloudHSM pour stocker en toute sécurité vos paires de clés jusqu'à ce qu'elles soient nécessaires SignTool, créant ainsi un flux de travail facilement automatisable pour la signature des données.
Les rubriques suivantes fournissent une vue d'ensemble de la manière de l'utiliser SignTool avec AWS CloudHSM.
Rubriques
Étape 1 : Configurer les prérequis
Pour utiliser Microsoft SignTool avec AWS CloudHSM, vous devez disposer des éléments suivants :
-
Une instance EC2 client Amazon exécutant un système d'exploitation Windows.
-
Une autorité de certification (CA), soit en auto-gestion ou établie par un fournisseur tiers.
-
Un AWS CloudHSM cluster actif dans le même cloud public virtuel (VPC) que votre EC2 instance. Le cluster doit en contenir au moins unHSM.
-
Un utilisateur cryptographique (CU) chargé de posséder et de gérer les clés du AWS CloudHSM cluster.
-
Un fichier non signé ou un fichier exécutable.
-
Le kit de développement logiciel Microsoft Windows (SDK).
Pour configurer les conditions requises pour une utilisation AWS CloudHSM avec Windows SignTool
-
Suivez les instructions de la section Mise en route de ce guide pour lancer une EC2 instance Windows et un AWS CloudHSM cluster.
-
Si vous souhaitez héberger votre propre autorité de certification Windows Server, suivez les étapes 1 et 2 de la section Configuration de Windows Server en tant qu'autorité de certification avec AWS CloudHSM. Dans le cas contraire, continuez à utiliser votre autorité de certification tierce approuvée publiquement.
-
Téléchargez et installez l'une des versions suivantes de Microsoft Windows SDK sur votre EC2 instance Windows :
L'
SignTool
exécutable fait partie de la fonctionnalité d'installation des outils de SDK signature Windows pour applications de bureau. Vous pouvez omettre l’installation des autres fonctionnalités si vous n'en avez pas besoin. L'emplacement d'installation par défaut est :C:\Program Files (x86)\Windows Kits\
<SDK version>
\bin\<version number>
\<CPU architecture>
\signtool.exe
Vous pouvez désormais utiliser Microsoft WindowsSDK, votre AWS CloudHSM cluster et votre autorité de certification pour créer un certificat de signature.
Étape 2 : Création d'un certificat de signature
Maintenant que vous avez téléchargé Windows SDK sur votre EC2 instance, vous pouvez l'utiliser pour générer une demande de signature de certificat (CSR). CSRIl s'agit d'un certificat non signé qui est finalement transmis à votre autorité de certification pour signature. Dans cet exemple, nous utilisons le certreq
fichier exécutable inclus dans Windows SDK pour générer leCSR.
Pour générer un à CSR l'aide de l'certreq
exécutable
-
Si ce n'est pas déjà fait, connectez-vous à votre EC2 instance Windows. Pour plus d'informations, consultez Connect to Your Instance dans le guide de EC2 l'utilisateur Amazon.
-
Créez un fichier nommé
request.inf
qui contient les lignes ci-dessous. Remplacez les informationsSubject
par celles de votre entreprise. Pour une explication de chaque paramètre, consultez la documentation de Microsoft. [Version] Signature= $Windows NT$ [NewRequest] Subject = "C=
<Country>
,CN=<www.website.com>
,O=<Organization>
,OU=<Organizational-Unit>
,L=<City>
,S=<State>
" RequestType=PKCS10 HashAlgorithm = SHA256 KeyAlgorithm = RSA KeyLength = 2048 ProviderName = Cavium Key Storage Provider KeyUsage = "CERT_DIGITAL_SIGNATURE_KEY_USAGE" MachineKeySet = True Exportable = False -
Exécutez
certreq.exe
. Pour cet exemple, nous enregistrons le fichier CSR sousrequest.csr
.certreq.exe -new request.inf request.csr
En interne, une nouvelle paire de clés est générée sur votre AWS CloudHSM cluster, et la clé privée de la paire est utilisée pour créer leCSR.
-
Soumettez-les CSR à votre autorité de certification. Si vous utilisez une CA Windows Server, procédez comme suit :
-
Entrez la commande suivante pour ouvrir l'outil CA
certsrv.msc
-
Dans la nouvelle fenêtre, cliquez avec le bouton droit de la souris sur le nom du serveur CA. Choisissez All Tasks (Toutes les tâches), puis choisissez Submit new request (Envoyer une nouvelle demande).
-
Accédez à l’emplacement de
request.csr
et choisissez Ouvrir. -
Accédez au dossier Pending Requests (Demandes en attente) en développant le menu Server CA. Cliquez avec le bouton droit de la souris sur la demande que vous venez de créer puis, dans All Tasks (Toutes les tâches), choisissez Issue.
-
Maintenant, accédez au dossier Issued Certificates (Certificats émis) (au-dessus du dossier Demandes en attente).
-
Choisissez Ouvrir pour afficher le certificat, puis cliquez sur l’onglet Détails.
-
Choisissez Copy to File (Copier dans un fichier) pour démarrer le Certificate Export Wizard (Assistant d’exportation de certificat). Enregistrez le fichier X.509 DER codé dans un emplacement sécurisé sous le nom.
signedCertificate.cer
-
Quittez l'outil CA et utilisez la commande suivante, qui permet de déplacer le fichier de certificat dans le magasin de certificats personnel dans Windows. Il peut ensuite être utilisé par d'autres applications.
certreq.exe -accept signedCertificate.cer
-
Vous pouvez désormais utiliser votre certificat importé pour signer un fichier.
Étape 3 : signer un fichier
Vous êtes maintenant prêt à utiliser SignTool votre certificat importé pour signer votre fichier d'exemple. Pour ce faire, vous devez connaître le hachage SHA -1, ou empreinte numérique, du certificat. L'empreinte numérique est utilisée pour garantir que SignTool seuls les certificats vérifiés par. AWS CloudHSM Dans cet exemple, nous utilisons PowerShell pour obtenir le hachage du certificat. Vous pouvez également utiliser le certutil
fichier exécutable de l'autorité de certification GUI ou SDK de Windows.
Pour obtenir l’empreinte d’un certificat et l’utiliser pour signer un fichier
-
Ouvrez PowerShell en tant qu'administrateur et exécutez la commande suivante :
Get-ChildItem -path cert:\LocalMachine\My
Copiez la valeur
Thumbprint
qui est renvoyée. -
Accédez au répertoire PowerShell qui contient
SignTool.exe
. L'emplacement par défaut estC:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64
. -
Enfin, signez votre fichier en exécutant la commande suivante. Si la commande aboutit, PowerShell renvoie un message de réussite.
signtool.exe sign /v /fd sha256 /sha1
<thumbprint>
/sm C:\Users\Administrator\Desktop\<test>
.ps1 -
(Facultatif) Pour vérifier la signature sur le fichier, utilisez la commande suivante :
signtool.exe verify /v /pa C:\Users\Administrator\Desktop\
<test>
.ps1