SQLCipher encrypts/decrypts just above the write-from/read-to disk level which keeps the SQLite programming model unchanged. You do queries as you normally would, and all of the functionality is retained: your selects, inserts, updates, indexes, etc. all work as with an unencrypted database.
Stephen and Billy also talk about getting an app with crypto into the store, including their experiences with the US Department of Commerce and the NSA’s technical review.
You can listen using the Flash player below, download the MP3, or subscribe to the iPhone Developer Podcast using the instructions at the bottom of this post.
For easy scanning of the interview, here is what was covered and when:
- 1:00 STRIP – “Secure Tool for Recalling Important Passwords” – Secure digital wallet
- 4:00 SQLCipher backstory
- 5:00 SQLite paging system
- 6:00 Hybrid model: STRIP closed source, crypto open sourced — externally verifiable/peer viewed
- 7:30 Transparent to programmer: “Exactly like dealing with a regular SQLite database”
- 9:30 Benefits of page-level encryption versus encrypting higher in the stack
- 11:00 “Negligible” performance penalty: 5-15%
- 12:00 Insert performance fast; update without index — requiring full table scan — higher impact
- 12:30 Extending SQLite
- 13:30 Incorporating SQLCipher into your own projects
- 14:45 OpenSSL Xcode project on Github
- 15:30 SQLCipher with Core Data?
- 22:00 Crypt app approval
- 22:15 US Department of Commerce classification: “mass market encryption software”
- 24:00 NSA technical review
Source Code For Projects Discussed In This Interview
- SQLCipher – SQLite with transparent encryption
- csfio – Transparent encrypted random access file library
- Xcode project structure that can be used to build openssl static libraries
Keep up to date with our iPhone developers’ podcast
Subscribe to our iPhone Development Podcast in one of two great ways:
- Use the podcast’s feed with the feed app of your choice: http://podcast.mobileorchard.com/feed/podcast/
- Subscribe using iTunes by clicking here.
We hope you enjoy the podcast, and if you have any suggestions of who we should interview (or want to be interviewed yourself), use our Contact page or leave a comment against this post. Thanks for listening!