おれさまラボの実験ノート

実際に手を動かして理解を深めるブログ。

Zero Trust Networks (3/10)

Chapter 3 Network Agent

みなさんこんにちは、こんばんは、おはようございます。

前回に引き続き、教科書はこちらオライリーから出版されている「ゼロトラストネットワーク ―境界防御の限界を超えるためのセキュアなシステム設計」です。 今回はゼロトラストネットワークの第三章「ネットワークエージェント」に関する内容です。 どんな内容となっているのか、一緒に学んでいきましょう!

ネットワークエージェントとは

いきなり結論から入りますが、ネットワークエージェントとは、ゼロトラストネットワークを実現するには欠かせない、認可の判断対象となるデータとされています。 このデータにはユーザー名やデバイスIDなど静的な情報から、ユーザーの信用スコアなど動的な情報までさまざまな情報が含まれることになります。

ゼロトラストモデルはまだ新しい概念であり、どのようなデータが含まれるかは標準化されていませんが、以下に挙げるような情報が含まれることとなるそうです。

大まかなデータ ユーザー名
バイスのメーカー
細かなデータ シリアル番号
居住地
発行地
その他、エージェントのデータフィールドとなりうるもの エージェントの信用スコア
ユーザーの信用スコア
ユーザーのロールまたはグループ
ユーザーの居住地
ユーザーの認証方式
バイスの信用スコア
バイスのメーカー
TPM(Trusted Platform Module)のメーカーとバージョン
バイスの現在の位置
IPアドレス

第四章で詳しい内容が出てきますが、ゼロトラストネットワークにおいては、エンフォーサと呼ばれるコンポーネントがネットワークエージェントに含まれる情報を使って「このユーザーはこのデータにアクセスして良いのか」という認可を行うことになります。

ネットワークエージェントと呼ばれるデータを形成する上で重要なことは、「ユーザーの情報とデバイスの情報が結合されていること」とされ、「ユーザーとデバイスを別々に認可すること」は推奨されません。

認証と認可

注意していただきたいのは、今、話をしているのは「認可」の話であって「認証」の話ではないということです。 ここで、一度「認証(Authentication)」と「認可(Authorization)」について整理しておきます。

認証とは

認証とは、一般に、ユーザーやデバイスを識別するための行為を指します。 たとえば、ユーザー認証であればユーザーIDとパスワードを入力させたり、ワンタイムキーを使用したりすることで通信の相手が誰なのかを識別します。 また、デバイス認証であればX.509証明書などを使って通信の相手が何なのかを識別します。 これが「認証」です。

つまり、ユーザーやデバイスを識別することが目的なので、ユーザーとデバイスを別々に認証しても問題ないわけです。

話はそれますが認証には「認証の三要素」と呼ばれる大事なお約束がありますのでついでに覚えておきましょう。

1.WHAT YOU ARE(inherent factor)

名前、姿かたち、声、指紋など、その人自身を表すアイデンティティを使って相手を確認することです。

2.WHAT YOU HAVE(possession factor)

身分証やデバイスなど、その人だけが持っているものを使って相手を確認することです。

3.WHAT YOU KNOW(knowledge factor)

パスワードや秘密の質問など、その相手だけが知っている情報を使って相手を確認することです。

認可とは

一方で「認可」とは、一般に、ある特定の条件に対して特定のリソースへのアクセス権限を与えることを指します。 たとえば、ファイルサーバ上にある人事データには人事部の人だけがアクセス可能、そうでないひとはアクセスができないというような状況があてはまります。

もう少し噛み砕いた例を示すと、認可はチケット(切符)の発行によく例えられます。 電車に乗る際、我々は切符をもっていれば電車に乗れますが、もっていなければ電車に乗ることはできません。 言い換えると、切符さえ持っていれば「誰でも」電車にのることができるということです。

これが、純粋な認可を理解する上でのポイントです。 認可とは、あくまで「権限を付与する行為」だけを指すものであり、認証と組み合わせたときに初めて特定の個人と認可のひも付きが生まれることになります。

ネットワークエージェントを理解するポイント

話をゼロトラストネットワークに戻します。

ネットワークエージェントは、認証で得たユーザー情報やデバイス情報を含めて形成されるデータです。

大切なポイントは、

① ネットワークエージェントの形成以前に認証が行われること

② 認証の情報をもとにネットワークエージェントが形成されること

③ ネットワークエージェントをもとにエンフォーサが認可を行うこと

です。

また、

④ 認証はセッション単位で行われるが、認可はリクエスト単位に行われること

⑤ 認証の結果はキャッシュされても良いが、認可の結果はキャッシュされるべきではないこと

も重要なポイントです。

認証に必要な情報は、ユーザーIDであったりデバイスID(とそれに紐づくパスワードや証明書情報)であったりするものですが、これは頻繁に変化するものではありません。 そのため、何度も認証を要求することは効率的な行いとはいえません。

一方で認可に必要な情報は、先に記した通り、ユーザー名やデバイスIDなど静的な情報から、ユーザーの信用スコアなど動的な情報までさまざまな情報が含まれます。 そもため、認証に必要な情報と比べ、情報が頻繁に変化する可能性があります。 特に、ゼロトラストモデルにおいては信用スコアなどの動的な情報が含まれ、この値は常に変化し続けるため、リクエスト単位での認可が重要とされます。

まとめ

ということで、今回はゼロトラストネットワーク第三章「ネットワークエージェント」についてまとめてみました。

今回のポイントは、

1.ネットワークエージェントとは、ゼロトラストネットワークを実現するには欠かせない、認可の判断対象となるデータのこと

2.ネットワークエージェントを形成する情報には、ユーザー名やデバイスIDなど静的な情報から、ユーザーの信用スコアなど動的な情報までさまざまな情報が含まれるということ

3.ネットワークエージェントは、認可に関わるコンポーネントであり、認証には関与しない

4.ネットワークエージェントを用いた認可はセッション単位ではなく、リクエスト単位で行われることが望ましい

となります。

今回の内容は以上です。

第二章をブログに書いてからだいぶ期間が空いてしまいましたが、今後も順次学んだ内容を整理して書いていきたいと思います。

※更新が止まっていたのはPKIについて真面目に理解しようとしていたら底なし沼にハマってしまっていたからです。

ここまで見てくださり、ありがとうございました。

それではまた次回お会いしましょう。