Шифрование данных на мобильном устройстве

Хранение данных в СУБД мобильного приложения рекомендуется осуществлять с применением шифрования. Шифрование данных обеспечивается стандартными средствами SQLite с помощью методов библиотеки OpenSSL версии 1.1.0g.

Для шифрования данных воспользуйтесь методом openBase ядра библиотеки мобильной платформы. При этом необходимо передать ключ шифрования. После этого загрузка данных, полученных с сервера, сопровождается одновременным шифрованием и записью в СУБД.

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

Рекомендации по созданию ключа шифрования

Ключ рекомендуется формировать из пары логин и пароль мобильного пользователя. При этом механизм шифрования данных в базе данных мобильного устройства будет следующим:

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

  2. К полученному параметру применяется хеш-функция SHA-256. Результат данной функции используется в качестве ключа шифрования СУБД SQLite.

  3. При записи в СУБД полученный ключ передается в методе openBase. Для шифрования используется блочный алгоритм AES-256-CBS.

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

Для усиления криптостойкости алгоритма рекомендуется использовать добавление дополнительного ключа - «соли». При этом механизм шифрования данных в базе данных мобильного устройства будет следующим:

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

  2. К полученному параметру применяется хеш-функция SHA-256.

  3. Формируется дополнительный ключ - строка из 20 символов. Допускается определение ключа на уровне приложения.

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

  5. К полученной строке повторно применяется хеш-функция SHA-256. Результат данной функции используется в качестве ключа шифрования СУБД SQLite.

См. также:

База знаний