私の会社では、複数のサーバーで構成される大規模なシステムを開発しています。システムは、約5つの論理コンポーネントで構成されています。データはXML、MS SQL、およびSQLiteに保存されます。これは.Netシステム(ほとんど)であり、コンポーネントはWCFといくつかのカスタムUDPを使用して通信します。クライアントは、主にカスタムUDPまたはWEB(ASP.NETおよびSilverlight)を介してシステムにアクセスします。
通信の保護は簡単で、SSLとWCFのセキュリティがあり、これで完了です。
私たちが直面している主な問題は、システムをクライアントのサイトにデプロイする必要があることです。これは、必ずしも信頼できるとは限らないクライアントです。サーバー上のデータとソフトウェア自体をリバースエンジニアリングから保護する必要があります。どちらも私たちにとって非常に重要です。
また、キルスイッチが必要です。コマンドで、または一定期間家に電話できない場合は、データとソフトウェアを破壊するものが必要です。
私が考えていた方向は、TPMなどを使用することです。ハードウェア暗号化ソリューションを、サーバー上のすべてのソフトウェアとデータを暗号化するために内部的に保持できる別のサービスと組み合わせて、キーがサーバーから取得されるようにします。私たちのサイトで安全に、そしておそらくTPMからのメモリカーテン。
そのような問題をどのように解決することを提案しますか?
UPDATE 04/02実用的な提案を探している、または私を助けることができる製品についてアドバイスしているので、私は賞金を始めています...
私たちが基本的にクライアントのサイトにマシンを配置している人を見てください(ビジネスと実用上の理由から)、私たちはそのマシンを所有しており、クライアントは数時間以内に支払っているすべてのものを受け取り、彼は好きなようにデータを処理できます。しかし、私はそのマシンで実行されているアルゴリズムと、そこに保存されているデータの一部には、保護したい企業秘密があります。理想的には、マシンがまったく動作しないようにしたいのですが、それがOKであると言わなければ、マシン上のすべてが暗号化されたままであるという私のOKがなければ起動すらしません。メモリカーテンは、実行中にマシンを保護するための優れた方法のようにも見えます。
また、理想的には、誰かがドライバーで近づいたらすぐに、すべてのマシンのHDとストレージを爆発させたいと思います... :-)しかし、それでは行き過ぎだと思います...
UPDATE 10/02 OKいくつかの調査を行った後、ソフトウェアとデータを復号化するためのキーをサーバーから取り込むことを除いて、PS3暗号化システムと同じ方向で何かを試すつもりだと思います。そうすることで、キーを要求しているサーバーを信頼するかどうかをマシンで決定できます。マシンを取り付け直すだけで、キルスイッチを取得できます。これはおそらくTPMまたはそれに類似したもの、おそらくIntelのTXTに基づいています...私は重要なセキュリティ機能としてメモリカーテンにも本当に興味があります...
ところで、ビジネス要件と技術的に実現可能ではないため、システムの貴重な部分をサイトに移動することでこれを解決することはできません。膨大な帯域幅が必要になります。