Está en la página 1de 104

Web Services

Agenda

Introduccin
o

Definicin, historia y motivacin Caractersticas Tecnologas Bsicas Avanzados Caractersticas Tecnologas

Web Services
o o

REST
o o

Conclusiones
INCO - Facultad de Ingeniera Montevideo, Uruguay 2

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

Evolucin Middleware

Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006. INCO - Facultad de Ingeniera Montevideo, Uruguay 4

Web Services

El trmino Web Service nace aproximadamente en el ao 2000 por iniciativa de MS e IBM Surgen como una necesidad de la industria en las reas:
o o

Enterprise Application Integration (EAI) Business to Business (B2B)

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
9

INCO - Facultad de Ingeniera Montevideo, Uruguay

Motivacin (2)

INCO - Facultad de Ingeniera Montevideo, Uruguay

10

Motivacin (2)

Confianza entre empresas


o

es baja y a veces, inexistente. Las empresas desean ser lo ms autnomas posibles unas de otras Las empresas no quieren guardar sus datos y transacciones en middleware de terceros

Autonoma
o

Confidencialidad
o

INCO - Facultad de Ingeniera Montevideo, Uruguay

11

Sin embargo

INCO - Facultad de Ingeniera Montevideo, Uruguay

12

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

13

B2B integration via WS

INCO - Facultad de Ingeniera Montevideo, Uruguay

14

WS & EAI

INCO - Facultad de Ingeniera Montevideo, Uruguay

15

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 16

WS & EAI dentro de la compaa

INCO - Facultad de Ingeniera Montevideo, Uruguay

17

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

18

Tipos de Web Services

Simples o de informacin
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

19

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 20

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 21

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.

CreateNewPO, SetShippingAddress, AddItem

Granularidad gruesa: son servicios compuestos por servicios de granularidad fina.

SubmitPO

INCO - Facultad de Ingeniera Montevideo, Uruguay

22

Ejemplo

INCO - Facultad de Ingeniera Montevideo, Uruguay

23

Cmo determinar la granularidad de un servicio?


La

frecuencia en el intercambio de datos es un factor importante.


Enviar y recibir informacin en un nico pedido es ms eficiente que enviar varios pedidos de granularidad fina o Los servicios de granularidad fina tienden a incrementar el trfico de mensajes y producen ineficiencias y overhead o Una coleccin pequea de servicios de granularidad gruesa (donde cada uno implementa un proceso de negocio completo) reutilizable en mltiples escenarios, puede ser una mejor opcin
o
INCO - Facultad de Ingeniera Montevideo, Uruguay 24

Cmo determinar la granularidad de un servicio?

Existen heursticas para identificar el correcto nivel de granularidad de los servicios


o

Por ejemplo: identificacin clara de conceptos de negocio, alta usabilidad y reusabilidad de los conceptos, conceptos de alta cohesin y bajo acoplamiento, etc

Sectores verticales de negocios (p. ej: autombiles, turismo, etc) tienen estandarizado las entidades y procesos de negocio utilizando sus propios niveles de granularidad
INCO - Facultad de Ingeniera Montevideo, Uruguay 25

Acoplamiento

Acoplamiento: Grado de depedencia entre dos sistemas


Alto acoplamiento Bajo acoplamiento Asincrnicos Documentos Sincrnicos RPC

Patrones de interaccin Tipo de mensaje

Direccionamiento de mensajes
Plataforma Protocolos asociados Objetivo

Hard coded
Homognea Esttico Reuso

Dirigido
Heterognea Dinmico Flexibilidad, uso amplio
26

INCO - Facultad de Ingeniera Montevideo, Uruguay

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


28

INCO - Facultad de Ingeniera Montevideo, Uruguay

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

29

Requerimientos bsicos para llevar a cabo una comunicacin

Sintaxis
o

XML SOAP Tecnologas Web (http, smtp, etc) WSDL UDDI


INCO - Facultad de Ingeniera Montevideo, Uruguay 30

Formato
o

Transporte
o

Interfaces
o

Descubrimiento/Bsqueda
o

Cmo funciona (teora)?

INCO - Facultad de Ingeniera Montevideo, Uruguay

31

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 32

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

34

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

35

Mensaje SOAP

INCO - Facultad de Ingeniera Montevideo, Uruguay

36

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 37

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

38

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

39

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

40

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

41

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>

solicitud

resultado
42

INCO - Facultad de Ingeniera Montevideo, Uruguay

Mensaje SOAP Fault

El elemento Fault indica la ocurrencia de un error en el procesamiento del mensaje


o

Comprensin del mensaje

Error de sintaxis Error de red: HTTP 500 Internal Server Error No existe la cuenta con nmero X

Infraestructura

Negocio

INCO - Facultad de Ingeniera Montevideo, Uruguay

43

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

44

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 45

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 46

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

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

49

SOAP Bindings

INCO - Facultad de Ingeniera Montevideo, Uruguay

50

Implementacin simple sobre http

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 o

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

<wsdl:operation>
55

INCO - Facultad de Ingeniera Montevideo, Uruguay

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>
59

INCO - Facultad de Ingeniera Montevideo, Uruguay

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

Jugar con WS

Seekda
o

http://webservices.seekda.com/providers/webserv icex.com/GlobalWeather Getting Started Tutorial http://msdn.microsoft.com/enus/library/ms734712.aspx http://community.jboss.org/wiki/JBossWSUserGuide


INCO - Facultad de Ingeniera Montevideo, Uruguay 63

.NET
o o

JBoss
o

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 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 65

UDDI define
o

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

66

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

67

Modelo de Datos UDDI

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

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

69

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 70

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 71

Resumen

SOAP
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 Permite el desarrollo de directorios de Web Services Clasificacin de servicios por parte de proveedores Bsqueda de servicios por clientes/consumidores

WSDL
o o

UDDI
o o o

INCO - Facultad de Ingeniera Montevideo, Uruguay

72

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

73

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 75

Estndares Avanzados de WS

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

Segunda Generacin de Estndares para WS

INCO - Facultad de Ingeniera Montevideo, Uruguay

77

Conceptos bsicos en Seguridad


Confidencialidad, integridad, autenticacin y no repudio

Introduccin

Algunos requerimientos empresariales en seguridad


o
o o o

Confidencialidad de la informacin Integridad de la informacin Autenticacin de usuarios No repudio

INCO - Facultad de Ingeniera Montevideo, Uruguay

79

Confidencialidad

Cifrado simtrico

Cifrado asimtrico

INCO - Facultad de Ingeniera Montevideo, Uruguay

80

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

81

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

82

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

INCO - Facultad de Ingeniera Montevideo, Uruguay

83

Cifrado asimtrico

INCO - Facultad de Ingeniera Montevideo, Uruguay

84

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

85

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 86

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 87

Seguridad en WS

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 incluida en el propio mensaje

Seguridad a nivel de Mensaje SOAP

INCO - Facultad de Ingeniera Montevideo, Uruguay

89

Seguridad en Capa de Transporte (SSL/TLS)


Opcin estndar Garantiza la autenticacin de usuarios, as como la integridad y confidencialidad de la informacin. Permite establecimiento de sesiones seguras Transparente a las aplicaciones Soportado por varios proveedores Tecnologa conocida y madura

INCO - Facultad de Ingeniera Montevideo, Uruguay 90

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

91

Sin embargo

HTTP

INCO - Facultad de Ingeniera Montevideo, Uruguay

92

Sin embargo

Cifrado y firmado de mensajes punto a punto


o

Intermediarios pueden dejar huecos de seguridad Autenticacin del usuarios trabajosa si hay intermediarios

Autenticacin de usuarios punto a punto


o

Cifrado de todo el mensaje Dependiente del protocolo de transporte

INCO - Facultad de Ingeniera Montevideo, Uruguay

93

Seguridad a nivel de mensaje

Toda la informacin de seguridad es encapsulada en el propio mensaje Estndares que dan soporte a este mecanismo:
o
o o

WS-Security WS-SecureConversation WS-Trust

INCO - Facultad de Ingeniera Montevideo, Uruguay

94

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
INCO - Facultad de Ingeniera Montevideo, Uruguay 95

Escenario: Deposito en cuenta bancaria


Mensajes SOAP encriptados y firmados va certificados X.509 Servicio y cliente autenticados va certificados X.509

Certificado del cliente


INCO - Facultad de Ingeniera Montevideo, Uruguay

Certificado del servicio


96

Escenario: Deposito en cuenta bancaria


<envelope>
<header> Mensajes SOAP encriptados y firmados va certificados X.509 Servicio y cliente autenticados </header> va certificados X.509 <body> <depositar> <cuenta>123459</cuenta> <monto>100.000</monto> <moneda>pesos-uy</moneda>

<fecha>09-03-2009</fecha>
</depositar> </body> Certificado del

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

Certificado del servicio


97

Escenario: Security Token <header> 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 <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>

<envelope>

Firma

Certificado Cifrado del servicio


98

cliente </envelope> </envelope>


INCO - Facultad de Ingeniera Montevideo, Uruguay

SSL vs WS-Security
Caractersticas Estndar S SSL S WS-Security

Seguridad
Confidencialidad/ Integridad Autenticacin de clientes Protocolo Algoritmos de cifrado Sesiones seguras

A nivel de transporte
Todo el mensaje. X.509, Basic Authentication Potencialmente varios. HTTP el ms popular. Simtricos

A nivel de applicacin
Todo o partes del mensaje Usuario/Contrasea, X.509, Kerberos, SAML. Potencialmente varios. HTTP el ms popular. Simtricos y asimtricos En gral, asimtrico No, pero WS-SecureConversation

INCO - Facultad de Ingeniera Montevideo, Uruguay

99

Costos: Performance

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

Adems

Small responses

INCO - Facultad de Ingeniera Montevideo, Uruguay

101

Large responses

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

Cundo usar SSL?


Gran volumen de transacciones (Rapido y escalable) No hay procesamiento por parte de intermediarios
o

p.ej: filtrado o ruteo basado en contenido

Problemas de interoperabilidad en los estndares WSSecurity


o

SSL es un estndar maduro e interopera razonablemente bien entre diferentes proveedores SSL encripta todos los paquetes a nivel de transporte El header, body y attachments SOAP estn todos asegurados

Asegurar adjuntos en Web Services


o o

INCO - Facultad de Ingeniera Montevideo, Uruguay

103

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

quin/qu envi el mensaje?

Seguridad de mensajes persistente


o

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 104

Fin