Tópicos Especiais em Redes de Computadores Certificado Digital (OpenSSL) Professor: Alexssandro Cardoso Antunes
Certificado Digital Conceitos e Objetivos Documento criptografado que contém informações necessárias para a identificação de uma pessoa ou entidade jurídica. Garanti a autenticidade da origem (analogia, carteira de identidade, passaporte digital). Utilizados para autenticar pessoas, equipamentos (servidores) e entidades. São padronizados (maior aceitação) pelo formato X.509 da ITU-T (International Telecommunications Union Telecommunications) e assinados por uma autoridade certificadora (garante que as informações contidas nos certificados são verdadeiras). Exemplos de Autoridades Certificadoras (AC): certisign, serpro e serasa.
Certificado Digital Certificados digitais (CD) emitidos por AC possuem prazo de validade e podem ter o seu funcionamento cancelado. Ao adquirir um CD é gerado um par de chaves (responsabilidade da chave privada, usuário + AC). Preservar os certificados... Suspeitas de fraude (roubo, clonagem) do certificado, pedir revogação. É um arquivo no computador que identifica o usuário, servindo para comprovar a identidade para outra pessoa ou outro computador. Usualmente, contém as seguintes informações: Nome e endereço de email; A chave pública do usuário; Validade da chave pública; Nome da autoridade certificadora; Número de série do certificado digital; Assinatura digital da autoridade certificadora.
SSL (OpenSSL) Projeto http://www.openssl.org Etapas que envolvem o funcionamento do SSL (básico) 1) O cliente conecta via tcp (protocolo de transporte) no servidor HTTPS (porta 443). 2) O servidor envia ao cliente o seu certificado digital (contém a chave pública). 3) O cliente confere (verifica as informações) a assinatura do certificado digital. 4) O servidor solicita ao cliente um certificado digital (etapa opcional). 5) O cliente envia o seu certificado digital ao servidor (caso a etapa anterior seja solicitada). 6) O servidor verifica as informações do certificado do cliente. 7) As duas partes iniciam a troca de informações com segurança.
SSL (OpenSSL) Instalação #yum install mod_ssl #yum install openssl #apt-get install openssl Implementação (integração) do OpenSSL e o Servidor Web Apache 1) Verificação do módulo SSL (mod_ssl.so) bem como o arquivo de configuração (ssl.conf) Usualmente, já estão ativos após a instalação dos pacotes, caso negativo, verificar a linha (LoadModule ssl_module...) no arquivo ssl.conf. 2) Geração da chave privada #openssl genrsa -des3 -out server.key 1024 Passos a serem executados... a. Digite a FraseSenha (serve para identificar o proprietário da chave privada). b. Confirme a FraseSenha. c. Criação do arquivo (server.key).
SSL (OpenSSL) 3) Para evitar que o Servidor Web Apache solicite o conteúdo da FraseSenha ao ser iniciado #openssl rsa -in server.key -out server.key.insecure Passos a serem executados... a. Digite a FraseSenha (serve para identificar o proprietário da chave privada). b. Escrita da chave privada (conteúdo) e criação do arquivo (server.key.insecure). #mv server.key server.key.old (backup do arquivo original/chave privada) #mv server.key.insecure server.key 4) Geração do CSR (requisição de assinatura do certificado) #openssl req -new -key server.key -out server.csr Passos a serem executados... a. Informações públicas serão solicitadas (país, estado, cidade, nome da organização, seção, nome ou hostname, endereço eletrônico, atributos extras/certificado). b. Criação do arquivo (server.csr).
7) Habilitar (verificar) no arquivo de configuração (ssl.conf) o caminho para os arquivos (chave e certificado). SSLCertificateKeyFile /etc/pki/tls/private/server.key SSLCertificateFile /etc/pki/tls/certs/server.crt SSL (OpenSSL) 5) Geração do certificado pela própria entidade (sem autoridade certificadora comercial...) #openssl x509 -req -days 120 -in server.csr -signkey server.key -out server.crt Passos a serem executados... a. Verificação da assinatura (chave privada). b. Criação do arquivo (server.crt). 6) Copiar (verificar) os arquivos (chave e certificado) para o Servidor Web Apache (exemplo de localização, distribuição Fedora) #cp server.key /etc/pki/tls/private #cp server.crt /etc/pki/tls/certs
SSL (OpenSSL) 8) Reiniciar o Servidor Web Apache e testar a conexão entre o cliente (browser, https://...) e o servidor. Passos a serem executados... a. Irá exibir o certificado informando uma mensagem de alerta (autoridade certificadora não reconhecida). b. Examinar se as informações (públicas) do certificado estão condizentes.
SSL (OpenSSL) Atividades 1) Realize a Implementação (integração) do OpenSSL e do Servidor Web Apache, sendo que o resultado final de todos os procedimentos será a geração da chave privada (arquivo server1.key), a requisição de assinatura do certificado (arquivo server1.csr) e o certificado digital (arquivo server1.crt). Não esqueça de automatizar o processo, ou seja, o Servidor Web Apache não poderá solicitar o conteúdo da FraseSenha ao ser iniciado. 2) Realize o teste de conexão (entre o cliente e o servidor) e verifique se as informações (públicas) do certificado estão condizentes com a atividade (1).