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

デジタル署名のないソフトに対する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追記 コモドジャパンが個人可でもっと安くコードサイニング証明書を発行してくれるようです。

米国の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が働くようになってしまいました。

ユーザエクスペリエンスのサンプル

デジタル署名の効果(のなさ?)※1を実感できるように、 いろんな形のファイルをダウンロード・実行したときどう見えるかを試せるようにしてみました。管理者権限の有無の違いを見るにはVista以降で(UACをオフにしている方はオンにしてから)お試しください。

 

2012/7/30追記:上のファイルのうち署名があるexeファイルはsmartscreenの警告がいつのまにか出なくなっています。当初は署名なしのファイルとほぼ同じような警告が出ていました。私の署名のある他のファイルのダウンロード数が増えたために、同じ署名があるこのページのファイルも警告が出なくなったのかもしれません。署名したとたんに警告が消える、というものではありませんでした。

2013/2/11追記:※1署名なしのファイルもダウンロード数が増えて警告が出なくなってしまったので、ファイルを更新しました。署名なしのファイルはまた警告が出るようになりましたが、署名ありのファイルは更新しても警告が出ないままです。「警告が出ない作者」の地位を獲得したあとはこの効果は大きいかもしれません。

2013/2/22追記:たいしたダウンロード数もないはずなのにまた警告が出なくなってしまったので、もしかしたらこのサイト全体がsmartscreenに割と安全というマークをされたのかもしれないと思い、別サイトのディレクトリをお借りしてファイルを置いてみました。 これでもすぐ警告が消えるようならサンプルは削除します。

2014/4/17追記:証明書が変わったらまた警告が出るようになりました。


2011/8/2
ホームページ