2014-11-30 2 views
0

Я пишу приложение, которое может синхронизировать базы данных sqlite в разных устройствах, например. Windows 8 и Windows Phone 8.Приложение Windows Runtime Шифрование базы данных sqlite и синхронизации

Теперь для синхронизации я использую заднюю часть azure мобильных сервисов, но сейчас нет шифрования, поэтому данные на локальном хранилище устройства и на лазурке хранятся как «открытые».

Вопрос действительно глупо:

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

Я вижу следующие решения, но они, кажется, имеют свои недостатки:

  1. Сформировать их пароль? - Я думаю, что это плохая идея.
  2. Создать ключ на сервере? - но есть сценарий, когда пользователь вообще не использует синхронизацию, поэтому он не может быть подключен к Интернету.
+3

Пожалуйста, примите немного больше времени, чтобы написать вопрос, проверка орфографии должна быть общедоступной. Попытайтесь написать вещи так, как они должны быть im -> я. Не делайте это сложнее для нас, чем необходимо. –

ответ

1

Запросить у пользователя некоторую информацию о пароле/учетной записи и зашифровать/дешифровать файл базы данных «на лету» с ключом, который будет создан из предоставленных пользователем данных. Нет информации о пользователе, которую вы можете использовать для шифрования/дешифрования файла на разных устройствах. Может быть, только name/email from the signed Microsoft account может быть использован для генерации ключа шифрования/дешифрования, но он совсем не сильный.

+0

Хорошо, спасибо за ваш ответ. Так что, если я буду делать такой путь - при первом запуске приложения пользователь создает пароль, который не будет являться его паролем учетной записи Microsoft. Затем я создаю ключ на основе этого пароля и использую его для шифрования/дешифрования файла. Затем пользователь синхронизирует свою БД с сервером (аутентификация через учетную запись Microsoft) Затем он получает другое устройство и синхронизирует db с сервера на свое новое устройство, а для шифрования/дешифрования этого пользователя db использует свой пароль (который был создан при первом запуске приложения) ? –

+0

Точно. Я не вижу другого способа защитить данные. – crea7or

+0

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

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