Uma Introdução Sobre Certificados Digitais e PKI no Windows Server 2003

Por Robson Branco Júnior (MCP+I / MCSA / MCSE /CompTIA Security + Certified / ISPA Network) - Especialista em Infra-Estrutura e Segurança

Publicado em: 13 de agosto de 2006

Olá, pessoal, neste meu artigo irei falar sobre Certificados Digitais e PKI no Windows Server 2003 já que a segurança é um assunto emergente e preocupante nos dias de hoje. Diariamente as empresas sofrem ataques, sites ficam indisponíveis devido a ataques de hackers, novos vírus surgem, novos tipos de ataques são notificados, problemas com segurança no acesso a dados facilitam a vida de fraudadores e por ai vai.

Introdução

Bem, um dos fatores que levam as empresas a sofrerem ataques de segurança é porque o mundo inteiro utiliza o mesmo protocolo de comunicação e troca de dados: TCP-IP. Como este protocolo é amplamente conhecido e documentado, os hackers também se beneficiam das respectivas informações, com isso tentam descobrir falhas no próprio protocolo, falhas estas que permitem a quebra da segurança das redes corporativas. Evidentemente que, na maioria das vezes, os ataques são bem sucedidos, porque os sistemas foram instalados com as opções padrões (Out Of The Box), não se preocupando assim com os devidos ajustes de configurações de segurança apesar do Windows 2003 Server, vir totalmente fechado, dentre outros problemas.

Com o uso do TCP-IP como protocolo de comunicação, os dados não são protegidos por padrão. O hacker poderá interceptar a transmissão e evidentemente terá acesso aos seus dados, uma vez que por padrão não é utilizada a criptografia. Claro que em muitas situações a criptografia é dispensável. Agora existem situações em que a segurança deve ser o máximo possível como por exemplo em uma operação e compras pela internet.

Inicialmente criou-se um método de criptografia, onde os dados eram criptografados usando uma determinada chave de criptografia. A chave é um código com um determinado número de bits. Utiliza-se este código em conjunto com operações lógicas, para impossibilitar o entendimento e leitura dos dados, ou seja, criptografar os dados. Bem, a seqüência de operações lógicas que se realizará com os devidos dados, usando a chave de criptografia, é definida pelo algoritmo de criptografia. Em seguida os dados e a chave de criptografia são enviados para o destinatário. O destinatário recebe os dados e a chave de criptografia utilizando-a para descriptografar os respectivos dados. Porém este método não é seguro, existem dois problemas principais, os quais descrevo a seguir:

  • A chave de criptografia é enviada por sua vez junto aos dados. Com isso, se um hacker interceptar os dados, terá também o acesso a respectiva chave de criptografia. Os algoritmos de criptografia são de domínio público, a segurança é baseada normalmente no tamanho da chave, quanto maior o número de bits, mais difícil é, descobrir a chave que estar sendo utilizada, o hacker poderá inclusive alterar a mensagem e enviá-la, alterada, para o destinatário, o qual não saberia desta operação.

  • Bem, o mesmo hacker que utilizou a chave de criptografia para descriptografar os dados será beneficiado pelo segundo problema: não há como obter a verificação de identidade de quem enviou a mensagem. Ou seja, o destinatário não tem como saber se a mensagem veio do emissor verdadeiro ou se veio de um hacker.

Vejam que o uso exclusivo de criptografia, baseada em chave privada (chave enviada junto com a mensagem), não é tão seguro como poder parecer. Foi justamente para solucionar este problema que sugiram os "Certificados Digitais", com os quais é possível implementar uma infra-estrutura conhecida como PKI - Public Key Infrastructure ( Infra-Estrutura de chave pública). Esta infra-estrutura basea-se no uso de Certificados Digitais e de um par de chaves: uma chave pública e uma chave privada. Descreverei os princípios básicos de uma infra-estrutura baseada em chaves pública e privada, para que vocês possam entender como esta infra-estrutura resolve os dois problemas citados no método anterior.

