あなたは、秘密鍵と公開鍵が含まれているコード署名証明書を持っています。
コードとデータの暗号化チェックサムを計算し、秘密鍵で暗号化します。暗号化されたチェックサムと公開鍵をコードに追加します。
誰でもあなたのコードの同じチェックサムを計算し、公開鍵で暗号化されたチェックサムを解読して比較することができます。一致した場合、コードが秘密鍵を持っている人によって提供されたことが証明されます。一致しない場合、このコードはチェックサムを暗号化したコードと同じではないことが証明されています。
オペレーティングシステムは有用であるために、アプリケーションの実行を許可する前にこの種のテストを実行します。そして、公開鍵は、OS供給者が所有する周知の秘密鍵で署名され、公開鍵の所有者を識別するために使用されるデータを伴います。
明らかに、EvilHackerはマルウェアを作成してコードに署名する可能性があります。それが署名されているという事実は無意味です。しかし、あなたはEvilHackerのアイデンティティーも持っているか、オペレーティングシステムがアプリケーションを起動しません。したがって、オペレーティングシステムでは、ハッキングされたアプリケーションや、公開鍵の所有者がOSの作成者に知られていないアプリケーションを実行することは決してありません。
ハッカーがうまくいくのは、コード署名を完全に削除し、ハッキングされていないコードを与えることです.OSは、署名のないコードを実行するかどうかを尋ねるか、まったく許可しません。
最も悪いハッカーは、osのオーナーにEvilHackerのコード署名証明書を受け入れるか、コード署名証明書を盗み、実際に正しく署名されたマルウェアを作成するかのどちらかです。
あなたはソースコード上でチェックサムを実行し、srcをencrytpedチェックサムと公開鍵とともに配布します。実行可能ファイルのみを配布する場合はどうすればよいですか? – GreySage