21

誰か説明してくれませんか?私はインターネット上で何も見つけることができませんでした.すべてが何らかの方法でそれを行う方法について語っていますが、それが何であるかを正確に述べているものは何もありません.

また、完全に信頼されたアセンブリとは何ですか? また、それらは互いにどのように異なるのでしょうか?

私は MS 認定試験を受けていますが、これは私が理解できない唯一のトピックです。

編集:ありがとう。これで、.NET のセキュリティについて理解が深まりました。認定試験に合格することができました。

4

3 に答える 3

17

.NET は、コード アクセス セキュリティと呼ばれるセキュリティ モデルを実装しています。アンマネージ コードは、そのコードが悪意のあるソースから発生したものであっても、アプリケーションを開始したユーザーの特権と権限で実行されます。

マネージ コードは、その起源の証拠を提供する必要があります。これにはさまざまな方法があります (たとえば、コードが特定のキーで署名されている、コードが特定の URL からダウンロードされている、コードがディスク上の特定のディレクトリにある、など)。その証拠に基づいて、アセンブリはポリシーが適用されるグループに分けられます。ポリシーは、主にシステム リソースへのアクセス (DNS ルックアップの実行、ネットワーク接続の開始、「分離ストレージ」へのアクセス、ローカル ファイル システムへのアクセス (すべて、または選択したディレクトリのみ))、アクセスに関する特定のアクセス許可をコード グループに付与できます。レジストリ、ネットワーク共有へのアクセスなど)。コントロール パネルには、このようなポリシーを定義できるツールがあります。

アセンブリが制限された操作を実行しようとすると、特権チェックが行われます。アクセスが許可されると、操作が続行されます。チェックが失敗すると、例外がスローされます。通常、チェックにはスタック トラバーサルが含まれます (つまり、すべての呼び出し元がその操作に対して信頼されている必要があります) が、例外があります。

特殊なケースとして、アセンブリに「完全な信頼」を割り当てて、すべてのアクセス許可を付与することができます。「部分信頼」という言葉は聞いたことがありませんが、一部の権利はあるが完全信頼ではないアセンブリを指していると思います。

これは単なる概要であることを理解してください。コード アクセス セキュリティについては、さらに多くのことが述べられています。

于 2008-12-17T21:28:44.187 に答える
11

完全信頼アセンブリには、一連の無制限のコード アクセス セキュリティアクセス許可があり、オペレーティング システムのセキュリティのみを条件として、コードはすべての種類のリソースにアクセスし、特権操作を実行できます。たとえば、ユーザー Bob がファイル Y にアクセスできない場合、完全信頼アセンブリも Bob のユーザー空間で実行できません。

部分信頼アセンブリとは、コードが完全信頼未満で実行されることを意味します。.NET Framework には、直接使用したり、特定のセキュリティ要件を満たすようにカスタマイズしたりできる、定義済みの信頼レベルがいくつかあります。たとえば、SQLClientPermission を拒否することで、アセンブリが SQL データベースにアクセスできないようにすることができます。

アセンブリの信頼レベルは、その生成元によっても低下する可能性があります。たとえば、ネットワーク共有 (古いバージョンの .NET) からのコードは、ローカル コンピューターからのコードよりも信頼性が低く、その結果、特権操作を実行する機能が制限されます。

于 2008-12-17T21:31:58.690 に答える
1

たぶん、いくつかのコンテキストが役立ちます。

stackoverflow をブラウジングするようなことを考えてみてください。コンピューター上で何でも実行できるブラウザー自体のコード (ファイルの削除など) と、サイトの JavaScript コードがあります。JavaScript コードは、気の利いたフェード効果とその他の表示マジックを除いて、コンピュータに対して何もできません。

.net には、ローカル アプリケーションとリモート アプリケーションを区別する機能があります。ローカル コンピューターで実行され、ローカル コンピューターに対して何でも実行できるアプリケーションを作成できます。また、このアプリケーションには、インターネットから拡張 dll をダウンロードする機能があります。これらの拡張機能は、計算を実行して表示を操作できるようになります。しかし、それらの内部のコードは、ファイルを削除できるようにしたいと考えています。信頼されていないからです。

詳細は間違っていますが、これはアイデアです(私が理解している限り)。

于 2008-12-17T21:41:29.437 に答える