Please allow us to add expiration date/time to Keychain items

Originator:noloader
Number:rdar://20644404 Date Originated:21-Apr-2015 08:44 PM
Status:Open Resolved:
Product:iOS Product Version:8.1
Classification:Feature Reproducible:
 
Summary:
Often, an application needs to authenticate a user on a remote server. In exchange, the user gets a token for access on the server.

In mobile security, when the data sensitivity warrants (like medium and high value data), we *don't* allow the token to be persisted because we don't want an attacker to stumble upon it. This poses a problem for mobile apps which loses focus. We don't know if the app will be run again.

A way to solve this is to enforce sessions on the server. But in practice, many systems can't enforce it. For example, some server applications reuse sessions for a user. Django is a perfect example - "logout" does not delete a session because its tied to a user, and the session may be used on a different computer or device. We know its a bad idea, but that's the way it is.

I imagine there are other scenarios that would benefit from the ability for an unattended wipe of a secret enforced by the OS.

In an effort to mitigate the risk, it would be nice if we could put the secret in the Keychain with an expiration, and know the OS is going to wipe the keychain item. We know the wipe will occur even if the app is not running.

Steps to Reproduce:
N/A

Expected Results:
N/A

Actual Results:
N/A

Version:
iOS 8.1

Notes:
N/A.

Configuration:
Movile devices

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!