SSKeyChain: как заблокировать эту связку ключей?

Мое приложение какао будет иметь следующие функции: 1. защищенный паролем вход в систему. Пользователь должен будет ввести пароль, чтобы использовать приложение 2. После входа в систему пользователь может создать некоторый личный профиль, который может хранить некоторую защищенную информацию, такую ​​как пароль.

После некоторого исследования мне сказали, что я должен использовать KeyChain для сохранения защищенной информации (например, в моем случае, пароля для входа и защищенной информации в каждом личном профиле).

Похоже, есть хорошая оболочка KeyChain, SSKeyChain, которую можно использовать для достижения моей цели (так как я не слишком знаком с c lang, поэтому использование цепочки для ключей яблока будет трудно для меня), и я также нашел несколько примеров использования SSKeyChain iOS: как сохранить имя пользователя / пароль в приложении?:

To save a password:

[SSKeychain setPassword:@"AnyPassword" forService:@"AnyService" account:@"AnyUser"]
To retrieve a password:

NSString *password = [SSKeychain passwordForService:@"AnyService" account:@"AnyUser"];

Однако я не уверен, нужно ли мне "защищать" свою цепочку для ключей: 1. при вызове setPassword:forService:account: я должен включить незашифрованный пароль? или мне нужно сначала зашифровать свой пароль? Кроме того, при установке имени службы, я должен просто включить имя моего приложения 2. Если пароль может быть восстановлен с помощью passwordForService: легко тогда кажется, что это небезопасно? как другое приложение может также вызвать тот же метод для получения цепочки для ключей? (при условии, что они знают название службы и учетную запись)

Я прочитал документацию Apple: https://developer.apple.com/library/mac/#documentation/security/conceptual/keychainServConcepts/02concepts/concepts.html#//apple_ref/doc/uid/TP30000897-CH204-TP9

и кажется, что вы должны "заблокировать" и "разблокировать" эту цепочку для ключей. Я проверил документ SSKeyChain http://docs.samsoff.es/SSKeychain/Classes/SSKeychain.html но не смог найти какой-либо метод для "блокировки" и "разблокировки" такой цепочки для ключей. Так, как я собираюсь защитить это?

1 ответ

Решение

Службы цепочки для ключей из системы ограничивают каждое приложение по умолчанию только доступом к своим собственным элементам цепочки для ключей. Блокировка и разблокировка обрабатываются за кулисами Keychain Services.

Когда вы используете XCode для создания приложения, XCode добавляет право идентификатора приложения в комплект приложения. Keychain Services использует это право для предоставления приложению доступа к своим собственным элементам цепочки для ключей.

http://developer.apple.com/library/mac/#documentation/Security/Reference/keychainservices/Reference/reference.html

Другие вопросы по тегам