SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
SEGURIDAD EN XML Y WEB
SERVICES
• Índice de contenidos
   − Introducción:
     • ¿Qué es seguridad?
     • ¿Por qué crear esquemas de seguridad para web services?

  − Iniciativas basadas en XML para seguridad en WS
     • Firma XML (XML signature)
     • Encriptación XML
     • XKMS
     • XACML
     • SAML
     • WS-security
     • ¿Cómo trabajan juntas?
Introducción
• ¿Qué es seguridad? Conceptos básicos
   − Confidencialidad: ¿Pueden los ojos cotillas verlo?
   − Autenticación: ¿Eres quien dices ser?
   − Confianza: ¿Me fío de trabajar contigo?
   − No repudio: ¿Puedes decir: “Yo no he sido” y mentir?
   − Integridad: ¿Me ha llegado alterado o no?
   − Autorización: ¿Tienes permiso para tenerlo?
   − Auditoría: ¿Puedes probar lo que ha ocurrido sin tener que
     llamar a los de C.S.I.?
¿Por qué definir nuevos esquemas de
seguridad para web services?
Esquemas de seguridad
• ¿Por qué definir nuevos esquemas de seguridad para
  Web Services? A día de hoy…
   − La interacción se centra más “sobre internet” (frente a un
     escenario “dentro de la intranet”)
   − Interacción entre miembros que previamente no habían
     establecido una relación (mutuamente desconocidos).
   − Interacción programa a programa (frente a interacción humano
     a programa)
   − Interacción más dinámica (frente a interacción estática)
   − El número de servicios, proveedores y consumidores se
     incrementa.
Esquemas de seguridad
• Actualidad de los esquemas de seguridad de web
  services
   − SSL/TLS/HTTPS
     • Nivel de seguridad de transporte (frente a nivel de seguridad de
       mensaje)
     • Seguridad únicamente punto-a-punto; no se lleva a cabo seguridad de
       mensajes extremo-a-extremo multisalto
     • Seguridad sólo cuando los datos viajan por el cable. No hay seguridad
       de datos fuera del cable.
     • HTTPS no tiene soporte a no repudio.
     • HTTP podría no ser el único protocolo de transporte usado.
     • No hay medios de firmar o encriptar elementos.
Esquemas de seguridad
• ¿Puede el modelo actual de seguridad en web
  services controlar los web services?
   − La técnica habitual es HTTPS usando SSL
     • Comunicación punto a punto encriptada temporalmente.
     • Transient point-to-point encrypted communication

  − Los WS pueden usar y usan esta técnica, pero es insuficiente
    en algunos aspectos
     • No es suficientemente granular; LO ENCRIPTA TODO.
     • Es inflexible respecto al enrutamiento; funciona únicamente
       punto-a-punto
     • No ofrece posibilidad a auditar lo que está pasando
     • No puede evitarse el repudio; los datos no se firman
XML y estándares de seguridad en Web
Services
Estándares en seguridad WS
• Estándares
Estándares en seguridad WS
• XML y esquemas de seguridad WS
   − XML Digital Signature
   − XML Encryption
   − XKMS (XML Key Management Specification)
   − XACML (eXtensible Access Control Markup Language)
   − SAML (Secure Assertion Markup Language)
   − WS-Security
   − Identity Management & Liberty Project
XML SIGNATURE (firma XML)
XML Signature
• ¿Qué es XML Digital Signature (firma digital XML)?
   − Autenticación, integridad de datos y no repudio
   − Esfuerzo conjunto de W3C/IETF
   − Sintaxis XML para representar firma de recursos web
   − Procedimientos para calcular y verificar esas firmas
   − Validar por clave no está entre sus objetivos.
XML Signature
• ¿Por qué XML Signature?
• Muy flexible; puede soportar diversos conjuntos de
  modelos de transacción de intenet.
  − Puede firmar elementos individuales de un documento XML
  − Puede firmar múltiples elementos
  − Puede firmar tanto objetos locales como remotos.
  − Permite firmas diferidas que se aplican a un elemento remoto
  − Contenido referenciado por URIs
  − Puede firmar tanto contenido XML como contenido no XML
  − Permite múltiples niveles de firma (diferentes semánticas)
     para el mismo contenido.
      • Firma, co-firma (firma conjunta), testigo, notario, etc.
XML Signature
• Formularios de firma XML
  − Enveloped (ensobrado)
  − Enveloping (más o menos “envolvente”)
  − Detached (más o menos “diferida”)
XML Signature
• XML Signature de tipo Enveloped
  <doc Id="myID">
     <myElement>
      ...
     </myElement>
     <Signature>
                                       La firma está “ensobrada” dentro
            ...
                                       del contenido que ha sido firmado
            <Reference URI="#myID"/>
            ...
     </Signature>
  </doc>
XML Signature
• XML Signature de tipo Enveloping (envolvente)
  <Signature>
     ...
     <Reference URI="#myRefObjectID"
     ...
        <Object Id="myRefObjectID">
        <doc>                          La firma envuelve el contenido
        <myElement>
                                       que hay que firmar.
        ...
        </myElement>
        ...
        </doc>
        </Object>
  </Signature>
XML Signature
• XML Signature de tip Detached (diferida).
  <Signature>
     ...
     <Reference URI="http://www.buy.com/books/purchaseWS"/>
     ...
  </Signature>

           <signature> es externo al contenido a firmar.
XML Signature
• Ejemplo de una compra firmada
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
   <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2000/..." />
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference URI="#PurchaseOrder">
          <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <DigestValue>qZk+nkcGcWq6piVxeFdcbJzQ2JO=</DigestValue>
    </Reference>
   </SignedInfo>
   <SignatureValue>IWijxQjUrcXBYc0ei4QxjWo9Kg8Dep9tlWoT4SdeRT87GH03dgh
   </SignatureValue>
   <KeyInfo>
     <X509Data>
       <X509SubjectName>CN=Alice Smith, STREET=742 Park Avenue, L=New York, ST=NY, C=US</X509SubjectName>
     </X509Data>
   </KeyInfo>
  </Signature>
