BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 個人開発者向けのコードサイニング

個人開発者向けのコードサイニング

原文(投稿日:2011/12/19)へのリンク

コードサイニング (Code Signing)とは、プログラムをダウンロードして実行する前にインターネットに公開されたプログラムを信頼するための仕組みだ。これまではそのコストとプロセスのために、個人開発者にはなかなか手が届かないものだった。しかし今ではいくつかストアが個人開発者向けにThawteコードサイニング証明書を年99ドルで提供している。

デジタル署名を利用しても、悪意のある行為に対して保証されるわけではない。オリジナルの作者でない誰かによってコードが変更されていないことを保証するだけだ。Tim Heuer氏は証明書取得のプロセスと覚えておくべきポイントについてブログにまとめた。Thawteは5種類(AuthenticodeOffice/VBAJavaAdobe AIRMac)のコードサイニング証明書を提供しているAuthenticode認証を使うと、ブラウザ外部で実行したりローカルにインストールする必要のあるSilverlightアプリケーションにも署名できる。

コードサイニングはどのように機能するのだろうか?コードサイニングでは秘密鍵と公開鍵、一方向性のコードハッシュ関数を利用する。ソフトウェア発行者は自分の実行プログラムを自分の秘密鍵で署名し、エンドユーザにその実行プログラムを自分の公開鍵で検証してもらう。

認証局 (Certification Authority) は同様に秘密鍵で発行者の公開鍵を署名する。認証局はたいていのOSで信頼されているので、ユーザはその公開鍵を信頼し、それゆえ、その実行ファイルを信頼する。詳細についてはScott Corley氏の解説を参照してほしい。

認証局を使う代わりに、自分で公開鍵を配布したり(直接ダウンロードやインストーラ経由で)、大規模だが管理された環境向け(大企業の社内ユーザなど)にプライベート認証局を使うこともある。またAndroidiOSのような新しいプラットフォームでは自己署名したアプリケーションでもよく、通常はそれが使われる。

 

この記事に星をつける

おすすめ度
スタイル

BT