Logon. Domínio. Cartão de Cidadão

Logon. Domínio Microsoft. Cartão de Cidadão.

Na continuação do trabalho de investigação sobre o Cartão de Cidadão (CC), sobre as possibilidades de utilizar o cartão como mecanismo de autenticação forte, decidi experimentar uma variante mais complexa, complementar à que realizei no início deste mês (em que usei o CC para logon num computador autónomo), e que visa autenticar utilizadores registados numa Active Directory (AD), num Domínio Microsoft.

Este artigo descreve os passos que realizei ao longo da experiência e que conduziram, no final, à demonstração das funcionalidades do cartão como autenticador de utilizadores numa AD.

Nota #1: O âmbito do artigo não inclui a descrição de alguns procedimentos elementares num contexto Microsoft – o artigo pressupõe que os leitores têm conhecimento adequado sobre a instalação dos sistemas operativos Windows 7 e Windows Server 2008, de uma Active Directory e, a um nível básico, uma Certificate Authority, entre outros procedimentos de gestão e operação destes sistemas num contexto empresarial.

Nota #2: Por último, é importante referir que o texto elabora apenas sobre os aspetos técnicos que envolvem a utilização do CC; não inclui considerações sobre a vertente legal da sua utilização, cuja legislação relevante está disponível no espaço oficial do cartão.

