Your SlideShare is downloading. ×
  • Like
Synthesis of secure adaptors
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply
Published

 

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
90
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. Ejemplo: Servicios con estado Servicio a Servicio b Codificado en Crypto-CCS
  • 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. Ejemplo: adaptador AdaptadorServicio a Servico b
  • 6. Ejemplo: adaptador AdaptadorServicio a Servicio b
  • 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. Overview
  • 9. Overview
  • 10. Ejemplo: servicios incompatibles Servicio a Servicio b
  • 11. Overview
  • 12. Ejemplo: servicios incompatibles Servicio a Servicio b
  • 13. Ejemplo: servicios incompatibles Servicio a Servicio b Cómo: send! encajaría tanto con anonymous?, des?, pub_rsa? o priv_rsa?
  • 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 }
  • 21. Overview
  • 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. Síntesis sin bloqueos AdaptadorServicio a Servicio b SAC
  • 24. Síntesis sin bloqueos AdaptadorServicio a Servicio b SAC
  • 25. Síntesis sin bloqueos AdaptadorServicio a Servicio b SAC
  • 26. Overview
  • 27. ConfidencialidadServicio a Servicio b ● ¿Qué quieres proteger? ● ¿Qué es suceptible de ataque? ○ Dolev-Yao restringido ● ¿Qué información es pública?
  • 28. ConfidencialidadServicio a Servicio b Le - Acciones "escuchables" La - Acciones protegidas p - Propiedad de confidencialidad
  • 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. Model checking parcialServicio a Servicio b (mediante model-checking parcial)
  • 31. Verificación de seguridad AdaptadorServicio a Servicio b Ataque
  • 32. Refinación AdaptadorServicio a Servicio b
  • 33. Adaptadores de seguridad seguros AdaptadorServicio a Servicio b SAC
  • 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
  • 36. ¡Muchas gracias!Artículo completo: http://bit.ly/JLAP12 -- Tesis: http://bit.ly/jamartin-thesis
  • 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. 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. Applications