I have android app that connects to my backend server to fetch data. Right now, it serves as an open API.
Some one can modify my app, and still be able to connect to my backend server and get data. How can I SECURELY prevent it?
So in other words, I want that ONLY APKs that are signed by me be able to get service from my backend server. How this can be implemented?
Solution should not rely on signing in users. Users do not need to be registered to get service from the server.
[edit] Bonus Question: I publish source code of my app in GIT. So I do not have much options in hiding some keys inside the source code. Yet I want only the apps signed by me to be able to connect to my server. Is it possible?