Asesoría: Un Hallazgo Crítico en el Modelo de Cómputo No Custodial PIE
El modelo elimina la capacidad del operador para descifrar cualquier cosa una vez que termina un trabajo. El dispositivo sigue cifrando a una clave pública no verificada publicada por el único componente que el modelo designa como no confiable.
Developed by Robert E. Beckner III (Merlin) | rbeckner.com
He estado construyendo sistemas durante 25 años, y me encanta construir cosas que están diseñadas intencionalmente y operativamente ágiles, llevando solo tanto vector como gana su peso.En ese enfoque, minimizar lo que almaceno de los datos de un usuario siempre tuvo sentido para mí, por razones que van más allá de la obvia. La soberanía de sus datos importa. Bajo todo eso está algo más simple: las cosas pertenecen donde pertenecen. La mayor parte de lo que construyo es procesamiento, y una arquitectura de procesamiento no tiene negocio de operar como algo más. Mantener un registro que nunca necesitó es un vector que no gana nada. Tratar eso como una optimización, en lugar de un ejercicio de cumplimiento, es lo que mantiene el diseño honesto — y un sistema construido de esa manera tiende a quedar en buena posición con la regulación por sí solo, porque queda muy poco de ella para regular.Así que cuando la anuncio de Mary Camacho cruzó mi feed en X, leí su arquitectura como leo la mía. Ella había publicado el núcleo de ella en el registro público bajo una licencia Creative Commons, al nivel de detalle que un ingeniero necesitaría para reconstruirla, y fue directa sobre el arte previo en el que se basa.Trabajando a través de la secuencia, coloqué una entidad adversarial dentro del servidor y seguí lo que podía alcanzar. Podía superar al trabajador.Casi todo el trabajo que siguió ocurrió como una conversación de voz — sobre 30 notas de voz, pensando en voz alta y probando la preocupación desde diferentes ángulos hasta que se mantuvo o se desmoronó.Lo que noté: el dispositivo cifra al que escriba el registro de reclamo primero#
La divulgación especifica el orden de operaciones directamente. El trabajador reclama el trabajo y publica su clave, y solo entonces el dispositivo cifra:El lado del dispositivo de ese acuerdo se especifica con igual precisión:— §2.1, Flujo de datos (por trabajo)
- Trabajador → coordinación: poll y reclama el trabajo (write-once, first-wins), publicando la clave pública del trabajador.
- Dispositivo ← coordinación: poll, recuperar la clave pública del trabajador, derivar el secreto compartido, cifrar la carga útil.
El dispositivo, al conocer la clave pública del trabajador, realiza su propio intercambio X25519 y una encapsulación ML-KEM contra la clave del trabajador, produciendo su propia contribución pública (clave pública X25519 ‖ texto cifrado ML-KEM) y el secreto compartido.— §4.2, Vinculación al ciclo de vida del trabajadorAl conocer. A través de 19 páginas no hay firma sobre la clave pública efímera del trabajador, ningún certificado, ninguna atestación que el dispositivo evalúe, y ningún secreto precompartido. La ausencia es deliberada y se presenta como una fortaleza: el modelo restringe la descifrado sin ningún documento de atestación, cita TPM, o artefacto de arranque medido, y no mantiene ningún secreto pre-provisionado del trabajador.Así que el dispositivo cifra su carga útil a cualquier clave pública que esté en el registro de reclamo, sin medios de distinguir la clave de un trabajador legítimo de la de cualquier otro. Cualquier parte que pueda escribir un reclamo primero se convierte en la parte a la que el dispositivo cifra, y la carga útil confiada se descifra en sus manos.
flowchart TB
subgraph BEFORE["Antes: como publicado"]
direction TB
A2{"¿Quién reclama primero?"} -->|Trabajador real| A3["Llave genuina"]
A2 -->|Cualquier otro escritor| A4["Llave atacante"]
A3 --> A5["El dispositivo la cifra"]
A4 --> A5
A5 --> A6["El titular de la llave puede leer"]
end
subgraph AFTER["Después: llave firmada"]
direction TB
B2{"¿Firma válida?"} -->|Sí| B3["Llave de trabajador verificada"]
B2 -->|No| B4["Rechazar, reintentar"]
B3 --> B5["Solo el trabajador verdadero lee"]
end
A6 ~~~ B2Copy sourceLa criptografía es sólida y la introducción es no autenticada#
El atacante no rompe nada. X25519 y ML-KEM-768 funcionan exactamente como se especifica. El atacante suministra una clave y se convierte en una parte legítima del acuerdo.Esto es un acuerdo de clave no autenticado, y su modo de falla es el resultado más antiguo en el campo. Diffie-Hellman plano no autentica a nadie y cae a una parte que sustituye su propia clave pública. Los mecanismos de encapsulación de clave heredan la propiedad, por lo que RFC 9180 coloca la autenticidad de la clave pública del destinatario fuera de su propio alcance y asume que la aplicación circundante la establece mediante certificados, un directorio de claves o verificación fuera de banda. Este modelo es esa aplicación circundante, y el canal que usa para distribuir la clave del destinatario es el componente que su propio modelo de confianza etiqueta como no confiable.La divulgación anticipa un ataque vecino y lo cierra:El reclamo es write-once/first-wins, por lo que un trabajador posterior no puede secuestrar el intercambio de claves de un trabajo.— §6, Implementación de referenciaEse razonamiento es sólido y el mecanismo hace lo que dice. Cubre uno de dos casos simétricos.
| Amenaza | Gestionado por la reclamación de escritura única |
|---|---|
| Un segundo trabajador sobrescribe una reclamación existente | Sí — la escritura es rechazada |
| Una parte no autorizada escribe la reclamación primero | No — la primera escritura gana |
No intermediario (puerta de enlace, coordinación, almacenamiento, monitor) jamás posee suficiente material clave para derivar cualquiera de los secretos. Un atacante que compromete la coordinación o el almacenamiento obtiene solo blobs opacos y claves públicas.— §4.3, claves independientes por direcciónLa primera oración es precisa. La segunda describe a un atacante que lee. Un atacante que escribe coloca una clave pública elegida en el registro de reclamación antes de que el dispositivo consulte, y derivar el secreto legítimo se vuelve innecesario para una parte que puede organizarse para ser la contraparte. Quien gobierna el contenido de ese registro gobierna quién puede leer la carga útil, lo que hace que la capa de coordinación sea un componente confiable para la confidencialidad — la única cosa que §3 dice que ningún componente además del dispositivo y el trabajador debería jamás ser.Un límite honesto sobre la reclamación: esto no significa que cualquiera en Internet abierto pueda leer estos datos hoy. En una implementación real la capacidad de escribir reclamaciones se encuentra detrás de la red en la nube y credenciales, y la divulgación describe una puerta de enlace autenticadora en la ruta del dispositivo. El problema preciso es que la confidencialidad ahora descansa en ese perímetro, mientras que la promesa central de la arquitectura es que se mantiene sin confiar en los componentes entre el dispositivo y el trabajador.