Home

Autenticação Web com certificados digitais

image

Contents

1. client using certificate name _SERVER SSL_CLIENT_S_DN_CN email S SERVER SSL CLIENT S DN Email if name amp amp email db mysql_connect localhost root pass mysql select db apacheauth db result mysql query SELECT FROM TAB User where cn Sname and email email db if myrow mysql fetch row Sresult include loginOk html exit if not a valid login or certificate include login html gt Exemplo 9 Script em PHP para autenticar utilizadores Como se pode verificar a vari vel S SERVER SSL CLIENT VERIFY permite controlar se o cliente submeteu um certificado ou n o para autenticar se Caso tenha submetido e este seja v lido esta vari vel ter o valor SUCCESS Sendo este o caso temos de verificar se o utilizador existe na base de dados A verifica o efectuada atrav s de uma consulta base de dados com o CN e o email definidos no certificado Estes valores s o obtidos atrav s das vari veis S SERVER SSL CLIENT S DN CN e S SERVER SSL CLIENT S DN Email respectivamente Caso n o exista certificado ser mostrada a p gina de login permitindo ao utilizador aceder ao site atrav s do login e da passowrd No exemplo 7 apenas utilizamos o email address e o common name para verificar se o utilizador v lido No entanto outros campos poder o ser utilizados A tabela 1 apresenta
2. Server Certificate Point SSILCertificateFile at a PEM encoded certificate If the certificate is encrypted then you will be prompted for a pass phrase SSLCertificateFile etc pki tls certs server cert pem Server Private Rey If the key s not combined with the certificate use this directive to point at the key file SSLCertificateKeyFile N etc pki tls private server key pem Location of the Revocation List SSLCARevocationFile N etc pki CA crl cacrl crl Export environment variables for php SSLOptions StdEnvVars Exemplo 6 Directivas do Apache para configura o do ssl Neste exemplo s o apresentadas v rias directivas As especificas relativas aceita o e valida o dos certificados dos clientes s o apresentadas no exemplo 7 Client Authentication Type Client certificate verification type and depth SSLVerifyClient optional SSLVerifyDepth 10 Certificate Authority CA SSLCACertificateFile etc pki CA cacert pem Location of the Revocation List SSICARevocationFile etc pki CA crl cacrl crl Export environment variables for php SSLOptions StdEnvVars Exemplo 7 Directivas do Apache para autentica o de clientes atrav s de certificados Como se pode verificar neste exemplo as directivas SSLVerifyClient e SSLVerifyDepth definem como ser efectuada a verifica o e se esta ser efectuada A primeira directiva define se ser o aceite
3. efectuado atrav s dos seguintes passos 1 Abrir o Web Browser Firefox 2 Prima o bot o Ferramentas da barra de Menu e seleccione Op es P gina inicial do Mozilla Firefox Mozilla Firefox Ficheiro Editar Ver Ir Marcadores Ferramentas Ajuda J N A FL Pesquisa Web Ctrl K 8006 Ler Correio 3 novas Nova Mensagem Ctrl M Transfer ncias Ctrl 3J Extens es Temas Consola de JavaScript Informa o da P gina Pesquisar G Pesquisa G 3 Seleccionar a op o Avan ado no lado esquerdo da janela de op es 3 Avan ado Geral f Acessibilidade Navega o ED E Navega o com Separadores Actualiza o de Software web Seguran a Certificados E Valida o a 5 s z q D gt A 5 amp Ta Avan ado a Geral E a Navega o com Separadores A Actualiza o de Software Privacidade Seguran a E Certificados we Selec o do Certificado do Cliente Decidir como o Firefox selecciona um certificado de seguran a para aprt E que o requerem Transfer ncias Seleccionar Automaticamente Perguntar Sempre zos Gerir Certificados An Usar o Gestor de Certificados para gerir os seus certificados pessoais t iti pessoas e autoridades certificadoras Gerir Certificados p Gerir Dispositivos de Seguran a Use este bot o para gerir os seus dispositivos de seguran a tal como s
4. Departamento de Engenharia Inform tica da ESTG Leiria Licenciatura Engenharia Informatica Seguran a de Informa o 2005 2006 5 Configura o do Apache O ficheiro de configura o principal do Apache o httpd conf no entanto a vers o 2 contem as instru es para a introdu o das directivas ssl no ficheiro ssl conf Estas poder o ser introduzidas em qualquer um dos ficheiros O exemplo 6 mostra as directivas necess rias para configurar o Apache a aceitar liga es ssl e autenticar clientes atrav s de certificados SSL Engine Switch Enable Disable SSL for this virtual host SSLEngine on don t use SSlv2 as it has fundamental design problems SSLProtocol all SSLv2 all ciphers using strong encryption Triple DES SSLCipherSuite HIGH Client Authentication Type Client certificate verification type and depth Types are none optional require and optional no ca Depth is a number which specifies how deeply to verify the certificate issuer chain before deciding the certificate is not valid depth of 1 means the client certificate has to be signed by a CA which is directly known to the server SSLVerifyClient optional SSLVerifyDepth 10 Certificate Authority CA Set the CA certificate verification path where to find CA certificates for client authentication or alternatively one huge file containing all of them file must be PEM encoded SSLCACertificateFile etc pki CA cacert pem
5. Gerir Dispositivos de Seguran a Valida o 5 Na sec o Gerir Certificados prima o bot o Gerir certificados Gestor de Certificados Os Seus Certificados De Outras Pessoas Sites Autoridades Tem certificados destas organiza es que o identificam a Nome do Certific Dispositivo de Segura Objecti N mero de 5 Expira 6 No separador Os seus certificados prima o bot o Importar onde aparecer uma janela de di logo para seleccionar o certificado a importar lome de Ficheiro para Restaurar Procurar em E Ambiente de trabalho OB PE a LJ Os meus documentos 2 9 O meu computador Ds meus 05 meus locais na rede documentos re E Pomerquest Partition Magic v802 Bro E EDProjectol Ambiente de Em st trabalho Os meus documentos E O meu computador Nome do ficheiro Abrir Os meuslocais Ficheiros do tipo Ficheiros PKCS12 v Cancelar 7 Navegue at localiza o do certificado a importar 8 Seleccione o e prima o bot o Abrir Se o certificado estiver protegido por palavra chave aparecer uma janela de di logo para inser o da palavra chave 9 Insira a palavra chave e prima Ok O certificado ser importado para o Firefox 10 A fim de confirmar a correcta importa o do certificado localize o nome do certificado que acabou de importar no separado
6. o o CN common name e o endere o de correio electr nico O exemplo 8 apresenta os comandos sql utilizados para a cria o da tabela em MySql Departamento de Engenharia Inform tica da ESTG Leiria Licenciatura Engenharia Informatica Seguran a de Informa o 2005 2006 CREATE DATABASE apacheauth USE apacheauth CREATE TABLE TAB User login varchar 25 not null password varchar 50 cn varchar 255 email varchar 255 Primary Key login Exemplo 8 Cria o da tabela TAB User 7 Autentica o utilizando o PHP Como exemplo e utilizando a tabela referida anteriormente construiu se um script em PHP que permite a autentica o do utilizador atrav s dum login e password ou atrav s de um certificado Como o Apache controla a valida o do certificado ao n vel do PHP a nica opera o necess ria a verifica o do utilizador na base de dados Este script apresentado no exemplo 9 lt php if S SERVER SSL CLIENT VERIFY SUCCESS Not using a client certificate if isset S POST login amp amp isset POST password verify login db mysql connect localhost root pass mysql select db apacheauth db Sresult mysql query SELECT FROM TAB User where login w im S PosSTI Login and password S POST password if myrow mysql fetch row Sresult include loginOk html exit TEM Sdb s else
7. private key kdir etc CA private k create file serial initiating to 01 the serial file is a text file containing the next serial number to use in hex format echo 01 gt etc CA serial f create index txt file ft in this file an index of all k certificates authenticated by this CA F will be created SBD 55 echo gt etc CA index txt create CA certificate valid for 10 years openssl req new x509 keyout etc CA private cakey pem out etc CA cacert pem days 3650 Exemplo 5 Cria o de uma CA Para o estabelecimento de uma liga o ssl pelo Apache necess rio que o servidor tenha um certificado autenticado Para isso necess rio criar um pedido de certificado que depois ser autenticado pela CA Neste exemplo o certificado ser autenticado pela CA criada anteriormente Para a cria o de um pedido de certificado utiliza se o comando openssl req new keyout new req pem out new req pem 365 Neste exemplo criou se um certificado v lido por 1 ano 365 dias Este pedido de certificado cont m a chave privada e p blica Para retirar a chave privada utiliza se o comando openssl rsa lt newreg pem gt new key pem o ficheiro new key pem ir conter a chave privada do servidor Para assinar o certificado utilizando a CA privada utiliza se o comando openssl ca policy policy anything N out new cert pem infiles new req pem O ficheiro new crt ir conter o novo certificado O ce
8. Departamento de Engenharia Inform tica da ESTG Leiria Licenciatura Engenharia Informatica Seguran a de Informa o 2005 2006 Autentica o Web com certificados digitais Leonel Filipe Sim es Santos e Nuno Filipe Pedro Jacinto Departamento de Engenharia Inform tica Escola Superior de Tecnologia e Gest o de Leiria Morro do Lena Alto do Vieiro Leiria Telf 351 244 820 300 fax 351 244 820 310 e mail e106707 O student estg ipleiria pt e107013 O student estg ipleiria pt Resumo Este artigo pretende indicar uma op o de configura o do servidor Apache para suporte de autentica o de utilizadores com certificados digitais 1 Introdu o O objectivo deste artigo mostrar como se pode configurar o Apache de forma a permitir que um utilizador se autentique utilizando certificados digitais Para tal ser apresentada uma introdu o te rica do processo de autentica o seguindo se os passos de instala o e configura o das tecnologias utilizadas A utiliza o de uma liga o segura e a autentica o do cliente obriga cria o de certificados tanto para o cliente como para o servidor Estes ter o de ser autenticados por uma CA Certificate Authority a fim de se poder verificar a sua autenticidade Para tal criamos uma CA privada sendo desta forma poss vel autenticar os nossos certificados de teste tanto do servidor como dos clientes A verifica o do certificado e a aceita o fe
9. a lista de vari veis existentes no PHP SSL CIPHER SSL CIPHER ALGKEYSIZE SSL CIPHER EXPORT SSL CIPHER USEKEYSIZE SSL CLIENT A KEY l SSL_CLIENT_A_SIG SSL CLIENT I DN SSL CLIENT I DN C SSL CLIENT I DN CN SSL CLIENT I DN Email SSL CLIENT I DN 1 SSL CLIENT I DN 0 SSL CLIENT I DN OU SSL CLIENT I DN ST SSL CLIENT M SERIAL SSL CLIENT M VERSION SSL CLIENT S DN SSL CLIENT S DN C SSL CLIENT S DN CN SSL CLIENT S DN Email SSL CLIENT S DN 1 SSL CLIENT S DN 0 SSL CLIENT S DN OU SSL CLIENT S DN ST SSL CLIENT V END SSL_CLIENT_V_START SSL_CLIENT_VERIFY SSL PROTOCOL Tabela 1 Vari veis SSL importadas para o PHP l 8 Manual de instala o de certificados num Web Browser Serve o presente manual para elucidar o utilizador sobre o processo de instala o de um certificado digital num Web Browser Na demonstra o aqui efectuada utilizamos o Web Browser da Mozzila Firefox Ap s o utilizador ser detentor de um certificado digital assinado por uma Certification Authority CA o mesmo pode instal lo no seu Web Browser para proceder Departamento de Engenharia Inform tica da ESTG Leiria Licenciatura Engenharia Informatica Seguran a de Informa o 2005 2006 sua utiliza o aquando de comunica es seguras com um servidor HTTP atrav s do protocolo HTTPS O processo de instala o
10. ificados Para a realiza o do cen rio demonstrativo da autentica o com certificados necess ria a exist ncia de certificados tanto para os clientes que se pretendem autenticar no servidor como para o servidor Apache para se autenticar nos clientes Para isso optou se por criar uma CA privada O OpenSSL tem um script que permite a cria o de uma CA o CA sh que se encontra na da directoria mi sc do OpenSSL Utilizando este script basta adicionar o par metro newca para que seja criada a CA O comando completo seria CA sh newca Este script ir criar um certificado que permitir assinar os certificados dos clientes e do servidor Ser este certificado que iremos mais tarde importar para o browser na parte das CA em que confiamos e colocaremos na configura o do apache para verificar os certificados dos clientes Para al m do certificado para a CA o script anterior ir tamb m criar uma estrutura de direct rios onde ser o colocados os ficheiros necess rios para a gest o das assinaturas dos certificados que assinar O exemplo 5 cont m os comandos necess rios para a cria o da CA manualmente create a Certificate Authority f create the directory hierarchy kdir etc CA directory containing the certificate kdir etc CA certs directory containing the certificate revocation list files invalid certificates kdir etc CA crl directory containing new certificates kdir etc CA newcerts directory containing the
11. ita de forma autom tica pelo Apache sendo apenas necess rio a configura o correcta do mesmo Como exemplo desta capacidade do Apache apoiada pelo PHP criou se um script em PHP que permite acedendo s informa es existentes no certificado autenticar o cliente verificando a sua exist ncia na base de dados Por fim ser apresentado sucintamente como se poder importar para o Firefox um certificado a fim de testar o uso de certificados no processo de autentica o entre o cliente e o servidor 2 Processo de autentica o com certificados O processo de autentica o e comunica o vai utilizar criptografia assim trica Este tipo de criptografia surgiu para resolver dois grandes problemas da criptografia sim trica a distribui o de chaves e as assinaturas digitais Neste tipo de cifragem s o utilizadas duas chaves relacionadas matematicamente para cada entidade S o elas a chave p blica que divulgada e a chave privada que mantida em segredo A sua principal utiliza o prende se com o facto de n o s garantir a autentica o e o n o repudio do emissor mas tamb m a garantia e confidencialidade e integridade das mensagens A divulga o ou distribui o da chave p blica pode ser efectuada atrav s de t cnicas de distribui o de chaves p blicas tais como o an ncio p blico a disponibiliza o de uma directoria p blica a utiliza o de uma autoridade de chave p blica e certificados de cha
12. o Neste tipo de distribui o de chaves utilizada a norma X 509 da ITU T que o standard que vamos utilizar para a gera o de certificados com a estrutura do mesmo Fig 2 Departamento de Engenharia Inform tica da ESTG Leiria Licenciatura Engenharia Informatica Seguran a de Informa o 2005 2006 3 Tecnologias utilizadas Para a realiza o de autentica o com certificados digitais no Apache utilizamos o servidor Apache o OpenSSL o PHP e o MySql Estas ser o apresentadas de forma sucinta neste cap tulo sendo tamb m apresentada sem grande profundidade a forma como estas poder o ser instaladas O OpenSSL uma implementa o open source da Secure Socket Layer vers o 2 e 3 e da Transport Layer Security vers o 1 Este permite em conjunto com o Apache atrav s do modulo ssl o estabelecimento de liga es seguras e a autentica o dos clientes atrav s de certificados O processo de instala o a partir do c digo fonte bastante simples como se pode verificar no exemplo 1 config make make install Exemplo 1 Instala o do OpenSSL Este processo ir instalar o OpenSSL no direct rio usr local ssl Para definir outra directoria necess rio introduzir o par metro prefix O Apache um servidor de http pelo menos esta uma das principais tarefas que desempenha A sua instala o passa por definir os par metros de compila o e instala o compilar e instalar Os pa
13. r Os seus certificados 9 Mais Informa es a Apontamentos Te ricos da disciplina de Seguran a de Informa o DEI ESTG Leiria William Stallings Cryptography and Network Security Principles and Practice Prentice Hall 1999 www apache org www php net www openssl org www mysql com s moana
14. rtificado do servidor e a sua chave p blica ser o utilizados para autenticar o servidor no cliente aquando o estabelecimento da liga o A configura o do apache para utilizar estes certificados ser apresentada posteriormente A cria o de um certificado para um cliente igual cria o de um certificado para um servidor No entanto porque a maioria dos browsers s aceita certificados no formato pkcs12 sendo necess rio converter o certificado Para converter o certificado para o formato pkcs12 utiliza se o comando openssl pkcsl2 export in new cert pem inkey new_key pem out new_pkcs12 p12 O ficheiro new_pkcs12 p12 ser o ficheiro importado pelo browser O Exemplo seguinte mostra todos os passos referidos anteriormente sobre a cria o de um certificado para servidor ou para cliente n o sendo necess rio executar o ltimo comando para a cria o de um certificado para um servidor create a new certificate request valid for 1 year openssl req new keyout new req pem N out new req pem 3650 sign a certificate request openssl ca policy policy anything N out new cert pem N infiles new reqg pem extract the private key from the certificate openssl rsa lt newreq pem gt new_key pem convert the certificate to pkcs12 file suported by browsers openssl pkcs12 export N in new_cert pem inkey new_key pem out new_pkcs12 p12 Exemplo 5 Cria o de um certificado
15. s dados do certificado do utilizador A instala o depende das funcionalidades que se pretende que este disponibilize O exemplo 3 demonstra uma possibilidade disponibilizando o acesso ao MySql configure with apxs2 N usr local apache bin apxs N with mysqgl N prefix usr local apache php with config file path usr local apache php N enable force cgi redirect disable cgi N with zlib N with gettext with gdbm install Exemplo 3 Instala o do PHP A utiliza o do exemplo anterior pressup e que o Apache se encontra instalado na directoria usr local apache Para al m da instala o do PHP tamb m ser necess rio acrescentar algumas op es no ficheiro de configura o do Apache no httpd conf No exemplo 4 apresenta algumas dessas op es LoadModule php5 module modules libphp5 so Add index php to your DirectoryIndex DirectoryIndex index html index php Use f r PHP 5 x AddHandler php5 script php AddType text html php PHP Syntax Coloring AddType application x httpd php source phps Exemplo 4 Exemplo de op es introduzidas no httpd conf para o PHP Os processos de instala o referidos anteriormente est o muito sucintos Apenas servem como introdu o para uma configura o b sica Departamento de Engenharia Inform tica da ESTG Leiria Licenciatura Engenharia Informatica Seguran a de Informa o 2005 2006 4 Cria o de uma CA e de cert
16. s os certificados dos clientes e a segunda at que profundidade em termos de CA essa verifica o ser efectuada Segue se a directiva que informa o Apache onde poder consultar os certificados das CAs Nesta apenas introduzido o nome de um ficheiro contendo um ou v rios certificados de CAs concatenados Existe outra op o que poder ser utilizada em substitui o ou em conjunto com esta a SSLCACertificatePath Esta permite introduzir o direct rio onde est o os certificados de todas as CAs aceites pelo servidor A directiva SSLCARevocationFile indica o ficheiro contendo os certificados revogados A directiva SSLCARevocationPath permite introduzir o direct rio onde se encontram os certificados revogados Por fim temos a directiva SSLOpt ions esta ir permitir exportar as vari veis de ambiente para o PHP permitindo que atrav s do PHP se possa aceder informa o referente ao certificado do cliente Desta forma ser poss vel validar atrav s do PHP se o utilizador v lido ou n o que tipo de utilizador ou que permiss es tem 6 Base de Dados Para exemplo apenas foi constru da uma tabela a TAB User A fun o desta armazenar os dados referentes ao utilizador Como estamos a permitir dois tipos de autentica o pelo par login password e por certificados a tabela ir conter a informa o referente ao par login password e dois campos referentes ao certificado Os dados do certificado verificados s
17. ssos que se seguem assumem que nos encontramos na directoria onde temos o c digo fonte do Apache Para definir os par metros de compila o e instala o utiliza se o script configure Este ir necessitar de pelo menos um par metro adicional definindo o direct rio onde o Apache ser instalado Assim o comando para instalar o apache na directoria usr local apache seria configure prefix usr local apache De forma a permitir que o Apache suporte ssl necess rio compilar o Apache com este m dulo A partir da vers o 2 do Apache este m dulo j vem inclu do no c digo fonte bastando activ lo Para isso basta introduzir essa op o no script configure Assim o comando anterior teria de ter pelo menos as seguintes op es configure prefix usr local apache enable ssl Para compilar o apache utiliza se o comando make e para que este seja colocado na directoria definida utiliza se o comando make install O exemplo 2 mostra todos os passos necess rios para a instala o do apache configure prefix usr local apache enable so enable cgi enable info enable rewrite enable speling enable usertrack N enable deflate enable ssl N enable mime magic make make install Exemplo 2 Instala o do Apache O PHP um linguagem de scripting para a constru o de p ginas html din micas A sua utiliza o em conjunto com o Apache permite obter a informa o referente ao
18. ve p blica A t cnica que vamos utilizar a utiliza o de certificados de chave p blica Esta t cnica resolve o problema do ponto de engarrafamento que se pode gerar atrav s da t cnica da autoridade de chave p blica devido a n o ser necess rio a comunica o com a autoridade para requerer a chave p blica de um interveniente mas apenas confiar na autoridade certificadora CA que assinou o certificado que usado por um interveniente numa comunica o segura e usar a chave p blica que consta nesse mesmo certificado Fig 1 Certificate Authority Ca Ekrani fime IDa KUa Ca Ekran Times IDg KUb Ca Fig 1 Troca de certificados de chave p blica Cada interveniente pode gerar o seu pr prio certificado e enviar um pedido de assinatura a uma CA comercial ou n o para depois o usar nas comunica es com outros participantes Esse certificado cont m diversas informa es que podem ser vistas pelos participantes como o nome e a chave p blica do dono do certificado bem como a validade e o emissor do certificado Pode tamb m ser visto se o certificado j foi alterado ap s ter sido originado na CA que quem pode criar e actualizar certificados Este tipo de autentica o tem o problema de quando uma chave privada fica comprometida isto porque mesmo que seja detectada e anulado certificado podem se correr riscos enquanto nem todos os participantes tiverem conhecimento desse cancelament

Download Pdf Manuals

image

Related Search

Related Contents

  infos - FFCK  2 - Editions Tissot  Wiley Canon EOS 40D Digital Field Guide  Package `haplo.stats`  取扱説明書 - 三菱電機  Le Ministre de l`Intérieur à Mesdames et Messieurs les préfets de  PDFを見る - 東芝ライテック  SYMPTOMS Only one (1) board listed. This board comes with 8  

Copyright © All rights reserved.
Failed to retrieve file