Sie sind auf Seite 1von 122

Web Services

Agenda

Introduccin
o

Web Services
o
o

Caractersticas
Tecnologas
Bsicas
Avanzados

REST
o
o

Motivacin, surgimiento y definicin

Caractersticas
Tecnologas

Conclusiones
INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (1)

INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (1)

Inters de atravesar los firewalls

Middlewares existentes no provean tales


caractersticas

INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (2)

INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (2)

Los procesos B2B se llevaban a cabo de


forma manual va Web, fax o e-mail

Algunos problemas de automatizacin en


transacciones B2B incluan:
o

Integracin entre organizaciones, dnde alojar al


middleware?

Un tercero deba hostear el middleware


Todos los involucrados deben acordar usar el
middleware

INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (2)

INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (2)

Confianza entre empresas


o

Autonoma
o

es baja y a veces,
inexistente.

Las empresas desean ser


lo ms autnomas posibles
unas de otras

Confidencialidad
o

Las empresas no quieren


guardar sus datos y
transacciones en
middleware de terceros

INCO - Facultad de Ingeniera Montevideo, Uruguay

Sin embargo

INCO - Facultad de Ingeniera Montevideo, Uruguay

Problema

No es escalable

Suposicin falsa
o Una plataforma de integracin basada en middleware puede ser
centralizada, en donde todos los componentes (de diferentes
empresas) que integra confan en ella.

El surgimiento de las tecnologas Web y de protocolos de


comunicacin (HTTP) y formatos (primero HTML y luego XML)
estndares, posibilitaron la creacin de un middleware
convencional denominado Web Services, que posibilita la
integracin de aplicaciones en escenarios B2B

INCO - Facultad de Ingeniera Montevideo, Uruguay

10

B2B integration via WS

INCO - Facultad de Ingeniera Montevideo, Uruguay

11

WS & EAI

INCO - Facultad de Ingeniera Montevideo, Uruguay

12

WS & EAI

El objetivo principal de los Web Services es proveer


una forma sencilla de exponer los sistemas de
informacin de la empresa de una forma controlada y
estndar

De alcanzar este objetivo, los Web Services pueden


ser utilizados para posibilitar EAI entre empresas sin
la necesidad del uso de adaptadores especficos.

De esta forma, los Web Services permiten a los


clientes acceder a los sistemas de informacin
internos de la empresa de una forma estndar
INCO - Facultad de Ingeniera Montevideo, Uruguay

13

WS & EAI dentro de la


compaa

INCO - Facultad de Ingeniera Montevideo, Uruguay

14

WS & EAI dentro de la


compaa

Dentro de una empresa, los Web Services


permiten una integracin EAI sin la
necesidad de costosos adaptadores
o

Los Web Services toman el lugar de los


adaptadores
Ejemplo

Conectar aplicaciones .NET con JEE


Conectar aplicaciones .NET con Cobol

INCO - Facultad de Ingeniera Montevideo, Uruguay

15

Web Services: qu es?

Representa una funcionalidad (de negocio)


Se encuentra disponible a travs de Internet o
una Intranet
Utiliza una forma estandarizada de mensajera
(generalmente XML)
No se encuentra atado a ningn sistema
operativo ni ningn lenguaje de programacin
Se puede auto describir (generalmente va XML)
Puede ser descubierto a travs de un
mecanismo de bsqueda
INCO - Facultad de Ingeniera Montevideo, Uruguay

16

Web Services: Por qu?

Business to Business integration (B2B)


o

Acuerdos comerciales entre organizaciones

Ej: Posibilidad de pagar facturas a travs de redes de


cobranza

Enterprise Application Integration (EAI)


o

Sistemas desarrollados por diferentes empresas

Silos de informacin

Diferentes tecnologas
Contabilidad, inventario, logstica

Fusin de empresas
INCO - Facultad de Ingeniera Montevideo, Uruguay

17

Web Services: Cmo?

El trmino Web Service nace


aproximadamente en el ao 2000 por
iniciativa de MS e IBM

Producen una gran cantidad de estndares


o
o

Primera generacin: WSDL, SOAP, UDDI


Segunda generacin: WS-*

INCO - Facultad de Ingeniera Montevideo, Uruguay

18

Definicin

A Web service is a software system designed to


support interoperable machine-to-machine interaction
over a network. It has an interface described in a
machine-processable format (specifically WSDL).
Other systems interact with the Web service in a
manner prescribed by its description using SOAP
messages, typically conveyed using HTTP with an
XML serialization in conjunction with other Webrelated standards.
o World Wide Web Consortium (W3C), 2006

INCO - Facultad de Ingeniera Montevideo, Uruguay

19

Evolucin Middleware

Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006.


INCO - Facultad de Ingeniera Montevideo, Uruguay

20

Tipos de Web Services

Simples o de informacin
o
o

Operaciones de corta duracin


Patrn de comunicacin Request/Response

