個人ソフト作者にとってのデジタル署名とは?

デジタル署名のないソフトに対するMSの風当たりがどんどん強くなってるような感じがします。

IE9のSmartScreenではexeファイルをダウンロードしようとすると危険だ危険だとあたかもウィルスであるかのようにあおられてしまいます。

長年無視し続けてきた私もついにデジタル署名をつけることにしました。

個人に証明書を発行してくれる会社

プログラムファイル(.exe、.dll、.ocx)やインストール用ファイル(.cab、.msi)などにデジタル署名をするには「Microsoft Authenticode」用の「コードサイニング証明書(Code Signing Certificate)」というものが必要になります。これをどこかの会社から購入することになります。

この証明書を個人に発行してくれる会社ってのがあんまりないんですね。GlobalSignくらいでしょうか。

日本のグローバルサインでは年6万円くらい。米国のGlobalSignではサイトに入ったときに表示されるキャンペーン用のコードを入力して申し込めば年99ドルです(2011年7月現在)。一桁違います。

2013/5/8追記 米GlobalSignからメールが来て2013年6月以降は個人への証明書発行はしないとのことです。更新もできません。

2014/4/17追記 米GlobalSignで取得した証明書の期限がもうすぐ切れるのでどうしようかと思っていたら、ベクターの作者向けページでグローバルサインの証明書が65%OFF(個人)のキャンペーンをやっていたので申し込みました。ときどきこういうキャンペーンをやっているようなので証明書を取りたい方はベクターに作者登録しておいて時期を待つのがいいかもしれません。

2015/1/17追記 コモドジャパンが個人可でもっと安くコードサイニング証明書を発行してくれるようです。

2017/3/24追記 グローバルサインで取った証明書の期限が切れるので、新しい証明書は割安なコモドジャパンで取得することにしました。けっこう大変でした。顛末記をこちらに置いておきます→個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた

2019/1/20追記 日本のグローバルサインも2018年12月10日以降個人へのコードサイニング証明書の発行をやめました。

米国のGlobalSignに申し込んでみました

これはもう米国しかないと思い米国に申し込みました。添付書類はパスポートまたは免許証の写し、公共料金の請求書の写し、電話料金の請求書の写し。パスポート以外は日本語表記です。「こんなのむこうの人に読めるのかな?」と疑問に思いながらも案内のままにFAXで送りました。

あとからサイトのFAQを見てみると当面は米国と英国のみ対応と書いてあります。まあ当然ですよね。断りのメールが来るのを待っていました。

すると、2日ほどして国際電話がかかってきて、この電話が本人確認手続きの最終段階といいます。簡単な個人情報の確認をしてOK。その夜(米国の営業時間)になって証明書が発行されました。この電話での会話はなんと日本語でした。

なんか当たり前のように取れてしまいました。ちょっと不思議です。

証明書の使い方

「pkcs12」形式で申し込んだ場合は、拡張子.pfxのファイルをひとつダウンロードして、それをIEかFirefoxを使ってインストールする形になります。申し込み時にpkcs12形式にするかどうかのチェックボックスがあるのでこれをチェックするのがいいかと思います。インストール方法はGlobalSignのサイトに詳しく出ています。

インストールしたPCで署名ができるようになります。署名にはWindows SDKについてくるSignTool.exeというプログラムを使います。 GlobalSign(US)のサイトにfree code signing toolというのがあってこれを使うとGUIで簡単に署名できます(SignTool.exeのあるディレクトリにPATHを通しておく必要があります)。一度このツールで署名に成功するとSignTool.exeのコマンドライン(ひどくややこしいです)が表示されますので私はこれを引き写してバッチファイルで署名できるようにして使っています。

2014/4/17追記:ご参考までに私が使っているsigntoolのコマンドラインを書いておきます。
signtool sign /a /v /t http://timestamp.globalsign.com/scripts/timestamp.dll ファイル名

デジタル署名の費用対効果?

デジタル署名ってたいした効果はないんですね。私が最大の問題だと思ったIE9 SmartScreenでの危険だ危険だはデジタル署名をしたくらいでは消えません(詳細はMSのブログ(英文))。それ以外の場面で出る警告もメッセージの表現がちょっとやわらげられる程度です。

デジタル署名は個人の場合は戸籍の名前でするしかありません。この名前のレピュテーションが損なわれてしまえば代わりはもうありません。作者にとっては相応の覚悟が必要です。

でもユーザ側にはそんなのぜんぜん伝わらないですよね。メッセージの表現がちょっとやわらいでもそれは見比べてみればやっとわかるという程度で気にもとめないでしょう。どこかの誰かの個人名が出ていたからって信用する気になんてならないでしょう。

あんまり意味ないことをしてしまったような気がします。それなりの覚悟をしてやっていることですからMSさんももうちょっと優遇してくれてもいいような気がします。でも自爆テロみたいなことをする奴がいないとも限らないから無理なのかもしれませんね。

SmartScreenの危険だ危険だを消すのは…なんのことはないexeでさえなければいいんですね。exeをzip圧縮したものをダウンロードするような形にすれば回避できます(いまのところは?)。2013/2/8追記:Windows8ではダウンロードしたzipから取り出したexeを起動するときにもsmartscreenが働くようになってしまいました。

2018/7/1追記:ダウンロードの実績を積めば(?)警告は消えるようです。警告が出ない作者になればファイルを更新しても同じ署名がついていれば警告は出ないままです。このあたりがデジタル署名のメリットということになるかと思います。

2017/7/4追記:署名付きファイルをアップロードしてから「警告が出ない作者」になるのにどのくらいの時間がかかる?

→ケースバイケースだと思いますがご参考までに私の場合こうでした。

 

続編です→個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた


2011/8/2
ホームページ