Question

Quelle est la différence entre un fichier de clés et un fichier de clés certifiées?

Était-ce utile?

La solution

Un magasin de clés contient des clés privées et les certificats avec les clés publiques correspondantes.

Un fichier de clés certifiées contient des certificats d'autres parties avec lesquelles vous comptez communiquer ou d'autorités de certification en lesquelles vous avez confiance pour identifier d'autres parties.

Autres conseils

  1. Un magasin de clés contient des clés privées. Vous n'en avez besoin que si vous êtes un serveur, ou si le serveur nécessite une authentification client.

  2. Un truststore contient des certificats d'autorité de certification à approuver. Si votre serveur le certificat est signé par une autorité de certification reconnue, le fichier de clés certifiées par défaut qui est livré avec le JRE aura déjà confiance en lui (car il est déjà fait confiance à des CA dignes de confiance), vous n’avez donc pas besoin de créer la vôtre, ou d'ajouter quelque chose à celui de la JRE.

Source

Dans une négociation SSL, le but de trustStore est de vérifier les informations d'identification et de keyStore est de fournir des informations d'identification .

KeyStore

keyStore en Java stocke la clé privée et les certificats correspondant à leurs clés publiques et requis si vous êtes un serveur SSL ou si SSL requiert une authentification client.

Trusttore

TrustStore stocke des certificats tiers, votre application Java communique ou des certificats signés par une autorité de certification (autorités de certification telles que Verisign, Thawte, Geotrust ou GoDaddy) pouvant être utilisées pour identifier des tiers.

TrustManager

TrustManager détermine si la connexion distante doit être approuvée ou non, c’est-à-dire si la partie distante est la personne à laquelle elle se réclame et KeyManager détermine les informations d’authentification devant être envoyées à l’hôte distant pour authentification lors de la négociation SSL.

Si vous êtes un serveur SSL, que vous utiliserez une clé privée lors de l’algorithme d’échange de clé et que vous enverrez au client les certificats correspondant à vos clés publiques, ce certificat est acquis à partir de keyStore. Sur le côté client SSL, s’il est écrit en Java, il utilisera les certificats stockés dans trustStore pour vérifier l’identité du serveur. Les certificats SSL sont généralement fournis sous forme de fichier .cer qui est ajouté à keyStore ou trustStore à l'aide de tout utilitaire de gestion de clés, par exemple. outil de clé .

Source: http: // javarevisited.blogspot.ch

L'écriture de Sun dans la documentation JSSE standard pourrait également vous intéresser:

http: // docs. oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Stores

En règle générale, le magasin de clés certifiées est utilisé pour stocker uniquement des clés publiques, à des fins de vérification, par exemple avec l'authentification X.509. Pour des raisons de facilité de gestion, il est assez courant pour les administrateurs ou les développeurs de fusionner les deux en un seul magasin.

  

En Java, quelle est la différence entre un magasin de clés et un magasin de clés de confiance?

Voici la description des documents Java à l'adresse Extension Java Secure Socket (JSSE) Guide de référence . Je ne pense pas que cela vous dise autre chose que ce que d'autres ont dit. Mais il fournit la référence officielle.

  

magasin de clés / magasin de clés de confiance

     

Un magasin de clés est une base de données de matériel de clé. Le matériel de clé est utilisé à diverses fins, notamment pour l'authentification et l'intégrité des données.   Différents types de magasins de clés sont disponibles, notamment PKCS12 et   JKS d'Oracle.

     

En règle générale, les informations de magasin de clés peuvent être regroupées en deux catégories: les entrées de clé et les entrées de certificat de confiance. Une entrée clé   se compose de l'identité d'une entité et de sa clé privée, et peut être utilisé   pour une variété d'usages cryptographiques. En revanche, une personne de confiance   l’entrée de certificat ne contient qu’une clé publique en plus de la   identité de l'entité. Ainsi, une entrée de certificat de confiance ne peut pas être utilisée   lorsqu'une clé privée est requise, comme dans un   javax.net.ssl.KeyManager. Dans l’implémentation JKS de JKS, un fichier de clés   peut contenir à la fois des entrées de clé et des entrées de certificat de confiance.

     

Un magasin de clés de confiance est un fichier de clés utilisé pour prendre des décisions concernant les éléments à faire confiance. Si vous recevez des données d'une entité que vous   déjà confiance, et si vous pouvez vérifier que l'entité est celle qui   il prétend être, alors vous pouvez supposer que les données provenaient vraiment de   cette entité.

     

Une entrée ne doit être ajoutée à un fichier de clés certifiées que si l'utilisateur approuve cette entité. Soit en générant une paire de clés, soit en important un   certificat, l'utilisateur donne confiance à cette entrée. Toute entrée dans le   le fichier de clés certifiées est considéré comme une entrée de confiance.

     

Il peut être utile d’avoir deux fichiers de magasin de clés différents: l’un contenant uniquement vos entrées de clé et l’autre contenant votre   entrées de certificat de confiance, y compris les certificats de l'autorité de certification. L'ancien   contient des informations privées, alors que ce dernier ne le fait pas. En utilisant deux   fichiers au lieu d'un fichier de magasin de clés unique fournit une séparation plus propre   de la distinction logique entre vos propres certificats (et   clés privées correspondantes) et les certificats d’autres personnes. Pour fournir plus   protection de vos clés privées, stockez-les dans un magasin de clés avec   accès restreint, et fournir les certificats de confiance dans un plus   fichier de clés accessible au public, si nécessaire.

  1. La première et principale différence entre trustStore et keyStore est que TrustManager utilise TrustStore pour déterminer si la connexion distante doit être approuvée. KeyStore est utilisé par KeyManager pour décider des informations d'authentification à envoyer à l'hôte distant pour l'authentification via SSL. poignée de main.

  2. Une autre différence est que keyStore contient théoriquement des clés privées requises uniquement si vous exécutez une connexion serveur sur SSL ou si vous avez activé l'authentification client côté serveur et que trustStore stocke la clé publique ou les certificats de l'autorité de certification (certificat). Autorités) utilisées pour faire confiance à une partie distante ou à une connexion SSL.

    En fait, vous pouvez stocker dans le même fichier les clés privées et publiques, étant donné que l'outil pour gérer ces fichiers est le même (keytool), pour que vous puissiez utiliser un seul fichier à la fois, mais vous probablement ne devrait pas .

  3. Au moins sur mon Mac OSX, le fichier de clés par défaut est $ {user.home} /. keystore , et le fichier de confiance par défaut est / Système / Bibliothèque / Java / Support / CoreDeploy.bundle / Sommaire / Accueil / lib / security / cacerts .

    Si vous souhaitez les remplacer, vous devez ajouter les paramètres JVM. -Djavax.net.ssl.keyStore / path / to / keyStore ou -Djavax.net.ssl.trustStore / path / to / trustStore . Vous pourriez aussi besoin de définir le mot de passe keyStore en cas de java.security.UnrecoverableKeyException: le mot de passe ne doit pas être null , en utilisant le paramètre -Djavax.net.ssl.trustStorePassword = mot de passe ou -Djavax.net.ssl.trustStorePassword = mot de passe

Source principale:

  

http: // javarevisited.blogspot.co.uk/2012/09/difference-between-truststore-vs-keyStore-Java-SSL.html

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