Programa de Extensão da UnB em Criptografia e Segurança Computacional

C2- Infraestrutura de Chaves Públicas

 Módulo 1 de 6 - 6 horas - pre-requisito: Curso C1

Roteiro de Aulas

copyleft - Pedro Antonio Dourado de Rezende
Ciência da Computação
Universidade de Brasília


Roteiro Primeiro Módulo

Aula 1 - Introdução


     C2-0.1 PKIs na prática, hoje.

C2-0.1.1 Geração de chaves, instalação de certificados no PGP
Cada aluno precisa gerar pelo menos um par de chaves criptográficas assimétricas que servirá como instrumento para práticas durante o curso. Em cada um dos aplicativos de correio eletrônico disponíveis no computador de sala de aula (Mozilla e IE), configurar sua conta de correio pessoal, para que possa enviar e receber mensagens endereçadas a esta conta, durante a aula. O aluno deve, portanto, trazer anotado para a primeira aula o nome de domínio do seu servidor de correio eletrônico pessoal (POP ou IMAP e SMTP). A seu critério, ele pode abrir uma conta de correio pessoal para uso exclusivo no curso.

Deverá instalar o PGP no computador, escolhendo, na primeira seleção, a opção "usuário 'sem chaveiro';" (novo usuário). Gere pelo menos um par de chaves seguindo as intruções da interface. Em seguida, escolha um dos navegadores para acionar. Instale também o plugin para o navegador IE

C2-0.1.2 Geração de chaves, instalação de certificados no navegador Mozilla
Se o aluno escolher o navegador Mozilla para gerar o par de chaves:
- Obter certificado numa certificadora: faça-o a partir da página da certificadora FreeICP, em http://ca.freeicp.org/ (ATENÇÃO: certificadora não-credenciada na ICP-BR!!!), e siga as instruções para obtenção de certificados de nível básico (identidade não verificada).
- Exportar a chave privada para o outro navegador e para o PGP, backup para um disquete.
- Exportar o certificado para o outro navegador e para o PGP.  Verifique se a exportação incluiu também as chaves da cadeia de verificação que se fizerem necessárias para a validação de assinaturas com dito certificado.
C2-0.1.3 Geração de chaves, instalação de certificados no navegador Internet Explorer
Se o aluno escolher o navegador IE para gerar o par de chaves:
- Obter certificado nalguma certificadora: faça-o a partir da página da certificadora FreeICP, em http://ca.freeicp.org/ (ATENÇÃO: certificadora não-credenciada na ICP-BR!!!), e siga as instruções para obtenção de certificados de nível básico (identidade não verificada).
- Exportar a chave privada para o outro navegador e para o PGP, backup para um disquete.
- Exportar o certificado para o outro navegador e para o PGP. Verifique se a exportação incluiu também as chaves da cadeia de verificação que se fizerem necessárias para a validação de assinaturas com dito certificado.
C2-0.1.4 Identificação imediata de problemas de interoperabilidade
Assinar e enviar mensagens para anotar os problemas de interoperabilidade que encontrar. O que encontrarmos neste exercício será, de forma simplificada e resumida, os desafios para a implementação de uma infra-estrutura de chaves públicas, desafios esses que foram abordados pelos pesquisadores que estabeleceram os padrões e formatos objeto de estudo neste curso.  Anote os problemas que encontrar, pois eles virão à tona ao longo do curso, e também quando estiver desenvolvendo aplicações no âmbito profissional. Se o tempo estiver exíguo, o aluno poderá continuar a experiência depois da aula, com as chaves e certificados exportados para o disquete
     C2-0.2 Especificação formal de protocolos critpográficos
C2-0.2.1 O papel central da estrutura de dados para transporte de chave publica
Para melhor entendermos a natureza das possíveis discrepâncias e incompatibilidades no cenário de experimentos que montamos, podemos começar examinando o conteúdo do certificado pessoal obtido da FreeICP. Seria melhor, para isso, usar a interface de configurações de controle do Mozilla:

