Secure Enclave: claves SSH con Touch ID en 3 comandos

Una clave SSH que se usa, pero que nadie puede extraer

Tres comandos. Eso es todo lo que separa a tu Mac de dejar de guardar claves SSH como archivos y pasar a generar firmas criptográficas dentro del Secure Enclave, aprobadas con tu huella dactilar. Para un founder con acceso de escritura a repositorios y servidores de producción, el cambio tiene una consecuencia muy concreta: una clave privada que vive como archivo se puede copiar, exfiltrar o quedar expuesta en un backup; una que vive dentro del chip y nunca se exporta, no.

La amenaza no es teórica. Un ataque a la cadena de suministro del proyecto open source LiteLLM expuso, según Ars Technica, claves cloud, tokens de repositorio, claves SSH y secretos de Kubernetes con capacidad de dar acceso a más de 2.500 organizaciones, todo capturado en una ventana de apenas 40 minutos. En el ataque a los paquetes de localización de Laravel-Lang, documentado por TechTimes, el código malicioso buscaba de forma explícita claves SSH y certificados de host, además de credenciales de AWS y tokens de GitHub.

¿Qué hace el Secure Enclave cuando creas una identidad SSH?

Los Mac incorporan un Secure Enclave, un módulo de seguridad integrado donde se pueden crear identidades que, en palabras de la publicación técnica que documenta este flujo, no se pueden robar: el material privado se genera dentro del chip y nunca se muestra ni puede extraerse. Cada uso de esa identidad queda sujeto a una validación biométrica.

¿Y esto cómo se aplica en tu negocio?

En CAR, dueños de empresa de Latinoamérica y España usan la tecnología para ser más rentables. Empiezas con una ruta de 7 días y terminas con un sistema funcionando en tu negocio.

👥 Probar 7 días

Esas identidades se gestionan con el comando sc_auth, herramienta heredada del vocabulario de smart card de Apple, que internamente las llama identidades CryptoTokenKit (CTK). En la práctica son claves privadas alojadas en el Secure Enclave, y su comportamiento se define con tres parámetros:

  • Label: una etiqueta libre, solo descriptiva, como ssh-key.
  • Tipo de clave (-k): los valores aceptados son p-256, p-384, p-521, p-256-ne y p-384-ne. El sufijo -ne significa Non-Extractable: la clave la genera el propio enclave y no puede salir de él. Para SSH solo se necesita firmar, y como OpenSSH no soporta la curva p-384, la opción práctica queda en p-256-ne.
  • Protección (-t): bio exige biometría en cada uso; none mantiene la clave inextraíble pero permite que los programas usen SSH en silencio.

Los 3 comandos para configurar SSH con Touch ID en macOS

El flujo completo cabe en tres instrucciones y una verificación final.

  1. Crea la identidad en el Secure Enclave. Ejecuta sc_auth create-ctk-identity -l ssh-key -k p-256-ne -t bio. El sistema te pedirá tocar Touch ID y la identidad queda guardada sin dejar archivos de clave en el disco.
  2. Dile a SSH que la use. Ejecuta ssh-add -K -S /usr/lib/ssh-keychain.dylib. Cuando el sistema pida un PIN, basta con pulsar enter. Este paso no es permanente: el agente SSH no recuerda la configuración entre reinicios, así que hay que repetirlo después de cada arranque.
  3. Registra la clave pública donde la necesites. Ejecuta ssh-add -L y copia la línea que empieza con sk-ecdsa-sha2-nistp256. Si aparece más de una identidad, esa es la que corresponde al enclave y la que GitHub te pedirá al añadir una SSH key.

A partir de ahí, cualquier operación como git push dispara el aviso de Touch ID y, si lo apruebas, la conexión se autentica. Si el bloqueo biométrico te resulta molesto en tareas repetitivas, la alternativa es crear la identidad con -t none: sigues ganando la propiedad de no exportabilidad, pero pierdes la confirmación humana en cada uso.

¿Por qué SSH necesita un traductor para hablar con el chip?

El agente SSH no entiende las identidades del Secure Enclave de forma nativa: si intentas conectarte sin más, la respuesta es un Permission denied (publickey). Apple resuelve esa incompatibilidad con ssh-keychain.dylib, una librería que ya viene en las versiones recientes de macOS y que actúa como capa de traducción.

El parámetro -K de ssh-add activa el soporte para autenticadores estilo FIDO, que por defecto esperaría una llave USB. El parámetro -S registra un proveedor de claves de seguridad, y ahí entra la librería de Apple. Entre sus símbolos exportados aparecen _sk_load_resident_keys, que devuelve la lista de claves públicas residentes, y _sk_sign, que firma un desafío. El flujo real es el clásico de llave pública: el agente ofrece la clave, el servidor lanza un desafío, el agente lo envía al enclave, Touch ID aprueba y la firma vuelve al servidor, que la verifica.

El PIN vacío que parece una falla de seguridad tiene una explicación simple: el agente asume que trabajas con una llave física USB y pregunta por el PIN de ese dispositivo. Aquí la seguridad no viene de un PIN, sino de la huella.

Los límites del Secure Enclave que debes conocer

  • Si el Mac muere, la identidad muere con él. No hay archivo que respaldar ni forma de exportar el material. Cuando cambies de equipo tendrás que crear una identidad nueva y volver a registrarla donde la usabas, incluido GitHub. Planificar ese tránsito es parte de la configuración, no un detalle posterior.
  • Con -t none no hay confirmación humana. La clave sigue siendo inextraíble, pero cualquier proceso que consiga ejecutarse en tu sesión podría usarla sin que tú lo apruebes.
  • Es una interfaz poco documentada. La propia publicación reconoce que buena parte del comportamiento se dedujo de manuales, experimentos y publicaciones de terceros, y que nadie garantiza que esa falta de documentación no esconda advertencias de uso.

Ese último punto es el más incómodo: es una tecnología de seguridad que hace unos años solo existía en laboratorios de investigación, ahora integrada de fábrica en equipos de consumo, pero explicada casi a medias. El autor del artículo original lo plantea con ironía y acierta en el fondo: cuanto más la gente la use y exija transparencia, mejor será el soporte.

Vale la pena notar el paralelo con las passkeys. La documentación de Microsoft sobre passkeys en Windows describe el mismo modelo FIDO de par público/privado, con la clave privada almacenada en el dispositivo y desbloqueada con biometría o PIN, sin que la información biométrica salga del equipo. Lo que este flujo hace es llevar ese mismo principio al SSH de tu Mac.

¿Qué significa esto para tu startup?

1. Empieza por las máquinas con más privilegios. No necesitas migrar a todo el equipo el mismo día. Identifica quién tiene claves SSH con acceso de escritura a repositorios de producción, a la infraestructura cloud o a la base de datos, y migra esas máquinas primero. Son minutos por equipo y el impacto en superficie de ataque es inmediato.

2. Audita las claves SSH que no controlas. Los ataques citados arriba no robaron contraseñas: robaron claves y tokens de entornos donde vivían. TechCrunch describió una ola de ataques a paquetes de código abierto —bautizada 'Mini Shai-Hulud'— en la que se publicaron más de 630 versiones maliciosas de 317 paquetes en unos 20 minutos, con el objetivo declarado de robar credenciales de servicios, incluidos gestores de contraseñas. Revisa qué claves SSH están guardadas en runners de CI/CD, servidores compartidos o carpetas sincronizadas en la nube, y rótalas.

3. Documenta el paso que se olvida. El comando para reactivar la identidad después de cada reinicio no se ejecuta solo. Si no quieres que tu equipo vuelva silenciosamente a las claves antiguas, inclúyelo en el checklist de configuración de laptops nuevas.

4. Define política, no solo herramienta. La pregunta útil para tu próximo onboarding técnico no es si el desarrollador tiene una clave SSH, sino dónde está guardada y cuántas copias existen. Adoptar identidades del Secure Enclave responde esa pregunta de raíz, y además te obliga a resolver el respaldo de accesos de otra manera: registrando la clave en cada proveedor y manteniendo un plan claro para rehacerla cuando cambies de máquina.

Preguntas frecuentes sobre las claves SSH con Touch ID

¿Funciona con GitHub y otros servicios de git over SSH? Sí. La capa de traducción actúa a nivel del agente SSH, así que cualquier conexión por SSH, incluidos los push y pull por git, pasa por el mismo mecanismo y activa el aviso de Touch ID. Solo necesitas registrar la clave pública que devuelve ssh-add -L.

¿Sigo necesitando archivos en la carpeta .ssh? No para autenticarte. Una de las ventajas que menciona la publicación es que desaparecen los archivos de claves repartidos por el sistema y el riesgo de borrarlos por error.

¿Puedo desactivar el pedido de huella? Sí, creando la identidad con protección none en lugar de bio. Mantienes la propiedad de que la clave no se puede extraer, pero pierdes la confirmación biométrica en cada uso.

Fuentes

¿Y esto cómo se aplica en tu negocio?

En CAR, dueños de empresa de Latinoamérica y España usan la tecnología para ser más rentables. Empiezas con una ruta de 7 días y terminas con un sistema funcionando en tu negocio.

👥 Probar 7 días

Daily Shot: Tu ventaja táctica

Lo que pasó en las últimas 24 horas, resumido para que tú no tengas que filtrarlo.

Suscríbete para recibir cada mañana la curaduría definitiva del ecosistema startup e inversionista. Sin ruido ni rodeos, solo la información estratégica que necesitas para avanzar:

  • Venture Capital & Inversiones: Rondas, fondos y movimientos de capital.
  • IA & Tecnología: Tendencias, Web3 y herramientas de automatización.
  • Modelos de Negocio: Actualidad en SaaS, Fintech y Cripto.
  • Propósito: Erradicar el estancamiento informativo dándote claridad desde tu primer café.

📡 El Daily Shot Startupero

Noticias del ecosistema startup en 2 minutos. Gratis, todos los días.

Share to...