私は現在、mcts試験のために読んでおり、セキュリティの章で少し苦労しています。どのようにCAS機能を使用するのが一般的ですか?どのような用途に使用されていますか?どのような種類のアプリケーションにCASネットセキュリティ機能を使用していますか?
ネイティブアプリケーションを開発する際に、このシステムが提供する機会が不足しているとは言えません。この種のセキュリティは管理対象アプリケーションにとって重要ですか?
私は現在、mcts試験のために読んでおり、セキュリティの章で少し苦労しています。どのようにCAS機能を使用するのが一般的ですか?どのような用途に使用されていますか?どのような種類のアプリケーションにCASネットセキュリティ機能を使用していますか?
ネイティブアプリケーションを開発する際に、このシステムが提供する機会が不足しているとは言えません。この種のセキュリティは管理対象アプリケーションにとって重要ですか?
CASセキュリティを理解することは、.NETアプリケーションとライブラリの開発とアーキテクチャにとって重要です。
CASセキュリティを理解するには、クライアントマシンにインストールされるライブラリを書く人が直面する問題について考えることが大切です。信頼できないコード(例えば、www.evil.comでホストされている.xbapのEvil.dllで動作するEvilMethod())によって悪用されることから、それらのライブラリを保護するにはどうしますか?
CASは私が
など、その強力な名前のように、呼び出し元のコードに、システムによって付与された権限は、ゾーンコードから実行されている、呼び出し元のコードの品質に基づいてチェックを行うことでその質問に答えます例を挙げましょう。大企業のクライアントマシンにインストールされる専用の印刷ライブラリを開発するタスクが割り当てられており、そのライブラリは、会社が所有するアセンブリ。CASこちらでお手伝いできます。基本的に、あなたが公開された方法で発信者の強い名を確認することができるはずです。
void Print(string toPrint)
{
new System.Security.Permissions.StrongNameIdentityPermission(blob, "My Company Inc.", new Version("1.0.0.0")).Demand();
// print code
}
を今、あなたはテストページを印刷する方法を公開しなければならないと言います。あなたの会社のアセンブリだけでなく、誰でもこのメソッドを呼び出すことができます。何をすべきか?
あなたが許可するので、スタックウォーク(需要が)あなたのフレームにカットされており、あなたの呼び出し元をチェックしません)(アサートすることができます)どのように我々は唯一のアサート(
void PrintTestPage()
{
new System.Security.Permissions.StrongNameIdentityPermission(blob, "My Company Inc.", new Version("1.0.0.0")).Assert();
Print("Test Page");
}
は参照さらす許可を安全なバージョンのAPI(Assert()は、「私の呼び出し元の確認をやめてください!私は何をしているのか知っていて、悪意のあるコードから呼び出されても安全です」というフレームのように思います)。
Thisが対象です。
あなたは間違った方法でCASを考えているかもしれないと思います。私はこのような状況に遭遇していないかもしれませんが、私の経験から、CASはアプリケーションで攻撃者からアプリケーションを保護するために使用するものではありません。 CASは、悪意のあるソフトウェアからユーザシステムを保護するために設置されています。
お使いの.NETアプリケーションは、好きなことを問わず、システム上で特定のタスクを実行するためのアクセス許可を要求する必要があります。これの例はFilePermissionです。ファイルを読み書きする前に、アプリケーションはそれを実行できるかどうかを尋ねなければなりません。もちろん、これは.Netフレームワークの多くのアクセス許可の1つの例に過ぎません。
CASによって最も影響を受けるアプリケーションは、何らかの方法でオンラインでホストされているアプリケーションであり、ローカルマシンでホストされているものよりも信頼性が低いものです。これには、click-onceアプリケーション、Internet Explorerホストオブジェクト(COM/active-xオブジェクトとよく似ています)、xbap、およびアセンブリ/ exesがネットワーク共有から読み込まれます。
私が言ったように、これは潜在的に悪質なソフトウェアからユーザシステムを保護するためです。したがって、ネイティブアプリケーションの作成中にこのシステムが提供する機会を逃したことはありません。実際、あなたが私のような人なら、あなたが後ろにいるときにこのシステムを呪います。つまり、この種のセキュリティは管理されたアプリケーションにとって必ずしも重要ではないということです。実際には、管理されていないアプリケーションがこの種のセキュリティゲートを通過しなければならない場合、ウィルス保護/セキュリティの立場から言えば、いいだろう。私はこれが、MicrosoftがVistaのために何をしようとしていたのか、それが価値あるものだと思う。
なぜ、ネイティブライブラリには類似したものはありませんか?ネイティブのDLLで、ネットライブラリで '悪用可能なコード'を見つけるほうがずっと簡単だからですか? (はるかに簡単に分解できますか?) – Vegar