XML Security: Standard Que Permite Encriptar E/Ou Assinar Documentos Em XML
Total Page:16
File Type:pdf, Size:1020Kb
Sistemas de Gestão de Identidade Capítulo IV José Rogado [email protected] Universidade Lusófona Mestrado Eng.ª Informática e Sistemas de Informação 2015/16 Tecnologias de Suporte à Federação . Os requisitos de segurança dos ambientes federativos são mais complexos do que os dos ambiente Cliente/Servidor tradicionalmente usados em computação distribuída e na Web . A implementação de um determinado serviço pode ser realizada por várias entidades através de múltiplas interacções • A segurança deve persistir através das várias mensagens • A identificação do end-user pode (ou não) ser propagada até ao destinatário • Cada entidade deve poder introduzir ou retirar as suas credenciais específicas utilizadas na comunicação com os seus parceiros directos . Assim são necessárias tecnologias que permitam às diversas entidades envolvidas gerir de forma flexível a propagação dos contextos de confiança estabelecidos entre elas 2015/16 Gestão de Identidade e Aplicações 2 Federativas Contexto de Segurança Composto Contexto de Segurança Ponto-a-Ponto Contexto de Segurança 1 Contexto de Segurança 2 SOAP Web Web Service Browser Platform SSL/HTTPS Server Appl. Data Server Domínio A Domínio B O contexto de segurança entre um utilizador e um Service Provider pode ser composto por múltiplos sub-contextos intermédios 2015/16 Gestão de Identidade e Aplicações 3 Federativas Emergência de Novos Paradigmas . Assistimos hoje em dia a uma enorme expansão dos domínio de abrangência da Gestão de Identidade • Big Data • Internet of Things • Fog Computing . www.cisco.com/c/en/us/solutions/internet-of-things/iot-fog-computing.html . Os modelos distribuídos clássicos não conseguem escalar • Cliente Servidor introduz pontos únicos de falha . Evolução dos modelos Peer-to-Peer • Conceito de swarm (enxame): nós de computação colaborativos que implementam colectivamente serviços complexos . Exemplos • Namecoin (cf. Bitcoin): https://namecoin.info • NameID: https://nameid.org • Interplanetary File System: https://ipfs.io 2015/16 Gestão de Identidade e Aplicações 4 Federativas Standards de Federação . Emergência de standards suportados pela W3C, OASIS e fornecedores de plataformas de middleware • Para permitir a gestão de múltiplos contextos de segurança embebidos na estrutura dos dados e das mensagens . XML Security: standard que permite encriptar e/ou assinar documentos em XML . WS-Security: standard que permite encriptar e assinar as mensagens SOAP (headers e body), ou transmitir credenciais. • Para permitir trocar informações sobre a autenticação e autorização de utilizadores entre Identity e Service Providers . SAML (Security Assertion Markup Language): standard que permite propagar condições de autenticação e autorização entre entidades federadas . Outros standards propostos por organizações e software houses para criar ambientes de autenticação federados • Liberty Alliance (Boeing, SUN, HP, Nokia, ...) . Agora designada por Kantara Initiative (https://kantarainitiative.org) • WS-* (IBM-Microsoft) 2015/16 Gestão de Identidade e Aplicações 5 Federativas XML Security . Standard utilizado maioritariamente para permitir a interoperabilidade e propagação de credenciais de segurança entre os vários intervenientes em Federações e Web Services. • Segurança ponto a ponto • Segurança entre intermediários • O facto do SOAP ser baseado em XML permite a generalização desta tecnologia . XML Encryption • Recomendação de 2002 da W3C (www.w3.org/Encryption) • Permite a encriptação de todo ou parte de um documento XML . XML Signature • Recomendação de 2008 da W3C (www.w3.org/Signature) • Permite a assinatura digital de um documento em XML 2015/16 Gestão de Identidade e Aplicações 6 Federativas XML Encryption - estrutura O tipo de dados encriptados pode ser de diferentes tipos, incluindo estruturas XML O algoritmo de encriptação utilizado, geralmente de chave simétrica Informação opcional sobre a chave de encriptação utilizada, que pode ser enviada encriptada ou obtida por referência Os dados encriptados podem ser incluídos na estrutura ou referenciados Informações adicionais sobre a encriptação podem ser incluídas (timestamp, encryption device, ...) Especificação W3C: www.w3.org/TR/xmlenc-core 2015/16 Gestão de Identidade e Aplicações 7 Federativas XML Encryption - exemplo Dados a encriptar: um elemento XML 2015/16 Gestão de Identidade e Aplicações 8 Federativas XML Encryption – exemplo 1 Dados Encriptados: um elemento XML substituído pelo seu valor encriptado 2015/16 Gestão de Identidade e Aplicações 9 Federativas XML Encryption – exemplo 2 Dados Encriptados: Conteúdo de um elemento específico da estrutura XML A encriptação XML permite proteger selectivamente partes específicas de um documento ou mensagem 2015/16 Gestão de Identidade e Aplicações 10 Federativas XML Signature - estrutura Especificação W3C: www.w3.org/TR/xmldsig-core 2015/16 Gestão de Identidade e Aplicações 11 Federativas XML Signature - exemplo 1 Informação sobre o método de assinatura Neste caso os dados assinados estão contidos no documento XML (enveloped) 2015/16 Gestão de Identidade e Aplicações 12 Federativas XML Signature - exemplo 2 Informação sobre o método de assinatura Certificado X509 identifica o assinante A assinatura refere-se a um documento através do seu URI (detached) 2015/16 Gestão de Identidade e Aplicações 13 Federativas WS-Security . Web Services Security: especificação desenvolvida pela IBM, Microsoft e VeriSign • msdn2.microsoft.com/en-us/library/ms977312.aspx . Agora suportada pelo OASIS Web Services Security (WSS) Technical Committee. • www.oasis-open.org/committees/wss . Define extensões de segurança ao SOAP para assegurar integridade de dados e confidencialidade das mensagens • Utilizando XML signature e XML encryption . Inserção de Security Headers na mensagem, permitindo: • Envio de Security Tokens . Certificados X.509 . Tickets Kerberos . Assertions SAML • Encriptação e Assinatura de partes seleccionadas do message body . Com base nos artefactos contidos nos Security Tokens 2015/16 Gestão de Identidade e Aplicações 14 Federativas WS-Security - exemplo Security Token Security Header 2015/16 Gestão de Identidade e Aplicações 15 Federativas Standards de Federação – SAML . SAML - Security Assertions Markup Language • Definida pelo OASIS SSTC (IBM, SUN, AOL, Boeing, Nokia, ...) . A versão 1.0 aprovado como Standard em Novembro de 2002. • Utilizada com enorme sucesso em inúmeros plataformas de SSO, autenticação e standards de segurança (WS-Security, Liberty, ...) . A versão SAML 2.0 (Março 2005) introduz funcionalidades essenciais para a federação: • Definição de novos perfis (Identity Provider, Service Provider, ...) • Utilização de pseudónimos dinâmicos para designar as identidades • Gestão de fim de sessão (single-logout) • Federação avançada, com suporte de: . IdP Discovery . Gestão de Atributos . Esta versão permite a convergência com outros standards de federação (i.e.: Liberty Alliance). 2015/16 Gestão de Identidade e Aplicações 16 Federativas Componentes SAML . O SAML é constituído por um conjunto de componentes que em conjunto permitem transferir identidade, autenticação, atributos e autorização entre entidades que estabeleceram uma relação de confiança Source: SAML V2.0 Technical Overview - OASIS 2015/16 Gestão de Identidade e Aplicações 17 Federativas Assertions . Uma Assertion é um documento XML com uma estrutura própria, que pode ser veículada por HTTP ou SOAP . As assertions permitem veicular declarações (statements) sobre sujeitos, que podem ser de vários tipos: • <AuthnStatement> declaração sobre a autenticação realizada por um sujeito • <AttributeStatement> declaração sobre os atributos de um sujeito • <AuthzDecisionStatement> declaração sobre decisões relacionadas com possíveis acções que o sujeito pode realizar . As assertions podem ser assinadas e ser parcial ou totalmente encriptadas . Utilizando XML Signature e XML Encryption . Pode conter uma ou várias chaves ou certificados digitais 2015/16 Gestão de Identidade e Aplicações 18 Federativas Estrutura Genérica de uma Asserção Identificador da Asserção Identificador do IdP Validade da Asserção Restrições Características e instante da autenticação Correspondência entre os perfis no IdP e no SP Assinatura da Asserção com a CP do issuer 2015/16 Gestão de Identidade e Aplicações 19 Federativas Exemplo Source: SAML V2.0 Basics – Eve Maler (SUN) 2015/16 Gestão de Identidade e Aplicações 20 Federativas Protocolos SAML . Conjunto de protocolos de tipo Request/Response que governam as interacções entre as várias entidades SAML • Authentication Request Protocol Conjunto de interacções que permitem obter declarações de identidade e opcionalmente declarações de atributos • Assertion Query and Request Protocol . Protocolo para obtenção de asserções • Artifact Resolution Protocol . Mecanismo para passar mensagens através de referências, designadas por artifacts . Por exemplo, uma forma de obter uma assertion com base numa referência • Name Identifier Mapping Protocol . Permite mapear dois identicadores SAML entre domínios distintos • Name Identifier Management Protocol . Permite mudar os valores e formatos dos identificadores associados aos sujeitos • Single Logout Protocol . Define um mecanismo para permitir terminar de forma simultânea todas as sessões associadas com um determinado sujeito 2015/16 Gestão de Identidade e Aplicações 21 Federativas Bindings . Os bindings determinam a forma como as mensagens dos protocolos SAML são veiculadas pelos protocolos de transporte • HTTP Redirect Binding: . Utilização da directiva