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;
AuxiliarPrescrever,
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
Download

Introdução ao MACA - Departamento de Informática — UFPB