В настоящее время я разрабатываю приложение, которое содержит довольно много личной информации пользователя - такие вещи, как контакты Facebook и т.д. Теперь, одна из вещей, которые я хочу сделать (и сделал, довольно эффективно) открывает части приложения для приложений "третьей стороны", используя встроенный межсетевой протокол связи (AIDL) для Android. Пока все хорошо.
Вот улов: потому что мы занимаемся обработкой довольно много личной информации, мы должны быть очень осторожны, кто может и не может получить к нему доступ; в частности, только "доверенные" приложения должны быть в состоянии сделать это. Таким образом, естественным способом сделать это является использование пользовательского разрешения в файле AndroidManifest.xml, где мы объявляем службы. Моя проблема заключается в следующем: я хочу иметь возможность устанавливать защиту уровня подписи (аналогично нормальному уровню "подписи" ), но с небольшим количеством улов:
Я не только хочу, чтобы приложение, подписанное с нашей внутренней подписью, имело возможность доступа к сервисам. Я хотел бы иметь возможность создавать список "доверенных подписей" и во время выполнения (или если есть лучший способ, а может быть, какое-то другое время?) Иметь возможность проверять входящие запросы на этот список доверенных ключей.
Это будет удовлетворять ограничениям безопасности так же, как и нормальный уровень разрешения "подписи", который я думаю: только программы из списка "доверенные ключи" смогут получить доступ к службам, а ключи трудно подделать (если возможно на всех?), но с добавленным бонусом, что нам не нужно будет подписывать каждое приложение, использующее API, с помощью нашего внутреннего командного ключа.
Возможно ли это на данный момент в Android? И если да, существуют ли особые требования?
Спасибо