mTLS
Mutual TLS
双方向TLS認証
https://www.cloudflare.com/ja-jp/learning/access-management/what-is-mutual-tls/
GPT-4.icon
通常のTLSがサーバの認証のみを行うのに対して、クライアントも証明書で認証する仕組みです。
ざっくり言うと
🔒 通常のTLS:
クライアント → サーバを認証(例:HTTPSの大半)
🔒 mTLS:
クライアント → サーバを認証
サーバ → クライアントも認証(双方向)
仕組み
1. クライアントがサーバに接続
2. サーバが証明書を提示(通常のTLSと同じ)
3. クライアントがサーバ証明書を検証
4. サーバがクライアント証明書の提示を要求(ここがmTLS)
5. クライアントが証明書を提示
6. サーバがクライアント証明書を検証
7. 双方が認証できた場合のみ通信を開始
何が嬉しいのか
table:_
通常TLS mTLS
サーバの正当性だけ確認できる サーバとクライアントの双方の正当性を確認できる
ID/パスワード・APIキーが必要 証明書が認証手段
クライアントが偽装しやすい クライアント偽装が非常に難しい
代表的なユースケース
🔐 社内マイクロサービス間通信
🔐 ゼロトラストネットワーク
🔐 高セキュリティなAPI通信
🔐 IoTデバイスの認証
メリット
非常に強力な認証(証明書が盗まれない限り、突破が困難)
ID・パスワードが不要(証明書で認証)
双方向で安全性を担保
デメリット
証明書管理が大変(発行・失効・更新の運用が複雑)
初期構築コストが高い
クライアント証明書の配布が難しい場面もある
マイクロサービスでの最近のトレンドは、mTLSを自前で頑張らずに、Service Meshに任せる