Resumen
- El test de RFC 5260 demuestra una comparación sobre un campo seleccionado y normalizado, no la autenticidad del momento escrito ni la totalidad del recorrido.
- La prueba operativa debe separar bytes, posición, validez, zona, comparador, revisión del guion, instante de ejecución, decisión y efecto observado.
La segunda marca dejó de ser la entrada al dominio
Una plataforma de licitaciones decidía el plazo con :index 2 sobre Received:. Durante años, esa segunda línea correspondió al primer servidor de su dominio. Después se incorporó una pasarela de inspección. El guion siguió funcionando y el resultado siguió pareciendo exacto, pero la posición dos ya describía otro tramo.
RFC 5260 no promete que la topología conserve esa coordenada. Su ejemplo depende expresamente de que el desplazamiento sea estable. El error institucional fue convertir una suposición de arquitectura en una verdad sobre el tiempo.
Elegir una aparición no establece confianza
Sin index, date usa la primera aparición del encabezado nombrado. :index cuenta desde uno y :last invierte el sentido. Si se pasan varios nombres a pruebas de encabezado o dirección, se cuentan según el orden de la lista del guion.
Es una regla de selección reproducible. No afirma que la primera línea sea original, que la última sea final ni que la segunda represente siempre el mismo límite. La cadena ordenada forma parte del dato. Guardar solo el número elimina el referente del número.
Un falso no explica por qué
El test devuelve falso cuando falta el campo, la sintaxis de fecha es inválida, el calendario hace imposible el valor o la comparación válida no coincide. Para el lenguaje, todos cierran la rama. Para operaciones, son incidentes distintos.
Un campo local ausente puede revelar un cambio de ruta. Una fecha imposible puede ser entrada adversaria. Una fecha fuera del intervalo puede ser normal. El valor :count uno o cero tampoco resuelve la autenticidad: solo indica si el campo seleccionado contiene una fecha válida.
La zona es una decisión de ejecución
:originalzone conserva el desplazamiento indicado por el campo. :zone desplaza el instante a una compensación fija. Usar ambos es un error. Omitirlos obliga a usar la zona local del servidor.
Así, bytes iguales pueden producir una fecha civil distinta en dos entornos. Conservar -0500 no demuestra una ciudad ni una jurisdicción; aplicar +0000 no mejora la procedencia. La transformación responde a una pregunta de política, no valida el reloj de origen.
currentdate fija un instante, no todos los instantes
Todos los tests currentdate de una ejecución deben referirse al mismo punto temporal. La regla evita que un guion cambie de día entre condiciones. Sin embargo, ese punto es el reloj de la ejecución. No es la creación del mensaje, el primer ingreso, la entrega, la lectura o una aprobación.
El propio RFC señala que esta dependencia temporal hace más difícil analizar guiones. Para explicar un resultado no basta el código: hace falta el instante capturado, el host y su contexto horario.
El productor del encabezado delimita la afirmación
Date: suele venir del remitente y puede alterarse. El Received: superior suele ser añadido por el sistema local y resulta más difícil de falsificar desde fuera. La segunda fuente es más fuerte para la recepción local, pero no prueba toda la trayectoria ni los eventos posteriores.
Un analizador puede confirmar que una cadena representa una fecha. No puede, por esa operación, confirmar quién controlaba el reloj o si el evento descrito ocurrió.
Un recibo que conserve la pregunta
Para automatización con consecuencias, registrar: hash del mensaje y de encabezados; inventario ordenado; nombre y aparición elegida; :index, :last y orden de lista; texto crudo; resultados de sintaxis y calendario; zona original y zona aplicada; valor normalizado; parte de fecha; comparador, tipo y claves; capacidades; identidad y versión del guion; host e instante currentdate; motivo del falso; acción seleccionada, resultado de ejecución y observación final.
El recibo no convierte una fecha en verdad. Conserva exactamente la pregunta que el sistema respondió.
Sources
- https://www.rfc-editor.org/rfc/rfc5260.html
- https://www.rfc-editor.org/rfc/rfc5260.txt
- https://www.rfc-editor.org/info/rfc5260/
- https://datatracker.ietf.org/doc/rfc5260/
- https://datatracker.ietf.org/doc/rfc5260/history/
- https://datatracker.ietf.org/doc/rfc5260/references/
- https://datatracker.ietf.org/doc/rfc5260/referencedby/
- https://www.rfc-editor.org/errata/rfc5260
- https://www.rfc-editor.org/rfc/rfc5228.html
- https://www.rfc-editor.org/rfc/rfc5231.html
- https://www.rfc-editor.org/rfc/rfc3339.html
- https://www.rfc-editor.org/rfc/rfc5322.html
- https://www.rfc-editor.org/rfc/rfc2822.html
- https://www.rfc-editor.org/rfc/rfc5234.html
- https://www.rfc-editor.org/rfc/rfc5229.html
- https://www.rfc-editor.org/rfc/rfc5293.html
- https://www.rfc-editor.org/rfc/rfc6134.html
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-the-agency-problem-at-the-core-of-internet-governance/
Informe para miembros
Contexto ampliado del perfil
Inicia sesión con el nivel de membresía adecuado para desbloquear el informe completo y las notas de las fuentes.
Solo para Strategic Circle
Strategic Circle
Abierto a todos los lectores. Desbloquea informes de perfil después de unirte e iniciar sesión.
Únete a Strategic CircleSolo para Leadership Alliance
Leadership Alliance
Para propietarios y directivos cualificados de activos de propiedad intelectual; inicia sesión para desbloquear los informes de la alianza.
Unirse a Leadership Alliance
