iOS-приложение для экстренного реагирования — как обезопасить данные без пароля?

У меня есть уникальный вариант использования: мне нужно улучшить отдельное приложение для iPhone «EmergencyResponse» (название изменено для этого поста), которое используется пациентами из группы риска. Пациенты / лица, осуществляющие уход, настраивают приложение с информацией о своих лекарствах, контактной информацией врача, контактами семьи, информацией и т. д.

Приложение выводит на экран блокировки iPhone сообщение «Разблокируйте телефон и откройте «EmergencyResponse», которое подскажет, как мне помочь».

Поэтому, если пациент где-то теряет сознание и приходит добрый самаритянин, он видит сообщение и переходит к открытию приложения на телефоне. Когда приложение открыто, добрый самаритянин может увидеть сообщение «Привет, меня зовут Джон Смит. Если у меня возникнут проблемы, позвоните моей жене Джилл Смит по телефону 123-456-7890 (мобильный)... и т. д.» получает возможность видеть детали состояния здоровья пациентов, принимаемые лекарства и т. д. (все, что может помочь людям экстренного реагирования)

Компания, которая спонсирует приложение, хочет убедиться, что я использую шифрование без ущерба для использования (т. е. у пользователей не может быть запрошен пароль). Я думал о хранении ключа шифрования в коде. Элементы данных, хранящиеся в основных полях данных, могут быть зашифрованы с помощью ключа и расшифрованы при необходимости доступа к базе данных. Есть только ограниченный объем данных и нечего запрашивать, поэтому после расшифровки данных я мог сохранить все в объектах модели.

Прежде чем я закатаю рукава и начну, я надеялся получить разумный совет о том, сработает ли это, является ли это лучшим вариантом или есть что-то еще, что будет работать лучше (я слышал о списках ОСВ, но никогда использовал такие)! С нетерпением ждем ваших ответов!


person CoolDocMan    schedule 15.05.2013    source источник


Ответы (1)


Две мысли:

1) просто сохраните все данные в словаре в KeyChain - я не уверен, что такое разумный предел, но я думаю, что несколько тысяч байт не будут проблемой.

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

Однако я не понимаю, почему вы вообще хотите шифровать. Если этот человек потеряет телефон, данные можно будет считать с экрана, не так ли? Итак, вы просто хотите защитить данные в файловой системе, но нормально, чтобы случайный человек мог прочитать их с экрана?

person David H    schedule 15.05.2013
comment
Спасибо! Вы правы, вариант использования немного запутан! Хотя основная предпосылка заключается в том, что люди заслуживают доверия, клиент по-прежнему беспокоится о конфиденциальности данных. Просто хочу убедиться, что у меня есть варианты шифрования, чтобы мы могли изучить некоторые практические решения/альтернативы... например. если человек был в реальной чрезвычайной ситуации, то данные должны быть открыты, но если телефон потерян или украден, данные должны быть недоступны. - person CoolDocMan; 16.05.2013
comment
Что ж, думаю, я хочу сказать, что если вы спроектируете его так, чтобы данные были доступны доброму самаритянину, то они также будут у любого, кто украдет телефон. Вы можете потребовать от пользователей носить эмблему с QR-кодом, которую нужно поднести к телефону, чтобы разблокировать информацию. По крайней мере, с украденного телефона это будет невозможно прочитать. Я не вижу, как вы можете защитить данные в противном случае. - person David H; 16.05.2013
comment
Мне нравится идея эмблемы с QR-кодом. Это работает для этого варианта использования! - person CoolDocMan; 16.05.2013