UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Wellington Eliel Lopes SISTEMA DE LOGON SEGURO Florianópolis - SC 2005 ii Wellington Eliel Lopes SISTEMA DE LOGON SEGURO Luiz Carlos Zancanella Florianópolis - SC 2005 iii Wellington Eliel Lopes SISTEMA DE LOGON SEGURO Trabalho de Conclusão de Curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciências da Computação. ———————————————————– Prof. Dr. Luiz Carlos Zancanella Orientador ———————————————————– Prof. Dr. José Mazzuco Júnior Coordenador do Curso Banca Examinadora: ———————————————————– Prof. Dr. Daniel Santana Freitas ———————————————————– Prof. Dr. João Bosco Sobral iv RESUMO Este trabalho tem como objetivo desenvolver um sistema de logon seguro para o sistema operacional Windows NT/2000. v SUMÁRIO RESUMO......................................................................................................................... iv LISTA DE TABELAS ...................................................................................................... vi LISTA DE FIGURAS ...................................................................................................... vii ACRÔNIMOS E ABREVIATURAS ............................................................................... viii 1. INTRODUÇÃO ...................................................................................................... 1 1.1. Motivação ............................................................................................................. 1 1.2. Objetivo geral ....................................................................................................... 1 1.3. Objetivos específicos .......................................................................................... 1 2. Winlogon e Gina .................................................................................................. 2 2.1. Introdução ............................................................................................................ 2 2.2. Winlogon .............................................................................................................. 3 2.2.1. Estados do Winlogon ......................................................................................... 3 2.2.2. Enviando mensagens para a GINA .................................................................... 5 2.3. GINA...................................................................................................................... 5 2.4. Como a segurança em um sistema Windows NT/2000 funciona..................... 6 3. Fundamentos de Criptografia ............................................................................. 7 3.1. Introdução ............................................................................................................ 7 3.2. Criptografia .......................................................................................................... 7 3.3. Criptografia Simétrica ......................................................................................... 8 3.4. Criptografia Assimétrica ..................................................................................... 8 4. CONCLUSÃO ....................................................................................................... 9 5. REFERÊNCIAS BIBLIOGRÁFICAS ................................................................... 10 vi LISTA DE TABELAS Tabela 1. Mensagens do Winlogon ............................................................................ 5 vii LISTA DE FIGURAS Figura 1. Estados do Winlogon ............................................................................... 3 Figura 2. Como a segurança em um sistema Windows NT/2000 funciona .......... 6 viii ACRÔNIMOS E ABREVIATURAS GINA - Graphical Identification and Authentication DLL - Dynamic Linked Library SAS - Secure Attention Sequence 1 1. INTRODUÇÃO 1.1. Motivação 1.2. Objetivo geral Aprofundar os conhecimentos na área de segurança em computação, a fim de explorar de maneira prática a implementação de um sistema de logon seguro no sistema operacional Windows NT/2000 com o auxílio de autenticação segura. 1.3. Objetivos específicos Aprofundar os conhecimentos em criptografia; Estudar o funcionamento do logon do sistema operacional Windows NT/2000; Implementar um sistema de logon seguro; 2 2. Winlogon e Gina O logon interativo baseado no Windows NT/2000 permite somente que usuários autenticados tenham acesso ao sistema por meio de nome de usuário e senha. O Winlogon, a GINA, e provedores de rede são componentes do modelo de logon interativo. O procedimento de logon interativo é normalmente controlado pelo Winlogon, MSGina.dll e provedores de rede [MSD]. 2.1. Introdução O Winlogon provê o suporte ao logon do sistema operacional Windows NT/2000 [HUT 95]. Winlogon e o GINA padrão interagem como a seguir: 1. Winlogon detecta um evento do Secure Action Sequence(SAS). 2. Winlogon determina o estado do sistema quando o SAS foi detectado. 3. Winlogon chama a função GINA apropriada. 4. A função GINA chamada executa operação necessária. 5. A GINA passa o valor de retorno para o Winlogon. Winlogon e o GINA padrão interagem como acima ou como a seguir: 1. A GINA detecta um evento predefindo do Secure Attention Sequence (SAS). 2. A GINA chama WlxSasNotify para informar Winlogon de seu evento. 3. Winlogon determina o estado do sistema quando o SAS foi detectado. 4. Winlogon chama a função GINA apropriada. 5. A função GINA chamada executa operação necessária. 6. A GINA passa o valor de retorno para o Winlogon. 3 2.2. Winlogon No processo de boot são geradas três áreas de trabalho - uma para o usuário, um para o sistema e um para a proteção de tela. A área de trabalho do sistema é a área de trabalho segura onde o Winlogon realiza seu trabalho [HUT 95]. 2.2.1. Estados do Winlogon Winlogon mantém o estado da estação de trabalho que é usada pela GINA para determinar quais ações de autenticação são requeridas [MSD]. Figura 1. Estados do Winlogon 4 Descrição dos estados: Deslogado Quando o Winlogon está no estado deslogado é mostrado para o usuário uma tela para se logar no sistema. Se as informações de entrada estiverem corretas e não há restrições do usuário para logon o estado é mudado para o logado. Logado Nesse estado usuário pode interagir com o sistema utilizando o shell e aplicações para realizar o seu trabalho. O usuário pode decidir bloquear a área de trabalho assim o estado irá para bloqueado ou pode deslogar indo para o estado deslogado. Estação de trabalho bloqueada Nesse estado a estação de trabalho esta bloqueada permitindo somente que o usuário que a bloqueou tenha acesso ou o administrador do sistema. 5 2.2.2. Enviando mensagens para a GINA Winlogon manda mensagens para a GINA enquanto caixas de dialogo sao mostradas. Estas mensgens estão encapsuladas na mensagem WLX_WM_SAS como se segue: Descrição Indica que uma seqüência de teclas CTRL+ALT+DEL foi recebida WLX_SAS_TYPE_SC_INSERT Indica que um smart card foi inserido em um dispositivo compatível WLX_SAS_TYPE_SC_REMOVE Indica que um smart card foi removido em um dispositivo compatível WLX_SAS_TYPE_USER_LOGOFF Indica que o usuário requisitou deslogar WLX_SAS_TYPE_SCRNSVR_TIMEOUT Indica que a proteção de tela poderá rodar devido a falta de entrada do usuário WLX_SAS_TYPE_TIMEOUT Indica que a entrada de usuário não foi recebida dentro de um período de time-out especificado Tabela 1. Mensagens do Winlogon Tipo de SAS no parametro wParam WLX_SAS_TYPE_CTRL_ALT_DEL 2.3. GINA A GINA opera no contexto do processo Winlogon, como, a GINA DLL é carregada muito cedo no processo de boot. A GINA DLL deve seguir regras onde a integridade do sistema é mantida, particularmente à respeito com o usuário [MSD]. 6 2.4. Como a segurança em um sistema Windows NT/2000 funciona Figura 2. Como a segurança em um sistema Windows NT/2000 funciona 7 3. Fundamentos de Criptografia 3.1. Introdução A criptografia atualmente é a base de muitas aplicações no mundo eletrônico. Neste capítulo são descritos brevemente conceitos básicos da criptografia, dos quais torna-se essencial uma compreensão, pois o sistema utiliza-se destes para alcançar seus objetivos. 3.2. Criptografia Criptografia (kriptós = escondido, oculto; grifo = grafia), palavra de origem grega, é a arte ou ciência de escrever em cifra ou em códigos. Pode ser definida como a arte e ciência de garantir a segurança de mensagens [SCH 96], de forma que somente o destinatário, após o processo de decifragem, consiga decodificar e ler a mensagem com clareza. Através do processo de cifragem da mensagem, a criptografia transforma um texto aberto, ou seja, texto na forma legível e compreensível, em um texto cifrado (texto não legível, codificado). Para retornar ao texto original, ou texto aberto, é feito o processo inverso ao da cifragem, o processo de decifragem. A decifragem transforma o texto cifrado em texto aberto, legível. Para garantir segurança aos processos acima citados, há uma chave. Apenas quem conhecer a chave poderá transformar um texto codificado em texto aberto. As criptográficas utilizadas no processo de cifragem e decifragem são divididas em dois tipos: chaves simétricas e chaves assimétricas, as quais os conceitos serão apresentados a seguir: 8 3.3. Criptografia Simétrica A criptografia simétrica, também conhecida como criptografia convencional ou criptografia de chave-única, é caracterizada na utilização da mesma chave usada para o processo de cifragem tanto para decifragem. Alguns exemplos de algoritmos de criptografia simétrica conhecidos são DES, 3DES, Blowfish, RC5, CAST-128, RC2. O algoritmo de criptografia simétrica mais utilizado atualmente é o DES [STA 98]. 3.4. Criptografia Assimétrica O desenvolvimento da criptografia de chave-pública é a maior e talvez a única verdadeira revolução em toda história da criptografia [STA 98]. A criptografia assimétrica utiliza conceitos matemáticos para a cifragem e a decifragem ao invés de permutações e substituições usadas na criptografia simétrica. O principio fundamental é a utilização de um par de chaves para a cifragem e decifragem. As chaves são denominadas chaves públicas que pode ser livremente divulgada e chave privada que deve ser de conhecimento apenas de seu proprietário, que são diferentes, mas possuem referência entre elas. 9 4. CONCLUSÃO 10 5. REFERÊNCIAS BIBLIOGRÁFICAS [STA 98] STALLINGS, W. Cryptography and Network Security: Principles and Practice. 2. ed. Upper Saddle River, New Jersey 07458: Prentice Hall, 1998. [HUT 01] HUTZ, B.; FINK, Jack. The Essentials of Replacing the Microsoft Graphical Identification and Authentication Dynamic Link Library. Microsoft Corporation, jun. 2001. [MSD] MSDN. Winlogon and Gina [Security]. Disponível em: <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/ security/winlogon_and_gina.asp>. Acesso em: 29 maio 2005. [SCH 96] SCHNEIER, B. Applied Crytography. 2. ed.. ed. [S.l.]: New York, NY : John Wiley Sons, Inc., 1996.