Resumen

  • En un Kiss-o’-Death, stratum cero invalida la respuesta como fuente de hora y el Reference Identifier de cuatro caracteres pasa a describir RATE, DENY, RSTR u otro estado.
  • La señal no impone nada por sí sola: debe corresponder a una petición pendiente, quedar limitada por la política local y provocar una transición observable; sin autenticación, también puede servir para negar el servicio.

Los protocolos de control suelen fallar en el verbo. El formato puede ser estable, los campos pueden llegar intactos y ambas partes pueden reconocer el nombre de la señal. Si una implementación aumenta cuando debía disminuir, el mecanismo produce exactamente el daño que pretendía contener.

El caso de NTP fue especialmente claro. La versión publicada de RFC 5905 decía que un cliente que recibiera el código RATE debía reducir su intervalo de sondeo. Menos intervalo significa más paquetes. El Errata 3007 verificado corrigió la dirección: hay que aumentar el intervalo para preguntar con menor frecuencia.

Ese error no inventó el Kiss-o’-Death, pero permite verlo sin solemnidad. KoD no era una autoridad incrustada en cuatro letras. Era un bucle distribuido cuya seguridad y eficacia dependían del código que realmente ejecutaba el receptor.

Antes del código había un hueco

RFC 1305, de 1992, ya describía el campo Stratum de ocho bits y un Reference Identifier de cuatro octetos. Para stratum cero, el valor era “no especificado”; en los niveles cero y uno, el identificador se mostraba como cuatro caracteres ASCII. RFC 2030 conservó la forma en SNTPv4 en 1996.

Todavía no existía la semántica explícita de KoD. No conviene leer el presente hacia atrás: un campo disponible no equivale a un vocabulario acordado. Fue RFC 4330, publicado en 2006, el que explicó que RFC 1305 no había definido qué significaba ese Reference Identifier cuando stratum era cero y le asignó una función de estado y control de acceso.

La razón no fue académica. RFC 4330 documentó una población de routers domésticos y de oficina configurados para consultar un único servidor universitario. Algunos preguntaban cada segundo. A medida que se vendían más aparatos, el volumen creció de forma dramática y el operador tuvo que defenderse con medidas extremas.

Una elección de fábrica se había convertido en tráfico de larga duración. Quien eligió el destino no mantenía el servidor; quien mantenía el servidor no podía cambiar el firmware distribuido. KoD trató de abrir un canal mínimo entre esas dos posiciones asimétricas.

Responder no significaba ofrecer una medición

Un servidor KoD devuelve un paquete reconocible con stratum cero y un código corto en Reference Identifier. Sin embargo, los campos Receive Timestamp y Transmit Timestamp son indefinidos y deben descartarse. El cliente no calcula offset ni retardo con ellos. No se trata de una fuente mediocre que pierde en la selección; no hay muestra de tiempo utilizable.

El código cambia el objeto de la conversación. DENY y RSTR indican que el cliente debe desmontar la asociación y dejar de enviar a ese servidor. RATE pide espaciar las consultas. RFC 4330 también describió INIT y STEP para situaciones transitorias.

La brevedad evita una negociación compleja, pero también obliga a respetar los límites semánticos. DENY no demuestra que la política sea legítima. RSTR no identifica por sí mismo quién creó la restricción. RATE no autoriza cualquier plazo futuro. Los cuatro caracteres especifican una transición prevista; la evidencia de que ocurrió está en el estado y el tráfico del cliente.

La pregunta pendiente daba contexto, no identidad

Aceptar cualquier respuesta de stratum cero permitiría que un tercero apagara asociaciones a voluntad. RFC 8633 exige que el Origin Timestamp sea válido: debe corresponder a la petición que el cliente mantiene pendiente. El requisito elimina mensajes viejos o no solicitados del camino normal.

Pero correlación no es autenticación. La coincidencia responde a “¿es esto una contestación plausible a mi petición actual?”. No prueba necesariamente “¿lo envió el servidor legítimo?”. En NTP no protegido, un atacante con suficiente visibilidad o capacidad de predicción puede intentar forjar el contexto.

Por eso una telemetría seria no registra simplemente “KoD recibido”. Debe separar la llegada, la coincidencia con una petición, la protección criptográfica disponible y el efecto aplicado. Un paquete puede superar la segunda prueba y fallar la tercera. También puede superar todas y no cambiar nada por un defecto del cliente.

La amenaza es una denegación sin hora falsa. Un DENY falsificado elimina una fuente válida. Un RATE falsificado posterga la próxima consulta. La manipulación afecta cuándo y dónde buscará evidencia el cliente.

El cliente no cedía todo su temporizador

El servidor conoce su presión, pero no debería controlar sin límites el calendario del cliente. RFC 8633 advierte contra aceptar de manera ciega valores de poll excesivos y propone como tope razonable un exponente no superior a 13, alrededor de dos horas. La política local conserva así una última palabra.

También conserva alternativas. Ante DENY o RSTR, un cliente puede acudir a otra fuente. Ante RATE, debe preguntar menos a ese servidor sin convertir una recomendación en silencio indefinido. La diversidad de fuentes importa: retirarse correctamente de una asociación puede empeorar la resiliencia si todas las demás dependen del mismo origen administrativo.

KoD funcionaba sólo con clientes cooperativos. Los que lo ignoran siguen enviando; los que lo interpretan al revés aumentan el daño. RFC 8633 concluye que el servidor necesita además descartar paquetes o filtrar fuera del intercambio. La respuesta educada aporta una causa a quien puede escucharla. El limitador protege frente a quien no puede o no quiere hacerlo.

NTSN abrió una salida estrecha

Network Time Security protege las respuestas ordinarias, pero ¿qué ocurre cuando el servidor ya no puede validar las cookies o el autenticador del cliente? No puede fabricar precisamente la respuesta autenticada que explicaría la pérdida de estado.

RFC 8915 reservó NTSN para ese caso. El servidor debe omitir los campos normales NTS Cookie y NTS Authenticator and Encrypted Extension Fields. Si antes había enviado respuestas auténticas, el cliente exige un Unique Identifier que coincida con una petición pendiente; de lo contrario descarta el KoD.

La reacción no es reiniciar todo de inmediato. El cliente espera el siguiente sondeo normal. Si no llega una respuesta protegida válida, vuelve a ejecutar NTS-KE, limita la frecuencia de los intentos y sigue usando los parámetros anteriores hasta completar el nuevo intercambio.

La excepción conserva el principio precisamente porque no finge una autenticación imposible. Reduce el alcance del mensaje, lo enlaza con estado vivo y retrasa la operación costosa. NTSN no hace seguros a todos los KoD ni convierte una señal sin autenticación en verdad general.

Registrar un nombre no ejecutaba el protocolo

RFC 5905 creó un registro IANA de códigos. RFC 9748 actualizó sus reglas en 2025: hasta cuatro caracteres ASCII, relleno con ceros cuando son menos, X reservado para experimentos y nuevos nombres formados por letras mayúsculas y dígitos bajo el criterio Specification Required.

El registro evita que dos especificaciones usen el mismo nombre con sentidos incompatibles. Su control termina ahí. No comprueba que un paquete sea auténtico, no certifica firmware y no impone una política de acceso. Una entrada puede existir aunque ningún equipo la ejecute bien.

La contención institucional del diseño es tan importante como su código. IETF e IANA coordinan el significado compartido. El servidor conserva la decisión de responder o filtrar. El cliente conserva su asociación, sus límites y sus fuentes alternativas. Nadie obtiene desde el registro una autoridad mundial sobre los relojes ajenos.

La historia anterior de NTP publicada por BTW trataba de cuatro marcas de tiempo, desacuerdo entre fuentes y disciplina del reloj local. Aquí no hay una nueva explicación de esa selección. El episodio empieza cuando la medición se retira y sólo queda una señal sobre la relación. Su pregunta es quién puede hacerla efectiva y hasta dónde.