web-dev-qa-db-ja.com

復号化後のSSL / TLSインメモリデータインターセプト

クライアントがSSL/TLSを介してサーバーからデータを読み取り、ディスクに保存する前にクライアント側の対称鍵を使用してそのデータを暗号化するシナリオでは、データはメモリ内攻撃の影響を受けやすくなります(例: 、 SSLsnoop )のようなツールによって?

クライアントは、通信の機密性を確保するために、何か特別なことをする必要がありますか(たとえば、SSL/TLSの部分に関係なく、サーバーからデータを暗号化する)?

また、モバイルデバイスはそのような攻撃に対してとにかく脆弱ですか?

2
PNS

他のプロセスのメモリを検査するのに十分な特権を取得した攻撃者は、マシンを完全に制御できる攻撃者です。その時点で、そのマシンで発生したことはすべて攻撃者に知られる可能性があります。これは、モバイルデバイスを含むすべてのマシンとOSに当てはまります。ただし、Unixライクなオペレーティングシステムを搭載したマルチユーザーサーバーは非常に伝統的ですが、マルチユーザーiPhoneは非常にまれです。

このようにクライアントがハイジャックされる可能性がある場合、クライアントが最初からクリアテキストデータを取得しないようにする以外に、それを回避する方法はありません。ただし、クライアントはクリアテキストデータにアクセスできないため、機能が低下します(たとえば、クライアントに表示できません)。

削減されたシナリオは約 仮想メモリ です。コンピュータのメモリにデータがある場合、そのデータは自動化された方法でOSによってスワップスペースにコピーされる可能性があります。したがって、攻撃者が後でマシンを押収すると、スワップスペースを調べて機密データの抜粋を取得する可能性があります。アプリケーションが非常に機密性の高いデータを管理している場合、カーネルにデータをスワップスペースに書き込まないように要求できます。 Linuxシステムでは、これは mlock() で実行されます。 GnuPGは、メモリに秘密鍵がある場合にそれを行います。

魅力的な代替手段は、スワップスペースを完全に無効にすることです。最近のコンピューターには大量のRAMがあり、とにかく仮想メモリとうまく相互作用しないプログラミングシステムを使用しています(これはガベージコレクターの既知の問題です)。スワップスペースのないコンピュータは、定義上、メモリベースのデータをディスクに書き込むことはできません。そのようなコンピュータが長時間のディスクベースに入ることができないというわけではありません 休止状態モード

「モバイルデバイス」(スマートフォン、タブレットなど)は、ストレージ容量がとにかくそれまでではないため、原則として仮想メモリを備えていないことに注意してください。その意味で、永続的なストレージを介したデータ漏洩を制限することになると、モバイルデバイスは「通常の」構成の従来のコンピューターよりも優れている可能性があります。

3
Tom Leek