前回、デジタル署名を利用したUpdatersについてお話いたしました。デジタル署名を持つ実行ファイルであればホワイトリストに登録されていない新規のファイルであっても実行が可能となり、市場出荷後のアップデートやメンテナンスが非常に便利になります。
ただ、デジタル署名(コードサイニング電子証明書サービス)は無償では無い為、OEM様が既にデジタル署名を所持していない場合は、評価段階から署名取得の為に費用が発生してしまいます。
その回避方法として、やはりMicrosoft社のSDKを利用して自己認証局を立て、自己署名の発行を行う事が可能です。
(正式な証明機関で認証されたものでは無い為に、外部に公開する事は推奨されません。)
Microsoft社のWebよりSDKのダウンロードをします。なお、Microsoft Windows SDK for Windows 7 では .NET Framework 4.0も必要になるため、合わせてダウンロードとインストールを行っておきます。
インストールを実際に行うコンポーネントは下記画面のハイライト部分の「.NET Development」の中の「Tools」だけあれば十分です。もちろんデフォルトのコンポーネントを一通りインストールしても構いません。
インストール後、「C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin」のフォルダに下記ファイル類が存在する事をご確認ください。
これらのファイルは単独で動作可能なので、別のフォルダにコピーしても構いません。
というファイルが作成されます。
作成されたX.509形式のセキュリティ証明書ファイルをラッピングし、ソフトウェア発行元証明ファイル(.spc)に変換します。
> cert2spc UniduxCA.cer UniduxCA.spc
とコマンドを実行します。
コマンド詳細はcert2spcの使用のページをご参照ください。
というファイルが作成されます。
秘密鍵ファイル(.pvk)とソフトウェア発行元証明ファイル(.spc)を電子証明書キーペアファイル(.pfx)にパッケージングします。
> pvk2pfx -pvk UniduxCA.pvk -spc UniduxCA.spc -po UniduxCA -pfx UniduxCA.pfx -f
とコマンドを実行します。
: -pvk、pvkファイル名の指定を行います。
: -spc、spcファイル名の指定を行います。
: -po、パスワードの指定を行います。
: -pfx、出力するpfxファイル名の指定を行います。
: -f、同名ファイルが存在する場合の上書き指定スイッチ。
コマンド詳細はPvk2Pfxのページをご参照ください。
というファイルが作成されます。
自己認証局とするPCに対して、作成された電子証明書キーペアファイル(.pfx)のインポートを行います。
.pfxファイルをダブルクリックすると、「証明書のインポートウイザード」が起動します。
先ほどパッケージングした.pfxファイルを指定します。
自己認証局CAとなったPCに対して、自己署名証明のセキュリティ証明書ファイル(.cer)を登録します。
.cerファイルをダブルクリックし、「証明書のインストール」ボタンを押すと「証明書のインポートウイザード」が起動します。
今回、自己署名による証明書のために下記のようなセキュリティ警告が表示されます。
あとは前回行ったのと同様にsigntool.exeを使用して、実行ファイルに対してデジタル署名の書き込みを行います。
> signtool.exe sign -f <pfx証明書ファイル名> -p <pfx証明書パスワード> <署名するファイル>
例えば、「infinst_autol_9.2.0.1030.exe」というファイルに対して書き込みを行う場合、
> signtool.exe sign -f UniduxCA.pfx -p UniduxCA infinst_autol_9.2.0.1030.exe
というコマンドを実行します。
注:「infinst_autol_9.2.0.1030.exe」はインテル社の提供するファイルになり、通常、第三者がデジタル署名をする事は許可されません。今回はあくまで例として表記しております。
McAfee Embedded Controlではデジタル署名を実行ファイルに付与する事により、セキュリティを担保した状態でアップデートを行う事が可能で、システム運用が非常に簡易に行える利点があります。
しかし、公的なデジタル署名は有償対応となる為、採用が確定していない評価段階ではロードブロックとなってしまいます。
Microsoft社のSDKに含まれるテスト用証明書作成ツールを利用し、自己認証局、自己署名証明を作成する事で、無償で評価を推進する事が可能になります。