23°

~/temas/redes-y-bajo-nivel

Redes y bajo nivel

Lo que viaja por el cable, leído byte a byte.

Todos los temas

Un diagrama de siete capas se entiende mucho mejor cuando se ve el paquete real que las atraviesa. Lo mismo pasa con un handshake TLS o con el chip que guarda tus claves: la teoría se sostiene sola, pero la captura es la que convence. Aquí se trabaja sobre tráfico y hardware propios, no sobre ejemplos de manual.

13 entradas

Portada: «SMS de la muerte»: un mensaje invisible puede dejar tu Android sin llamadas, incluso de emergenciaNoticia«SMS de la muerte»: un mensaje invisible puede dejar tu Android sin llamadas, incluso de emergenciaEl 29 de octubre de 2026 se informó una falla, llamada «SMS de la muerte» (CVE-2026-58882), que Google clasifica como crítica: un mensaje de texto especial, que no aparece en la bandeja ni muestra quién lo envía, puede dejar sin servicio de llamadas a teléfonos Android 12 a 17, cortar llamadas en curso incluso de emergencia y, con varios mensajes, dejar el teléfono reiniciándose cada minuto y medio. Google la corrigió en el parche de octubre para Android 14 a 17; la 12 y la 13 quedarían sin arreglo. Aquí: a quién afecta, cómo revisar tu nivel de parche (lo probé en un teléfono real) y qué hacer si el tuyo ya no recibe actualizaciones.#Android#Seguridad#SMSPortada: Aislar un agente de código con gVisor o Kata: cuánto cuesta frente a Docker, medidoArtículoAislar un agente de código con gVisor o Kata: cuánto cuesta frente a Docker, medidoMedí cuánto cuesta correr el trabajo de un agente de código aislado en gVisor y en Kata Containers 4.3 (con QEMU y con Cloud Hypervisor) en vez de un contenedor Docker normal. Kata tarda 6 a 7 s en arrancar contra 0,22 s de runc y deja 199 a 302 MiB por contenedor contra 11,5; gVisor arranca en 0,33 s, usa 48,6 MiB y empata con runc en una carga de miles de archivos pequeños.#Contenedores#Seguridad#AgentesPortada: Asterinas 0.19, el kernel en Rust compatible con Linux: repetí sus benchmarks en mi máquina y 13 de 23 se sostienenArtículoAsterinas 0.19, el kernel en Rust compatible con Linux: repetí sus benchmarks en mi máquina y 13 de 23 se sostienenAsterinas es un kernel escrito en Rust que corre programas de Linux sin cambios, y publica cada noche una comparación contra Linux. Repetí 23 de esos benchmarks con sus propios scripts, tres veces cada uno, en un Ryzen 7 7800X3D. En 13 el resultado se reproduce. Asterinas arrancó el doble de rápido y ganó en la latencia de sysbench con hilos; Linux ganó en las llamadas al sistema simples, la lectura y escritura de archivos y nginx que medí, y en schbench con 8 CPU. En fork el ganador se da vuelta respecto de lo publicado.#Rust#Linux#BenchmarksPortada: La raíz de DNSSEC cambió de llave el 11 de octubre: qué se rompió, hora por hora, y qué entornos ya confían en la nuevaArtículoLa raíz de DNSSEC cambió de llave el 11 de octubre: qué se rompió, hora por hora, y qué entornos ya confían en la nuevaEl 11 de octubre de 2026 la raíz del DNS empezó a firmar con la KSK-2024. Vigilé diez resolvers cada cinco minutos. Con example.com y contando desde la primera tanda con la llave nueva, systemd-resolved de Ubuntu 24.04 empezó a fallar a los 20 minutos, los unbound con solo la llave vieja entre 7 y media y 13 y media horas después, Pi-hole v5 siguió en pie y Yandex dejó de marcar sus respuestas como validadas. Antes del cambio medí qué distribuciones, imágenes Docker, routers y resolvers ya confían en ella.#DNS#DNSSEC#SeguridadPortada: Rust Coreutils 0.12 contra GNU 9.12: casi todo funciona igual, arrancar cuesta casi el triple y mv entre discos pierde las fechasArtículoRust Coreutils 0.12 contra GNU 9.12: casi todo funciona igual, arrancar cuesta casi el triple y mv entre discos pierde las fechasMedí Rust Coreutils (uutils) 0.12 contra GNU coreutils 9.12 en contenedores con límites: la suite de pruebas de GNU, 157 comandos con la salida comparada y el arranque de proceso. uutils es más lento en 91 de 157 celdas, tarda 2,8 veces más en lanzar 5.000 procesos, y mv entre sistemas de archivos pierde las fechas.#Rust#Coreutils#GNUPortada: Un chat en Amazon Bedrock AgentCore para mi blog: lo rompí con 64 mensajes y lo rearmé con reglas fuera del promptArtículoUn chat en Amazon Bedrock AgentCore para mi blog: lo rompí con 64 mensajes y lo rearmé con reglas fuera del promptTutorial: chat LangGraph en Amazon Bedrock AgentCore con Knowledge Base S3 y guardrails, probado con una conversación de 64 mensajes. Costos y opción local.#IA#AWS#SeguridadPortada: Medí Pingora 0.9.0 seis veces más lento que nginx. El culpable era una línea de mi códigoArtículoMedí Pingora 0.9.0 seis veces más lento que nginx. El culpable era una línea de mi códigoEscribí un reverse proxy mínimo con Pingora 0.9.0 y en un contenedor de 2 vCPU medía 21 mil peticiones por segundo contra las 126 mil de nginx: seis veces más lento. El culpable no era Pingora sino un getaddrinfo bloqueante que mi upstream_peer ejecutaba en cada petición. Corregido, la brecha real es 1,70x, y perf la cuantifica: 1,70x en ciclos por petición, 119,4 mil contra 70,4 mil, sin decir dónde se gastan.#Rust#Benchmarks#RedesPortada: Medí 320 sitios chilenos: la mitad ya usa criptografía post-cuántica, y casi ninguno lo decidióArtículoMedí 320 sitios chilenos: la mitad ya usa criptografía post-cuántica, y casi ninguno lo decidióSondeé los 320 dominios .cl más visitados: 145 negocian X25519MLKEM768 (47,7 %), pero solo 9 de los 128 con infraestructura propia. Coste medido: 0 ms.#Criptografía post-cuántica#TLS#ChilePortada: Armé un handshake completamente post-cuántico, y después fui a ver cuál de mis servidores podía hacerloArtículoArmé un handshake completamente post-cuántico, y después fui a ver cuál de mis servidores podía hacerloRustls activó los certificados ML-DSA por defecto, solo para jerarquías privadas. Armé un mTLS donde el intercambio de claves, la firma del servidor y la identidad del cliente son post-cuánticos. Medí cuánto pesa la cadena, qué versión de cada servidor lo soporta, y corregí un número que había dado mal: la clave no es 19 veces más grande, son 128 bytes.#Criptografía post-cuántica#TLS#mTLSPortada: Monté un sandbox público del Sistema de Finanzas Abiertas de Chile, y Keycloak solo no alcanzabaArtículoMonté un sandbox público del Sistema de Finanzas Abiertas de Chile, y Keycloak solo no alcanzabaChile tiene norma de finanzas abiertas y no tiene un sandbox público donde probarla. Monté uno completo y no oficial, fiel al Anexo Técnico: directorio de participantes, banco, servidor de autorización y aplicación solicitante, con PAR obligatorio, objeto de petición cifrado, mTLS y RAR en el token. Keycloak 26 cubre buena parte por configuración, pero el modelo de consentimiento que Chile eligió no existe en el producto: hubo que escribirlo entero.#Seguridad#Arquitectura#ChilePortada: El chip que guarda tus claves está roto: audité las cuatro máquinas de mi enjambreArtículoEl chip que guarda tus claves está roto: audité las cuatro máquinas de mi enjambreDos fallos de CVSS 8.5 y 8.3 en el TPM por firmware afectan de Ryzen 3000 a Ryzen 9000 y a Intel hasta Ultra 200. Revisé mis cuatro máquinas: dos están afectadas, una tiene parche desde julio y la otra fue abandonada por el fabricante en 2022.#Seguridad#Hardware#LinuxPortada: PhantomRelay: por qué tu automatización se delata antes del primer byte HTTPArtículoPhantomRelay: por qué tu automatización se delata antes del primer byte HTTPUn cliente HTTP de Node es distinguible de Chrome real en el handshake TLS, antes de enviar una sola cabecera. Cómo construí un relay de navegador con un addon Rust sobre BoringSSL, escalación por costo y casi 900 tests.#Sistemas#RedesPortada: El modelo OSI explicado: las 7 capas y la encapsulaciónArtículoEl modelo OSI explicado: las 7 capas y la encapsulaciónQué es el modelo OSI, para qué sirve cada una de sus 7 capas y cómo un dato se encapsula en segmentos, paquetes, tramas y bits al viajar por la red.#Redes#Bajo nivel

Todos los escritos