{"id":"AUDIT85_DIAGNOSTIC","title":"Diagnostico del canal 85","version":"nav88-20261106-v1","date":"2026-11-06T13:00:28.125338+01:00","classification":"PUBLIC_REVIEW","sha256":"aea8716adfd6063d4a9d95b6a8e2ef3be3133fa3667e1424076dce2bd4188df6","read_url":"/api/review/AUDIT85_DIAGNOSTIC","total_bytes":7682,"fragment_count":1,"document_sha256":"aea8716adfd6063d4a9d95b6a8e2ef3be3133fa3667e1424076dce2bd4188df6","fragmented":false,"content_markdown":"# AUDIT85_DIAGNOSTIC\n\n## Etapa C: lectura alternativa JSON\n\nSe mantiene el diagnostico de red anterior y se implementa una alternativa\nde lectura del contenido sanitizado, sin modificar el proxy ni ampliar\nacceso del proceso publico. Disponibles con el interruptor activado:\n\n| Ruta | Metodo | Resultado inicial | MIME | Bytes iniciales |\n|---|---|---|---|---:|\n| /api/review | GET | 200 | application/json; charset=utf-8 | 3944 |\n| /api/review/PROJECT_STATUS | GET | 200 | application/json; charset=utf-8 | 6074 |\n| /api/review/bundle?ids=PROJECT_STATUS,DATABASE_CHANGELOG,TEST_RESULTS | GET | 200 | application/json; charset=utf-8 | 65466 |\n\nMediciones iniciales sobre stage-b-20261106-v1 tras instalar el runtime\nJSON. El contenido completo de PROJECT_STATUS era 5522 bytes UTF-8 y su\nSHA coincidia. No Set-Cookie; no-store. Los tamanos cambian al publicar C.\n\n### Contrato de lectura\n\nIndividual: id, title, version, date, classification, sha256 y\ncontent_markdown completo. Index: catalogo y limites. Bundle: hasta ocho IDs,\ndeduplicados, sin sustituir silenciosamente contenido por un extracto.\n\nJSON maximo 1048576 bytes; documento completo preferido hasta 524288.\nSi no cabe, fragmented=true, content_markdown=null y lista de fragmentos.\nConsultar ?fragment=0 y sucesivos: fragment_id, fragment_index, byte_offset,\nfragment_bytes, fragment_sha256, document_sha256, total_bytes y next_url.\nCada bloque maximo 65536 bytes, alineado a UTF-8. Reconstruir en orden y\ncomprobar SHA total, sin normalizar saltos de linea. Ningun fragmento es\nuna nueva fuente ni un original privado.\n\nBundle demasiado grande: 413 con URLs individuales. Parametros invalidos:\n400; ID no publicado: 404; fragmento fuera de rango: 416; escrituras: 405;\ncanal apagado o integridad no valida: 503. Se mantienen los formatos previos.\n\n### Seguridad y verificacion\n\nLos mismos archivos sanitizados del release y hashes fijados; no consulta\nBD, vault, sistema de ficheros arbitrario o comandos. El usuario publico\nmantiene filesystem de solo lectura y bloqueo connect. No existe login ni\ncookie en 85. La autenticacion de 80/88 no se cambia por este mecanismo.\n\nLa herramienta web OpenAI probo tambien /api/review y PROJECT_STATUS y\ndevolvio «URL ... is not accessible via this tool», sin codigo HTTP ni body.\nEl cliente HTTPS ordinario si obtuvo el JSON completo. Por tanto la via\nesta implementada y verificada en HTTP, pero no se promete resolver la\nruta de red/politica de ese cliente. No se eluden sus restricciones ni\nse desactiva seguridad del servicio para forzarla.\n\n## Registro historico: diagnostico inicial\n\nFecha de comprobacion: 06/11/2026, Europe/Madrid. Alcance: canal documental\npublico, servicio 85 e interruptor 88. Cero llamadas GLS.\n\n## Resultado ejecutivo\n\nEl acceso anonimo por HTTPS funciona desde el servidor de ejecucion con\nclientes HTTP estandar. No se reproduce un 502. La herramienta web de\nOpenAI devuelve un error propio de inaccesibilidad sin codigo HTTP. Sus\nintentos no han dejado nuevas entradas atribuibles en las trazas de 85.\n\nNo hay evidencia para atribuirlo a la aplicacion. Tampoco hay acceso a los\nlogs del proxy corporativo para descartar una regla por IP/ASN o un bloqueo\nanterior al servicio. La causa exacta de la ruta OpenAI sigue NO DETERMINADA.\nNo se ha desactivado seguridad, cambiado el proxy ni expuesto el backend.\n\n## Comprobaciones\n\n| Elemento | Evidencia | Resultado |\n|---|---|---|\n| DNS publico A | DNS-over-HTTPS Google y resolver local | 51.178.24.58 |\n| DNS publico AAAA | NOERROR sin respuestas | No publica IPv6 |\n| Segundo resolver DoH | Conexion a Cloudflare rechazada desde entorno ejecutor | No es un fallo del dominio |\n| TLS/SNI | Handshake con verificacion y nombre th85.aeizoon.com | Valido, TLS 1.3 |\n| Certificado | SAN th85.aeizoon.com, Let's Encrypt YE2 | 05/11/2026 23:02:21 a 03/02/2027 23:02:20 UTC |\n| IPv4 curl | HTTP 200, ssl_verify_result 0 | Correcto |\n| IPv6 curl | Exit 6, no AAAA resoluble | No disponible; no AAAA defectuoso |\n| HTTP a HTTPS | GET manifest por HTTP | 301 a la misma ruta HTTPS |\n| Raiz HTTPS | GET anonimo | 200 sin cookies ni login |\n| manifest.json | GET anonimo | 200 JSON valido |\n| PROJECT_STATUS.html | GET anonimo | 200 HTML pasivo |\n| Documentos enlazados iniciales | 26 representaciones, 12 documentos | Todos 200 y hash correcto |\n| User-Agent Mozilla/5.0 | GET PROJECT_STATUS | 200 |\n| User-Agent ChatGPT-Test | GET PROJECT_STATUS | 200, mismo hash |\n| Servicio interno 85 | GET manifest | 200 |\n| Servicio 88 | health/ready | 200 |\n| Login privado | admin/platform y knowledge sin sesion | 303 a login, login 200 |\n\n## Cabeceras\n\nProxy observado: Server openresty, X-Served-By th85.aeizoon.com.\nContent-Type coherente con HTML/JSON/Markdown; no Set-Cookie.\nCache-Control no-store,no-cache,must-revalidate,max-age=0,\nCDN-Cache-Control no-store, Surrogate-Control no-store,\nX-Robots-Tag noindex,nofollow,noarchive. CSP impide scripts, conexiones\nactivas, formularios, marcos y recursos externos. No se quitaron controles.\n\n## Interruptor y permisos\n\nEl estado persistido estaba enabled=true por decision del usuario.\nEl servicio publico recibe solo politica, archivos revisados y control.\nEl servicio 88 recibe el grupo suplementario de auditoria mediante systemd.\nUna consola con solo el grupo primario no puede verificar esa politica;\neso es aislamiento de permisos, no un fallo del canal. La comprobacion\ndebe reproducir el contexto de grupos del servicio.\n\n## Trazas correlacionadas\n\nSe midieron 154 lineas antes y 155 despues de tres intentos de consulta web.\nLa diferencia de una linea corresponde al propio GET interno realizado al\nfinal de la primera medicion. No aparece una llegada adicional atribuible\na esos intentos. El log deliberadamente no guarda IP, User-Agent ni rutas\narbitrarias; por ello esta correlacion temporal no identifica la causa en\nel proxy y no excluye peticiones coincidentes de terceros.\n\nHerramienta web: error «URL ... is not accessible via this tool» en raiz,\nmanifest y PROJECT_STATUS (HTML/Markdown). No proporciono HTTP 502, body,\ncabeceras ni Ray/request ID. No se debe traducir ese error en un 502 de TH.\n\n## Restricciones por IP\n\nEl servicio 85 no contiene ACL de IP ni filtros User-Agent, y sirve copias\nPUBLIC_REVIEW anonimamente mientras el interruptor esta activo. Solo se\nha demostrado acceso desde las redes probadas. WAF/rate limits/ASN del\nproxy corporativo no son inspeccionables desde esta VM. No se afirma que\nno existan. Resolver esa parte requiere correlacion de sus logs por hora,\nsin modificar politicas globales ni abrir puertos adicionales.\n\n## Cambio aplicado\n\nNo se necesita correccion de red en TRANSPORT HUB para el acceso estandar.\nSe publica este informe. Se coordina la actualizacion de releases con el\ninterruptor mediante un bloqueo comun, respetando su valor mas reciente;\nesto evita una carrera administrativa, no pretende corregir el error OpenAI.\n\n## Cadena HTTP esperada\n\nHTTP /manifest.json -> 301 -> HTTPS /manifest.json -> 200.\nHTTPS / -> 200. HTTPS /documents/PROJECT_STATUS.html -> 200.\nNo hay redireccion a login en 85. En 88 sigue habiendo autenticacion.\n\n## Limite y siguiente diagnostico\n\nPara el cliente web que sigue fallando, obtener del proxy corporativo el\nregistro del intervalo correspondiente: si llego, decision/status/upstream;\nsi no llego, revisar la ruta de consulta externa. No reconfigurar TH para\neludir las restricciones de una herramienta ni habilitar proxy abierto.\n\nLa validacion final del release publicado se registra junto al manifiesto:\ndeben coincidir todos los hashes y formatos. Las evidencias tecnicas completas\npermanecen privadas; solo este informe sanitizado queda publicado.\n"}