問題タブ [block-cipher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1102 参照

java - Java 暗号化: AES/CBC/PKCS5Padding シナリオで使用するシード

AES/CBC/PKCS5Padding メソッドを使用してデバイス上のユーザーのデータを暗号化するアプリを構築していますが、セキュリティは非常に重要です。誰かがデータベースを手に入れた場合に備えて、総当たり攻撃を防ぎたいです。

テーブルの各行には、タイトルが関連付けられています。シードとして何を使用すればよいかわかりません。次のいずれかを実行できます。

  1. ソースに自分のシードをハードコーディングしますが、誰かが私のアプリを逆コンパイルすると、これを読み取ることができると思います

  2. ユーザーが入力したタイトルをシードとして使用

  3. 自分のシードと入力したタイトルを連結して使用する

他の方法がない限り、上記のすべてのシナリオで、誰かが種を見つけている様子を視覚化できます。これは、暗号化されたデータをブルート フォースできるようにするのに役立ちますか? もちろん、上記のすべてのシナリオで、キーの一部としてユーザーのパスワードも含めます。

潜在的なハッカーにとってより困難にするにはどうすればよいですか?

編集(再編集)

以下の返信と私の調査と思考プロセスに基づいています。以下ができると思います。

  1. ユーザーにパスワードを入力させますが、データベースには保存しません
  2. 機密データを保存する前に、それを識別するためにラベルを入力する必要があります。これをクリア テキストとしてデータベースに保存し、salt として使用します。
  3. ユーザーのパスワードと PBKDF2 のラベルを使用してキーを生成しますが、保存はしません
  4. #3 で生成されたキーを使用して機密データを暗号化します
  5. 復号化するには、ユーザーのパスワードと行ラベルに基づいてキーを再度生成し、それを使用して機密データを復号化します

これは正しいと思いますか?ハッカーが 2 つの列 (ラベルのクリア テキストと暗号化されたデータ) を含むデータベースを入手した場合、何かを推測できますか?

編集 2

具体的にAndroidアプリを構築することを計画しています.次のリンクは私が必要としていたものでした.

https://nelenkov.blogspot.in/2012/04/using-password-based-encryption-on.html?m=1

https://android-developers.googleblog.com/2013/02/using-cryptography-to-store-credentials.html?m=1

0 投票する
0 に答える
241 参照

java - jdk 1.6 で弱い暗号スイートを無効にする方法はありますか?

1.7 以降の java.security ファイルがあることは承知しており、そこで無効な暗号スイートを設定できます。1.6でも同じことができますか?