SEGURANÇA, CONTROLE E
AUDITORIA DE DADOS
8 – 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 < p
calcula Ya = αXa mod p
Ya

Yb
calcula K = YbXa mod p
sorteia Xb < p
calcula Yb = αXb mod p
calcula K = YaXb 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 a
fatoração de n,
para obter os dois
primos p e q e
calcular d
Fatoração é uma
tarefa 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ção
Chave pública do detentor
Data de validade do certificado
Numeração de controle do certificado
Identificação da CA
Assinatura digital da CA
CERTIFICADO X.509


Padrão ITU-T para certificado: X.509
Usado em S/MIME, IPSec, SSL/TLS, SET
V1
Versão
Número serial do certificado
Identificação do algoritmo de assinatura
Nome do emitente: CA que assina o certificado
Período de validade do certificado (início e fim)
Nome do assunto: usuário que o certificado identifica
Chave pública do assunto
Identificação única do emitente
Identificação única do assunto
Extensões: Outros dados
Assinatura da CA
V 2/3
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
criptografar toda a mensagem:
mensagem
sem
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


Integridade da mensagem


Algoritmo de hash / message digest ou MAC
Verificação de remetente


Tecnologia de criptografia para codificação
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
Autoridade de Certificação (CA)
por
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

Download

Segurança, Controle e Auditoria de Dados 8 – Criptografia