2017-11-19 4 views
-1

システムに問題があります。私のアプリは基本的に4件の観光名所ます暗号化を使ったファイル共有、受信者に安全に鍵を送る方法は?

  1. (でも、暗号化された)任意のファイルを送る
  2. 暗号化を任意のファイル
  3. は、受信ファイルを受信
  4. 復号化は、私の問題は後に、あるファイルに

を暗号化受信者は暗号化されたファイルを受信し、それを解読するためにキーを入力する必要があります。送信者からの元のキーが受信者の入力と等しくない場合、条件文を作成するにはどうすればよいですか?彼らは同じアプリだが、受信アプリはその特定の文字列についての知識がないので、キーに関する情報。

私は、キーを含むテキストファイルを作成し、受信者がそのファイルの内容を読み取ってキーを取得し、最終的にはそのキーの条件付き一致のみであると考えることができると思います。私は非常に混乱しているが、私はそれがESファイルエクスプローラと呼ばれるアンドロイドアプリで動作することがわかった。私はESファイルエクスプローラを使ってファイルを暗号化し、それをSHAREitと一緒に送って、別の電話機で解読しました。間違ったキーを入力すると、アプリはインターネットなしで入力したキーが間違っていることを知りました。

答えて

-1

私が知っている限り、基本的にESファイルエクスプローラはmagic numbersに基づいています。これらは、すべてのファイル拡張子を識別するために使用される固有のバイト順序です。たとえば、.classファイルのバイト数を考慮する場合、ファイルは通常0xCAFEBABE(16進形式)のシーケンスで始まります。

解読方法がどのように機能するかを理解するには、たとえば、最も単純な暗号化アルゴリズム、xor暗号化などがあります。暗号化の前に.classファイルがあると仮定し、最初のバイトはCA FE BA BEです。次に、パスワードをビットに変換して暗号化されたファイルのビットでxorに変換します。これで、暗号化された.classファイルが作成されました。ファイルの暗号化/復号化を行うユーティリティのほとんどは、常にファイル拡張子を保持しています。だからあなたの友人にファイルを送信し、あなたの友人も正しいパスワードを知っているならば、あなたの友人がしなければならない唯一の仕事は単純にパスワードをビットに変換し、暗号化されたファイルのビットでxorを変換することです。

パスワードが正しいかどうかを確認する2つのオプションがあります。彼らはCA FE BA BEに等しい場合

  • 最も簡単な1はちょうど最初のバイトをチェックしている(あなたがその拡張子と一緒に彼 にファイルを送信するので、彼は知っている原因、それはの.classファイルです)。パスワードがない場合は、おそらく が間違っています。
  • もう1つは、 のすべてのファイル拡張子のすべての異なるマジックナンバーの一覧があり、どちらが正しいかだけを確認するだけです。

これらの両方を使用すると思われる暗号化/復号化ユーティリティの中には、また、最悪の場合のシナリオでは、パスワードが正しいかどうかを確認するために、ファイル形式を推測してみてください。

Notice:インターネットの使用は必要ありません。

+1

これは、問題を解決するための非常に貧弱なアプローチです。 XOR暗号化に関する議論は不要であり、悪い習慣を促進する。 –

0

正しい暗号化キーが使用されたかどうかを判断するには、2つの一般的な方法があります。

  • HMAC(ハッシュメッセージ認証コード) - あなたのファイルを暗号化し、それを実行しますが、通常はSHA256、または別のと(HMACを通じてSHAファミリー)。生成されたハッシュを暗号化されたファイルの前に追加します。 常に暗号化の後にHMAC を適用します。受信者は、この同じHMACを計算して、使用しているキーが正しいかどうかを判断できます。時間的に安全な比較関数を使用して、結果のハッシュを比較してタイミング攻撃を回避することを忘れないでください。
  • AEADブロックモード - 暗号化中は、GCMやCCMなどのブロックモードを使用します。これが好ましいオプションです。これらのブロックモードは、すべてのデータ認証を処理します。 GCMが通常好ましい。ただし、2つの異なる暗号化操作に同じnonce/keyペアを使用すると、単純に平文をリークする可能性があるため、慎重なnonce生成が必要です。

編集:お問い合わせいただいた問題の安全な方法について詳しくは、this questionの回答をご覧ください。

+0

ありがとうございました!あなたの答えは最も正しいものですが、あなたが述べた方法を十分に活用するための十分な知識とプログラミングスキルはまだありません。私は実際に学生であり、あなたが言及したステップのチュートリアルは間違いなく感謝します。ありがとうございます! – Cyril

+0

心配する必要はありません、私の編集を参照してください。リンクされた回答のコードは、GCMモードでファイルを暗号化するための安全な方法を詳述しています。 –

+0

@LukePark暗号化後にハッシュを適用するログイン(暗号化されたファイル)? – JAAAY

関連する問題