Carregar apresentação
PublicouJoaquim Toste Alterado mais de 4 anos atrás
1
Controle de Acesso com Certificação Digital usando JCE e JSSE
Ricardo Koji Ushizaki Just Java 2007 Outubro/2007 – SP
2
Agenda Certificação Digital e PKI Controle de Acesso Exemplo Conclusão
3
1. Certificação Digital
4
PKI – Public Key Infrastructure
5
Certificados ICP-Brasil
Autoridades Certificadoras (ACs) no Brasil devem seguir as normas da ICP-Brasil; Definem regras e normas para PKI no Brasil; Definem o CONTEÚDO de cada certificado; Vantagem: Aplicações conseguem obter dados de forma mais confiável, como o CPF, CNPJ, data de nascimento etc;
6
PC de um e-CPF PC – Política de Certificado
“ Subject Alternative Name A ICP-Brasil define como obrigatória a extensão "Subject Alternative Name", não crítica, e com os seguintes formatos: a) para Certificados de Pessoa Física (e-CPF) a.1) 3 (três) campos otherName, obrigatórios, contendo, nesta ordem: i. OID = e conteúdo = nas primeiras 8 (oito) posições, a data de nascimento do titular, no formato ddmmaaaa; nas 11 (onze) posições subseqüentes, o Cadastro de Pessoa Física (CPF) do titular; nas 11 (onze) posições subseqüentes, o número de Identificação Social - NIS (PIS, PASEP ou CI); nas 15 (quinze) posições subseqüentes, o número do Registro Geral - RG do titular; nas 6 (seis) posições subseqüentes, as siglas do órgão expedidor do RG e respectiva UF. ii. OID = e conteúdo = nas 12 (doze) posições o número do Cadastro Especifico do INSS (CEI) da pessoa física titular do certificado. iii. OID = e conteúdo = nas primeiras 12 (onze) posições, o número de inscrição do Título de Eleitor; nas 3 (três) posições subseqüentes, a Zona Eleitoral; nas 4 (quatro) posições seguintes, a: Seção; nas 22 (vinte e duas) posições subseqüentes, o município e a UF do Título de Eleitor.” Fonte:
7
Dados do Certificado Digital
8
Manipular Certificados Digitais
JCE – Java Cryptography Extension API para Criptografia
9
Comunicação Segura JSSE – Java Secure Socket Extension
10
2. Controle de Acesso JCE/JSSE
11
Definição de Controle de Acesso
“Tripple A” Autenticação “Quem é” Autorização ”Pode fazer” Auditoria “O que fez” (http://www.guidetocissp.com/search/label/Access%20Control) The "AAA" or "Triple A" concept is one of main concepts of security, it is composed of: Authentication, Authorization and Accounting. Access control is a security feature that control how users and systems communicate and interact with other systems and resources. It protect these from unauthorized access and can be a component that participates in determining the level of authorization after an authentication procedure has successfully completed. identification and authentication this combination determine who can or not access/logging in; authorization determines what a subject can do; accountability identifies what a subject did. Identification describes a method of ensuring that a subject is the entity it claims to be, used to establish user accountability. The requirements for identification are: Must uniquely identify the user. Shouldn't identify that user's position or relative importance in an organization (such as labels like Director or Manager). Should avoid using common or shared user accounts, such as root, admin, and sysadmin. Authentication is the process of verifying a claimed identity, determining if the subject is really who claims to be. It is based on at least one of these three factors: something a person knows (password, passphrase, PIN), something a person has (Smart card, token, key, swipe card, badge), something a person is (fingerprint, voice, retina/iris characteristics). * Strong authentication contains two out of these three methods. Authorization is the process of determining what types of activities are permitted, checking the necessary rights and privileges. Accounting is the systematically tracks and records the operations and activities undertaken by individuals or accounts while they're active in a system or working environment, such audit trails (records) and logs to associate a subject with its actions. The information recorded should be sufficient to map the subject to a controlling user. Audit trails and logs are important for: Detecting security violations Re-creating security incidents Fonte:
12
Autenticação Identificação única do usuário Autenticação baseada em:
O que o usuário sabe (senha, PIN); O que o usuário possui (crachá, smart card, token); O que o usuário é (impressão digital, voz, retina, íris); Onde o usuário está (antes ou depois do firewall).
13
Autorização Define o que é ou o que não é permitido; Permissões;
Analogia a um Sistema Operacional: Permissão de Leitura, Escrita e Execução.
14
Auditoria Registrar operações e atividades realizadas;
Deve associar a ação a um usuário; Logs, evidências, Assinatura Digital.
15
SSL - certificação digital
Protocolo SSL (Secure Socket Layer) Certificado Digital do Servidor Garante identidade do servidor Clientes têm certeza que estão acessando o site desejado Desenho do SSL handshake
16
Problemas SSL “simples”
Apenas um lado (servidor) foi “autenticado” Falta autenticar o cliente Webmails, Internet Banking: Usuário/senha Autenticação muito fraca Fraudes eletrônicas
17
Exemplo do problema Bob acessa o site de seu banco Problemas:
Bob mal sabe o que é um certificado digital; E se alguém roubar seu usuário/senha? 1: Bob vê o “famoso cadeado” no browser Mas não sabe interpretar corretamente esse “cadeado” Problema 2: Digita apenas usuário/senha para acessar Se alguém obter seu usuário/senha? Exemplo do problema
18
Solução: SSL “duplo” SSL com autenticação cliente
Autenticação mais forte: Cliente sabe algo (PIN) Cliente possui algo (smart card, token) Cliente é ele mesmo (certificado digital) Desenho do SSL duplo
19
Controle de Acesso com Certificação Digital
Autenticação: Autenticar Certificado Digital do Cliente Autorização: Verificar se Cliente possui permissão ao serviço desejado Auditoria: Registrar operação executada: assinatura digital
20
Exemplo Cliente possui certificado digital
Autenticação com seu certificado digital Cliente é autorizado a acessar sistema Assinar digitalmente cada operação Exemplo
21
Como funciona: Servidor
Deve confiar na cadeia de certificados do Cliente Certificado com extensão Server Authentication
22
Como Funciona: Cliente
Deve confiar na cadeia de certificados do Servidor Certificado com extensão de Client Authentication
23
Cadeias de Confiança TLS / SSL handshake – RFC 2246
Fonte:
24
3. Configurar SSL no Servidor
Possuir um certificado digital para o servidor Configurar o repositório de certificados confiáveis: Truststore; Lista das cadeias que o servidor confia; Define quais certificados clientes poderão fechar SSL com o servidor. Habilitar serviço HTTPS com Cliente Authentication
25
Exemplo: Tomcat Gerar certificado de servidor de testes:
keytool -genkey -alias tomcat -keyalg RSA –sigalg SHA1WithRSA -keystore tomcat.jks -dname "C=BR, O=TESTE, OU=RIKO, CN=riko-sony“ -validity 365 Criar Truststore com certificados confiáveis: keytool -import -trustcacerts -alias iti -file certificadoACRaiz.crt -keystore tomcat-truststore.jks
26
Exemplo: Tomcat Configurar serviço HTTPS com Client Authentication
Editar o arquivo conf/server.xml <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true“ maxThreads="150" scheme="https" secure="true“ keystoreFile="D:\riko\java\apache-tomcat6.0.14\conf\tomcat.jks“ keystorePass="tomcat“ truststoreFile="D:\riko\java\apache-tomcat \conf\tomcat-truststore.jks“ truststorePass="tomcat“ clientAuth="true" sslProtocol="TLS" /> Iniciar o Tomcat Acessar https://localhost:8443 Usar certificado digital cliente raiz ICP-Brasil
30
Aplicação Web Criar controle de acesso baseado no certificado digital do Cliente; Arquitetura do Controle de Acesso: Aplicação Web: Java Servlets + Servlet Filters Autenticar, autorizar e auditar
35
Autorização Certificado Digital do Cliente:
AKI – Authority Key Identifier Serial Number AKI SN
36
Subject Alternative Name (SAN)
Definem o conteúdo de cada extensão do certificado; SAN: campos Other Name com dados do dono do certificado (exemplo CPF) Fonte:
37
SAN - extrair OIDs Classe java.security.cert.X509Certificate
38
Teste SAN
39
Teste SAN (cont.)
40
Debug do programa teste
************************* Valor inteiro=0 0?`L SSPSP 0) +‚7 Valor inteiro=1 0+`L " SAO PAULOSP 0`L
41
Limitações no JCE Manipular extensões do X.509 Certificate; Soluções:
Uso de APIs de criptografia (Bouncy Castle); JCP (Java Community Process).
42
4. Conclusão Controle de Acesso com Certificado Digital Cliente
Autenticação mais forte Certificação Digital não é trivial Limitações JCE
43
Referências ICP-Brasil:
CISSP (Certified Information Systems Security Professional): Java Security: RFC2246 – TLS handshake: RFC3280 – X.509 e PKI: BouncyCastle: JCP – Java Community Process: Material da palestra em: OBRIGADO!
Apresentações semelhantes
© 2018 SlidePlayer.com.br Inc.
All rights reserved.