
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:
- 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.
- O software
- O Windows Server 2008 R2 Standard, para sistema operativo do servidor;
- O Windows 7 Professional, o sistema operativo da estação de trabalho;
- Os drivers para todos os componentes das máquinas, incluindo – e destacando-se – o driver para o leitor de smart cards, se não estiver incluído no próprio Windows; e
- O software do CC: a Aplicação do Cartão de Cidadão.
- 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.
- Os certificados digitais
- O certificado da autoridade certificadora que assinou a raiz do Estado Português, ou seja, o certificado GTE CyberTrust Global Root;
- O certificado da raiz do Estado Português, designado por ECRaizEstado;
- Todos os certificados da entidade certificadora do CC (que constituem, neste momento, um conjunto singular);
- Todos os certificados da entidade certificadora de autenticação do CC (que são cinco, à data de hoje); e
- O certificado digital para autenticação pessoal, incluído no CC, que deve ser exportado do cartão (e cujas instruções para exportação estão incluídas numa secção seguinte).
- 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.
- 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ínio → Default Domain Policy", seleccioná-la, e executar "Acção → Editar"). Usar o modo de edição para efetuar os passos seguintes:
- 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;
- 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;
- 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";
- 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ínio → Domain Controllers → Default Domain Controllers Policy", seleccioná-la, e executar "Acção → Editar"). Usar o modo de edição para efetuar os passos seguintes:
- 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.
- 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.
- 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.
- 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?
- 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".
- 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).
- 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.
- 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 ; )
