He creado un servicio escrito en c que se ejecuta en el sistema operativo Android como un servicio central. Tengo algunas aplicaciones de Android que se comunican con este servicio a través de una conexión de socket (Java - > C).
Mi problema es que cualquiera puede abrir una conexión a mi servicio si saben qué puerto está usando. Las aplicaciones no tienen credenciales y solo se ejecutan en el recinto de seguridad de Android.
¿Qué métodos puedo usar para al menos intentar y evitar que una aplicación incorrecta acceda a este servicio? ya que en el host local ssl no parece relevante?
Ambas aplicaciones están compiladas para que yo pueda compartir una clave secreta entre ellas, pero las aplicaciones de Android podrían ser descompiladas.
¿Cómo puede asegurar normalmente las conexiones cliente / servidor en la misma máquina?