Você está na página 1de 14

[1]

Introdução e Prática de
Certificação Digital
Reinaldo Gil Lima de Carvalho

Janeiro - 2015
Contents

Contents 2

1 Introdução a certificação digital 3


1.1 Processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Autoridade Certificadora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Tecnologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Função hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Criptografia simétrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Criptografia assimétrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.4 Conexão SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Autoridade Certificadora 8
2.1 Emissão do certificado raiz da Autoridade Certificadora . . . . . . . . . . . . . . . . . 8
2.2 Requisição de Certificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Emissão de certificado assinado pela Autoridade Certificadora . . . . . . . . . . . . . 10
2.3.1 Certificado de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Certificado de usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Arquivos gerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Descriptografando a chave privada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 Análise da Requisição de Certificado . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 Análise do Certificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Bibliography 13

A Licença 14

Certificação Digital 2
CHAPTER 1

Introdução a certificação digital


A certificação digital tem o objetivo de identificar o usuário de forma inequı́voca e permite a asso-
ciação de ações ao seu detentor. Utiliza processos e tecnologias para garantir a auditabilidade do
fornecimento da identidade ao indivı́duo que impedem o repúdio de uma ação.
As funções de hash, a codificação base-64, a criptografia simétrica, a criptografia assimétrica, o
padrão X.509 que define a requisição de certificado e o certificado digital, o padrão X.690 que define
as regras de codificação do certificado digital, e o padrão PKCS#12, são tecnologia realacionadas a
certificação digital.
A Autoridade Certificadora é a entidade, pública ou privada, que gerencia a emissão de certifi-
cados digitais. Os processos descrevem as rotinas para emissão do certificado digital de forma segura,
e envolvem procedimentos, polı́ticas e pessoas, por meio de documentos formais, como a Declaração
de Práticas de Certificação e a Polı́tica de Segurança da Autoridade Certificadora.
A recepção e verificação dos dados do solicitante do certificado digital é realizado por meio de
Autoridades de Registro, que na prática, são os postos de atendimento ao público das Autoridades
Certificadoras.

Tarefa: Identifique os principais tópicos de uma Declaração de Práticas de Certificação.

1.1 Processos

1.1.1 Autoridade Certificadora


A Autoridade Certificadora emite e revoga certificados digitais, mas sua atuação não depende apenas
de tecnologia. A Autoridade Certificadora mantem rı́gidos controles quanto a todo o processo de
emissão de certificados.
A Autoridade Certificadora utiliza software e hardware para emissão de certificados de forma
que não é possı́vel acesso as chaves privadas, mesmo por funcionários de maior privilégio. Mantem
procedimentos de controle para o acesso ao ambiente de emissão de certificados, como a necessidade
da presença de ao menos dois funcionários em determinados ambientes, e o monitoramento de toda
sua operação por meio de câmeras.
Apesar disto, a criação de uma Autoridade Certificadora não está limitada por decretos gover-
namentais ou a grandes empresas. Textos adicionais podem ser encontrados em [2].
Em relação aos procedimentos internos de uma Autoridade Certificadora, as seguintes funções
podem ser destacadas:

• Recepção ou criação da requisição de certificado digital (Certificate Signing Request - CSR) e


verificação de documentos de identificação do requerente por meio da Autoridade de Registro.
• Envio para a Autoridade Certificado das solicitações de certificado digital;
• Emissão do certificado digital do requerente assinado pela Autoridade Certificadora;

Certificação Digital 3
Introdução e Prática de Certificação
ChapterDigital
1. Introdução a certificação digital

• Envio do certificado digital para a Autoridade de Registro e posterior entrega ao requerente.

Figure 1.1: Diagrama dos procedimentos de uma Autoridade Certificadora

Os certificados digitais contém a chave pública do proprietário, assim como, seu nome, e-mail,
e outras informações. A certificação digital apoia-se na relação de confiança entre a autoridade
certificadora e aqueles que detém os certificados.
Confia-se que os processos da autoridade certificadora são suficientemente seguros para não
haja a emissão de certificados contendo informações falsas (nome, e-mail, etc), e que a tecnologia
seja suficientemente segura para que não haja dúvidas quanto a autoria de uma assinatura digital
ou quanto a inviolabilidade de uma conexão cifrada.

1.2 Tecnologias

1.2.1 Função hash


O hash é a transformação de uma grande quantidade de dados em uma pequena quantidade de in-
formação, de tal forma que o resultado (message digest) seja (quase) exclusivo [3]. Como o resultado
gerado é uma sequência limitada, comumente não maior que 512 bits (64 bytes ou 128 hexadeci-
mais), existem colisões (sequências iguais para entradas diferentes), sendo assim, quanto maior for a
dificuldade de se criar colisões intencionais, melhor é o algoritmo [3].

