이 질문은 무결성 검사를 생략하기 위해 암호에 null 값을 사용할 수있는 Java 클래스 java.security.KeyStore 및 해당로드 (InputStream stream, char [] password) 메소드의 특정 컨텍스트에 있습니다. .무결성 검사없이 키 스토어로드
키 스토어의 무결성을 검사하지 않고 키 스토어를로드하고 쿼리하는 것과 관련된 위험은 무엇입니까? 부인 방지를 위해 문서에 서명하는 데 사용될 사용자의 개인 키에 대해 키 저장소가 쿼리됩니다. 질의 된 인증서는 사용자가 자신과 (아마도 똑같은) 인증서를 등록 할 때 데이터베이스에 저장된 복사본에 대해 추가로 유효성이 검사됩니다.
"누군가가 읽은 파일을 키의 이름이 같지만 다른 개인 키가있는 다른 키 저장소로 바꿀 수 있습니다." 그러나 공격자가 인증서를 "스푸핑"할 수 있습니까? 내 앱은 등록하는 동안 사용자가 업로드 한 인증서로 검색된 인증서를 확인합니다. 공격자가 인증서를 스푸핑 할 수 없다면 개인 키는 동일해야합니다. 맞습니까? –
기다려 ... 사용자의 개인 키를 관리 할 예정입니까? 그래서 그들은 정말로 사적이되지 않을 것입니까? 아니면 클라이언트 애플리케이션에서이 키 스토어 로딩 작업을 수행 할 예정입니까? 후자의 경우에는 사용자가 작성시 키 스토어에 대한 비밀번호를 설정 한 다음 검색시이를 요청해야합니다. – Chochos
아니요, 개인 키를 관리하지 않습니다. 예, 클라이언트 앱에 키 저장소를로드합니다. –