Restringir las solicitudes de API solo a mi propia aplicación móvil
¿Hay alguna forma de restringir las solicitudes de publicación a mi API REST solo a las solicitudes provenientes de mi propio binario de aplicación móvil? Esta aplicación se distribuirá en Google Play y en la tienda de aplicaciones de Apple, por lo que debería implicarse que alguien tendrá acceso a su binario e intentará realizar una ingeniería inversa.
Estaba pensando en algo relacionado con las firmas de la aplicación, ya que cada aplicación publicada debe estar firmada de alguna manera, pero no puedo averiguar cómo hacerlo de manera segura. ¿Tal vez una combinación de obtener la firma de la aplicación, además de hashes basados en el tiempo, más pares de claves generadas por la aplicación y la buena seguridad anterior aunque la oscuridad?
Estoy buscando algo tan a prueba de fallos como sea posible. La razón es que necesito entregar datos a la aplicación en función de los datos recopilados por los sensores del teléfono, y si las personas pueden hacerse pasar por mi propia aplicación y enviar los datos a mi api que no fueron procesados por mis propios algoritmos, vencen su propósito.
Estoy abierto a cualquier solución efectiva, no importa lo complicada que sea. Las soluciones de sombrero de papel de aluminio son muy apreciadas.