I'm working on a security project. I have sensitive data that I would like to store in OS X's keychain. I'm able to add the data programmatically into the OS X keychain by using RHKeychain. But after doing a lot of research, it appears that OS X keychain data can also be accessible (1, 2, …) by malware.

  1. Is OS X keychain data accessible by malware?
  2. If Yes, what is the best approach to secure OS X keychain data?
  3. What is the best approach other than the OS X keychain?

The important words in the articles you quote are "root access". The core of MacOS X is a Unix derivative, and "root" is Unix terminology for God. Or, at least, the super-privileged identity that can do anything. Well, it indeed can. If you think of your computer as a small country, and the attacker has some outsider intend on invading it, then a malware with root access is equivalent to all your army's commanding staff really being agents in league with the attacker. Needless to say, a malware with root access is really a malware who totally owns your computer (and that's no longer "your" computer).

MacOS X tries, like other operating systems, not to allow malware at all, and, if it still enters the computer (by exploiting the human user's gullibility), not to grant it root-like privileges. That's why system administration operations ask for your password: that's an extra layer of safety enforced by the OS before actually giving temporary root privileges to a piece of software. This is the point where the user should ask himself: "Hey, why would such privileges be required by that application ? This looks fishy."

Since an average human user will jump through arbitrary hoops if he is intent of delighting in, say, a screensaver full of cute kitten pictures, such protections are not very strong in practice. However, one cannot really have anything better than the protection level offered by Keychain, as long as the user's computer is still the user's computer. The alternative model is that which is used by the iPhone/iPad line of products: the user can physically touch the hardware, but it remains under Apple's control; only Apple-approved applications can be installed, and there is no way for the user to obtain or grant root privileges.

So, if you "need to fulfil actions", then, basically: either accept that a user can do stupid things on his own computer, and Keychain is about the best possible prevention against it; or make it so that the user's computer is no longer the user's computer (i.e. give him an iPad, not a MacBook).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.