iphone / android - Как быстро зашифровать / расшифровать огромное количество важных данных на мобильных устройствах?Какую стратегию вы бы использовали? - PullRequest
0 голосов
/ 05 августа 2011

Я разработаю мобильное приложение для Android и iPhone / iPad, которое будет содержать огромное количество данных (несколько МБ, скажем, 50 МБ).Таким образом, эти данные будут храниться на внешнем хранилище, таком как SD-карта.

Кроме того, они являются критическими, и пользователь не должен иметь возможность их читать !!!

Я думаю, как я могу зашифровать / расшифровать эти данные?

Вот основные моменты, которые следует иметь в виду:

  1. Приложение работает на мобильном телефонеустройство:

    • ограниченные ресурсы (ЦП, память ...)
  2. Эти данные будут доступны только для чтения:

    • требуется только для разработки функции расшифровки на устройстве
  3. Приложение должно быстро реагировать:

    • время отклика на расшифровку должно быть как можно короче

Примечание: только некоторые из этих данных должны быть расшифрованы в соответствии сдействия пользователя:

Для пункта 3, я думаю:

  • использовать механизм индекса для быстрого поиска данных для расшифровки.
  • использование C / C ++функция, чтобы сделатьдешифрование на Android с использованием моста Java / JNI

Какие-либо другие предложения или методы других опытных разработчиков для Android и iPhone / iPad?

1 Ответ

1 голос
/ 05 августа 2011

Прежде всего, нет способа хранить данные на внешнем носителе, таком как SD-карта, на iPhone.

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

Так что, если эти данные должны быть недоступнысвободно доступны через злонамеренную атаку, не храните его на устройстве.

И даже если вы не храните его локально, а вместо этого передаете расшифрованные данные по безопасному каналу по мере необходимости - для этого есть атаки,тоже.

Все сводится к следующему: всегда есть уязвимость, которую можно использовать.Вы можете попытаться сделать так, чтобы злоумышленнику было так трудно проникнуть в него, но вы всегда должны помнить, что это все-таки возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...