Pedido-Espera-Respuesta

Compuestos o de procesos de negocios


o
o

Operaciones de larga duracin


Coordinacin de operaciones I/O

INCO - Facultad de Ingeniera Montevideo, Uruguay

21

Simples o de Informacin

Exponen las funcionalidades de negocios de


una aplicacin de forma estndar
o

Back End escritos en Java/EJB, VB, C#, C++,

Mecanismos de comunicacin sincrnicos


Operaciones atmicas

o
o

Una nica operacin por request


No son transaccionales

Por ms que su backend si lo sea

Son stateless
o

No mantienen estado entre pedidos


INCO - Facultad de Ingeniera Montevideo, Uruguay

22

Compuestos o procesos de
negocios

Composicin de servicios simples para la


implementacin de procesos de negocios
o

P. ej: Procesos de compra

Coordinacin de operaciones
Transacciones de larga duracin
Mecanismos de comunicacin asincrnicos
Servicios de alta granularidad
Stateful

Mantienen el estado entre pedidos


INCO - Facultad de Ingeniera Montevideo, Uruguay

23

Ejemplo

Copyright Springer Verlag Berlin Heidelberg 2004

INCO - Facultad de Ingeniera Montevideo, Uruguay

24

Granularidad de los servicios


La granularidad de un servicio refiere al alcance que
tiene la funcionalidad expuesta por el servicio
Los servicios pueden tener dos niveles de granularidad:

Granularidad fina: son servicios que proveen un acceso bsico a


datos u operaciones rudimentarias. Este tipo de servicios tiene
poco valor para aplicaciones de negocios.

CheckLocalStock, confirmOrder, cancelOrder

Granularidad gruesa: son servicios compuestos por servicios de


granularidad fina.

OrderGoods

INCO - Facultad de Ingeniera Montevideo, Uruguay

25

Tecnologas para
el desarrollo de
Web Services
SOAP, WSDL, UDDI

Web Services

Iniciativa de Microsoft e IBM en el ao 2000


para resolver necesidades de las reas EAI y
B2B

Resultado:
o
o

Primera generacin de Web Services


Un conjunto de estndares de comunicacin
basado en XML y tecnologas Web (http, tcp,
smtp, etc)
o

WSDL, SOAP, UDDI

INCO - Facultad de Ingeniera Montevideo, Uruguay

27

Requerimientos bsicos para


llevar a cabo una comunicacin

Sintaxis

Formato

Transporte

Interfaces
o

Definicin de operaciones y parametros I/O

Descubirimiento/Bsqueda

INCO - Facultad de Ingeniera Montevideo, Uruguay

28

Requerimientos bsicos para


llevar a cabo una comunicacin

Sintaxis
o

Formato
o

Tecnologas Web (http, smtp, etc)

Interfaces
o

SOAP

Transporte
o

XML

WSDL

Descubrimiento/Bsqueda
o

UDDI
INCO - Facultad de Ingeniera Montevideo, Uruguay

29

Cmo funciona (teora)?

INCO - Facultad de Ingeniera Montevideo, Uruguay

30

Cmo funciona (prctica)?

Los registros pblicos no fueron exitosos


Los estndares existentes (UDDI y ebXML) son
demasiado pesados
Buenas prcticas: Intercambiar los WSDLs y endpoints
por e-mail
INCO - Facultad de Ingeniera Montevideo, Uruguay

31

Simple Object Access


Protocol (SOAP)

SOAP

Estndar de la W3C que describe un formato


de mensaje (basado en XML) y mecanismos
para intercambiar informacin entre
aplicaciones, en un ambiente distribuido y
descentralizado.

Actualmente, se encuentra en la versin 1.2.

INCO - Facultad de Ingeniera Montevideo, Uruguay

33

SOAP

Provee una forma estndar de estructurar mensajes


utilizando XML

Define mecanismos para utilizar distintos protocolos de


transporte para el envo de mensajes

Especifica un modelo de procesamiento que indica cmo se


deben procesar los mensajes

Una forma de adjuntar datos no-XML a los mensajes.

INCO - Facultad de Ingeniera Montevideo, Uruguay

34

Mensaje SOAP

INCO - Facultad de Ingeniera Montevideo, Uruguay

35

Un ejemplo
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soapenvelope">
<env:Header>
<pns:qualityOfService xmlns:pns="http://example.org/qos">
<pns:priority>3</pns:priority>
<pns:timestamp>2004-02-25T01:00:00-03:00</pns:timestamp>
<pns:persist>true</pns:persist>
</pns:qualityOfService>
Header
</env:Header>
<env:Body>
<bmns:businessPO xmlns:env="http://example.org/po">
<bmns:description>Widgets</bmns:description>
<bmns:quantity>100</bmns:quantity>
<bmns:price>20.5</bmns:price>
</bmns:businessPO>
</env:Body>
Body
</env:Envelope>

