相互 TLS(mTLS)は、クライアントとサーバー間の相互認証のための業界標準プロトコルです。mTLS プロトコルは、ネットワーク接続の両端で、双方がクライアント証明書に関連付けられた秘密鍵を保持していることを確認することで、クライアントとサーバーの両方が自身であると主張することを保証します。
クライアント証明書とは
Transport Layer Security(TLS)証明書とも呼ばれるクライアント証明書は、デバイスの ID を検証するための重要な情報を含むファイルです。証明書情報には、公開鍵、証明書の発行者のステートメント(証明書は認証局が発行するか、または自己署名できます)、証明書の有効期限が含まれます。
Google API がデバイス ID を検証する方法
TLS プロトコルでは、非対称鍵のペア(公開鍵と秘密鍵)に依存する公開鍵基盤(PKI)を使用します。秘密鍵で暗号化されたものはすべて、公開鍵によってのみ復号されます。Google Cloud APIs は、TLS プロトコルを使用し、mTLS handshake 時に証明書の公開鍵を使用して秘密鍵で暗号化されたメッセージを復号することで、デバイスの ID を検証します。復号が成功すると、信頼できるデバイスからのみ利用可能な秘密鍵の所有が証明されます。
mTLS handshake と検証プロセスを有効にするには、クライアントが次の操作を行う必要があります。
mTLS 固有の API エンドポイントを使用して、Google API との mTLS 接続を確立します。mTLS 固有のエンドポイントの形式は
[service].mtls.googleapis.com
です。mTLS handshake 中にデバイス証明書を検出して使用します。証明書のデプロイに Endpoint Verification を使用している場合、このタイプの証明書は自動検出され、サポートされているクライアントによって使用されます。
次の図は、クライアントと Google API サーバー間の mTLS handshake を示しています。