1. ホーム
  2. java

[解決済み] サブジェクト、ユーザー、プリンシパルの意味と違いについて教えてください。

2022-04-23 19:39:45

質問

セキュリティフレームワークの文脈では、いくつかの用語がよく登場します。 主題 , ユーザー プリンシパル の、明確な定義とその違いを見つけることができませんでした。

では、これらの用語は一体何を意味するのか、また、なぜこれらの区別の 主題 は必要ですか?

解決方法は?

これらは、属、種、個体が階層化されているように、階層化されているのです。

  • 主題 - セキュリティコンテキストでは 件名 へのアクセスを要求するあらゆるエンティティです。 オブジェクト . これらは、アクセスを要求するものと、要求がなされたものを示す一般的な用語である。 あなたがアプリケーションにログオンするとき、あなたは主体であり、アプリケーションは客体である。 誰かがあなたの家のドアをノックしたとき、訪問者はアクセスを要求する主体であり、あなたの家はアクセスを要求される客体である。
  • プリンシパル - のサブセットです。 サブジェクト アカウント、ロール、その他の一意な識別子で表される。 実装の詳細なレベルになると、プリンシパルはアクセス制御リストで使用する一意のキーとなります。 これらは人間のユーザー、オートメーション、アプリケーション、接続などを表すことができます。
  • ユーザー - のサブセットです。 プリンシパル 通常、人間のオペレーターを指す。 ユーザー」や「ユーザーID」という言葉が「アカウント」と混同されているため、この区別は時間の経過とともに曖昧になってきています。 しかし、以下のような広範な分類のものを区別する必要がある場合、その区別は困難です。 プリンシパル と、非決定的な方法でトランザクションを駆動するインタラクティブなオペレータであるこれらのサブセット、"user"が正しい言葉です。

主語/目的語は、文法で使われる用語と同じものを継承しています。 文中では主語は行為者、目的語は行為されたものである。 この意味で、コンピュータが発明される以前から使われている。 セキュリティの文脈では、主語は要求を出すことができるものすべてである。 前述したように、これはITセキュリティに限定する必要はないので、非常に広い分類となる。 興味深いのは、主語が目的語を意味することである。 目的語がなければ、主語は存在しない。

プリンシパルとは、サブジェクトが解決するものです。 クレジットカードを提示するとき、あなたは主体であり、口座番号が主体である。 他の文脈では、あなたのユーザーIDや国が発行したIDが主語となります。 しかし、プリンシパルは人ではない多くの種類の主語と関連付けることができる。 アプリケーションがシステムレベルの機能を要求するとき、主体は署名された実行 コードモジュールの署名者かもしれないが、その場合でも、要求を実行するユー ザーが主体であることに変わりはない。

ユーザーとは、通常、対話的な操作者を指すという点で、主語や主体よりも具体的です。 そのため、グラフィカル・プリンシパル・インターフェイスではなく、グラフィカル・ユーザー・インターフェイスがあるのです。 ユーザは 対象 に解決するものである。 プリンシパル . 1人のユーザーがいくつのプリンシパルに解決してもかまいませんが、どのプリンシパルも1人のユーザーに解決することが期待されます(IDを共有しないという要件を人々が守ると仮定しています)。 上の例では、実行可能なコードモジュールの署名者は、間違いなく ない ユーザーでありながら は有効なプリンシパルです。 モジュールをロードさせようとしている対話型オペレーターは、ユーザーです。

コメントにもあるように、権威ある情報源でさえも、これらの用語に同意していません。 私は、この回答を準備する間、NIST、SANS、IEEE、MITRE、およびセキュリティ試験ガイドなどのいくつかの「準」権威のある情報源を検索しました。少なくとも準公式な情報源で、この3つの用語をすべて網羅しているものはなく、その使い方も大きく異なっていました。 以下は、この3つの用語がどのように使われているかについての私の考えです。 なければならない しかし、実務的には、夜中にマニュアルを読み返すと、ベンダーやライターが言うとおりに定義されていることが多いものです。 しかし、ここでの回答が、これらの用語を使用するセキュリティ文書を解析するための十分なヒントになることを願っています。