Devi autenticare il client e questo richiede che ci sia una sorta di segreto. Se un utente umano sta controllando il cliente, potresti semplicemente essere in grado di registrare e autenticare l'utente, usando un segreto che conoscono o di cui hanno accesso.
Se il client è automatizzato e non si controlla l'ambiente hardware e software su cui si basa il client, si è sfortunati di fronte a un determinato utente malintenzionato che ha il controllo del client. Ma puoi renderlo difficile.
Il tuo problema sembra correlato al problema generale delle licenze delle applicazioni client e una buona panoramica di un approccio a questo (per le app Android, in Java) è qui:
link
Puoi adattarlo al tuo ambiente o cercare altre librerie open source adatte alla tua situazione.
A proposito, "sicurezza via segretezza" va bene: i segreti come le chiavi private fanno parte della maggior parte dei buoni schemi. È "la sicurezza attraverso l'oscurità" che le persone cercano di evitare, cioè semplicemente complicando le cose, o facendo finta che gli aggressori non comprendano i tuoi algoritmi.