Tarefa: Quando diz-se que um algoritmo de hash é de 16 bytes, o que isto quer dizer?

Tarefa: Identifique os algoritmos de hash mais usados e o tamanho da sequência gerada por
cada um deles.

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 4


Introdução e Prática de Certificação
ChapterDigital
1. Introdução a certificação digital

Tarefa: Identifique o algoritmo de hash utilizado nos seguintes casos:


i) protocolo TCP; ii) formato ZIP; iii) certificado digital.

1.2.2 Criptografia simétrica


A criptografia simétrica utiliza uma chave única para cifragem e decifragem, geralmente necessi-
tando de baixo custo computacional. Os algoritmos utilizam operações matemáticas reversı́veis, que
combinam os dados de entrada com a chave.

Tarefa: Identifique as operações essenciais de criptografia simétrica.

Tarefa: Identifique os algoritmos de criptografia simétrica mais comuns. Classifique cada


algoritmo em cifras de bloco ou cifras de fluxo. Identifique o tamanho do bloco (para a cifras de
bloco), e o tamanho da chave.

Tarefa: Identifique os estágios para criptografia com o AES (Rijndael).

1.2.3 Criptografia assimétrica


A criptografia assimétrica utiliza um par de chaves (sequências de bits), denominadas de chave
privada e chave pública (chaves assimétricas). As chaves assimétricas não podem ser formadas
a partir de qualquer combinação aleatória. É necessário a utilização de um algoritmo que gere
uma chave que permita a criação futura de uma segunda chave associada a primeira, existindo um
relacionamento entre elas.
Após a criação do par de chaves assimétricas, uma delas deve ser selecionada para ser a chave
privada e a outra será a chave pública. Na prática, a chave inicialmente criada é a chave privada,
e a posterior é a chave pública. A chave privada é comumente armazenada em um arquivo em
separado e a pública estará contida na requisição de certificado (Certificate Signing Request - CSR)
e posteriormente no certificado digital.
As chaves serão utilizadas para a criptografia e descriptografia dos dados; dados criptografados
por uma das chaves só podem ser descriptografados pela outra. A criptografia por meio da chave
pública torna-se válida a partir do fato que somente os detentores da chave privada terão acesso a
este conteúdo, já a criptografia utilizando a chave privada não tem objetivo da confidencialidade,
visto que a chave pública é de domı́nio público.
Assim, a chave privada é utilizada para a criação de hash criptográficos, também chamado de
assinatura digital. Este recurso é utilizado para verificar se um determinado conteúdo foi gerado pelo
detentor da chave privada. Esta verificação ocorre por meio da chave pública.
O certificado é um arquivo que contém informações assinadas digitalmente com a chave privada
de alguém confiável, normalmente uma Autoridade Certificadora - AC (Certificate Authority - CA).
A Infra-estrutura de Chaves Públicas - ICP (Public Key Infrastructure - PKI) é a parte logı́stica da
utilização de tecnologias criptográficas.
Os principais elementos desta infra-estrutura são os Certificados Digitais e as Autoridades
Certificadoras (AC). A ICP-Brasil é exemplo de uma Autoridade Certificadora no Brasil, foi instituı́da
pela Medida Provisória 2.200 de julho de 2001, sendo o comitê gestor da ICP-Brasil regulamentado
pelo decreto 3.872.
Uma biblioteca de criptografia, como o OpenSSL, fornece um conjunto de recursos para ma-
nipulação de certificados digitais. Em relação a criptografia assimétrica, as seguintes funções podem

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 5


Introdução e Prática de Certificação
ChapterDigital
1. Introdução a certificação digital

ser destacadas:

• Criação de chave privada a partir de um algoritmo de criptografia assimétrica como o RSA,


sendo este algoritmo também utilizado nas demais funcionalidades da criptografia assimétrica.
• Criação de chave pública a partir de uma chave privada existente. Em geral, ocorre automati-
camente com a criação da requisição de certificado digital ou do certificado raı́z.
• Assinatura de dados com utilização da chave privada.
• Verificação de dados assinados com a utilização da chave pública.
• Criptografia de dados com a utilização da chave pública.
• Descriptografia de dados com a utilização da chave privada.

Figure 1.2: Diagrama dos recursos de criptografia assimétrica

Tarefa: Identifique o algoritmo de criptografia assimétrica mais comum.

