2017-01-09 12 views
0

내부 보안 요구 사항을 충족하기 위해 인증서를 사용하여 서버와 상호 인증하는 Java 클라이언트를 작성했습니다. 그러나 인증서를 SSLContext로 가져 오려면 키 저장소와 trustore에 암호를 제공해야합니다. 비밀번호는 코드에 평이한 텍스트로 표시되어 있으며 이는 Google의 요구 사항에 위배됩니다.코드 기반에서 keystore/trustore 일반 텍스트 암호를 피하는 방법은 무엇입니까?

코드에서 일반 텍스트로 keystore/truststore 암호를 사용하지 않으려면 어떻게해야합니까? 스택 오버플로에 대한 답변을 시도했는데 암호없이 저장소를 만들거나 SSLContext에 직접 인증서를로드하는 것이 좋지만 이러한 방법을 시도하면 인증이 실패합니다.

+1

트러스트 스토어에 암호를 제공 할 필요가 없습니다. 어느 시점에서 당신은 운영자를 신뢰해야합니다. 이에 대한 일반적인 해결책은 액세스 카드를 통한 물리적 보안입니다. – EJP

답변

1

일반적으로 인증서와 트러스트 스토어에는 비밀로 유지해야하는 정보가 없습니다. 비밀로 유지해야 할 한 가지는 키 스토어에 포함 된 개인 키입니다. 키 스토어를 암호로 보호하는 것은 안전에 열쇠를 두는 것, 두 번째 키로 안전을 잠그는 것과 같습니다. 그래서 실제로 도움이되지 않습니다.

어쨌든 VCS에 체크인하지 않은 (리소스) 파일에서 비밀번호를 읽고 배치에 남겨두면 해당 파일을 제공 할 수 있습니다 (적절한 사용자에 대한 읽기 액세스를 제한하여 보호 할 수 있음). 운영 체제 수준에서).

물론 비밀번호를 사용하지 않고도 키 저장소로 직접 할 수 있습니다.

요구 사항이 높으면 Trusted Platform Module을 확인하십시오.

시스템 속성으로 키 및 트러스트 스토어를 구성 할 수 있으므로 소스 코드에서 키와 트러스트 스토어를 전혀 처리 할 수 ​​없습니다.