Si puede almacenar una ID de dispositivo en el cliente, entonces puede usar eso como "nombre de usuario" y "contraseña": dentro del túnel SSL , el cliente envía la ID de dispositivo, que El servidor busca en la base de datos. Si se encuentra la identificación del dispositivo, voilà! El cliente está autenticado. Recuerde que "un cliente está autenticado" tiene el mismo significado que "ninguna otra entidad que el mismo cliente podría haber dicho". Siempre que la "ID de dispositivo" sea específica del cliente, secreta e indiscutible, es una base adecuada para la autenticación.
Por supuesto, un cliente que extraiga el contenido de los datos de su dispositivo y realice una ingeniería inversa del código encontrará su propia ID de dispositivo, y podrá acceder al servidor desde otras computadoras. Eso es inevitable. No puede forzar el uso de un dispositivo cliente específico a menos que el dispositivo cliente contenga un elemento resistente a la manipulación (por ejemplo, un TPM ), y , al parecer, los iPhones no . Los certificados u otros artilugios criptográficos no te ayudarán allí.