ENCRIPTACIÓN XML

 »   XML Encryption
Encriptación XML
• ¿Qué es XML Encryption (encriptación XML)?
   − Privacidad en los datos (confidencialidad)
   − Define:
     • Sintaxis XML para datos encriptados
     • Cómo encriptar/desencriptar datos
     • Cómo encriptar ciertas partes de un documento.
Encriptación XML
• Encriptación XML versus SSL
  − SSL encripta todos los datos transmitidos a través de
    un canal SSL
  − La encriptación XML puede encriptar porciones de
    datos de forma selectiva.
     • Por ejemplo, un elemento específico dentro de un
       documento XML
Encriptación XML
• Ejemplo de encriptación XML
  <purchaseOrder>
   <name>Alice Smith</name>
   <address> ... </address>
   <EncryptedData xmlns='http://www.w3.org/2000/11/temp-xmlenc'>
     <EncryptionMethod Algorithm="urn:nist-gov:tripledes-ede-cbc">
       <s0:IV xmlns:s0='http://somens'>ABCD</s0:IV>
     </EncryptionMethod>
     <KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'>
      <KeyName>SharedKey</KeyName>
     </KeyInfo>
     <CipherData>A23B45C56</CipherData>
   </EncryptedData>
   <prodNumber>8a32gh19908</prodNumber>
   <quantity>1</quantity>
  </purchaseOrder>
Encriptación XML
• Apache tiene un framework bastante bueno para hacer
  encriptación de XML: xmlsec

• Depende de xalan (procesador XSLT, para transformar
  un documento XML en HTML o en otro XML).
XKMS

• XML Key Management Specification
XKMS
• ¿Qué es XKMS?
   − Define un protocolo entre un cliente XKMS y un servidor
     XKMS para llevar a cabo operaciones de PKI
      • public key registration (registro de clave pública)
      • public key validation (validación de clave pública)
      • public key discovery (descubrimiento de clave pública)
      • public key revocation (recocación de clave pública)

   − Un servidor XKMS proporciona un servicio confiable (trust
     service) en la forma de un Web Service
   − Se usa tanto con firma digital XML (XML signature) como con
     encriptación XML (XML Encryption)
XKMS
• ¿Por qué XKMS?
   − PKI es muy importante para los Web Services y el comercio
     electrónico.
   − Las operaciones de PKI son muy costosas para dispositivos
     pequeños.
      • XKMS reduce el trabajo de procesamiento desplazándolo a un servidor
        XKMS
   − Las operaciones de PKI son demasiado complejas para
     muchas aplicaciones.
      • XKMS facilita la integración PKI desplazando la complejidad de las
        operaciones de PKI a un servidor XKMS
XKMS
• Especificaciones XKMS
   − XKISS: XML Key Information Service Spec.
      • Define un protocolo para la validación de claves públicas

   − XKRSS: XML Key Registration Service Spec.
      • Define un protocolo para registro, revocación y recuperación de claves
        públicas
XKMS
• Implementaciones Java de XKMS
   − Verisign: Trust Services Integration Kit
      • www.xmltrustcenter.org/developer/verisign/tsi

   − Entrust: XKMS toolkit
      • xkms.entrust.com/xkms/

   − Phaos
      • www.phaos.com/products/xkms/xkms.html
XACML

• eXtensible Access Control Markup Language
XACML
• ¿Qué es XACML?
   − Define el núcleo del schema (esquema) y namespace para las
     políticas de autorización en XML:
      • Se usa contra elementos de un documento XML
      • Es extensible

   − Muy cercanos al desarrollo SAML
      • Los Policy Decision Points, PDPs (puntos de política de decisión)
        implicados en SAML podrían consultar políticas codificadas en XACML
        para determinar si se permite el acceso al recurso.
XACML
• ¿Por qué XACML?
   − Estandarizar lenguages de control de acceso en XML
   − Lenguage extensible con semánticas flexibles
   − Costes menores
      • No es necesario desarrollar lenguajes específicos
      • No es necesario escribir políticas en diferentes lenguages

   − Más simple
      • Los administradores sólo necesitan conocer un lenguage

   − Composición de políticas
      • Se pueden combinar las políticas escritas por distintas partes.
XACML
• Ejemplo:
   − Este ejemplo muestra un escenario en el que un usuario
     intenta acceder a una página web.
   − El código proporcionado incluye
      • Solicitud (request)
      • Política (policy)
      • Respuesta (response)
   − El usuario efectúa una solicitud en el que proporciona su
     identidad (código de usuario) y el grupo al que pertenece, el
     recurso al que quiere acceder y la acción que quiere efectuar
     sobre el recurso.
   − La política definida afecta a cualquiera que intente cualquier
     acción sobre el recurso.
XACML
• La solicitud (request)
   <Request>
         <Subject>
                 <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
                         DataType="urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name">
                  <AttributeValue>seth@users.example.com</AttributeValue>
                 </Attribute>
                 <Attribute AttributeId="group"
                         DataType="http://www.w3.org/2001/XMLSchema#string"
                         Issuer="admin@users.example.com">
                  <AttributeValue>developers</AttributeValue>
                 </Attribute>
         </Subject>
         <Resource>
                 <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
                         DataType="http://www.w3.org/2001/XMLSchema#anyURI">
                  <AttributeValue>http://server.example.com/code/docs/developer-guide.html</AttributeValue>
                 </Attribute>
         </Resource>
               <Action>
                <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
                        DataType="http://www.w3.org/2001/XMLSchema#string">
                 <AttributeValue>read</AttributeValue>
                </Attribute>
               </Action>
    </Request>
XACML
• La policy (parte I):
   <Policy PolicyId="ExamplePolicy"
           RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides">
    <Target>
           <Subjects>
             <AnySubject/>
           </Subjects>
     <Resources>
      <Resource>
       <ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal">
          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">http://server/devguide.html</AttributeValue>
                <ResourceAttributeDesignator DataType="http://www.w3.org/2001/XMLSchema#anyURI"
                                    AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"/>
        </ResourceMatch>
      </Resource>
     </Resources>
           <Actions>
                    <AnyAction/>
           </Actions>
    </Target>

  …..
