Frage

Was ist der Unterschied zwischen einem Schlüsselspeicher und einem Vertrauen?

War es hilfreich?

Lösung

Ein Schlüsselspeicher enthält private Schlüssel und die Zertifikate mit ihren öffentlichen Schlüssel entspricht.

Ein Vertrauen enthält Zertifikate von anderen Parteien, mit denen Sie kommunizieren erwarten oder von Zertifizierungsstellen, die Sie andere Parteien zu identifizieren, zu vertrauen.

Andere Tipps

  1. Ein Schlüsselspeicher enthält private Schlüssel. Sie müssen dies nur, wenn Sie ein Server, oder wenn der Server erfordert die Client-Authentifizierung.

  2. Ein Vertrauen enthält CA-Zertifikate zu vertrauen. Wenn Ihre Server- Zertifikat wird von einem anerkannten CA, das Standard-Vertrauen unterzeichnet dass Schiffe mit der JRE wird es schon vertrauen (weil es bereits Trusts vertrauenswürdige CAs), so müssen Sie Ihren eigenen nicht zu bauen, oder etwas zu dem aus der JRE hinzuzufügen.

Quelle

In einem SSL-Handshake den Zweck der trusts ist Anmeldeinformationen zu überprüfen und der Zweck der keystore ist Berechtigungsnachweis liefern .

keystore

keystore in Java speichert private Schlüssel und Zertifikate an ihre öffentlichen Schlüssel entspricht, und benötigen, wenn Sie SSL-Server oder SSL sind, erfordert die Client-Authentifizierung.

Truststor

Truststor speichern Zertifikate von Dritten, Ihre Java-Anwendung kommunizieren oder Zertifikate von CA signiert (Zertifizierungsstellen wie Verisign, Thawte, GeoTrust oder GoDaddy), die verwendet werden können, Dritten zu identifizieren.

Trustmanager

Trustmanager bestimmt, ob Fernverbindung vertraut werden soll oder nicht, das heißt, ob die Fern Partei ist, die es behauptet, und KeyManager entscheidet, welche Authentifizierungsinformationen sollten während der SSL-Handshake auf die Remote-Host zur Authentifizierung gesendet werden.

Wenn Sie ein SSL-Server sind, werden Sie private Schlüssel während der Schlüssel-Austausch-Algorithmus verwenden und Zertifikate entsprechend Ihren öffentlichen Schlüssel an den Client senden, wird dieses Zertifikat von keystore erworben. Auf SSL-Client-Seite, wenn ihr in Java geschrieben, wird es gespeichert Zertifikate in trusts verwendet Identität von Server zu überprüfen. SSL-Zertifikate sind am häufigsten kommen als cer Datei, die in keystore oder trusts hinzugefügt wird mit einem Schlüssel-Management-Dienstprogramm z.B. keytool .

Quelle: http: // javarevisited.blogspot.ch

Sie auch in dem write-up von Sun interessiert sein, im Rahmen der Standard-JSSE Dokumentation:

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

Typischerweise wird das Vertrauen Speicher verwendet nur die öffentlichen Schlüssel zu speichern, für die Zwecke der Überprüfung, wie mit X.509-Authentifizierung. Für Verwaltungszwecke ist es durchaus üblich, für Administratoren oder Entwickler einfach die beide in ein einziges Geschäft conflate.

  

In Java, was ist der Unterschied zwischen einem Schlüsselspeicher und einem Vertrauen?

Hier ist die Beschreibung der Java-Dokumentation unter Java Secure Socket Extension (JSSE) Referenzhandbuch . Ich glaube nicht, es sagt Ihnen nichts anderes, als was andere gesagt haben. Aber es hat die offizielle Referenz.

  

Schlüsselspeicher / Trusts

     

Ein Schlüsselspeicher ist eine Datenbank von Schlüsselmaterial. Schlüsselmaterial ist für eine Vielzahl von Zwecken, einschließlich der Authentifizierung und Datenintegrität verwendet.   Verschiedene Arten von Schlüsselspeicher zur Verfügung, darunter PKCS12 und   Oracle JKS.

     

