History of OS X Keychain Integration in 1Password

Since the very beginning, 1Password has proudly used the Mac OS X keychain Services to store all of its information. Written by Apple, this service is a fantastic component of OS X and a shining example of why developing for the Mac is better than for any other platform. After years of use, we learned a lot about the nuances of the Mac OS X keychain and how users benefited from it, as well as where things could be improved.

This document describes the reasons 1Password originally used the Mac OS X keychain and why a transition to the Agile Keychain was needed.

Why Did 1Password Originally Use the Mac OS X keychain?

The Mac OS X keychain has many benefits that made it a natural choice:

How Can the Agile Keychain Be Even Better?

As 1Password matured and became more mainstream, many users started requesting features that were not possible with the Mac OS X keychain. While the benefits of the Mac OS X keychain were many, they were beginning to be outweighed by the following drawbacks:

Decision to Develop the Agile Keychain

The Mac OS X keychain has served 1Password very well over the years. With the introduction of the iPhone SDK and the many great ideas for improvement from our users, the drawbacks associated with the Mac OS X keychain have started to outweigh the benefits. In fact, while investigating alternatives we realized that the main benefits of the Mac OS X keychain could all be achieved in other ways while learning from its existing limitations and avoiding them.

In the end, probably the greatest motivation to make a change was syncing. When Leopard and MobileMe were released, the reliability of the Mac OS X keychain syncing became spotty at best. Given that syncing is one of the most important things for a password manager, it is unacceptable to have any unreliability in this area. In fact, about a third of our customer support inquiries are related to syncing issues in one way or another.

1Password therefore now uses the Agile Keychain format to address these issues while building on the tenets of the Mac OS X keychain. If you’d like more information on the architecture and design of the Agile Keychain, please refer to the Agile Keychain Design document.