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

Transcripción

Seguridad en Web Services Por: Jorge Mario Calvo L. Junio/2010
Seguridad en Web Services
Por: Jorge Mario Calvo L.
Por: Jorge Mario Calvo L.
Junio/2010
Objetivo
• Proveer
Proveer una visión de los principales aspectos una visión de los principales aspectos
de seguridad de los Web Services y cuales alternativas y estándares existen para
alternativas 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ándares
implementa algunos de los estándares
Plan de la Charla
Plan de la Charla
• ¿Que es un Web Services?
• Aspectos de seguridad a resolver
A
d
id d
l
• Niveles donde podemos resolver el problema
– Transporte
– Mensajería
– Aplicación
• Otros
Otros Estándares relacionados con la 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
g
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
Web service in a manner prescribed by its description using SOAP‐messages, typically conveyed using HTTP with an XML serialization in conjunction
using 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
Una de las posibles interfaces de mensajeria de las posibles interfaces de mensajeria
de un servicio, en una Arquitectura SOA
• Mensajeria basada en XML
Mensajeria basada en XML
– SOAP
– WSDL
Operación de un Web Service
Operación de un Web Service
Service
Broker
WSDL
WSDL
SOAP
Consumidor
W b Service
Web
S
i
ESB
Web
Service
Mensajería SOAP
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas....
<SOAP-ENV:Body>
SO
: ody
<SOAP-ENV:getOrderStatus>
<body>US-247860</body>
</SOAP-ENV:getOrderStatus>
</SOAP-ENV:Body>
/
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>
</SOAP-ENV:getOrderStatusResponse>
/
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Request
Response
POST /temperApp/GetLocalTemperature HTTP/1.1
Host: www.ubiquando.com.co
Content-type: text/xml
Content-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>
Consumidor
Web Service
HTTP
HTTP/1.1 200 OK
Content-type: text/xml
Content-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>
Web Service
Mostrar un Web Service simple
Aspectos de Seguridad
Aspectos de Seguridad
• Autenticación‐Identidad
Autenticación Identidad
– ¿Quién lo consume?
• Autorización‐Control de Acceso
Autorización Control de Acceso
– ¿Qué esta autorizado a hacer el consumidor?
• Confidencialidad
fid i lid d
• Integridad
Nivel donde lo podemos resolver
Nivel donde lo podemos resolver
Aplicación
Consumido
r
Web
Service
Web
Service
Mensajeria
SOAP
stack
SOAP
stack
Transporte
Cliente
HTTP
Servidor
HTTP
Browser
Servidor Web
CA
Verisign
Verisign,
Certicamara
firma el Digital ID
del servidor Web
A nivel de Transporte
A nivel de Transporte
• Utilizando SSL y su sucesor TLS (https)
– Autenticación‐Identidad
• Certificado de servidor seguro y Cerrtificado de cliente
– Autorización‐Control de Acceso
A
i ió C
ld A
• No existe
– Confidencialidad
C fid i lid d
• Conexión encriptada de SSL
– Integridad
I t id d
• Conexión encriptada de SSL
A nivel de mensajería
A nivel de mensajería
• WSS: SOAP Message Security
WSS: SOAP Message Security
– Security Tokens: almacena la información para autenticación y autorización. Ejemplo: y
j p
login/password o Certificados X.509
– XML Encryption: almacena EncryptedKey element yp
yp
y
y ReferencedList que apuntan a las partes encriptadas del mensaje
– XML Signatures
WS‐Security:
WS
Security: Security Tokens
Security Tokens
<Envelope>
<Header>
<Security>
<UserNameToken>
<UserName>administrador</UserName>
<Password>1234</Password>
</UserNameToken>
</Security>
</Header>
<Body> .......
WS‐Security:
WS
Security: XML Encryption
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‐
Security
A nivel de aplicación
A nivel de aplicación
• XML Signatures y XML Encryption
g
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 Signatures
XML Signatures
A nivel de aplicación
A nivel de aplicación
• Generar
Generar campos adicionales y/o encriptar campos adicionales y/o encriptar
parámetros
• Amazon Web Service AWS
Amazon Web Service AWS
Otros Estándares
Otros Estándares
• XML
– XML Signatures y XML Encryption
• Web Services
Web Services
– WS‐Security, WS‐Trust, WS‐Policy
• AAA
– SAML
WS Policy
WS‐Policy
• Framework
Framework para expresar las limitaciones y los 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 mensajes
seguridad que deben tener los mensajes SOAP.
Ejemplo de WS‐Policy
Ejemplo de WS
Policy
<wsp:Policy>
<sp:SymmetricBinding>
<wsp:Policy>
<sp:ProtectionToken>
<wsp:Policy>
P li
<sp:KerberosV5APREQToken sp:IncludeToken=".../IncludeToken/Once" />
</wsp:Policy>
p
</sp:ProtectionToken>
<sp:SignBeforeEncrypting />
<sp:EncryptSignature />
</wsp:Policy>
SAML
• Framework
Framework XML para representar información XML para representar información
acerca de autenticidad, autorización y seguridad que pueda ser utilizada por las
seguridad que pueda ser utilizada por las aplicaciones y/o intercambiada entre diferentes aplicaciones y plataformas.
diferentes aplicaciones y plataformas.
• Utiliza predicados (statements)
Usos de SAML
Usos de SAML
•
•
•
•
Single sign
Single
sign‐on
on (SSO)
(SSO)
Identity federation
Att ib t
Attribute services
i
Securing web service messages
– Handled by the OASIS WSS TC as the “SAML Token Profile of WS‐Security”
SAML Token Profile of WS‐Security
SAML Token Profile of WS
Security
• Definir
Definir el uso de tokens para SAML dentro de 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 los
predicado(s) SAML los selecciona y los procesa.
<S12:Envelope xmlns:S12="...">
<S12:Header>
<wsse:Security xmlns:wsse="...">
<
<saml:Assertion
l A
ti
xmlns:saml="..."
l
l "
"
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:NameIdentifier
NameQualifier="www.example.com"
Format=“urn:oasis:names:tc:SAML:1.1:nameidformat:
Otros Temas
Otros Temas
• La
La seguridad en el código del Web Service es seguridad en el código del Web Service es
algo por fuera de esta presentación

Documentos relacionados