コード署名とは何ですか?
ハッカーは、オフラインでもオンラインでもソフトウェアを頻繁に使用して、コードを並べ替えて変更し、悪意のあるものにした後、オンラインでアップロードして、ユーザーが無料プログラムとそれに含まれる悪意のあるコードをダウンロードするようにします。 ユーザーがこの問題に遭遇しないようにするために、コード署名が使用されます。 コード署名とは、プログラムを作成した元のプログラマーまたは会社がプログラムに署名し、プログラムのインストール時に、プログラムにコーディングが追加または変更されていないことを確認するための認証方法です。 これには、ユーザー側に特別なソフトウェアは必要ありません。ユーザーはプログラマーの身元を確認できます。 これはセキュリティの一形態として意図されていますが、プログラムを作成したり、署名の周りを見つけたハッカーは、人為的で誤った信頼を作成できます。
プログラムは常にオンラインとオフラインの両方で販売されています。 誰かが信頼できるサプライヤーまたは小売業者からプログラムをオフラインで購入する場合、ユーザーがハッカーがプログラムに悪意のあるコードを挿入することを心配する理由はほとんどありません。 これは、ソフトウェア開発者が意図的に危険なプログラムを作成しない限り、誰かがソフトウェアを改ざんして悪意のあるものにする方法がないためです。 ユーザーがインターネットからプログラムをダウンロードする場合、そのような保証はありません。
オンラインでプログラムを購入またはダウンロードするユーザーを保護するために、コード署名が実装されています。 コード署名は、開発者とエンドユーザーの2つの部分に分かれています。 開発者は、暗号化ハッシュを使用します。これは、プログラムのコードを偽装する一方向操作であり、自分の秘密鍵をハッシュと組み合わせます。 これにより、プログラムに埋め込まれる署名が作成されます。
ユーザーがプログラムを受信すると、コード署名プロセスの2番目の部分が発生します。 プログラムは、プログラマーがプログラムに配置した証明書と公開鍵を調べます。 公開鍵を使用して、プログラムは現在のプログラミングで同じハッシュを実行でき、インストールされている現在のバージョンに対してオリジナルをチェックします。 インストールされたプログラムと元のプログラムの両方が同期している場合、これは何も変更されていないことをユーザーに示します。 このプロセスは自動的に行われ、この認証に必要なプログラムはコンピューターのオペレーティングシステム(OS)に事前にインストールされている必要があります。
コード署名はセキュリティを確保するための強力な方法ですが、欠点があります。 ユーザーがハッカーからプログラムをダウンロードしている場合、認証では元のプログラムがそのまま表示されます。 これにより、ユーザーは誤った安心感を抱きます。 プログラムは悪意があるように作られているため、この意味でセキュリティは達成されません。 洗練されたハッカーはハッシュを回避してコードを挿入し、コード署名を役に立たなくすることもできます。