ゼロトラスト & mTLS
Zero Trust & mTLS
『社内ネットワークだから信頼する』という境界型防御をやめ、すべてのアクセスを毎回検証する考え方(never trust, always verify)。mTLS(相互TLS)で通信相手も証明書で認証し、最小権限を徹底する。
なぜゼロトラストが必要になったか
昔の防御は 境界型(ペリメータ型)——『城と堀』のモデルでした。
- 堀(ファイアウォール)で囲い、入口(VPN等)で1回チェックする。
- 一度中に入った人は『社内の人』として信頼され、内部では割と自由に動ける。
このモデルの弱点は明白です。一度堀を越えられたら、内部は無防備。攻撃者が1台を乗っ取って内側に入ると、そこから他のサーバへ次々と移動(横移動 / lateral movement)できてしまう。クラウド化・リモートワーク・マイクロサービスで『内と外の境界』自体が曖昧になり、このモデルは限界を迎えました。
ゼロトラストの考え方
そこで ゼロトラスト(Zero Trust)。合言葉は:
never trust, always verify(決して信頼せず、常に検証する)
『社内ネットワークから来たから信頼』をやめ、すべてのアクセスを、その都度、誰が・どのデバイスで・何をしようとしているか検証します。社内も社外も区別なく疑う。
図を描画中...
mTLS: 通信相手も証明書で確認する
ゼロトラストを支える代表技術が mTLS(mutual TLS, 相互TLS) です。
- 通常のTLS: サーバだけが証明書を提示し、クライアントは『この相手は本物のサーバだ』と確認する(片方向)。ブラウザでHTTPSを見る時はこれ。
- mTLS: それに加えてクライアントも証明書を提示し、サーバが『この相手は本物のクライアントだ』と確認する(双方向=相互)。
たとえ話: 通常TLSは『店員が身分証を見せて客が安心する』。mTLSは『店員も客も互いに身分証を見せ合う』。サービス同士が通信する内部ネットワーク(サービスメッシュ)で、『相手も確かに正規のサービスだ』を保証するのに使います。ゼロトラストの『毎回検証』を、人間だけでなくサービス間通信にも適用する手段、と捉えると分かりやすいです。
最小権限の徹底
ゼロトラストの土台が 最小権限の原則(Principle of Least Privilege)。各ユーザー・サービスに『仕事に必要な最小限の権限だけ』を与えます。
なぜ重要か: 万一そのアカウントが乗っ取られても、できることが限られていれば被害が広がらない。広い権限を持つアカウントが1つ破られると芋づる式に全部やられる——それを防ぐのが最小権限です。これは多層防御の一翼でもあります。
多層防御(Defense in Depth)との関係
ゼロトラストは『一つの防御が破られても次が守る』という多層防御の思想と相性が良い。WAF + 入力検証 + パラメータ化クエリ + 最小権限 + 監視 を重ね、どこか1枚破られても被害を限定する。ゼロトラストは『境界という1枚の盾』に頼らず、いたるところに検証を仕込む——まさに多層防御の発想です。
つまずきポイント
- 『ゼロトラストとは?』への一文: 『社内外を問わず全アクセスを毎回検証し、最小権限を徹底する(never trust, always verify)』。
- mTLSの『m』はmutual(相互)。通常TLSとの違いは『クライアントも証明書を出すか』。ここを問われる。
- ゼロトラストはタダではない: 毎回の検証で遅くなり、証明書管理など運用も重い。だから自動化(証明書の自動発行・ローテーション)とセットで導入する。
📊 図解
リクエストごとの検証フロー(シーケンス図)
「決して信頼せず常に検証」。社内からのアクセスでも毎回検証します。
図を描画中...
境界型防御との対比(フローチャート)
一度入れば信頼する境界型に対し、ゼロトラストは横移動を限定します。
図を描画中...