5

Buduję link do aplikacji na Androida w Google Cloud Storage. Chcę zezwolić na dostęp do GCS tylko do mojej aplikacji na Androida.Google Cloud Storage Authentication

Google oferuje trzy rozwiązania do bezpiecznego łączenia się GCS:

  • OAuth 2.0 (Więc z kontem Google)
  • Konto Cookie-zasadowej (z konta google zbyt)
  • Authentication Service Account (z prywatnym klucz, ale lokalnie zainstalowane na Android App: Bardzo źle, jeśli ktoś dekompilować mój apk)

Źródło: https://developers.google.com/storage/docs/authentication?hl=FR

Czy istnieje inne rozwiązanie umożliwiające bezpieczne połączenie z GCS? Chciałbym połączyć się z GCS w ten sposób (Ograniczenie do identyfikatora klienta Android: SHA1 do twojego .apk): https://developers.google.com/appengine/docs/java/endpoints/auth

Jest to możliwe z GCS? Czy powinienem użyć Blobstore, aby to zrobić?

Z góry dziękuję

+0

Napisałem nowe pytanie. Jest to powiązane. http://stackoverflow.com/q/28001476/3216207 – Oru

Odpowiedz

4

Jest to jeden z podstawowych problemów z informatyką. Nigdy nie można całkowicie ufać, że aplikacja uruchomiona na sprzęcie znajdującym się pod całkowitą kontrolą nieznanego podmiotu trzeciego nie została w jakikolwiek sposób naruszona. Istnieje wiele technik, które znacznie utrudniają manipulowanie, ale zdalne systemy nigdy nie będą całkowicie bezpieczne. Istnieje kilka sposobów sprawdzenia, czy użytkownik ma określone konto Google, ale nie można z łatwością ufać z pewnością, że konkretna aplikacja jest właśnie Twoją aplikacją.

Mimo to istnieje wiele sposobów zaprojektowania bezpiecznej aplikacji bez zaufania do klienta. Do czego ma być uprawniona Twoja aplikacja? Prześlij obiekty? Pobierz bezpieczne obiekty? Czy jest coś złego, co może zrobić użytkownik podszywający się pod Twoją aplikację?

+0

Tak więc, w przypadku aplikacji App Engine wygląda na to, że kontem usług są drogi. W przypadku zainstalowanej aplikacji żaden ukryty sekret nie jest naprawdę tajny. Załóżmy, że chcę ograniczyć pobieranie plików tylko do użytkowników, którzy zainstalowali moją aplikację, np. W połączonym pytaniu Oru (https://stackoverflow.com/questions/23756570/google-cloud-storage-authentication/23767657#comment44394349_23756570) . Wiem, że odpowiedź zależy od potencjalnego wpływu kompromisu, ale czy sugerowałbyś umieszczanie referencji (lub tokena odświeżającego lub innego), czy też dałbyś GCS dostęp do tego użytkownika podczas instalacji? – BioeJD

0

Myślę, że możesz użyć 1) do uwierzytelnienia informacji. Aplikacja prześle żądanie uwierzytelnienia na twój serwer (z własnym tokenem do logowania do aplikacji), a gdy użytkownik zostanie zweryfikowany przez własne usługi, aplikacja otrzyma oauth token, który zostanie wysłany do gcloud i otrzyma żądany plik.

Powiązane problemy