Tarefa: Identifique as operações essenciais de criptografia assimétrica.

1.2.4 Conexão SSL


Os certificados digitais também são utilizados para tornar segura a comunicação entre procolos de
rede, como http, smtp, imap, ldap, etc. Tomando como exemplo uma página web, o administrador
do serviço deverá obter um certificado digital e configurá-lo no servidor web.
Em toda conexão SSL, o certificado digital presente no servidor é enviado ao cliente da conexão
a cada nova conexão, e assim ocorre quando o navegador realiza uma conexão https. Ao receber o

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 6


Introdução e Prática de Certificação
ChapterDigital
1. Introdução a certificação digital

certificado do servidor o navegador realiza a verificação da assinatura digital (hash) presente no


certificado.
Para realizar isto, o navegador possui uma base de certificados digitais de autoridades cer-
tificadoras. Assim, quando tenta-se realizar uma conexão https, e o certificado recebido não foi
assinado por uma das autoridades certificadoras pré-existente no navegador, o certificado do servidor
não poderá ser validado.

Figure 1.3: Topologia da especificação x509

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 7


CHAPTER 2

Autoridade Certificadora
Neste capı́tulo, serão abordados os procedimentos técnicos que são realizados por uma Autoridade
Certificadora, desde a criação do certificado raiz até a emissão de certificados digitais. Todos os
adjetivos de relevância são relativos aos procedimentos técnicos.
É importante ressaltar que as normas que descrevem o funcionamento da Autoridade Certifi-
cadora (Declaração de Polı́ticas de Certificação - DPC), e o cumprimento integral de sua especificação,
são preceitos indispensáveis para o funcionamento de uma Autoridade Certificadora.
Deve-se considerar que os procedimentos aqui demonstrados são semelhantes aos executados por
uma Autoridade Certificadora, todavia, a emissão de certificados através dos utilitários da biblioteca
OpenSSL não é compatı́vel com o nı́vel de segurança requerido por uma Autoridade Certificadora, em
que é necessário a utilização de um software de front-end, um software independente ou um Hardware
security module para a proteção da chave privada da Autoridade Certificadora.
Nesta demonstração, serão utilizadas as ferramentas fornecidas pelo projeto OpenSSL (http://www
.openssl.org/) que estão disponı́veis no pacote openssl. A instalação deve ser realizada como indicado:

# aptitude install openssl

2.1 Emissão do certificado raiz da Autoridade Certificadora


O procedimento técnico fundamental para a inicialização de uma Autoridade Certificadora é a criação
da chave privada e emissão do certificado raiz. O quadro abaixo indica como emitir o certificado
raiz; atente que os três primeiros campos (Country, State, City) não serão utilizados no certificado,
sendo preenchidos com um ponto ”.”.

# cd /etc/ssl/certs
# openssl req -x509 -newkey rsa:2048 -keyout Universidade_CA.key.3des
-out Universidade_CA.cer -days 7305

Country Name (2 letter code) [AU]:.


State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) []: Universidade Federal do Para
Organizational Unit Name (eg, section) []:Servico de Processamento de Dados
Common Name (eg, YOUR name) []:Autoridade Certificadora da Universidade
Email Address []:cert@ufpa.br

• req: opção utilizada para a criação da requisição de certificado (Certificate Signing Request -
CSR) e para emissão de certificados raı́zes.

Certificação Digital 8
Introdução e Prática de Certificação Digital
Chapter 2. Autoridade Certificadora

• -x509: indica a criação de um certificado raiz.


• -newkey rsa:2048: solicita a criação de uma chave privada com algoritmo RSA de 2048 bits.
Pode-se utilizar a opção -key para indicar uma chave privada pré-existente.
• -keyout Universidade CA.key.3des: caso a seja solicitada a criação da chave privada
através da opção -newkey, pode-se indicar através desta opção o nome do arquivo que a
chave privada será salva. Note que será requerida uma senha para a proteção da chave privada
através de criptografia simétrica com o algoritmo 3DES, a opção -nodes pode ser utilizada
para evitar esta proteção, mas isto não é recomendado.
• -out Universidade CA.cer: indica o nome do arquivo em que o certificado raiz criado será
salvo.
• -days 7305: indica a validade do certificado raiz. Em geral os certificados raı́zes de Autoridade
Certificadora tem validade de 20 anos.

Arquivo Descrição
Universidade CA.cer Certificado raiz da Autoridade Certificadora
Universidade CA.key.3des Chave privada criptografada da AC (3DES)

Table 2.1: Arquivos referentes a Autoridade Certificadora

