MACA: uma solução para autenticação e autorização de usuários corporativos baseada no controle de acesso baseado em papéis Gustavo Motta Departamento de Informática-UFPB [email protected] Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 1/50000 Sumário ► O problema ► A solução MACA - Middleware de Autenticação e Controle de Acesso Case de políticas administrativas para um grande hospital Principais vantagens ► Uso industrial do MACA ► Licenciamento Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 2 O problema ► Revolução da TI e das comunicações Disponibilidade em larga escala de informações e serviços computacionais Problema ► Restringir o acesso para preservar a privacidade de indivíduos e organizações Dilema Permissividade Severidade Quais políticas adotar? ► Aplicações corporativas emergentes Tecnologias web – alta acessibilidade Integram aplicações legadas heterogêneas Demandam controle de acesso com granularidade fina Usuários com diferentes funções em múltiplas unidades organizacionais Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 3 O problema ► Aplicações corporativas emergentes Soluções próprias e estanques de autenticação e controle de acesso Privilégios de acesso ligados diretamente a usuários ou a grupos ► Conseqüências Custo elevado para administrar a concessão/revogação de autorizações Maior risco de usuários manterem/acumularem privilégios indevidos Necessidade de conhecimentos técnicos, sem relação com o vocabulário da cultura organizacional, para revogação/concessão de autorizações Dificuldade para impor políticas corporativas de autenticação e autorização de forma unificada e coerente, independente de aplicações e plataformas Surgimento de situações de conflitos de interesses por concentração excessiva de poder num único indivíduo Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 4 A solução MACA ► Objetivo do MACA Prover os serviços de autenticação de usuário e de autorização de acesso para aplicações legadas ou em desenvolvimento, independente de plataforma e de linguagem de programação, através de uma API padronizada ► Características Modelo de autorização contextual Estende o modelo de referência para o controle de acesso baseado em papéis (CABP) proposto pelo NIST Arquitetura de software LDAP Recife, 30 de janeiro de 2006 Security Services (C) 2006 Gustavo Motta 5 A solução MACA ► Controle de acesso baseado em papéis Acesso regulado segundo os papéis exercidos ► Um papel denota uma função organizacional Suporta o princípio da necessidade de saber/fazer ► Um usuário somente deve ter os privilégios necessários para desempenhar suas funções Separação de responsabilidades - SR ► Distribui ► Reduz tarefas críticas por múltiplos usuários situações de conflitos de interesses Favorece a administração da política de acesso ► Visão organizacional Politicamente neutro Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 6 A solução MACA Restrições de SR hp Hierarquia de Papéis usuários up ops Operações papéis pa obs Objetos sessões autorizações usuário papéis Relacionamento n para m Relacionamento 1 para m Esquema do modelo de referência para o CABP do NIST Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 7 A solução MACA ► Case de políticas administrativas para um grande hospital Políticas de Acesso Administrativas ► Definem diretrizes de alto nível que determinam como o acesso às funções administrativas do CABP é controlado Criação e manutenção de contas de usuários, de papéis, de autorizações e respectivos relacionamentos ► Administração estritamente centralizada é problemática Poderes concentrados num único indivíduo ► Abusos de autoridade, fraudes e conflitos de interesses Inviabilizada na prática por equipe centralizada de administradores ► Centenas ou até mesmo milhares de papéis ► Dezenas de milhares ou até mesmo centenas de milhares de usuários ►É necessário descentralizar a autoridade e a responsabilidade administrativas por múltiplos usuários Evitar a existência do superusuário Tornar exeqüível a administração da política de acesso Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 8 A solução MACA CABP AD– executar Usuário– criar, ler, alterar, excluir, criarNovaSenha Papel – criar, ler, alterar, excluir Usuário-Papel – vincular, desvincular Papel-Autorização – vincular, desvincular Autorização – criar, ler, alterar, excluir Objeto – criar, ler, alterar, excluir Operação – criar, ler, alterar, excluir Funções administrativas básicas para o CABP disponíveis no MACA Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 9 A solução MACA ► Case de políticas administrativas para um grande hospital Hospital de Clínicas Alternativa para descentralização e autonomia da administração de políticas de acesso ► Descentralizar Instituto do Instituto de Neurologia Coração Criação e manutenção de contas Vinculação/desvinculação de papéis para usuários A autonomia é limitada Divisão de Clínica Cardiológica Divisão de Cirurgia Divisão de Clínica Divisão de ► Cada unidade organizacional Neurológica só pode administrar as contas e Cardiovascular Neurocirurgia respectivos papéis de seus próprios usuários ► Hierarquia de acesso com abrangência limitada pela estrutura Serviço de organizacional Serviço de Eletrocardiografia Neuropediatria ► Centralizar Criação e manutenção de papéis, de objetos e autorizações Serviço de Vinculação/desvinculação Hemodinâmica Recife, 30 de janeiro de 2006 Serviço de de autorizações para papéis Neuroanatomia (C) 2006 Gustavo Motta 10 A solução MACA ► Case de políticas administrativas para um grande hospital Uso do MACA para executar políticas administrativas para o CABP ► Papéis administrativos usados para controlar e distribuir a autoridade e a responsabilidade na execução das funções administrativas do CABP numa organização Administrador do CABP Administrador de Usuário Administrador de Contas Criador de Contas Vinculador de Papéis Administrador de Help Desk Administrador de Papel exp-abs(atributos){ exp-abs(login, atributos){ papel){ +, criar, Autorização, fraca, +, ler, Autorização, +, criar, executar, ler, criarNovaSenha, Usuário, Papel, CABPfraca, FA, Usuário, fraca. +, ler, fraca. Papel, fraca, fraca. usuárioCtx.login != login & organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, +, alterar, Autorização, fraca, +, excluir, Autorização, fraca, organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, macaCtx.valorAtributo(atributos, “lotação”) “lotação”) & +, ler, Papel,macaCtx.valorAtributo(login, fraca, (usuárioCtx.login }, criar, Usuário, !=forte, login) &macaCtx.valorAtributo(atributos, “lotação”) & +, alterar, Papel, +,!organogramaCtx.TipoLotaçãoAbaixoOuIgualA(“divisão”, criar, Objeto, fraca, +,fraca, ler, Objeto, fraca, organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, +, Objeto, fraca, +, excluir, Objeto, fraca, exp-abs(login, papel){ organogramaCtx.TipoLotação(usuárioCtx.lotação)) macaCtx.valorAtributo(login, “lotação”)& +, alterar, excluir, Papel, fraca. usuárioCtx.login (!organogramaCtx.TipoLotação(usuárioCtx.lotação) }, alterar, Usuário, != login fraca,& = “instituto” | organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, (macaCtx.PapelAbaixoOuIgualA(“Administrador de Contas”, papel) | +, criar, Operação, fraca, +, ler, Operação, fraca, exp-abs(login){ (macaCtx.PapelAbaixoOuIgualA(“Usuário”, macaCtx.valorAtributo(login, papel) & “lotação”) +, alterar, Operação, fraca, +, excluir, Operação, fraca, usuárioCtx.login }, desvincular, !macaCtx.PapelAbaixoOuIgualA(“Médico Usuário-Papel, != login & forte, Auditor”, papel)))) organogramaCtx.LotaçãoAbaixoOuIgualA(usuárioCtx.lotação, }, vincular, Usuário-Papel, forte, +, vincular, Papel-Autorização, fraca, , vincular, Usuário-Papel, forte. macaCtx.valorAtributo(login, “lotação”) Administrador de Autorização , desvincular, Usuário-Papel, forte, excluir, Usuário, fraca. +,},desvincular, Papel-Autorização, fraca. , criar, Usuário, forte. Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 11 A solução MACA ► Características da política anterior Administradores realizam funções administrativas apenas nas contas de seus próprios usuários, mas de maneira limitada Separação de responsabilidades para gerenciar contas independente da descentralização baseada numa estrutura organizacional ► SR entre os papéis Criador de Contas e Vinculador de Papéis Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 12 A solução MACA ► Características da política anterior O poder do administrador depende do papel exercido e da unidade organizacional onde está lotado ► Quanto mais específico for o papel e mais abrangente for a unidade organizacional, maior será o poder ► Autorizações contextuais do MACA tornaram ortogonais a hierarquia de papéis e a estrutura organizacional Não foi preciso criar os papéis Criador de Contas de Serviço, ou Criador de Contas de Instituto, ou mesmo o Criador de Contas do Instituto do Coração Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 13 A solução MACA ► Arquitetura e implementação {transiente} pa : Principal Authenticator c : Cliente : Credentials authenticate(login, pwd, ...) ado : Access Decision maca: MACAService ldap : LDAPServer ) bind(login, pwd new Credentials(ldap_conx) addNewSession(creds) {autenticado} get_attributes(...) hasAccess (opr, obj, params, session_ref) access_allowed(obj, opr, session_ref) search(...) {acesso permitido ou negado} destroy( ) closeSession(creds) {sessão encerrada} Recife, 30 de janeiro de 2006 unbind(...) x (C) 2006 Gustavo Motta 14 A solução MACA ► Principais vantagens Autorizações contextuais ► Flexibilidade e poder expressivo para estabelecer políticas de acesso para as aplicações corporativas e de gestão de políticas administrativas para o CABP que se adaptam à diversidade ambiental e cultural das organizações Suporta o princípio do privilégio mínimo Permite configurar o conceito de separação de responsabilidades ► Usada para evitar a existência de super usuários Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 15 A solução MACA ► Principais vantagens Coloca a administração da política de acesso na perspectiva de modelos organizacionais e não função de plataformas tecnológicas específicas Suporta a administração unificada da política de acesso ► Login unitário independente de aplicação ou plataforma ► Único ponto de controle para criar/remover/bloquear contas de usuários e para gerência de privilégios ► Utiliza o vocabulário da cultura organizacional Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 16 O uso industrial do MACA ► Utilização no InCor – Instituto do Coração – HC-FM.USP Desde o início de 2001 Dados de configuração ► 2.036 ► 86 contas – média de 1,3 papéis associados papéis – média de 30,3 usuários vinculados – média de 3,1 autorizações diretamente associadas ► 205 ► 83 autorizações – 18% regras objetos Java/JSP, Magic/Delphi e Oracle/Java Dados de utilização do MACA ► Média mensal de 442.368 solicitações de autorização – 10,2/min ► Média mensal de 42.768 solicitações de autenticação – 0,9/min ► 1000 estações de trabalho 24x7 Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 17 O uso industrial do MACA Tempo médio de resposta (ms) ► Avaliação de desempenho ► Tempo 100 Observar a variação do TMR com o aumento da carga no servidor de TMR aumentou 3,6 vezes no autorização e autenticação 80 60 40 ► 0 a 700 usuários simultâneos, com a intervalo entrada progressiva [50-700] de 60 agentes simulando usuários a cada 5’ ► TMR de 100 solicitações aferidos cada 50 novos usuários 20 0 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 Servidor Usuários simultâneos ► 1600 Média de solicitações por min. médio de resposta (TMR) para autorização e autenticação Exp. 1 - com cache e com IIOP/TLS 2xPentium III 1,3GHz, 1GBytes MP, 100 Mbits/s, Linux Suse 8.0 Clientes Exp. 1 - autenticação com cache e com IIOP/TLS 1400 1200 Exp. 1 - autorização com cache e com IIOP/TLS ► 1000 4 Pentium III 500MHz, 196 MBytes MP, 100 Mbits/s, Win/2000 Carga média aumentou 8,7 Estação de medição 800 600 ► 400 vezes intervalo [50-700] 1 Pentium III 800MHz, 326 MBytes MP, 100 no Mbits/s, Win/2000 200 0 0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 Usuários simultâneos Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 18 Licenciamento do MACA ► Disponível como software livre Licença GNU GPL – http://maca.sourceforge.net/ Versão 3.2.2c ► Linux ► Windows Manuais ► MACA: Guia de Instalação e Configuração ► MACA Cliente: Guia do Programador ► MACA Administrativo: Manual do Usuário Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 19 MACA: uma solução para autenticação e autorização de usuários corporativos baseada no controle de acesso baseado em papéis Gustavo Motta Departamento de Informática-UFPB [email protected] Recife, 30 de janeiro de 2006 (C) 2006 Gustavo Motta 20/50000