web-dev-qa-db-ja.com

クラウドストレージの暗号化

背景/要件

  • windowsマシンを使用
  • ハードドライブはすでに(veracrypt)暗号化ボリュームです
  • クラウドサービスプロバイダーに依存せず、暗号化でクラウドサービスプロバイダーを信頼する
  • ローカルマシンでのファイルごとの暗号化

質問

完全に暗号化されたveracryptボリューム上のファイルごとの暗号化に cryptomator のようなプログラムを使用することの欠点はありますか?暗号化されたドライブをマウントして、ドライブをマウントするために再び使用されるファイルにアクセスするのは奇妙に思えます/ 2つの暗号化がお互いに歪むのではないかと心配です。

また、代替ソリューションにも対応しています。 boxcryptor も調べましたが、取得したファイルはドライブ上では暗号化されておらず、ダウンロードおよびダウンロード中に暗号化/復号化されます。アップロードする前にドライブで暗号化されたファイルを見たいのですが。

1
idkfa

暗号化されているボリューム(ハードディスク)上のファイルを暗号化しても、まったく問題はありません。暗号化は何も「変形」しません。これは、入力データの可逆的な数学的変換です。暗号は、入力データがすでに暗号化されているかどうかを知りませんし、気にしません。 「このデータはすでに暗号化されています!」という特別なフラグはありません。どういうわけか混乱するかもしれません。それはすべて単なるデータです。

  • プレーンテキストのファイルの内容:A
  • ファイルはファイルごとの暗号化ユーティリティを使用して暗号化されます:ENCf(A)= B
  • 暗号化されたファイルは暗号化されたファイルシステムに保存されます:ENCv(B)= C
  • 暗号化されたファイルは、暗号化されたファイルシステムから読み取られます(たとえば、アップロードするため):DECv(C)= B
  • 暗号化されたファイルがクラウドサービスにアップロードされます:upload(B)
  • 暗号化されたファイルは、クラウドサービスから暗号化されたボリュームにダウンロードされます:ENCv(download(B))= C
  • 暗号化されたファイルはディスクから読み取られ、ファイルごとの復号化ユーティリティに読み込まれます。DECf(DECv(C))= DECf(B)=A。

( "A"、 "B"、および "C"は、リテラル値ではなく、実際のデータのプレースホルダー変数です。 "ENCf"および "DECf"は、指定したキーを使用したファイルごとの暗号化および復号化関数です。 "ENCv "および" DECv "は、ボリューム全体(VeraCrypt)の暗号化および復号化関数であり、そのボリュームにVeraCryptのキーを使用します。)

ここで、順序をめちゃくちゃにしないことが重要です(一部の暗号はこれを許容しますが、一部は許容しません)。 DECf(C)!= B、およびDECv(DECf(C))!= A(おそらく)。ただし、実際にはこれは起こりません。最初に解読しない限り、暗号化されたボリュームのどこでファイルの開始と終了を判別することもできません。そのため、cryptomator *を使用してCを解読してから、結果を解読しようとするような愚かなことはしません。 VeraCryptを使用してのその。暗号化されたファイルがそこにあることさえ確認できる場合、そのファイルはすでにVeraCryptを通過しているため、読み取った場合に表示されるデータはCではなくBであり、安全に暗号化プログラムなどに渡すことができます。


実際、私は友人と、ファイルレベルの暗号化のためにオープンソースのgpgプログラムを使用してこれを行うための簡単なツールを構築しました。それはうまくいきました。

*私は暗号化機能を知りませんし、特にそれを保証しません。

1
CBHacking