Podcast Z #6: Proyecto X - DNS como base de datos distribuida mundial
MP3
OGG (Vorbis)
OPUS
Síguenos en Twitter
Suscríbete por Apple Podcast
Donación BitCoin:
1GNbTi1tL2TakGs9S9o1n6p7AVJWtBhi33
Usar el DNS como un sistema de cacheo mundial.
Autor: Jesús Cea & Pablo Lobariñas - Contacto: python2016@podcast.jcea.es
Fecha de grabación: 2011/12/06 - Duración: 29:48
Fecha de publicación: 2012/01/23
Palabras clave: Seguridad, Criptografía, DNS, Python, Bases de Datos
Descarga el audio: MP3 (9956448 bytes) - OGG (5923720 bytes)
Notas:
- 00:30: El proyecto es confidencial, pero quiero exponer algunas técnicas que pueden
ser útiles para otros programadores.
- 02:50: El programa requiere actualizarse constantemente de forma automática.
- 04:30: El usuario solo instala manualmente un "descargador".
- 05:50: Descripción del proceso de actualización.
- 06:30: Firma digital, imprescindible cuando hay actualizaciones constantes a través de
redes no confiables.
- 08:00: En la primera versión del proyecto, el programa se descargaba en cada ejecución (20KBytes).
- 09:00: Pero esto no escala cuando el número de usuarios crece, o el tamaño del fichero crece.
- 13:30: Usar el DNS para comprobar las versiones, utilizándolo de caché. A nivel mundial
y de forma simple.
- 15:20: Cuando un ordenador pide a su ISP que haga una petición de DNS, dicho ISP cachea
el resultado y está disponible para otros clientes. Y el tiempo de cacheo es configurable en el servidor
origen.
- 17:30: Problema: sin instalar librerías adicionales, Python tiene una capacidad de interacción
con el DNS muy limitada. Hay que buscarse la vida.
- 19:30: En vez de decir a través del DNS qué versión es la más moderna, lo que hacemos es
permitir que el cliente confirme si su versión es la última o no. Comprobamos si el registro
"HASH_MD5.md5.DOMINIO" existe o no.
- 22:40: Ojo con los ISPs puñeteros que resuelven a sus propias IPs las resoluciones DNS inexistentes.
Solución: Comprobamos que la IP resuelta sea la esperada.
- 25:00: Firma digital por El Gamal.
- 27:20: El actualizador no hace más descargar la versión actual (con todas las verificaciones)
y luego le pasa el control. Actualizar el actualizador es "complicado" :).