Generell können Schlüsselspeicherinformationen in zwei Kategorien eingeteilt werden: Schlüsseleinträge und vertrauenswürdiges Zertifikat Einträge. Eine Tasteneingabe   besteht aus einer Identität des Unternehmens und seiner privaten Schlüssel und verwendet werden können,   für eine Vielzahl von kryptographischen Zwecken. Im Gegensatz dazu vertraute ein   Zertifikat-Eintrag enthält nur einen öffentlichen Schlüssel zusätzlich zu den   Unternehmen Identität. Somit kann ein vertrauenswürdiges Zertifikat Eintrag nicht verwendet werden   wo ein privater Schlüssel erforderlich ist, wie in einem   javax.net.ssl.KeyManager. In der JDK-Implementierung von JKS, ein Schlüsselspeicher   enthalten beide Schlüsseleinträge und vertrauenswürdiges Zertifikat Einträge.

     

Ein Vertrauen ist ein Schlüsselspeicher, der verwendet wird, wenn Entscheidungen über zu machen, was zu vertrauen. Wenn Sie Empfangen von Daten von einer Einheit, die Sie   bereits vertraut, und wenn Sie überprüfen können, dass das Unternehmen ist derjenige,   sie behauptet zu sein, dann können Sie davon ausgehen, dass die wirklich Daten kamen aus   diese Einheit.

     

Ein Eintrag sollte nur auf ein Vertrauen wenn der Benutzer vertraut hinzugefügt werden, die Einheit. Entweder durch ein Schlüsselpaar zu erzeugen oder durch einen Import   Zertifikat gibt der Benutzer Vertrauen zu diesem Eintrag. Jeder Eintrag in der   -Vertrauen ist ein vertrauenswürdiger Eintrag betrachtet.

     

Es kann sinnvoll sein, zwei Dateien verschiedene Schlüsselspeicher zu haben: eine, die nur Ihre Tasteneingaben und die andere mit Ihrer   vertrauenswürdiges Zertifikat Einträge, einschließlich CA-Zertifikate. Das Vorherige   private Informationen enthält, während letztere nicht. Die Verwendung von zwei   Dateien anstelle einer einzigen Schlüsselspeicher-Datei bietet eine sauberere Trennung   die logischen Unterscheidung zwischen Ihren eigenen Zertifikaten (und   entsprechende private Schlüssel) und Zertifikate andere. Um eine mehr   Schutz für Ihre privaten Schlüssel, speichert sie in einem Schlüsselspeicher mit   eingeschränkter Zugang und stellt die vertrauenswürdigen Zertifikate in einem mehr   öffentlich zugängliche Schlüsselspeicher, wenn nötig.

  1. Die erste und wesentlicher Unterschied zwischen trusts und keystore ist, dass trusts von Trust verwendet wird, um zu bestimmen, ob die Fernverbindung vertraut werden soll, werden Keystor von KeyManager entscheiden, welche Authentifizierungsinformationen sollten auf die Remote-Host für die Authentifizierung während der SSL gesendet werden Händedruck.

  2. Ein weiterer Unterschied besteht darin, dass keystore theoretisch nur dann erforderlich, privaten Schlüssel enthält, wenn Sie einen Server in SSL-Verbindung ausgeführt werden oder haben Sie die Client-Authentifizierung auf Server-Seite und auf der anderen Seite trusts speichert den öffentlichen Schlüssel oder Zertifikate von CA (Certificate aktiviert Behörden), die verwendet werden Remote-Partei oder SSL-Verbindung zu vertrauen.

    In der Tat können Sie speichern in der gleichen Datei sowohl private als auch öffentliche Schlüssel, da das das Werkzeug jene Datei ist das gleiche (keytool) zu verwalten, so Sie können verwenden, um eine einzelne Datei für beide Zwecke, aber Sie wahrscheinlich sollte nicht .

  3. Mindestens auf meinem Mac OSX die Standardschlüsselspeicher ist ${user.home}/.keystore und das Standardtrusts ist /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts.

    Wenn Sie sie außer Kraft setzen möchten, sollten Sie die JVM-Parameter hinzufügen -Djavax.net.ssl.keyStore /path/to/keyStore oder -Djavax.net.ssl.trustStore /path/to/trustStore. Das könnte dir auch müssen das Kennwort für Schlüsselspeicher setzen, falls der java.security.UnrecoverableKeyException: Password must not be null, unter Verwendung des Parameters -Djavax.net.ssl.trustStorePassword=password oder -Djavax.net.ssl.trustStorePassword=password

Haupt Quelle:

  

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top