10 月 02

米国での買収劇から1年。揺れ動くSSLサーバー証明書業界に何が起きたのか?

非常によくまとまった記事を見つけたのでメモメモと。とりあえず、米GlobalSign社は、グローバルサイン株式会社の子会社のようですね。日本でも個人向け「コードサイニング証明書」の発行サービスが始まると良いですねぇ~。

すでにリリース済みですが、Windows Vistaの64ビット版で必須となるコードサイニング用の証明書があります。これを提供できるのは世界で3社しかありません。そのうちの1社が弊社なのです。

調査したところ、「コードサイニング証明書」を提供しているのは、VeriSignGlobalSignGeoTrust の3社でした。VeriSign と GlobalSign の日本法人もありますが、今のところ個人に「コードサイニング証明書」を発行しておりません。やっぱり、米 GlobalSign が最強ということで。EU/イギリス法人でもオッケーみたいですけどね。

9 月 26

 【2008/7/21 追記】

個人ではデジタル署名を取得できなくなってしまったようです… 個人プログラマ終了のお知らせということですね。以下の記述はそのまま残しておきますが、現時点では以下の方法ではデジタル署名を取得することはできません。

◆はじめに 

【2028】デジタル署名が要るみたい」から始まったデジタル署名取得のための調査は難航し、1年もの月日が流れたそんなある日運命の出会が・・・「デジタル署名が取れる!?

本当に長い道のりでした。デジタル署名を取得するためだけに、仕事を辞めて起業するということもできず、毎日のように(専業主婦の)妻に「社長になんない?」と有限会社の起業をお勧めしておりました。当然妻はあきれ顔(笑)そんな毎日ともようやくお別れです。デジタル署名の取得を妻は本当に喜んでくれました(笑)「もう社長になれって言われなくて済む」とのこと。

◆デジタル署名の取得方法

早速ですが、デバイスドライバを Vista x64 にインストールするため必須となる「コードサイニング証明書」を個人に発行してくれる会社は日本にはありません。

そこで、個人にも「コードサイニング証明書」を発行してくれる GlobalSign (英語)から取得した方法を紹介させていただきます。

必要なもの

  • 免許証などの身分証明書 
  • クレジットカード($229/YEAR)
  • 匿名の活動は出来なくなるので、それなりの「覚悟」

具体的な流れ

  1. ObjectSign™ Code Signing Certificates から ObjectSign の購入申請を行います。
  2. 申請後、メールが届くので、指示に従い ID card として「免許証」の両面コピーをスキャンし、画像ファイルとして返信メールに添付します。
    ※免許証以外にもパスポートなどでもオッケーみたいです。
  3. しばらく待ちます。サイトには5営業日と書いてありますが、私は約1ヶ月もかかりました。(催促メールも2回送ってます)
  4. コードサイニング証明書がメールで届きます。あとは、メールの指示に従い、証明書をインストールします。

◆デバイスドライバへの署名方法

  1. (デバイスドライバ開発する人はインストール済みとは思いますが)WDK をインストールします。
    ※古い DDK では、クロス証明書を使用できないそうです。
  2. Windows Vista のカーネル モードのコード署名用 Microsoft クロス証明書 から GlobalSign Root CA 用クロス証明書をダウンロードします。
  3. Signing a Catalog File With an SPC を参考にデバイスドライバに署名を行います。
    signTool sign /v /ac MSCV-GlobalSign.cer /s my /n “XXXX YYYY” /t http://timestamp.globalsign.com/scripts/timstamp.dll ZZZZ.sys
    って感じになるかと思います。”XXXX YYYY” は CN 名つまり本名、ZZZZ はドライバファイル名です。
  4. Vista x64 で動作確認
  5. 感動の瞬間

※signtool signwizard を使うと GUI で署名ができるのですが、クロス証明書に対応していないため、この方法で署名した場合 Vista x64 へデバイスドライバをインストールすることはできません。ファイルのプロパティからデジタル署名を確認すると正しく署名できているように見えるためご注意を。

米 GlobalSign 社に感謝しつつ、Vista x64 のデバイスドライバへのデジタル署名必須化に絶望した全ての個人プログラマにこのエントリを贈ります。

★コメント&直リンク大歓迎です。

9 月 26

総合ベンチマークソフト「CrystalMark 2004R2」がWindows Vista x64に対応 (窓の杜)
※初出時に不正確な情報が含まれているため訂正依頼を行っております。(訂正済)

窓の杜で紹介していただきました。この記事がきっかけで個人でも覚悟さえあればコードサイニング証明書が取得できるということを多くの人に知っていただきたいですね。英語だし229ドルもかかるし・・・とハードルは決して低くありませんが、有限会社を作ることを考えれば簡単そのものですね。

9 月 26
  • デジタル署名をデバイスドライバに付与しました。

⇒ Vista x64 でも特に何もせず CrystalMark, CrystalCPUID, CrystalDMI を実行できるようになりました。

1 年以上追い求めていたデジタル署名がようやく手に入ったため、バージョンナンバーはジャンプアップです。

9 月 25

WinRing0 1.0 をついにリリース致しました。デバイスドライバに念願のデジタル署名を付与したため、Vista x64 でも特に設定変更を行うことなく動作いたします。

