tecnologías web 2.0 de doble uso (civil y militar)

72
Universidad Politécnica de Madrid Facultad de Informática José Carlos Díaz Madrid, Septiembre de 2008

Upload: jose-c-diaz

Post on 06-Dec-2014

3.833 views

Category:

Technology


0 download

DESCRIPTION

Estudio del Protocolo XMPP, de sus antecedentes,y de sus aplicaciones civiles y militares

TRANSCRIPT

Page 1: Tecnologías Web 2.0 de doble uso (civil y militar)

Universidad Politécnica de Madrid Facultad de Informática

José Carlos Díaz Madrid, Septiembre de 2008

Page 2: Tecnologías Web 2.0 de doble uso (civil y militar)
Page 3: Tecnologías Web 2.0 de doble uso (civil y militar)

La MI es hoy uno de los medios de comunicación más importantes, con más de 500 millones de usuarios en el mundo

La MI es un fenómeno social y una herramienta de comunicación

Desplazando ya al e-mail en muchas organizaciones como consecuencia de su acentuado carácter generacional

Una de las claves es que maneja el concepto de Presencia

La Presencia es lo que permite comunicar a usuarios y servicios su estado de disponibilidad en una red MI

3

Page 4: Tecnologías Web 2.0 de doble uso (civil y militar)

La MI es el canal de comunicación con el crecimiento más rápido nunca visto

Creciendo más rápido que el teléfono móvil y el e-mail Convergencia Voz-Video-Texto a finales de 2011 en el

mundo de la empresa Más de 500 millones de usuarios individuales en todo el

mundo

4

Page 5: Tecnologías Web 2.0 de doble uso (civil y militar)

Sobre redes IP y entre dispositivos tanto fijos como móviles

Transmisión de voz, video y datos

Sobre estándares de seguridad

A través de servidores públicos, privados o P2P, según el protocolo de MI

Capacidad de encolamiento de mensajes en los servidores para ofrecer mensajería offline

Control de la presencia de sus usuarios

Distribución/Acceso de herramientas y servicios

Base de tecnología madura, con decenas de implementaciones abiertas y propietarias

5

Page 6: Tecnologías Web 2.0 de doble uso (civil y militar)

6

Talkomatic y TermTalk fueron dos de la primeras aplicaciones de chat

Talkomatic y Termtalk fueron desarrolladas en la década de 1970 para la comunidad de usuarios del sistema operativo de tiempo compartido PLATO de Control Data Corporation

PLATO fue el primer sistema de teleformación y colaboración multiusuario

Sus terminales estaban dotados de modem de 1200 bps de ancho de banda y se podían conectar a Homelink, una red precursora de las BBS e Internet

Programmed Logic for Automated Teaching Operations

Page 7: Tecnologías Web 2.0 de doble uso (civil y militar)

7

Page 8: Tecnologías Web 2.0 de doble uso (civil y militar)

8

Talk, NTalk e YTalk fueron tres aplicaciones de MI creadas para el sistema operativo UNIX a comienzos de la década 1970

Talk utilizaba el protocolo UDP para negociar las conexiones entre los dos extremos para, luego, emplear un socket persistente TCP como canal de transmisión de los mensajes entre los participantes

USUARIO RECEPTORDE LA LLAMADA

SERVIDOR ORIGEN SERVIDOR DESTINO

CLIENTE ORIGEN CLIENTE DESTINO

6

73

2USUARIO QUE ORIGINA LA LLAMADA 1

4

58

9

HOST 1 HOST 1

Page 9: Tecnologías Web 2.0 de doble uso (civil y militar)

9

IRC (Internet Relay Chat) es otro protocolo de comunicación en tiempo real basado en texto, que permite la conferencia de texto entre dos o más personas

Las conversaciones se desarrollan en los llamados canales de IRC, que pueden ser locales o no al servidor al que se conectan los clientes

Los servidores gestionan los canales y las conversaciones

Utiliza TCP así como opcionalmente SSL

Los servidores de IRC se interconectan formando un árbol

Cada servidor debe tener una copia de la información sobre el estado global, lo que limita el tamaño máximo de estas redes

Los servidores de IRC retransmiten las conversaciones de cada canal a cada uno de los usuarios conectados a dicho canal

Existen muchas implementaciones de clientes IRC así como de servidores

Page 10: Tecnologías Web 2.0 de doble uso (civil y militar)

10

ICQ (Mirabilis,1996), primer protocolo de MI de nueva generación

Primer protocolo con mensajes offline, envío de SMS, conversaciones multiusuario y mensajes personales, transferencia de ficheros, P2P, etc

UIN (Universal Internet Number), cada usuario era registrado con un número único al cual se le podía asociar información complementaria

Microsoft Messenger lo copió hasta desplazarlo en el mercado

Transformado en protocolo OSCAR (Open System for Communications in Real-Time) cuando lo compra AOL en1998

Page 11: Tecnologías Web 2.0 de doble uso (civil y militar)

11

múltiples servidores centrales BOS (Basic OSCAR Service) + otros servidores de servicios

paquetes binarios de longitud variable

basado en TCP, protocolo extensible, seguridad escasa, proxies

los servidores hacen relay de los mensajes

Permite conexiones P2P y transferencia de ficheros

SERVIDOR DE CHAT

SERVIDOR DE AUTENTICACION

AOL SERVIDOR EMAIL

AOL BUDDY ICON SERVER

AOL OTROS SERVICIOS

SERVIDOR BOS SERVIDOR BOS

P2P chat voz/videotransferencia de

archivos

Page 12: Tecnologías Web 2.0 de doble uso (civil y militar)

12

IPTCP

FLAP FLAP

SNAC

TLV

TLV

TLV

SNAC

TLV

RAW

RAW

FLAP

RAW

... ... FLAP data

2A byte FLAP id byte

xx byte FLAP channel

xx xx word FLAP datagram seq number

xx xx word FLAP data size

... ... SNAC data

xx xx word Family service id number

xx xx xx xx xx dword SNAC request id

xx xx word Family subtype id number

xx xx word SNAC flags

... ... TLV data

xx xx word TLV type number

xx xx word TLV length value