Envelope
INCO - Facultad de Ingeniera Montevideo, Uruguay

36

Mensaje SOAP

La estructura bsica de un mensaje SOAP consiste


de un elemento Envelope el cual contiene
o
o

un elemento opcional Header


un elemento requerido Body
que puede incluir un elemento Fault

El Envelope es el elemento raz de todo mensaje


SOAP e identifica un documento XML como un
mensaje SOAP

INCO - Facultad de Ingeniera Montevideo, Uruguay

37

Mensaje SOAP Header

El Header, de estar presente, debe ser el primer


elemento del Envelope

Provee un mecanismo de extensin que permite


incluir informacin extra en mensajes SOAP
(seguridad, transacciones, etc)

Puede contener varios header blocks que son una


forma de agrupar lgicamente la informacin

INCO - Facultad de Ingeniera Montevideo, Uruguay

38

Mensaje SOAP Header


... ... ...
<soap:Header>
<t:trans xmlns:t="http://........../transaction/"
soap:mustUnderstand="1">
<t:id>12345</t:id>
</t:trans>
<s:sec xmlns:m="http://........../security/"
soap:mustUnderstand="1">
<s:user>john</s:user>
<s:pass>1234</s:pass>
</s:sec>
</soap:Header>
... ... ...

INCO - Facultad de Ingeniera Montevideo, Uruguay

39

Mensaje SOAP Body

Contiene la informacin a ser intercambiada


entre el cliente y servicio

En el Body tpicamente se especifica:


o

una solicitud para efectuar cierta operacin


la respuesta a cierta solicitud que puede ser:

un resultado o
un error (fault)

INCO - Facultad de Ingeniera Montevideo, Uruguay

40

Mensaje SOAP Body


<soap:Body>
<t:Translate xmlns:t="http://....../translations">
<t:Word>red</t:Word>
</t:Translate>
</soap:Body>

<soap:Body>
<t:TranslateResponse
xmlns:t="http://....../translations">
<t:Translation>rojo</t:Translation>
</t:TranslateResponse>
</soap:Body>

INCO - Facultad de Ingeniera Montevideo, Uruguay

solicitud

resultado
41

Mensaje SOAP Fault

El elemento Fault indica la ocurrencia de un


error en el procesamiento del mensaje
o

Comprensin del mensaje

Infraestructura

Error de sintaxis
Error de red: HTTP 500 Internal Server Error

Negocio

No existe la cuenta con nmero X

INCO - Facultad de Ingeniera Montevideo, Uruguay

42

Mensaje SOAP Fault

Tiene 5 sub-elementos:
o
o
o
o
o

Code
Reason
Detail
Node (opcional)
Role (opcional)

INCO - Facultad de Ingeniera Montevideo, Uruguay

43

Ejemplo
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
m="http://www.plastics-suply.com/product-prices">
<env:Header/>
<env:Body>
<env:Fault>
<env:Code>
<env:Value>env:Sender</env:Value>
<env:Subcode>
<env:Value>m:InvalidPurchaseOrder</env:Value>
</env:Subcode>
</env:Code>
<env:Reason>
<env:Text xml:lang="en-UK">
Specified product did not exist
</env:Text>
<env:Text xml:lang="es">
El producto solicitado no existe
</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
</env:Envelope>
INCO - Facultad de Ingeniera Montevideo, Uruguay

44

Procesamiento de Mensajes

En el modelo SOAP pueden existir varios nodos


intermediarios que procesan los mensajes

Usos comunes: auditora, compresin, seguridad,


etc.

http://www14.informatik.tu-muenchen.de/konferenzen/Jass05/courses/6/Papers/10.pdf
INCO - Facultad de Ingeniera Montevideo, Uruguay

45

Procesamiento de Mensajes

Los header blocks pueden incluir informacin que


especifique para qu rol est destinado el bloque
(atributo role)

SOAP define tres posibles valores para dicho


atributo: none, ultimateReceiver y next

SOAP no incluye un mecanismo para especificar la


ruta que debe seguir un mensaje SOAP hasta llegar
al WS destino
INCO - Facultad de Ingeniera Montevideo, Uruguay

46

SOAP MEP
Son los message exchange patterns (MEP)
que soporta SOAP
Algunas posibilidades

Request/Response

enviamos el mensaje, y nos quedamos esperando


hasta que llegue la respuesta del mismo

One-way

enviamos el mensaje, y nos olvidamos de la


respuesta. Tambin se denomina fire-and-forget

INCO - Facultad de Ingeniera Montevideo, Uruguay

47

Transporte de Mensajes

SOAP no impone el uso de un determinado


protocolo para el intercambio de mensajes

A travs del concepto de binding SOAP


permite especificar:
o

cmo los mensajes SOAP se encapsulan en un


protocolo de transporte
cmo los mensajes SOAP deben ser tratados con
las primitivas del protocolo
INCO - Facultad de Ingeniera Montevideo, Uruguay

