連載
|
![]() |
|
|
|
■セキュリティの設定方法1 ― デジタル証明書による署名方法
まずClickOnceを証明書で署名するには、「コードサイニング証明書(Authenticode対応Digital ID)」が必要となる。Visual Studio 2005(以降、VS 2005)のIDEでClickOnceの発行を行うと、ソリューション・エクスプローラに「<アセンブリ名>_ TemporaryKey.pfx」(例:「WindowsApplication1_TemporaryKey.pfx」)というファイルが追加されるが、このファイルがそれである。
ClickOnceで使用可能な証明書は、すべて「.pfxファイル(Personal Information Exchange形式:PKCS#12)」の必要がある。入手もしくは作成した証明書ファイルが、例えば「秘密鍵ファイル(.pvkファイル:PriVate Key Certificate)と公開鍵ファイル(.spcファイル:Software Publisher's Certificate)」という形式(PKCS#7)の場合は、この.pfxファイルに変換する必要がある。
|
【コラム】.pvkファイル(PKCS#7)から.pfxファイル(PKCS#12)への変換方法
この変換方法はいくつかあるが、ここではその一例としてマイクロソフトが提供している「PVK Digital Certificate Files Importer」を使った変換を紹介しよう。
PVKIMPRT -PFX <任意のファイル名>.spc <任意のファイル名>.pvk まずパスワードを聞かれるので、証明書ファイルを作成/入手したときに設定したパスワードを入力する。次に[証明書のエクスポート ウィザード]が起動するので、指示に従ってウィザードを進める。 「秘密キーをエクスポートするか?」の質問には「はい」を、エクスポートするファイル形式は「Personal Information Exchange - PKCS #12 (PFX)」を選択する(その選択肢の下にあるチェックボックスは[強力な保護を有効にする]のみにチェックを入れる)。最初に入力したものと同じ「秘密キーのパスワード」を入力し、最後にエクスポートするファイル名(拡張子は「.pfx」)を設定すれば完了だ。 ちなみに公開鍵ファイルが.spcではなく、.cerファイル(X.509証明書)であった場合も、そのまま.spcファイルの代わりに.cerファイルをPVKIMPRTコマンドに指定すればよい。 |
ちなみに証明書を入手する方法は、VS 2005が自動作成するものに以外に、主に次の3つがある(これらの作成方法や購入方方法については割愛する)。
- makecert.exeやVisual Studio 2005を使って手動で作成
- VeriSignなどの第三者機関から購入
- Windows Certificate Serverを使って作成
2はインターネット向きで、3はイントラネット向きである。3の場合、作成した証明書をActive Directoryのグループ・ポリシーを使って各ユーザーのコンピュータに登録できる。これにより、自社のアプリケーションのみを直接起動(=自動的な権限の昇格)できるようになり、エンド・ユーザーの手間を軽減でき、コスト低減につながるだろう。
●VS 2005のIDEにおける証明書の設定
肝心の証明書の設定方法だが、次の画面のように、VS 2005のIDEから簡単に設定できる。
■セキュリティの設定方法2 ― ClickOnceの権限要求の設定方法
ClickOnceの権限要求が設定できるのは、部分信頼モードの場合のみである。
●VS 2005のIDEにおけるセキュリティ・モードの設定
完全信頼と部分信頼の選択も、VS 2005のIDE上で簡単に行える。具体的には次の画面を参考にしてほしい。
![]() |
||||||||||||
| VS 2005のIDEにおけるセキュリティ・モードの設定 | ||||||||||||
| セキュリティ・モード(完全信頼/部分信頼)を設定しているところ。 | ||||||||||||
|
ここで、完全信頼にすべきか、部分信頼にすべきか、という疑問を持つだろう。理想をいえば、部分信頼にして細かくアクセス許可を制御する方が、セキュリティ管理を行うという観点では好ましいかもしれない。しかし実際には、例えばアプリケーションの機能拡張が数多く行われる場合、その拡張のたびにアクセス許可の設定を行わなければならず、部分信頼の選択は手間が多く現実的ではない。つまりほとんどのソフトウェア開発では、完全信頼を選択するのが妥当だといえる。部分信頼は、変化の少ない安定的(で小規模)なアプリケーションに向いているだろう。
ここでは、部分信頼で細かくアクセス許可を制御する方法についても見ておこう。
●部分信頼で細かくアクセス許可を制御する方法
部分信頼アプリケーションは、.NET FrameworkのCASによる制限がかかっているため、悪意のあるコードは(基本的に)実行できないというメリットがある半面、そのセキュリティ制限にプログラミングまでもが制限を受けてしまうという問題がある。ClickOnceは、この問題に対処するために、ClickOnceアプリ自体が必要とするCASの要件(前述の、ClickOnceアプリの権限要求)を自分自身で持つ仕組みを採用している。
ClickOnceアプリの権限要求はVS 2005のIDE上で設定できる。具体的には次の画面を参考にしてほしい。
![]() |
||||||||||||||||||
| VS 2005のIDEにおける権限要求の設定 | ||||||||||||||||||
| 権限要求(=使用するアクセス許可)の設定を行っているところ。前述の「VS 2005のIDEにおけるセキュリティ・モードの設定」の画面と同じように、プロジェクト・プロパティの[セキュリティ]タブを開く。その際、部分信頼を選択しておく。 | ||||||||||||||||||
|
最後に次期.NET Framework 3.5でClickOnceがどのように機能拡張される予定になっているのかを説明して本連載を締めくくるとしよう。
| INDEX | ||
| ClickOnceの真実 | ||
| 第7回 ClickOnceが持つセキュリティ機構とは? | ||
| 1.セキュリティの仕組み(1) | ||
| 2.セキュリティの仕組み(2) | ||
| 3.ClickOnceセキュリティの設定方法 | ||
| 4.ClickOnceの将来展望 | ||
| 「ClickOnceの真実」 |
ホワイトペーパー(TechTargetジャパン)
- LocalConnection APIと動的なスタイリング (2010/2/9)
Webページ上の複数のSilverlightアプリ間でメッセージ通信をする方法とは? コントロールの見た目を動的に設定する方法とは? - ASP.NET MVC 2:モデルの検証 (2010/2/8)
ASP.NET MVC 2で導入される入力検証機能を使った実装を紹介。シンプルな属性の追加によるエレガントな実装が可能となっている - ASP.NETによる3階層Webアプリ「ITブック」構築 (2010/2/5)
ちょっとした改造で、あなたのWebアプリは劇的に使いやすく、かっこよくなる。まずは元となるWebアプリを標準的手法で構築 - .NET TIPS - .NET開発のテクニックとヒント集 - (2010/2/4)
− カスタムMVCビューエンジンを利用するには?(活用編)
− フォーム全体へのドッキングでつまみを表示するには?
− リストボックスでTextBlockの文字列を折り返すには?
|
|
スキルアップ/キャリアアップ(JOB@IT)
は.NET開発者中心に生まれ変わりました
スポンサーからのお知らせ
.NET開発者中心コーナー
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |










