Un desarrollador propone tokens binarios cifrados frente a JWT para microservicios
Un desarrollador en Rust describe zerocrypt, un formato de token binario cifrado para autenticación entre servicios, y pregunta si JWT sigue siendo lo adecuado ahí.
Un desarrollador ha descrito zerocrypt, un proyecto en Rust que cambia el token de texto por un formato binario cifrado para la autenticación entre microservicios. La idea de fondo no es nueva —meter los datos en binario para ahorrarse JSON y base64—, pero aquí viene con un diseño concreto y con una pregunta abierta sobre sus compromisos. El autor avisa de que no pretende reemplazar a JWT y no publica cifras.
El punto de partida lo reconoce cualquiera que haya montado autenticación servicio a servicio. JWT cumple bien cuando hace falta interoperabilidad, claims estándar y soporte en plataformas distintas. El precio es conocido: serializar JSON, codificarlo en base64, volver a parsearlo y arrastrar un payload más grande de lo necesario. En un entorno controlado, donde los dos extremos son tuyos y hablan el mismo protocolo, ese coste se puede recortar.
Cifrado desde el principio
El formato de zerocrypt es binario y compacto, con cifrado AEAD: confidencialidad e integridad en la misma construcción, en lugar de un JSON legible al que se le añade una firma. La derivación de claves usa HKDF y el procesamiento del token intenta mantener al mínimo las asignaciones de memoria. Ese detalle pesa en servicios con mucho tráfico, porque cada reserva por petición se multiplica.
Dos secretos en vez de uno
Lo que más le interesa discutir al autor es el modelo de confianza. En lugar de apoyarse en una sola pieza de material, el sistema exige al menos dos secretos independientes antes de dar algo por fiable: uno lo controla quien opera el servicio y otro va ligado al entorno o a la compilación. La intención es que comprometer uno solo no baste para falsificar un token.
El autor no sostiene que este esquema sea más seguro que JWT, y esa es la parte honesta de la propuesta. Las preguntas que lanza son las que cualquier equipo debería hacerse antes de copiarla: en qué momento la interoperabilidad de JWT pesa menos que el ahorro en tamaño y parseo, si compensa evitar JSON y base64 en el tráfico interno y, sobre todo, qué fallos buscaría primero un revisor en un diseño propio.
Un formato de token propio es código criptográfico propio, y eso se paga. Las bibliotecas maduras de JWT llevan años de auditorías y de casos de uso que un proyecto pequeño no tiene. Para quien trabaja con microservicios, la pregunta útil no es si el binario es más rápido, sino cuánta superficie nueva de error se asume a cambio de algo menos de CPU. El propio autor pide experiencia práctica antes que benchmarks, y sin repositorio ni licencia a la vista en su descripción, zerocrypt es por ahora una invitación a discutir el diseño, no una pieza lista para producción.
