コード署名とは【用語集詳細】
コード署名(Code Signing)は、電子署名を用いることによる、ソフトウェアのセキュリティ対策です。
ソフトウェアあるいはそのソースコードに対してデジタル署名を付与することにより、データの完全性およびソフトウェアの真正性を確保することができます。
信頼できる機関からのコード署名は、当該ソフトウェアが信頼できる機関に認められていること、またそのコードやデータが改ざんされていないことを保証します。
ソフトウェア・サプライチェーンを確保する上で、コード署名は有効活用できる技術の1つです。
コード署名に対する脅威として、NISTは次のような例を挙げています。
- 署名用秘密鍵の窃取
- 承認されていないコード署名証明書の発行
- 証明書や秘密鍵に対する誤った信頼
- 承認されていないコードや、悪意あるコードに対する署名
- 脆弱な暗号アルゴリズムの利用
コード署名はソフトウェアやアップデートに対する完全性の確保に有用ですが、実際に攻撃者によって侵害される例が発生しています。
脆弱なドライバを利用しシステムを侵害するBYOVD攻撃では、Microsoft社のハードウェア開発者プログラムを攻撃者が悪用し署名を入手し、悪意あるプログラムに対し、Microsoft社の正当な署名を付与していることが判明しました。