2014-12-30 3 views
0

В настоящее время я разрабатываю приложение iOS и в котором я шифрую некоторые пользовательские данные с помощью выбранного пользователем ключа. Данные могут храниться локально или в iCloud или в обоих. Я также хочу разрешить быстрый доступ, такой как 4-значный пин-код или рисованный рисунок.Концепция идентификации идентификатора Touch ID

В обоих случаях я могу хранить зашифрованный ключ в keychain iOS и расшифровывать его с помощью 4-значного кода или строки шаблона. В принципе, я не хранил главный ключ в текстовом ключе в цепочке ключей.

Проблема Touch ID. В настоящее время я храню главный ключ в открытом тексте в цепочке ключей, потому что не могу понять, как это сделать. Если бы кто-нибудь мог дать мне идею, концепцию, псевдокод или что-то еще, я был бы очень признателен.

+3

Детали реализации, подобные этому, относятся к проблеме переполнения стека. –

+0

Не брелок * уже * зашифрован? У меня создалось впечатление, что в этом все дело. – cpast

+1

1. Touch ID упоминается как проблема, в чем проблема? 2. Нет необходимости шифровать ключ при хранении в Keychain. 3. Использование 4-значного кода ** действительно небезопасно **. – zaph

ответ

0

Проблема в том, что PIN-код и шаблон не содержат достаточной информации для создания защищенного ключа. Их можно использовать только для разблокировки (потому что вы можете отклонить логин после попытки X, и вы не сможете автоматизировать процесс входа в систему).

Если я не ошибаюсь, iOS уже использует PIN-код или шаблон для защиты ключевой цепи; this article seems to concur with this. Поскольку Apple делает, похоже, использует PIN-код или шаблон для шифрования, неудивительно, что IOS-брелок-защита легко сломать. Но построение собственной схемы на тех же принципах не поможет, поэтому вы можете также придерживаться ключевой цепи.

Единственный способ справиться с этим - попросить пользователя ввести надежный пароль, использовать на нем PBKDF2 или bcrypt и зашифровать полученный ключ.

Смежные вопросы