Question

J'ai besoin de stocker des certificats de clé publique et un certificat de clé privée unique pour une application interne.

Un membre de notre équipe a suggéré de stocker les certificats X509 dans la base de données, au lieu de les stocker dans le magasin de certificats Windows, comme nous le faisions jusqu'à présent. Je n'aime pas réinventer la roue, mais je dois au moins envisager cette idée. cela signifierait de garder nos données plus centralisées, ce qui est bien, je suppose.

Les obstacles initiaux que je peux voir sont les suivants:

  • La clé privée doit encore être stockée quelque part, et je ne sais pas s'il est judicieux de la placer dans un tableau "clé publique". Je n'aime pas non plus l'idée de mettre en place une table pour un seul élément. Peut-être juste garder la clé privée comme fichier local? (fichier .pfx, par exemple).
  • Listes de révocation. Nous devrions probablement mettre en place un processus pour traiter les clés publiques révoquées.

Comme je n'ai pas beaucoup d'expérience avec les certificats X509, ma question est la suivante: y a-t-il d'autres problèmes que nous pourrions rencontrer lors du stockage des certificats de clé publique dans une base de données, au lieu d'utiliser le magasin de certificats Windows? / p>

N'oubliez pas que cette application va être déployée sur plusieurs serveurs de clients d'affaires. Conservez toutes les données en un seul endroit pour faciliter les sauvegardes. Oh, et l'application interne en question est en cours de développement avec C #.

Merci!

Était-ce utile?

La solution

Quel est le but de votre candidature?

Si vous gérez tout le cryptage de votre application et que vous pouvez faire référence à un fichier de clé privée + cert. PKCS # 12, le chemin de la base de données convient probablement.

Si vous devez utiliser l'API Windows Crypto pour accéder aux certificats, vous souhaiterez probablement continuer à utiliser le magasin de certificats intégré. Vous bénéficiez ici d’avantages car vous pouvez protéger la clé privée sur un périphérique externe, comme une carte à puce ou un module de sécurité matérielle (HSM).

Assurez-vous de déployer des efforts considérables pour protéger la clé privée si vous stockez tout sur le disque local. Veillez à utiliser une phrase secrète forte et à appliquer les meilleures pratiques pour protéger cette phrase secrète dans votre application.

Autres conseils

Je serais réticent à déplacer la clé privée vers un autre emplacement sauf si cela est vraiment nécessaire. Ce n'est pas nécessaire si la clé est utilisée pour la signature et ne le sera si la clé est utilisée pour le déchiffrement et si vous souhaitez l'archiver pour l'avenir. Même dans ce cas, l'autorité de certification qui a délivré le certificat serait généralement capable de gérer l'archivage et la récupération. C’est certainement le cas des autorités de certification les plus populaires, telles que Microsoft et confust.

Si vous devez le stocker, chiffrez-le à l'aide d'AES et d'une clé que vous pouvez protéger dans un module de sécurité matérielle (HSM) ou sur une carte à puce. Ne laissez pas cette clé en texte brut (dans un fichier ou dans le registre).

Vous souhaitez également protéger cette clé en transit entre son emplacement de génération et la base de données centrale. SSL ou VPN, etc.

Les listes de révocation sont publiées par l'autorité de certification dans la plupart des environnements, généralement vers un annuaire LDAP, l'annuaire ou les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top