Restringir solicitações de API apenas para meu próprio aplicativo para dispositivos móveis
Existe alguma maneira de restringir solicitações de postagem para minha API REST apenas para solicitações provenientes do meu próprio binário de aplicativo móvel? Este aplicativo será distribuído no Google Play e na Apple App Store, portanto, deve estar implícito que alguém terá acesso ao seu binário e tentará fazer engenharia reversa.
Eu estava pensando em algo que envolva as assinaturas de aplicativos, já que todos os aplicativos publicados devem ser assinados de alguma forma, mas não consigo descobrir como fazê-lo de maneira segura. Talvez uma combinação de obter a assinatura do aplicativo, além de hashes com base no tempo, além de pares de chaves gerados pelo aplicativo e a boa e velha segurança, apesar da obscuridade?
Estou procurando algo o mais à prova de falhas possível. O motivo é que eu preciso fornecer dados ao aplicativo com base nos dados coletados pelos sensores do telefone e, se as pessoas puderem se apresentar como meu próprio aplicativo e enviar dados à minha API que não foram processados pelos meus próprios algoritmos, isso derrotará seus objetivo.
Estou aberto a qualquer solução eficaz, por mais complicada que seja. As soluções de chapas metálicas são muito apreciadas.