Подводные камни пароля брелок - PullRequest
3 голосов
/ 12 сентября 2010

Есть ли какие-либо известные ловушки, которых следует избегать при хранении пользовательских паролей в связке ключей? Я планирую дать пользователям возможность запрашивать пароль для доступа к моему приложению для iPad. У меня есть базовое чтение и запись строки для работы цепочки для ключей. Я просто хочу убедиться, что я не позволю им войти в сценарий, который они запирают не по своей вине. Например:

  • Позволит ли клавиатура вводить специальные символы, которые невозможно сохранить или прочитать из цепочки для ключей
  • Есть ли ограничение на длину строки

Спасибо за любые идеи, которыми вы можете поделиться.

Ответы [ 2 ]

2 голосов
/ 12 сентября 2010

Сохранить пароль.Прочитайте это назад.Убедитесь, что это работает.Если нет, сообщите пользователю об ошибке и заставьте его ввести другой пароль.

Не все клавиатуры могут вводить все символы.Клавиатура блокировки телефона в 3.1.2 или около того (не уверена, исправили ли они это) имела ошибку, из-за которой вы могли бы ограничить себя «ASCII-совместимыми» клавиатурами (например, не иврит), но не ограничить символы, которые моглипоступил;включение определенных клавиатур добавило бы дополнительные акценты, а некоторые клавиатуры имели дополнительные символы.Затем вы можете отключить некоторые клавиатуры, заблокировать телефон и не иметь возможности разблокировать его.(Я сделал резервную копию перед тестированием.)

В вашем случае вы не мешаете пользователю использовать клавиатуру, так что это не проблема.

Обратите внимание, что вы приближаетесьэто не в ту сторону: пароль разблокирует контент.Вы пытаетесь сохранить контент в безопасности.Вам не нужно никуда сохранять пароль (вы можете просто использовать его для шифрования содержимого).

Файлы также будут отображаться в незашифрованном (незашифрованном) резервном копировании.В 3.1.2 вы можете создать резервную копию телефона, заблокированного паролем (не уверен, исправили ли они это в 3.2);это означало, что на устройстве без пароля резервного копирования вы можете украсть все, подключив его к ноутбуку и нажав «Резервное копирование».

Эффективная реализация crypto самостоятельно выходит за рамки этого ответа.

0 голосов
/ 30 июля 2013

Относительно длины строки:

Нет никакой разницы между максимальной длиной хранимой строки в связке ключей iOS и максимально возможной длиной строки. Человек, вероятно, не будет генерировать такую ​​длинную строку, не говоря уже о том, чтобы ее запомнить.

Уместно упомянуть, что при сохранении больших значений в цепочке для ключей наблюдается снижение производительности, поскольку для записи и чтения она должна быть зашифрована / расшифрована.

Похожие сообщения:

декодирование ОГРОМНОЙ строки NSS, нехватка памяти

NSString stringWithFormat медленно

...