mTLS frente a API keys para autenticar apps móviles

Una API key en una app móvil no es un secreto: es una cadena de texto dentro de un fichero que cualquiera puede descargar. La diferencia con mTLS no es de robustez, es de naturaleza.

Por qué una API key no autentica a tu app

El modelo de la API key es el del secreto compartido: el cliente conoce una cadena, la envía en cada petición y el servidor la compara. Funciona bien entre servidores, donde el secreto vive en un entorno que tú controlas.

En una app móvil el binario está en manos del usuario y de cualquiera que lo descargue de la tienda. Extraer cadenas de un APK es cuestión de minutos con herramientas públicas, y ofuscarlas solo cambia cuántos minutos. Peor aún: la clave es la misma para todas las instalaciones, así que extraerla una vez la compromete para todos y rotarla obliga a publicar una versión nueva.

Y como la key viaja en cada petición, basta con interceptar el tráfico una sola vez para tenerla.

Qué hace distinto a mTLS

Con mTLS el cliente no envía un secreto: demuestra que posee una clave privada, mediante una firma, sin que la clave llegue a viajar. Esa clave se genera en el dispositivo y se guarda en el almacén de claves del sistema, de donde no está pensada para salir.

Además el certificado es único por instalación. Comprometer un dispositivo compromete ese dispositivo, no tu base de usuarios entera, y revocarlo no afecta a nadie más.

Comparación práctica

  • Extracción del binario: una API key se extrae; una clave privada del almacén del sistema, no de la misma manera.
  • Interceptación del tráfico: la key viaja en cada petición; la clave privada nunca viaja.
  • Alcance de una filtración: la key es global; el certificado afecta a un solo dispositivo.
  • Rotación: la key exige publicar una versión nueva; el certificado rota solo, en segundo plano.
  • Revocación selectiva: con una key compartida no existe; con certificados es la operación natural.

Qué te cuesta a cambio

mTLS no es gratis en complejidad. Hay que emitir, distribuir, renovar y revocar un certificado por dispositivo, y configurar el servidor de entrada para exigirlo. Ese es justamente el trabajo que absorbe un servicio como ShieldCert: el protocolo es estándar, la logística es el producto.

Prueba mTLS sin montar la CA

Pide acceso a la beta cerrada y a la documentación de integración.