As I write this, I’m uploading a fully encrypted copy of my personal iBank document to our new iBank Cloud Sync server. The initial upload takes a few minutes, but subsequent updates are very fast. I’m going to devote this entire blog post to our new cloud-based sync solution. Specifically, I want to talk about where we are with development, some details of the implementation, the release timeframe and most important, security, in terms of implementation and user experience.
We hit a major milestone this week: we have all data syncing on both Mac and iOS. That means you could push a full copy of your data on your Mac and pull down a full copy to a document on another Mac, or on your iPad or iPhone. I want to be clear too: this isn’t some baby sync, like sharing a file via Dropbox, which is prone to data overwrite errors. This is a full, cloud-based sync solution with end-to-end encryption for any number of devices. If you can’t tell, I’m really excited to get this in the hands of our customers. The user experience is unparalleled.
For the rest of the development process we need to continue to test internally and uncover as many of the sneaky sync bugs as possible. I’m sure there are some in there, because sync is really hard. We’ve been developing this for over a year and we are now seeing the light at the end of the tunnel. As we continue to fix bugs we also need to finish putting in some of the polish and management utilities, like being able to rename a document on the server, delete documents from the server, reset data on the server with local data, etc.
Once we’ve finished our internal testing and have the few remaining supporting components in place, we will introduce this feature in free updates to iBank for Mac, iPhone and iPad. The new iBank Cloud Sync will first be rolled out as a beta. It will likely remain in beta until the current sync solution is finally removed in a future release, sometime next year. Our goal is to release iBank Cloud Sync as a beta by the end of the year.
This is the most important topic of this blog post. We take security and privacy very seriously at IGG. When we first discussed implementing iBank Cloud Sync, the first question was how to do it securely. So what I want to describe next is what happens to your data, with some heavy security vocabulary for those that are interested. Before I get into the nitty gritty of what happens with the syncing, I want to let users know our Cloud Sync will be rolled out on a brand new server. We implemented this new server setup because we wanted to have a secure backend serving up the data. I don’t want to go into the details of the server setup, but we are having it tested by a third-party security firm, as we’ve done with our other services in the past. An independent audit is a critical step in making sure our servers are secure.
Now let’s talk about what happens during sync. The first thing you will do is choose to push your document to the Cloud Sync server. To do this, you will need a free iBank ID. You will then be asked to name the document as it will appear on the server. However, before iBank uploads anything from your document, it encrypts it. That means no unencrypted data ever makes it to our server. Some companies choose to encrypt the data when it lands on the server, but this did not seem secure enough, so we implemented device-based, end-to-end encryption. First we generate a cypher and use that to encrypt the actual data, we then use a customer supplied password to encrypt the cypher. Only the encrypted cypher is stored on our server. We use the maximum level of encryption natively available on iOS 8, which is AES 128.
Here is a list of the data types that are actually sent to the server:
– Accounts, categories, account groups and smart accounts
– Account connectivity info (e.g. Direct Access and OFX settings, but not passwords)
– Transactions (but not attachments), transaction templates, scheduled transactions and import rules
– Budgets and reports
Here is a screenshot of part of the setup process for sending an iBank document to the Cloud Sync Server for the first time (screenshot is NOT final):
Once all of that data is uploaded to the iBank Cloud Sync server, it can be accessed from either iBank for Mac, iPhone or iPad, or any combination thereof. To pull this data down onto a new device you’ll create a new document that is linked/synced to a Cloud Document. When you login with your iBank ID you’ll be shown a list of all of your cloud documents that are available for syncing. After you choose one, you’ll need to enter the same document key to decrypt the data. If you forget that key/password, you won’t be able to decrypt and see your data. No one at IGG will be able to help you recover this key, because it is yours and yours alone. You will be able to delete the cloud document from the server and start fresh by uploading a new document.
Bringing Cloud Sync to the iBank family of products is major advancement. It makes it easier than ever to have all of your data up-to-date on any device. It also “frees” you from having the Mac be the central hub of your finances. For those that have gone iOS-only, you’ll be able to sync just your iPads and iPhones. One other “side-effect” is that you will also always have a backup of their data. We are really looking forward to getting this exciting technology in your hands.