Universidad Pol Facultad D Trabajo
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD POLITÉCNICA DE MADRID FACULTAD DE INFORMÁTICA TRABAJO FINAL DE CARRERA ESTUDIO DEL PROTOCOLO XMPP DE MESAJERÍA ISTATÁEA, DE SUS ATECEDETES, Y DE SUS APLICACIOES CIVILES Y MILITARES Autor: José Carlos Díaz García Tutor: Rafael Martínez Olalla Madrid, Septiembre de 2008 2 A mis padres, Francisco y Pilar, que me empujaron siempre a terminar esta licenciatura y que tanto me han enseñado sobre la vida A mis abuelos (q.e.p.d.) A mi hijo icolás, que me ha dejado terminar este trabajo a pesar de robarle su tiempo de juego conmigo Y muy en especial, a Susana, mi fiel y leal compañera, y la luz que ilumina mi camino Agradecimientos En primer lugar, me gustaría agradecer a toda mi familia la comprensión y confianza que me han dado, una vez más, para poder concluir definitivamente esta etapa de mi vida. Sin su apoyo, no lo hubiera hecho. En segundo lugar, quiero agradecer a mis amigos Rafa y Carmen, su interés e insistencia para que llegara este momento. Por sus consejos y por su amistad, les debo mi gratitud. Por otra parte, quiero agradecer a mis compañeros asesores militares de Nextel Engineering sus explicaciones y sabios consejos, que sin duda han sido muy oportunos para escribir el capítulo cuarto de este trabajo. Del mismo modo, agradecer a Pepe Hevia, arquitecto de software de Alhambra Eidos, los buenos ratos compartidos alrrededor de nuestros viejos proyectos sobre XMPP y que encendieron prodigiosamente la mecha de este proyecto. A Jaime y a Bernardo, del Ministerio de Defensa, por haberme hecho descubrir las bondades de XMPP. Y por último, quiero enviarles un grato reconocimiento a todos mis antiguos compañeros de la Facultad de Informática y a los que coincidieron conmigo en su Club de Informática y Telemática, el Capítulo de Estudiantes de ACM, el Grupo de Modelos y Software para el Medio Ambiente (los “Adivinos del Aire” como nos llamó El País en aquel artículo sobre nuestras investigaciones), a los amigos del Laboratorio de Comunicación Oral “Robert Wayne Newcomb” y a muchos más compañeros de la promoción de 1.991 que hicieron de la FIUPM un lugar entrañable y con una ambición de excelencia académica a la que nunca debe renunciar. José Carlos Díaz García Universidad Politécnica de Madrid Facultad de Informática Madrid, 29 de Septiembre de 2.008 I II Índice general 1. Introducción ............................................................................................................ 1 2. Objetivos .................................................................................................................. 5 3. Estado del arte ......................................................................................................... 7 3.1. Fundamentos generales de la MI ....................................................................... 7 3.2. Antecedentes ...................................................................................................... 8 3.2.1. Talkomatic y Term-Talk ............................................................................. 9 3.2.2. Talk de UNIX ............................................................................................ 12 3.2.2.1. Orígenes ............................................................................................. 12 3.2.2.2. Descripción técnica ............................................................................ 13 3.2.3. Internet Relay Chat (IRC) ......................................................................... 14 3.2.3.1. Orígenes ............................................................................................. 14 3.2.3.2. Descripción técnica ............................................................................ 15 3.2.3.3. Clientes .............................................................................................. 18 3.2.3.4. Servidores .......................................................................................... 18 3.2.4. ICQ y el comienzo de la era moderna de la MI......................................... 19 3.2.4.1. Fundamentos del protocolo OSCAR ................................................. 20 3.2.4.2. Formato de los paquetes .................................................................... 21 3.2.4.3. Funcionamiento general del protocolo .............................................. 28 3.2.4.4. Servicios de mensajería y estructura de los mensajes ....................... 29 3.2.5. Jabber y XMPP .......................................................................................... 32 3.2.5.1. Introducción ....................................................................................... 32 3.2.5.2. Orígenes ............................................................................................. 33 3.3. Fundamentos técnicos de XMPP ..................................................................... 35 3.3.1. Arquitectura general del protocolo ............................................................ 35 3.3.2. Direccionamiento ...................................................................................... 37 3.3.3. Estructura de la comunicación basada en XML: Streams y Stanzas ......... 38 3.3.3.1. Negociación de la comunicación: XML Streams .............................. 39 3.3.3.2. TLS: La seguridad en la capa de transporte ....................................... 40 3.3.3.3. Autenticación con SASL ................................................................... 46 3.3.3.4. Comandos: XML Stanzas .................................................................. 52 3.3.4. La mensajería Instantánea en XMPP ........................................................ 53 III 3.3.4.1. Direccionamiento de los mensajes .................................................... 53 3.3.4.2. Estructura de los mensajes ................................................................. 54 3.3.4.3. Listas de Privacidad ........................................................................... 59 3.3.5. La Presencia en XMPP .............................................................................. 60 3.3.5.1. El concepto de presencia ................................................................... 60 3.3.5.2. Descripción técnica del protocolo de presencia ................................ 62 3.3.5.3. Cambios en el estado de presencia de los clientes ............................. 63 3.3.5.4. Suscripciones de presencia ................................................................ 64 3.3.5.5. Manejo del Roster .............................................................................. 67 3.3.5.5.1. Descarga del roster ..................................................................... 69 3.3.5.5.2. Actualización del roster: inserción, modificación y borrado ...... 71 3.3.5.6. Prioridades de los recursos ................................................................ 73 3.3.5.7. Presencia dirigida .............................................................................. 74 3.3.5.8. Presencia final .................................................................................... 75 3.3.5.9. Ejemplos de presencia ....................................................................... 75 3.3.6. Consideraciones de seguridad en XMPP .................................................. 80 3.3.7. Extensiones del protocolo: JEPs/XEPs ..................................................... 81 3.3.7.1. Introducción ....................................................................................... 82 3.3.7.2. Tipos de XEPs ................................................................................... 84 3.3.7.3. Algunas de las XEPs más importantes .............................................. 84 3.3.8. Ejemplo de una sesión XMPP ................................................................... 88 3.3.8.1. Conectar con el servidor de GMail e iniciar sesión ........................... 88 3.3.8.2. El mecanismo de autenticación segura de Gtalk ............................... 97 3.3.8.3. Enviar un mensaje a uno de los contactos ....................................... 100 3.3.8.4. Cambiar el estatus de presencia ....................................................... 101 3.3.8.5. Asociar un Nuevo grupo a un contacto del roster ........................... 102 3.3.8.6. Enviar un fichero a un contacto del roster ....................................... 103 3.3.8.7. Cerrar la sesión ................................................................................ 104 3.3.9. Roadmap.................................................................................................. 104 3.3.10. Software existente ................................................................................. 106 3.3.10.1. Clientes XMPP .............................................................................. 106 3.3.10.2. Servidores XMPP .......................................................................... 110 3.3.10.3. Librerías para el desarrollo de software......................................... 113 IV 3.3.11. Posibilidades del protocolo XMPP ....................................................... 115 3.3.11.1. Transporte entre Jabber/XMPP y otros servidores de MI ............. 116 3.3.11.2. Robots XMPP ................................................................................ 118 3.3.11.3. XMPP como facilitador de los Cloud Services ............................. 119 3.3.11.4. La capacidad P2P ........................................................................... 120 4. Aplicaciones del protocolo XMPP ....................................................................