Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Synthesis of secure adaptors

329 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Synthesis of secure adaptors

  1. 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) JCIS12, Almería, 19 Sept, 2012 Artículo publicado: http://bit.ly/JLAP12
  2. 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
  3. 3. Ejemplo: Servicios con estado Servicio a Servicio b Codificado en Crypto-CCS
  4. 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...
  5. 5. Ejemplo: adaptador AdaptadorServicio a Servico b
  6. 6. Ejemplo: adaptador AdaptadorServicio a Servicio b
  7. 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
  8. 8. Overview
  9. 9. Overview
  10. 10. Ejemplo: servicios incompatibles Servicio a Servicio b
  11. 11. Overview
  12. 12. Ejemplo: servicios incompatibles Servicio a Servicio b
  13. 13. Ejemplo: servicios incompatibles Servicio a Servicio b Cómo: send! encajaría tanto con anonymous?, des?, pub_rsa? o priv_rsa?
  14. 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. 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. 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. 17. Contrato de adaptación Servicio a Servicio b Contrato de adaptación anonymous!M^ < send?M public_key! < ... E0 VLTS
  18. 18. Contrato de adaptación Servicio a Servicio b Contrato de adaptación anonymous!M^ < send?M public_key! < ... E0 VLTS
  19. 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. 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 }
  21. 21. Overview
  22. 22. Trazas que cumplen el contratoServicio a Servicio b Adaptador Contrato de adaptación 1. anonymous!M^ < send?M 2. public_key! < 3. login!U^,E(K^,U^) <
  23. 23. Síntesis sin bloqueos AdaptadorServicio a Servicio b SAC
  24. 24. Síntesis sin bloqueos AdaptadorServicio a Servicio b SAC
  25. 25. Síntesis sin bloqueos AdaptadorServicio a Servicio b SAC
  26. 26. Overview
  27. 27. ConfidencialidadServicio a Servicio b ● ¿Qué quieres proteger? ● ¿Qué es suceptible de ataque? ○ Dolev-Yao restringido ● ¿Qué información es pública?
  28. 28. ConfidencialidadServicio a Servicio b Le - Acciones "escuchables" La - Acciones protegidas p - Propiedad de confidencialidad
  29. 29. ConfidencialidadServicio 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
  30. 30. Model checking parcialServicio a Servicio b (mediante model-checking parcial)
  31. 31. Verificación de seguridad AdaptadorServicio a Servicio b Ataque
  32. 32. Refinación AdaptadorServicio a Servicio b
  33. 33. Adaptadores de seguridad seguros AdaptadorServicio a Servicio b SAC
  34. 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. 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
  36. 36. ¡Muchas gracias!Artículo completo: http://bit.ly/JLAP12 -- Tesis: http://bit.ly/jamartin-thesis
  37. 37. WS-Security<?xml version="1.0" encoding="utf-8"?><S11:Envelope><S11:Header> <wsse:Security> ● T, I, S, V, K, L and B <wsu:Timestamp wsu:Id="T0">...</wsu:Timestamp> <wsse:BinarySecurityToken ValueType="...#X509v3" are placeholders used wsu:Id="X509Token">... </wsse:BinarySecurityToken> <xenc:EncryptedKey>... for matching data in the <xenc:ReferenceList> <xenc:DataReference URI="#enc1"/> messages received </xenc:ReferenceList> </xenc:EncryptedKey> and sent from the <ds:Signature><ds:SignedInfo>... <ds:Reference URI="#T0">... T, adaptor <ds:DigestValue>LyLsF094Pi4wP...</ds:DigestValue> </ds:Reference> I, <ds:Reference URI="#body">... <ds:DigestValue>LyLsF094i4wPU...</ds: Pk(S),DigestValue> </ds:Reference> </ds:SignedInfo> penc(V, <ds:SignatureValue>Hp1ZkmFZ/2kQ...</ds:SignatureValue> Hash(cat(I,Pk(S)))), <ds:KeyInfo> <wsse:SecurityTokenReference> enc(K,L), <wsse:Reference URI="#X509Token"/> </wsse:SecurityTokenReference> Hash(T), </ds:KeyInfo> </ds:Signature> </wsse:Security> Hash(B),</S11:Header><S11:Body wsu:Id="body"> penc(S,cat(Hash(T),Hash(B)), <xenc:EncryptedData wsu:Id="enc1">...</xenc:EncryptedData>...</S11:Body></S11:Envelope> enc(L,B)
  38. 38. WS-Security<?xml version="1.0" encoding="utf-8"?><S11:Envelope><S11:Header> <wsse:Security> ● T, I, S, V, K, L and B <wsu:Timestamp wsu:Id="T0">...</wsu:Timestamp> <wsse:BinarySecurityToken ValueType="...#X509v3" are placeholders used wsu:Id="X509Token">... </wsse:BinarySecurityToken> <xenc:EncryptedKey>... for matching data in the <xenc:ReferenceList> <xenc:DataReference URI="#enc1"/> messages received </xenc:ReferenceList> </xenc:EncryptedKey> and sent from the <ds:Signature><ds:SignedInfo>... <ds:Reference URI="#T0">... T, adaptor <ds:DigestValue>LyLsF094Pi4wP...</ds:DigestValue> </ds:Reference> I, <ds:Reference URI="#body">... <ds:DigestValue>LyLsF094i4wPU...</ds: Pk(S),DigestValue> </ds:Reference> </ds:SignedInfo> penc(V, <ds:SignatureValue>Hp1ZkmFZ/2kQ...</ds:SignatureValue> Hash(cat(I,Pk(S)))), <ds:KeyInfo> <wsse:SecurityTokenReference> enc(K,L), <wsse:Reference URI="#X509Token"/> </wsse:SecurityTokenReference> Hash(T), </ds:KeyInfo> </ds:Signature> </wsse:Security> Hash(B),</S11:Header><S11:Body wsu:Id="body"> penc(S,cat(Hash(T),Hash(B)), <xenc:EncryptedData wsu:Id="enc1">...</xenc:EncryptedData>...</S11:Body></S11:Envelope> enc(L,B)
  39. 39. Applications

×