문제

키 저장소와 신뢰 저장소의 차이점은 무엇입니까?

도움이 되었습니까?

해결책

Keystore에는 개인 키와 해당 공개 키가있는 인증서가 포함되어 있습니다.

TrustStore에는 귀하가 의사 소통 할 것으로 예상되는 다른 당사자 또는 다른 당사자를 식별하기 위해 신뢰하는 인증 기관의 인증서가 포함되어 있습니다.

다른 팁

  1. 키 스토어에는 개인 키가 포함되어 있습니다. 서버이거나 서버에 클라이언트 인증이 필요한 경우에만 필요합니다.

  2. TrustStore에는 신뢰할 CA 인증서가 포함되어 있습니다. 서버의 인증서가 인정 된 CA에 의해 서명 된 경우, JRE와 함께 배송하는 기본 트러스트 스토어는 이미 신뢰할 수있는 CAS를 신뢰하기 때문에 이미 신뢰할 수 있으므로 자신의 것을 구축 할 필요가 없거나 하나에 어떤 것을 추가 할 필요가 없습니다. JRE에서.

원천

SSL에서 목적을 악수합니다 Truststore는 자격 증명을 확인하는 것입니다 그리고 목적 Keystore는 자격 증명을 제공하는 것입니다.

키 스토어

Java의 Keystore는 공개 키에 해당하는 개인 키 및 인증서를 저장하며 SSL Server 또는 SSL이 클라이언트 인증이 필요한 경우 요구합니다.

트러스트 스토어

TrustStore는 제 3 자, Java 신청서가 CA (Verisign, Thawte, Geotrust 또는 Godaddy와 같은 인증서)가 서명 한 인증서를 제 3 자로부터 제 3자를 식별하는 데 사용할 수있는 인증서를 저장합니다.

TrustManager

TrustManager는 원격 연결을 신뢰할 것인지 아닌지를 결정합니다. 즉, 원격 당사자가 청구 한 사람인지, KeyManager는 SSL 핸드 셰이크 중에 인증을 위해 원격 호스트로 전송되어야하는 인증 자격 증명을 결정합니다.

SSL 서버 인 경우 키 교환 알고리즘 중에 개인 키를 사용하고 클라이언트에 공개 키에 해당하는 인증서를 보내면이 인증서는 Keystore에서 획득됩니다. SSL 클라이언트 측에서 Java로 작성된 경우 TrustStore에 저장된 인증서를 사용하여 서버의 ID를 확인합니다. SSL 인증서는 가장 일반적으로 제공됩니다 .c 키 관리 유틸리티를 사용하여 Keystore 또는 Truststore에 추가되는 파일 예를 들어 KeyTool.

원천: http://javarevisited.blogspot.ch

표준 JSSE 문서의 일부로 SUN의 쓰기에 관심이있을 수도 있습니다.

http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/jsserefguide.html#stores

일반적으로 Trust Store는 X.509 인증과 같은 검증 목적으로 공개 키만 저장하는 데 사용됩니다. 관리 가능성을 위해 관리자 또는 개발자가 단순히 두 개를 단일 상점으로 혼합하는 것이 일반적입니다.

Java에서 키 저장소와 신뢰 저장소의 차이점은 무엇입니까?

다음은 Java 문서의 설명입니다. JSSE(Java Secure Socket Extension) 참조 가이드.다른 분들이 말씀하신 것과 별반 다르지 않은 것 같아요.그러나 공식적인 참조를 제공합니다.

키 저장소/신뢰 저장소

키 저장소는 키 자료의 데이터베이스입니다.키 자료는 인증, 데이터 무결성 등 다양한 목적으로 사용됩니다.PKCS12 및 Oracle 's JKS를 포함한 다양한 유형의 키 스터를 사용할 수 있습니다.

