Mecanismos de Autenticação -----------------------------------------------------------------------------------------------------------------------Índice 1. Introdução.....................................................................................................................................................1 1.2 Mecanismos de autenticação.....................................................................................................................................1 1.2 Alguns conceitos.......................................................................................................................................................2 1.2.1 Endereço do remetente..................................................................................................................................................................................2 1.2.2 Serviço de DNS.............................................................................................................................................................................................2 2. Autenticação dos utilizadores e Transporte seguro.......................................................................................3 2.1 SASL (Simple Authentication and Security Layer)..................................................................................................3 2.2 TLS (Transport Layer Security)................................................................................................................................3 3. Autenticação efectuada pelos UAs................................................................................................................4 3.1 PGP (Pretty Good Privacy).......................................................................................................................................5 3.2 S/MIME (Secure MIME)..........................................................................................................................................5 4. Autenticação efectuada pelos MTAs.............................................................................................................6 4.1 SPF (Sender Policy Framework)..............................................................................................................................6 4.2 Sender ID..................................................................................................................................................................7 4.3 DKIM (DomainKeys Identified Mail)......................................................................................................................8 5. Conclusões....................................................................................................................................................9 Referências.......................................................................................................................................................9 ------------------------------------------------------------------------------------------------------------------------ 1. Introdução De uma forma generalizada, pode-se identificar os seguintes problemas relacionados com a autenticação dos emails: • Envio de mensagens não solicitadas (spam), que pode ter os seguintes objectivos: ◦ estratégia comercial, por exemplo para a divulgação de um produto; ◦ propagação de vírus; ◦ provocar DoS (Denial of Service), por exemplo devido ao volume elevado de emails a processar. • Utilização indevida de mensagens, para: ◦ falsificação de identidade (spoofing); ◦ tentativa de conseguir dados pessoais (phishing). Estes problemas não afectam apenas os utilizadores, mas também os servidores de email, que compromete alguns dos seus requisitos não funcionais como: o desempenho, a fiabilidade e a segurança. 1.2 Mecanismos de autenticação Devido à maioria dos servidores de email terem suporte ao protocolo de transporte base (SMTP), é muito difícil fazer alterações ao protocolo sem ter impactos sobre o funcionamento dos mesmos. Numa primeira fase, para minimizar estes tipos de problemas, recorreu-se: • Sistemas de email com autenticação SASL; • Sistemas anti-spam e anti-vírus; • Autenticação dos emails com assinaturas digitais (ex: PGP, S/MIME). • • Actualmente a resolução tem-se verificado com a reformulação do protocolo base (SMTP): Publicação dos servidores que estão autorizados a enviar emails. (SPF, Sender ID); Assinatura do cabeçalho e integridade dos dados (DKIM). autenticacao_email_v3.odt Página 1 de 9 1.2 Alguns conceitos 1.2.1 Endereço do remetente Como no correio postal, as mensagens de email no mínimo têm dois tipos de endereços: um no envelope e outro no cabeçalho da carta/mensagem. [1] • O endereço do remetente no envelope (return-path) é utilizado durante o transporte da mensagem entre os servidores de email. Em caso de falha na entrega, o servidor devolve a mensagem para este endereço. • O endereço do remetente no cabeçalho da mensagem é incluído no campo “From:” ou “Sender:”, sendo este visível nos UAs. Normalmente os servidores de email não dão muita importância a este endereço. 1.2.2 Serviço de DNS O DNS (Domain Name System), é um serviço que efectua a tradução de um domínio num endereço IP e vice-versa. É um serviço que funciona segundo o modelo cliente-servidor. gnu14.netlab.fe.up.pt ↔ 172.16.2.14 O servidor de email interage com o DNS de dois modos: • Para enviar emails – O servidor de email deve possuir uma ligação fiável ao servidor de DNS para a resolução de domínios, de modo a determinar o encaminhamento a efectuar. • Para receber emails – O domínio de destino deve estar correctamente configurado para encaminhar as mensagens para o servidor de email do seu domínio. Uma configuração incorrecta do servidor de DNS é uma fonte comum de problemas no serviço de email. Os nomes estão organizados, duma forma hierárquica em forma de árvore. <figura> O DNS é constituído por zonas, sendo que uma zona é uma sub-árvore resultante de uma partição hierárquica. É da responsabilidade de um único servidor a informação relativa a uma zona, mas um servidor poderá conter mais do que uma zona. O serviço de DNS possui registos designados de resource records que contêm informações de uma dada zona. Os diferentes registos oferecem vários tipos de informações, tais como endereços IP, nameservers, hostname aliases e mail routing. Os registos necessários para o serviço de email são: • A – Mapeamento de nomes em endereços IP. • CNAME – Apontam para outro hostname em vez do endereço IP. • MX – O registo MX refere-se aos servidores de email. O registo MX contém informações sobre o servidor e a prioridade (ou preferência) para o envio de emails nesse domínio. Podem existir mais registos do tipo MX, que correspondem a servidores de email com uma prioridade mais baixa e funcionam como servidores secundários. Em caso do servidor primário deixar de funcionar, são os servidores secundários que recebem os emails. • PTR – Mapeamento inverso, endereço IP em hostname. • TXT – Uma descrição textual informativa, com máximo de 255 caracteres. • SPF – Do mesmo tipo do registo TXT. Apenas para as versões recentes de servidores de DNS. autenticacao_email_v3.odt Página 2 de 9 2. Autenticação dos utilizadores e Transporte seguro O protocolo base SMTP não oferece nenhum mecanismo de autenticação dos utilizadores. Como o endereço dos emails é fácil de falsificar, torna-se difícil determinar o verdadeiro remetente da mensagem, a não ser que o servidor tenha a capacidade de fazer a autenticação dos utilizadores. Para prevenir de usos não autorizados, pode-se limitar a utilização a determinados endereços IPs. Mas com isto surge o problema quando os utilizadores se encontram em mobilidade, isto é quando as suas ligações ao servidor não têm sempre o mesmo endereço IP, mas sim endereços IPs dinâmicos. O “SMTP Service Extension for Authentication” (RFC 2554) fornece uma extensão do protocolo SMTP, que permite a autenticação dos clientes através do protocolo SASL (Simple Authentication and Security Layer). Pode-se adicionalmente recorrer ao protocolo de transporte seguro TLS (Transport Layer Security) [4]. 2.1 SASL (Simple Authentication and Security Layer) O protocolo SASL tem como objectivo fornecer um mecanismo de autenticação dos clientes perante o servidor, sendo que estes clientes podem ser UAs ou outros MTAs. Os UAs podem usar o SMTP com ou sem segurança, mantendo o mesmo porto (25). O SASL permite ao cliente negociar com o servidor o esquema de segurança. No caso de optarem por SMTP com segurança, primeiro é estabelecido um canal seguro TLS (STARTTLS) e depois o cliente autentica-se através de username/password. • • Para o SASL funcionar, necessita de saber: Mecanismos de autenticação – desafios e respostas entre o cliente e o servidor, e como estes devem ser codificados para a transmissão. Esquema de autenticação – refere-se como o servidor guarda e verifica a informação relativa à password. De um modo geral, pode-se dizer que o SASL, oferece a autenticação dos clientes e a encriptação nos dados transmitidos. 2.2 TLS (Transport Layer Security) O TLS é o método de encriptação de dados mais utilizado na comunicação entre os servidores Web e os browsers, mas também pode-se utilizar para os servidores de email e os seus clientes. Sendo que em alguns mecanismos de SASL a password é transmitida sobre o TLS, de modo a enviar num canal seguro. • • • • • • • TLS é versão actualizada do SSL (Secure Sockets Layer). Fornece encriptação dos dados ponto-a-ponto. Encriptação a nível da aplicação. Faz uso de certificados X509 para autenticações. Garante a privacidade e a integridade dos dados num canal de comunicação, que é conseguida pela autenticação dos seus intervenientes e a criptografia dos dados trocados entre ambas as partes. Autenticação é conseguida com a troca de certificados. Criptografia dos dados é garantida pela criptografia de chave pública. autenticacao_email_v3.odt Página 3 de 9 3. Autenticação efectuada pelos UAs Aqui o UA efectua a autenticação do utilizador, pela colocação da assinatura digital na mensagem, não havendo qualquer tipo de alteração no seu transporte, deste modo esta operação é transparente para o MTA. Os dois mecanismos mais conhecidos para efectuar este tipo de autenticação são: PGP (Pretty Good Privacy) e S/MIME (Secure MIME). Ambos os protocolos permitem: • Assinatura digital - A assinatura digital garante a integridade, autenticidade e não repúdio. O processo consiste na geração de uma assinatura com base numa função de hash obtida da mensagem a transmitir. Posteriormente a etiqueta resultante (resumo) é cifrada com a chave privada do autor permitindo a confirmação por parte do destinatário da origem da mensagem. • Encriptação das mensagens - A confidencialidade das mensagens entre utilizadores, como visto anteriormente, não é assegurada com o simples protocolo SMTP. É necessário recorrer a criptografia de chave pública para o envio de mensagens com garantias de confidencialidade. => Mensagem é cifrada com a chave pública do destinatário. => Essa mensagem apenas é decifrada com a respectiva chave privada. => Como o destinatário é que tem a posse da chave privada, apenas ele é que pode decifrar a mensagem. • Assinatura e encriptação - Para garantir a confidencialidade e a autenticidade das mensagens recorre-se aos dois mecanismos anteriores. Características da criptografia de chave pública [5]: • Existem duas chaves que matematicamente são relacionadas: Uma chave pública, de conhecimento público e outra uma chave privada, que é apenas conhecida pelo próprio dono. • Características dos algoritmos: Computacionalmente impossível (em tempo útil) descobrir uma chave, conhecendo a outra e o algoritmo. • Computacionalmente fácil cifrar/decifrar quando chave é conhecida. autenticacao_email_v3.odt Página 4 de 9 3.1 PGP (Pretty Good Privacy) O PGP é um protocolo que permite assinar e cifrar as mensagens de email, que foi normalizado pelo IETF (Internet Engineering Task Force) com a designação de Open-PGP (RFC 4880). Recorre à criptografia de chave pública e utiliza cifras de domínio público, por exemplo IDEA, de forma a evitar licenças sobre algoritmos proprietários. A informação gerada pela codificação através da chave pública só consegue ser descodificada utilizando o valor da chave privada. É por esta razão que necessitamos de conhecer a chave pública do destinatário para enviar uma mensagem codificada através deste sistema (e só o destinatário, com a sua chave privada, consegue descodificar os dados recebidos). • • • • A assinatura pode ser codifica por vários algoritmos, a mais popular é o Base 64. Verifica-se a adição da linha -----BEGIN PGP SIGNED MESSAGE----- indicando o início de uma mensagem assinada. Uma assinatura encontra-se delimitada entre -----BEGIN PGP SIGNATURE----- e -----END PGP SIGNATURE-----. Uma mensagem encriptada encontra-se delimitada por-----BEGIN PGP MESSAGE----- e -----END PGP SIGNATURE-----. 3.2 S/MIME (Secure MIME) O S/MIME (Secure/Multipurpose Internet Extension) é um melhoramento a nível de segurança do MIME (Multipurpose Internet Extension). O MIME é uma extensão ao protocolo SMTP, que veio essencialmente resolver o problema do envio de mensagens com caracteres especiais, representados por 8bit e o envio de ficheiros em anexos. A lógica consiste na conversão dessas mensagens ou ficheiros na representação de 7bit ASCII, por parte dos UA. O MTA recebe a mensagem como esta definido na norma (7bit ASCII). E para a leitura da mensagem no destinatário é feito a operação inversa (7bit ASCII para 8 bit). • • • • • • • S/MIME tal como o PGP, assina e cifra a mensagem (apenas o corpo da mensagem). O cabeçalho não pode ser cifrado. Criptografia de chave pública para cifrar as mensagens. Utiliza certificados para a identificação do remetente → certificados X.509 tal como o SSL utiliza (e.g. In HTTPS). Os utilizadores obtêm os certificados a partir de uma autoridade certificadora (CA). A assinatura digital garante que só algum com a posse da chave privada é que possa ter enviado a mensagem. A assinatura e a mensagem cifrada são enviadas em anexo, devidamente assinaladas com o respectivo tipo de conteúdo (Content-Type:) Comparação O sistema de email é um modelo do tipo "store-and-forward", onde as mensagens passam de servidor em servidor (via o SMTP) até chegarem ao seu destino final, que pode acontecer em alguns minutos, horas ou até mesmo dias. A protecção dos dados ponto-a-ponto nestes casos não é aplicável, pois não é possível ter um canal de comunicação sempre disponível. E é aqui que se exige que haja uma segurança extremo-a-extremo, conseguida pelo PGP e S/MIME. Estes dois mecanismos são muito semelhantes, permitem obter os resultados relativamente iguais, diferindo nas tecnologias utilizadas. A grande diferença entre PGP e S/MIME, é que no PGP a chave pública é utilizada à base de confiança, que não tem nenhuma autoridade que faça a sua autenticação (CA), como o X.509 PKI utilizados pelo S/MIME. Tanto o PGP como o S/MIME são suportados pelos principais UAs. autenticacao_email_v3.odt Página 5 de 9 4. Autenticação efectuada pelos MTAs 4.1 SPF (Sender Policy Framework) SPF apenas faz a autenticação do servidor do remetente, no entanto não confirma se o remetente é mesmo quem diz ser. [1] SPF permite combater a falsificação de endereços de retorno dos emails (return-path). O mecanismo permite: • ao administrador de um domínio: definir e publicar uma política SPF, onde são designados os endereços das máquinas autorizadas a enviar mensagens em nome deste domínio; e • ao administrador de um servidor de email: estabelecer critérios de aceitação de mensagens em função da verificação das políticas SPF publicadas para cada domínio. Os servidores autorizados a enviar email de um domínio são definidas num registo de DNS do tipo TXT ou SPF. Tal como descrito anteriormente, estes tipos de registos são utilizados para apresentar informações textuais. Exemplo: Um administrador do domínio qqcoisa.pt, publica um registo do tipo TXT no seu servidor de DNS que os servidores 200.200.200.200 e 200.200.200.201 estão autorizados de enviar os emails com remetente @qqcoisa.pt, sendo que quaisquer outros servidores que tentam enviar emails com @qqcoisa.pt serão considerados como falsos. Este método poderá ser utilizado por exemplo no combate ao ataque do tipo phishing. Que são emails enviados a pedido de nomes dos utilizadores e/ou senhas de acessos de contas protegidas, sendo essa informação utilizada para fins maliciosos. SPF pode ser considerado uma primeira barreira que evita a recepção completa do email por parte do servidor, assim como evita o consumo de processamento. autenticacao_email_v3.odt Página 6 de 9 4.2 Sender ID O Sender ID, definido no RFC 4406 é um protocolo desenvolvido pela Microsoft, semelhante ao SPF que visa a autenticação de um dos endereços do cabeçalho. Recorre a um algoritmo designado de PRA (Purported Responsible Address, definido no RFC 4407) para determinar quem é que originou e quem é responsável pela mensagem. Os registos do DNS utilizados pelo Sender ID têm uma sintaxe semelhante ao SPF. O Sender ID efectua a autenticação do endereço resultante do algoritmo PRA enquanto o SFP faz a autenticação do endereço do envelope. [1] O Sender ID visa verificar que as mensagens com origem num determinado domínio são do mesmo que dizem ser. [2] O funcionamento do Sender ID é ilustrado de seguida: 1. O utilizador envia a mensagem de email recorrendo ao UA ou com um cliente Web. 2. O servidor de email do destinatário recebe a mensagem. O qual utiliza Sender ID Framework (SIDF) que efectua a verificação do registo SPF. 3. O servidor de email aceita ou rejeita em função dos resultados obtidos na operação anterior. 4. Caso aceite, a mensagem é depositada na respectiva caixa de email. Sender ID tem como objectivos [2]: • Melhorar a entrega de emails legítimos; • Aumentar a protecção contra ataques do tipo phishing; • Reduzir os falsos positivos; • Melhorar a confiança e confidencialidade do serviço de email; • Reduzir parcialmente as mensagens spam; • Fácil implementação e de manutenção. autenticacao_email_v3.odt Página 7 de 9 4.3 DKIM (DomainKeys Identified Mail) DKIM e o seu antecessor DomainKeys são também métodos de autenticação de email. O DomainKeys (RFC 4870) desenvolvido pela Yahoo foi tornado obsoleto pelo DKIM (RFC 4871), que é uma especificação do IETF. Estes RFCs foram publicados em Maio 2007, o DomainKeys com o estado historical e o DKIM como Standard. Oferece um mecanismo de autenticação baseado em criptografia de chave pública, que garante a autenticidade conseguida com a assinatura do cabeçalho e do corpo da mensagem. Ao contrario do que acontece no SPF e Sender ID, onde no seu servidor de DNS é publicado um registo do tipo TXT com a indicação dos servidores de email autorizados a enviar emails, no caso do DKIM é publicada a sua chave pública. O servidor do remetente antes de enviar a mensagem, cifra o cabeçalho e o corpo com a sua chave privada, que depois na recepção é decifrada com a utilização da chave pública obtida pelos consulta dos registos de DNS.[1] Assim no envio é a mensagem é assinada e na recepção é feita a verificação, isto é, se veio do domínio que diz ser. DKIM adiciona mais um campo no cabeçalho do email, “DKIM-Signature”, que contém a assinatura digital do cabeçalho e do corpo da mensagem. Características do DKIM: • Baixo custo – sem necessidade de desenvolvimento de novas infraestruturas. • Não necessita de entidades terceiras – como por exemplo key servers. • Não existe a necessidade de actualização dos UA – o DKIM é transparente perante os UAs. • Garante a integridade da mensagem – que não existe alterações no transporte. • É extensível – para novos tipos de funções hash, … Desvantagens: • Se a mensagem durante o transporte for ligeiramente alterada, a assinatura passa a ser inválida, podendo o servidor de destino rejeitar a mensagem. • Devido às operações criptográficas que realiza, resulta numa carga computacional adicional nos servidores de email. autenticacao_email_v3.odt Página 8 de 9 5. Conclusões Todos os mecanismos apresentação não são 100% eficazes, resolvem apenas partes dos problemas. Sendo que todos estes mecanismos são opcionais, de modo a haver compatibilidade com o protocolo de transporte base (SMTP). Referências [1] http://www.openspf.org/Introduction [2] http://www.microsoft.com/senderid [3] http://www.dkim.org/ [4] Kyle Dent. Postfix: The Definitive Guide. O’Reilly Media, Inc., 1st edition, December 2003. [5] Stallings William;Cryptography and Network Security, Prentice Hall, 2006. [6] Comer, Douglas E. 2000. Internetworking with TCP/IP Vol.1: Principles, Protocols, and Architecture. 4th ed. Prentice Hall. autenticacao_email_v3.odt Página 9 de 9