XACML
• La policy (parte II):
   <Rule RuleId="ReadRule" Effect="Permit">
      <Target>
               <Subjects>       <AnySubject/>
               </Subjects>
               <Resources>      <AnyResource/>
               </Resources>
               <Actions>
                 <Action>
                  <ActionMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
                   <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
                   <ActionAttributeDesignator DataType="http://www.w3.org/2001/XMLSchema#string"
                                   AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"/>
                  </ActionMatch>
                 </Action>
               </Actions>
      </Target>
      <Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
               <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
                 <SubjectAttributeDesignator DataType="http://www.w3.org/2001/XMLSchema#string" AttributeId="group"/>
               </Apply>
               <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">developers</AttributeValue>
      </Condition>
     </Rule>
    </Policy>.
XACML
• La respuesta:
   <Response>
       <Result>
        <Decision>Permit</Decision>
        <Status>
         <StatusCode Value="urn:oasis:names:tc:xacml:1.0:status:ok"/>
        </Status>
       </Result>
   </Response>
SAML

− Security Assertion Markup Language
SAML
• ¿Qué es SAML?
   − Define un framework XML para intercambiar información de
     autenticación y autorización.
   − Existen varias declaraciones (assertion) XML:
      • Credenciales, autenticación, atributo, autorización, etc.
      • Protocolo de tipo Request&Response

   − Permite habilitar Single-Sign-On (SSO)
   − Es un estándar OASIS
SAML
• ¿Por qué SAML?
   − Están apareciendo estándares para numerosas facetas de
     comercio colaborativo, como
      • Transacciones de negocio (Por Ejemplo ebXML)
      • Interacción de software (PEj.- SOAP)

   − Pero no está estandarizado un medio para comunicar esas
     propiedades de seguridad
      • Pobre acoplamiento entre componentes
SAML
• Casos de uso para compartir información de seguridad
  a través de SAML
   − SAML ha desarrollado en la línea de tres “casos de uso” para
     acometer sus diseños y requerimientos:
      • Single Sign-on -SSO- (Autenticación unificada)
      • Transacción distribuída
      • Servicio de autorización
SAML
• Escenario hipotético de SSO:
   − A los administradores del domino juntadeandalucia.es se les
     permite el acceso a juntaex.es sin hacer relogin. Lo recíproco
     también se cumpliría.
SAML
• Escenario de transacción distribuída.
   − Un comprador de un coche, contrata un seguro de automóvil
     en seguros.com , que está afiliada a coches.com.
SAML
• Escenario de servicio de autenticación
   − Un empleado de la Junta de Andalucía (JA) se loga
     directamente en guadalinex.org que efectúa su propia
     autorización contra juntadeandalucia.es
SAML
• SAML

  − Es un framework basado en XML para intercambiar
   información XML
     • Declaraciones de seguridad (security assertions) codificadas en XML
     • Protocolo request/response codificado en XML
     • Reglas de uso de assertions con frameworks estándares de mensajería
      y transporte.
SAML
• SAML Assertions
   − Las assertions son declaraciones o descripciones de
     un “hecho”, asociados a “alguien”.
   − Las assertions SAML son conjuntos de uno o más de
     tres clases de “sentencia” (statement) acerca de un
     “sujeto” (subject).
     • Autenticación (authentication statement)
     • Atributo (attibute statement)
     • Autorización (authorization statement)
SAML
• Authentication statement

  − Un authority assert declara que:
     • El sujeto S ha sido autenticado
     • Con las intenciones I
     • En la hora H

  − Diseñado con el objetivo de usarlo en servicios de Single
    Sign-On.
SAML
• Ejemplo de assertion con un authentication statement:
  <saml:Assertion …>
   <saml:AuthenticationStatement
    AuthenticationMethod=“password”
    AuthenticationInstant=“2001-12-03T10:02:00Z”>
    <saml:Subject>
     <saml:NameIdentifier
       SecurityDomain=“sun.com”
       Name=“Sang” />
     <saml:ConfirmationMethod>
       http://…core-25/sender-vouches
     </saml:ConfirmationMethod>
    </saml:Subject>
   </saml:AuthenticationStatement>
  </saml:Assertion>
SAML
• Ejemplo de assertion con dos attribute statement
  <saml:Assertion …>
   <saml:AttributeStatement>
    <saml:Subject>..Sang..</saml:Subject>
        <saml:Attribute AttributeName=“PaidStatus” AttributeNamespace=“http://smithco.com”>
                  <saml:AttributeValue>
                   PaidUp
                  </saml:AttributeValue>
        </saml:Attribute>

        <saml:Attribute AttributeName=“CreditLimit” AttributeNamespace=“http://smithco.com”>
                  <saml:AttributeValue>
                   <my:amount currency=“USD”>500.00</my:amount>
                  </saml:AttributeValue>
        </saml:Attribute>
   </saml:AttributeStatement>
  </saml:Assertion>
SAML
• Authorization statement

  − Una autoridad decide:
     • Si conceder o no acceso a la request del subject S
     • Para el acceso de tipo A al recurso R
     • Proporcionando la credencial E

  − El sujeto (subject) puede ser un humano o un programa
  − El recurso puede ser una página web o un web service.
SAML
• Ejemplo de assertion con authorization statement
  <saml:Assertion …>
   <saml:AuthorizationStatement
    Decision=“Permit”
    Resource=“http://jonesco.com/rpt_12345.html”>
    <saml:Subject>…</saml:Subject>
    <saml:Actions
     ActionNamespace=“http://…core-25/rwedc”>
     <saml:Action>Read</saml:Action>
    </saml:Actions>
   </saml:AuthorizationStatement>
  </saml:Assertion>
WS-Security
WS-Security
• Especificación WS-Security
   − Conjunto de extensiones SOAP de mensajería segura
    extremo-a-extremo
      • Esquemas de seguridad en el nivel de mensaje

   − Se firman y encriptan mensajes SOAP añadiendo tokens de
    seguridad a los mensajes SOAP
      • Cualquier combinación de partes de mensaje: bloques de cabecera,
        cuerpo, adjuntos…
   − Proporciona
      • Integridad
      • Autenticación
      • Privacidad