2.2 Requisição de Certificado


O procedimento inicial para a obtenção de um certificado digital padrão x509 é a criação uma req-
uisição de certificado (Certificate Signing Request - CSR) pelo requerente. O arquivo CSR gerado
deve ser levado à Autoridade de Registro juntamente com documento identificatório; sendo encam-
inhados à emissão do certificado pela Autoridade Certificadora.

1 # cd /etc/ssl/certs
2 # openssl req -new -out web.csr -keyout web.key.3des
3

4 Country Name (2 letter code) [AU]:.


5 State or Province Name (full name) [Some-State]:.
6 Locality Name (eg, city) []:.
7 Organization Name (eg, company) []:Universidade Federal do Para
8 Organizational Unit Name (eg, section) []:Servico de Processamento de Dados
9 Common Name (eg, YOUR name) []:web.ufpa.br
10 Email Address []:cert@ufpa.br

• req: opção utilizada para a criação da requisição de certificado (Certificate Signing Request -
CSR) e para emissão de certificados raı́zes.
• -new: indica a criação de uma requisição de certificado digital.
• -out web.csr: indica o nome do arquivo que será criado contendo a requisição de certificado
digital.
• -keyout web.key.3des: a omissão do parâmetro -key implica na solicitação de criação de
chave privada, e esta opção indica o nome do arquivo que será criado contendo a chave privada.

A requisição de certificado web.csr contém informações necessárias para a Autoridade Certi-


ficadora gerar o certificado assinado. No caso de certificados utilizados em software, como é o caso

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 9


Introdução e Prática de Certificação Digital
Chapter 2. Autoridade Certificadora

do exemplo acima, a verificação dos documentos do solicitante deve ser referente ao responsável pela
máquina, diretor ou represente da empresa que detém o nome e domı́nio mencionado na requisição.

2.3 Emissão de certificado assinado pela Autoridade Certi-


ficadora
A requisição de um certificado deve ser enviada a Autoridade de Registro, juntamente com docu-
mentos que comprovem as informações contidas na requisição. A autoridade certificadora irá emitir
um certificado e encaminhar ao requerente:

2.3.1 Certificado de software


A emissão do primeiro certificado, seja de software ou de usuário, deve-se utilizar o parâmetro -
CAcreateserial e em todos demais certificados o parâmetro -CAserial Universidade CA.srl.
Considerando o requisição web.csr e a validade de 3 anos:

# openssl x509 -in web.csr -out web.cer -req


-CA Universidade_CA.cer -CAkey Universidade_CA.key.3des
-CAserial Universidade_CA.srl -days 1095

• x509: opção utilizada para a emissão de certificados digitais.


• -in web.csr: informa o arquivo contendo a requisição de certificado.
• -out web.cer: informa o nome do arquivo a ser criado contendo o certificado digital assinado
pela Autoridade Certificadora.
• -req: indica que a emissão do certificado será baseada em uma requisição de certificado (outras
fontes possı́veis são certificados pré-existentes).
• -CA Universidade CA.cer: informa o certificado utilizado para assinar o novo certificado
digital. Os dados do certificado assinante (Subject) estarão contidos no certificado criado (Is-
suer).
• -CAkey Universidade CA.key.3des: informa a chave privada do certificado assinante, uti-
lizada para a criação da assinatura digital (hash criptográfico).
• -CAserial Universidade CA.srl: indica um arquivo utilizado como contador para identi-
ficar o número de série do certificado. O primeiro certificado emitido deve utilizar a opção
-CAcreateserial.
• -days 1095: indica a validade do certificado, em geral, entre 1 e 3 anos. A justificativa para uso
da validade é para a prevenção de ataques de força bruta, visto que quando ocorre o vencimento
do certificado, um novo certificado deve ser emitido.

2.3.2 Certificado de usuário


Considerando o requisição reinaldo-carvalho.csr e a validade de 3 anos:

# openssl x509 -in reinaldo-carvalho.csr -out reinaldo-carvalho.cer -req


-CA Universidade_CA.cer -CAkey Universidade_CA.key.3des
-CAserial Universidade_CA.srl -days 1095

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 10


Introdução e Prática de Certificação Digital
Chapter 2. Autoridade Certificadora

Ao receber o certificado digital, o usuário pode gerar um arquivo no formato PKCS #12.
Formato que é formado a partir da junção do certificado digital com a chave privada. Este recurso
pode ser fornecido pela Autoridade de Registro, ou realizado pelo próprio usuário como indicado
abaixo:

# openssl pkcs12 -export -in reinaldo-carvalho.cer


