【そうごにんしょう】

相互認証 とは?

最終更新:
💡 「あなた誰?」「そっちこそ誰?」から始まる信頼関係

通信する双方が、相手の身元を確認すること。mTLSではクライアントとサーバーの両方が証明書などで認証する。確認方法は方式によって異なり、認証の成功と、相手に操作を許可することは別。

📌 このページのポイント
mTLS:双方が相手を認証するクライアント証明書秘密鍵サーバー証明書秘密鍵証明の提示証明の提示証明書と、秘密鍵を持つ証拠を検証身元の確認と、操作の許可は別
証明書を使うmTLSの概念図。矢印は証明書と署名による証拠を届ける方向です。TLSのメッセージ順序をすべて描いた図ではありません。秘密鍵は相手へ渡しません。
ひよこ ひよこ
相互認証って何が相互なの?
ペンギン先生 ペンギン先生
通信する双方が、相手を認証するところだよ。例えばmTLSでは、クライアントがサーバーを確認し、サーバーもクライアントを確認する。片方が相手を確認するだけの方式と区別しているんだ
ひよこ ひよこ
HTTPSなら、いつも相互認証?
ペンギン先生 ペンギン先生
サーバー証明書を使うHTTPSでも、クライアント証明書による認証は必須ではないよ。mTLSは双方をTLSで認証する構成。Web画面でのパスワードによるログインは、TLSのクライアント証明書認証とは別の仕組みなんだ
ひよこ ひよこ
証明書を送るだけで本物と分かるの?
ペンギン先生 ペンギン先生
それだけではないよ。TLS 1.3の証明書認証では、証明書を検証するほか、署名を使って対応する秘密鍵を持っていることも確かめる。どの証明書を信頼するかの設定も必要だね
ひよこ ひよこ
証明書以外でもできる? 認証できたら何でも許可していい?
ペンギン先生 ペンギン先生
Kerberosにも相互認証があるよ。クライアントが相互認証を要求すると、サーバーの応答も確認する仕組みなんだ。ただし、身元の確認と操作の許可は別。認証できても、その相手にすべての操作を許すとは限らないよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「相互認証」って出てきたら「通信する両者がお互いの身元を確認し合うこと」と思えればだいたいOK!
📖 おまけ:英語の意味
「Mutual Authentication」 = 相互認証
💬 mutualは「相互の・双方の」という意味で、一方通行ではなく双方向に認証するニュアンスだよ

参考資料

← 用語集にもどる