WS-Security
• WS-Security
  − Múltiples modelos de seguridad
      • username/password (usuario/contraseña)
      • Certificate (certificado)

   − Múltiples tecnologías de seguridad
      • Kerberos
      • PKI

   − Múltiples tipos de tokens de seguridad
      • Kerberos ticket
      • X509 certificate
      • SAML assertions
WS-Security
• Ejemplo de mensaje SOAP con un token username
  <S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope"
          xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
    <S:Header>
          ...
       <wsse:Security>
          <wsse:UsernameToken>
              <wsse:Username>cursoSOA</wsse:Username>
              <wsse:Password>contraseña</wsse:Password>
          </wsse:UsernameToken>
        </wsse:Security>
          ...
    </S:Header>
    ...
  </S:Envelope>
Uniéndolo todo: cómo hacer que estas
tecnologías trabajen juntas
Uniéndolo todo
• Las opciones más prácticas:
   − SAML y XACML
     • XACML puede usarse para definir control de
      acceso/políticas sobre las bases de controlar solicitudes
      assertion SAML
  − SAML y WS-Security
     • Las assertions SAML pueden transportarse como tokens de
      seguridad definidos en WS-Security.
RECURSOS PARA APRENDER MÁS
Recursos
• Recursos:
  − W3C XML Digital Signature
      www.w3.org/Signature/
  − W3C XML Encryption
      www.w3.org/Encryption/
  − XKMS
     www.w3.org/TR/xkms/
  − XACML
     www.oasis-open.org/committees/xacml/
  − SAML
     oasis-open.org/committees/security
FIN

Más contenido relacionado

La actualidad más candente (20)

Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
Servicios web
Servicios webServicios web
Servicios web
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Desarrollo y consumo de servicios web asp.net
Desarrollo y consumo de servicios web asp.netDesarrollo y consumo de servicios web asp.net
Desarrollo y consumo de servicios web asp.net
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Web services1
Web services1Web services1
Web services1
 
Servicios web
Servicios webServicios web
Servicios web
 
Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)
 
Seminario IV: REST & Jersey
Seminario IV: REST & JerseySeminario IV: REST & Jersey
Seminario IV: REST & Jersey
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Servidor web
Servidor webServidor web
Servidor web
 
Creando endpoint http
Creando endpoint httpCreando endpoint http
Creando endpoint http
 
Servicios SOA
Servicios SOAServicios SOA
Servicios SOA
 
Introducción a las API's Rest
Introducción a las API's RestIntroducción a las API's Rest
Introducción a las API's Rest
 
Servicios web
Servicios webServicios web
Servicios web
 

Destacado

Linked data: mayor granularidad, mayor control de acceso
Linked data: mayor granularidad, mayor control de accesoLinked data: mayor granularidad, mayor control de acceso
Linked data: mayor granularidad, mayor control de accesoNextel S.A.
 
Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeJuan Carlos Rubio Pineda
 
Componentes Web y El Framework Polymer
Componentes Web y El Framework PolymerComponentes Web y El Framework Polymer
Componentes Web y El Framework PolymerJavier Vélez Reyes
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web ServicesGeneXus
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzadobrainybogota
 
Curso node.js
Curso node.js Curso node.js
Curso node.js Redradix
 
Taller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScriptTaller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScriptJavier Vélez Reyes
 
Principios de Diseño de Componentes Web
Principios de Diseño de Componentes WebPrincipios de Diseño de Componentes Web
Principios de Diseño de Componentes WebJavier Vélez Reyes
 
Arquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsArquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsJavier Vélez Reyes
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JSJavier Vélez Reyes
 
Programación Funcional en JavaScript
Programación Funcional en JavaScriptProgramación Funcional en JavaScript
Programación Funcional en JavaScriptJavier Vélez Reyes
 

Destacado (20)

Linked data: mayor granularidad, mayor control de acceso
Linked data: mayor granularidad, mayor control de accesoLinked data: mayor granularidad, mayor control de acceso
Linked data: mayor granularidad, mayor control de acceso
 
Xacml
XacmlXacml
Xacml
 
Introduccion Servicios Web
Introduccion Servicios WebIntroduccion Servicios Web
Introduccion Servicios Web
 
Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nube
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
El Proyecto Polymer
El Proyecto PolymerEl Proyecto Polymer
El Proyecto Polymer
 
Componentes Web y El Framework Polymer
Componentes Web y El Framework PolymerComponentes Web y El Framework Polymer
Componentes Web y El Framework Polymer
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web Services
 
Web services
Web servicesWeb services
Web services
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzado
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Servidor API REST con Node.js
Servidor API REST con Node.jsServidor API REST con Node.js
Servidor API REST con Node.js
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Taller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScriptTaller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScript
 
Principios de Diseño de Componentes Web
Principios de Diseño de Componentes WebPrincipios de Diseño de Componentes Web
Principios de Diseño de Componentes Web
 
Arquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsArquitecturas Reactivas de Streams
Arquitecturas Reactivas de Streams
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JS
 
Arquitectura Orientada a Servicios (SOA)
Arquitectura Orientada  a Servicios (SOA)Arquitectura Orientada  a Servicios (SOA)
Arquitectura Orientada a Servicios (SOA)
 
Programación Funcional en JavaScript
Programación Funcional en JavaScriptProgramación Funcional en JavaScript
Programación Funcional en JavaScript
 
Slade share
Slade shareSlade share
Slade share
 

Similar a 8/9 Curso JEE5, Soa, Web Services, ESB y XML

Seguridad Para Servicios Web
Seguridad Para Servicios WebSeguridad Para Servicios Web
Seguridad Para Servicios WebJose Selman
 
Protección a nivel de transporte
Protección a nivel de transporteProtección a nivel de transporte
Protección a nivel de transporteManuel Fdz
 
Certificados ssl loidy, katherine
Certificados ssl loidy, katherineCertificados ssl loidy, katherine
Certificados ssl loidy, katherineLoidy Chávez
 
