1 / 15

Aspectos de Segurança

Aspectos de Segurança. Autenticação e Controle de Acesso. Ricardo Cavalcanti roc3@cin.ufpe.br. Jobson Ronan jrjs@cin.ufpe.br. Introdução. Um sistema seguro garante que Nenhum evento danoso pode ocorrer com seus recursos (base de dados, processos etc.) Segurança não é apenas TI

Download Presentation

Aspectos de Segurança

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aspectos de Segurança Autenticação e Controle de Acesso Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br

  2. Introdução • Um sistema seguro garante que • Nenhum evento danoso pode ocorrer com seus recursos (base de dados, processos etc.) • Segurança não é apenas TI • Envolve controles físicos (portas e cadeados) • Políticas de não compartilhamento de senha • É difícil dizer se um sistema é seguro ou não • Segurança de um sistema, na verdade, visa à segurança do sistema • Não pretende chegar num estado de segurança absoluta • IMPORTANTE: não se empolgue desenvolvendo seus próprios sistemas de segurança.

  3. Conceitos Fundamentais • Autenticação • Principal: a entidade autenticada • Login e senha; assinatura digital; • Autorização • Checar a os privilégios do Principal para o uso dos recursos • Proteção à Integridade dos Dados • Prevenir ou pelo menos detectar modifição nos dados (i.e. através de um canal de comunicação) • Proteção à confidencialidade dos Dados • Prevenir divulgação imprópria da informação

  4. Segurança em Webapps • Autenticação: descrita no web.xml • HTTP Básico e Disgest, Form-Based ou HTTPS • Autorização • Declarativa • <sercurity-constraint> no web.xml • Programática • isUserInRole e getUserPrincipal • Confidencialidade e Integridade • De alto nível no web.xml

  5. Segurança em EJB • Resume-se a Autenticação e Autorização • Até EJB 1.1 não havia uma maneira portável de Autenticação • Desde EJB 2.0 é possível utilizar a API JAAS – Java Authentication and Authorization Service • Controle de acesso • Através de security policies • Programática ou declarativa

  6. JAAS – Visão geral • Permite autenticação e autorização de usuários em java • Permite o log on de usuários no sistema sem distinção do sistema de segurança de baixo nível • A implementação (i.e. do servidor de aplicação)determina se suas credenciais são autênticas • O suporte a sistemas de segurança mais avançados depende do servidor • Independentemente, não altera o código da aplicação

  7. Candidatos à utilização de JAAS • Uma aplicação stand alone que faz acesso a um EJB, cujo usuário deve prover credenciais ao sistema. • Uma aplicação web na qual o usuário fornece as credenciais através de HTTP Básico e Disgest, Form-Based, HTTPS ou um Certificado • Uma vez autenticado através de JAAS o cliente pode fazer chamadas aos métodos seguramente

  8. Autenticação com JAAS Servidor J2EE Rede Cliente (programador) 1:new() 2:getConfiguration() 7:login() 3:getAppConfigurationEntry() LoginContext (container) Configuration (container) 4:return a list of loginModules () 5:new() 6:inicialize() 8:login() 9:commit() Um ou mais LoginModule (programador) Subject (container) Config File (programador) 10:add Credentials

  9. Autorização com JAAS • Após a autenticação, o cliente necessita se autorizar para ter acesso aos métodos do bean • Pode ser declarativa ou programática • É necessário definir security roles • Apenas Declarativamente • Papeis que relacionam permissões de operações e usuários

  10. Secutiry Roles • As permissões de executar operações são associadas a roles. • Papéis desempenhados por usuários • Um usuário vinculado a uma role recebe todas as permissões atribuídas a esta role.

  11. Autorização Programática • Escrever lógica de segurança • Métodos isCallerInRole e getCallerPrincipal a partir do EJBContext • Declarar as Security Roles abstratas que o bean irá utilizar • No Deployment descriptor <security-role-ref> e <role-name> dentro do nó do bean. • Mapear Abstract Roles em Actual Roles • O deployer deve definir os nomes reais dos Roles • <role-link> dentro do nó do bean e <security-role> dentro de <assembly-descriptor>

  12. Autorização declarativa • Declare as permissões dos métodos • Dentro de <assembly-descriptor> • Declare as Security Roles • Semelhante ao método Programático • Mapear Abstract Roles em Actual Roles • Semelhante ao método Programático

  13. Exemplo ... <assembly-descriptor> <method-permission> <role-name>administrators</role-name> <method> <ejb-name>BankEJB</ejb-name> <method-name>*</method-name> </method> </method-permission> <method-permission> <role-name>managers</role-name> <method> <ejb-name>BankEJB</ejb-name> <method-name>changeAccount</method-name> <method-params>String</method-params> </method> </method-permission> <security-role> <role-name>managers</role-name> </security-role> </assembly-descriptor> ... </ejb-jar>

  14. Propagação da segurança • A identidade do Principal é propagada por todos os beans • A identidade do cliente é ignorada e outra é propagada <entity> (...) <security-identity> <use-caller-identity /> <security-identity> </entity> <security-identity> <run-as> <role-name>admin</role-name> </run-as> <security-identity>

  15. Declarativa ou Programática? • Declarativa • Vantagem: Simplicidade e menor acoplamento • Desvantagem: menor controle • Programática • Quando maior controle é necessário • Instance level Authorization: saegurança ligada à regra de negócio

More Related