もう少し詳しく

コードサイニングこーどさいにんぐとは、ソフトウェアの実行ファイルに、作成者を証明する電子的な署名を付ける仕組みです。署名には、第三者機関(認証機関にんしょうきかん)が発行した電子証明書が使われ、利用者側のパソコンは、この署名を検証することで、「誰が作ったファイルか」と「ファイルが作成後に書き換えられていないか」を確認できます。単純なファイルの一致確認に使われるMD5やSHA-256といったハッシュ値はっしゅちの比較だけでは、攻撃者が改ざん後のファイルに合わせて配布側の記録も書き換えてしまえば見抜けませんが、電子証明書を使った署名の検証は、より強固な確認手段になります。

どこで使われるか

Windows・macOSなどのOSは、インストーラーや実行ファイルを起動する際に、コードサイニングの署名を自動的に確認する仕組みを備えています。署名が無い、または無効なソフトを実行しようとすると、警告が表示されることがあります。企業のソフトウェア配布や、スマートフォンのアプリストアへのアプリ提出でも、提出されたアプリにコードサイニングが施されているかどうかの確認が行われています。

身近な例

パソコンに新しいソフトをインストールする際、「発行元が確認できません」といった警告が表示されたことがある人もいるでしょう。これは、そのソフトにコードサイニングの署名が付いていない、または署名の検証に失敗したことを示しています。

注意点

コードサイニングは「誰が作ったか」と「改ざんされていないか」を確認する仕組みであり、そのソフト自体に脆弱性や不正な機能が無いことまでは保証しません。署名が正しく付いているソフトであっても、配布元のサーバーそのものが攻撃者に乗っ取られ、署名済みの正規ファイルが悪意のあるものに差し替えられてしまうケースも報告されています。