Google Cloud의 상호 TLS 이해

상호 TLS(mTLS)는 클라이언트와 서버 간의 상호 인증을 위한 업계 표준 프로토콜입니다. mTLS 프로토콜은 클라이언트 및 서버 모두 네트워크 연결의 양쪽 끝에서 클라이언트 인증서와 연결된 비공개 키를 가졌는지 확인함으로써 자신이 누구인지 증명합니다.

클라이언트 인증서란 무엇인가요?

클라이언트 인증서는 전송 계층 보안(TLS) 인증서라고도 하며, 기기 ID를 확인하는 데 중요한 정보가 포함된 파일입니다. 인증서 정보에는 공개 키, 인증서 발급자 명세서(인증서 기관에서 발급하거나 자체 서명할 수 있는 인증서), 인증서 만료일이 포함됩니다.

Google API가 기기 ID를 확인하는 방법

TLS 프로토콜은 공개 키 인프라(PKI)라는 기술을 사용하며, 이 기술에는 한 쌍의 비대칭 키인 공개 키와 비공개 키가 사용됩니다. 비공개 키로 암호화된 모든 항목은 공개 키로만 복호화할 수 있습니다. Google Cloud API는 mTLS 핸드셰이크 중에 인증서의 공개 키를 사용하는 비공개 키로 암호화된 메시지를 복호화하여 기기의 ID를 확인하는 데 TLS 프로토콜을 사용합니다. 복호화가 성공적으로 완료되면 신뢰할 수 있는 기기에서만 사용할 수 있는 비공개 키를 소유했음이 입증됩니다.

mTLS 핸드셰이크 및 유효성 검사 프로세스를 사용 설정하려면 클라이언트가 다음을 수행해야 합니다.

  • mTLS별 API 엔드포인트를 사용하여 Google API와 mTLS 연결을 설정합니다. mTLS별 엔드포인트의 형식은 [service].mtls.googleapis.com입니다.

  • mTLS 핸드셰이크 중에 기기 인증서를 검색하고 사용합니다. 인증서 배포에 엔드포인트 확인을 사용하는 경우 지원되는 클라이언트에서 이러한 유형의 인증서를 자동으로 검색해서 사용합니다.

다음 다이어그램은 클라이언트와 Google API 서버 간의 mTLS 핸드셰이크를 보여줍니다.

클라이언트와 Google API 서버 간의 mTLS 핸드셰이크

다음 단계