暗号化されたファイルがあり、それを復号化するには、次のコマンドを使用します。
openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file
しかし、これを行うと、暗号化されていないファイルが作成され、完了したら削除する必要があります。これは、誰かが私のコンピューターを入手して、ある種のデータ回復ツールを使用した場合、暗号化されていないファイルを入手できることを意味します。別のファイルを作成せずに暗号化されたファイルのデータにアクセスする方法はありますか?
Linuxを使用していると仮定し、いくつかのアイデアがあります...
簡単な方法は、復号化されたファイルを作成することですが、ディスクには書き込まないでください。たとえば、ramfsまたはtmpfsファイルシステムを使用してRAMに配置します。ただし、問題は次のようになります。
/tmp
または他のフォルダ(/run
、/run/shm
、/run/user
など)はすでにtmpfsとしてマウントされている可能性があります。mount|grep tmpfs
で確認できます。
新しいtmpfsを作成するには、これを行うことができます(-o size=16384
と同様に、必要に応じてバイト単位のサイズで、デフォルトであると思います)ラムの半分まで):
Sudo mount -v -t tmpfs tmpfs /mountpoint
古いramfsを使用するには、スワップに書き込まれませんが、サイズ制限はありません。これは機能するはずです。
Sudo mount -v -t ramfs ramfs /mountpoint
上記のリンク は警告しますが:
ramfsファイルシステムは、容量によって制限されるディスクベースのファイルシステムのようにサイズを制限することはできません。 ramfsは、システムがRAMを使い果たし、クラッシュするか応答しなくなるまで、メモリストレージを使用し続けます
また、 カーネルのドキュメントはこちら も警告と発言:
Ramfsの欠点の1つは、すべてのメモリがいっぱいになるまでデータを書き込み続けることができることです。VMは、VMが次のように考えるため、データを解放できません。ファイルは(スワップスペースではなく)バッキングストアに書き込まれる必要がありますが、ramfsにはバッキングストアがありません。このため、ルート(または信頼できるユーザー)のみにramfsマウントへの書き込みアクセスを許可する必要があります。
サイズ制限を追加するために、tmpfsと呼ばれるramfs派生物が作成されました。スワップスペースにデータを書き込む機能。通常のユーザーには、tmpfsマウントへの書き込みアクセスを許可できます。詳細については、Documentation/filenames /tmpfs.txtを参照してください。
上記のRAMの問題が多すぎる場合は、別のプログラムを使用して、ディスク上のファイルを再度暗号化することができますが、それを読み取ることができます&暗号化されていない「オンザフライ」で使用(例:復号化されたバージョンは通常のファイルのように見え、動作しますが、ディスク上で暗号化されたままになります)dm -crypt/LUKS/truecrypt with cryptsetup 、または暗号化されたフォルダー( eCryptFS または EncFS )を使用して、そこでファイルを復号化します。
たとえば、フォルダmountpoint-folder
にマウントされたext4を使用して1GBLUKSコンテナファイルを作成するには、次のようにします。
head -c 1G /dev/zero > 1G
Sudo cryptsetup -v luksFormat 1G
Sudo cryptsetup -v luksOpen 1G container
Sudo mkfs.ext4 -v /dev/mapper/container
Sudo mount -v /dev/mapper/container <mountpoint-folder>
次に、ファイルをmountpont-folder
に復号化します。このファイルは、再度暗号化されたディスクに書き込まれていても、読み取り可能です。
eCryptFSはすでにLinuxMint、Ubuntu、および他の多くのディストリビューションにインストールされています。ecryptfs-setup-private
を実行してから、作成された~/Private
フォルダーを使用するだけでよい場合があります。
EncFSをインストールする必要があり(apt-get install encfs
と同様)、それが manページはこちら または こちら であることがわかります。encfs ~/.secret ~/decrypted
のようなコマンドが機能するはずです。
また、EncFSには、「ソースプレーンテキストデータを取得し、暗号化されたデータをオンデマンドで生成する」という優れた--reverse
機能があります。これは、リモートで暗号化されたバックアップを作成する場合に役立ちます。ローカルファイルを暗号化しないでください。 "
Stdinからの入力を受け入れるプログラムでデータを処理できる場合は、パイプも使用できます。例えば: openssl aes-256-cbc -d -in encrypted_plain_text_file | less