I’m currently writing a pair of client/server applications. I was recently posed with the question of “how do I prevent someone from writing their own client application and using our server?” I really didn’t have an answer to that question because all of the secure communication stuff I have done to date is to ensure the communications between the client and server are encrypted. This would be a departure from that train of thought in that – how do I ensure the client application on the other end is the client application I want to talk to (and not someone pretending to be my client application)?
Anyone have any thoughts on a reasonable way to do this?