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. . 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, ...) . 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: • declaração sobre a autenticação realizada por um sujeito • declaração sobre os atributos de um sujeito • 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 redirect HTTP (302) para transportar mensagens SAML • HTTP Post Binding: . Transporte de mensagens SAML no conteúdo de uma form HTML • HTTP Artifact Binding: . Define a forma de propagar um artifact usando forms ou URL query strings • SAML SOAP Binding: . Utilização do protocolo SOAP para veicular mensagens SAML • SAML URI Binding: . Permite identificar uma assertion através de um URI

2015/16 Gestão de Identidade e Aplicações 22 Federativas Profiles

. Definem a utilização dos vários componentes do SAML (asssertions, protocolos e bindings) para estabelecer as interacções entre as entidades envolvidas em vários cenários possíveis • SSO Profile: . Define a utilização do Authentication Request Protocol para implementar Web SSO • Identity Provider Discovery Profile: . Define uma forma para os Service Providers descobrirem o Identity Provider associado a um dado utilizador • Single Logout Profile: . Define a implementação do Single Logout Protocol com os vários bindings possíveis • Assertion Query/Request Profile • Artifact Resolution Profile

2015/16 Gestão de Identidade e Aplicações 23 Federativas SSO Profile w/ Redirect/POST Bindings

Source: SAML V2.0 Technical Overview - OASIS

2015/16 Gestão de Identidade e Aplicações 24 Federativas SSO Profile w/ Redirect/Artifact Bindings

Source: SAML V2.0 Technical Overview - OASIS

2015/16 Gestão de Identidade e Aplicações 25 Federativas Browser SSO Profile (Redirect/Artifact)

A asserção é enviada do IdP para o SdP em resposta ao envio do artifact

2015/16 Gestão de Identidade e Aplicações 27 Federativas Browser SSO Profile (Redirect/POST)

A asserção passa do IdP para o SP transitando pelo User Agent

2015/16 Gestão de Identidade e Aplicações 28 Federativas Referências

. OASIS: Organization for the Advancement of Structured Information Standards • www.oasis.org . XML Security Library • www.aleksey.com/xmlsec . SAML • http://identitymeme.org/doc/draft-hodges-learning-saml-00.html • http://saml.xml.org/saml-specifications . Shibboleth • http://shibboleth.internet2.edu . Web Services Security • msdn2.microsoft.com/en-us/library/ms977312.aspx . Liberty Federation • www.projectliberty.org • https://kantarainitiative.org/ . PingIdentity • www.pingidentity.com

2015/16 Gestão de Identidade e Aplicações 29 Federativas