web-dev-qa-db-ja.com

データが適切に暗号化されている場合のSSD(フラッシュメモリ)のセキュリティ

フラッシュメモリのセキュリティに関する現在の技術を調査しています。フラッシュメモリの非インプレース更新により、ハードディスクで使用したのと同じ暗号化技術を適用できないことがわかりました—参照 フラッシュメモリ(SSD)アーキテクチャは暗号化技術に影響を与えますか? —それを解決するためにどのようなメカニズムが使用されているのかと思っていました。

質問を明確な形にするには、データ「a」がアドレス「x」に格納されているとしますが、暗号化後、データ「a」は同じアドレス「x」に格納できません(アップデートをフラッシュメモリに配置します)。つまり、データを暗号化し、「a '」と言って、別のアドレスに格納しますx ' "。暗号化されていないデータ "a"はまだ利用可能であるため、削除する必要があります(SSDでは一度にブロック全体しか消去できないことに注意してください)。これにより、同じブロックで見つかったすべてのデータが "a"として消去および置換されます。 」問題は、これにより多くの消去操作が発生し、それがこの方法で続行されると、限られた数の消去後にメモリが消耗することです。

この問題の解決策があるかどうか知りたいのですが。

9
lferasu

この質問は、以前にデータが暗号化されていなかったデバイスでデータを暗号化するとどうなるかについてもう少し尋ねていると思います。 SSDユニットとHDDユニットは、これに関連して考えられるさまざまな妥協の影響を受けます。これは基本的に(少なくとも由緒あるWikipediaでは) data remanence と呼ばれます。その記事は、データがハードドライブに残ったり、漏洩したりする可能性のあるさまざまな方法についての多くの情報を提供します。

SSDが特別な問題を示す場合、それは新しい解決策も示します。TRIMが削除を補うのと同じように、 " Secure Erase "コマンドで補います。

セキュリティ上の懸念が十分に高く、暗号化されていないデータのブロックレベルのアクティビティが心配な場合は、次のことをお勧めします。機密データを暗号化されていない状態で保持したドライブを汚染することを検討してください =。パーティションまたはデバイスレベルのディスク全体の暗号化を使用します。

これは、SSDシステムだけでなくHDDシステムにも適用されます。特定のケースは、上書きされたファイルです。上書きされたデータを読み取るための高度な回復手法が理論化されています(したがって、安全なワイプパターンアルゴリズム:DoD 5220.22-M)。ただし、それは低密度ドライブのアーチファクトである可能性があります( http://computer-forensics.sans.org/ blog/2009/01/28/spin-stand-microscopy-of-hard-disk-data / および http://www.securityfocus.com/brief/888 )。それでもなお、高度なファイルシステムは、別の場所への上書きを処理したり、暗号化されていないときにデータのスナップショットをキャプチャしたりする場合があります。

9
Jeff Ferland

現在のSSDでデータ暗号化がどのように機能するかについて誤解があると思います。データは、ホストからデバイスに8ビット/ 10ビット形式で書き込まれます。リンク層のレベルでは、データは8ビット/バイト形式に変換されてから、キャッシュ(DRAMまたはSRAM)に送信されます。コントローラーが暗号化をサポートしている場合(ほとんどの場合)、データはオンザフライで暗号化され、データとパリティ情報がラウンドロビン方式で実際のNANDフラッシュページに書き込まれる前に、暗号化されたデータのパリティ情報が生成されます。 (利用可能なチャネルで多重化した後)。

つまり、暗号化が必要な場合、データは暗号化されていない形式で書き込まれず、暗号化はインラインで行われます。これが行われなかった場合、ブロックごとに1つのページのみを書き込んでから、データを暗号化して次のページに書き込み、前のページを無効にすることができます。これにより、グローバルパージ、またはICのコンテンツ全体をダウンロードします。したがって、1つのページを書き込み、それを暗号化(そして同じブロックの次のページに書き込む)してから、ブロック全体を消去して、暗号化されたページだけを別のブロックにコピーする必要があります。誰かがこれを行うとしたら、書き込みの増幅は天文学的なものになるでしょう。

よろしく、マイケル

4

重要なソフトウェアやBIOSなどのデータには、意図的な非インプレースアップデートがよく使用されます。意図しないインプレースは通常、ウェアレベリングアルゴリズムによって行われます。特定のタイプのフラッシュコントローラでの通常のファイルアクセスでは、消去後に同じアドレスへの書き込みを許可するドライバを作成できます。ブロックサイズは通常128kBですが、これは一般的なフラッシュコンポーネントとファイルのサイズが大きいことを考えると悪くありません。

バイトレベルの消去が必要な場合は、シリアル [〜#〜] eeprom [〜#〜] にアクセスできます。 EEPROMはフラッシュメモリの祖先です。読み取りおよび書き込み時間が速く、書き込み前にブロックレベルの消去を必要としません。 EEPROMの最大の欠点は容量です。最大のEEPROMは、256 GBのフラッシュと比較して8 MBです。 EEPROMの寿命は約10万回の書き込み/消去サイクルです。これは一般的なフラッシュに似ていますが、1桁多いサイクル(1,000,000)の高耐久性フラッシュよりもはるかに優れています。

[〜#〜] fram [〜#〜] (強誘電体ランダムアクセスメモリ)はあまり一般的ではないオプションですが、読み取りと書き込みの速度が速く、バイトレベルのアクセスも可能ですが、可用性が低く、ほとんどありませんツールとソフトウェアに関するサポート。寿命がはるかに長く、電力使用量は少ないですが、スタンドアロンメモリとしてではなく、システムオンチップ(SoC)コンポーネントに多く見られます。

3
this.josh