SSL 핸드셰이크의 클라이언트 인증

SSL 핸드셰이크의 클라이언트 인증

SSL 핸드셰이크 중에 클라이언트 인증이 어떻게 작동하는지 이해하려고 합니다.

  1. 서버 신뢰 저장소에 클라이언트 리프 인증서가 필요합니까? 양방향 SSL 핸드셰이크 중에 언제든지 언급됩니까? 존재하는 경우 무시됩니까?

  2. Server Hello 메시지에는 Certificate_list 메시지가 있습니다. 여기에는 클라이언트 인증서에 서명한 CA 또는 상호 CA 목록이 포함됩니다. 클라이언트는 이 목록을 확인하고 목록에 있는 CA 또는 Inter CA에서 서명한 클라이언트 인증서만 보냅니다. 이 이해가 맞나요?

  3. 클라이언트가 클라이언트 인증서를 서버에 보내면 서버는 알려진 CA(CA가 Server hello의 인증서 목록에 있음)에 의해 서명되었는지 확인하고, 그렇다면 서버는 인증서 세부 정보(cn)를 확인합니다. 인증서는 합법적입니다. 그러나 이 시점에서 서버는 클라이언트가 클라이언트 인증서에 대한 개인 키를 소유하고 있는지 여부를 확신할 수 없으므로(클라이언트가 불법적인 방법으로 클라이언트 인증서를 얻었을 수도 있음) 서버는 클라이언트로부터 Certificate_verify 메시지를 기대합니다. 메시지는 클라이언트의 개인 키로 서명되며, 서버는 클라이언트의 공개 키(서버가 클라이언트 인증서를 통해 이전 메시지에서 받은 키)를 사용하여 메시지를 해독할 수 있으므로 이제 서버는 클라이언트가 누구인지 확인할 수 있습니다. 이라고 주장합니다. 이 이해가 맞나요?

  4. Certificate_verify 메시지의 내용은 무엇입니까?

  5. 이 경우 서버는 클라이언트를 어떻게 구별합니까? 서버가 클라이언트 CN을 확인하고 이에 따라 클라이언트를 수락하거나 거부합니까? 이 서버가 없으면 모든 클라이언트가 인증서에 대한 적법한 권한이 있는 경우 인증서를 수락합니까?

관련 정보