でダービー/JavaDB_really_トリプルDES暗号化および数字は半角で入力しDES?
-
20-09-2019 - |
質問
そうでは混乱Triple-DES(>128bit)レール(64bit).ようにしている暗号化、ダービーデータベースのトリプルDES(DESede)Javaを利用して1.5
この 議論のフォーラムメッセージに問題JDK1.5 偶然で確認で本当に使用したDESedeな平野。私が作成したデータベースのトリプルDES(168bit)のURL
jdbc:derby:MySecureDB;dataEncryption=true;encryptionAlgorithm=DESede/CBC/NoPadding;bootPassword=$ecureC@deCanBr@kE0074242
私はまだできるオープンアクセスすると、(plain)DES(64bit)URL
jdbc:derby:MySecureDB;dataEncryption=true;encryptionAlgorithm=DES/CBC/NoPadding;bootPassword=$ecureC@deCanBr@kE0074242
この挙動を期待してい!!!私は開くことができるので、間違った暗号化アルゴリズムです。たいのですが確かでそれを暗号化す右(>128bit)アルゴリズム?
ダービーが使用右側の機能をJava1.5記 JCECipherProvider.java.私の読み取りコードとダービーの取り扱いはいたしません。トリプルDES留学生活を通して様々なもの平DES...でんの信頼を使用しておりますので強力な暗号化?
解決
私は、ドキュメントが間違っていると信じている、とあなたが実際に使用されるべきアルゴリズムは$ DERBY_HOME /データベース/サービスに指定されているため、デフォルト以外のアルゴリズムを使用するときに使用する暗号化アルゴリズムを指定する必要はありません。プロパティ
私はあなたのパラメータを使用してデータベースを作成したときに私の場合、私のservice.propertiesは(他の非関連するエントリの中で)、次の内容を持っています:
log_encrypt_algorithm_version=1
encryptionAlgorithm=DESede/CBC/NoPadding
dataEncryption=true
derby.encryptionBlockSize=8
encryptionKeyLength=168-24
encryptedBootPassword=472b7cc5600605333392dd10a46067d2e2935fd4c350d533-43435
data_encrypt_algorithm_version=1
あなたは、これは使用するアルゴリズムを変更することで、使用されていることを確認することができます。あなたはDESに、そのファイルで指定されたアルゴリズムを変更した場合は、データベースを再起動することができません。
例
$ ../bin/ij
ij version 10.4
ij> connect 'jdbc:derby:testdb;create=true;dataEncryption=true;encryptionAlgorithm=Blowfish/ECB/NoPadding;bootPassword=$ecureC@deCanBr@kE0074242';
ij> quit;
$ sed -i .o 's/Blowfish/DES/' testdb/service.properties
$ ../bin/ij
ij version 10.4
ij> connect 'jdbc:derby:testdb;bootPassword=$ecureC@deCanBr@kE0074242';
ERROR XJ040: Failed to start database 'testdb', see the next exception for details.
ERROR XBM06: Startup failed. An encrypted database cannot be accessed without the correct boot password.
ij> quit;
$ sed -i .o 's/DES/Blowfish/' testdb/service.properties
$ ../bin/ij
ij version 10.4
ij> connect 'jdbc:derby:testdb;bootPassword=$ecureC@deCanBr@kE0074242';
ij> quit;
$
他のヒント
による と暗号化 におけるクロスプラットDB開発者ガイド第URL様へ 暗号化に関するデータベースの作成 (かを指定します dataEncryption=true
やるべき生168ビットの暗号化の鍵となる。
現在、いまだにドキュメンテーションというのはありえないと考えるべき使用 dataEncryption=true
時 起動暗号化されたデータベース.私の理解では、使用する必要があり bootPassword
や encryptionAlgorithm
.
に直面していなかった試験のこと、実は、私は、本当に迷ったら何が起こる確:
- 指定しなければ
dataEncryption
の違いencryptionAlgorithm
第2回ます。 - 指定した場合には
dataEncryption=true
および他のencryptionAlgorithm
(な再現を暗号化データベース?).
の文書なければならない。
私はencryptionAlgorithmパラメータのみ(それはあなたが最初に暗号化されたデータベースを作成しているとき、またはあなたが最初に暗号化されていないデータベースを暗号化する際に、ある)あなたが最初の暗号化を行っている際に重要だと思います。
あなたはそれ以降、データベースを暗号化した後、あなただけbootPasswordを指定する必要があります。ダービーはすでに暗号化アルゴリズムを使用したものを知っています。