FLAPPacket frame abstractionCanales (1 = login, 2 = messages, etc)Paquete de separación dentro de TCPMultiplexado

SNACDefine comandos/acciones~20 familias, >200 comandosPermite extensibilidad & compatibilidad

TLVTipo, Longitud, ValorRepresenta un registro simple de datos

Family 0x0001: Generic Service Controls

Family 0x0002: Location ServicesFamily 0x0003: Buddy List

ManagementFamily 0x0004: MessagingFamily 0x0005: AdvertismentsFamily 0x0006: Invitation and Client-

to-ClientFamily 0x0007: AdministrativeFamily 0x0008: Popup NoticesFamily 0x0009: BOS-specificFamily 0x000A: User LookupFamily 0x000B: StatsFamily 0x000C: TranslateFamily 0x000D: Chat NavigationFamily 0x000E: ChatFamily 0x0045: Unknown (Client

Something?)

Family 0x0001: Generic Service Controls

Family 0x0002: Location ServicesFamily 0x0003: Buddy List

ManagementFamily 0x0004: MessagingFamily 0x0005: AdvertismentsFamily 0x0006: Invitation and Client-

to-ClientFamily 0x0007: AdministrativeFamily 0x0008: Popup NoticesFamily 0x0009: BOS-specificFamily 0x000A: User LookupFamily 0x000B: StatsFamily 0x000C: TranslateFamily 0x000D: Chat NavigationFamily 0x000E: ChatFamily 0x0045: Unknown (Client

Something?)

Page 13: Tecnologías Web 2.0 de doble uso (civil y militar)
Page 14: Tecnologías Web 2.0 de doble uso (civil y militar)

14

XMPP ES UN PROTOCOLO DE MENSAJERÍA ASÍNCRONA

NO USA LA TÉCNICA DEL POLLING

CONSUMO EFICIENTE DE ANCHO DE BANDA

Page 15: Tecnologías Web 2.0 de doble uso (civil y militar)

15

2000 2001 2002 2003 2004 2005 2006 2007 2008

febrero 2000IMPP WG lanza los RFCs 2778 y 2779

enero 1999Lanzamiento de Jabber

junio 2000Primer Borrador para la IETF

de los protocolos Jabber

agosto 2001Constitución

de la JSF

febrero 2002Nuevo borrador

enviado a la IETF

julio 2002Envio de 3 borradores a la IETF. Solicitud del

WG de XMPP

octubre 2002El XMPP WGes aprobado

julio 2004La IETF aprueba

los RFC 3920, 3921, 3922 y 3923

agosto 2005Google lanza Google Talk,

la mayor red XMPP de IM

noviembre 2005El DoD norteamericano

aprueba la adopción del XMPP como standard de IM y

presencia

mayo 2008Facebook anuncia que soportará IM basada en XMPP

febrero 2006RIM (Blackberry) anuncia adopción de XMPP para IM

diciembre 2006IBM lanza Lotus SameTime 7.5

compatible XMPP

diciembre 2006Apple lanza iChat compatible XMPP

marzo 2008Avaya tiene en cuenta

XMPP en su Intelligent Presence Server

junio 2008Google y Yahoo anuncian

que conectaran por XMPP sus redes IM

2006Aparecen las primeras

implementaciones de XMPP que soportan VoIP

marzo 2008AOL abre

definitivamente su AIM a las redes XMPP

Page 16: Tecnologías Web 2.0 de doble uso (civil y militar)

16

El HTTP es un protocolo síncrono

Para simular el tiempo real se deben emplear técnicas de pollingSe producen latencias

Se malgasta ancho de banda con tráfico innecesario

Page 17: Tecnologías Web 2.0 de doble uso (civil y militar)

17

100% XML

Abierto

Extensible. Permite extensiones (XEPs) que añaden features tales como VoIP, transferencia de ficheros, P2P, PubSub, etc.

Descentralizado (cualquiera puede correr su propio servidor xmpp)

Seguro (soporte nativo de SASL y TLS, firma electrónica)

No necesariamente síncrono

Comunicación bidireccional

Protocolos de transporte: TCP, UDP, HTTP…

Permite federacionesXML

Page 18: Tecnologías Web 2.0 de doble uso (civil y militar)

18

XMPP se basa en una serie de estándares de la IETF:

RFC 3920: XMPP Core

RFC 3921: Instant Messaging and Presence

RFC 3922: Mapping XMPP to Common Instant Messaging and Presence

RFC 3923: End to end signing and object encryption for XMPP

Page 19: Tecnologías Web 2.0 de doble uso (civil y militar)

19

se suele implementar como cliente-servidor...

...aunque XMPP se puede usar para establecer transferencias P2P

TCP o HTTP (BOSH/HTTP Binding o HTTP Polling)

Direccionamiento por dominios y JIDs

Los servidores enrutan los mensajes

Gateways entre redes de MI

USUARIO DE CLIENTE JABBER/XMPP

USUARIO DE CLIENTE ICQ

jabber.ejemplo.com

jabber.ejemplo.com

SERVIDOR ICQ

XMPP

XMPP OSCAR OSCAR

XMPP-Other IM Networks

GATEWAY 1

XMPPServer 1

XMPPServer 2

XMPPClient 1

XMPPClient 2

NON-XMPPIM Client 1

NON-XMPPIM Server 1

NON-XMPPIM Client 2

Conexión XMPP

Conexión no-XMPP

Page 20: Tecnologías Web 2.0 de doble uso (civil y militar)

20

Cada entidad en una red XMPP se identifica por medio de un JID

Ejemplo 1: <[email protected]/resource>

Ejemplo 2: <chatroom@example>

Ejemplo 3: <domain/resource>

jid = [ node "@" ] domain [ "/" resource ]domain = fqdn / address-literalfqdn = (sub-domain 1*("." sub-domain))sub-domain = (internationalized domain label)address-literal = IPv4address / IPv6address

Page 21: Tecnologías Web 2.0 de doble uso (civil y militar)

21

toda comunicación se hace a través de contenedores XML streams (<stream/>)

Los XML streams contienen toda la sesión, incluyendo cada mensaje enviado dentro de la sesión

