seguridad en web services por: jorge mario calvo l

28
Seguridad en Web Services Por: Jorge Mario Calvo L. Por: Jorge Mario Calvo L. Junio/2010

Upload: others

Post on 26-Mar-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Seguridad en Web Services

Por: Jorge Mario Calvo L.Por: Jorge Mario Calvo L.

Junio/2010

ObjetivoObjetivo

• Proveer una visión de los principales aspectosProveer una visión de los principales aspectos de seguridad de los Web Services y cuales alternativas y estándares existen paraalternativas y estándares existen para resolverlos

• Mostrar algunos ejemplos prácticos a través• Mostrar algunos ejemplos prácticos a través de un productos de Software Libre que implementa algunos de los estándaresimplementa algunos de los estándares

Plan de la CharlaPlan de la Charla• ¿Que es un Web Services?

A d id d l• Aspectos de seguridad a resolver

• Niveles donde podemos resolver el problema– Transporte

– Mensajería

– Aplicación

• Otros Estándares relacionados con laOtros Estándares relacionados con la seguriada en XML y Web Services

¿Que es un Web Services?¿Que es un Web Services?

• A Web service is a software system designed to y gsupport 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 itsWeb service in a manner prescribed by its description using SOAP‐messages, typically conveyed using HTTP with an XML serialization in conjunctionusing HTTP with an XML serialization in conjunction with other Web‐related standards. (www.w3c.org)

¿Que es un Web Services?¿Que es un Web Services?

• Una de las posibles interfaces de mensajeriaUna de las posibles interfaces de mensajeria de un servicio, en una Arquitectura SOA

• Mensajeria basada en XML• Mensajeria basada en XML– SOAP

WSDL– WSDL

Operación de un Web ServiceOperación de un Web Service

ServiceBroker

ESB

WSDL WSDL

SOAP

WSDL WSDL

ConsumidorW b S i

WebService

SOAP

Web Service

Mensajería SOAP<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas....<SOAP-ENV:Body> RequestSO : ody

<SOAP-ENV:getOrderStatus><body>US-247860</body>

</SOAP-ENV:getOrderStatus></SOAP-ENV:Body>

Request

/ y</SOAP-ENV:Envelope>

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope

//xmlns:SOAP-ENV="http://schemas.....<SOAP-ENV:Body>

<SOAP-ENV:getOrderStatusResponse><body>Shipped</body>

/

Response

</SOAP-ENV:getOrderStatusResponse></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

POST /temperApp/GetLocalTemperature HTTP/1.1Host: www.ubiquando.com.coContent-type: text/xmlContent-length: 543<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas....<SOAP-ENV:Body>y<SOAP-ENV:getOrderStatus>

<body>US-247860</body></SOAP-ENV:getOrderStatus>

</SOAP-ENV:Body></SOAP-ENV:Envelope>

ConsumidorWeb Service Web ServiceHTTP

HTTP/1.1 200 OKContent-type: text/xmlContent-length: 145<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope

//xmlns:SOAP-ENV="http://schemas.....<SOAP-ENV:Body><SOAP-ENV:getOrderStatusResponse>

<body>Shipped</body></SOAP-ENV:getOrderStatusResponse>

</SOAP-ENV:Body></SOAP-ENV:Envelope>

Mostrar un Web Service simple

Aspectos de SeguridadAspectos de Seguridad

• Autenticación‐IdentidadAutenticación Identidad– ¿Quién lo consume?

• Autorización Control de Acceso• Autorización‐Control de Acceso– ¿Qué esta autorizado a hacer el consumidor?

fid i lid d• Confidencialidad

• Integridad

Nivel donde lo podemos resolverNivel donde lo podemos resolverConsumido

rWeb

Web ServiceAplicación

SOAP SOAP

Web Service

ServiceAplicación

SOAPstack

SOAPstackMensajeria

ClienteHTTP

ServidorHTTPTransporte

Browser Servidor Web

CACA

VerisignVerisign, Certicamarafirma el Digital ID del servidor Web

A nivel de TransporteA nivel de Transporte• Utilizando SSL y su sucesor TLS (https)

– Autenticación‐Identidad• Certificado de servidor seguro y Cerrtificado de cliente

A i ió C l d A– Autorización‐Control de Acceso• No existe

C fid i lid d– Confidencialidad• Conexión encriptada de SSL

I t id d– Integridad• Conexión encriptada de SSL

A nivel de mensajeríaA nivel de mensajería

• WSS: SOAP Message SecurityWSS: SOAP Message Security– Security Tokens: almacena la información para autenticación y autorización. Ejemplo: y j plogin/password o Certificados X.509

– XML Encryption: almacena EncryptedKey element yp yp yy ReferencedList que apuntan a las partes encriptadas del mensaje

– XML Signatures

WS‐Security: Security TokensWS Security: Security Tokens

<Envelope><Header><Security><UserNameToken><UserNameToken><UserName>administrador</UserName><Password>1234</Password></UserNameToken>

</Security></Security></Header><Body> .......

WS‐Security: XML EncryptionWS Security: XML Encryption<Envelope>

<Header><Security>

<ReferenceList><DataReference URI="#bodyID"/>

</ReferenceList></Security>

</Header><Body>

<EncryptedData Id="bodyID"> <KeyInfo>

<KeyName>CN=Hiroshi Maruyama, C=JP</KeyName></KeyInfo><CipherData>

<CipherValue>...</CipherValue></CipherData>

</EncryptedData></Body>

</Envelope>

Mostrar el Web Service con el estandar WS‐SecuritySecurity

A nivel de aplicaciónA nivel de aplicación

• XML Signatures y XML Encryptiong y yp– Estándar para el uso de Digital Signatures en los mensajes XML y garantizar la autenticidad de los mensajes.

– Adicionar autenticidad, integridad y no repudio a los mensajes XML

– Permite firmar parte de los mensajes y no el documento completo

XML SignaturesXML Signatures

A nivel de aplicaciónA nivel de aplicación

• Generar campos adicionales y/o encriptarGenerar campos adicionales y/o encriptar parámetros

• Amazon Web Service AWS• Amazon Web Service AWS

Otros EstándaresOtros Estándares

• XMLXML– XML Signatures y XML Encryption

• Web Services• Web Services– WS‐Security, WS‐Trust, WS‐Policy

• AAA– SAML

WS‐PolicyWS Policy

• Framework para expresar las limitaciones y losFramework para expresar las limitaciones y los requisitos de los Web Services, utilizando aserciones o predicados.aserciones o predicados.

• Estos predicados definen las características de seguridad que deben tener los mensajesseguridad que deben tener los mensajes SOAP.

Ejemplo de WS‐Policy

<wsp:Policy>

Ejemplo de WS Policy

<wsp:Policy> <sp:SymmetricBinding>

<wsp:Policy> <sp:ProtectionToken>

P li<wsp:Policy> <sp:KerberosV5APREQToken sp:IncludeToken=".../IncludeToken/Once" />

</wsp:Policy> </sp:ProtectionToken> p<sp:SignBeforeEncrypting /> <sp:EncryptSignature />

</wsp:Policy>

SAMLSAML

• Framework XML para representar informaciónFramework XML para representar información acerca de autenticidad, autorización y seguridad que pueda ser utilizada por lasseguridad que pueda ser utilizada por las aplicaciones y/o intercambiada entre diferentes aplicaciones y plataformas.diferentes aplicaciones y plataformas.

• Utiliza predicados (statements)

Usos de SAMLUsos de SAML

• Single sign‐on (SSO)Single sign on (SSO)

• Identity federation

Att ib t i• Attribute services

• Securing web service messages– Handled by the OASIS WSS TC as the “SAML Token Profile of WS‐Security”

SAML Token Profile of WS‐SecuritySAML Token Profile of WS Security

• Definir el uso de tokens para SAML dentro deDefinir el uso de tokens para SAML dentro de WSS: SOAP Message Security specification

• Cuando un Web Service recibe el SOAP• Cuando un Web Service recibe el SOAP Request con una referencia a un(os) predicado(s) SAML los selecciona y lospredicado(s) SAML los selecciona y los procesa.

<S12:Envelope xmlns:S12="..."><S12:Header><wsse:Security xmlns:wsse="...">< l A ti l l " "<saml:Assertion xmlns:saml="..."AssertionID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc"IssueInstant="2003-04-17T00:46:02Z"Issuer=”www.opensaml.org”MajorVersion="1"MinorVersion="1"><saml:AuthenticationStatement><saml:Subject><saml:Subject><saml:NameIdentifierNameQualifier="www.example.com"Format=“urn:oasis:names:tc:SAML:1.1:nameidformat:

Otros TemasOtros Temas

• La seguridad en el código del Web Service esLa seguridad en el código del Web Service es algo por fuera de esta presentación