web-dev-qa-db-ja.com

公共のコンピューター上のプライベート暗号化データの保護

公共の場所にある既製のラップトップにデプロイされる(Java)アプリケーションを検討してください。ラップトップがネットワークまたはインターネットに接続されていません。 USBバーコードスキャナーは、追加の入力デバイスとして使用できます。アプリケーションが正しく機能するには、個人情報を含むローカル(SQLite)データベースにアクセスする必要があります。定期的に新しいデータをインポートし、古いデータを破棄します。

データ保護における最大の懸念は、ラップトップの物理的な盗難です。通常、ラップトップを見張るために誰かが近くにいますが、ラップトップが見えないことがあります。ラップトップを近くの物体に物理的に固定することはできません。

プログラムでデータベースを保護するための対策を検討していますが、安全で実用的なソリューションを見つけることができません。

現在、データベース(AES-256など)を暗号化し、新しいデータがインポートされるたびに暗号化キーを交換する予定です。オペレーターは、アプリケーションのロックを解除してデータにアクセスするために暗号化キーを入力する必要があります。ログインプロセスを簡単にするために、付属のバーコードスキャナーでスキャンできる暗号化キーを含むQRコードをオペレーターに提供します。

理論的には、オペレーターは、いったん完了するとアプリケーションからログアウトします。ただし、実際にはこれはしばしば忘れられ、アプリケーションが悪用される可能性が大きくなります。アプリケーションを介してデータを簡単に開示することはできませんが、ユーザーがログインしている限り(私たちは想定)、暗号化キーはメモリのどこかに保存されます。悪意のある人物がラップトップを盗み、メモリをダンプし、暗号化キーを見つけ、すべてのデータに直接アクセスする可能性があります。

一定時間操作がないと、アプリケーションを自動的にログアウトすることを検討しています。このタイムアウトはかなり短くする必要があります(たとえば、数分)。そうしないと、悪意のある攻撃者がラップトップを盗んで暗号化キーを検索している間、定期的に入力を続けることができます。ただし、ラップトップを管理していて、通常の入力なしに単にダウンタイムが発生している場合でも、オペレーターが何度もログインしなければならないことを防ぐために、タイムアウトを長くすることをお勧めします。

このような状況に関するベストプラクティスや調査はありますか?

2
Thanaton

まず最初に、あなたのシナリオはかなり悪いです。個人情報のコピーをセキュリティで保護されていないラップトップに保存し、人々が盗むことができるようにすると、私の最初の本能はなぜ本当にそれを行う必要があるのでしょうか??より良い方法で処理できる可能性があります。また、予算の制限が懸念される場合でも、データの不適切な漏えいに関連するリスクと比較する必要があることに注意してください(金銭的-誰かがそのデータを「失った」として訴え、会社の評判を高めます)。

さて、これらの制限が守られていると仮定すると、あなたが説明していることは悪くないように聞こえます。明らかに、パスワードを保持しているQRコードはスマートフォンを持っている人なら誰でも簡単に盗まれる可能性があり、アプリケーション、関連するデータベース、ログインパスワードは、何を盗むかを知っている攻撃者によって数分でUSBドライブにコピーされる可能性があります(ヒント:USBポートを無効にする) )。また、AESキーは、おそらくJava VMプロセスに割り当てられたメモリにまだ保存されています。

私があなたのアプローチに対して行う主な提案は、許可されたエリアの外に持ち出されたときに、ラップトップを自動的にロック/シャットダウンすることです。

  • これを行う1つの方法は、GPSを受信した場合です(スマートフォンでは一般的ですが、ラップトップではそれほどではありません)。
  • 通常、利用可能なWiFiネットワークのチェックはうまく機能します。あなたは、ラップトップがどのネットワークにも接続されていないと述べていますが、それに接続していない場合でも、「適切な場所にある」という信号として受け取ることができる近いネットワークがありますか?
  • ただし、より基本的な検出は、接続されている電源コードに依存することです。私はラップトップwillが公共の場所にある電源に接続されている必要があると思います。バッテリーで実行されていることを示すイベントをアプリケーションをロックする信号として検出できます。
  • そして、場所から外された場合にラップトップを強制的にロックする最も簡単な方法は、バッテリーなしで展開することです。ラップトップを物理的に盗む場合は、電源コードから切断する必要があります。これにより、ラップトップが自動的にシャットダウンされ、データベースがロックされます。
3
Ángel