Gerenciamento de
Chaves Simétricas
Capítulo 4
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
1
Introdução
 A criptografia de chave simétrica
pode manter seguro seus segredos,
 mas pelo fato de precisarmos das
chaves para recuperar os dados
criptografados, devemos mantê-las
seguras.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
2
Introdução
 O processo para manter todas as
chaves seguras e disponíveis é
conhecido como gerenciamento de
chaves.
 Este capítulo é sobre gerenciamento
de chaves simétricas.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
3
Introdução
 Pao-Chi gerou uma chave aleatória ou
pseudo-aleatória e a utilizou para
criptografar os dados.
 Se quiser decriptografar os dados,
ele deve utilizar a mesma chave.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
4
Introdução
 Então, ele precisa armazená-la em
algum lugar seguro, de modo que
possa recuperá-la novamente quando
precisar.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
5
Introdução
 Soluções para o armazenamento de
chaves podem ser dispositivos
pequenos, projetados para proteger
chaves ou senhas.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
6
Introdução
 Ou utilizar criptografia de chave
simétrica para proteger os
megabytes de informação e alguma
ou técnica para proteger chaves.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
7
Criptografia baseada em senha
 A chave usada para criptografar os
megabytes de informação (dados em
grande quantidade) é conhecida como
chave de sessão.
 Uma sessão é uma instância de
criptografia.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
8
Criptografia baseada em senha
 Exemplos de sessão:
- troca de email
- uma conexão Web
- um armazenamento de BD
- criptografia de um arquivo antes
de armazená-lo na unidade de
disco.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
9
Criptografia baseada em senha
 No caso, podemos supor que Pao-Chi,
faz uma sessão para criptografar um
arquivo antes de armazená-lo na sua
unidade de disco.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
10
Criptografia baseada em senha
 Alguns sistemas geram uma nova
chave para cada sessão.
 Outros utilizam a mesma chave em
diferentes sessões.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
11
Criptografia baseada em senha
 Um modo de armazenar a chave de
sessão de forma segura é encriptála usando um algoritmo de chave
simétrica.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
12
Criptografia baseada em senha
 A chave fica criptografada.
 Um invasor precisa quebrar a
criptografia para conseguir a chave
de sessão.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
13
Criptografia baseada em senha
 Então, o processo de criptografar a
própria chave de sessão precisa de
outra chave.
 Há então, a chave de criptografia
de chave (key encryption key – KEK)
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
14
Criptografia baseada em senha
 Para criptografar, com a KEK, a
chave de sessão.
 A chave de sessão, então, fica
protegida e é armazenada.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
15
Criptografia baseada em senha
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
16
Criptografia baseada em senha
 Pode-se então, pensar que se Pao-Chi
utilizar uma KEK, ele agora tem que
armazená-la e protegê-la.
 Na verdade, ele não precisa
armazenar a KEK. Assim, ele não
precisa protegê-la.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
17
Criptografia baseada em senha
 KEK não precisa ser protegida.
 Ao se precisar critografar uma chave de
sessão, a KEK é gerada, utilizada e
descartada.
 Para decriptografar a chave de sessão,
KEK é novamente gerada, utilizada e
descartada.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
18
Criptografia baseada em senha
 Como a criptografia da chave de
sessão é simétrica, a mesma KEK
precisa existir depois de descartada.
 A geração pela segunda vez,
produzindo o mesmo valor anterior é
possível porque KEK está baseada
em senha.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
19
Criptografia baseada em senha
 Pao-Chi usa um RNG ou um PRNG
para gerar uma chave de sessão.
 Pao-Chi utiliza a criptografia
baseda em senha (password-based
encryption - PBE) para construir
uma KEK.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
20
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
21
Criptografia baseada em senha
 A criptografia baseada em senha
para construir uma KEK é
conseguida, fazendo-se um “resumo
de mensagem”, através de uma
função hash, a partir de uma senha
pré-estabelecida, e um “salt”.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
22
Criptografia baseada em senha
 PBE é uma maneira possível para
proteger chaves criptográficas.
 Outra maneira: armazenamento de
chave baseado em hardware.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
23
Criptografia baseada em senha
 A senha é pré-estabelecida e pode
ser descoberta.
 Se a senha for descoberta, a KEK,
certamente será descoberta, e
consequentemente, a chave de
sessão pode ser decriptograda,
sendo então, também, descoberta.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
24
Criptografia baseada em senha
 Se a chave de sessão for
descoberta … …
 Mega-bytes de informação serão
descobertos.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
25
Criptografia baseada em senha
 Uma senha é composta de caracteres
associados às teclas de um teclado, o
que não é suficientemente aleatório.
 Assim, uma senha não tem muita
entropia (medida de aleatoriedade).
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
26
Criptografia baseada em senha
 Um invasor poderia construir um
dicionário de senhas.
 Logo, não é bom usar uma senha
