アプリケーションの署名 (デバイス)
更新 : 2007 年 11 月
移動体通信事業者や通信機器メーカーが提供する Windows モバイル デバイスの大半では、無署名のアプリケーションの実行と無署名の CAB ファイルのインストールを制限するセキュリティ設定が事前に構成されています。開発したアプリケーションを実行するには、エンド ユーザーのデバイスにインストールされている証明書を使用してアプリケーションに署名する必要があります。
デバイス アプリケーションに署名する方法
アプリケーションに署名するには、アプリケーションを構成するすべてのファイル (EXE、マネージ アセンブリ、DLL、CAB、および多言語ユーザー インターフェイス (MUI: Multilingual User Interface)) に署名する必要があります。デバイス プロジェクトでの署名のしくみを図で確認するには、「デバイスの署名プロセスのグラフィック フローチャート」を参照してください。次のトピックで、デバイス アプリケーションに署名する方法を説明します。
方法 : Visual Basic アプリケーションまたは Visual C# アプリケーションに署名する (デバイス)
方法 : Signtool.exe をビルド後のイベントとして起動する (デバイス)
メモ : バイナリを変更するビルド後の手順を実行した場合は、バイナリに再度署名する必要があります。つまり、プロジェクトのプロパティの [Authenticode 署名をする] を無効にし、代わりにビルド後の手順として署名する必要があります。この操作を実行する必要があるのは、バイナリへの署名後にバイナリを変更すると、署名が無効になるためです。したがって、バイナリに再度署名する必要があります。
日常開発を行うためのアプリケーションの署名
セキュリティ設定の制限がエンド ユーザーの設定よりも低いデバイス上で開発を行った場合、エンド ユーザーと同じセキュリティ警告またはエラーが発生しないことがあります。したがって、セキュリティ対応デバイス上でアプリケーションを開発することにより、エンド ユーザーの環境をシミュレートすることをお勧めします。これを行うには、デバイス アプリケーションを Visual Studio 開発証明書を使用して署名し、その証明書を開発デバイスまたはエミュレータにインストールします。開発フェーズ中に開発証明書を使用して署名するという処理は、エンド ユーザー環境の再現性を高めます。日常の開発作業に必要な証明書は、その証明書をインストールするためのツールと共に、Visual Studio に添付されています。
必要な証明書をデバイスにインストールするには
使用できる任意の接続機構を使用してデバイスに接続します。
VSDCerts.cab を開発用コンピュータからデバイスにコピーします。
既定では、VSDCERTS.cab は drive:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools にあります。
デバイスで、VSDCerts.cab を展開して証明書をインストールします。
リリースするためのアプリケーションの署名
SDK 証明書は、開発またはテスト用です。エンド ユーザーのデバイスには、SDK 証明書はインストールされていません。したがって、アプリケーションをリリースする準備が整ったら、ユーザーのデバイス上に存在する証明書を使用して署名する必要があります。現在、すべての OEM と移動体通信事業者は、出荷するデバイスに Mobile2Market の特権のない証明書を添付しています。大半の OEM と移動体通信事業者は、Mobile2Market の特権のある証明書も添付しています。したがって、開発したアプリケーションを、Mobile2Market の特権のある証明書が添付されていないデバイス上で信頼されたアプリケーションとして実行する必要がない限り、Mobile2Market 証明書のいずれかでアプリケーションに署名します。Mobile2Market プログラムの詳細については、Windows Mobile Developer Center の「Mobile2Market: Code Signing for Windows Mobile Applications」を参照してください。
Mobile2Market の特権のある証明書が添付されていないデバイス上でアプリケーションを実行する場合は、OEM または移動体通信事業者に、開発したアプリケーションへの署名を依頼する必要があります。
メモ : |
---|
デバイスのセキュリティ構成で書名付きバイナリ ファイルが要求されているときに、アプリケーションのバイナリ ファイルが無署名の場合、アプリケーションは実行されません。セキュリティ構成の詳細については、「Windows Mobile デバイスのセキュリティの構成」を参照してください。 |