Bezpieczeństwo podczas korzystania z interfejsu API REST w aplikacji na telefon iPhone

Wiem, że to pytanie było już zadawane w różnych formach. Nie szukam jednak odpowiedzi „użyj https”. Używam już HTTPS i nie obawiam się wrażliwości ładunku przesyłanego tam iz powrotem.

Jednak aplikacja na iPhone'a, nad którą pracuję, rozmawia z zbudowanym przeze mnie API REST (mam kontrolę nad aplikacją i serwerem - więc wszelkie sugestie są mile widziane).

Do uwierzytelniania używam protokołu OAuth2, co oznacza, że ​​mój „klucz API” jest połączeniem identyfikatora klienta i tajnego klienta, któretylko należy przekazać, aby uzyskaćaccess_token. Następnie wszystkie żądania są wysyłane do serwera za pomocąaccess_token oraz nagłówek zawierający HMAC treści żądania (używając klucza klienta jako klucza). Jedynym powodem tego dodatku było to, że ktoś nie mógł wysyłać żądań API za pomocą JUST anaccess_token.

Interfejs API, z którym rozmawiam, zostanie opublikowany po wydaniu aplikacji. Więc niekoniecznie martwię się, że inni będą mogli wywoływać do niego API.

To, na czym mi zależy, to:

Ludzie mogą nawiązywać połączenia API przy użyciu poświadczeń klienta mojej aplikacji (co oznacza, że ​​nie mogę wykryć po stronie serwera, że ​​nie pochodzi z mojej aplikacji)Ludzie mogą nadużywać dodatkowych zakresów, które mój identyfikator klienta pozwoli im mieć, a tradycyjni użytkownicy API nie będą mieli

Domyślam się, że tak naprawdę nie ma rozwiązania tego problemu (poza używaniem UIWebView i tworzeniem chwalonego webappa), ale pomyślałem, że i tak spytam o to.

Czy wszyscy mogą wymyślić sposób ochrony tajnego identyfikatora klienta / klienta, jeśli ma zostać wykorzystany przez aplikację?

questionAnswers(1)

yourAnswerToTheQuestion