s eguranÇa, c ontrole e a uditoria de d ados 8 – criptografia (2)
TRANSCRIPT
SEGURANÇA, CONTROLE E AUDITORIA DE DADOS8 – Criptografia (2)
CRIPTOGRAFIA
Aplicações Privacidade, Autenticação: RSA, Curva Elíptica Intercâmbio de chave secreta: Diffie-Hellman Assinatura digital: DSS (DSA)
Vantagens Não compartilha segredo Provê autenticação Provê não-repúdio Escalável
Desvantagens Lenta (computacionalmente intensiva) Requer autoridade de certificação (chave pública
confiável)
DIFFIE-HELLMAN
É um método para troca segura de chaves
Inventado em 1976
O objetivo é permitir a troca de chaves entre duas entidades remotas através de um meio de comunicação não segura
É baseado na operação de logaritmos discretos
RAIZ PRIMITIVA
O logaritmo discreto é uma função unidirecional
Logaritmo discreto é baseado na raiz primitiva
Raízes primitivas de um número primo p são as potências por todos os inteiros de 1 a p-1
Se a é uma raiz primitiva de p, então a mod p, a2 mod p, ..., ap-1 mod p
são distintos e consistem em inteiros de 1 a p-1
LOGARITMOS DISCRETOS
Para um inteiro b uma raiz primitiva a de um número primo p é possível encontrar um expoente i tal que:b = ai mod p onde 0 ≤ i ≤ (p-1)
O expoente i é chamado de logaritmo discreto de b na base a mod p.
Dado a, i e p, é fácil calcular b
Dado a, b e p, é difícil calcular i
ALGORITMO DIFFIE-HELLMAN
O algoritmo gera a mesma senha para dois usuários distintos (Eliza e Bruno), dado p primo e α uma raiz primitiva de p:Eliza Bruno
sorteia Xa < pcalcula Ya = αXa mod p Ya
sorteia Xb < pcalcula Yb = αXb mod pYb calcula K = YaXb mod p
calcula K = YbXa mod p
ALGORITMO DIFFIE-HELLMAN
Temos: Ya = αXa mod p e Yb = αXb mod p
KA = YbXa mod p (αXb mod p)Xa mod p (αXb)Xa mod p (αXa)Xb mod p (αXa mod p)Xb mod p YaXb mod p= KB = K
ALGORITMO DIFFIE-HELLMAN
p = 97, α = 5 Alice sorteia Xa = 36 e Bruno sorteia Xb = 58 Alice calcula Ya = 536 = 50 mod 97 Bruno calcula Yb = 558 = 44 mod 96 Bruno calcula K = (Ya)Xb mod 97 = 5058 = 75
mod 97 Alice calcula K = (Yb)Xa mod 97 = 4436 = 75
mod 97
ALGORITMO DIFFIE-HELLMAN
Diffie-Hellman é uma técnica muito usada para troca de chaves SSL (Secure Socket Layer) PGP (Pretty Good Privacy)
É eficiente Porém está sujeito ao ataque do homem no
meio na troca de valores públicos Y Segurança do Diffie-Hellman: Criptoanálise: conhecidos q, α e Y, é preciso
calcular o log discreto para obter K (difícil)
ALGORITMO RSA
O algoritmo RSA foi desenvolvido em 1977 pelo Ron Rivest, Adi Shamir e Len Adleman
RSA é um algoritmo de chave pública
É baseado em logaritmos discretos
As senhas são geradas com base em dois números primos grandes (mais de 100 dígitos)
A segurança é baseada na dificuldade de fatoração de números inteiros
ALGORITMO RSA
Geração do par de chaves (pública/privada) Selecionar p e q , ambos números primos Calcular n = p × q Calcular φ(n) = (p - 1)(q - 1) [quociente de Euler] Selecionar inteiro e , primo relativo a φ(n) Calcular d = e-1 mod φ(n) [ ou de = 1 mod φ(n) ] Chave Pública: KU = {e, n} Chave Privada: KR = {d, n}
Encriptação: C = Me mod n, M < n Decriptação: M = Cd mod n
ALGORITMO RSA
Para criptografar a mensagem M: C = Me mod n
Para decriptografar a mensagem cifrada C: M = Cd mod n = (Me)d mod n = Med mod n
Ambos os lados deve conhecer n A senha pública KU é formada por {e, n} A senha secreta KR é formada por {d, n} O algoritmo funciona porque Med = M mod n
quando ed = 1 mod φ(n)
ALGORITMO RSA
ALGORITMO RSA
Primos p = 7 e q = 19. n = p.q = 119, φ(n) = 6×18 =108
Senha pública do destinatário: {e, n} = {5, 119} Senha secreta do destinatário: {d, n} = {77,
119} Mensagem M: 19 Mensagem cifrada C: 66
ALGORITMO RSA
Criptoanálise:conhecendo e e n,é preciso fazer afatoração de n,para obter os doisprimos p e q ecalcular d
Fatoração é umatarefa demorada
Pentium 200Mhz éuma máquina de
50 MIPS
ALGORITMO RSA
O algoritmo RSA pode ser usado para assinar digitalmente um documento
A assinatura garante a autenticidade
A assinatura é gerada com base na senha secreta do assinante
Desta forma um documento assinado só poderia ter sido gerado pelo dono da senha
ALGORITMO RSA
CRIPTOGRAFIA E ASSINATURA DIGITAL
Com o RSA é possível ainda criptografar e assinar digitalmente
Assim a autenticidade e a confidencialidade são garantidas simultaneamente
Duas operações de criptografia são executadas em seqüência no documento original: Uma com a senha secreta do assinante Outra com a senha pública do destinatário
CRIPTOGRAFIA E ASSINATURA DIGITAL
CRIPTOGRAFIA E ASSINATURA DIGITAL
A distribuição de chaves é um possível ponto de falha também em um sistema de chave pública
Um usuário C pode gerar uma par KR/KU em nome de B e enviar a chave pública para A
A, ao gerar uma mensagem pensando que é para B, está gerando uma mensagem que na verdade somente C tem a chave para ler
CRIPTOGRAFIA E ASSINATURA DIGITAL
Autoridades de certificação são usadas para distribuir chaves públicas garantindo a sua autenticidade
A CA (Certificate Authority) é uma entidade confiável e reconhecida (VeriSign, Thawte, ValiCert, GlobalSign, Entrust, BelSign)
A CA emite certificado digital que inclui a chave pública de uma entidade, com dados para identificação confiável desta e assinado digitalmente com a chave privada da CA
CRIPTOGRAFIA E ASSINATURA DIGITAL
A chave pública da CA deve ser muito bem conhecida e amplamente disponível, pois é usada por quem recebe um certificado vindo da CA, para validá-lo (autenticar assinatura)
Exemplo de conteúdo de Certificado Digital:
Nome do indivíduo e/ou organizaçãoChave pública do detentorData de validade do certificadoNumeração de controle do certificadoIdentificação da CAAssinatura digital da CA
CERTIFICADO X.509
V1
V 2/3
Padrão ITU-T para certificado: X.509 Usado em S/MIME, IPSec, SSL/TLS, SET
VersãoNúmero serial do certificadoIdentificação do algoritmo de assinaturaNome do emitente: CA que assina o certificadoPeríodo de validade do certificado (início e fim)Nome do assunto: usuário que o certificado identificaChave pública do assuntoIdentificação única do emitenteIdentificação única do assuntoExtensões: Outros dadosAssinatura da CA
AUTENTICAÇÃO DE MENSAGEM
Criptografia do conteúdo protege mensagens contra interceptação (ataque passivo)
Criptografia e técnicas similares podem ser usadas para autenticação de mensagens: garantir e validar sua integridade contra falsificação (ataque ativo)
Autenticação simples de mensagem na criptografia convencional: Incluir na mensagem informações de código de correção
de erro e controle de seqüência e tempo
AUTENTICAÇÃO DE MENSAGEM
Técnicas de autenticação de mensagem sem criptografar toda a mensagem: Message Authentication Code (MAC) Função de Hash Unidirecional
MAC Uso de uma chave secreta KAB para gerar um
pequeno bloco de dados conhecido como código de autenticação da mensagem, anexado a esta
MACM = F(KAB, M) O receptor gera o mesmo código e compara
AUTENTICAÇÃO DE MENSAGEM
AUTENTICAÇÃO DE MENSAGEM
Algoritmo Hash Unidirecional: Toma uma mensagem arbitrária M e gera uma
compilação da mensagem (message digest) de tamanho fixo H(M) como saída (como nos MACs)
O algoritmo não precisa ser reversível Diferente do MAC, a função hash não usa uma chave
secreta como parâmetro A autenticação da mensagem passa a ser baseada na
autenticação segura do digest: Adicionar de um valor secreto a M antes de gerar H(M) Criptografia convecional do message digest Assinatura do digest com a chave privada do emissor
AUTENTICAÇÃO DE MENSAGEM
AUTENTICAÇÃO DE MENSAGEM
Exemplo de um hash simples de n bits: Tomar a mensagem em blocos de n bits Fazer XOR do bit i (de 1 a n) de todos os blocos
Ci = bi1 ⊕ bi2 ⊕ ... ⊕ bin
AUTENTICAÇÃO DE MENSAGEM
Algoritmos Hash Seguros SHA-1, Secure Hash Algorithm-1: desenvolvido pelo
NIST (National Institute of Standards and Technology), EUA Digest de 160 bits Propriedade principal: todo bit do código hash é função de
todos os bits da mensagem de entrada MD4 e MD5, Message Digest Algorithm #4, #5:
desenvolvido pela RSA (128 bits) RIPEMD, RACE Integrity Primitives Evaluation (RIPE)
MD: projeto europeu RIPE. RIPEMD-160, RIPEMD-256 (hash de 160 e 256 bits)
AUTENTICAÇÃO DE MENSAGEM
MAC a partir de uma função hash Idéia: desenvolver um MAC derivado de um hash
unidirecional, introduzindo uma chave secreta
Padrão mais aceito é o HMAC. Princípios: Usar uma função hash existente (ex: SHA-1), sem
modificações (como se fosse uma “caixa preta”) Deixar a função hash facilmente substituível, caso se
deseje usar outra função mais conveniente Preservar o desempenho original da função hash, sem
introduzir degradação significante Tratar de forma simples a chave secreta usada
AUTENTICAÇÃO DE MENSAGEM
AUTENTICAÇÃO DE USUÁRIO
Kerberos Parte do Projeto Athena, do MIT Problema: em um ambiente distribuído aberto, é
necessário autenticar requisições e restringir acesso a usuários autorizados
Idéia do Kerberos: é difícil garantir a segurança de muitos servidores em uma rede, mas é viável garantir alta segurança de um único servidor
Kerberos: servidor de autenticação central que contém e valida a senha (chave) e autorizações de todos os usuários e servidores da rede
Baseado em criptografia convencional
AUTENTICAÇÃO DE USUÁRIO
SEGURANÇA DE E-MAIL
O e-mail é hoje um meio de comunicação tão comum quanto o telefone e segue crescendo
Gerenciamento, monitoramento e segurança de e-mail têm importância cada vez maior
O e-mail é muito inseguro, pois pode atravessar várias redes até chegar ao destino
E-mail é vulnerável a: Interceptação e quebra de privacidade Replicação, adulteração, falsificação de conteúdo Falsificação de identidade
SEGURANÇA DE E-MAIL
Privacidade de conteúdo Tecnologia de criptografia para codificação
Integridade da mensagem Algoritmo de hash / message digest ou MAC
Verificação de remetente Assinatura digital
Verificação de destinatário Criptografia com chave-pública
SEGURANÇA DE E-MAIL
Padrões PGP - Pretty Good Privacy & OpenPGP S/MIME - Secure Multipurpose Internet Mail Extension (MIME) PEM - Privacy-Enhanced Mail MOSS - MIME Object Security Service MSP - Message Security Protocol (uso militar)
Padrões competidores não inter-operáveis dificultam sua popularização
Mais difundidos: PGP e S/MIME
SEGURANÇA DE E-MAIL
PGP Mais popular ferramenta de privacidade e
autenticação, principalmente para uso pessoal Esforço pessoal de Philip R. Zimmermann Essência do trabalho:
Selecionados os melhores algoritmos de criptografia como componentes
Algoritmos integrados em aplicação de uso geral e fácil O produto, sua documentação e todo o código fonte
disponibilizados publicamente na Internet Acordo com uma empresa (Viacrypt, agora NAI) para
disponibilização de uma versão comercial
SEGURANÇA DE E-MAIL
Histórico do PGP Versão pública inicial do PGP: Junho de 1991 PGPi 5.0: 1997
1ª versão legalmente disponível fora dos EUA/Canadá Exportado como código fonte em livros impressos e
remontado a partir de digitalização/OCR Network Associates: versão comercial Dez/1997 OpenPGP: Padrão aberto IETF RFC 2440
GnuPG: implementação freeware do OpenPGP, sem o algoritmo patenteado IDEA (patente RSA expirou 2000)
OpenPGP Alliance: promove interoperabilidade entre implementações do padrão OpenPGP
SEGURANÇA DE E-MAIL
Sucesso do PGP Disponibilidade gratuita e versões para muitas
plataformas, com ferramentas para fácil utilização Distribuição pública do código permitiu amplo estudo
e garante credibilidade (certeza de não haver back doors) e amadurecimento (depuração)
Uso de algoritmos considerados muito seguros Aplicável na segurança de e-mail, arquivos, VPN Não desenvolvido ou totalmente controlado por
nenhuma organização governamental ou privada
SEGURANÇA DE E-MAIL
SEGURANÇA DE E-MAIL
SEGURANÇA DE E-MAIL
SEGURANÇA DE E-MAIL
Assinatura digital: Obtida por uma sinopse (digest) da mensagem
criptografada com a chave privada do remetente Confidencialidade:
Encriptação usa criptografia convencional, que é em geral bem mais rápida que a de chave pública
Chave de sessão: uma chave secreta é gerada aleatoriamente para uso uma única vez, i.e., uma nova chave para cada mensagem cifrada
A chave da sessão vai junto com a mensagem, protegida pela chave pública do destinatário
SEGURANÇA DE E-MAIL
Compactação ZIP: Reduz o tamanho a armazenar ou transmitir Realizada depois da assinatura e antes da
criptografia convencional da mensagem Depois da assinatura: validação da mensagem
s/depender de comprimir antes e do algoritmo ZIP Antes da criptografia: reduz redundância (padrões) na
mensagem original, aumentando a segurança Compatibilidade com e-mail:
Codificação do resultado em ASCII com Radix64 Possibilidade de segmentar resultado, se grande
SEGURANÇA DE E-MAIL
Private key ring (Chaveiro de chave privada) Existe uma chave mestre associada ao usuário,
define sua identificação e é usada para assinatura Podem ser definidas chaves alternativas para
codificação, que podem ter validade ou ter a chave pública revogada em caso de problema
A chave privada é armazenada codificada por criptografia convencional.
A chave secreta é hash da senha (frase-passe) escolhida pelo usuário
SEGURANÇA DE E-MAIL
SEGURANÇA DE E-MAIL
Public key ring (Chaveiro de chaves públicas) As chaves públicas podem ser assinadas digitalmente
por usuários que atestem sua legitimidade Para o usuário atestar/aceitar a validade de uma
chave pública em seu chaveiro, deve assiná-la e associar um nível de confiança
A legitimidade de uma chave pública é dada pelo conjunto dos níveis de confiança dos assinantes
SEGURANÇA DE E-MAIL
S/MIME Secure/Multipurpose Internet Mail Extension Baseado em tecnologia da RSA Security Embora tanto PGP quanto S/MIME sejam definidos
como padrões pela IETF, S/MIME surge mais como padrão de indústria para uso comercial e organizacional, enquanto PGP é mais escolhido em segurança pessoal de e-mail
Essencialmente, tem as mesmas funções de autenticação e confidencialidade do PGP, embutidas no padrão MIME de conteúdo
SEGURANÇA DE E-MAIL
Nomeclatura das funções S/MIME: Enveloped data: conteúdo (de qualquer tipo)
criptografado, com chave de sessão criptografada para um ou mais destinatários
Signed data: é feita uma assinatura digital do conteúdo por uma message digest cifrada com a chave privada do assinante. Tanto o conteúdo quanto a assinatura são codificados em base64
Clear-signed data: é formada uma assinatura digital do conteúdo, mas apenas a assinatura é depois codificada em base64 (conteúdo intacto)
Signed and enveloped data: assinatura + cifra
SEGURANÇA DE E-MAIL
Chaves públicas Distribuídas em certificados X.509v3 assinados por
Autoridade de Certificação (CA) Certificados Chave-Pública S/MIME Verisign
Vários classes de segurança, de acordo com a forma de confirmação de identidade
Classe 1: validação automática do nome e e-mail (envio de um PIN e ID digital para o e-mail)
Classe 2: Classe 1 + validações automatizadas no cadastro de pagamento e sobre o endereço postal
Classe 3: Classe 2 + identificação pessoalmente