2010-06-29 48 views
20

Estoy desarrollando una aplicación que almacenará datos confidenciales para el usuario. Mi problema es utilizar otras aplicaciones con las que un usuario puede ver los datos almacenados. Entonces necesito proporcionar una mejor seguridad para los datos en general.Seguridad de la base de datos Sqlite

¿Hay alguna manera de proporcionar una mejor seguridad para la base de datos y las tablas de SQLite?

Respuesta

6

El autor de sqlite ofrece una versión que encripta datos. No es gratis aunque

+3

Esto parece gratis ahora en http://www.sqlite.org/see/ – skv

+0

@Jay es correcto: la licencia es una licencia perpetua por $ 2000 USD. – DustinB

15

Encripte sus datos antes de ingresarlos en la base de datos. Por lo que yo sé, la base de datos SQLite se guarda en un solo archivo en algún lugar del directorio/data /. Además, sus datos se guardan en formato de texto sin formato. Esto significa que siempre será posible que alguien extraiga esos datos rooteando el teléfono, obteniendo el archivo .db SQLite y abriéndolo con un editor de texto.

Así, cifrar sus datos :)

- , quizás no es un editor de texto Está bien, pero un simple editor hexadecimal. De todos modos ...

+14

Cualquiera que sea capaz de erradicar su teléfono es capaz de descompilar el APK y obtener la clave de descifrado. – CommonsWare

+1

@CommonsWare: Bueno, sí, pero proponga una mejor manera. Estamos hablando de asegurar una base de datos SQLite. Si la pregunta era sobre la seguridad general de los datos, almacenar los datos en un servidor de back-end en algún lugar (comunicarse a través de una conexión segura) sería un mejor enfoque. – Shade

+2

No hay una "mejor manera". Cualquiera que sea capaz de rootear su teléfono es capaz de descompilar el APK y obtener la clave de descifrado. Encriptar la base de datos puede asegurarte contra un porcentaje de personas (aquellos que saben cómo rootear pero no se molestan en buscar la clave de descifrado). Es una regla de seguridad bastante fundamental que no se puede proteger completamente los datos contra un usuario que tiene el dispositivo en cuestión. – CommonsWare

0

¿por qué mantiene datos confidenciales en el teléfono? Si es sensible, ¿por qué no enviarlo de vuelta al servidor donde tiene control sobre las cosas? Si el usuario enraiza su teléfono, básicamente puede hacer lo que quiera. Aparte de eso, la encriptación como Shade mencionado probablemente sea su única opción ...

5

Puede encriptar los datos usando una sal específica del usuario recuperada de su servidor. De esa forma, incluso con el acceso raíz, necesitaría que los usuarios salten para descifrar la base de datos. Como tiene control sobre la sal, proporciona una capa adicional de seguridad, sin embargo, su usuario siempre necesitará una conexión de red para acceder a sus datos.

11

Consulte SQLCipher for Android. Es gratis (licencias Apache 2 y BSD).

PD .: Algunos ORM también son compatibles con SQLCipher ahora, p. nuestro greenDAO.

0

buena manera de proteger la base de datos es la de usar la base de datos protegida por contraseña y se pueden crear mediante el uso de

1- biblioteca androide envoltorio SQL3

2- libsqlite3_jni.so

también, por favor lee el artículo a continuación, haz tu búsqueda en la opción de arriba, espero que esto ayude mucho.

http://www.findbestopensource.com/product/sqlite3-android

Cuestiones relacionadas