1

興味のあることとして、Python を使用してパスワード管理スクリプトを作成する予定です。

私の大まかなアイデアは、アカウント名とパスワードのペアを、GPG によって暗号化された SQLite データベース ファイルに保存することです。

ここで質問があります: SQLite ライブラリに復号化された一時データベース ファイルを安全に提供するにはどうすればよいでしょうか? 生ファイルを隠しパスに配置してもセキュリティは保証されません。または、復号化されたデータをメモリに保持する必要がありますか? そしてどうやって?

SQlite データベースを暗号化するためのサードパーティ フレームワークがあることは知っています。しかし、そのようなフレームワークで中間データを扱うことは避けられないように思われるため、実際にどのように機能するかについてはかなり興味があります。

4

1 に答える 1

1

はい、データベースをメモリに保持することは実行可能な解決策のようです。:memory:これを少し難しくしているのは、SQLite が (ファイル名の代わりに使用して) メモリ内にデータベースを簡単に作成できることですが、既存のメモリ内データベースをロードsqlite_vfsするのは少し面倒です。独自の を実装する必要があります。私は1 つの実装を見たことがありますが、それはかなり古いものであり、まだ機能するかどうかはわかりません。また、Python から使用するには、余分な作業が必要になります。
それでも、復号化されたデータベース全体を常にメモリに保持することは、メモリが時々ディスクにページングされる可能性があるため、あまり安全ではありません. だから、それを覚えておいてmlockください。

より単純なソリューションは、通常のデータベースを使用することですが、データベースに格納する前にすべてのデータを暗号化します。このようにして、パスワードと復号化されたデータの小さなチャンクのみをメモリに保持する必要があります。

于 2013-06-09T13:48:41.773 に答える