Hypertext transfert protocol
Hypertext transfert protocolHypertext transfert protocol
Hypertext transfert protocolOscar Eduardo
 
Protocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSHProtocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSHAbner Torres
 
5 problemas del intercambio de archivos mediante scripts
5 problemas del intercambio de archivos mediante scripts5 problemas del intercambio de archivos mediante scripts
5 problemas del intercambio de archivos mediante scriptsHelpSystems
 
Protocolos ssl
Protocolos sslProtocolos ssl
Protocolos sslscrojas01
 
radelmy zapata
radelmy zapataradelmy zapata
radelmy zapataradelmy
 
6.owasp day costa_rica_didier
6.owasp day costa_rica_didier6.owasp day costa_rica_didier
6.owasp day costa_rica_didierDidier Fallas
 
protocolosssl-160116200111 (1).pptx.....
protocolosssl-160116200111 (1).pptx.....protocolosssl-160116200111 (1).pptx.....
protocolosssl-160116200111 (1).pptx.....BrayanYesidBecerraOs
 
Presentación David Kummers - eCommerce Day Bogotá 2015
Presentación David Kummers - eCommerce Day Bogotá 2015 Presentación David Kummers - eCommerce Day Bogotá 2015
Presentación David Kummers - eCommerce Day Bogotá 2015 eCommerce Institute
 
La problemática de la identificación de los participantes en las plataformas ...
La problemática de la identificación de los participantes en las plataformas ...La problemática de la identificación de los participantes en las plataformas ...
La problemática de la identificación de los participantes en las plataformas ...Jaime Sánchez
 

Similar a 8/9 Curso JEE5, Soa, Web Services, ESB y XML (20)

Seguridad Para Servicios Web
Seguridad Para Servicios WebSeguridad Para Servicios Web
Seguridad Para Servicios Web
 
Actividad5
Actividad5Actividad5
Actividad5
 
Protocolo SSL
Protocolo SSLProtocolo SSL
Protocolo SSL
 
Mft 45 minutos
Mft 45 minutosMft 45 minutos
Mft 45 minutos
 
SlingSecure Cifrado de voz movil Esponal
SlingSecure Cifrado de voz movil EsponalSlingSecure Cifrado de voz movil Esponal
SlingSecure Cifrado de voz movil Esponal
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Protección a nivel de transporte
Protección a nivel de transporteProtección a nivel de transporte
Protección a nivel de transporte
 
Certificados ssl loidy, katherine
Certificados ssl loidy, katherineCertificados ssl loidy, katherine
Certificados ssl loidy, katherine
 
Hypertext transfert protocol
Hypertext transfert protocolHypertext transfert protocol
Hypertext transfert protocol
 
Protocolos ssl
Protocolos sslProtocolos ssl
Protocolos ssl
 
Protocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSHProtocolo SSL, TLS Y SSH
Protocolo SSL, TLS Y SSH
 
5 problemas del intercambio de archivos mediante scripts
5 problemas del intercambio de archivos mediante scripts5 problemas del intercambio de archivos mediante scripts
5 problemas del intercambio de archivos mediante scripts
 
Protocolos ssl
Protocolos sslProtocolos ssl
Protocolos ssl
 
radelmy zapata
radelmy zapataradelmy zapata
radelmy zapata
 
6.owasp day costa_rica_didier
6.owasp day costa_rica_didier6.owasp day costa_rica_didier
6.owasp day costa_rica_didier
 
protocolosssl-160116200111 (1).pptx.....
protocolosssl-160116200111 (1).pptx.....protocolosssl-160116200111 (1).pptx.....
protocolosssl-160116200111 (1).pptx.....
 
Presentación David Kummers - eCommerce Day Bogotá 2015
Presentación David Kummers - eCommerce Day Bogotá 2015 Presentación David Kummers - eCommerce Day Bogotá 2015
Presentación David Kummers - eCommerce Day Bogotá 2015
 
La problemática de la identificación de los participantes en las plataformas ...
La problemática de la identificación de los participantes en las plataformas ...La problemática de la identificación de los participantes en las plataformas ...
La problemática de la identificación de los participantes en las plataformas ...
 
Mft 45 minutos
Mft 45 minutosMft 45 minutos
Mft 45 minutos
 
Presentacion 2017 eft server
Presentacion 2017 eft serverPresentacion 2017 eft server
Presentacion 2017 eft server
 

Más de Juan Carlos Rubio Pineda

Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de AndalucíaRedes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de AndalucíaJuan Carlos Rubio Pineda
 
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de HuelvaSupercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de HuelvaJuan Carlos Rubio Pineda
 
Seminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque ISeminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque IJuan Carlos Rubio Pineda
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Guadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NXGuadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NXJuan Carlos Rubio Pineda
 

Más de Juan Carlos Rubio Pineda (18)

Gdg 2013
Gdg 2013Gdg 2013
Gdg 2013
 
Anexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldoAnexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldo
 
Continuidad de sistemas
Continuidad de sistemasContinuidad de sistemas
Continuidad de sistemas
 
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de AndalucíaRedes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
 
Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)
 
Zentyal curso-ja
Zentyal curso-jaZentyal curso-ja
Zentyal curso-ja
 
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de HuelvaSupercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
 
Seminario metodologías agiles bloque II
Seminario metodologías agiles bloque IISeminario metodologías agiles bloque II
Seminario metodologías agiles bloque II
 
Seminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque ISeminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque I
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML
 
2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML
 
9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML
 
5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML5/9 Curso JEE5, Soa, Web Services, ESB y XML
5/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Curso Ejb3
 
Guadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NXGuadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NX
 
Exportador S I C A C V N 1
Exportador S I C A  C V N 1Exportador S I C A  C V N 1
Exportador S I C A C V N 1
 
Sistema de colas Condor en CICA
Sistema de colas Condor en CICASistema de colas Condor en CICA
Sistema de colas Condor en CICA
 

Último

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 

Último (20)

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 