Cada conexión XMPP tiene dos XML streams abiertos, uno en cada dirección

Los XML streams se emplean para enviar stanzas o comandos, de un host a otro.

Las stanzas son los elementos hijos de primer nivel de <stream/>

Tres tipos de stanzas: <message/>, <presence/> y <iq/>.<stream>...<message to='somebody'> <body>Hello!</body></message>...</stream>

Page 22: Tecnologías Web 2.0 de doble uso (civil y militar)

22

Cliente abre conexion TCP con el servidor de su dominio y autentica al usuario

Cliente usa conexion TCP anterior para enviar un paquetes IM hacia su servidor

El servidor consulta servicio DNS para hallar IP del servidor de destino a partir del dominio del JID del destinatario

Conexión TCP entre servidores XMPP y reenvío de paquete IM

Servidor destino utiliza conexión TCP para entregar paquete de IM

Page 23: Tecnologías Web 2.0 de doble uso (civil y militar)

23

1) Conectarse con el puerto 5222 del servidor y enviar una etiqueta de sesión abierta <stream:stream>

2) Esperar la respuesta del servidor <stream:stream>

3) Negociación TLS

4) Autenticación mediante SASL

5) Enviar y recibir paquetes XMPP o stanzas

6) Enviar la etiqueta de cierre </stream:stream> para terminar la sesión.

7) Cerrar la conexión

Cliente Servidor

1

3

2

4

5

7

6

Page 24: Tecnologías Web 2.0 de doble uso (civil y militar)

24

La seguridad en el transporte la aporta el protocolo TLS - Transport Layer Security, definido en el RFC 2246

TLS es un protocolo para establecer una conexión segura C2S y S2S

Capaz de autenticar en ambos lados de la comunicación, y crea una conexión cifrada entre las dos.

Extensible con nuevos algoritmos

Jabber.org Jabber.es

[email protected] [email protected]

S2S

C2S

C2S

Jabber.org Jabber.es

[email protected] [email protected]

S2S

C2S

co

n T

LS

Jabber.org Jabber.es

[email protected] [email protected]

S2S con TLS

C2S

co

n T

LS

C2S

co

n T

LS

C2S

co

n T

LS

Page 25: Tecnologías Web 2.0 de doble uso (civil y militar)

25

EN

TID

AD

OR

IGE

N

[email protected]

EN

TID

AD

DE

ST

INO

(1) Se abre la conexión TCP, se inicia XML Stream

(2) Se abre la conexión TCP, se envia cabecera XML Stream(3) Se ofrece extensión STARTTLS

