Pregunta

¿Cuál es la diferencia entre un almacén de claves y un almacén de confianza?

¿Fue útil?

Solución

Un almacén de claves contiene claves privadas y los certificados con sus claves públicas correspondientes.

Un almacén de confianza contiene certificados de otras partes con las que espera comunicarse o de autoridades de certificación en las que confía para identificar otras partes.

Otros consejos

  1. Un almacén de claves contiene claves privadas. Solo necesitas esto si eres un servidor, o si el servidor requiere autenticación del cliente.

  2. Un almacén de confianza contiene certificados de CA para confiar. Si tu servidor el certificado está firmado por una CA reconocida, el almacén de confianza predeterminado que se envía con el JRE ya confiará en él (porque ya confía en CA confiables), por lo que no necesita crear las suyas propias, o para agregar algo al JRE.

Fuente

En un protocolo de enlace SSL, el propósito de trustStore es verificar las credenciales y el propósito de keyStore es proporcionar credenciales .

keyStore

keyStore en Java almacena la clave privada y los certificados correspondientes a sus claves públicas y requiere si es un servidor SSL o SSL requiere autenticación del cliente.

TrustStore

TrustStore almacena certificados de terceros, su aplicación Java se comunica o certificados firmados por CA (autoridades de certificación como Verisign, Thawte, Geotrust o GoDaddy) que pueden utilizarse para identificar a terceros.

TrustManager

TrustManager determina si la conexión remota debe ser de confianza o no, es decir, si la parte remota es a quién reclama y KeyManager decide qué credenciales de autenticación se deben enviar al host remoto para la autenticación durante el protocolo de enlace SSL.

Si es un servidor SSL, usará una clave privada durante el algoritmo de intercambio de claves y enviará los certificados correspondientes a sus claves públicas al cliente, este certificado se adquiere de keyStore. En el lado del cliente SSL, si está escrito en Java, utilizará certificados almacenados en trustStore para verificar la identidad del servidor. Los certificados SSL generalmente se presentan como archivos .cer que se agregan a keyStore o trustStore mediante el uso de cualquier utilidad de administración de claves, p. keytool .

Fuente: http: // javarevisited.blogspot.ch

También puede estar interesado en la redacción de Sun, como parte de la documentación estándar de JSSE:

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

Normalmente, el almacén de confianza se usa para almacenar solo claves públicas, con fines de verificación, como con la autenticación X.509. Para fines de administración, es bastante común que los administradores o desarrolladores simplemente combinen los dos en una sola tienda.

  

En Java, ¿cuál es la diferencia entre un almacén de claves y un almacén de confianza?

Aquí está la descripción de los documentos de Java en Java Secure Socket Extension (JSSE) Guía de referencia . No creo que te diga nada diferente de lo que otros han dicho. Pero sí proporciona la referencia oficial.

  

keystore/truststore

     

Un almacén de claves es una base de datos de material clave. El material clave se utiliza para una variedad de propósitos, incluida la autenticación y la integridad de los datos.   Hay varios tipos de almacenes de claves disponibles, incluidos PKCS12 y   JKS de Oracle.

     

En términos generales, la información del almacén de claves se puede agrupar en dos categorías: entradas de clave y entradas de certificado de confianza. Una entrada clave   consiste en la identidad de una entidad y su clave privada, y puede usarse   para una variedad de propósitos criptográficos. En contraste, un confiable   la entrada del certificado contiene solo una clave pública además de   identidad de la entidad Por lo tanto, no se puede usar una entrada de certificado de confianza   donde se requiere una clave privada, como en un   javax.net.ssl.KeyManager. En la implementación JDK de JKS, un almacén de claves   puede contener entradas clave y entradas de certificados confiables.

     

Un almacén de confianza es un almacén de claves que se utiliza al tomar decisiones sobre en qué confiar. Si recibe datos de una entidad que usted   ya confía, y si puede verificar que la entidad es la que   dice ser, entonces puede suponer que los datos realmente provienen de   esa entidad.

     

Una entrada solo debe agregarse a un almacén de confianza si el usuario confía en esa entidad. Al generar un par de claves o al importar un   certificado, el usuario confía en esa entrada. Cualquier entrada en el   El almacén de confianza se considera una entrada de confianza.

     

Puede ser útil tener dos archivos de almacén de claves diferentes: uno que contenga solo sus entradas clave y el otro que contenga sus   entradas de certificados de confianza, incluidos los certificados de CA. El primero   contiene información privada, mientras que este último no. Usando dos   archivos en lugar de un solo archivo de almacén de claves proporciona una separación más limpia   de la distinción lógica entre sus propios certificados (y   claves privadas correspondientes) y otros certificados. Para proporcionar más   protección para sus claves privadas, guárdelas en un almacén de claves con   acceso restringido, y proporcionar los certificados de confianza en un más   almacén de claves de acceso público si es necesario.

  1. La primera y principal diferencia entre trustStore y keyStore es que él utiliza TrustStore para determinar si se debe confiar en la conexión remota, keyStore se utiliza desde KeyManager para decidir qué credenciales de autenticación se deben enviar al host remoto para la autenticación durante SSL apretón de manos.

  2. Otra diferencia es que keyStore teóricamente contiene claves privadas requeridas solo si está ejecutando un servidor en conexión SSL o si ha habilitado la autenticación del cliente en el lado del servidor y por otro lado trustStore almacena claves públicas o certificados de CA (Certificado Autoridades) que se utilizan para confiar en la parte remota o la conexión SSL.

    De hecho, puede almacenar en el mismo archivo claves privadas y públicas, dado que la herramienta para administrar esos archivos es la misma (keytool), así que podrías usar un solo archivo para ambos propósitos, pero tú probablemente no debería .

  3. Al menos en mi Mac OSX, el almacén de claves predeterminado es $ {user.home} /. keystore , y el almacén de confianza predeterminado es / System / Library / Java / Support / CoreDeploy.bundle / Contenido / Inicio / lib / security / cacerts .

    Si desea anularlos, debe agregar los parámetros JVM -Djavax.net.ssl.keyStore / path / to / keyStore o -Djavax.net.ssl.trustStore / path / to / trustStore . Usted también podría necesita establecer la contraseña de keyStore en caso de java.security.UnrecoverableKeyException: la contraseña no debe ser nulo , utilizando el parámetro -Djavax.net.ssl.trustStorePassword = contraseña o -Djavax.net.ssl.trustStorePassword=password

Fuente principal:

  

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top