Web教材一覧情報倫理・セキュリティ

コード署名(プログラムの署名・認証)


プログラムをインターネットを介して取得することが多くなってきました。実店舗でDVDに入ったプログラムとは異なり、インターネットからダウンロードするプログラムは、サーバや通信路で改ざんされ、ウイルスやマルウェアを仕込まれる機会が多く、安全性を疑われることがあります。

プログラムが正規の作成者(ソフトウェアベンダ)が作成したものであり、改ざんされずに利用者に届いたことを保証する手段として、電子メールと同様に、署名と認証の仕組みがあります。

  1. あらかじめ、ソフトウェアベンダは公開鍵を認証局に登録し、電子証明書(コードサイニング証明書)の発行を受けておきます。
  2. ソフトウェアベンダは、ソフトウェア製品を開発した後、電子署名(コード署名、コードサイニング)を作成し、コードサイニング証明書を添付します(これがコード署名付きソフトウェアになります)。
  3. 利用者は、コード署名付きソフトウェアをダウンロードしたとき、コードサイニング証明書を確認して正規のソフトウェアベンダの製品であることと、改ざんされていないことを確認します。

例えば、WindowsストアアプリやiTunesのApp Storeアプリケーションは、ストアに登録時にストア側の証明書で署名されるシステムになっています。
 通常のコードサイニング証明書を、さらに厳格にしたものに、EV(Extended Validation)コードサイニング証明書があります。厳格な組織による認証局により認証され、証明書の不正使用を防ぐための対策が講じられています。
 Windows10では、カーネルモードドライバなど重要な機能に関係するソフトウェアでは、マイクロソフト認定のEVコードサイニング証明書が必須になっています。
 一般に、ソフトウェアをダウンロードしてインストールするとき、「実行してよいか」との警告が表示ますが、EVコードサイニング証明書のあるソフトウェアは、その警告が表示されません。


本シリーズの目次へ