Definicje Truststore i Keystore

Jaka jest różnica między keystore a truststore?

Author: Cole Johnson, 2008-11-25

6 answers

Magazyn kluczy zawiera klucze prywatne oraz certyfikaty z odpowiadającymi im kluczami publicznymi.

Truststore zawiera certyfikaty od innych stron, z którymi chcesz się komunikować, lub od organów certyfikujących, którym ufasz, aby zidentyfikować inne strony.

 244
Author: Darron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-25 18:42:07
  1. Magazyn kluczy zawiera klucze prywatne. Potrzebujesz tego tylko wtedy, gdy jesteś serwera lub jeśli serwer wymaga uwierzytelnienia klienta.

  2. Truststore zawiera certyfikaty CA do zaufania. Jeśli twój serwer certyfikat jest podpisany przez uznanego CA, domyślny truststore że statki z JRE już mu zaufają (bo już zaufanie zaufania CAs), więc nie trzeba budować własne, lub dodać cokolwiek do tego z JRE.

Źródło

 70
Author: ha9u63ar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-26 12:00:35

W uścisku dłoni SSL celem trustStore jest weryfikacja poświadczeń , a celemkeyStore jest dostarczenie poświadczeń .

KeyStore

KeyStore w Javie przechowuje klucz prywatny i certyfikaty odpowiadające ich kluczom publicznym i wymaga, jeśli serwer SSL lub SSL wymaga uwierzytelnienia klienta.

TrustStore

TrustStore przechowuje certyfikaty pochodzące od osób trzecich, Twoją aplikację Java communicate lub certyfikaty podpisane przez CA (urzędy certyfikacji, takie jak Verisign, Thawte, Geotrust lub GoDaddy), które mogą być wykorzystane do identyfikacji osób trzecich.

TrustManager

TrustManager określa, czy zdalne połączenie powinno być zaufane, czy nie, tzn. czy zdalna strona jest tym, do kogo twierdzi, A KeyManager decyduje, które poświadczenia uwierzytelniania powinny zostać wysłane do zdalnego hosta w celu uwierzytelnienia podczas SSL handshake.

Jeśli jesteś serwerem SSL użyjesz klucza prywatnego podczas klucza algorytm wymiany i wysyłania certyfikatów odpowiadających Twoim kluczom publicznym do klienta, ten certyfikat jest pobierany z magazynu keyStore. Po stronie klienta SSL, jeśli jest napisany w Javie, będzie używał certyfikatów przechowywanych w trustStore do weryfikacji tożsamości serwera. Certyfikaty SSL są najczęściej dostarczane jako .plik CER, który jest dodawany do keyStore lub trustStore za pomocą dowolnego narzędzia do zarządzania kluczami, np. keytool.

Źródło: http://javarevisited.blogspot.ch

 65
Author: Aniket Thakur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-27 10:49:20

Możesz być również zainteresowany zapisem od Sun, jako część standardowej dokumentacji JSSE:

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

Zazwyczaj, sklep zaufania jest używany do przechowywania tylko kluczy publicznych, do celów weryfikacji, takich jak uwierzytelnianie X. 509. Ze względu na łatwość zarządzania Administratorzy lub programiści często łączą je w jeden sklep.

 27
Author: Peter Mularien,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-07 03:08:59

W Javie, jaka jest różnica między keystore a truststore?

Oto opis z Dokumentacji Java w Java Secure Socket Extension (JSSE) Reference Guide. Nie wydaje mi się, żeby to mówiło ci coś innego od tego, co mówili inni. Ale to jest oficjalne odniesienie.

Keystore / truststore

Keystore to baza danych zawierająca kluczowe materiały. Kluczowe materiały są wykorzystywane do różnych celów, w tym uwierzytelnianie i integralność danych. Dostępne są różne rodzaje kluczy, w tym PKCS12 i JKS Oracle.

Ogólnie rzecz biorąc, informacje o keystore można pogrupować w dwie kategorie: wpisy kluczowe i wpisy zaufanych certyfikatów. Wpis kluczowy składa się z tożsamości podmiotu i jego klucza prywatnego i może być używany do różnych celów kryptograficznych. Natomiast zaufany wpis certyfikatu zawiera tylko klucz publiczny oprócz tożsamość podmiotu. Tak więc, a nie można użyć wpisu zaufanego certyfikatu gdzie wymagany jest klucz prywatny, np. w javax.net. ssl. KeyManager. w implementacji JDK JKS, keystore może zawierać zarówno wpisy kluczowe, jak i wpisy zaufanych certyfikatów.

Truststore to klucz, który jest używany przy podejmowaniu decyzji o zaufaniu. Jeśli otrzymujesz dane od podmiotu, który już zaufać, a jeśli można zweryfikować, że podmiot jest Tym, który twierdzi, że jest, wtedy można założyć, że dane naprawdę pochodzi z ta istota.

Wpis powinien być dodany do truststore tylko wtedy, gdy użytkownik ufa temu podmiotowi. Generując parę kluczy lub importując certyfikat, użytkownik daje zaufanie do tego wpisu. Każdy wpis w truststore jest uważany za zaufany wpis.

Przydatne może być posiadanie dwóch różnych plików keystore: jeden zawierający tylko twoje kluczowe wpisy, a drugi zawierający Twoje wpisy zaufanych certyfikatów, w tym certyfikatów CA. Pierwsze zawiera prywatne informacje, natomiast te ostatnie nie. Za pomocą dwóch pliki zamiast pojedynczego pliku keystore zapewniają czystsze oddzielenie logicznego rozróżnienia pomiędzy własnymi certyfikatami (i odpowiednie klucze prywatne) i certyfikaty innych osób. Aby zapewnić więcej ochrony kluczy prywatnych, przechowuj je w keystore z ograniczonego dostępu, i dostarczyć zaufanych certyfikatów w bardziej publicznie dostępny keystore w razie potrzeby.

 9
Author: jww,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-24 21:23:22
  1. Pierwszą i główną różnicą między trustStore i keyStore jest to, że trustStore jest używany przez TrustManager do określenia, czy zdalne połączenie powinno być zaufane, keyStore jest używany z KeyManager decydując, które poświadczenia uwierzytelniania powinny być wysłane do zdalnego hosta w celu uwierzytelnienia podczas SSL handshake.

  2. Inną różnicą jest to, że keystore teoretycznie zawiera klucze prywatne wymagane tylko wtedy, gdy używasz serwera w połączeniu SSL lub masz włączone uwierzytelnianie klienta po stronie serwera, a z drugiej strony trustStore przechowuje klucz publiczny lub certyfikaty z CA (Certificate Authorities), które są używane do zaufania zdalnej strony lub połączenia SSL.

    W rzeczywistości możesz przechowywać w tym samym pliku zarówno klucze prywatne, jak i publiczne, biorąc pod uwagę, że narzędzie do zarządzania tymi plikami jest takie samo (keytool), więc możesz użyć jednego pliku do obu celów, ale ty prawdopodobnie nie powinno .

  3. Przynajmniej na moim Mac OSX domyślny keyStore to ${user.home}/.keystore, a domyślny trustStore to /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts.

    Jeśli chcesz je nadpisać, powinieneś dodać parametry JVM -Djavax.net.ssl.keyStore /path/to/keyStore lub -Djavax.net.ssl.trustStore /path/to/trustStore. Możesz też trzeba ustawić hasło keyStore w przypadku java.security.UnrecoverableKeyException: Password must not be null, używając parametru -Djavax.net.ssl.trustStorePassword=password lub -Djavax.net.ssl.trustStorePassword=password

Główne Źródło:

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

 3
Author: alessiop86,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-13 15:27:31