主な修正点

  • デバイスドライバにデジタル署名を追加!!(Vista x64 でもそのまま動作いたします。) 
  • サンプルコード微調整
    PCI コンフィギュレーション空間のダンプ機能追加(C++/C#)
  • 付属マニュアルを chm 形式に変更 
  • マニュアル更新

10月いっぱいぐらいは必要に応じて微調整を行い、その後 OpenLibSys の開発に取り掛かりたいと考えております。

公式サイト:OpenLibSys.org

◇ダウンロード:WinRing0 1.0

9 月 25

ObjectSign がようやく届きました♪

早速 x64 用ドライバに署名をしてみたのですが、Vista x64 で試してみると無効な署名扱いでドライバを読み込めませんでした。ファイルのプロパティからはちゃんとデジタル署名を確認できるのですが。う~む。

実行ファイルに署名することで、発行元が「不明な発行元」から今回とった署名の名前に変化しているので、一応証明書はちゃんとしているっぽいです。

もう少し調査した上で質問メールかな・・・。にしても、証明書発行まで1ヶ月もかかるとは。

そんなわけなので、WinRing0 1.0 のリリースはデジタル署名関連の問題が解決するまで延期とさせていただきます。

※以下 2007/9/25 23:10 追記 

を見落としていました。普通のアプリなどとは異なりクロス証明書が必須とのことでした。具体的な署名方法は、Signing a Catalog File With an SPC で紹介されております。

9 月 14

CPUID Developers

CPU-Z が Vista x64 対応のために付与していたデジタル署名の CA が「CPUID なんたら」(正式名失念)になっていたので、ひょっとして起業している???とは思っていたのですが・・・すごいなぁ~。

それにしても CPUID SDK が 999 ユーロ、今のレートだと日本円にしてたったの約16万円。これで CPU-Z と同等のソフトが作れるとなると激安ですな。 

CrystalCPUID が CPU-Z に追いつく日は正直来ないとは思いますが、1番でなくても存在意義があるのは間違いありませんし、CPU ユーティリティのオープンソース実装として別な価値もあると信じているので、これからも自分のやりたいことを誠実に実現していきたいと思います。ちなみに、CrystalCPUID 4.x はオープンソースの条件を満足していないため、オープンソース化が実現するのは CrystalCPUID 5.1 からとなります。

8 月 25

ついに ObjectSign の申請をしました。

申請が通るかどうかわからないので詳細は後ほど。

$229/Year でデジタル署名の問題が解決するなら安いものなのですが・・・。

来週はドッキドキだな。多分。

8 月 25

デジタル署名の仕方ぐらいは確認しておきたいよね・・・ということで、

コードサイニング証明書の利用方法

を参考にオレオレ署名してみました。

signtool signwizard で起動する署名ツールは、署名対象として exe .cab .dll .ocx の拡張子のものとなっておりますが、全てのファイルに切り替えれば普通に sys にも署名できました。

ちなみに、オレオレ証明書の作成は WDK の Free Build 環境を管理者権限で開いて

makecert -r -pe -ss PrivateCertStore -n CN=OpenLibSys.org test.cer
certmgr -add test.cer -s -r localMachine PrivateCertStore

って感じでオッケー。ここでは、OpenLibSys.org ってのが発行者になります。

色々難しそうな英語のマニュアルを読んでも良くわからなかったのですが、やってみるとすごく簡単でビックリ。あとは、デジタル署名を取得するだけなんですが・・・

8 月 14

ゲイツ様の英断(泣)のため、カーネルモードデバイスドライバにデジタル署名が必須となってしまった Vista x64 or later なわけですが、久しぶりに調査してみるとてつもない(かもしれない)情報をキャッチしました。

ネタ元:http://blogs.wankuma.com/kokuryu/archive/2007/05/01/75228.aspx

ObjectSign™ Code Signing Certificates
http://www.globalsign.com/digital_certificate/objectsign/index.htm

Software vendors and individual developers can digitally sign and timestamp the software they distribute over the Internet.

INDIVIDUAL DEVELPERS!! 来てますよ。キテますよ。キテマスヨ~。ひょっとして、個人プログラマもデジタル署名とれるの???

いきなり英語サイトに申し込むのは難しいので、日本法人に電話で確認してみました。でも、回答は「日本法人では個人向けのサービスはやっていないので、アメリカ法人に直接申し込んで欲しい。」とのこと。orz

肝心の本当に取得できるのかどうかもいまいち釈然としないところではありますが、会社を作るよりもはるかに簡単だし、1 年間 $229 と年貢としては割安?(金銭感覚崩壊中)なので頑張ってみるつもりです。問題は、個人の実在確認をどのように行うかが明記されていないこと。ネタ元では、免許証による確認を行うと書かれているのですが・・・日本語のでいいの?

色々調査はしているのですが、個人でデバイスドライバが必要なプログラムを書いている日本人はそれほどいないためか、全然情報がないんですよねぇ~。私のように途方に暮れている方(笑)は数名発見しましたけど(汗

とりあえず、オレオレ署名する方法ぐらいは確認したいと思います。未だにプログラムに署名する方法を把握していないので。

Windows Server 2008 は 32bit 版もカーネルモードドライバへのデジタル署名が必須ということらしいので、Vista の次はひょっとしたら 32bit 版も・・・ということになるのかも。デジタル署名の問題をなんとかしない限り OpenLibSys/WinRing0 に未来はないというわけです。

当面は↓で我慢していただく方向で・・・ 

Vista 対応について
http://crystalmark.info/information/vista.html