forked from Banani-Rath/docs.ja-jp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
open localization: commit translated files
- Loading branch information
1 parent
0e6e009
commit aea5e50
Showing
57 changed files
with
1,082 additions
and
13 deletions.
There are no files selected for viewing
74 changes: 74 additions & 0 deletions
74
docs/framework/app-domains/assembly-security-considerations.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
--- | ||
title: "アセンブリのセキュリティに関する考慮事項 | Microsoft Docs" | ||
ms.custom: | ||
ms.date: 03/30/2017 | ||
ms.prod: .net-framework | ||
ms.reviewer: | ||
ms.suite: | ||
ms.technology: | ||
- dotnet-bcl | ||
ms.tgt_pltfrm: | ||
ms.topic: article | ||
helpviewer_keywords: | ||
- assemblies [.NET Framework], security | ||
- signcodes | ||
- names [.NET Framework], assemblies | ||
- strong-named assemblies, security considerations | ||
- signing assemblies | ||
- assemblies [.NET Framework], signing | ||
- granting permissions, assemblies | ||
- assemblies [.NET Framework], strong-named | ||
- names [.NET Framework], strong names | ||
- permissions [.NET Framework], assemblies | ||
- security [.NET Framework], assemblies | ||
- integrity with assemblies | ||
ms.assetid: 1b5439c1-f3d5-4529-bd69-01814703d067 | ||
caps.latest.revision: 14 | ||
author: rpetrusha | ||
ms.author: ronpet | ||
manager: wpickett | ||
ms.translationtype: Machine Translation | ||
ms.sourcegitcommit: 9f5b8ebb69c9206ff90b05e748c64d29d82f7a16 | ||
ms.openlocfilehash: 43953c223feb0a2035b60e589fbfca1ef411e6b9 | ||
ms.contentlocale: ja-jp | ||
ms.lasthandoff: 06/02/2017 | ||
|
||
--- | ||
# <a name="assembly-security-considerations"></a>アセンブリのセキュリティに関する考慮事項 | ||
<a name="top"></a> アセンブリを作成する場合は、アセンブリの実行に必要となるアクセス許可セットを指定できます。 アセンブリに対して特定のアクセス許可を付与するかどうかは、証拠に基づいて決定されます。 | ||
|
||
証拠には 2 つの使い方があります。 | ||
|
||
- 入力された証拠をローダーによって収集された証拠とマージして、ポリシーの解決に使用される最終的な証拠のセットを作成します。 この形式を使用するメソッドには、**Assembly.Load**、**Assembly.LoadFrom**、**Activator.CreateInstance** があります。 | ||
|
||
- 入力された証拠を変更せずに、ポリシーの解決に使用する最終的な証拠のセットとして使用します。 この形式を使用するメソッドには、**Assembly.Load(byte[])** と **AppDomain.DefineDynamicAssembly()** があります。 | ||
|
||
アセンブリが実行されるコンピューターで設定されている[セキュリティ ポリシー](../../../docs/framework/misc/code-access-security-basics.md)により、オプションのアクセス許可を与えることもできます。 発生する可能性があるセキュリティ例外をすべて処理するコードを作成するには、次のいずれかを行います。 | ||
|
||
- コードを実行するために必要なすべてのアクセス許可に対してアクセス許可要求を挿入し、アクセス許可が与えられなかった場合に生じる読み込み時エラーをあらかじめ処理しておく。 | ||
|
||
- コードを実行するために必要なアクセス許可を取得するためのアクセス許可要求は使用せず、アクセス許可が与えられなかった場合のセキュリティ例外を処理できるように準備しておく。 | ||
|
||
> [!NOTE] | ||
> セキュリティは複雑な分野で、選択できるオプションも数多くあります。 詳細については、「[セキュリティの基本概念](../../../docs/standard/security/key-security-concepts.md)」を参照してください。 | ||
アセンブリの読み込み時に、セキュリティ ポリシーへの追加情報としてアセンブリの証拠が使用されます。 セキュリティ ポリシーは、エンタープライズとコンピューターの管理者、およびユーザー ポリシー設定によって確立され、すべてのマネージ コードが実行されるときに与えられるアクセス許可セットを決定します。 セキュリティ ポリシーは、アセンブリの発行者 (署名ツールで生成されたシグネチャがある場合)、アセンブリのダウンロード元の Web サイトおよびゾーン (Internet Explorer の用語)、またはアセンブリの厳密な名前に対して設定できます。 たとえば、コンピューター管理者は、Web サイトからダウンロードされ、所定のソフトウェア企業の署名のあるすべてのコードについて、コンピューター上のデータベースへのアクセスは許可するが、ディスクへの書き込みは許可しない、というセキュリティ ポリシーを設定できます。 | ||
|
||
## <a name="strong-named-assemblies-and-signing-tools"></a>厳密な名前付きアセンブリと署名ツール | ||
アセンブリには異なる、補完的な 2 つの方法で署名できます。厳密な名前を利用するか、[SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を利用します。 厳密な名前を使用してアセンブリに署名すると、アセンブリ マニフェストを格納しているファイルに公開キー暗号化が追加されます。 厳密な名前による署名では、名前の一意性の検証を支援し、名前の悪用を防止し、参照が解決されたときに呼び出し元に ID を提供できます。 | ||
|
||
ただし、厳密な名前そのものには信頼性がないため、信頼性という点では [SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) が重要になります。 2 つの署名ツールでは、発行者が第三者機関に対して自分の身元を証明し、証明書を取得する必要があります。 取得した証明書はファイルに埋め込まれ、管理者はその証明書を使用してコードの正当性を信頼するかどうかを判断します。 | ||
|
||
アセンブリには、厳密な名前と [SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を使用して作成されたデジタル署名の両方を与えるか、またはそのいずれか一方だけを適用できます。 2 つの署名ツールでは、署名できるファイルは一度に 1 つだけです。マルチファイル アセンブリの場合は、アセンブリ マニフェストを格納しているファイルに署名します。 厳密な名前はアセンブリ マニフェストが格納されているファイルに保存されますが、[SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を使用して作成された署名は、アセンブリ マニフェストが格納されているポータブル実行可能 (PE: Portable Executable) ファイルの予約された専用スロットに保存されます。 [SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を使用するアセンブリに対する署名は、[SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) で生成された署名に依存する信頼階層が既に存在する場合や、またはポリシーがキー部分だけを使用し、信頼階層はチェックしていない場合に、(厳密な名前と組み合わせて、または単独で) 使用できます。 | ||
|
||
> [!NOTE] | ||
> アセンブリに対して厳密な名前と署名ツールの署名の両方を使用する場合は、厳密な名前を先に割り当てる必要があります。 | ||
共通言語ランタイムは、ハッシュ検査も実行します。アセンブリ マニフェストには、アセンブリを構成するすべてのファイルのリストが格納されており、マニフェスト作成時の状態の各ファイルのハッシュも含まれています。 各ファイルが読み込まれたときに、その内容がハッシュされ、マニフェストに格納されているハッシュ値と比較されます。 2 つのハッシュが一致しない場合、アセンブリは読み込まれません。 | ||
|
||
厳密な名前と [SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を使用する署名によって整合性が保証されるため、これら 2 種類のアセンブリ証拠に基づいてコード アクセス セキュリティ ポリシーを設定できます。 厳密な名前と [SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を使用する署名では、デジタル署名と証明書によって整合性が保証されます。 以上で述べた技術 (ハッシュ検査、厳密な名前、[SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) を使用する署名) をすべて組み合わせて使用することで、アセンブリがどのような方法によっても変更されていないことが保証されます。 | ||
|
||
## <a name="see-also"></a>関連項目 | ||
[厳密な名前付きアセンブリ](../../../docs/framework/app-domains/strong-named-assemblies.md) | ||
[共通言語ランタイムのアセンブリ](../../../docs/framework/app-domains/assemblies-in-the-common-language-runtime.md) | ||
[SignTool.exe (署名ツール)](../../../docs/framework/tools/signtool-exe.md) |
99 changes: 99 additions & 0 deletions
99
docs/framework/app-domains/create-and-use-strong-named-assemblies.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
--- | ||
title: "厳密な名前付きアセンブリの作成と使用 | Microsoft Docs" | ||
ms.custom: | ||
ms.date: 03/30/2017 | ||
ms.prod: .net-framework | ||
ms.reviewer: | ||
ms.suite: | ||
ms.technology: | ||
- dotnet-bcl | ||
ms.tgt_pltfrm: | ||
ms.topic: article | ||
helpviewer_keywords: | ||
- strong-name bypass feature | ||
- strong-named assemblies, about strong-named assemblies | ||
- strong-named assemblies | ||
- signing assemblies | ||
- assemblies [.NET Framework], signing | ||
- strong-named assemblies, scenarios | ||
- assemblies [.NET Framework], strong-named | ||
- strong-named assemblies, loading into trusted application domains | ||
- assembly binding, strong-named | ||
ms.assetid: ffbf6d9e-4a88-4a8a-9645-4ce0ee1ee5f9 | ||
caps.latest.revision: 17 | ||
author: rpetrusha | ||
ms.author: ronpet | ||
manager: wpickett | ||
ms.translationtype: Machine Translation | ||
ms.sourcegitcommit: 9f5b8ebb69c9206ff90b05e748c64d29d82f7a16 | ||
ms.openlocfilehash: 7c694fc26d65fee277c7a6873494c8d1900408b2 | ||
ms.contentlocale: ja-jp | ||
ms.lasthandoff: 06/02/2017 | ||
|
||
--- | ||
# <a name="creating-and-using-strong-named-assemblies"></a>厳密な名前付きアセンブリの作成と使用 | ||
<a name="top"></a> 厳密な名前は、単純テキスト名、バージョン番号、カルチャ情報 (設定されている場合) から成るアセンブリの識別子と、公開キーおよびデジタル署名で構成されます。 このデジタル署名は、対応する秘密キーを使用してアセンブリ ファイルから生成されます。 (アセンブリ ファイルにはアセンブリ マニフェストが格納されており、そこに、アセンブリを構成するすべてのファイルの名前とハッシュが含まれます。) | ||
|
||
厳密な名前のアセンブリは、他の厳密な名前のアセンブリでのタイプだけを使用できます。 それ以外の場合は、厳密な名前のアセンブリのセキュリティが損なわれます。 | ||
|
||
この概要は、次のセクションで構成されています。 | ||
|
||
- [厳密な名前のシナリオ](#strong_name_scenario) | ||
|
||
- [信頼されたアセンブリの署名検証のバイパス](#bypassing_signature_verification) | ||
|
||
- [関連トピック](#related_topics) | ||
|
||
<a name="strong_name_scenario"></a> | ||
## <a name="strong-name-scenario"></a>厳密な名前のシナリオ | ||
次のシナリオは、厳密な名前のアセンブリに署名した後にそれをその名前で参照するプロセスの概要を示しています。 | ||
|
||
1. アセンブリ A は、次のいずれかの方法を使用して厳密な名前で作成されます。 | ||
|
||
- [!INCLUDE[vsprvslong](../../../includes/vsprvslong-md.md)] など、厳密な名前の作成をサポートする開発環境を使用する。 | ||
|
||
- [厳密名ツール (Sn.exe)](../../../docs/framework/tools/sn-exe-strong-name-tool.md) を使用して暗号化キー ペアを作成し、コマンド ライン コンパイラまたは[アセンブリ リンカー (Al.exe)](../../../docs/framework/tools/al-exe-assembly-linker.md) のいずれかを使用してそのキー ペアをアセンブリに割り当てる。 Windows ソフトウェア開発キット (SDK) には、Sn.exe と Al.exe の両方が用意されています。 | ||
|
||
2. 開発環境またはツールは、アセンブリのマニフェストを含むファイルのハッシュに、開発者の秘密キーで署名します。 このデジタル署名は、アセンブリ A のマニフェストを含むポータブル実行可能 (PE) ファイルに格納されます。 | ||
|
||
3. アセンブリ B はアセンブリ A のコンシューマーです。アセンブリ B のマニフェストの参照セクションには、アセンブリ A の公開キーを表すトークンが含まれています。 トークンは完全な公開キーの一部であり、スペースを節約するために、キー自体ではなくこれが使用されます。 | ||
|
||
4. 共通言語ランタイムは、アセンブリがグローバル アセンブリ キャッシュに入れられる際に、厳密な名前の署名を確認します。 実行時に厳密な名前でバインドするとき、共通言語ランタイムは、アセンブリ B のマニフェストに格納されているキーと、アセンブリ A の厳密な名前を生成するために使用されたキーを比較します。.NET Framework のセキュリティ チェックに合格してバインドが成功すると、アセンブリ B は、アセンブリ A のビットが改ざんされていないことと、これらのビットが実際にアセンブリ A の開発者からのものであることが保証されます。 | ||
|
||
> [!NOTE] | ||
> このシナリオは、信頼の問題を扱っていません。 厳密な名前に加えて、完全な Microsoft Authenticode 署名をアセンブリに持たせることができます。 Authenticode 署名には、信頼を確立するための証明書が含まれます。 厳密な名前を使用すると、コードにこのように署名する必要がないということに注意してください。 実際に、厳密な名前の署名の生成に使用されるキーは、Authenticode 署名の生成に使用されるキーと同じである必要はありません。 | ||
[ページのトップへ](#top) | ||
|
||
<a name="bypassing_signature_verification"></a> | ||
## <a name="bypassing-signature-verification-of-trusted-assemblies"></a>信頼されたアセンブリの署名検証のバイパス | ||
[!INCLUDE[net_v35SP1_long](../../../includes/net-v35sp1-long-md.md)] 以降、たとえば `MyComputer` ゾーンの既定のアプリケーション ドメインなど、完全に信頼されたアプリケーション ドメインにアセンブリが読み込まれるときに、厳密な名前の署名は検証されなくなりました。 これは厳密な名前のバイパス機能と呼ばれます。 完全に信頼された環境では、<xref:System.Security.Permissions.StrongNameIdentityPermission> に対する完全に信頼された署名済みアセンブリの要求は、その署名に関係なく、常に成功します。 このような場合、厳密な名前のバイパス機能は、完全に信頼されたアセンブリの厳密名署名検証という不要なオーバーヘッドを回避するので、アセンブリを高速で読み込むことができます。 | ||
|
||
バイ パス機能は、厳密な名前で署名されていて、次の特性を持つアセンブリに適用されます。 | ||
|
||
- <xref:System.Security.Policy.StrongName> 証拠なしで完全に信頼されている (たとえば、`MyComputer` ゾーン証拠を持っている)。 | ||
|
||
- 完全に信頼された <xref:System.AppDomain> に読み込まれる。 | ||
|
||
- その <xref:System.AppDomain> の <xref:System.AppDomainSetup.ApplicationBase%2A> プロパティに基づいた場所から読み込まれる。 | ||
|
||
- 遅延署名されていない。 | ||
|
||
この機能は、個々のアプリケーションに対して、またはコンピューターに対して無効にすることができます。 「[方法: 厳密な名前のバイパス機能を無効にする](../../../docs/framework/app-domains/how-to-disable-the-strong-name-bypass-feature.md)」を参照してください。 | ||
|
||
[ページのトップへ](#top) | ||
|
||
<a name="related_topics"></a> | ||
## <a name="related-topics"></a>関連トピック | ||
|
||
|タイトル|説明| | ||
|-----------|-----------------| | ||
|[方法: 公開キーと秘密キーのキー ペアを作成する](../../../docs/framework/app-domains/how-to-create-a-public-private-key-pair.md)|署名とアセンブリの暗号化キー ペアを作成する方法について説明します。| | ||
|[方法: 厳密な名前でアセンブリに署名する](../../../docs/framework/app-domains/how-to-sign-an-assembly-with-a-strong-name.md)|厳密な名前のアセンブリを作成する方法について説明します。| | ||
|[拡張された厳密な名前付け](../../../docs/framework/app-domains/enhanced-strong-naming.md)|[!INCLUDE[net_v45](../../../includes/net-v45-md.md)] での厳密な名前の拡張について説明します。| | ||
|[方法 : 厳密な名前のアセンブリを参照する](../../../docs/framework/app-domains/how-to-reference-a-strong-named-assembly.md)|コンパイル時または実行時に厳密な名前のアセンブリでタイプまたはリソースを参照する方法について説明します。| | ||
|[方法: 厳密な名前のバイパス機能を無効にする](../../../docs/framework/app-domains/how-to-disable-the-strong-name-bypass-feature.md)|厳密な名前の署名の検証をバイパスする機能を無効にする方法について説明します。 すべてのまたは特定のアプリケーションに対して、この機能を無効にすることができます。| | ||
|[アセンブリの作成](../../../docs/framework/app-domains/create-assemblies.md)|単一ファイル アセンブリおよびマルチファイル アセンブリの概要を示します。| | ||
|[NIB: 方法 : アセンブリの遅延署名 (Visual Studio)](http://msdn.microsoft.com/en-us/cab63b7a-591e-4674-b236-d77cd29a79ea)|アセンブリを作成した後に厳密な名前でアセンブリに署名する方法について説明します。| | ||
|[Sn.exe (厳密名ツール)](../../../docs/framework/tools/sn-exe-strong-name-tool.md)|厳密な名前のアセンブリの作成に役立つ、.NET Framework に付属のツールについて説明します。 このツールには、キーの管理、署名の生成、署名の検査に関する各オプションが用意されています。| | ||
|[Al.exe (アセンブリ リンカー)](../../../docs/framework/tools/al-exe-assembly-linker.md)|モジュールまたはリソース ファイルからアセンブリ マニフェストを含むファイルを生成する、.NET Framework に付属のツールについて説明します。| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.