MACA: uma solução para autenticação de
usuários e autorização de acesso em
ambientes abertos e distribuídos
Gustavo Motta
Departamento de Informática-UFPB
Recife, 6 de agosto de 2004
1
Sumário
► Introdução
► Conceitos
► Modelo
de controle de acesso
de autorização contextual - MACA
► Arquitetura
e implementação
► Resultados
► Conclusão
Recife, 6 de agosto de 2004
2
Introdução
► Prontuário
Eletrônico do Paciente - PEP
Avanços nas tecnologias de computação e comunicação
► PEP
distribuído
► Maior
potencial de acesso à informações clínicas
Benefícios para o paciente
Ameaças à privacidade e à confidencialidade
Desafio
►O
controle de acesso ao PEP não pode prejudicar o
atendimento ao paciente, tampouco deve facilitar a
violação de sua privacidade
Dilema
► Permissividade
► Quais
Severidade
políticas adotar?
Recife, 6 de agosto de 2004
3
Introdução
Controle
de acesso
► Aspectos
computacionais
do acesso ao PEP
► Centrado em papéis
– autoridadedo
e responsabilidade
Confidencialidade
e a privacidade
paciente
► Responsabilidade
► Perspectiva dotambém
modelocompartilhada
organizacionalpelos
SIHs
Desafios
para aplicação
no PEP distribuído
► Autorizações
contextuais
Solução
► Como
implementar políticas de acesso ad hoc
Arquitetura
aberta e distribuída
Formuladas com o único objetivo de atender as necessidades de
de acesso
de uma
organização, levando
em conta
o seu
► controle
Administrar
políticas
de autenticação,
autorização
e impor
ambiente e a sua cultura
a autenticação e o controle de acesso de modo
► Administrar políticas de autenticação, de autorização e impor
unificado
e coerente
o controle
de acesso
► PEP
composto
por segmentos
distribuídos
Acesso
padronizado
a partir
de sistemas distintos em
► Bases de dados distintas
plataformas
e linguagens de programação heterogêneas
► Múltiplas aplicações
► Plataformas heterogêneas
► Serviços de segurança estanques
Recife, 6 de agosto de 2004
4
Introdução
► Objetivo
Apresentar o MACA - Middleware de Autenticação e
Controle de Acesso
► Modelo
de autorização contextual
► Controle
de Acesso Baseado em Papéis - CABP/NIST
► Arquitetura
de software
LDAP
Security Services
Recife, 6 de agosto de 2004
5
Conceitos de controle de acesso
Política de Acesso
Banco de Dados
de Autorizações
Administrador
Autenticação
Controle de Acesso
de Segurança
Monitor de
Referência
Usuário
Objetos
Auditoria
Autenticação, autorização, controle de acesso e auditoria
Recife, 6 de agosto de 2004
6
Conceitos de controle de acesso
► Controle
de acesso baseado em papéis
Acesso regulado segundo os papéis exercidos
► Um
papel denota uma função organizacional
Autoridade e Responsabilidade
► Adequado
para aplicação ao PEP em organizações de saúde
Processos de negócio complexos
Equipes multiprofissionais
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
Politicamente neutro
Recife, 6 de agosto de 2004
7
Conceitos de controle de acesso
Reduz o tempo para gerenciar contas e
► Controle
de acesso de
baseado
em papéis
atribuição/revogação
privilégios
►
Para uma empresa
com 100.000 empregados, produz um
Separação
de responsabilidades
benefício estimado da ordem de US$934.321,00/ano
► Distribui tarefas críticas por múltiplos usuários
►
Reduz
ociosidade entre a contração de um empregado e a
► Minimiza conflitos de interesses
concessão de seus privilégios
Favorece
a administração da política de acesso
Para uma empresa com 100.000 empregados, produz um
benefício
estimado da ordem de US$3.436.966,00/ano;
► Visão organizacional
►
► Facilita
procedimentos
de
Reduz
a gravidade
e a freqüência
das violações de
Admissão/demissão
segurança
nas organizações, particularmente a fraude
financeira
com a definição
Realocação
funcional de políticas de separação de
responsabilidades
Fonte: NIST
Recife, 6 de agosto de 2004
8
Modelos de controle de acesso
Usuário
Restrições de SR
SR estática
SR dinâmica
Administrador
hp
Hierarquia
de PapéisProfissional de Saúde
Relação pa
up
Médico,
PEP;
AuxiliarPrescrever,
de
usuários
Diretorpapéis
Registro de Saúde
pa
ops
Operações
obs
Paramédico
Médico
Objetos
Diretor Clínico, VerLogAuditoria, PEP;
sessões
Auxiliar
de Enfermagem, VerPrescrição, PEP;
Analista de
Diretor Clínico
Registro de Saúde
usuário
papéis
Hierarquia geral
autorizações
Auxiliar de Enfermagem
Relacionamento n para m
Relacionamento 1 para m
Esquema do modelo de referência para o CABP do NIST
Recife, 6 de agosto de 2004
9
Modelo de autorização contextual – MACA
► Motivação
Políticas de acesso ad hoc para o PEP
Enfermeiras somente podem ver registros de pacientes internados
em sua enfermaria ou que lá estiveram nos últimos 30 dias
Médicos que são membros de uma equipe somente podem ver
registros de pacientes sob os cuidados de algum membro da equipe
► Necessárias
para estabelecimentos de saúde com atendimentos
em níveis secundário e terciário
Paciente cuidado por equipes multiprofissionais e multidisciplinares
► Inviáveis
nos modelos tradicionais de controle de acesso e no
modelo de referência para CABP NIST
Recife, 6 de agosto de 2004
10
Modelo de autorização contextual – MACA
► Estende
o CABP do NIST
Autorizações contextuais
► Incorporam
regras relacionando informações do contexto
relevantes para decisão de permitir ou proibir o acesso
► Positivas
ou negativas
Conflitos
► Fortes
ou fracas
Fortes políticas estritas
+, VerLaudo, PEP, fraca
, VerLaudo, PEP, fraca
Fracas políticas permissivas
Recife, 6 de agosto de 2004
11
Modelo de autorização contextual – MACA
► Hierarquia
de papéis
Árvore invertida
► Separação
de responsabilidades
Conflitos entre autorizações
► Ativação
automática de papéis
CABP transparente para o usuário final
Recife, 6 de agosto de 2004
12
Modelo de autorização contextual – MACA
► Contexto
Qualquer informação usada para caracterizar uma
entidade considerada relevante para interação entre um
usuário e uma aplicação
Tipos
► Variáveis
valores atômicos
usuárioCtx.registro_profissional, dtCtx.dia_semana
► Conjuntos
coleção de valores determinados e diferenciáveis
dtCtx.dias_úteis, pacCtx.pacientes_internados
► Funções
estabelece relações entre entidades e novos valores
pacCtx.assistido_por(umCodPac,
usuárioCtx.registro_profissional)
Expressam entidades e relacionamentos do ambiente e
da cultura organizacionais
Recife, 6 de agosto de 2004
13
Modelo de autorização contextual – MACA
► Regras
de autorização
Relacionam contextos em expressões lógicas para
especificar uma política de acesso
► Valores
booleanos, inteiros, textos, conjuntos,
► Operadores
► Novos
aritméticos, de conjunto, relacionais, booleanos
valores e operadores definidos em contextos
► Regras
parametrizadas
Exemplo de política de acesso
► Enfermeiros
e seus auxiliares somente podem acessar
prescrições de pacientes internados quando estão em seu turno
de trabalho
Recife, 6 de agosto de 2004
14
Modelo de autorização contextual – MACA
► Regras
de autorização
Auxiliar de Enfermagem,
exp-abs(umCodPac) {
umCodPac in pacCtx.pacientes_internados &
usuárioCtx.está_no_turno_de_trabalho
}, VerPrescrição, PEP, fraca
Recife, 6 de agosto de 2004
15
Modelo de autorização contextual – MACA
► Hierarquia
de papéis
Profissional
Estrutura
de árvore invertida
de Saúde – PS , VerLaudo,
► Herança
Médico
de autorizações
PEP, fraca
, VerLaudo, PEP, fraca
+,
Adição de conceitos
Médico Assistente
► Revogação
, VerLaudo, PEP, fraca
+,
de autorizações
Cirurgião
Mecanismos
, VerLaudo, PEP, fraca
+,
Clínico
, VerLaudo, PEP, fraca
+,
Sobreposição de autorizações
Médico
Auditor +,
,
VerLaudo, fortes
PEP, fraca
► Definição
de autorizações
►
Disciplinado pelo tipo da autorização
fraca
, VerLaudo, PEP, forte
► Forte irrevogável
forte
Auxiliar de Enfermagem , VerLaudo, PEP, fraca
► Fraca revogável
, VerLaudo, PEP, fraca
forte
Enfermeiro +,
Paramédico
► Autorizações
válidas
fraca
Nutricionista , VerLaudo, PEP, forte
Autorizações associadas direta ou indiretamente a um papel e que não
estão Clínico
revogadas
Pesquisador
, VerLaudo, PEP, fraca
+,
Únicas usadas para decidir um acesso
Recife, 6 de agosto de 2004
16
Modelo de autorização contextual – MACA
► Separação
de responsabilidades
Particiona compulsoriamente a responsabilidade e a autoridade para
realizar ações em que há conflitos de interesses
Baseadas em conflitos entre autorizações
► Fortes
denotam conflitos de interesses
Médico Assistente, +, Prescrever, PEP, forte
Médico Auditor, —, Prescrever, PEP, forte
► Fracos
representam diferentes necessidades funcionais
Médico Assistente, +, VerDadosIdentificação, PEP, fraca
Pesquisador Clínico, —, VerDadosIdentificação, PEP, fraca
Recife, 6 de agosto de 2004
17
Modelo de autorização contextual – MACA
► Separação
de responsabilidades
Política de resolução de conflitos
► Conflitos
fortes prevalece a autorização que proíbe o acesso
Visa atender a separação de responsabilidades
►
Médico Auditor e Médico Assistente
►
—, Prescrever, PEP, forte
► Conflitos
fracos prevalece a autorização que permite o acesso
Visa atender o princípio da necessidade de saber/fazer
►
Pesquisador Clínico e Médico Assistente
►
+, VerDadosIdentificação, PEP, fraca
Recife, 6 de agosto de 2004
18
Modelo de autorização contextual – MACA
► Algoritmo
de decisão de acesso
sessão, Prescrever,
Entrar, PEP,PEP,
VerDadosIdentificação,
(); (“123456-H”);
PEP, (“2-I”);
Profissional
Determina
se o usuário de uma sessão tem permissão para acessar
de Saúde – PS
+, Entrar, PEP, fraca; +, VerPrescrição, PEP, fraca;
+, VerDadosIdentificação, PEP, fraca
Médico protegidos a fim de executar uma operação específica
objetos
Médico Assistente +, Prescrever, PEP, forte;
► Somente
autorizações válidas
, GlosarPrescrição, PEP, forte;
► Avaliação
Cirurgião
das regras no contexto da tentativa de acesso
Clínico
► Prioridade
das autorizações
fortesPEP,
sobre
as fracas
Médico Auditor
, Prescrever,
forte;
►Paramédico
Ativação
+, GlosarPrescrição, PEP, forte;
automática de papéis independente da separação de
responsabilidades
...
PolíticaEnfermeiro
de resolução de conflitos
Nutricionista
► Concilia
o princípio da necessidade de saber/fazer com a limitação de
VerDadosIdentificação,
PEP, fraca
Pesquisador Clínico
acessos,
que
resultem em conflitos de interesses
Recife, 6 de agosto de 2004
19
Modelo de autorização contextual – MACA
► Contribuições
de Clínicas
para Hospital
aplicação
ao PEP
– PS +, Entrar, PEP, fraca; +, VerPrescrição, PEP,
Profissional
Reforçade Saúde
o princípio
da necessidade de saber/fazer
+, VerDadosIdentificação, PEP, fraca
Médico
► Mais
privacidade
Instituto
do
fraca;
para o paciente
Instituto de
+,
Prescrever,
PEP,
forte;
Médico Assistente
Coração
Neurologia
► Menos acessos supérfluos
, GlosarPrescrição, PEP, forte;
Cirurgião
Adaptação ao
ambiente e a cultura das org. saúde
Clínico
Divisão de Clínica
Divisão ,
de
Divisão
Clínica de autorização
Divisão de
Auditor
Prescrever,
PEP,
► PoderMédico
expressivo
e Cirurgia
flexibilidade
dasdeforte;
regras
Cardiológica
Cardiovascular
Neurológica
Neurocirurgia
+, GlosarPrescrição,
PEP, forte;
► Políticas
Paramédicode
acesso
ad hoc
exp-abs(umCodPac,
umCodPresc){
► Isola aAuxiliar
lógica
depacCtx.plano_saude_presc(umCodPac,
autorização dos componentes umCodPresc)
do PEP in
de Enfermagem
usuárioCtx.convenios
Serviço de
Serviço de
} , VerPrescrição, PEP,
fraca
...
Eletrocardiografia
Neuropediatria
Enfermeiro
Facilidade de uso do PEP
► CABP
Nutricionista
transparente para o usuário final
PEP,
Pesquisador Clínico , VerDadosIdentificação,
Serviço de
Serviço
de fraca
Hemodinâmica
Neuroanatomia
Administração viável da política de acesso ao PEP
► Estruturas
organizacionais
– autonomia e descentralização
Recife, 6 de agosto de 2004
20
Arquitetura e implementação
► Baseada
c : Cliente
em padrões abertos e distribuídos
{transiente}
pa : Principal
Authenticator
: Credentials
ado : Access
Decision
maca:
MACAService
Acesso para componentes do PEP em plataformas
authenticate(login, pwd, ...)
bind(login, pwd
new Credentials(ldap_conx)
heterogêneas
addNewSession(creds)
ldap :
LDAPServer
)
Mais
interoperabilidade
{autenticado}
Políticas de acesso e de autenticação unificadas e
get_attributes(...)
coerentes
access_allowed(obj, opr, session_ref)
► Cliente/servidor
multicamada
hasAccess (opr, obj, params, session_ref)
search(...)
{acesso permitido ou negado}
Base de informações de gerência da segurança
destroy( )
Servidor
de autenticação e de autorização
closeSession(creds)
unbind(...)
{sessão
Aplicações
clientes
componentes
do PEPdo MACA
encerrada}
Arquitetura
de Software
para
integração
x
Recife, 6 de agosto de 2004
21
Arquitetura e implementação
dc=incor,dc=usp,dc=br (nó raiz)
dn: cn=autorização 1,ou=usuario,ou=Authorizations,dc=incor,dc=usp,dc=br
objectClass: top
objectClass: incorauthorization
incorprivilegetype: dn: cn=Médico,cn=Profissional de Saúde,cn=usuario,cn=Papeis,ou=Groups,dc=incor,dc=usp,dc=br
incorprivilege: ler
objectClass: top
incorresourcedn: cn=Prescrição,cn=Serviço de Prescrição Médica,cn=PEP,ou=Resources,dc=incor,...
objectClass: incorrole
incorauthorizationtype:ou=groups
weak
ou=people
ou=resources
ou=authorizations
objectClass: incorgroup
incorroledn: cn=Usuario,cn=Papeis,ou=groups,dc=incor,dc=usp,dc=br
cn: Profissional de Saúde cn=papéis
cn=PEP
ou=usuario
cn: autorização 1
uid=josé.antônio
description: representa as funções e responsabilidades dos médicos.
cn=Serviço de Prescrição
cn=autorização 1
cn=usuário
member: uid=maria.augusta,ou=people,dc=incor,dc=usp,dc=br
Médica
cn=autorização 2
cn=Profissional de
member: uid=josé.antônio,ou=people,dc=incor,dc=usp,dc=br
uid=maria.augusta
cn=Prescrição
Saúde
cn=médico
ou=Profissional de
Saúde
cn=MACA
uid=luis.gustavo
cn=autorização 1
cn=Usuário
ou=médico
...
...
...
...
Representação do MACA no LDAP: árvore de informações
Recife, 6 de agosto de 2004
22
Arquitetura e implementação
► Servidor
de Segurança
Autenticação e autorização
Implementação
► Java
2 SE 1.4
API JNDI
► OpenLDAP
2.1.17
► ORB
LDAP/TLS
JacORB 1.4
IIOP/TLS
Manuais
► MACA:
Guia de Instalação e Configuração
► MACA
Cliente: Guia do Programador
► MACA
Administrativo: Manual do Usuário
Disponível como software livre
► Licença
GNU GPL – http://maca.sourceforge.net/
Recife, 6 de agosto de 2004
23
Arquitetura e implementação
Autenticação de usuário
Recife, 6 de agosto de 2004
24
Arquitetura e implementação
PrincipalAuthenticator - IDL para autenticação de usuário
Recife, 6 de agosto de 2004
25
Arquitetura e implementação
PrincipalAuthenticator - uso em Java
Recife, 6 de agosto de 2004
26
Arquitetura e implementação
PrincipalAuthenticator – uso em Delphi
Recife, 6 de agosto de 2004
27
Arquitetura e implementação
Decisão e Controle de Acesso com o
Resource Access
Recife, Decision
6 de agosto de 2004 (RAD) Facility
28
Arquitetura e implementação
AccessDecision – IDL para decisão de acesso
Recife, 6 de agosto de 2004
29
Arquitetura e implementação
AccessDecision – uso em Java
Recife, 6 de agosto de 2004
30
Arquitetura e implementação
► Servidor
de Segurança
Contextos implementados via CORBA IDL
► Relaciona
informações de plataformas distribuídas e heterogêneas
module Contexts {
interface Context {
Any getValue (in string index);
boolean inEvaluation(in Any element, in Any aSet);
Any functionApplication(in string functionName,
in Vector argumentList);
};
};
Recife, 6 de agosto de 2004
31
Resultados
Tempo médio de resposta (ms)
► Disponibilidade
Avaliação de desempenho
100
Exp. 1 - com cache e com IIOP/TLS
► Tempo
80
60
médio de resposta (TMR) para autorização e autenticação
TMR aumentou 3,6 vezes no
Observar a variação do TMR com o aumento da carga no servidor de
intervalo [50-700]
autorização e autenticação
40
20
►0
0
0
50
100 150
a 700 usuários simultâneos, com a entrada progressiva de 60
200 250 300 350 400 450 500 550 600 650 700
agentes
simulando usuários a cada 5’
Usuários simultâneos
► TMR
1600
Média de solicitações por min.
do MACA
de 100 solicitações aferidos cada 50 novos usuários
Servidor
Exp. 1 - autenticação com cache e com IIOP/TLS
1400
1200
Exp. 1 - autorização com cache e com IIOP/TLS
► 2xPentium
1000
III 1,3GHz, 1GBytes MP, 100 Mbits/s, Linux Suse 8.0
Carga média aumentou 8,7
Clientes
800
600
►4
400
200
vezes
[50-700]
Pentium III 500MHz, 196 MBytes
MP, no
100intervalo
Mbits/s, Win/2000
Estação de medição
0
0
50
100
150
200
►1
250
300
350
400
450
500
550
600
650
700
Pentium
III 800MHz, 326 MBytes MP, 100 Mbits/s, Win/2000
Usuários simultâneos
Recife, 6 de agosto de 2004
32
Resultados
► Aplicação
ao PEP InCor-HC.FMUSP
► Dados
de configuração
2.036 contas – média de 1,3 papéis associados
66 papéis – média de 30,3 usuários vinculados
– média de 3,1 autorizações diretamente associadas
205 autorizações – 79% positivas, 3% negativas, 18% regras,
99% fracas e 1% fortes
83 objetos – 47 PEP
► Java/JSP,
► Dados
Magic/Delphi e Oracle/Java
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, 6 de agosto de 2004
33
Conclusão
Modelo de autorização contextual para CABP
► Considera
as exigências de controle de acesso ao PEP
Concilia permissão de acesso ao PEP motivada pela necessidade
de cuidado ao paciente com proibição e situações indevidas
► Regras
baseadas em contextos programáveis
Controle de acesso preciso, de acordo com o direito e a
necessidade de um usuário realizar uma tarefa
Utilização rotineira no PEP InCor-HC.FMUSP
► Exeqüibilidade
do MACA, de sua implementação e de sua
aplicação prática em casos reais
Recife, 6 de agosto de 2004
34
Conclusão
► Contribuições
Extensão do modelo referência para CABP do NIST
► Regras
de autorização e contextos implementados como
interfaces CORBA
Políticas de acesso para o PEP e administrativas capazes de se
adaptar ao ambiente e a cultura das organizações de saúde
Ativação automática de papéis independente da SR
► CABP
transparente para o usuário do PEP facilidade de uso
Conciliação do princípio da necessidade de saber/fazer
com a SR na política de resolução de conflitos
► Distinção
entre conflitos de interesses e conflitos casuais
Recife, 6 de agosto de 2004
35
Conclusão
► Contribuições
Disponibilidade da implementação do MACA
► Produto
estável e com bom desempenho
Soluções in-house para CABP demandam investimento de aprox.
US$ 453,77 por usuário nos EUA
► Integrado
a uma arquitetura de padrões abertos e distribuída
Disponibilidade de serviços para os componentes do PEP a partir
de plataformas heterogêneas
Capacidade de administrar e de impor políticas de acesso e de
autenticação de modo unificado e coerente
Recife, 6 de agosto de 2004
36