コードサイニングとは?
こーどさいにんぐ
コードサイニングとは、ソフトウェアの配布者がデジタル署名を付与することで、コードの正当性と改ざんの有無を証明する技術です。
コードサイニング(Code Signing)とは、ソフトウェアの開発者や配布者が電子的なデジタル署名をプログラムファイルに付与し、そのソフトウェアが正規の提供者から配布されたものであること、また配布後に改ざんされていないことをユーザーが確認できるようにする技術です。
仕組みの核心は公開鍵基盤(PKI)にあります。開発者は認証局(CA)から発行されたコード署名証明書を取得し、秘密鍵でソフトウェアに署名します。ユーザーがソフトウェアを実行する際、OSは対応する公開鍵で署名を検証し、開発者の身元確認と改ざん検知を行います。
コードサイニングが重要な理由は以下のとおりです。
- マルウェアへの差し替えや配布経路での改ざんを検出できる
- WindowsのSmartScreenやmacOSのGatekeeperなどの警告を回避し、ユーザーの信頼を得られる
- モバイルアプリ配布(iOS App StoreやGoogle Playなど)では署名が必須要件となっている
- ドライバや低レベルソフトウェアは署名なしではOSに読み込まれないケースもある
有効期限切れの証明書や盗まれた証明書を悪用した攻撃も確認されているため、証明書の適切な管理と失効処理(CRL・OCSPの活用)も重要です。タイムスタンプを付与することで、証明書の有効期限後も署名の有効性を長期間維持できます。
使い方・例文
Windowsアプリケーションをインストールする際に「確認済みの発行元」として開発者名が表示されるのはコードサイニングの効果であり、署名がないと「不明な発行元」という警告が表示されます。
この用語をシェア
最終更新: