TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
Synthesis of secure adaptors
1. Synthesis of secure adaptors
(for stateful services)
J. Antonio Martín(1), Fabio Martinelli(2) y
Ernesto Pimentel(1)
Universidad de Málaga(1) -- C.N.R.(2)
JCIS'12, Almería, 19 Sept, 2012
Artículo publicado: http://bit.ly/JLAP12
2. Motivación
● Tratamos con servicios con comportamiento
● Los servicios Web tienen políticas de seguridad
○ WS-Security, WS-SecureConversation, WS-Policy, ...
● Servicios incompatibles envían y reciben mensajes
criptográficos incompatibles
● Nuestro objetivo es corregir las incompatibilidades en las
políticas de seguridad (con riesgo de revelar información) y
en el comportamiento (con riesgo de bloqueos)
cliente
4. Solución: adaptación
● Desplegar un adaptador como orquestrador que solventa
las incompatibilidades en interfáz, comportamiento y
seguridad
● La adaptación de comportamiento se basa en recibir,
reescribir y reenviar los mensajes en su momento
adecuado
● La adaptación de seguridad extiende la adaptación del
comportamiento con criptografía simétrica, asimétrica, y
hashing
Flickr API key,
adaptador Frob,
cliente Token...
7. Solución: contratos de adaptación
● Los adaptadores se describen de manera abstracta
mediante contratos de adaptación de seguridad (SAC)
● El proceso de síntesis obtiene un adaptador sin bloqueos
● Se verifica la confidencialidad del sistema y, si es
necesario, se refina el adaptador para cumplirla
cliente adaptador
proceso de síntesis
contrato
14. Ejemplo: servicios incompatibles
Servicio a
Servicio b
Cómo:
send! encajaría
tanto con
anonymous?, des?,
pub_rsa? o
priv_rsa?
Tengo el usuario
U y la clave K
15. Ejemplo: servicios incompatibles
Servicio a
Servicio b
Cómo:
send! encajaría
tanto con
anonymous?, des?,
pub_rsa? o
priv_rsa? Objetivo:
pasar M de
Tengo el usuario baa
U y la clave K
16. Ejemplo: servicios incompatibles
Servicio a
Servicio b
Cómo:
send! encajaría
tanto con
anonymous?, des?,
pub_rsa? o
priv_rsa? Objetivo:
pasar M de
Tengo el usuario baa
U y la clave K
Confidencialidad
: M debe ser
confidencial
17. Contrato de adaptación
Servicio a
Servicio b
Contrato de adaptación
anonymous!M^ < send?M
public_key! <
...
E0 VLTS
18. Contrato de adaptación
Servicio a
Servicio b
Contrato de adaptación
anonymous!M^ < send?M
public_key! <
...
E0 VLTS
19. Contrato de adaptación, E0
Servicio a
Servicio b
Contrato de adaptación
anonymous!M^ < send?M
public_key! <
login!U^,E(K^,U^) <
des!E(K^, M^) < send?M
...
E0 = [k/K, u/U,...] VLTS
20. Contrato de adaptación, VLTS
Servicio a
Servicio b
Contrato de adaptación
1. anonymous!M^ < send?M
2. public_key! <
3. login!U^,E(K^,U^) <
4. des!E(K^, M^) < send?M
...
E0 = [k/K, u/U,...] VLTS
}
22. Trazas que cumplen el contrato
Servicio a
Servicio b
Adaptador
Contrato de adaptación
1. anonymous!M^ < send?M
2. public_key! <
3. login!U^,E(K^,U^) <
27. Confidencialidad
Servicio a
Servicio b
● ¿Qué quieres proteger?
● ¿Qué es suceptible de ataque?
○ Dolev-Yao restringido
● ¿Qué información es pública?
28. Confidencialidad
Servicio a
Servicio b
Le - Acciones "escuchables"
La - Acciones protegidas
p - Propiedad de confidencialidad
29. Confidencialidad
Servicio a
Servicio b
En nuestro ejemplo:
La, Le: el atacante sólo adaptador
puede escuchar los
mensajes a/del servicio a
p: El atacante no debe obtener M
En otras palabras, el adaptador "envuelve" a b
34. Contribution
● Adaptación de servicios con comportamiento y políticas de
seguridad
○ Evitamos bloqueos
○ El adaptador es capáz de recomponer los mensajes tal y como
los espera el servicio receptor
○ Probado formalmente que el es robusto ante los ataques de
seguridad
● El adaptador es descrito mediante un contrato de adaptación
de seguridad que especifica:
○ La información inicial necesaria para la adaptación
○ Las transformaciones requeridas para conseguir una
comunicación satisfactoria
○ Las comprobaciones de seguridad a ejecutar durante la
adaptación
35. Publicación
● Journal of Logic and Algebraic Programming
● Número especial de FLACOS (Formal Languages and
Analysis of Contract-Oriented Software)
Primer envío: 10/01/2011
Primera revisión: 02/05/2011
Segunda revisión: 01/08/2011
Aceptación: 29/08/2011
Publicación (online): 21/09/2011
Publicación (física): 02/2012