El prototipo Leios de Cardano corrige un ataque de temporización en los anuncios de Endorser Block

Los desarrolladores de Cardano han corregido una falla de temporización en el prototipo Leios que podía hacer que nodos honestos se desconectaran entre sí. El problema afectaba la lógica de anuncios de Endorser Block del prototipo y nunca formó parte del protocolo actual de la red principal de Cardano.

By SongMarketCap

Cardano News - El prototipo Leios de Cardano corrige un ataque de temporización en los anuncios de Endorser Block

El prototipo Leios de Cardano ha recibido una corrección de red después de que los desarrolladores identificaran un ataque de temporización relacionado con anuncios de Endorser Block. Bajo condiciones específicas, un pool de participación con credenciales operativas válidas podía enviar un anuncio cuidadosamente cronometrado que hacía que un nodo honesto se desconectara de otro par honesto cuya visión de la cadena estaba ligeramente retrasada.

La corrección se fusionó en la rama leios-prototype de Ouroboros Consensus el 18 de agosto y fue destacada por el equipo de Consensus de Intersect el 25 de agosto. Posteriormente, Blink Labs implementó la protección correspondiente en Dingo.

Una diferencia de temporización en Leios podía desconectar pares honestos

Ouroboros Leios es la arquitectura de escalado planificada de Cardano, diseñada para aumentar el rendimiento de transacciones manteniendo las propiedades de seguridad del protocolo de consenso subyacente.

Parte del diseño utiliza Endorser Blocks, que transportan datos de transacciones adicionales junto con los bloques de clasificación de Cardano. Los nodos pueden anunciar un Endorser Block antes de que lleguen los datos completos del bloque, lo que ayuda a que la información se propague por la red con mayor eficiencia.

El problema identificado involucraba el número de emisión del certificado operativo, u OCIN, adjunto a esos anuncios.

Dos nodos honestos pueden tener temporalmente puntas inmutables de la cadena diferentes. Un nodo más avanzado puede ya considerar revocado un OCIN más antiguo, mientras que un par ascendente que aún no ha alcanzado el mismo punto inmutable puede legítimamente seguir tratándolo como válido.

La lógica anterior del prototipo podía interpretar un anuncio que usara ese OCIN más antiguo como un comportamiento inválido y desconectar al par ascendente.

La incidencia original de GitHub describe cómo un pool de participación atacante podía explotar esa diferencia de temporización enviando un anuncio poco antes de que su OCIN se volviera inmutable. Dado que el pool podía incrementar su OCIN al colocar un nuevo encabezado en la cadena, la secuencia podía utilizarse para provocar desconexiones entre nodos honestos.

La incidencia señalaba que este comportamiento debía corregirse antes de que la lógica de anuncios pudiera considerarse apta para la red principal.

La nueva lógica de Leios evita la desconexión

La corrección incorporada cambia la forma en que un nodo Leios reacciona cuando recibe un anuncio que usa un OCIN que su propia punta inmutable ya considera revocado.

En lugar de terminar la conexión con el par, el nodo acepta el mensaje a nivel del protocolo de red. Como el nodo receptor ya sabe que el OCIN está obsoleto, el anuncio se ignora en lugar de procesarse o retransmitirse.

El cambio permite que un par honesto se retrase temporalmente sin ser clasificado como malicioso.

Los desarrolladores también documentaron un caso residual más acotado que involucra claves KES históricas filtradas. Una clave filtrada aún podría usarse para enviar una pequeña cantidad de anuncios falsos adicionales de Endorser Block a pares descendentes inmediatos después de la revocación.

Esos anuncios no provocan desconexiones y no se propagan más. La discusión de desarrollo describe el costo de procesamiento adicional como mínimo y el comportamiento restante como indeseable, pero no un impedimento para el prototipo actual.

No hay evidencia de fuente primaria de que este vector de ataque haya afectado a la red principal de Cardano. El mecanismo de anuncios afectado pertenece al prototipo Leios, y la corrección se fusionó en su rama de desarrollo dedicada en lugar de la rama de consenso de producción.

Dingo adopta la misma protección de Leios

Blink Labs también ha aplicado el modelo de manejo de OCIN obsoleto a Dingo, su implementación independiente de nodo de Cardano.

La incidencia de Dingo se abrió el 26 de agosto después de que los desarrolladores identificaran que un anuncio correctamente firmado pero obsoleto aún podía registrarse y retransmitirse. La pull request #3563 se fusionó el 27 de agosto.

Con la implementación actualizada, los anuncios obsoletos o de emisor desconocido se aceptan sin cerrar la conexión con el par, pero no se registran, procesan ni retransmiten. Los anuncios recientes continúan con el procesamiento normal, con pruebas de regresión que cubren varios estados de OCIN.

La actualización de desarrollo de agosto de Intersect también informó un soporte ampliado de db-analyser para cadenas Leios. La herramienta ahora puede reproducir datos de cadenas Leios y medir transacciones certificadas de Endorser Block, su tamaño y el tiempo requerido para leerlas y aplicarlas. Eso extiende las pruebas más allá del rendimiento hacia los costos de procesamiento del libro mayor y el comportamiento de los recursos.

La corrección para anuncios obsoletos ahora abarca dos implementaciones. Ouroboros Consensus cambió el comportamiento en el prototipo original de Leios el 18 de agosto, mientras que Dingo adoptó su implementación correspondiente nueve días después, alineando cómo ambas bases de código manejan el mismo caso límite de red antes de que Leios alcance el despliegue en producción.