48

Transporte de Mensajes

Sams Teach Yourself Web Services in 24 Hours. Stephen Potts, Mike Kopack. Sams Publishing 2003.
INCO - Facultad de Ingeniera Montevideo, Uruguay

49

SOAP Bindings

En el estndar SOAP se incluye la especificacin de


un bindings para los protocolos http y smtp

Se dan un conjunto de reglas para definir nuevos


bindings
o

Binding JMS (estndar)


http://www.w3.org/TR/soapjms/
Binding TCP (propietario)
http://blogs.sun.com/oleksiys/entry/soap_tcp_makes_web
_services

INCO - Facultad de Ingeniera Montevideo, Uruguay

50

HTTP SOAP Binding

INCO - Facultad de Ingeniera Montevideo, Uruguay

51

Web Service
Description Language
(WSDL)

WSDL

Estndar de la W3C que define un lenguaje


basado en XML que permite describir la
interfaz, formas de acceso y ubicacin de un
Web Service

Actualmente, en versin 2.0

INCO - Facultad de Ingeniera Montevideo, Uruguay

53

Para qu sirve?

Dnde est ubicado el servicio?


Qu operaciones tiene?
Qu mensajes de entrada/salida recibe/responde?
Cul es la estructura de los mensajes?
Qu protocolos de transporte hay que usar
(bindings)?

Un documento WSDL se divide en dos partes:


o
o

descripcin abstracta
descripcin concreta

INCO - Facultad de Ingeniera Montevideo, Uruguay

54

WSDL Descripcin Abstracta


La descripcin abstracta describe de forma
general la estructura de la interfaz del Web
Service, que incluye operaciones,
parmetros y tipos de datos abstractos
Los cuatro elementos XML que componen la
descripcin abstracta son:

o
o

<wsdl:types>
<wsdl:message>
<wsdl:portType>

<wsdl:operation>

INCO - Facultad de Ingeniera Montevideo, Uruguay

55

WSDL types

El elemento types encapsula todas las


definiciones abstractas de tipos de datos

<wsdl:types>
<xsd:schema
targetNamespace=http://..../weatherService/wsdl
xmlns:xsd=http://www.w3.org/2001/XMLSchema>
<xsd:element name=City
type=xsd:string/>
<xsd:element name=Country
type=xsd:string/>
</schema>
<wsdl:types>

INCO - Facultad de Ingeniera Montevideo, Uruguay

56

WSDL messages

El elemento messages representa de forma


abstracta los parmetros de entrada y salida
para una operacin

<message name="getWeatherIn">
<part name=CityIn element=tns:City"/>
<part name=CountryIn element=tns:Country"/>
</message>

INCO - Facultad de Ingeniera Montevideo, Uruguay

57

WSDL portType

El elemento portType es el contenedor de


todas las operaciones abstractas y describe
una interfaz especfica del servicio

<portType name=getWeatherPortType">
<operation name="getWeather">
<input message="getWeatherIn"/>
<output message="getWeatherOut"/>
</operation>
</portType>

INCO - Facultad de Ingeniera Montevideo, Uruguay

58

WSDL Descripcin Concreta


La descripcin concreta asocia a una
descripcin abstracta una direccin de red
concreta, un protocolo de comunicacin y
estructuras de datos concretas
Los tres elementos XML que componen la
descripcin concreta son:

o
o

<wsdl:binding>
<wsdl:service>

<wsdl:port>

INCO - Facultad de Ingeniera Montevideo, Uruguay

59

WSDL binding

Este elemento asocia un portType, y sus


mensajes y operaciones, a un protocolo de
transporte y un formato de mensaje

<binding name=weatherServiceSoapBinding
type=getWeatherPortType >
<soap:binding style=rpc transport=http/>
<operation name=getWeather>
<input soap:body use=encoded/>
<output soap:body use=encoded/>
</operation>
</binding>

INCO - Facultad de Ingeniera Montevideo, Uruguay

60

WSDL service y port


El elemento port especifica la direccin de
red para un determinado binding
El elemento service es un contenedor de
elementos port

<service name=WeatherService>
<port name=weatherServicePort
type=tns:weatherServiceSoapBinding>
<soap:address
location=http://.../weather//>
</port>
</service>

INCO - Facultad de Ingeniera Montevideo, Uruguay

61

Cmo lo uso?

Proporcionado por plataformas de desarrollo


INCO - Facultad de Ingeniera Montevideo, Uruguay

62

Universal Description,
Discovery and
Integration (UDDI)

UDDI

Estndar de la OASIS que provee una forma


estndar de publicar, categorizar y buscar Web
Services
o

Actualmente en la versin 3.0.2

UDDI define
o

Un directorio y un modelo de datos para almacenar


informacin de servicios y negocios
tres interfaces para utilizar el registro UDDI
Inquiry (Bsqueda de servicios)
Publish (Publicacin de servicios)
Subscribe (Notificacin de cambios)
INCO - Facultad de Ingeniera Montevideo, Uruguay

