У меня проблема с разрешением использования моего секретного ключа API по всему миру на тысячах мобильных устройств.Он может быть легко взломан и использован злоумышленником в злонамеренных целях.
Так какие варианты для меня?Я бы предположил частный сервер, который имеет секретный ключ API и веб-сервис, который инкапсулирует все вызовы методов.Поэтому вместо того, чтобы мобильное устройство имело секретный ключ и выполняло что-то вроде:
List<Friends> = service.GetFriends(secretKey);
Если мой секретный ключ API скомпрометирован и используется в целях рассылки спама / злоупотребления, я должен прекратить использование длявсе мои пользователи, оставив мое приложение мертвым в море.
Итак, моя идея заключается в том, что я могу использовать уникальный идентификатор мобильного устройства и сделать:
List<Friends> = myService.GetFriends(deviceID);
Конечно,злоумышленник может просто вызвать мой веб-сервис с поддельным идентификатором устройства, но по крайней мере теперь у меня есть возможность занести черный список идентификаторов устройств.Он также вводит некоторые потенциальные проблемы пропускной способности, но это не так важно.
Вероятно, об истинной PKI не может быть и речи, поскольку целевое устройство не обрабатывает сертификаты клиента HTTP в текущей версии.
Есть еще хорошие идеи?