Edit > Preferences > Privacy & Security > Manage Certificates > (yours) > view > details

C2-0.2.2 A necessidade de padronização aberta: o padrão X-509 e alternativas
Instalar, se necessário, o certificado auto-assinado (raiz) da ICP-BR, a partir do site http://www.iti.gov.br Examinar os campos de extensão deste certificado X-509 v.3 comparando-o com outros certificados, incluindo os certificados instalados pelo usuário e os certificados embutidos pelo fabricante do navegador no seu container (chaveiro embutido) ou no registry do sistema (IE).
C2-0.2.3 A necessidade de identificadores de objetos e as linguagens ASN.1 e DER.
Ler a introdução do apêndice A, "ASN.1 Primer", no livro texto (pag 301).
C2-0.2.4 A necessidade do registro de identificadores de objetos para PKIs
Veja os exemplos (como este abaixo do Mozilla) e o item "Obtaining Private OIDs" na página 308 do livro texto.


Exercício: (valendo 20% da nota) Enviar ao prof. Pedro (rezende@cic.unb.br) uma mensagem digitalmente assinada que seja reconhecida como válida no programa de correio eletrônico dele (ele usa o Mozilla e o PGP)

Aula 2 -

C2 1 - A linguagem ASN.1 e as sintaxes BER e DER

    C2-1.1 Sintaxes Abstratas e a Linguagem ASN.1.

   C2-1.2 BER: Basic Encoding Rules.
C2-1.2.1 - Conceito e Regras
A linguem BER consiste em um conjunto de algoritmos para se representar, em uma ou mais formas inambíguas, qualquer valor ASN.1 através de uma sequência de octetos. Três métodos são fornecidos para se codificar um valor (dado), onde o método adequado depende do tipo e do comprimento do dado, se conhecido ou não de antemão. Tipos simples, por exemplo, podem ser codificados com qualquer dos três métodos
 A codificação incluirá informações derivadas dos parâmetros de rotulagem (tag) constantes da declaração e do seu contexto de apresentação. Para que a decodificação seja inambígua, a declaração do tipo ASN.1 deve fornecer os parâmetros necessários para que as regras possam codificar a rotulagem que não pode ser inferida durante a decodificação. Esses parâmetros são Quando um rótulo de classe ([--classe--  ..]) ou um rótulo específico de contexto  ([..]) é empregado, a codificação pode encapsular o número do rótulo em um identificador de tipo em volta da sua base de codificação, que é o dado codificado conforme o tipo sendo rotulado. Parâmetros de rotulagem podem ser omitidos na declaração do tipo quando o tipo do dado puder ser deduzido do contexto da apresentação e/ou de opções "default" para rotulagem.

Doutra feita, o parâmetroIMPLICIT, declarado ou exercido por deafult (o documento ITU X.208 que define a ASN.1 explica, no item 26.7 pag 34, as regras default para regulagem), indica que o encapsulamento da base de codificação pelo identificador do rótulo não se faz necessário.

Por exemplo, o parâmetro "número de tagging" [..], também chamado rótulo específico de contexto, não poderá ser omitido quando dois campos opcionais (declarados com predicado OPTIONAL) numa estrutura SET são do mesmo tipo, como mostrado no exemplo de rotulação em 1.1.4.

No exemplo de rotulação em 1.1.4, podemos observar que se um campo numa estrutura SET recebe rótulo da classe aplicação ([APPLICATION ..]), não precisa adicionalmente receber rótulo específico de contexto ([..], que seria usado para distinguir um campo de outro do mesmo tipo na estrutura).
 
 


    C2-1.3 DER: Distinguished Encoding Rules.

Segundo Módulo

Bibliografia

Material de referência

Texto de Referência

Roteiros de aula


Material de consulta

Os textos abaixo aprofundam o material abordado no curso.



v.0 09/03