A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Controle de Acesso com Certificação Digital usando JCE e JSSE

Apresentações semelhantes


Apresentação em tema: "Controle de Acesso com Certificação Digital usando JCE e JSSE"— Transcrição da apresentação:

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

27

28

29

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

31

32

33

34

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!


Carregar ppt "Controle de Acesso com Certificação Digital usando JCE e JSSE"

Apresentações semelhantes


Anúncios Google