Em uma rede que utiliza PKI, um Certificado Digital é criado e disponibilizado para cada usuário. O Certificado Digital associado a conta do respectivo usuário no AD (Active Directory) É criado para cada usuário um par e chaves: uma chave pública e um privada. A chave pública fica disponível no AD e a chave privada fica com o usuário. É comum a chave privada ficar gravada no Certificado Digital do usuário, em um disquete que fica em poder di usuário. Vamos entender como funciona a criptografia com base em um par de chaves: uma pública e outra privada. Dados criptografados com uma das chaves somente poderão ser descriptografados com a outra chave. Por exemplo caso você venha a criptografar dados com a chave do usuário "robsonbrancojr", estes dados só poderão ser descriptografados com a chave privada do usuário "robsonbrancojr".

Imaginamos o seguinte: o usuário robsonbrancojr precisa enviar dados para o usuário letícia. Os dados são criptografados com a chave pública de letícia. Com a infra-estrutura de PKI, as chaves públicas ficam disponíveis para serem acessadas por qualquer usuário. A chave pública fica gravada no Certificado Digital do usuário e a lista de Certificados Digitais fica publicada para acesso (Esse papel é de responsabilidade do Certificate Services, ou seja, emitir, publicar e revogar certificados para usuários). A chave pública do usuário letícia é utilizada pelo usuário robsonbrancojr para criptografar os dados, esse processo é realizado antes de enviar os respectivos dados. Os dados por sua vez foram criptografados com a chave pública do usuário letícia, surge então a seguinte pergunta: qual a única chave que poderá descriptografar estes dados? A chave privada do usuário letícia, a qual somente o usuário letícia tem acesso. É com este método que o usuário letícia quando recebe seus respectivos dados criptografados utilizando sua chave privada consegue descriptografa-los. Caso um hacker consiga interceptá-los, ele não conseguirá descriptografá-los, pois ele não terá acesso à chave privada di usuário letícia. Observando este método, percebemos que, a chave de criptografia não é enviada junto com os dados. Além disso, como os dados são criptografados com a chave pública do destinatário, somente o próprio destinatário (que é quem tem acesso a chave privada) será capaz de descriptografar os respectivos dados.

Os Certificados Digitais

Bem, de uma forma superficial um Certificado Digital nada mais é do que a versão eletrônica de sua identificação de usuário na rede (usuário e Senha). O Certificado Digital é como se fosse o RG do usuário na rede. No Windows 2003 Server, o certificado digital do usuário também é conhecido (Documentação Oficial) como certificado de chave pública, justamente pelo fato de que, um dos dados gravados no certificado é a chave pública do usuário.

Um certificado de chave pública, que é geralmente chamado de certificado, é uma declaração assinada digitalmente que vincula o valor de uma chave pública à identidade da pessoa (conta de usuário no AD), dispositivo ou serviço que contenha a chave privada correspondente.

