respuesta públicas modificar las introduzca generar ejemplo crear contraseña coinciden claves certificado almacén almacen keystore encryption-asymmetric truststore

keystore - públicas - Definiciones de almacén de confianza y almacén de claves



las claves públicas en la respuesta y en el almacén de claves no coinciden (6)

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 la Guía de referencia de la extensión de socket seguro (JSSE) de Java . 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, incluyendo 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 clave y entradas de certificados de confianza. Una entrada de 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, una entrada de certificado de confianza contiene solo una clave pública además de la identidad de la entidad. Por lo tanto, una entrada de certificado de confianza no se puede utilizar 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 tanto entradas clave como entradas de certificados de confianza.

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 en la que ya confía, y si puede verificar que la entidad es la que afirma ser, entonces puede asumir 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 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 las entradas clave y el otro que contenga las entradas de certificados de confianza, incluidos los certificados de CA. El primero contiene información privada, mientras que el segundo no. El uso de dos archivos en lugar de un solo archivo de almacén de claves proporciona una separación más clara de la distinción lógica entre sus propios certificados (y las correspondientes claves privadas) y los certificados de otros. Para proporcionar más protección a sus claves privadas, guárdelas en un almacén de claves con acceso restringido y proporcione los certificados de confianza en un almacén de claves de acceso más público si es necesario.

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


  1. La primera y principal diferencia entre trustStore y keyStore es que TrustManore utiliza TrustStore para determinar si la conexión remota debe ser confiable, KeyStore se utiliza para decidir qué credenciales de autenticación deben enviarse al host remoto para la autenticación durante el protocolo de enlace SSL.

  2. Otra diferencia es que keyStore en teoría contiene claves privadas requeridas solo si está ejecutando un Servidor con conexión SSL o si ha habilitado la autenticación del cliente en el servidor y, por otro lado, trustStore almacena claves públicas o certificados de CA (Autoridades de Certificación) que se utilizan para Confíe en la parte remota o la conexión SSL.

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

  3. Al menos en mi Mac OSX, el ${user.home}/.keystore predeterminado es ${user.home}/.keystore , y el ${user.home}/.keystore confianza predeterminado es /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/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 . Es posible que también deba configurar la contraseña de KeyStore en el caso de java.security.UnrecoverableKeyException: Password must not be null , utilizando el parámetro -Djavax.net.ssl.trustStorePassword=password o -Djavax.net.ssl.trustStorePassword=password

Fuente principal:

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


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

  2. Un almacén de confianza contiene certificados de CA para confiar. Si el certificado de su servidor está firmado por una CA reconocida, el almacén de confianza predeterminado que se envía con el JRE ya lo confiará (porque ya confía en las CA confiables), por lo que no necesita crear el suyo propio ni agregar nada a la de la JRE.

Source


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

keyStore

keyStore en Java almacena la clave privada y los certificados correspondientes a sus claves públicas y los requiere si su servidor SSL o SSL requiere la 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 se pueden usar para identificar a terceros.

TrustManager

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

Si usted es un servidor SSL, utilizará 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 obtiene 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 suelen venir como archivos .cer que se agregan a keyStore o trustStore mediante el uso de cualquier utilidad de administración de claves, por ejemplo, keytool .

Fuente: http://javarevisited.blogspot.ch


También puede interesarle la reseña 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 utiliza 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.


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 a otras partes.