como a única coisa para gerar uma
KEK.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
27
Criptografia baseada em senha
 Então, gerar um número PRNG, que
será chamado salt, que existe para
evitar pré-computações de um
invasor que deseje criar um
dicionário de senhas comuns e
chaves KEK associadas.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
28
Criptografia baseada em senha
 Evitando-se a construção do
dicionário, evita-se um ataque de
dicionário.
 Utilizando-se um algoritmo de hash
(mistura) (em Comp. merge =
intercalar) na senha e no salt,
assegura-se que uma KEK seja
mais aleatória do que a senha.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
29
Criptografia baseada em senha
 Um salt não é secreto. Evita apenas
pré-computações. Mesmo não sendo
secreto ele realiza sua função.
 Se fosse secreto, como seria
recuperado?
 Um salt não adiciona segurança.
Apenas evita ataque de dicionário.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
30
Criptografia baseada em senha
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
31
Razão para usar duas chaves
 Chave de Sessão e a KEK
(1)
 Compartilhar os dados com outras
pessoas e mantendo criptografados
os dados armazenados.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
32
Comentando (1)
 Neste caso, é gerada uma chave de
sessão e todo mundo obtém uma
cópia dela.
 Todo mundo, então, protege sua
cópia, utilizando uma PBE.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
33
Comentando (1)
 Cada um tem sua senha, gera um salt
e com um determinado algoritmo de
hash, uma KEK é gerada.
 Essa KEK é diferente, para cada
pessoa. A chave de sessão é
criptografada e armazenada junto
com o salt.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
34
Comentando (1)
 A KEK é descartada.
 Para decriptografar a chave de
sessão, cada pessoa tem que ter os
mesmos elementos (sua senha, o
salt armazenado e o algoritmo de
hash)
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
35
Comentando (1)
 Com sua senha e o salt
armazenado, calcule o hash para
obter o que presumivelmente será a
sua KEK inicial.
 A chave de sessão pode, então, ser
decriptografada.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
36
Comentando (1)
 Conclusão:
 Utilizando uma chave de sessão
para dados em grande quantidade e
protegendo-os com uma PBE, os
usuários compartilham uma
chave de sessão criptografada,
mas não precisam compartilhar a
senha.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
37
Conveniência de Programação
 Um programa de PBE fará seu
trabalho, mesmo com uma senha
errada.
 Se uma senha errada foi inserida, o
programa não tem como saber se a
senha não é a correta.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
38
Conveniência de Programação
 Ele mesclaria a senha incorreta com o
salt e geraria uma KEK incorreta.
 Mas, o programa PBE não teria como
saber isso.
 Ele usaria esta KEK para
decriptografar a chave de sessão.
Algum valor sairia como resultado.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
39
Conveniência de Programação
 Seria uma chave errada.
 Essa suposta chave de sessão seria
usada para decriptografar o texto
cifrado.
 Os dados resultantes não teriam
sentido.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
40
Conveniência de Programação
 Somente neste ponto é que seria
possível que algo saiu errado.
 Todo os dados em grande quantidade
tiveram de ser descriptografados,
antes de se descobrir o erro.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
41
Conveniência de Programação
 Assim, é conveniente se, ao se inserir
uma senha, que haja alguma maneira
para se saber se tal senha é correta
ou não.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
42
Conveniência de Programação
 Antecipando algo que saiu errado ...
 Uma solução é utilizar a KEK para
criptografar a chave de sessão,
juntamente com algum valor
reconhecível, como o salt.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
43
Criptografando dados em grande
quantidade
1. Gerar uma chave de sessão aleatória
ou pseudo-aleatória.
2. Utilize essa chave de sessão para
criptografar os dados.
3. Insira uma senha, gere um salt.
Mescle os dois para obter uma KEK.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
44
Criptografando dados em grande
quantidade
4. Criptografe a chave de sessão e o
salt utilizando a KEK.
5. Armazene a chave de sessão e o
salt, criptografados com KEK.
6. Armazene os dados criptografados
com o salt.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
45
Decriptografando dados em grande
quantidade
1. Colete o salt e a senha. Mescle os
dois para obter o que se presume ser
a KEK.
2. Utilizando a KEK, descriptografe a
chave de sessão junto com o salt.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
46
Descriptografando dados em
grande quantidade
3. Verifique o salt decriptogrado. É o
correto ?
4. Se for o salt correto, utilize a chave
de sessão para decriptografar os
dados.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
47
Descriptografando dados em
grande quantidade
5. Se não for o salt correto, o usuário
provavelmente inseriu a senha
errada.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
48
Boas senhas
 Ao escolher uma senha, seu objetivo
é escolher uma que resista a um
ataque de força bruta.
 Exemplo:
14G:c*%3<wM*-16]Bnp?~d86
 Se estivermos usando PBE,
precisamos de uma boa senha.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
49
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
50
Geradores de senha
 Existem programas que geram senhas.
 Funcionam como PRNG, mas
