2013-02-22 9 views
5

Buduję aplikację Windows Store, która korzysta z SQLite do przechowywania danych. Dowiedziałem się, że baza danych jest łatwo dostępna za pośrednictwem lokalnego folderu użytkownika (w rzeczywistości wszystkie aplikacje mają publicznie ujawnione wszystkie dane). Czy istnieje sposób na przynajmniej słabą ochronę bazy danych przed dostępem?WinRT SQLite Encryption

Odpowiedz

3

trzeba spojrzeć na klasy ProtectedData

http://msdn.microsoft.com/en-us/library/windows/apps/windows.security.cryptography.dataprotection.dataprotectionprovider.aspx

To naraża łatwy w użyciu Protect/metod UNPROTECT które mogą być używane do szyfrowania/deszyfrowania, że ​​na poziomie aplikacji. szyfrowania danych przed zapisaniem do DB i odszyfrować przed konsumentami

+0

Dobra odpowiedź - wszelkie pomysły na skuteczność uderzenia z procesu szyfrowania/odszyfrowywania? – dougajmcdonald

+0

zawsze występuje wydajność. Jest to jednak prostsza forma szyfrowania i nie powinna być tak kosztowna jak PKI. Szyfrujesz tylko poufne dane, a nie całe szyfrowanie. –

0

ja również poszukuje tego samego rozwiązania i znaleźć sqlite-kryptę na http://sqlite-crypt.com/download.htm

Nie wiem, czy to wystarczy jeden dobry czy nie. Istnieje wersja próbna, która ogranicza długość hasła do 6 znaków i zapisuje je jako czysty tekst w nagłówku. Nie będzie odpowiedni, jeśli chcesz kompletnej ochrony danych. Ale do testowania, może warto spróbować. Nie mam jeszcze okazji go przetestować, ponieważ wciąż pracuję nad serwerem po stronie mojego projektu. Zaktualizuję go, gdy przetestuję go w przyszłości.

EDYCJA: Ok. Przetestowałem wersję próbną i działało dobrze ze zmodyfikowaną wersją opakowania SqliteWinRT na codeplex. Zauważ, że wersja próbna jest ograniczona do 5-6 znaków hasła, a to fraza fazowa jest zapisana w postaci zwykłego tekstu, a ponadto jest skompilowana w binarnym kodzie x86, co oznacza, że ​​nie będzie działać dla rzeczywistego produktu wymagającego obsługi ARM. Musisz kupić plik binarny, aby uzyskać pliki binarne gotowe do produkcji.