Details are on the Beta Page, but I think we are almost there. I’ve still got an issue with file updates from SecretBook 3 to 4, but that is the only major issue left.
Since so much is happening at the moment I think I should be posting regular status updates here.
As I said previously, Mobile SecretBook has been submitted to Apple. That means that I can get back to SecretBook 4.0 work.
SecretBook 4.0 has one crashing bug to do with updating databases from SecretBook 3 format. That is my top priority and has to be fixed before the release. There are a bunch of other things to fix too, but they are all either minor or are very quick to fix.
For the final release the help file needs to be updated and the localisations remade.
If you don’t encounter the file updating bug though SecretBook 4.0 is quite usable now. I am keeping the file format fixed too, so you should be able to update to the final release with no problems.
The new web site is live, but there is still some work to do. I have no information on Mobile SecretBook yet, that needs to be fixed.
The Kagi store has not been updated, this means an ugly transition from the new site design to the old design.
I’ve just realised that now that the old site is gone there is no download link for SecretBook 3.2.3, I’ll need to fix that as soon as possible.
I’ve fixed all broken links I can fine, but please report any that you may find.
While writing SecretBook I try to adhere to some basic rules to make SecretBook as secure as is possible. I’ve never listed those rules before, so I thought it was about time I did.
Instead of passing a variable around containing a password I try and keep it in one place. Code that needs the password can ask the object that owns the password to use it. In the case of SecretBook there is a class called SBCrypto. It owns the password (or more correctly a key derived from the password) and is the only place that has access to it. You can ask SBCrypto to encrypt or decrypt something, but you can’t ask it for the password.
Once you’re done with a piece of private information you need to clear it away as soon as possible.
Where possible don’t just deallocate an object, but overwrite the memory so that the underlying data is destroyed.
Sometimes this is hard work, but it is worth it. For example when you Copy a value in SecretBook it does not actually decrypt it. All the code does is signal to the clipboard that SecretBook owns the clipboard. When (and if) you do a Paste the clipboard asks SecretBook for the value, it’s only then that it is decrypted. If you don’t paste then no decryption occurs. That’s also how SecretBook can tell if you have pasted already and clears the clipboard after a paste if you have OnePaste enables.
Some simplistic password applications encrypt your entire file in one go. The downside to that is they also decrypt your entire file whenever you open it.
Unix, on which Mac OS X is based has a long history of enabling secure applications. One of the basics of this security is address space protection. One application cannot snoop in the memory of another application. This is why SecretBook is a self contained application and has no plug-ins. You know those Safari plug-in apps that you may be tempted to use, well any other plug-in can access your passwords. That’s not a risk I’d be prepared to take.
You can’t always keep to these rules, sometimes Cocoa requires you to copy something, say for example when you are using a text field. As the Pirates in Pirates of the Caribean say, “they’re more ‘guidelines’ than rules”, but they are important nevertheless.
I’ve just submitted Mobile SecretBook to the Apple App store. I’m not sure how long it will take to become available, but it should only be a few days.
There could be some additional delay though if I have to get extra US export documentation for the encryption. I’m hoping that this is not the case, but if it is it could mean a delay of up to 30 days. It may be possible to sell in the US store during this time though.
I’ll be updating the web site with some screenshots and more details over the next week or so. I’m also hard at work getting SecretBook 4 finalised.