mTLSとは
クライアントとサーバーがお互いに証明書を提示して認証し合う仕組み。
従来の問題
- 内部ネットワークへの侵入: 一度侵入されると横移動が容易
- APIキー漏洩: 静的な認証情報の管理が困難
- なりすまし攻撃: 悪意のあるクライアントの検出が困難
通常のTLS(一方向認証)
Client → [証明書要求] → Server
Client ← [サーバー証明書] ← Server
Client → [暗号化通信開始] → Server
mTLS(mutual TLS、相互TLS認証)
通常のTLSでは、サーバーに対する認証のためサーバー証明書を使用する。
mTLSではクライアント、サーバー相互の認証が必要となるため、サーバー証明書に加えてクライアント証明書が必要
流れ:
- クライアントがサーバーに接続
- サーバーが証明書を提示(通常のTLSと同じ)
- クライアントも証明書を提示(mTLS特有)
- 双方が相手の身元を確認
- 暗号化通信開始
Client ↔ [相互証明書交換] ↔ Server
Client ↔ [双方向認証] ↔ Server
Client ↔ [暗号化通信] ↔ Server
参考: 相互TLS認証(mTLS)とは?