64

Registro UDDI

El registro de un negocio en UDDI tiene tres


partes:
o

Pginas blancas - direccin, contacto y otros


identificadores conocidos.
Pginas amarillas - categorizacin industrial
basada en taxonomas.
Pginas verdes - informacin tcnica sobre los
servicios que aportan las propias empresas.

INCO - Facultad de Ingeniera Montevideo, Uruguay

65

Registro UDDI

El esquema original de classificacin de


UDDI estaba basado en una taxonoma de
negocios del gobierno de US

Las versiones recientes de UDDI tienen


soporte para la definicin de taxonomas
personalizadas

INCO - Facultad de Ingeniera Montevideo, Uruguay

66

Modelo de Datos UDDI

Developing Java Web Services. Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh. Wiley Publishing. 2003.
INCO - Facultad de Ingeniera Montevideo, Uruguay

67

Interfaces UDDI

El estndar UDDI define interfaces que


pueden ser utilizadas, por proveedores y
consumidores de Web Services

Dichas interfaces estn descriptas utilizando


WSDL y pueden ser accedidas a travs de
mensajes SOAP sobre HTTP

INCO - Facultad de Ingeniera Montevideo, Uruguay

68

Interfaces UDDI

Interfaz de Publicacin (publish)


o

Un proveedor de Web Services utiliza esta interfaz para


publicar, actualizar o eliminar informacin en el registro
UDDI
Dos tipos de operaciones: save y delete

Interfaz de Bsqueda (inquiry)


o

Un consumidor de Web Services utiliza esta interfaz para


buscar Web Services, proveedores de Web Services e
informacin de los mismos
Dos tipos de operaciones: find y get
INCO - Facultad de Ingeniera Montevideo, Uruguay

69

Interfaces UDDI: Subscripcin

Objetivo: proveer un mecanismo a los clientes, para


recibir informacin concerniente a los cambios que
se realizan en el registro UDDI

Dos mecanismos de comunicacin


o

Sincrnico
Operacin getSubscriptionResults
Asincrnico
Va mail o Web Services SOAP
Clientes pueden implementar la operacin
notify_subscriptionListener
INCO - Facultad de Ingeniera Montevideo, Uruguay

70

Sin embargo

Complejo de consultar
o

Basado en WSDL y SOAP

Consultar servicios dinmicamente no es real


o

Ninguna empresa corre este riesgo

Moraleja:
o
o

No es el servicio que se busca, mala performance, etc

Necesidad de catlogos de servicios


UDDI no es la solucin

Catalogo de servicios del Estado


o

http://www.agesic.gub.uy/innovaportal/v/1602/1/agesi
c/catalogo_de_servicios.html
INCO - Facultad de Ingeniera Montevideo, Uruguay

71

Resumen

SOAP
o

WSDL
o
o

Define el formato y transporte de los mensajes

Describe las interfaces de los servicios


Describe operaciones, mensajes, estructuras de datos,
protocolos de transporte, etc

UDDI
o
o
o
o

Permite el desarrollo de directorios de Web Services


Clasificacin de servicios por parte de proveedores
Bsqueda de servicios por clientes/consumidores
Conceptos tiles, mala tecnologa
INCO - Facultad de Ingeniera Montevideo, Uruguay

81

Limitaciones

Serializacin a SOAP

Descripcin de caractersticas no funcionales


en un WSDL

Seguridad? Transacciones? Mensajera?


o

Los Web Services bsicos no proveen soluciones


a este tipo de requerimientos empresariales

INCO - Facultad de Ingeniera Montevideo, Uruguay

82

Tecnologas avanzadas
para el desarrollo
de Web Services

Estndares Avanzados de WS

Los estndares bsicos no abordan problemticas


comunes en contextos empresariales
o

Confiabilidad, seguridad, transacciones, etc.

Surgen entonces un conjunto de nuevas


especificaciones (conocidas como WS-* o segunda
generacin de estndares)

Cada una aborda una problemtica especfica y


estn orientadas a bloques y a su composicin
INCO - Facultad de Ingeniera Montevideo, Uruguay

84

Estndares Avanzados de WS

http://www.innoq.com/soa/ws-standards/poster/
INCO - Facultad de Ingeniera Montevideo, Uruguay

85

Segunda Generacin de
Estndares para WS

INCO - Facultad de Ingeniera Montevideo, Uruguay

86

Conceptos bsicos
en Seguridad
Confidencialidad, integridad,
autenticacin y no repudio

Requerimientos empresariales

Confidencialidad de la informacin
o

Cmo podemos prevenir que terceros


visualicen los mensajes?

Integridad de la informacin
o

Cmo podemos prevenir que se


modifiquen los mensajes entre emisor y
receptor?

INCO - Facultad de Ingeniera Montevideo, Uruguay