(4) Se manda paquete STARTLS (<starttls/>

(5) Confirma negociacion TLS con <proceed/>

(6) NEGOCIACION TLS

(7a) Si negociación falla, cierra conexión

(9) Se envia nueva cabecera XML Stream

(7b) Si negociación OK, se manda un nuevo XML Stream

Jabber.org

Cifrado de las comunicaciones C2S y S2S con el protocolo TLS

Page 26: Tecnologías Web 2.0 de doble uso (civil y militar)

26

Autenticación de C2S y S2S con SASL

(1) Envía cabecera del XML Stream <stream:stream/> Esto hace de petición de autenticación SASL

(2)(3) Se envia cabecera XML Stream y a continuación los <stream:features> con los mecanismos soportados de autenticación SASL (<mechanisms/>)

(4) Se envia el mecanismo seleccionado con un paquete <auth/>

(5) El servidor envía el challenge al cliente en base64 Lo hace con un paquete <challenge/>

(9) El servidor le dice al cliente que la autentificación ha sido correcta con un paquete <success/>

(6) El cliente envia la respuesta en base64 con un <response/>

(7) Se intercambian más pares de <challenge/> y <response/> (si se necesita)

EN

TID

AD

OR

IGE

N

EN

TID

AD

DE

ST

INO

FINALIZACION: ALGO VA MAL

(8) El emisor envia un paquete <abort/> o el receptor envia un paquete de <failure/> Se reintenta N veces

FINALIZACION: TODO OK

(10) El cliente envía una nueva etiqueta de inicio de sesión con un XML Stream <stream:stream/>

[email protected] Jabber.org

(11) El servidor responde al cliente con una cabecera de sesión con más opciones (o si no con la etiqueta <features/> vacía

Page 27: Tecnologías Web 2.0 de doble uso (civil y militar)

27

Una vez abierto el nuevo stream, y tras las negociaciones TLS y SASL 3

3 tipos fundamentales de stanzas:

<message/> asynchronous communications

<iq/> synchronous communications

<presence/> presence and status data

Atributos opcionales comunes:

to - destinatario de la stanza.

from – JID del remitente de la stanza

id - ordenamiento/identificación de los mensajes.

type - tipo concreto de stanza (p.e. ‘error’)

xml:lang – idioma de la stanza

Page 28: Tecnologías Web 2.0 de doble uso (civil y militar)

28

Un mensaje básico consiste en un elemento <message/> con los atributos from, to e id.

seis tipos diferentes: ‘normal’, ‘chat’, ‘groupchat’, ‘headline’, ‘error’ y ‘jabber:x:oob’

Los elementos <message/> se componen de varios subelementos:

<subject> pensado para indicar el título o asunto relativo al mensaje

<thread> para identificar la conversación a la que pertenece el mensaje

<body> para especificar el contenido del mensaje

<error> para especificar que ha ocurrido un error

Page 29: Tecnologías Web 2.0 de doble uso (civil y militar)

29

<message to='[email protected]/huerto'from='[email protected]/balcon'type='chat'xml:lang='es'><body> ¡Romeo, Romeo! ¿Por qué eres tú Romeo?

¿Por qué no reniegas del nombre de tu padre y de tu madre?...</body><body xml:lang='en'> O Romeo, Romeo! wherefore art thou Romeo? Deny thy

father and refuse thy name...</body>

</message>

<message to='[email protected]/huerto'from='[email protected]/balcon'type='chat'xml:lang='es'><body> ¡Romeo, Romeo! ¿Por qué eres tú Romeo?

¿Por qué no reniegas del nombre de tu padre y de tu madre?...</body><body xml:lang='en'> O Romeo, Romeo! wherefore art thou Romeo? Deny thy

father and refuse thy name...</body>

</message>

Page 30: Tecnologías Web 2.0 de doble uso (civil y militar)

30

las listas de privacidad permiten bloquear mensajes dirigidos a un usuario

gestión en el servidor XMPP

modos de bloqueo: por JID, grupo o tipo de suscripción

se pueden definir tantas listas de privacidad como deseen

Una lista de privacidad consta de:

<list/> la lista de reglas, tiene un atributo ‘name’ para identificarla

<ítem/> la regla, que se define mediante los atributos ‘type’ (tipo), ‘value’ (valor) , ‘action’ (acción) y ‘order’ (orden).

Los posibles valores del atributo ‘type’ que representa al tipo de regla pueden ser ‘group’, ‘jid’ y ‘suscription’.

Los valores del atributo ‘action’ pueden ser: ‘allow’ o ‘deny’, que definen el comportamiento de la regla (permitir o denegar).

se distribuyen siempre dentro de una stanza <iq/>

Page 31: Tecnologías Web 2.0 de doble uso (civil y militar)

31

<iq type='result' id='getlist4'to=‘[email protected]/huerto’>

<query xmlns='jabber:iq:privacy'><list name='reglas de privacidad de Romeo'>

<item type='jid' value=‘[email protected]’ action='allow‘ order='6'/>

<item type='jid' value='benvolio@ montesco.net' action='allow‘ order='7'/>

<item type='jid' value='[email protected]' action='deny‘ order='42'/>

<item action='deny' order='666'/></list>

</query></iq>

<iq type='result' id='getlist4'to=‘[email protected]/huerto’>

<query xmlns='jabber:iq:privacy'><list name='reglas de privacidad de Romeo'>

<item type='jid' value=‘[email protected]’ action='allow‘ order='6'/>

<item type='jid' value='benvolio@ montesco.net' action='allow‘ order='7'/>

<item type='jid' value='[email protected]' action='deny‘ order='42'/>

<item action='deny' order='666'/></list>

</query></iq>

Page 32: Tecnologías Web 2.0 de doble uso (civil y militar)

32

Presence 1.0

Presence 1.0

Identity1.0

Identity1.0

Event Stream

Processing

Event Stream

Processing

Event-Driven SOA

Event-Driven SOA

Presencia 1.0 disponibilidad de usuario

cúando está disponible (online/offline)

dónde está disponible (localización)

Basado en nociones tradicionales de la identidad del usuario

La presencia genera eventos

“Romeo está conectado”

“Julieta está ahora en el balcón”

Puede afectar a procesos de negocio orientados a servicios

servicios sensibles al contexto

workflows dinámicos basados en presencia

Page 33: Tecnologías Web 2.0 de doble uso (civil y militar)

33

El concepto inicial de presencia está evolucionando

Presencia 2.0 más que disponibilidad

condicionada (“No estoy para Julieta”)

controlada por el usuario (“Quiero que mi localización sólo la pueda ver Julieta”)

colectivización de la presencia (“Romeo y Julieta están hablando”)

rica en información

múltiples puntos de presencia (dispositivos)

interoperabilidad semántica

User-Centric Identity no hay estándares aún

Presence 2.0

Presence 2.0

Identity2.0

Identity2.0

Complex Event

Processing

Complex Event

Processing

Event-Driven SOA

Event-Driven SOA

Social Networki

ng

Social Networki

ng

Page 34: Tecnologías Web 2.0 de doble uso (civil y militar)

34

Last.fm Construye automáticamente listas de canciones de sus usuarios a partir de la música que escuchan con Windows Media Player, WinAmp, y otros reproductores Aquí, la presencia del usuario incluye información del tag ID3 del MP3 que está siendo reproducido en ese momento por el usuario la identidad digital del usuario es básicamente, un perfil psicomusical al que se le buscan afinidades Twitter Una aplicación web de publicación/suscripción de presencia muy sencilla que permite a los usuarios hacer broadcast de su presencia (extendida) a sus suscriptores (amigos), y viceversa.

Comunicaciones Unificadas Microsoft, Cisco, Avaya... Los usuarios pueden comunicar a su red de contactos que están o no disponibles y de qué manera (para charla IM, llamada telefónica, videollamada, etc.), así como dónde se encuentran y qué hacen.

Page 35: Tecnologías Web 2.0 de doble uso (civil y militar)

35

gesti

ón d

el p

erfil

gesti

ón d

el c

onte

xto

gesti

ón d

e la

s re

laci

ones

soc

iale

s

integración con aplicaciones

GESTION DE IDENTIDAD Y ROLES

GESTION DE IDENTIDAD Y ROLES

GESTION DE PERFILES

GESTION DE PERFILES

GESTION DE MEMBRESÍASGESTION DE

MEMBRESÍAS

GESTION DE REGLASGESTION DE REGLAS

GESTION DE SUSCRIPCIONES

GESTION DE SUSCRIPCIONES

LIBRE / OCUPADOLIBRE / OCUPADO

RUTINASRUTINAS

GESTION DE DATOS DE REDES SOCIALESGESTION DE DATOS DE REDES SOCIALES

EMAIL Y CALENDARIO

EMAIL Y CALENDARIO

GESTION DE LOCALIZACION

GESTION DE LOCALIZACION

SENSORES CONTEXTOSENSORES CONTEXTO

AGENDA CONTACTOS

AGENDA CONTACTOS

BUDDY LISTS IMBUDDY LISTS IM

DIRECTORIO CORPORATIVO

DIRECTORIO CORPORATIVO

CRM & ERPCRM & ERP

RELACIONES REDES SOCIALES

RELACIONES REDES SOCIALES

GRUPOS DE AFINIDAD

GRUPOS DE AFINIDAD

integración con redes y servicios de datos

Page 36: Tecnologías Web 2.0 de doble uso (civil y militar)

36

Funciona como un mecanismo pub/sub

Los clientes enviarán y recibirán mensajes de suscripción de presencia de dos tipos: ‘subscribe’ y ‘unsubscribe’

Los mensajes de presencia viajan en stanzas <presence/>

Cuando cambia el estado de presencia en un cliente, este lo publica en el servidor para que este último lo notifique a los suscriptores de esa presencia.

Nada más establecerse un sesión XMPP, lo primero de todo es enviar la presencia al servidor

El servidor aprovecha para enviar una prueba de disponibilidad a los contactos del cliente

los contactos del cliente se guardan en una infoestructura llamada roster, dentro del servidor

La presencia no es dirigida, se comunica siempre al servidor

Las suscripciones (y cancelaciones) de presencia sí son dirigidas

Page 37: Tecnologías Web 2.0 de doble uso (civil y militar)

37

<presence>

<status> Una descripción... </status>

<show> Disponibilidad </show>

</presence>

Tipos de disponibilidad:

‘chat’: el usuario está intentando hablar con alguien

‘away’: el usuario está fuera del cliente XMPP por un corto periodo de tiempo

‘xa’ (extended away): el usuario está fuera por un periodo prolongado de tiempo

‘dnd’ (do not disturb): el usuario no desea recibir mensajes

Page 38: Tecnologías Web 2.0 de doble uso (civil y militar)

38

<presence from=‘[email protected]/balcon'

to='capuleto.net‘ type='available'>

<status>Estoy aburrida, que alguien me hable…</status>

<priority>10</priority>

<show>chat</show>

</presence>

‘available’ - listo para recibir mensajes ‘unavailable’ - no disponible para recibir mensajes ‘subscribe’ - petición de suscripción a la presencia del

destinatario ‘unsubscribe’ - cancelación de suscripción a la presencia del

destinatario ‘subscribed’ - respuesta de suscripción OK ‘unsubscribed’ - respuesta de cancelación de suscripción OK ‘error’ - mensaje estándar de error ‘probe’ –envía toda la información de presencia de un

servidor a otro

Page 39: Tecnologías Web 2.0 de doble uso (civil y militar)

39

ROSTER: es la agenda de contactos de un usuario, que se almacenan en el servidor y que sirve para almacenar los JIDs, información de perfil y las suscripciones a la presencia desde y hacia dichos contactos

El protocolo roster es una extensión del protocolo IQ

Los tres tipos básicos de protocolos de gestión del roster son:

‘Roster get’: usado por los clientes para obtener una copia del roster almacenado en el servidor.

‘Roster update’: usado por los clientes para actualizar el roster almacenado en el servidor.

‘Roster push’: actualizaciones asíncronas del roster que el servidor envía a los clientes.

Page 40: Tecnologías Web 2.0 de doble uso (civil y militar)

40

Lo primero que hace un cliente XMPP al establecer sesión es solicitarle su roster al servidor

<iq from='[email protected]/balcon' type='get' id='roster_1'>

<query xmlns='jabber:iq:roster'/></iq>

Y el servidor contestará con una copia completa del roster

<iq to='[email protected]/balcon' type='result' id='roster_1'> <query xmlns='jabber:iq:roster'> <item jid='[email protected]' name='Romeo' subscription= TIPO > <group> Amigos </group> </item>

...más items...</query>

Este roster se podrá modificar posteriormente, haciendo inserciones y borrados (protocolo Roster Update)

‘to’ - envia su presencia‘from’ - recibe su presencia‘both’- mutuo interés ‘none’ - ningún interés

Page 41: Tecnologías Web 2.0 de doble uso (civil y militar)

41

XMPPdispone de más de 100 XEPs o extensiones al protocolo controladas por la XSF (XMPP Standards Foundation) Descubrimiento automático de servicios Publish & Subscribe: para las

comunicaciones 1:N Mensajes fiables: acuse de recibo Colas de mensajes y caducidad de mensajes Intercambio de datos estructurados y

fuertemente tipados Message archiving Compresión de los streams Transferencia de ficheros Uso de certificados y firma digital Cifrado Trasnporte Peer-To-Peer Transporte firewall-friendly por HTTP

Binding/BOSH ...y un largo ETCÉTERA

Page 42: Tecnologías Web 2.0 de doble uso (civil y militar)

42

XEP-0004 : Data Forms

Formularios de datos para el intercambio de datos estructurados

Tipos de datos específicos de XMPP, menos complejos que XForms 1.0

Incluye semánticas ligeras para el procesamiento de los formularios (solicitud, respuesta, envío, cancelación)

Tal y como se definen los formularios en XHTML<x xmlns='jabber:x:data' type='{form-type}'> <title/> <instructions/> <field var='field-name' type='{field-type}' label='description'> <desc/> <required/> <value> field-value </value> <option label='option-label‘><value> option-value </value></option> <option label='option-label‘><value> option-value </value></option> </field>

</x>

Page 43: Tecnologías Web 2.0 de doble uso (civil y militar)

43

XEP-0030 : Service Discovery

Permite el descubrimiento de información entre entidades XMPP

Funciona de un modo similar a los servicios de descubrimiento que define el protocolo SOAP.

Puede descubrir dos tipos de información:

(1)la identidad básica (tipo y categoría) de una entidad

(2)las capacidades de una entidad , incluyendo los protocolos y funcionalidades que soporta

(3)los elementos asociados a la entidad, tales como la lista de salas en un servicio de chat multiusuario

Page 44: Tecnologías Web 2.0 de doble uso (civil y militar)

44

XEP-0030 : Service Discovery

<iq type='get' from='[email protected]/balcony' to='[email protected]/orchard' id='info4'> <query xmlns='http://jabber.org/protocol/disco#info'/></iq>

<iq type='result' from='[email protected]/orchard' to='[email protected]/balcony' id='info4'> <query xmlns='http://jabber.org/protocol/disco#info'> <identity category='client' type='pc' name='Gabber'/> <feature var='jabber:iq:time'/> <feature var='jabber:iq:version'/> </query> </iq>

Page 45: Tecnologías Web 2.0 de doble uso (civil y militar)

45

XEP-0060 : Publish Subscribe

publicación-subscripción: una persona o aplicación (publicador ) publica información (nodo), y un evento de notificación (con o sin datos asociados) se difunde a todos los suscriptores autorizados

El servidor XMPP recibe las peticiones de publicación, hace broadcast de los eventos de notificación a los suscriptores, y gestiona las ediciones y suscripciones.

Los nodos son una estructura de datos sobre la que los publicadores envían sus datos y en la que los suscriptores reciben las notificaciones.

Además, algunos nodos también pueden albergar un historial de eventos y prestar otros servicios que complementan el modelo puro PubSub.

Los nodos publicadores crean “topics” (por ejemplo, temperatura, localización, presión…) y publican “samples” (muestras) de estos tópicos

El bus PUBSUB entrega estos “samples” a todos los suscriptores que declaren su interés en el tópico en cuestión

Page 46: Tecnologías Web 2.0 de doble uso (civil y militar)

46

XEP-0060 : Publish Subscribe

Data Reader

R

Data Writer

R

Publisher Subscriber

S1

S2

S3

S4

S5

S6

S7

S6 S5 S4 S3 S2 S1

Topic

R

S7 S7XLATENCY

HISTORY

RELIABILITY

RESOURCE LIMITS

COHERENCY

Page 47: Tecnologías Web 2.0 de doble uso (civil y militar)

47

XEP-0060 : Publish Subscribe

<iq type='set' from='[email protected]/blogbot' to='pubsub.shakespeare.lit' id='pub1'> <pubsub xmlns='http://jabber.org/protocol/pubsub'> <publish node='princely_musings'> <item> <entry xmlns='http://www.w3.org/2005/Atom'> <title> Soliloquy </title> <summary> To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? </summary> <link rel='alternate' type='text/html' href='http://denmark.lit/2003/12/13/atom03'/> <id> tag:denmark.lit,2003:entry-32397 </id> <published> 2003-12-13T18:30:02Z </published> <updated> 2003-12-13T18:30:02Z </updated> </entry> </item> </publish> </pubsub> </iq>

Un editor publica una nueva entrada en su blog...

Page 48: Tecnologías Web 2.0 de doble uso (civil y militar)

48

XEP-0060 : Publish Subscribe

<message from='pubsub.shakespeare.lit' to='[email protected]' id='foo'> <event xmlns='http://jabber.org/protocol/pubsub#event'> <items node='princely_musings'> <item id='ae890ac52d0df67ed7cfdf51b644e901'> [ ... ENTRY ... ] </item> </items> </event> </message>

<message from='pubsub.shakespeare.lit' to='[email protected]' id='bar'> <event xmlns='http://jabber.org/protocol/pubsub#event'> <items node='princely_musings'> <item id='ae890ac52d0df67ed7cfdf51b644e901'> [ ... ENTRY ... ] </item> </items> </event> </message>

El Servicio PubSub lo notifica a los Suscriptores...

Page 49: Tecnologías Web 2.0 de doble uso (civil y militar)

49

Y ADEMÁS...

XEP-0045: Multi-User Chat (MUC)

XEP-0080: Geolocalización de Usuarios

XEP-0138: Compresión de Streams

XEP-0116: Cifrado de Sesiones

XEP-0009: Jabber-RPC

XEP-0072: SOAP sobre XMPP

XEP-0171: Traducción de Idiomas

...

¡¡Y 100 extensiones más!!

Page 50: Tecnologías Web 2.0 de doble uso (civil y militar)

50

A-Talk

Adium aMSN

AOL Instant Messenger (AIM)

Ayttm

BigAnt Instant Messenger

BitlBee

BitWise IM

Centericqclimm

Coccinella

CspaceDigsby Ebuddyemesene

EQO

ExodusFire

Fring

Gabtastik

Gadu-GaduGajim

GCN

GOIM

Goofey

Google Talk

Gyachi

IBM Lotus Sametime

iChatICQ

IMVU

Instantbird

Interaction Chat

JabbinKadu

Konnekt

Kopete

Licq

Mail.ru AgentMCabber

MECA Messenger

meebo MeetroMercury Messenger

Microsoft Messenger for Mac

MindSpring Miranda IM

MySpaceIM

Naim

Ometheus

OpenWengoPaltalk

Pandion

Pidgin

pork

Proteus

Psi

psyced

QIPQnext QIP infium

RealTimeQuery

SIM

Skype

Solixa

talk

Tencent QQ

Trillian

Trillian Astra

Trillian Pro

Windows MessengerXfireYahoo! Messenger Zephyr

Windows Live Messenger

Gaim

Page 51: Tecnologías Web 2.0 de doble uso (civil y militar)

51

Nombre del Software Version Plataforma /OS

djabberd 0.83 UNIX, GNU/Linux

ejabberd 2.0.1 GNU/Linux, Mac OS X, Windows, AIX,

BSD, HP-UX, Solaris

Isode M-Link R14.2 Linux, Solaris, Windows

Jabber XCP 5.2 Windows, Solaris, GNU/Linux

jabberd 2.1.24.1 UNIX, GNU/Linux

jabberd14 1.6.1.1 UNIX, GNU/Linux

jabberd2 2.1.17 UNIX, GNU/Linux

Openfire 3.4.5 GNU/Linux, Mac OS X, Windows, AIX,

BSD, HP-UX, Java, Solaris

psyced 20080116 UNIX, GNU/Linux, Windows, Mac OS X

Tigase 3.3.2 GNU/Linux, Mac OS X, Windows, AIX,

BSD, Java, Mac OS 9, Solaris

Las implementaciones más importantes son:

Page 52: Tecnologías Web 2.0 de doble uso (civil y militar)

52

Existen más de 50 librerías para desarrollo XMPP en múltiples lenguajes

Lenguaje C:

iksemel libstrophe Loudmouth (software)

Microsoft .NET:

C#agsXMPP Jabber-NET goodwarejabber (library, client, server)

lenguaje C++:

gloox IP*Works Iris (software) jabberoo oajabber

COM/COM+:

JabberCOM

JAVA:

Echomine Feridian Echomine Muse JabberWookie JSO (software) micro-Jabber Smack (librería) Tweeze (software) Yaja (software)

HTA:

JSJaCxmpp4moz

Perl:

Net::Jabber::Loudmouth Net::XMPP2 Net:XMPP XML::Stream Jabber::Lite POE::Component::Jabber

PHP:

Class.Jabber.PHP jabberclass

Python:

jabber.py PyXMPP sleekxmpp Twisted Wordsxmpppy

Ruby:

Action Messenger Jabber4R Jabber::Simple XMPP4R

Otros:

Tcl (JabberLib)Framework XPCOM (JabXPCOM)LPC (psyced)Macromedia Flash (XIFF)Lisp (cl-xmpp)Haskell (hsxmpp)Erlang (Jabberlang)

Para lenguaje C:iksemel libstrophe Loudmouth (software)

Microsoft .NETC#agsXMPP Jabber-NET goodwarejabber (library, client,

server)

Para C++:gloox IP*Works Iris (software) jabberoo oajabber

Como componentes COM:JabberCOM  Para Erlang:Jabberlang

Para PHP: Class.Jabber.PHP jabberclass

En Python:jabber.py PyXMPP sleekxmpp Twisted Words (software) xmpppy

En Ruby:Action Messenger Jabber4R Jabber::Simple XMPP4R

Otros lenguajes/entornos:Tcl (JabberLib)Framework XPCOM

(JabXPCOM)LPC (psyced)Macromedia Flash (XIFF)Lisp (cl-xmpp)Haskell (hsxmpp)

Para la plataforma Java:Echomine Feridian Echomine Muse JabberWookie JSO (software) micro-Jabber Smack (librería) Tweeze (software) Yaja (software)

Para aplicaciones HTA:JSJaCxmpp4moz

En lenguaje Perl :<Net::Jabber::Loudmouth Net::XMPP2 Net:XMPP XML::Stream Jabber::Lite POE::Component::Jabber

Page 53: Tecnologías Web 2.0 de doble uso (civil y militar)
Page 54: Tecnologías Web 2.0 de doble uso (civil y militar)

54

XMPP puede servir como middleware de comunicaciones en redes de área corporal (BANs) para la monitorización remota mediante Bio-Sensores (ECG, ECC, BP...)

¿Qué aporta XMPP?

Federación a escala Internet, BOSH, Router-Friendly, Publicación-Suscripción, descubrimiento de servicios

BAN

MC

Tráf

ico

XM

PP

Tráfico XMPP

Tráfico XMPP

Tráfico XMPP

La Inteligencia Ambiental (AmI) se alcanza cuando

un entorno “electrónico”, compuesto por toda clase

de dispositivos electrónicos, software y

comunicaciones, es sensible y responde a la

presencia de las personas, colaborando de

manera transparente para el usuario

Page 55: Tecnologías Web 2.0 de doble uso (civil y militar)

55

XMPP puede servir como middleware de mensajería en tiempo real para la distribución de información y datos estructurados relativos a transacciones TR

Mediante PubSub, se pueden distribuir datos de mercado en “casi” Tiempo Real, de manera fiable y a escala Internet (p.e. Reuters, Bloomberg, InfoBolsa, etc)

“Todavía hoy, en el sector de seguros, especialmente las

medianas y pequeñas compañías, se procesan en lotes ficheros TXT con

altas, bajas y modificaciones de

pólizas”

“Todavía hoy, en el sector de seguros, especialmente las

medianas y pequeñas compañías, se procesan en lotes ficheros TXT con

altas, bajas y modificaciones de

pólizas”“La banca todavía no se ha dado cuenta del potencial que tiene

asimilar y manejar la presencia de sus clientes y adaptar su arquitectura de servicios financieros para ofrecer servicios

más avanzados”

“La banca todavía no se ha dado cuenta del potencial que tiene

asimilar y manejar la presencia de sus clientes y adaptar su arquitectura de servicios financieros para ofrecer servicios

más avanzados”

Page 56: Tecnologías Web 2.0 de doble uso (civil y militar)

56

En las catástrofes y grandes situaciones de emergencia, se debe formar una célula de crisis en la que se encuentran los máximos responsables de las fuerzas y cuerpos de seguridad, ejército, protección civil, servicios sanitarios, gabinete de medios, etc... Y además, el poder político.

Este tipo de células se deben de poder desplegar con los mínimos medios, en cualquier lugar.

Es un hecho que los cargos políticos, para tomar una decisión, necesitan reunir el máximo de información (aunque no sean capaces de interpretarla), en cualquier formato disponible, y en tiempo real

Page 57: Tecnologías Web 2.0 de doble uso (civil y militar)

57

Los políticos y los altos funcionarios que toman las decisiones relevantes en una gestión de crisis usan predominantemente el teléfono para recibir los reportes de situación y para dar a su vez órdenes

Cada vez son más frecuentes los modernos terminales como el iPhone de Apple o los SmartPhones y PDAs, que, unido a la amplia cobertura de bancha ancha y 3G, los hacen muy atractivos para este colectivo

XMPP puede servir como fundación de un sistema distribuido y móvil de seguimiento de eventos y gestión de crisis, aprovechando el potencial que nos da controlar la presencia de los usuarios y el descubrimiento automático de servicios

Page 58: Tecnologías Web 2.0 de doble uso (civil y militar)

58

Complejidad del escenario de una crisis humanitaria

Hay que coordinar a múltiples entidades: ejército, guardia civil, policia nacional, policia local, bomberos, protección civil, agencias del gobierno e internacionales, ONGs, voluntarios de la sociedad civil… y por supuesto hay atender a las víctimas de manera urgente y eficaz

La tecnología IM y los protocolos XMPP ayudan a coordinar equipos de trabajo aasí como a enrutar por Internet mensajes entre las plataformas de las diferentes unidades operativas

Se usa actualmente en varias de las plataformas tecnológicas de gestión y coordinación de desastres: SIFP-ShareInfoForPeople (US DoD) y Sahana Project (Free Software Foundation)

Page 59: Tecnologías Web 2.0 de doble uso (civil y militar)

59

Modelo CapWIN: software de Multichat Cifrado XMPP creado tras el 11-S y que se emplea por las unidades de emergencias de Washington DC

Ventajas:

compartir información sobre la escena del incidente

presencia y service discovery mejor planificación en tiempo real de los efectivos

búsqueda en bases de datos mediante bots

fácil despliegue y movilidad

evita los silos de información que se producen cuando intervienen diferentes unidades

Facilita seguimiento en tiempo real y filtrado en el escalón de mando

extensibilidad con otros estándares como NIEM, GJXDM, IEE 1512, OASIS/CAP, EDXL, etc.

Page 60: Tecnologías Web 2.0 de doble uso (civil y militar)

60

Page 61: Tecnologías Web 2.0 de doble uso (civil y militar)

61

Las fuerzas armadas se enfrentan a una gran transformación debido que la naturaleza de los conflictos ha cambiado mucho en este nuevo siglo

Page 62: Tecnologías Web 2.0 de doble uso (civil y militar)

62

Las fuerzas armadas se enfrentan a una gran transformación debido que la naturaleza de los conflictos ha cambiado mucho en este nuevo siglo

La victoria depende del principio de Superioridad de la Información, asegurando que el enemigo tenga el menor control posible sobre la situación (Situation Awareness - SA)

Alcanzar la Superioridad de la Información supone tener capacidad propia para:

obtener, procesar y distribuir la información precisa para satisfacer las necesidades de los diferentes escalones de mando

prever los cambios en las necesidades de información del enemigo

negar al enemigo estas mismas capacidades

Múltiples programas como la iniciativa NNEC de la OTAN persiguen que antes de 2020, todos los sistemas de armas, sistemas de combate, sensores, sistemas C4ISR... permitan dicha superioridad

Tecnologías de mejora: INFOSEC, Comms (SDRs, RRC, RBA, Redes OTM, etc), Protocolos, Arquitecuras CIS, Contramedidas EW, Interoperabilidad, Redes de Sensores ISR, Blue Force Tracking, FFT, COMFUT...

Page 63: Tecnologías Web 2.0 de doble uso (civil y militar)

63

Sensores de TierraEO

ISR

ISRGateway

LAN TácticaOTM

Avion de Reconocimientoy Guerra Electrónica

Satélite deComunicaciones

Radar SARSAT LINK

Red Radio de Combate IP

ISR UAV

Relay UAV

Estación MóvilWIMAX/HCDR

Escuadrilla de ataque

Enlace LOS

Enlace LOSEnlace LOS

Fuerzas enemigas

Estación MóvilWIMAX/HCDR

Puesto de Mando

LINK 16

LIN

K 1

6

FFT

FFT

Operaciones Centradas en Red

Page 64: Tecnologías Web 2.0 de doble uso (civil y militar)

Situational Awareness

Force Readiness

ForceSustainment

Infra-structure

GC

SS

Coalition C2

Gale Lite

GCCS-A

GCCS-M

IAS

JSTARS

NATO ICC

TBMCS

TCAIMS II

ADAMS

ALOG

AMP

DARWIN

DCAPES

GCCS-A

GTN

ICIS

JFAST

MAGTF II

MAT

SMS

TAG

LOGCAT/BCAT

WHQ

COMPASS

FOCUS

JRAMS

AFSATCOM/TIBS

GDSS

ETMS

FNMOC

EPLRS

Lateral Tell

Link 11/16

NNSOC

NRTD

QTRACS

ADSI

TDDS

SBMCS

NATO JOIIS

TBMCS

ASAS

MIDB

NGA 5D

NGA IPL

UAV GCS

AF Weather

AFIWC

WinJMEM

Raindrop

DMDC

CFAST

DRRS

FEDB

FEDMTC

GCCS-A

JADE

JRAMS

READI

AFSORT DET

ASORTS

GOMERS

TRMS

DMS

GTN

SDDC - TEA

DMS

AMHS

GPS

USN Observatory

Intelligence

ForcePlanning

GRISI3

COP

SORTS

GSORTS

C2

JOPESDVT

JFRG IIACOA

CFAST

C2PC

DNS

DCTS

E-Mail

Print Services

DwDw

FF

D,plkD,plk

DwfDwf

Empire

Alerts

Web

CO

PGrenadier Brat

JFAST

64

La realidad abruma... DARWINCAMPS

Poca Interoperabilidad - Islas de informaciónEs difícil hasta mantenerlos todos al día

Page 65: Tecnologías Web 2.0 de doble uso (civil y militar)

65

Page 66: Tecnologías Web 2.0 de doble uso (civil y militar)

66

Page 67: Tecnologías Web 2.0 de doble uso (civil y militar)

67

Page 68: Tecnologías Web 2.0 de doble uso (civil y militar)

68

IM con redes IP sobre infraestructura de redes de comunicaciones de banda ancha y estrecha

soporte de la Logística

en Planificación de Misiones

como enlace de comunicaciones y vehículo de la sincronización de los cambios sobre la COP en Sistemas C2

como bus de comunicaciones para Redes de Sensores ISR

Distributed Interactive Simulation (transporte de paquetes DIS-XML)

Remote Biomonitoring (Telemedicina Militar, Programa COMFUT)

Operational Medical Support – Asistencia Médica Telemática en situaciones de combate

Blue Force Tracking

Distribución de Datos de Inteligencia para programa Combatiente del Futuro

Page 69: Tecnologías Web 2.0 de doble uso (civil y militar)
Page 70: Tecnologías Web 2.0 de doble uso (civil y militar)

70

Sobran motivos para usar XMPP:

el core del protocolo es un estándar IETF

“mandatory standard” DoD

es un protocolo abierto, multiplataforma, extensible, gratuito, con una comunidad bastante amplia de contribuyentes

admite federación con otras plataformas de IM

maneja mensajería y presencia

funciona como pubsub

maneja descubrimiento de servicios

permite implementar VoIP mediante JINGLE

probada en condiciones extremas en el campo de batalla

XMPP se está convirtiendo en un estándar asequible y respetado para su utilización como el protocolo de transporte de los “cloud services”, por encima de HTTP y de SOAP crece a la par que los servicios de la Web 2.0

Page 71: Tecnologías Web 2.0 de doble uso (civil y militar)
Page 72: Tecnologías Web 2.0 de doble uso (civil y militar)

José Carlos Díaz