8/9 Curso JEE5, Soa, Web Services, ESB y XML

  • 1. SEGURIDAD EN XML Y WEB SERVICES
  • 2. • Índice de contenidos − Introducción: • ¿Qué es seguridad? • ¿Por qué crear esquemas de seguridad para web services? − Iniciativas basadas en XML para seguridad en WS • Firma XML (XML signature) • Encriptación XML • XKMS • XACML • SAML • WS-security • ¿Cómo trabajan juntas?
  • 3. Introducción • ¿Qué es seguridad? Conceptos básicos − Confidencialidad: ¿Pueden los ojos cotillas verlo? − Autenticación: ¿Eres quien dices ser? − Confianza: ¿Me fío de trabajar contigo? − No repudio: ¿Puedes decir: “Yo no he sido” y mentir? − Integridad: ¿Me ha llegado alterado o no? − Autorización: ¿Tienes permiso para tenerlo? − Auditoría: ¿Puedes probar lo que ha ocurrido sin tener que llamar a los de C.S.I.?
  • 4. ¿Por qué definir nuevos esquemas de seguridad para web services?
  • 5. Esquemas de seguridad • ¿Por qué definir nuevos esquemas de seguridad para Web Services? A día de hoy… − La interacción se centra más “sobre internet” (frente a un escenario “dentro de la intranet”) − Interacción entre miembros que previamente no habían establecido una relación (mutuamente desconocidos). − Interacción programa a programa (frente a interacción humano a programa) − Interacción más dinámica (frente a interacción estática) − El número de servicios, proveedores y consumidores se incrementa.
  • 6. Esquemas de seguridad • Actualidad de los esquemas de seguridad de web services − SSL/TLS/HTTPS • Nivel de seguridad de transporte (frente a nivel de seguridad de mensaje) • Seguridad únicamente punto-a-punto; no se lleva a cabo seguridad de mensajes extremo-a-extremo multisalto • Seguridad sólo cuando los datos viajan por el cable. No hay seguridad de datos fuera del cable. • HTTPS no tiene soporte a no repudio. • HTTP podría no ser el único protocolo de transporte usado. • No hay medios de firmar o encriptar elementos.
  • 7. Esquemas de seguridad • ¿Puede el modelo actual de seguridad en web services controlar los web services? − La técnica habitual es HTTPS usando SSL • Comunicación punto a punto encriptada temporalmente. • Transient point-to-point encrypted communication − Los WS pueden usar y usan esta técnica, pero es insuficiente en algunos aspectos • No es suficientemente granular; LO ENCRIPTA TODO. • Es inflexible respecto al enrutamiento; funciona únicamente punto-a-punto • No ofrece posibilidad a auditar lo que está pasando • No puede evitarse el repudio; los datos no se firman
  • 8. XML y estándares de seguridad en Web Services
  • 9. Estándares en seguridad WS • Estándares
  • 10. Estándares en seguridad WS • XML y esquemas de seguridad WS − XML Digital Signature − XML Encryption − XKMS (XML Key Management Specification) − XACML (eXtensible Access Control Markup Language) − SAML (Secure Assertion Markup Language) − WS-Security − Identity Management & Liberty Project
  • 12. XML Signature • ¿Qué es XML Digital Signature (firma digital XML)? − Autenticación, integridad de datos y no repudio − Esfuerzo conjunto de W3C/IETF − Sintaxis XML para representar firma de recursos web − Procedimientos para calcular y verificar esas firmas − Validar por clave no está entre sus objetivos.
  • 13. XML Signature • ¿Por qué XML Signature? • Muy flexible; puede soportar diversos conjuntos de modelos de transacción de intenet. − Puede firmar elementos individuales de un documento XML − Puede firmar múltiples elementos − Puede firmar tanto objetos locales como remotos. − Permite firmas diferidas que se aplican a un elemento remoto − Contenido referenciado por URIs − Puede firmar tanto contenido XML como contenido no XML − Permite múltiples niveles de firma (diferentes semánticas) para el mismo contenido. • Firma, co-firma (firma conjunta), testigo, notario, etc.
  • 14. XML Signature • Formularios de firma XML − Enveloped (ensobrado) − Enveloping (más o menos “envolvente”) − Detached (más o menos “diferida”)
  • 15. XML Signature • XML Signature de tipo Enveloped <doc Id="myID"> <myElement> ... </myElement> <Signature> La firma está “ensobrada” dentro ... del contenido que ha sido firmado <Reference URI="#myID"/> ... </Signature> </doc>
  • 16. XML Signature • XML Signature de tipo Enveloping (envolvente) <Signature> ... <Reference URI="#myRefObjectID" ... <Object Id="myRefObjectID"> <doc> La firma envuelve el contenido <myElement> que hay que firmar. ... </myElement> ... </doc> </Object> </Signature>
  • 17. XML Signature • XML Signature de tip Detached (diferida). <Signature> ... <Reference URI="http://www.buy.com/books/purchaseWS"/> ... </Signature> <signature> es externo al contenido a firmar.
  • 18. XML Signature • Ejemplo de una compra firmada <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2000/..." /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference URI="#PurchaseOrder"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>qZk+nkcGcWq6piVxeFdcbJzQ2JO=</DigestValue> </Reference> </SignedInfo> <SignatureValue>IWijxQjUrcXBYc0ei4QxjWo9Kg8Dep9tlWoT4SdeRT87GH03dgh </SignatureValue> <KeyInfo> <X509Data> <X509SubjectName>CN=Alice Smith, STREET=742 Park Avenue, L=New York, ST=NY, C=US</X509SubjectName> </X509Data> </KeyInfo> </Signature>
  • 19. ENCRIPTACIÓN XML » XML Encryption
  • 20. Encriptación XML • ¿Qué es XML Encryption (encriptación XML)? − Privacidad en los datos (confidencialidad) − Define: • Sintaxis XML para datos encriptados • Cómo encriptar/desencriptar datos • Cómo encriptar ciertas partes de un documento.
  • 21. Encriptación XML • Encriptación XML versus SSL − SSL encripta todos los datos transmitidos a través de un canal SSL − La encriptación XML puede encriptar porciones de datos de forma selectiva. • Por ejemplo, un elemento específico dentro de un documento XML
  • 22. Encriptación XML • Ejemplo de encriptación XML <purchaseOrder> <name>Alice Smith</name> <address> ... </address> <EncryptedData xmlns='http://www.w3.org/2000/11/temp-xmlenc'> <EncryptionMethod Algorithm="urn:nist-gov:tripledes-ede-cbc"> <s0:IV xmlns:s0='http://somens'>ABCD</s0:IV> </EncryptionMethod> <KeyInfo xmlns='http://www.w3.org/2000/09/xmldsig#'> <KeyName>SharedKey</KeyName> </KeyInfo> <CipherData>A23B45C56</CipherData> </EncryptedData> <prodNumber>8a32gh19908</prodNumber> <quantity>1</quantity> </purchaseOrder>
  • 23. Encriptación XML • Apache tiene un framework bastante bueno para hacer encriptación de XML: xmlsec • Depende de xalan (procesador XSLT, para transformar un documento XML en HTML o en otro XML).
  • 24. XKMS • XML Key Management Specification
  • 25. XKMS • ¿Qué es XKMS? − Define un protocolo entre un cliente XKMS y un servidor XKMS para llevar a cabo operaciones de PKI • public key registration (registro de clave pública) • public key validation (validación de clave pública) • public key discovery (descubrimiento de clave pública) • public key revocation (recocación de clave pública) − Un servidor XKMS proporciona un servicio confiable (trust service) en la forma de un Web Service − Se usa tanto con firma digital XML (XML signature) como con encriptación XML (XML Encryption)
  • 26. XKMS • ¿Por qué XKMS? − PKI es muy importante para los Web Services y el comercio electrónico. − Las operaciones de PKI son muy costosas para dispositivos pequeños. • XKMS reduce el trabajo de procesamiento desplazándolo a un servidor XKMS − Las operaciones de PKI son demasiado complejas para muchas aplicaciones. • XKMS facilita la integración PKI desplazando la complejidad de las operaciones de PKI a un servidor XKMS
  • 27. XKMS • Especificaciones XKMS − XKISS: XML Key Information Service Spec. • Define un protocolo para la validación de claves públicas − XKRSS: XML Key Registration Service Spec. • Define un protocolo para registro, revocación y recuperación de claves públicas
  • 28. XKMS • Implementaciones Java de XKMS − Verisign: Trust Services Integration Kit • www.xmltrustcenter.org/developer/verisign/tsi − Entrust: XKMS toolkit • xkms.entrust.com/xkms/ − Phaos • www.phaos.com/products/xkms/xkms.html
  • 29. XACML • eXtensible Access Control Markup Language
  • 30. XACML • ¿Qué es XACML? − Define el núcleo del schema (esquema) y namespace para las políticas de autorización en XML: • Se usa contra elementos de un documento XML • Es extensible − Muy cercanos al desarrollo SAML • Los Policy Decision Points, PDPs (puntos de política de decisión) implicados en SAML podrían consultar políticas codificadas en XACML para determinar si se permite el acceso al recurso.
  • 31. XACML • ¿Por qué XACML? − Estandarizar lenguages de control de acceso en XML − Lenguage extensible con semánticas flexibles − Costes menores • No es necesario desarrollar lenguajes específicos • No es necesario escribir políticas en diferentes lenguages − Más simple • Los administradores sólo necesitan conocer un lenguage − Composición de políticas • Se pueden combinar las políticas escritas por distintas partes.
  • 32. XACML • Ejemplo: − Este ejemplo muestra un escenario en el que un usuario intenta acceder a una página web. − El código proporcionado incluye • Solicitud (request) • Política (policy) • Respuesta (response) − El usuario efectúa una solicitud en el que proporciona su identidad (código de usuario) y el grupo al que pertenece, el recurso al que quiere acceder y la acción que quiere efectuar sobre el recurso. − La política definida afecta a cualquiera que intente cualquier acción sobre el recurso.
  • 33. XACML • La solicitud (request) <Request> <Subject> <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" DataType="urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name"> <AttributeValue>seth@users.example.com</AttributeValue> </Attribute> <Attribute AttributeId="group" DataType="http://www.w3.org/2001/XMLSchema#string" Issuer="admin@users.example.com"> <AttributeValue>developers</AttributeValue> </Attribute> </Subject> <Resource> <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" DataType="http://www.w3.org/2001/XMLSchema#anyURI"> <AttributeValue>http://server.example.com/code/docs/developer-guide.html</AttributeValue> </Attribute> </Resource> <Action> <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" DataType="http://www.w3.org/2001/XMLSchema#string"> <AttributeValue>read</AttributeValue> </Attribute> </Action> </Request>
  • 34. XACML • La policy (parte I): <Policy PolicyId="ExamplePolicy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:permit-overrides"> <Target> <Subjects> <AnySubject/> </Subjects> <Resources> <Resource> <ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal"> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">http://server/devguide.html</AttributeValue> <ResourceAttributeDesignator DataType="http://www.w3.org/2001/XMLSchema#anyURI" AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"/> </ResourceMatch> </Resource> </Resources> <Actions> <AnyAction/> </Actions> </Target> …..
  • 35. XACML • La policy (parte II): <Rule RuleId="ReadRule" Effect="Permit"> <Target> <Subjects> <AnySubject/> </Subjects> <Resources> <AnyResource/> </Resources> <Actions> <Action> <ActionMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue> <ActionAttributeDesignator DataType="http://www.w3.org/2001/XMLSchema#string" AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"/> </ActionMatch> </Action> </Actions> </Target> <Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only"> <SubjectAttributeDesignator DataType="http://www.w3.org/2001/XMLSchema#string" AttributeId="group"/> </Apply> <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">developers</AttributeValue> </Condition> </Rule> </Policy>.
  • 36. XACML • La respuesta: <Response> <Result> <Decision>Permit</Decision> <Status> <StatusCode Value="urn:oasis:names:tc:xacml:1.0:status:ok"/> </Status> </Result> </Response>
  • 37. SAML − Security Assertion Markup Language
  • 38. SAML • ¿Qué es SAML? − Define un framework XML para intercambiar información de autenticación y autorización. − Existen varias declaraciones (assertion) XML: • Credenciales, autenticación, atributo, autorización, etc. • Protocolo de tipo Request&Response − Permite habilitar Single-Sign-On (SSO) − Es un estándar OASIS
  • 39. SAML • ¿Por qué SAML? − Están apareciendo estándares para numerosas facetas de comercio colaborativo, como • Transacciones de negocio (Por Ejemplo ebXML) • Interacción de software (PEj.- SOAP) − Pero no está estandarizado un medio para comunicar esas propiedades de seguridad • Pobre acoplamiento entre componentes
  • 40. SAML • Casos de uso para compartir información de seguridad a través de SAML − SAML ha desarrollado en la línea de tres “casos de uso” para acometer sus diseños y requerimientos: • Single Sign-on -SSO- (Autenticación unificada) • Transacción distribuída • Servicio de autorización
  • 41. SAML • Escenario hipotético de SSO: − A los administradores del domino juntadeandalucia.es se les permite el acceso a juntaex.es sin hacer relogin. Lo recíproco también se cumpliría.
  • 42. SAML • Escenario de transacción distribuída. − Un comprador de un coche, contrata un seguro de automóvil en seguros.com , que está afiliada a coches.com.
  • 43. SAML • Escenario de servicio de autenticación − Un empleado de la Junta de Andalucía (JA) se loga directamente en guadalinex.org que efectúa su propia autorización contra juntadeandalucia.es
  • 44. SAML • SAML − Es un framework basado en XML para intercambiar información XML • Declaraciones de seguridad (security assertions) codificadas en XML • Protocolo request/response codificado en XML • Reglas de uso de assertions con frameworks estándares de mensajería y transporte.
  • 45. SAML • SAML Assertions − Las assertions son declaraciones o descripciones de un “hecho”, asociados a “alguien”. − Las assertions SAML son conjuntos de uno o más de tres clases de “sentencia” (statement) acerca de un “sujeto” (subject). • Autenticación (authentication statement) • Atributo (attibute statement) • Autorización (authorization statement)
  • 46. SAML • Authentication statement − Un authority assert declara que: • El sujeto S ha sido autenticado • Con las intenciones I • En la hora H − Diseñado con el objetivo de usarlo en servicios de Single Sign-On.
  • 47. SAML • Ejemplo de assertion con un authentication statement: <saml:Assertion …> <saml:AuthenticationStatement AuthenticationMethod=“password” AuthenticationInstant=“2001-12-03T10:02:00Z”> <saml:Subject> <saml:NameIdentifier SecurityDomain=“sun.com” Name=“Sang” /> <saml:ConfirmationMethod> http://…core-25/sender-vouches </saml:ConfirmationMethod> </saml:Subject> </saml:AuthenticationStatement> </saml:Assertion>
  • 48. SAML • Ejemplo de assertion con dos attribute statement <saml:Assertion …> <saml:AttributeStatement> <saml:Subject>..Sang..</saml:Subject> <saml:Attribute AttributeName=“PaidStatus” AttributeNamespace=“http://smithco.com”> <saml:AttributeValue> PaidUp </saml:AttributeValue> </saml:Attribute> <saml:Attribute AttributeName=“CreditLimit” AttributeNamespace=“http://smithco.com”> <saml:AttributeValue> <my:amount currency=“USD”>500.00</my:amount> </saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion>
  • 49. SAML • Authorization statement − Una autoridad decide: • Si conceder o no acceso a la request del subject S • Para el acceso de tipo A al recurso R • Proporcionando la credencial E − El sujeto (subject) puede ser un humano o un programa − El recurso puede ser una página web o un web service.
  • 50. SAML • Ejemplo de assertion con authorization statement <saml:Assertion …> <saml:AuthorizationStatement Decision=“Permit” Resource=“http://jonesco.com/rpt_12345.html”> <saml:Subject>…</saml:Subject> <saml:Actions ActionNamespace=“http://…core-25/rwedc”> <saml:Action>Read</saml:Action> </saml:Actions> </saml:AuthorizationStatement> </saml:Assertion>
  • 52. WS-Security • Especificación WS-Security − Conjunto de extensiones SOAP de mensajería segura extremo-a-extremo • Esquemas de seguridad en el nivel de mensaje − Se firman y encriptan mensajes SOAP añadiendo tokens de seguridad a los mensajes SOAP • Cualquier combinación de partes de mensaje: bloques de cabecera, cuerpo, adjuntos… − Proporciona • Integridad • Autenticación • Privacidad
  • 53. WS-Security • WS-Security − Múltiples modelos de seguridad • username/password (usuario/contraseña) • Certificate (certificado) − Múltiples tecnologías de seguridad • Kerberos • PKI − Múltiples tipos de tokens de seguridad • Kerberos ticket • X509 certificate • SAML assertions
  • 54. WS-Security • Ejemplo de mensaje SOAP con un token username <S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext"> <S:Header> ... <wsse:Security> <wsse:UsernameToken> <wsse:Username>cursoSOA</wsse:Username> <wsse:Password>contraseña</wsse:Password> </wsse:UsernameToken> </wsse:Security> ... </S:Header> ... </S:Envelope>
  • 55. Uniéndolo todo: cómo hacer que estas tecnologías trabajen juntas
  • 56. Uniéndolo todo • Las opciones más prácticas: − SAML y XACML • XACML puede usarse para definir control de acceso/políticas sobre las bases de controlar solicitudes assertion SAML − SAML y WS-Security • Las assertions SAML pueden transportarse como tokens de seguridad definidos en WS-Security.
  • 58. Recursos • Recursos: − W3C XML Digital Signature www.w3.org/Signature/ − W3C XML Encryption www.w3.org/Encryption/ − XKMS www.w3.org/TR/xkms/ − XACML www.oasis-open.org/committees/xacml/ − SAML oasis-open.org/committees/security
  • 59. FIN