88

Requerimientos empresariales

Autenticacin de usuarios
o

Cmo sabemos quin es el emisor del


mensaje?
Cmo se puede probar que es quin dice ser?

No repudio
o

Puede el emisor/receptor decir que:


no envo el mensaje?
envi un mensaje diferente al recibido?
INCO - Facultad de Ingeniera Montevideo, Uruguay

89

Confidencialidad

Cifrado simtrico

Cifrado asimtrico

INCO - Facultad de Ingeniera Montevideo, Uruguay

90

Cifrado simtrico

Es la forma tradicional de la criptografa


o Su origen conocido se remonta al menos a la poca de los
romanos
Los algoritmos simtricos utilizan la misma clave para encriptar y
desencriptar la informacin
o Dk(Ek(x)) = x

A la clave se le denomina clave secreta, Llave secreta,


secreto compartido (Secret-Key o shared key en ingls)

Requieren una comunicacin previa de la clave entre las


entidades participantes de forma segura (secreta)

INCO - Facultad de Ingeniera Montevideo, Uruguay

91

Ejemplo: Cifrado Csar

Data de la poca de Julio Csar (siglo I A. C.)


Es un tipo de cifrado por sustitucin en el que una
letra en el texto original es reemplazada por otra
letra que se encuentra un nmero fijo de posiciones
ms adelante en el alfabeto.
Ejemplo:
Texto original: WIKIPEDIA, LA ENCICLOPEDIA LIBRE
Texto codificado: CPVKJG, QG KSIIQUVKJG
QHXK

INCO - Facultad de Ingeniera Montevideo, Uruguay

92

Cifrado asimtrico

Los mtodos asimtricos, conocidos como de clave


pblica, se basan en encontrar un criptosistema
donde se tienen dos claves distintas para encriptar
y desencriptar, y es computacionalmente imposible
obtener la clave de descifrado (dk) a partir de la
clave de cifrado(ek) (o viceversa)

De esa forma, una de las claves puede ser hecha


pblica

Ejemplos: Certificados digitales


INCO - Facultad de Ingeniera Montevideo, Uruguay

93

Cifrado asimtrico

INCO - Facultad de Ingeniera Montevideo, Uruguay

94

Cifrado asimtrico

Adems de mantener la confidencialidad de


los datos

para qu se podran usar las claves pblicas


y privadas?

INCO - Facultad de Ingeniera Montevideo, Uruguay

95

Firma digital

Las firmas digitales


permiten al receptor de
la informacin verificar
o

La autenticidad del
origen de la informacin
Que la informacin est
intacta

INCO - Facultad de Ingeniera Montevideo, Uruguay

96

Firma digital

INCO - Facultad de Ingeniera Montevideo, Uruguay

97

Firma digital

En muchos sistemas prcticos, se utiliza


criptografa asimtrica
o

Si encriptamos mensaje con la clave privada,


alcanza con verificar que es desencriptado
correctamente con la clave pblica

Los algoritmos asimtricos son lentos


o

Se encripta un hash del mensaje con la clave


privada
INCO - Facultad de Ingeniera Montevideo, Uruguay

98

No repudio

Servicio de seguridad que previene que un


emisor niegue haber remitido un mensaje
(cuando realmente lo ha emitido) y que un
receptor niegue su recepcin (cuando
realmente lo ha recibido).

En el primer caso el no repudio se denomina


en origen y en el segundo en destino.
[Ribagorda:1997]
INCO - Facultad de Ingeniera Montevideo, Uruguay

99

Seguridad en WS

Escenario
El Web Service requiere autenticar de las
aplicaciones clientes
El Web Service requiere mantener la
confidencialidad de cierta informacin
intercambiada
El Web Service debe rechazar mensajes
enviados por el cliente hace ms de 5
minutos

INCO - Facultad de Ingeniera Montevideo, Uruguay

101

Introduccin

Dos alternativas para proveer seguridad


entre Web Services:
o

Seguridad en Capa de Transporte (SSL/TLS)

Seguridad provista por el canal de comunicacin

Seguridad a nivel de Mensaje SOAP

Seguridad incluida en el propio mensaje

INCO - Facultad de Ingeniera Montevideo, Uruguay

102

Introduccin

Dos alternativas para proveer seguridad


entre Web Services:
o

Seguridad en Capa de Transporte (SSL/TLS)

Seguridad provista por el canal de comunicacin

Seguridad a nivel de Mensaje SOAP

Seguridad incluida en el propio mensaje

INCO - Facultad de Ingeniera Montevideo, Uruguay

103

Seguridad en capa de transporte:


Autenticacin HTTP

HTTP soporta diferentes mecanismos para el


control de recursos Web
o

Mecanismos basados en cabezales HTTP 401 y


WWW-Authenticate.

Opciones: Basic, Digest, NTLM.

10
4
INCO - Facultad de Ingeniera Montevideo, Uruguay

