2012-09-10 18 views
5

Mam aplikację na iOS, na której pobierane są pliki do lokalnego magazynu. Zrobiłem następujące zachować te pliki lokalne zabezpieczenia: - Przechowuj je poza folderu Dokumenty (używam folder Library) - Wykorzystanie kompletny szyfrowania plikówJak mogę chronić moją aplikację na iOS przed narzędziami takimi jak iFunbox

Ale dzisiaj natknąłem iFunbox. Jest to narzędzie, które umożliwia przeglądanie systemu plików urządzenia z systemem iOS bez użycia jailbreak! Co zauważyłem, że jeśli urządzenie jest odblokowane, mogę przeglądać wszystkie pliki w piaskownicy. Na szczęście, gdy urządzenie jest zablokowane, pliki stają się niedostępne.

Co zastanawiałem się, czy jest coś, co mogę zrobić, aby dodatkowo zabezpieczyć te pliki, gdy samo urządzenie zostanie odblokowane? Jak mogę chronić moje pliki za pomocą narzędzi takich jak iFunbox?

+1

Jeśli są one szyfrowane, jakie to ma znaczenie, jeśli są one dostępne? Przechowywanie poza ~/Documents jest podstawą do odrzucenia przez Apple. – Jessedc

+0

Po odblokowaniu urządzenia szyfrowanie zostaje usunięte, a pliki są w pełni dostępne dla iFunbox. – Deddiekoel

+0

Nadal można używać szyfrowania iOs do szyfrowania zaszyfrowanych plików, to główny pomysł. –

Odpowiedz

5

Te narzędzia do przeglądania plików działają tylko wtedy, gdy urządzenie jest odblokowane, co można zrobić, aby znacznie poprawić bezpieczeństwo, wymaga ochrony hasłem urządzeń, na których działa aplikacja. Można to zrobić w wewnętrznych aplikacjach korporacyjnych, w których dane są niezwykle cenne, uważam, że musi to również zatwierdzić Apple.

Aby dowiedzieć się, czy hasło jest ustawione można sprawdzić atrybuty ochrony manekina pliku utworzonego przez ciebie w dozwolonym miejscu: https://stackoverflow.com/a/6192536/792677

Potem Jeśli hasło nie jest ustawione można wyświetlić powiadomienie, że aplikacja wymaga to. Na pewno można ustawić urządzenie tak, aby wymagało wprowadzenia hasła przez prywatne API przy pomocy inżynierów Apple, ale tak czy inaczej byłoby to prywatne informacje, prawda?

Ogólna rada będzie polegać na użyciu silnego szyfrowania i wykonaniu sprawdzenia kodu dostępu, pokazującego ostrzeżenie o bezpieczeństwie informujące użytkownika, że ​​jego dane są zagrożone, jeśli nie jest ustawione.

+0

Moja aplikacja to aplikacja wewnętrzna i wymagane jest podanie hasła za pośrednictwem profilu. Jednak, gdy hasło jest "zepsute", moim zdaniem wszystko staje się bardzo łatwo dostępne. Więc szukam lepszego sposobu zabezpieczenia danych. – Deddiekoel

+1

Spójrz na CCCRypt http://developer.apple.com/library/ios/#DOCUMENTATION/System/Conceptual/ManPages_iPhoneOS/man3/CCCrypt.3cc.html i szyfrowanie na dyskach http://developer.apple.com /library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW6 A może chcesz dowiedzieć się więcej o zdalnym czyszczeniu, nie wiem, czy to jest już obsługiwane przez urządzenia firmowe, do których zamierzasz wysłać aplikację. –

+0

Tak, zdalne czyszczenie jest włączone. Więc w przypadku znanego naruszenia, powinniśmy być w porządku. Jednak jeśli urządzenie zostanie przełączone w tryb offline, nie będzie działać. – Deddiekoel

1

Nic nie możesz zrobić, aby uniemożliwić dostęp do aplikacji takich jak iFunBox. Uzyskują dostęp do elementów systemu plików iOS, które nie mają nic wspólnego z Twoją aplikacją.

Jeśli twoje pliki są zaszyfrowane poprawnie, to wszystko, co możesz zrobić.

FWIW trzeba upewnić się, że stosując się do Data Storage Guidelines podczas przechowywania dokumentów w miejscach innych niż ~/Documents, ~/Library/Skrzynki i ~/tmp

+0

Powołaj sekcję w warunkach, które to określają. Osobiście wiem, że całkiem sporo aplikacji przechowuje dokumenty w innych miejscach, w tym w bibliotekach i skrzynkach podręcznych. W rzeczywistości Apple faktycznie zachęca do tego w wielu przypadkach. BTW

+0

Wskazówki dotyczące przechowywania danych stanowią wskazówkę, co należy zrobić. ~/Library nie jest jednym z miejsc, które zastrzegają. Zaktualizowałem odpowiedź. – Jessedc

+0

OK, edytowana odpowiedź jest zgodna z moimi oczekiwaniami (jakby to miało znaczenie). –

0

Druga odpowiedź jest je przechowywać w Chmura.

  • iCloud
  • Dropbox
  • Amazon S3
  • Włożyć zdalny serwis tutaj.

Nie przechowując nigdy dokumentów na urządzeniu, można rozwiązać problem, jednak może to być mniej bezpieczne dla niektórych ludzi.

+0

Moja aplikacja musi działać w trybie offline, dlatego przechowuję dokumenty lokalnie ... Tak więc cloudstorage nie jest dla mnie opcją. – Deddiekoel

+0

@Deddiekoel, którego nie określono w pytaniu. – Jessedc

+0

Chociaż nie zostało powiedziane w pytaniu, dane powinny być przechowywane w trybie offline, czy nie jest oczywiste, że takie krytyczne dane nigdy nie mogłyby być wysyłane do serwerów stron trzecich bez mas prawnych i technicznych przygotowań lub zatwierdzeń? –

Powiązane problemy