Sem mais demora, seguem os pontos e as bullets:

  1. O hardware
    • Um computador para desempenhar o papel de servidor – o Controlador do Domínio – físico ou virtualizado, com 2 GBytes de memória, um disco com 40 GBytes disponíveis, e um processador de 32 ou 64 bits;
    • Um computador para desempenhar o papel de estação de trabalho, física ou virtualizada, com 1 GByte de memória, um disco com 20 GBytes disponíveis, e um processador de 32 ou 64 bits;
    • Um leitor de smart cards. Apenas como exemplo (e porque foi o que usei), um Omnikey Cardman 3121;
    • Um Cartão de Cidadão Português; e
    • Uma infra-estrutura adequada para ligar os equipamentos em rede e garantir o acesso à Internet.
  2. O software
  3. O confware
    • O ficheiro LsaKerberosParameters.reg, que contém um conjunto de parâmetros que devem ser introduzidos no registry de todas as máquinas do Domínio; e
    • O ficheiro kdc.reg, que contém um par de chaves que devem ser introduzidas no registry de todos os Controladores do Domínio.
  4. Os certificados digitais
  5. A instalação do servidor – Controlador do Domínio
    • Instalar a variante Completa do Windows Server 2008 R2 Standard (para facilitar a operação, que não é tão simples na variante Server Core);
    • Atualizar o sistema. E atualizar novamente, várias vezes, até não estarem disponíveis quaisquer atualizações (no meu caso, se a memória não me falha, repeti o procedimento cinco vezes – boot, atualizar, reboot, ...);
    • Instalar os "Serviços de Domínio do Active Directory" e o "Servidor DNS", garantindo que este último fica parametrizado para resolver nomes internos e externos na Internet. Instalar ambos os serviços no mesmo passo. Sendo o primeiro Controlador instalado, vai definir a própria Floresta (no meu caso, a Floresta teste.local) e podemos escolher o nível funcional. Escolher o nível "Windows Server 2008 R2";
    • Instalar os "Serviços de Certificados do Active Directory". Para simplificar o exercício, escolher apenas a função "Autoridade de Certificação" – ignorar as restantes funções. Escolher a parametrização seguinte: (i) o tipo "Empresa" para AC, (ii) AC de Raiz, (iii) nova chave privada, criada com os parâmetros definidos por omissão, (iv) nome comum (e.g. TESTE-AC) com um sufixo igual ao Domínio (e.g. teste.local), (v) 5 anos de validade, e (vi) manter as localizações sugeridas para as bases de dados;
    • Instalar, opcionalmente, o driver do leitor de smart cards e a Aplicação do Cartão de Cidadão. Este passo não é necessário se não pretenderem usar o CC no logon do servidor.
  6. A configuração do Controlador do Domínio
    • Abrir a consola para Gestão de Políticas de Grupo (gpmc.msc) e editar a Default Domain Policy (navegar até "Floresta → Domínios → domínioDefault Domain Policy", seleccioná-la, e executar "Acção → Editar"). Usar o modo de edição para efetuar os passos seguintes:
      1. Navegar até "Configuração do Computador → Políticas → Definições do Windows → Definições de Segurança → Políticas de chaves publicas → Autoridades de certificação de raiz fidedigna". Executar "Acção → Importar", e selecionar o certificado GTE CyberTrust Global Root, que transferiram previamente para o disco;
      2. Navegar até "Configuração do Computador → Políticas → Definições do Windows → Definições de Segurança → Políticas de chaves publicas → Autoridades de certificação intermediárias". Importar o certificado ECRaizEstado, todos os certificados da entidade certificadora do CC, e todos os certificados da entidade certificadora de autenticação do CC;
      3. Navegar até "Configuração do Computador → Políticas → Modelos Administrativos → Componentes do Windows → Smart Card". Ativar (i) "Permitir certificados sem atributo de certificado de utilização de chaves expandidas", (ii) "Permitir chaves de assinatura válidas para Iniciar sessão", e (iii) "Forçar a leitura de todos os certificados do smart card";
      4. Navegar até "Configuração do Computador → Políticas → Definições do Windows → Scripts". Selecionar "Arranque" e executar "Acção → Propriedades". Adicionar um novo script com o nome "Regedit.exe" e os parâmetros "/s LsaKerberosParameters.reg". Selecionar "Mostrar ficheiros..." e copiar o ficheiro LsaKerberosParameters.reg para essa pasta.
    • Ainda na consola para Gestão de Políticas de Grupo, editar a Default Domain Controllers Policy (navegar até "Floresta → Domínios → domínioDomain ControllersDefault Domain Controllers Policy", seleccioná-la, e executar "Acção → Editar"). Usar o modo de edição para efetuar os passos seguintes:
      1. Navegar até "Configuração do Computador → Políticas → Definições do Windows → Scripts". Selecionar "Arranque" e executar "Acção → Propriedades". Adicionar um novo script com o nome "Regedit.exe" e os parâmetros "/s kdc.reg". Selecionar "Mostrar ficheiros..." e copiar o ficheiro kdc.reg para essa pasta.
    • Abrir a consola PKI de Empresa (pkiview.msc) e executar "Acção → Gerir Contentores de AD". Adicionar o certificado ECRaizEstado; e
    • Encerrar e reiniciar a máquina para garantir que as parametrizações são assumidas.
  7. A instalação e configuração da estação de trabalho
    • Instalar o Windows 7 Professional. Garantir que o Controlador do Domínio é o Servidor DNS da estação.
    • Atualizar o sistema. E atualizar novamente, várias vezes, até não estarem disponíveis quaisquer atualizações;
    • Instalar, se for necessário, o driver do leitor de smart cards;
    • Instalar a Aplicação do Cartão de Cidadão; e
    • Adicionar a estação ao Domínio.
  8. O registo do utilizador no Domínio
    • Abrir uma sessão na estação de trabalho, num contexto de utilizador local ou do Domínio, introduzir o Cartão de Cidadão no leitor de smart cards, e aguardar pela inserção automática dos certificados no repositório da estação;
    • Abrir a consola de Certificados (certmgr.msc), navegar até "Pessoal → Certificados", selecionar o certificado emitido pela EC de Autenticação do Cartão de Cidadão, e executar "Acção → Todas as tarefas → Exportar". Seguir as instruções do assistente para guardar o certificado num ficheiro (e.g. utilizador.cer);
    • Abrir uma sessão no Controlador do Domínio e adicionar um utilizador ao Domínio, através da consola Utilizadores e Computadores do Active Directory (dsa.msc);
    • Ainda nesta consola, executar "Ver → Funcionalidades avançadas" (ativar esta vista); e
    • Selecionar o utilizador recém-criado e executar "Acção → Mapeamentos de nome". Adicionar o certificado digital que exportámos do Cartão de Cidadão.
  9. O teste
    • Em princípio, se os passos forem executados pela ordem que apresentei, todas as configurações estarão definidas e estabilizadas em ambos os sistemas. No entanto, seguindo a tradição de várias décadas de informáticos, não fará mal desligar a estação, desligar o servidor, ligar o servidor, esperar pela estabilização dos processos, e ligar a estação;
    • Se tudo estiver como deve estar, basta introduzir o CC no leitor da estação, apresentar o PIN e aguardar o início da sessão. Se não funcionar, aconteceu uma de três coisas (ou todas): (i) não executaram corretamente todos os passos da receita, ou (ii) a receita contém erros introduzidos por mim, ou, no limite, (iii) a receita não contém todos os passos necessários – posso ter omitido alguma coisa inadvertidamente. Se tiverem a convicção que a resposta não é a primeira, escrevam-me umas linhas, ok?
  10. Os outros parâmetros
    • Podemos (e devemos) definir qual o comportamento do sistema quando o CC é retirado do leitor no meio de uma sessão. Essa política pode ser definida através da Default Domain Policy em "Configuração do computador → Políticas → Definições do Windows → Definições de segurança → Políticas locais → Opções de segurança → Início de sessão interactivo: comportamento de remoção de Smart card". É habitual trancar o computador quando é retirado o cartão;
    • Podemos exigir a utilização exclusiva do CC e proibir a utilização de passwords. Nesse sentido, se quisermos fazê-lo para um conjunto de contas do Domínio, devemos (i) atribuir passwords aleatórias com um comprimento elevado, não as divulgar aos utilizadores, e (ii) ativar o atributo "Para início de sessão interactivo é necessário um cartão Smart" nas propriedades dessas contas;
    • Adicionalmente, se quisermos estender a política anterior a um conjunto de máquinas ou, no limite, a todo o Domínio, podemos definir essa configuração na Default Domain Policy em "Configuração do computador → Políticas → Definições do Windows → Definições de segurança → Políticas locais → Opções de segurança → Início de sessão interactivo: é necessário smart card".
  11. As nuances
    • Já o tinha escrito no artigo anterior e vou repeti-lo: As passwords não fazem nem são o sumo; o sumo é composto pela informação contida nos computadores. Ou seja, dito de outra forma, apesar do controlo de acessos ser importante para restringir o acesso à informação (e, neste caso, o CC é um bom controlo), este mecanismo tem que ser complementado com a cifra total do disco, activada com o BitLocker (e um Trusted Platform Module) ou uma solução como o TrueCrypt;
    • Se mantivermos o acesso através das passwords, os ataques serão dirigidos ás passwords e o controlo pelo cartão torna-se irrelevante. No entanto, se obrigarmos a utilização exclusiva dos cartões, temos que garantir, no mínimo, que existem cópias da informação em dispositivos externos aos computadores. Porquê? Porque podemos perder o acesso às máquinas se perdemos os cartões. Num cenário empresarial, em que existem vários administradores do Domínio, estas situações não são tão prováveis. A menos, claro, que só exista um(a) administrador(a) e o cartão perdido seja... o dele(dela).
  12. O anticlimax
    • O Cartão de Cidadão é gerido pelo Estado Português. Vou repetir: O Cartão de Cidadão é gerido pelo Estado Português. E a utilização do CC como mecanismo de autenticação no interior das organizações é uma faca com dois gumes: De um lado encontramos as vantagens da adoção de um controlo mais forte, barato, cuja carga administrativa e os custos imediatos são suportados pelo Estado; Do outro lado temos a dependência dessa estrutura – se falhar e dependermos dela, falhamos também. A adoção do CC no interior das organizações tem que ser ponderada sob esta luz.
  13. As recomendações
    • Para além das questões técnicas que envolvem a utilização do CC, existem outras questões que têm que ser endereçadas pelas organizações que decidirem adotá-lo: As questões processuais. Apenas como exemplos, têm que existir processos para o mapeamento dos certificados, processos para endereçar a expiração, revogação e atualização dos cartões, processos para recuperação em situações de perda temporária dos cartões, etc.
    • A utilização deste controlo não é adequada para todos – todos – os cenários. Depende da análise do risco em cada situação, considerando, no mínimo, o tipo de informação acedida por cada conta e guardada em cada máquina, e a eventual indisponibilidade por perca dos cartões;
    • Nos cenários em que este controlo for adoptado devemos (i) desactivar as passwords, (ii) ponderar a cifra total dos discos; e (iii) fazer cópias regulares da informação, cifradas com chaves próprias, independentes dos computadores e dos cartões envolvidos; e devemos
    • Criar duas contas de administração do Domínio e associar dois CCs;

E pronto: mais uma vez, está feito. A continuação destes artigos é um dos objetivos que estabeleci para esta temporada e, nesse sentido, vou procurar as variantes que sejam mais interessantes, experimentá-las, e reportar por aqui. Talvez o próximo seja sobre a autenticação em serviços na web, quem sabe? Vamos ver.

Comentários, correções e sugestões? Be my guests ; )