Ciphered Local Storage Plugin

Stable Version 2.1.2 (O11)
Also available for 10
Published on 27 Feb (3 weeks ago) by 
Created on 19 August 2016
Details
This plugin enables you to keep your mobile application's sensitive data safe using a ciphered Local Storage database.
Read More

This plugin enables you to keep your mobile application's sensitive data safe using a ciphered Local Storage database.


How to use this plugin?

Just add a dependency to all elements of this plugin in a module of your application. Once the dependency is in place, your application starts using a newly created database which replicates the structure of your previous local database but which is now ciphered.


To make this change effective you need to:

  • Publish and rebuild your app - to replace the old local storage database with the new ciphered database.

  • Uninstall the previous version of your app - to remove the old local storage for security reasons. The old local storage can no longer be accessed by the application.

  • Install the new version - only this version references the new ciphered database.


Using this plugin disables Android’s Auto Backup for your apps. Auto Backup for Apps automatically backs up user data from different apps. If the app is then installed in a new device, Android tries to restore the ciphered local database that was backed up and the device tries to decrypt it with a new key. This causes the app to crash, thus disabling Auto Backup protects your app from crashing.

This plugin uses a set of open source components, whose license requires a visible reference in your application. For your convenience, you can find the license in the 'License' block under the Public flow of the CipheredLocalStoragePlugin module.


Enable Self Healing

Resets the local database to recover the app when the device is unable to decipher the local database. By default, this is disabled. To enable it, set the EnableSQLCipherSelfHealing preference to true in the Extensibility Configurations.

---

{

   "preferences":{

       "global": [{

           "name": "EnableSQLCipherSelfHealing",

           "value": true

       }]

   }

}

---


Limitations

For Android devices a PIN must be set in the device, otherwise the application won’t start. Removal of the PIN will render the local storage database useless and its data will be lost. Changing the PIN has no effect in the local storage database.

Version 2.1.0 (O11) and  1.1.0 (O10) or higher versions are not compatible with the previous version, so it's supported the upgrade but the downgrade won't work.

The app will stop working if there is a change in the hostname or the application path because the plugin will not be able to read the key to decrypt the local database. Additionally, users will lose all local data from the device.


Performance

The overhead added by this plugin affects response times of the local storage access.

In iOS devices, performance is affected only in scenarios where binary data is read/written .You may experience response times 2x slower. 

For Android devices, performance is affected for all scenarios, as the secure version is between 3x and 5x slower for both simple operations and binary data queries.


Licensing

OutSystems Secure SQLite Plugin
MIT License (MIT)
Copyright (c) 2016 OutSystems

Follows the 3rd party components used and their licenses:

Cordova/PhoneGap SQLCipher adapter plugin
MIT License (MIT)
Copyright (c) 2016 Brodysoft LiteHelpers

SQLCipher Community Edition
SQLCipher Community Edition License
Copyright (c) 2008-2012 Zetetic LLC 

SecureStorage plugin for Apache Cordova
MIT License (MIT)
Copyright 2015 Crypho AS

What’s new (2.1.2)

- New self-heal mechanism that can be enabled by setting the "EnableSQLCipherSelfHealing" preference to true

- Now Android backups will be disable when using this plugin

Reviews (0)
Category
Mobile Plugins
Support Options
OutSystems Supported
Customers entitled to Support Services may obtain assistance through Support.
Dependencies
See all 1 dependencies
Requirements
Platform
11.0.0.200
Database
All
Stack
.NET
Component Consumers
No consumers yet.
Weekly Downloads 
Related Components
Silk UI Web
OutSystems R&D
A fully responsive and beautiful UI framework that works within the OutSystems Platform. Build amazing looking applications, in a fraction of the time, which work perfectly across devices. Learn how to start using Silk UI and see the examples at silkui.outsystems.com . Obtain assistance on using Silk UI in our forums .
28578
OutSystems Now
OutSystems R&D
OutSystems Now brings your OutSystems experience to any device.
9221
OutSystems UI Mobile
OutSystems R&D
Create amazing native mobile applications using this fully integrated UI framework for OutSystems, with dozens of UI patterns ready to use.
10068
More from OutSystems R&D
Silk UI Web
OutSystems R&D
A fully responsive and beautiful UI framework that works within the OutSystems Platform. Build amazing looking applications, in a fraction of the time, which work perfectly across devices. Learn how to start using Silk UI and see the examples at silkui.outsystems.com . Obtain assistance on using Silk UI in our forums .
28578
OutSystems Now
OutSystems R&D
OutSystems Now brings your OutSystems experience to any device.
9221
OutSystems UI Mobile
OutSystems R&D
Create amazing native mobile applications using this fully integrated UI framework for OutSystems, with dozens of UI patterns ready to use.
10068