이 절차는 인증서 유효성 검사라고하며 꽤 표준입니다. 일부 클래스 및 구성 요소는 사용자를 위해 유효성 검사를 수행하고 다른 일부는 수동 구현 및 제어를 위해 유효성 검사를 수행합니다.
유효성 검사를 통해 합법적 인 서버 (즉, 제시된 인증서의 호스트 이름과 이름이 일치하는 서버)에 연결하는 것이 이상적입니다. 이를 위해서는 서버가 필요한 호스트 이름에 대한 유효한 CA 서명 (보안 및 유연성 부족으로 자체 서명 된 변형을 생략 함) 인증서를 취득해야합니다. 여태까지는 그런대로 잘됐다.
이제 사전 구현 된 인증서 유효성 검사를 사용하거나 직접 구현하거나 사전 구현 된 유효성 검사 절차에 자체 검사를 추가 할 수 있습니다. 자신의 유효성 검사를 구현하는 것은 작업에 너무 부담 스럽기 때문에 사용하는 클라이언트 코드가 이미 일부 유효성 검사를 수행하고 있다고 가정 해 봅시다. 연결에 사용하는 코드가 정확히 무엇인지 지정하지 않았으므로이 코드에 대해 언급 할 수 없습니다. 일부 국가에서는 에 의존 할 수 있지만 주 정부 기관은 트래픽을 과밀화합니다.이 때문에 정부는 허위로 인증 절차를 수행하면 가짜 성격의 인증서를 취득 (또는 경우에 따라 즉석에서 생성) 할 수 있습니다. .
따라서 서버와 클라이언트를 모두 제어 할 수 있고 추가 유효성 검사 (클라이언트 구성 요소 또는 클래스에서이 작업을 수행 할 수 있음)를 구현할 수있는 경우 인증서의 발급자 (또는 인증서 전체)를 비교할 수 있습니다 체인)을 유효한 발행인에게 보냅니다. 이는 덜 유연하고 PKI 규칙을 어느 정도 위반합니다. 그러나이 방법을 사용하면 위조 된 인증서가 생성되어 유효한 것으로 받아 들여지는 기회가 크게 줄어 듭니다. 어떤 인증서를 사용하고 어떤 CA를 사용했는지 (그리고 나중에 사용할지)를 알고 있으므로이 정보를 클라이언트에 저장하고 유효성 검사 중에 비교할 수 있습니다.
여기에서 "인증서 유효성 검사"에 대한 간단한 검색을 통해 인증서 유효성 검사에 대한 자세한 내용을 읽을 수 있습니다. 이는 매우 인기있는 주제입니다.
감사합니다. SO에서이 참조를 얻었다 : http://stackoverflow.com/questions/4065379/how-to-create-a-bks-bouncycastle-format-java-keystore-that-contains-a-client-c#. 이것에 대해 좀 더 실험해볼 것입니다. – Teddy