-inkey reinaldo-carvalho.key.3des -out reinaldo-carvalho.p12
-name ’Reinaldo Gil Lima de Carvalho’

• pkcs12: formato de arquivo unificado para certificados digitais e chave privada.


• -export: opção para criação de arquivo no formato PKCS #12.
• -in reinaldo-carvalho.cer: certificado digital do usuário.
• -inkey reinaldo-carvalho.key.3des: chave privada do usuário.
• -out reinaldo-carvalho.p12: informa nome do arquivo PKCS #12 gerado.
• -name ’Reinaldo Gil Lima de Carvalho’: informa o nome do usuário.

2.4 Arquivos gerados


Observemos a lista comentada dos arquivos gerados:

Arquivo Descrição
web.csr Requisição de Certificado para o host web.ufpa.br
web.key.3des Chave privada RSA criptografada com 3DES
web.cer Certificado emitido para web.ufpa.br
reinaldo-carvalho.csr Requisição de Certificado para Reinaldo Gil Lima de Carvalho
reinaldo-carvalho.key.3des Chave privada RSA criptografada com 3DES
reinaldo-carvalho.cer Certificado emitido para Reinaldo Gil Lima de Carvalho
reinaldo-carvalho.p12 Certificado padrão PKCS#12 (assinatura e descriptografia)

Table 2.2: Arquivos gerados

As requisições de certificados podem ser descartadas após a emissão do certificado.

2.5 Descriptografando a chave privada


Ao gerar uma requisição de certificado, uma chave privada criptografada é criada. Para que os serviços
(ldap, imap, smtp, http, etc) possam ser inicializados sem requerem a senha de descriptografia da
chave privada, é necessário exportar a chave privada sem criptografia, conforme indicado:

# openssl rsa -in web.key.3des -out web.key

O parâmetro -nodes pode ser utilizado quando da geração da chave privada ou requisição de
certificado, para que a chave privada não seja criptografada.

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 11


Introdução e Prática de Certificação Digital
Chapter 2. Autoridade Certificadora

2.6 Análise da Requisição de Certificado


A requisição de certificado é formada por:

• Subject: Informações referentes ao solicitante do certificado.


• RSA Public Key: Chave pública do solicitante do certificado.
• Signature: Assinatura das informações acima com a chave privada do solicitante. Este campo
é implı́cito após o campo Signature Algorithm.

Estes dados são armazenados com representação binária e codificados em base-64 nos arquivos
.csr, e seu conteúdo decodificado com o comando:

# openssl req -noout -text -in web.csr

2.7 Análise do Certificado


O certificado é formado por:

• Issuer: Informações referentes autoridade certificadora.


• Validity: Validade do certificado.
• Subject: Informações referentes ao proprietário do certificado.
• RSA Public Key: Chave pública do proprietário certificado.
• Signature: Assinatura com a chave privada da autoridade certificadora das informações con-
tidas no certificado. Este campo é implı́cito após o campo Signature Algorithm.

Estes dados são armazenados com representação binária e codificados em base-64 nos arquivos
.cer, e seu conteúdo pode ser decodificado com o comando:

# openssl x509 -noout -text -in web.cer

Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com 12


Bibliography
[1] ARPNet.biz. Certificação digital (image). 2009. http://www.arpnet.biz/img/certificacao digital.jpg.

[2] Icp-brasil: Infra-estrutura de chaves públicas brasileira. 2009. http://www.icpbrasil.gov.br/.

[3] Wikipedia. Função hash. 2015. http://pt.wikipedia.org/wiki/Função hash.

Certificação Digital 13
APPENDIX A

Licença
A obra Introdução e Prática de Certificação Digital foi iniciada em 25/11/2009.

Introduç~
ao e Prática de Certificaç~
ao Digital.
Copyright c CC-BY-NC-ND 2019 Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com

ESSA OBRA É LICENCIADA PELA LICENÇA CREATIVE COMMONS:


Attribution-NonCommercial-NoDerivatives 4.0 International.

Figure A.1: CC-BY-NC-ND

Esta licença permite que seja realizado o compartilhamento da obra desde que os créditos sejam
mantidos para o autor, mas a obra não pode ser modificada nem utilizada comercialmente. Caso
necessite de autorizações adicionais ou licenciá-la para fins não autorizados por esta licença entre em
contato com o autor.

• https://creativecommons.org/licenses/by-nc-nd/4.0/

Sobre o Autor...

• http://reinaldoc.wordpress.com
• https://www.linkedin.com/in/reinaldo-gil-lima-de-carvalho

Certificação Digital 14