2012-02-15 10 views
1

ブラックベリーアプリケーションからsqliteデータベースを作成すると、Aと言えば、ブラックベリーでは同じデバイスの別のアプリケーションBがデータベースにアクセスできる可能性がありますか?はいの場合、どのようにしてsqliteデータベースを作成するアプリケーションだけがアクセス権を持つようにすることができますか?ブラックベリーデータベース保護

P.S.これを見てくださいhttp://docs.blackberry.com/en/developers/deliverables/17952/Protecting_a_SQLite_database_1219777_11.jsp

私は暗号化と保護の部分のサンプルを完全に理解していません。もしこれについてヒントを与えることができれば、大きな助けになるでしょう。事前

答えて

0

保護されたデータベースを作成できました。私のコード

  URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/MyEnProDatabase.db"); 
      DatabaseSecurityOptions dbso = new DatabaseSecurityOptions(true); 

      CodeSigningKey codeSigningKey = CodeSigningKey.get(this); 
      Database d = DatabaseFactory.create(myURI,dbso); 
      d.close(); 
      DatabaseFactory.encrypt(myURI, new DatabaseSecurityOptions(codeSigningKey)); 

私はファイル署名者アプリでコードに署名しました。それから、このデータベースを削除するシンプルなプログラムを書きました...この新しいアプリケーションは上記のdbアプリケーションを作成するのに使用された私のKEYファイルについて全く知らないことに注意してください。私はそれを実行したときに、DBを削除することができます。しかし、これは起こるはずがありません、そうですか?データベースは保護されたデータベースだったので、同じキーを使って署名されたアプリケーションだけがアクセス可能でなければなりません。

私はここで何が欠けていますか?

3

おかげで、実際のデバイス上で実行されているすべての(非自明な)BBのアプリはコード署名キーを持っている必要があります。 この例では、他のアプリがアクセスしないようにキーを使用しています(キーがわからないため)

+0

チップがありがとうございました。コードサンプルを見てみると、CodeSigningKey codeSigningKey = CodeSigningKey.get(CodeModuleManager.getModuleHandle( "SQLiteDemo")、 "XYZ");この「XYZ」は何ですか?これはリリース前にアプリケーションに署名する際に私が使用するのと同じキーですか? – arin

+1

http://support.blackberry.com/t5/Java-Development/Signer-ID-BlackBerry-Signing-Authority-Tool/td-p/53070 – seand

+0

ありがとうございます!私はそれを通過し、すぐに私の理解のもとにあなたに戻ってきます。 – arin