produzem pressionamentos de
teclas em vez de números.
 Podem especificar a duração da senha.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
51
Geradores de senha
 Ver em JavaScript Source
http://javascript.internet.com/
tiFXFCZcZ6
K6($xV]!hl
M?a84z9Wg
 Mas, certifique-se de que o programa é
confiável.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
52
Exemplos práticos
 Na prática, como as empresas
protegem suas chaves ?
 Uma classe de produtos para
proteção de chaves de sessão são
aplicativos de criptografia de arquivo.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
53
Exemplos práticos
 Arquivos são criptografados na
unidade de disco, utilizando
criptografia de chave simétrica.
 A proteção das chaves criptográficas
em grande quantidade pode ser feita
de várias maneiras.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
54
Aplicativos para criptografia de
arquivo
 PGP (Pretty Good Privacy)
- criptografia de arquivo por PBE
- “envelopamento” para criptografia
avançada de arquivo.
 Outros (freeware, shareware,
produtos convencionais)
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
55
Armazenamento de chaves em HW
 PBE é uma maneira possível para
proteger chaves criptográficas.
 Outra maneira: armazenamento
em um dispositivo de HW:
- tokens
- aceleradores de criptografia
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
56
Tokens
 Um cartão plástico “inteligente”
 Uma chave plástica
 Um pequeno anexo da porta USB
 Um anel de dedo
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
57
Tokens
 Contém um pequeno chip com um
processador, um tipo de sistema
operacional apropriado e recursos
limitados de I/O, memória e espaço
de armazenamento em disco.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
58
Alguns Tokens
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
59
Tokens
 A vantagem de se utilizar tokens é
que um invasor não tem acesso a
eles.
 Quando precisar utilizar uma chave
simétrica, transfere-se do token para
o computador, que a utiliza para
encriptar ou decriptar os dados.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
60
Cartões inteligentes
 É simplesmente um cartão de
plástico, que contém um
microprocessador.
 ISO publicou vários padrões
descrevendo as características físicas.
 A idéia é todos os cartões inteligentes
serão utilizados com uma ampla
gama de leitores.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
61
Tokens USB
 USB (Universal Serial Bus) é um
padrão da indústria para conectar
dispositivos Plug-and-Play.
 Não é necessário reinicializar o SO
depois de inserir o dispositivo.
 Desde que o software esteja
instalado, simplesmente conecta-se o
dispositivo e trabalha-se com ele.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
62
Tokens USB
 Têm um pouco mais de poder de
computação e espaço de
armazenamento do que os cartões
inteligentes.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
63
Tokens como dispositivos de
armazenamento de senha
 Tokens podem armazenar senhas, de
várias contas aos quais uma pessoa
possa se conectar.
 Utilizar um token para gerar grandes
senhas aleatórias e para armazenar
essas senhas.
 Não é preciso lembrar da senha.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
64
Tokens como dispositivos de
armazenamento de senha
 Quando precisar conectar-se a uma
conta, conecta-se o token e faz-se
com que ele envie a senha.
 O acesso ao token é por senha.
 Utilizar um token ajuda a prevenir de
um ataque remoto.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
65
Aceleradores de criptografia
 Dispositivos de criptografia baseados
em hardware.
 Chips especializados em criptografia.
 Mais rápidos que microprocessadores
de uso geral.
 Pode armazenar dados de maneira
mais segura que um computador.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
66
Aceleradores de criptografia
 Funcionam o tempo todo conectados,
internos ou externos ao computador
(PC).
 Com o PC convencional, a unidade de
disco é visível ao mundo exterior.
 Invasores podem ler a unidade de
disco.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
67
Aceleradores de criptografia
 Mesmo com firewalls para
informações sigilosas, invasores
podem utilizar ferramentas como
software de recuperação de dados.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
68
Aceleradores de criptografia
 Aceleradores de criptografia são
construídos de tal modo que seu
espaço de armazenamento não é
visível.
 Se um invasor espionar, abrindo a
parte externa, para fisicamente acessar
a unidade de disco, o dispositivo apaga
a si próprio.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
69
Aceleradores de criptografia
 Gerenciador de chave e acelerador de
criptografia nShield.
 Cryptoswift PCI E-Commerce Accelerator.
 Luna CA3
 AXL 300
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
70
Aceleradores
de Criptografia
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
71
Aceleradores de criptografia
 A maioria dos aceleradores funcionam
conjuntamente com um token. Não
operam sem que um token seja
inserido, com uma senha correta.
 O token requer uma chave interna ao
acelerador.
 Para encriptar dados, deve-se obter a
chave do token.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
72
Aceleradores de criptografia
 Com um acelerador, envia-se o
texto simples ao dispositivo, ele o
criptografa e retorna o texto
cifrado.
Maio de 2006
Segurança da Informação
Prof. João Bosco M. Sobral
73
Download

Gerenciamento de Chaves Simétricas