Core Data - Encryption / Decryption on iOS - ios4

I know that in iOS, if the .sqlite is updated / read by SQL statement, then SQLCipher can be used to do encryption and decryption.
Is there any suggestion if Core Data is used instead ? The requirements are:
Core Data is used instead
Backup via itune for the application data is still be encrypted
Thanks

If you want the SQLite to be encrypted when the device is locked only, then the on-disk encryption feature introduced in iOS 4 is your answer.
Otherwise, you may need to encrypt stuff programmatically. Cf. Core Data SQLite encryption?.
But AFAIK, there's no built-in support of any SQLite encryption feature in Core Data.

Related

How to do Data Encryption In Hadoop?

How can I apply AES encryption to hadoop? Is it possible? If not, help me encrypt the data file in hadoop
The latest versions of hadoop supports encryption. We can create encrypted zones and the data that we transfer to these zones will be encrypted automatically and the data retrieved from this zone will be decrypted automatically. This is also known as REST data encryption. The detailed steps are given in the apache website. This doesn't need any change in the code that access this data.
This can be also equated to server side encryption.
If you want custom encryption to be applied to the files in hdfs, it will be little complex, because you have to apply the encryption/decryption logic in all the programs that uses these data. If the data is encrypted using custom encryption logic, the RecordReader and RecordWriter classes needs to be modified to work with the data.

Use different encryption algorithm in BIRT webapp

I'm developing BIRT reports, which are deployed as a WEBAPP on Jetty.
Currently all the passwords in my Connection Provider Stores are Base64 'encrypted', but I'm wondering if and how I can use another encryption algorithm for my encrypted-properties.
<encrypted-property name="odaPassword" encryptionID="base64" value="......."/>
I've read something about Encryption Extension Points but I'm not sure if this concept also applies to BIRT webapps and how to implement this / where to put them.
Best regards,
Richard
Base 64 is an encoding method, not an encryption method. See https://stackoverflow.com/a/4070709/2782404. What are you currently using for encryption?
Have you seen this example of encryption extension point implementation for BIRT? http://www.informit.com/articles/article.aspx?p=1748986&seqNum=6
If so, source code might be helpful for understanding your specific problem

Couchbase Security

Could anyone point me to documentation of encryption options available for couchbase? With SQL Server we have the option to encrypt data at table or db level. Is it possible to encrypt couchbase data in a similar way?
I believe that Gazzang is what you want to look at in regards to data encryption for Couchbase:
Gazzang for Couchbase offers a powerful, policy-driven solution that enables you to encrypt your data stored in Couchbase Server. With Gazzang, data files in Couchbase Server are encrypted on disk. This ensures that your data is not compromised if your database is stolen, copied, lost, or otherwise improperly accessed.
Source and more information on Gazzang: http://www.couchbase.com/couchbase-server/connectors/gazzang
You could also use file system encryption - windows provides the option.

Can HTML5 localStorage in Cordova/Phonegap app be synced to iCloud?

I have a Phonegap/Cordova app that runs on iOS. It saves it's data into HTML5 localStorage.
I'm trying to work out if it's possible to sync the localStorage data (using iCloud) to other iOS devices, and even OS X.
From what I can see, in iOS localStorage is actually implemented as a SQLite database, which (when using Phonegap/Cordova) is written to the app's Documents directory:
Documents/Backups/localstorage.appdata.db
I also understand that there are three main ways of storing data in iCloud:
Key/Value storage
UIDocument / NSDocument
Core Data
I know I can't use the Key/Value iCloud storage method, because I have more than 1MB of data to store, and the limitation is 1MB per app with that method.
This question, I believe is talking about the UIDocument method, and asks if it is possible to store a SQLite db file in iCloud using that method. The answer is no because the database may become corrupted.
So that really leaves the Core Data method.
So my question is - would this work? Could I sync the localStorage.db file to iCloud using Core Data?
I've never used Core Data and don't know much about it. I'm just wondering if it would be possible, or if there is something else I don't understand.
Are there any other ways to sync localStorage data between iOS devices or OS X ?
The answer unfortunatly appears to be no, Core Data cannot be used with HTML5 localStorage
Core Data can not be used with SQLite databases other than ones created with Core Data. If you try to, you get this error in XCode:
SQLite error code:1, 'no such table: Z_METADATA'
This is explained the Core Data docs:
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdFAQ.html#//apple_ref/doc/uid/TP40001802-SW2
Although Core Data supports SQLite as one of its persistent store
types, the database format is private. You cannot create a SQLite
database using native SQLite API and use it directly with Core Data
(nor should you manipulate an existing Core Data SQLite store using
native SQLite API)
I still want to solve this issue though. I'm thinking of creating a Javascript API that mirrors the localStorage API. This would be a phonegap plugin that can call objective-c code, and effectively write it's changes to a Core Data database. The Core Data database should then be able to be synced to iCloud.
If it works, I'll come back and update this answer.

Security For Firebird Database(s)

I am using firebird server 2.50. As far as I know there is no way to encrypt a database in Firebird. So how to secure the user data?
Manually encrypting all data before saving would cause trouble since i will not be able to use something like "starting with".
I use CentOs for Database servers. These servers are communicating with an Application Server which runs on Windows Server 2008.
Encryption is one kind of several protection measures which can be done against potential adversaries. And there are other methods too. You need common security analysis before you go with decision whether to encrypt or not, and if not than what. You have to look who are adversaries, where they could hit, etc-etc-etc. Blind use of encryption may be waste of resource/time/money/etc. Do security analysis first.
DB encryption is possible in version 3:
With Firebird 3 comes the ability to encrypt data stored in database. Not all of the database file is encrypted:
just data, index and blob pages.
To make it possible to encrypt a database you need to obtain or write a database crypt plug-in.
Refer to Firebird-3.0.0_Alpha1-ReleaseNotes for details

Resources