2016-08-24 21 views
7

Uwaga: w celu wyjaśnienia nie jest to klucz interfejsu Firebase API, może to być bardziej jak token ... coś, co posiada aplikacja kliencka, a punkt końcowy serwera jest weryfikowany.Czy można użyć narzędzia Firebase RemoteConfig do przechowywania kluczy API?

Staramy się zrobić jeszcze lepiej, aby zabezpieczyć klucz API (uważamy, że token służy do sprawdzania klienta do punktu końcowego). Wszystko będzie w naszej wewnętrznej sieci, ale nadal chcemy mieć pewność, że tylko nasz klient mobilny może wywołać punkt końcowy.

Myślałem, że możemy umieścić klucz API w parametrze zdalnej konfiguracji Firebase (z niepoprawną wartością domyślną wbudowaną w aplikację). Jednak dokumentacja Firebase do zdalnej konfiguracji mówi:

Nie przechowuj poufnych danych w kluczach parametrów zdalnego parametryzowania ani wartości parametrów. Możliwe jest odkodowanie dowolnych kluczy parametrów lub wartości zapisanych w ustawieniach konfiguracji zdalnej dla twojego projektu.

Nie byłem pewien, czy chodzi tylko o wartości domyślne, które są dołączone do aplikacji, czy też są to wartości, które są ładowane zdalnie. Po uzyskaniu klucza możemy go zaszyfrować i zapisać na urządzeniu za pośrednictwem naszego dostawcy MDM.

Czy transfer zdalnych danych konfiguracyjnych do aplikacji jest zaszyfrowany lub czysty?

Dzięki za wszelkie dodatkowe informacje, które każdy może podać o zdalnej konfiguracji.

+0

W kontekście Firebase klucz API zazwyczaj nie identyfikuje konkretnego klienta, ale jest to prosta wartość, która umożliwia powiązanie klienta z jego projektem wewnętrznym. To wyraźnie ** nie ** wyciek bezpieczeństwa, aby osadzić te w swojej aplikacji. Wygląda na to, że twoje klucze API są inne, ale w takim przypadku warto rozważyć użycie innej nazwy. :-) –

Odpowiedz

0

To zależy od tego, jak bezpiecznie chcesz zachować klucz API. Do czego służy klucz API? Jeśli chodzi po prostu o identyfikację aplikacji w innej usłudze, na przykład w interfejsie API danych YouTube, najgorszym, co może się stać, jest to, że złośliwy użytkownik użyje przydziału dla tego zasobu. Z drugiej strony, jeśli klucz umożliwia posiadaczowi dokonanie nieodwracalnych zmian ważnych danych bez dalszego uwierzytelniania i autoryzacji, to nigdy nie chcesz, aby był przechowywany na ich urządzeniu w dowolnej formie.

Twoja oferta z dokumentacji Firebase odpowiada na twoje pytanie. Ogólnie nie powinieneś przechowywać kluczy prywatnych w swojej aplikacji. Sprawdź odpowiedzi na this question dla dokładnych wyjaśnień.

Korzystanie z konfiguracji zdalnej Firebase nie jest bezpieczniejsze niż przesyłanie kluczy w pakiecie aplikacji. Tak czy inaczej, dane trafiają do sprzętu użytkowników. Złośliwa osoba może wtedy teoretycznie uzyskać do niej dostęp, bez względu na to, jak trudna może być dla nas myśl.

Ponadto, nie mogę powiedzieć na pewno (powinieneś być w stanie to łatwo przetestować), ale bardzo wątpię, że wartości zdalnej konfiguracji są wysyłane jako zwykły tekst. Google robi wszystko domyślnie za pomocą protokołu HTTPS.

Powiązane problemy