일반적으로 키 저장소 정보는 두 가지 범주로 그룹화될 수 있습니다.키 항목 및 신뢰할 수 있는 인증서 항목.주요 항목은 엔티티의 신원과 개인 키로 구성되며 다양한 암호화 목적으로 사용할 수 있습니다.대조적으로, 신뢰할 수있는 인증서 항목에는 엔티티의 신원 외에 공개 키 만 포함되어 있습니다.따라서 javax.net.ssl.keymanager와 같은 개인 키가 필요한 경우 신뢰할 수있는 인증서 항목을 사용할 수 없습니다.JKS의 JDK 구현에서 키 스토어에는 주요 항목과 신뢰할 수있는 인증서 항목이 모두 포함될 수 있습니다.

신뢰 저장소는 무엇을 신뢰할지 결정할 때 사용되는 키 저장소입니다.이미 신뢰하는 엔티티로부터 데이터를 수신하고 엔티티가 주장하는 것으로 확인할 수 있다면 데이터가 실제로 해당 엔티티에서 온 것으로 가정 할 수 있습니다.

사용자가 해당 엔터티를 신뢰하는 경우에만 항목을 신뢰 저장소에 추가해야 합니다.키 쌍을 생성하거나 인증서를 가져 와서 사용자는 해당 항목을 신뢰합니다.TrustStore의 모든 항목은 신뢰할 수있는 항목으로 간주됩니다.

두 개의 서로 다른 키 저장소 파일을 갖는 것이 유용할 수 있습니다.하나는 주요 항목 만 포함하고 다른 하나는 CA 인증서를 포함하여 신뢰할 수있는 인증서 항목을 포함합니다.전자에는 개인 정보가 포함되어 있지만 후자는 그렇지 않습니다.단일 키 저장소 파일 대신 두 파일을 사용하면 자신의 인증서 (및 해당 개인 키)와 기타 인증서 간의 논리적 차이를 더 깨끗하게 분리 할 수 ​​있습니다.개인 키를 더 많이 보호하려면 액세스가 제한된 키 저장소에 저장하고 필요한 경우보다 공개적으로 액세스 할 수있는 키 스토어에 신뢰할 수있는 인증서를 제공하십시오.

  1. TrustStore와 Keystore의 첫 번째 주요 차이점은 TrustStore가 TrustStore가 원격 연결을 신뢰할 수 있는지 확인하기 위해 TrustStore를 사용한다는 것입니다. KeyManager에서 KeyStore는 SSL 핸드 쉐이크 중에 인증을 위해 원격 호스트로 전송되어야하는 KeyManager에서 사용됩니다.

  2. 또 다른 차이점은 KeyStore가 SSL 연결에서 서버를 실행 중이거나 서버 측에서 클라이언트 인증을 활성화 한 경우에만 필요한 개인 키를 포함한다는 것입니다. 원격 당사자 또는 SSL 연결을 신뢰하십시오.

    실제로 해당 파일을 관리하는 도구가 동일하다는 점을 감안할 때 개인 키 및 공개 키 모두 동일한 파일에 저장할 수 있습니다 (keytool). 당신은 할 수 있습니다 두 목적으로 단일 파일을 사용하지만 아마도 해서는 안됩니다.

  3. 적어도 내 Mac OSX에서 기본 키 스토어는 ${user.home}/.keystore, 및 기본 트러스트 스토어는입니다 /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts.

    재정의하려면 JVM 매개 변수를 추가해야합니다.-Djavax.net.ssl.keyStore /path/to/keyStore 또는-Djavax.net.ssl.trustStore /path/to/trustStore. 경우 Keystore 비밀번호를 설정해야 할 수도 있습니다.java.security.UnrecoverableKeyException: Password must not be null, 매개 변수를 사용합니다-Djavax.net.ssl.trustStorePassword=password 또는 -Djavax.net.ssl.trustStorePassword=password

주 원천:

http://javarevisited.blogspot.co.uk/2012/09/difference-between-truststore-vs-keystore-java-ssl.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top