104

Seguridad en capa de transporte:


Autenticacin HTTP

HTTP soporta diferentes mecanismos para el


control de recursos Web
o

Mecanismos basados en cabezales HTTP 401 y


WWW-Authenticate.

Opciones: Basic, Digest, NTLM.

10
5
INCO - Facultad de Ingeniera Montevideo, Uruguay

105

Basic Authentication

Seguridad a nivel de protocolo HTTP


El cliente enva usuario y contrasea codificado en base64
Contrasea NO cifrada
Sensible a Sniffing
INCO - Facultad de Ingeniera Montevideo, Uruguay

10
6
106

Basic Authentication

HTTP Basic es un mecanismo simple de


seguridad de tipo challenge/response que
pueden utilizar los servidores para solicitar
informacin de autenticacin a un cliente
(usuario/contrasea).

El cliente enva la informacin de autenticacin


en un cabezal http (Authorization) codificada en
base64.
10
7
INCO - Facultad de Ingeniera Montevideo, Uruguay

107

Basic Authentication
1.
2.

El cliente hace una solicitud al servidor


El servidor enva una respuesta con un cdigo de
estado http 401, un mensaje de error de autenticacin
y un cabezal http (WWW-Authenticate).

3.

4.

P. ej: WWW-Authenticate Basic realm=Mi sitio


El atributo realm identifica el dominio de seguridad

La mayora de los clientes capturan este error y


solicitan al usuario final un userID y contrasea.
El cliente enva el usuario y contrasea en un cabezal
http Authorization

El usuario y contrasea viajan codificados en base64 con


formato usuario:contrasea
P. ej: Authorization: Basic aHR0cHdhdGNoOmY=
INCO - Facultad de Ingeniera Montevideo, Uruguay

10
8
108

Digest Authentication

El cliente enva un hash de su contrasea.


RFC 2069 (original)
o Sensible frente a ataques reply
RFC 2617
o Introduce elementos de seguridad adicionales

Nonces, etc

10
9
INCO - Facultad de Ingeniera Montevideo, Uruguay

109

Seguridad en capa de transporte:


(SSL/TLS)

Es estndar
Autenticacin mutua
de servidores
Integridad y
confidencialidad de la
informacin.
Sesiones seguras
Transparente a las
aplicaciones
o

Configurado a nivel de
servidor Web
INCO - Facultad de Ingeniera Montevideo, Uruguay

11
0
110

Seguridad en Capa de
Transporte (SSL/TLS)

SSL & TLS Essentials: Securing the Web. Stephen A. Thomas. John Wiley & Sons. 2000.
INCO - Facultad de Ingeniera Montevideo, Uruguay

111

Sin embargo

Cifrado y firmado de mensajes punto a punto


o Intermediarios pueden dejar huecos de
seguridad
Autenticacin de usuarios punto a punto
o Autenticacin del usuarios trabajosa si hay
intermediarios
Cifrado de todo el mensaje
Dependiente del protocolo de transporte
11
2
INCO - Facultad de Ingeniera Montevideo, Uruguay

112

Seguridad en Web Services

Dos alternativas para proveer seguridad a Web


Services:
o Seguridad en Capa de Transporte

Seguridad provista por el canal de comunicacin


Autenticacin HTTP o SSL/TLS

Seguridad a nivel de Mensaje SOAP

Seguridad incluida en el propio mensaje


WS-Security, WS-SecureConversation, WS-Trust
11
3

INCO - Facultad de Ingeniera Montevideo, Uruguay

113

WS-Security
Seguridad a nivel de mensaje, no transporte
Garantiza la confidencialidad e integridad de
los mensajes SOAP
Brinda mecanismos para adjuntar tokens de
seguridad a los mensajes SOAP

o
o

Usuario/Password, certificados X.509, etc


Permite la autenticacin de usuarios!

Es un estndar
o

Actualmente en versin 1.1


INCO - Facultad de Ingeniera Montevideo, Uruguay

114

WS-Security

XML Encryption
o
o

XML Signature
o
o
o

Estndar para el cifrado XML


WS-Security: Versin 1.1 (actual)
Estndar para la firma de documentos XML
WS-Security: versin 1.1
Actualmente versin 2.0
Mejoras de performance, simplicidad y streaming

WS-Security ordena XMLEncryption y XMLSignature


para firmar mensajes SOAP
INCO - Facultad de Ingeniera Montevideo, Uruguay

11
5
115

XML Encryption

11
6
INCO - Facultad de Ingeniera Montevideo, Uruguay

116

XML Signature

11
7
INCO - Facultad de Ingeniera Montevideo, Uruguay

117

Adems

Permite adjuntar tokens de seguridad


o
o

Autenticacin de usuarios!
Diferentes tipos de token:

Username Token
Binary Security Token
SAML (Security Assertion Markup Language)

Inclusin de timestamps de los mensajes


o

