OCSP 클라이언트 인증서 유효성 검사

OCSP 클라이언트 인증서 유효성 검사

홈 자동화 프로젝트를 위해 저는 API(ASP.NET으로 작성되어 IIS에서 호스팅됨)를 만들고 이 API와 통신하기 위해 자체 Android 앱을 작성했습니다. 사람들이 이 API의 특정 엔드포인트에 액세스하는 것을 방지하기 위해 공개되지 않아야 하는 엔드포인트를 보호하고 싶습니다. 일부는 내 통계 대시보드에 공개로 유지됩니다.

공식 및 정부 인정 조직에서 구매한 앱용 클라이언트 PKI 인증서가 있으며 여기에는 OCSP 응답자 URL이 포함되어 있습니다. 앱이 보호된 엔드포인트에 액세스하면 이 인증서가 포함됩니다. 이제 마지막 단계는 서버가 들어오는 요청에 대해 이 인증서의 유효성을 확인하는 것이며 다음과 같은 가능한 시나리오를 생각해냈습니다.

  • 인증서가 유효합니다.
  • 인증서의 CA 계층 구조가 유효하지 않습니다. (저는 프로그래머이므로 해당 문장을 도살했다면 사과드립니다.)
  • 인증서가 만료되었습니다(OCSP 응답자가 인증서를 반환할 것으로 예상됩니다).
  • 인증서가 포함되어 있지 않습니다.

IIS가 이 문제를 해결할 수 있습니까? 클라이언트 인증서와 관련이 없는 OCSP 스테이플링만 실제로 발견했습니다. 기본적으로 API에 접근할 수 없도록 TLS-handshake를 취소해야 합니다.

HAProxy를 사용하여 네트워크의 올바른 서버로 요청을 라우팅하고 있습니다. 그렇다면 IIS가 불가능하다면 HAProxy가 이를 수행할 수 있을까요?

감사해요!

답변1

IIS는 OCSP를 사용하여 클라이언트 인증서의 유효성을 검사할 수 있습니다. 내가 아는 한 HAProxy는 그렇지 않습니다. 가장 좋은 방법은 클라이언트 인증서를 IIS 백엔드로 통과시키는 것입니다.

인증서의 해지 상태를 확인하려면 OCSP 또는 CRL(인증서 해지 목록)만 사용하고 다른 것은 사용하지 마세요.

따라서 인증서 유효성 검사는 여전히 인증서에서 트러스트 앵커까지의 체인을 확인하고, 인증서가 만료되지 않았는지 확인하고, 인증서의 키 사용이 올바른지 확인하는 것으로 구성됩니다. OCSP(또는 CRL) 사용 여부에 관계없이.

관련 정보