web-dev-qa-db-fra.com

Différence entre le fichier .keystore et le fichier .jks

J'ai essayé de trouver la différence entre les fichiers .keystore et les fichiers .jks, mais je ne pouvais pas la trouver. Je sais que jks est pour "le magasin de clés Java" et les deux sont un moyen de stocker des paires clé/valeur.

Y a-t-il une différence ou une préférence pour utiliser l'un par rapport à l'autre?

195
juveria

En fin de compte, .keystore et .jks ne sont que des extensions de fichiers: c'est à vous de nommer vos fichiers de manière judicieuse. Certaines applications utilisent un fichier de magasin de clés stocké dans $HOME/.keystore: cela implique généralement qu'il s'agit d'un fichier JKS, car JKS est le type de magasin de clés par défaut dans le fournisseur de sécurité Sun/Oracle Java =. Tout le monde n'utilise pas l'extension .jks pour les fichiers JKS, car elle est implicite par défaut. Je vous recommande d'utiliser l'extension, juste pour vous rappeler quel type spécifier (si vous en avez besoin).

En Java, le magasin de clés Word peut avoir l'une des significations suivantes, en fonction du contexte:

Quand on parle de fichier et de stockage, ce n'est pas vraiment une installation de stockage pour des paires clé/valeur (il existe de nombreux formats ou d'autres pour cela). C'est plutôt un conteneur pour stocker des clés cryptographiques et des certificats (je pense que certains peuvent également stocker des mots de passe). Généralement, ces fichiers sont cryptés et protégés par un mot de passe afin de ne pas laisser ces données à la disposition de personnes non autorisées.

Java utilise sa classe KeyStore et ses API associées pour utiliser un magasin de clés ( qu'il soit basé sur un fichier ou non ). JKS est un format de fichier spécifique à Java, mais l'API peut également être utilisée avec d'autres types de fichiers, généralement PKCS # 12. Lorsque vous souhaitez charger un magasin de clés, vous devez spécifier son type. Les extensions conventionnelles seraient:

  • .jks pour le type "JKS",
  • .p12 ou .pfx pour le type "PKCS12" (le nom de la spécification est PKCS # 12, mais le # n'est pas utilisé dans le nom du type de magasin de clés Java.) .

En outre, BouncyCastle fournit également ses implémentations, notamment BKS (généralement à l'aide de l'extension .bks), fréquemment utilisé pour les applications Android.

174
Bruno

Vous êtes confus à ce sujet.

Un keystore est un conteneur de certificats, de clés privées, etc.

Il existe des spécifications sur le format de ce magasin de clés et le prédominant est le # PKCS12

JKS est l'implémentation du fichier de clés de Java. Il y a aussi BKS etc.

Ce sont tous des types de magasin de clés .

Donc, pour répondre à votre question:

différence entre les fichiers .keystore et les fichiers .jks

Il n'y en a pas. Les JKS sont des fichiers de magasin de clés. Il existe cependant une différence entre les types de magasin de clés . Par exemple. JKS vs #PKCS12

68
Cratylus

Une raison de choisir .keystore au lieu de .jks est que Unity reconnaît le premier mais pas le dernier lorsque vous naviguez pour sélectionner votre fichier de magasin de clés (Unity 2017.3, macOS).

4
AbePralle