公開鍵と秘密鍵を使用して多くの暗号化と復号化を行う共有オブジェクトを作成しています。これらのキーをバイナリ内に保存したいのですが、これらのキーを安全に保存して誰も使用できないようにする方法はありますか? 暗号化キーをバイナリに埋め込む方法は?
3 に答える
これらのキーを安全に保存して、誰も使用できないようにする方法はありますか?
ミリムースが言ったように、あなたはできません。または、より正確には、データをバイナリに保存することはできません。他の人ではなく、バイナリに使用できます。通常、この一般的なユース ケースについては説明しませんが、これはデジタル著作権管理の核心です。つまり、制御された方法でのみ使用できるデータ (暗号化されているかどうかに関係なく) を保持したいという欲求です。
達成できる最善の方法は、TPM を使用して、ユーザーに代わって、システムの状態に関連付けられた方法で暗号化操作を実行することです。その解決策はあなたが探しているものではないと思います。
コードがキーにアクセスできる場合、コードが実行されているマシンのユーザーもアクセスできます。これは議論の余地がありません。ハードウェアを制御しない限り、これを回避する方法はありません。
ハードウェアとオペレーティング システムを制御できない場合、これを行うことはできません。完全に制御できる場合は、キーに追加の保護を追加する必要はほとんどありません。キーを安全に保管する最善の方法は、キーをバイナリから除外することです。たとえば、セキュア トークンを使用できます。これは、TPM、スマート カード、または HSM である可能性があります。これらの安全なトークンは、トークン自体で暗号計算を行うため、トークンをメモリにロードする必要はありません。
バイナリで非常に安全なストレージが必要な場合は、この HSMをご覧ください。HSM内でコードを実行できます。このような HSM を使用する場合でも、HSM 内でのみキーを生成し、そこに保持する必要があります。そうそう、これには HSM に数千ドルを費やす必要があります...