0

私は現在、機密データを RMS または LWUIT のストレージ クラスを使用して J2ME に保存する必要があるアプリを作成しています。(たとえば、ユーザー名とパスワード)

そのような実装はどの程度安全であり、データが安全で盗難に対して脆弱でないことを確認するために実行する手順は何ですか?

4

1 に答える 1

2

RMS は暗号化されていません。攻撃者は簡単にデータを読み取ることができます。データを暗号化する必要があります。Bouncycastle AES プロバイダーをお勧めしますが、Java AES プロバイダーも機能します (効率は悪く、256 ビット キーを有効にする必要があります)。コードの例については、この質問に対する受け入れられた回答を参照してください。最初に StackOverflow または別の優れた Q&A サイトに問い合わせずにコードを変更することはお勧めしません (暗号化ライブラリを誤って使用するのは非常に簡単です)。Cipher.getInstance("AES/CBC/PKCS7Padding", new BouncyCastleProvider())コードは Java 暗号プロバイダーを使用して、Bouncycastle ライブラリーをインポートした後にBouncycastle プロバイダーを使用します。注意すべき重要な点は、コードがKeyspec specから を生成することです。char[] password- ユーザーは、データを復号化するために、セッションごとに少なくとも 1 回はこのパスワードを入力する必要があります (デバイスにパスワードを保存することはできません。データを暗号化する目的が無効になります)。また、暗号化と復号化の段階で同じ IV (初期化ベクトル) を使用する必要があることも重要です。この IV は、暗号化する各レコードに対して一意である必要があります (たとえば、foo.txt を暗号化する場合は、bar.txt を暗号化する場合とは異なる IV を使用します)、秘密にする必要はありません (プレーンテキストで保存できます)。暗号化されたファイルと一緒に)。追加の予防策として、使い終わったら拭いてくださいchar[] password

于 2013-04-15T13:22:35.450 に答える