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 использует это право для предоставления приложению доступа к своим собственным элементам цепочки для ключей.