Creacin y vencimiento
11
8
INCO - Facultad de Ingeniera Montevideo, Uruguay

118

<envelope>

Escenario:
<header>
Security Token

Deposito
en cuenta bancaria
<security>
<envelope>
<binarysecuritytoken></binarysecuritytoken>
<header>
Mensajes SOAP
encriptados y
<signature></signature>
firmados va certificados
X.509

</security>
Servicio y cliente
autenticados
</header>
</header>
va certificados
X.509

Firma

<body>
<body>
<depositar>
<depositar>
<cuenta>123459</cuenta>
<EncryptedData><CipherData>
<monto>100.000</monto>
<CipherValue>A23B45C56</CipherValue>
<moneda>pesos-uy</moneda>
</CipherData></EncryptedData>
<fecha>09-03-2009</fecha>
<fecha>09-03-2009</fecha>
</depositar>
</depositar>
</body>
Certificado del
</body>

cliente
</envelope>
</envelope>
INCO - Facultad de Ingeniera Montevideo, Uruguay

Certificado del
Cifrado
servicio
121

Ejemplo: Timestamp

Define fecha de creacin y vencimiento de


los mensajes

12
2
INCO - Facultad de Ingeniera Montevideo, Uruguay

122

Ejemplo: Username Token

Define mecanismos para autenticar usuarios basado en


usuario y contrasea.
o
o
o
o

Username: nombre de usuario


Contrasea: texto plano o digest.
Nonce: String nico para deteccin de ataques replay.
Created: fecha/hora de creacin del mensaje.

12
3
INCO - Facultad de Ingeniera Montevideo, Uruguay

123

SSL vs WS-Security
Caractersticas

SSL

WS-Security

Estndar

Seguridad

A nivel de transporte

A nivel de applicacin

Confidencialidad/
Integridad

Todo el mensaje.

Todo o partes del mensaje

Autenticacin de
clientes

X.509, Basic Authentication

Usuario/Contrasea, X.509,
Kerberos, SAML.

Protocolo

Potencialmente varios.
HTTP el ms popular.

Potencialmente varios.
HTTP el ms popular.

Algoritmos de
cifrado

Simtricos

Simtricos y asimtricos
En gral, asimtrico

Sesiones seguras

No, pero
WS-SecureConversation

INCO - Facultad de Ingeniera Montevideo, Uruguay

124

Cundo usar SSL?

Gran volumen de transacciones (Rapido y escalable)


No hay procesamiento por parte de intermediarios
o

Problemas de interoperabilidad en WS-Security


o

p.ej: filtrado o ruteo basado en contenido


SSL es un estndar maduro e interopera razonablemente bien entre
diferentes proveedores

Asegurar adjuntos en Web Services


o
o

SSL encripta todos los paquetes a nivel de transporte


El header, body y attachments SOAP estn todos asegurados

INCO - Facultad de Ingeniera Montevideo, Uruguay

125

Cundo usar WS-Security?

Los intermediarios encriptan partes de los mensajes y


deben dejar otras en texto plano
Autenticacin en el origen del mensaje
o

Seguridad de mensajes persistente


o

quin/qu envi el mensaje?


La integridad y confidencialidad de los mensajes persiste ms
all del mecanismos de transporte

Desarrollos futuros
o

Habilitar la federacin, sesiones seguras y seguridad basada en


polticas segn el roadmap de Web Services

INCO - Facultad de Ingeniera Montevideo, Uruguay

126

Costos: Performance

http://www.ibm.com/developerworks/java/library/j-jws6/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay

127

Adems

Small responses

INCO - Facultad de Ingeniera Montevideo, Uruguay

128

Large responses

http://www.ibm.com/developerworks/java/library/j-jws14/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay

129

Escenario
El Web Service requiere autenticar de las
aplicaciones clientes
El Web Service requiere mantener la
confidencialidad de cierta informacin
intercambiada
El Web Service debe rechazar mensajes
enviados por el cliente hace ms de 5
minutos

INCO - Facultad de Ingeniera Montevideo, Uruguay

130

Caso de estudio: e-factura

DGI publica un Servicio Web externo para factura


electrnica que funciona como un nico canal por el
cual se brindan los distintos servicios de factura
electrnica.
Seguridad:
o
o

o
o

Autenticacin (WS-Security)
Integridad (WS-Security)
Confiabilidad (SSL)
No repudio (Firma digital)

Referencia: https://www.efactura.dgi.gub.uy/
Web Service:
https://efactura.dgi.gub.uy:6443/ePrueba/ws_eprueba?wsdl
INCO - Facultad de Ingeniera Montevideo, Uruguay

131

Ejemplo de request
SOAP:Envelope
SOAP:Header
WSS:Security
xmlsig:Signature

SOAP:Body
xml:e-factura

INCO - Facultad de Ingeniera Montevideo, Uruguay

132

Fin

Das könnte Ihnen auch gefallen