Os certificados podem ser emitidos para uma série de funções, como autenticação de User na internet, autenticação de um servidor Web, correio eletrônico seguro (S/MIME), IPSec, para utilização com o protocolo Transaction Leyer Security (TLS, segurança de camada de transição) e assinatura de códigos (por exemplo, todos os programas desenvolvidos pela Microsoft são assinados, digitalmente, com o Certificado Digital da Microsoft. O Windows 2003 Server pode ser configurado para ser uma Autoridade Certificadora - CA (Certificate Authority). Estar disponível tanto no Windows 2003 Server como no Windows 2000 Server o Certificate Services, que é um servidor que nos permite criar uma autoridade certificadora dentro da própria rede corporativa, sem ter que fazer o uso de uma autoridade certificadora externa.

A maioria dos certificados em uso hoje é baseado no padrão X.509. Esta é a tecnologia fundamental usada na Public Key Infraestructure (PKI) do Windows 2000 e do Windows 2003 Server.

Normalmente, os certificados contêm as seguintes informações:

  • Chave Pública do usuário.

  • Informações da identificação do usuário (como o nome e o endereço de correio eletrônico).

  • Período de validade (o período de tempo em que o certificado é reconsiderado válido).

  • Informações sobre a identificação do emissor do certificado.

  • A assinatura digital do emissor, que atesta a validade de ligação entre a chave pública do usuário e as informações de identificação do usuário.

Um certificado só é válido pelo próprio tempo nele especificado, ou seja, o certificado tem prazo de validade e tem que ser renovado periodicamente, esta medida é importante para a segurança, pois a cada renovação, um novo par de chaves é gerado.

Em situações em que seja necessário desabilitar um certificado, este poderá ser revogado pelo emissor. Cada emissor mantém uma lisa de certificados revogados CRL ( Certification Revogation ), que pode ser usada pelos programas quando a validade de um determinado certificado está sendo verificado.

Certificados e Autoridades Certificadoras

Todo certificado é emitido por uma CA. A CA é responsável pela verificação sobre a veracidade dos dados do usuário que está requisitando o certificado. Por exemplo, qualquer usuário pode solicitar um certificado para utilizar na internet. Para obter o certificado, ele precisa utilizar os serviços de uma CA, como por exemplo a VeriSign (www.verisign.com).

Um autoridade de certificação é uma entidade encarregada de emitir certificados para indivíduos, computadores ou organizações, sendo que os certificados é que confirmam a identidade e outros atributos do usuário do certificados, para outras entidades. Uma CA aceita uma solicitação de certificado, verifica as informações do solicitador e, em seguida, usa sua chave privada para aplicar a assinatura digital no certificado. A CA emite então o certificado para o usuário do certificado o use como uma credencial de segurança dentro de uma infra-estrutura de chave pública (PKI). Uma CA também é responsável por revogar certificados e publicar uma lista de certificados revogados.

O Certificate Services da Microsoft permite a criação de sofisticados ambientes de certificação, com a criação de uma hierarquia de CAs.

Os Diferentes Tipos de Autoridades Certificadoras

Com o uso de Certificate Services, podem ser criados os seguintes tipos de CAs:

  • Enterprise Root CA.

  • Enterprise Subordinate CA.

  • Standalone Root CA.

  • Standalone Subordinate CA.

Uma CA raiz, às vezes chamada de autoridade raiz, é encarada como um tipo mais confiável de autoridade de certificação na PKI de uma organização. Geralmente, tanto a segurança física como a diretiva de emissão de certificados de uma CA raiz são mais rigorosas do que as de CAs subordinadas. Se a CA raiz estiver comprometida ou emitir um certificado um certificado para uma entidade não autorizada, toda a segurança baseada em certificados da sua organização estará vulnerável e não será mais confiável. Enquanto as CAs raiz podem ser usadas para emitir certificados para usuários finais. Em tarefas como enviar correio eletrônico seguro, na maioria das organizações elas são usadas apenas para emitir certificados para CAs chamadas de subordinadas. Uma medida indicada é criar a entidade certificadora raiz da empresa, no mesmo servidor configurado como Schema Máster do domínio e proteger o acesso físico e lógico deste servidor.

Diferenças entre os Tipos de Autoridades Certificadoras

Autoridade de Certificação Corporativa

Você poderá instalar o Serviço de Certificado para criar uma CA para as seguintes finalidades: Assinaturas Digitais, Correio Eletrônico seguro usando S/MIME (extensões multipropósito do Internet Mail protegidas), autenticação de Server Web seguro usando SSL ou TLS e logon em um domínio do Windows 2000 Server ou Windows 2003 Server, utilizando cartão Inteligente (Smart Card).

Uma CA Corporativa apresenta as seguintes características/Exigências:

  • Uma CA Corporativa exige o AD.

  • Instalando uma CA Corporativa raiz, ela automaticamente é adicionada ao armazenamento de certificados de autoridades de certificação raiz confiáveis, para todos os usuários e computadores contidos no domínio. É necessário que você tenha poderes de administrator do domínio ou administrator com direito de gravação no AD para instalar uma CA Corporativa root.

  • Solicitações de certificados enviadas para a CA corporativa serão atendidas ou negadas com base no conjunto de diretivas e permissões de segurança de acordo com o tipo de certificado solicitado. CAs corporativas nunca definem uma solicitação de certificado como pendente. Eles emitem ou negam as respectivas solicitações.

  • Os certificados podem ser emitidos para efetuar logon em um domínio utilizando Smart Card tanto no Windows 2000 Server quanto no Windows 2003 Server.

  • Certificados de usuários e a lista de certificados revogados (CRL), são publicados pelo módulo de saída corporativo no AD. Para publicar certificados no AD, o servidor em que a CA está instalada deve ser membro do grupo Certificate Publishers. Apesar de ser automático para o domínio em que o servidor se encontra, a CA precisará receber permissões de segurança corretas para publicação de certificados no domínio.

  • As CAs corporativas utilizam tipos de certificados baseados em modelos de certificados. Devidos aos respectivos modelos as seguintes funcionalidades são possíveis:

    • As CAs corporativas aplicam verificações de credenciais aos usuários durante o registro de certificados. Cada modelo de certificado possui permissões de segurança definida no AD que determina se quem está solicitando o respectivo certificado está autorizado a receber o tipo de certificado solicitado.

    • O nome do User do Certificate é automaticamente gerado.

    • O módulo de diretiva adiciona uma lista predefinida de extensões de certificados ao certificado emitido a partir do modelo definido. Isso reduz a quantidade de informações que o User que solicita o certificado precisaria fornecer sobre certificado e sobre o uso pretendido.

Autoridades de Certificação Autônoma

As CAs autônomas também podem emitir certificados para finalidades idênticas as CAs corporativas porém não exige o uso do AD.

Uma CA autônoma possui as seguintes características:

  • Diferentemente de uma CA corporativa, uma CA autônoma não exige o AD implementado. CAs autônomas se destinam a principalmente a serem usadas quando extranets e a internet estão em uso. Por exemplo, se eventualmente um parceiro necessita através de um VPN por exemplo a rede da empresa para acessar os sistemas, a CAs autônomas serão responsáveis pela a emissão dos certificados para os parceiros de negócio.

  • Ao solicitar uma emissão por parte de uma CA autônoma, o solicitador do certificado deve fornecer, explicitamente, todas as informações de identificação sobre si e sobre o tipo de certificado. ( Isso não necessário quando submetemos uma CA Corporativa, uma vez que as informações do usuário corporativo se encontram no AD e o tipo de certificado é descrito por um modelo de certificado).

  • Todas as solicitações de certificados enviadas para CA autônomas são definidas como pendentes por padrão até que o administrator da CA autônoma verifique a identidade do solicitador e autorize a solicitação. Isso e realizado por medidas de segurança, pois as credenciais de quem solicita o certificado, não são verificadas pela CA autônoma.

  • Os modelos de certificados não são utilizados, como acontece com as CAs corporativas.

  • Certificados não podem ser emitidos para efetuarem logon em domínios do Windows 2000/2003 Server respectivamente utilizando-se o uso de Smart Card, porém, outros tipos de certificados podem ser emitidos e armazenados em um Smart Card.

  • O administrator do sistema tem que distribuir, explicitamente, o certificado da CA autônoma para o armazenamento de raiz confiável dos usuários, ou os usuários devem executar essa tarefa sozinhos.

  • Caso uma CA autônoma venha utilizar o AD, ele se beneficiará dos seguintes recursos:

    • Se o membro do grupo administrador do domínio ou administrador com direitos de gravação no AD instalar uma CA raiz autônoma, ela será automaticamente adicionada ao armazenamento de certificados das CAs raiz confiáveis, para todos os usuários e computadores do domínio. Por essa razão você não deverá alterar a ação padrão da CA até receber solicitações de certificados quando se instala uma CA raiz autônoma com o AD. Caso contrário, você terá uma CA raiz confiável que automaticamente emite certificados sem verificar a identidade de quem solicitou.

    • Caso uma CA autônoma for instalada por um membro do grupo administrador do domínio do domínio pai de uma árvore na empresa, ou por um administrador com direitos de gravação no AD, a CA autônoma publicará os certificados e a CRL no AD.

No próximo artigo estarei explicando como Instalar uma "CA - Autoridade Certificadora Corporativa Root" em um servidor com Windows 2003 Server.

Até a próxima pessoal !!!!!!

Robson Branco Júnior
Especialista em Infra-Estrutura e Segurança
MSN Space: robsonbrancojr.spaces.msn.com