Autenticação e Assinatura Digital
Autenticação e Assinatura Digital. Modelos. Requisitos.
Algoritmos de criptografia x serviços de segurança.
2
Autenticação e Assinatura Digital
A autenticidade de muitos documentos legais, é determinada pela presença de uma assinatura autorizada.
Isto não vale para as fotocópias.
Para que os sistemas de mensagens computacionais possam
substituir o transporte físico de documentos em papel e tinta, deve-se encontrar um método que permita assinar os
Assinaturas Digitais
Criar um método substituto para as assinaturas escritas à mão. Deve-se criar um sistema onde uma parte possa enviar uma
mensagem “assinada” para outra parte sendo que:
O receptor possa verificar a identidade alegada pelo transmissor. Posteriormente, o transmissor não possa repudiar o conteúdo da
mensagem.
4
Assinaturas Digitais
O primeiro requisito:
Diz respeito a sistemas financeiros.
Quando o computador de um cliente pede ao computador de um banco que compre uma tonelada de ouro, o computador do banco precisa se certificar de que o computador que está emitindo o
pedido, realmente pertence à empresa cuja conta deve ser debitada. O segundo requisito:
É necessário para proteger o banco contra fraudes.
Suponha que o banco compre a tonelada de ouro e que logo depois o preço do ouro caia abruptamente.
5
Assinaturas Digitais
O terceiro requisito:
É necessário para proteger o cliente caso preço do ouro dispare e o banco tente forjar uma mensagem assinada na qual o cliente
pedia uma barra de ouro e não uma tonelada.
Nesse cenário de fraude, o banco guarda para si próprio o restante do ouro.
A propriedade segundo a qual nenhuma parte de um contrato pode negar mais tarde de tê-la assinado é chamada não-repúdio. Assinaturas digitais garantem o não-repúdio.
6
Assinaturas de Chave Pública
A criptografia de chave pública ajuda a resolver o problema da distribuição de chaves.
Também resolve duas outras questões: autenticação e não-repúdio. Quando se usa o RSA, significa que qualquer texto simples que tenha
sido encriptado com a chave pública pode ser decriptado apenas com a chave privada.
O que aconteceria se criptografássemos um texto simples com uma chave privada ? Isso é possível ?
7
Assinatura Digital
Se possível, qual chave se utilizaria para decriptografar ?
Pode-se criptografar o texto simples usando-se a chave privada e, nesse caso, apenas a chave pública pode ser usada para decriptografar.
Qual o benefício disso ?
Se criptografarmos com a chave privada, qualquer pessoa com a chave pública correspondente pode ler o texto cifrado.
Não se pode manter segredos, mas é uma maneira para se assegurar o conteúdo de uma mensagem.
8
Assinatura Digital
Se uma chave pública decriptografar os dados adequadamente, então esses dados devem ter sido criptografados com a chave privada. Essa técnica é chamada de assinatura digital.
Qualquer documento criptografado com uma chave privada é uma
assinatura digital.
Uma assinatura é um fragmento de dados oriundo da mensagem e da chave privada.
É uma maneira de confirmar o conteúdo de uma mensagem e informar que é a pessoa quem diz ser.
Contrato nn
... ... ... ... ...
. ... .... ...
.. .. ... ... .. ..
... .... ....
.... ... ... ..
Trâmite
Armaze-namento
Recebe
Consulta
Remetente
Destinatário
Conteúdo aparente = conteúdo real ?
Integridade
Remetente aparente = remetente real ?
Autenticidade
Destinatário aparente = destinatário real ?
Sigilo
Operações eletrônicas ?
Legalidade e Força Probatória
Assinatura:
Marca pessoal utilizada para designar
autoria ou aprovação
Certificação:
Afirmação de certeza ou verdade
Digital:
Valores representados exclusivamente em
binário (eletrônicos,magnéticos,ópticos,etc.)
Analógico:
Representa grandezas de forma contínua
(pergaminho,papel,microfilme,etc.)
Eletrônico:
Dependente do movimento elétrons
Autenticação:
Ato pelo qual algo é reconhecido como
verdadeiro (termo jurídico)
Em Papel
(analógico)
Eletrônico
(digital)
Escrito
Original
Assinatura
Acessível
*
(seqüência
de bits
)
Visível (leitura)
Primeiro suporte
Integridade
**
(formato
original)
Marca pessoal em
conteúdo
Autenticidade
com
Integridade
Conteúdo
(mensagem)
Localizável, interpretável, portável, íntegro, etc.
*
Documentos digitalizados e impressos são cópias
**
•
Digitalizada
•
Digital
Código gerado por computador:
8a5&2K9z63x
•
Baseada em biometria
Características biométricas convertidas em bits
Assinatura Eletrônica:
•
Eficaz para autenticação não presencial
•
Viabiliza a Certificação Digital
•
Serve como base para autenticação de cópias
eletrônicas
•
Pode garantir segurança, legalidade e força
probatória de documentos eletrônicos
Assinatura Digital:
•
Autenticidade:
Garantir a identificação e
associação (ciente) do autor ao conteúdo
•
Integridade:
Invalidar a assinatura
quando o conteúdo assinado for alterado
Conteúdo
Assinatura
Chave Autor
Assinat. Digital
+
=
+
=
Resumo cont.
•
Garante a identificação do assinante e/ou
remetente (autenticidade e não repúdio)
•
Possibilita a qualquer momento verificar se o
conteúdo foi alterado (integridade)
•
Pode garantir o sigilo (com criptografia)
•
É o principal componente de uma
ICP
Protocolos, padrões e serviços para aplicação
de criptografia de chaves públicas e estabelece
16
Unicidade de uma assinatura
Duas suposições fundamentais:
- que a chave seja segura e que apenas o proprietário da chave tenha acesso a ela;
- a única forma de produzir uma assinatura é através da chave privada.
17
Message Digest (Resumo de Mensagem)
Os métodos de assinatura (chave simétrica ou
chave pública), com frequência, reúnem duas
funções distintas:
autenticação
sigilo
18
O que é um Message Digest
É um algoritmo que recebe qualquer comprimento de entrada e
mescla essa entrada para produzir uma saída pseudo-aleatória de largura-fixa.
19
Message Digest (Resumo de Mensagem)
Resumo de mensagens é um método de autenticação que não exige a criptografia de um documento (mensagem) inteiro.
Resumo de mensagens é um método para agilizar algoritmos de assinatura digital.
O método se baseia numa função hash unidirecional que extrai um trecho qualquer do texto claro e a partir dele calcula uma string de bits de tamanho fixo.
20
Message Digest (Resumo de Mensagem)
Em geral, a autenticação é necessária, mas o sigilo, não.
Como a criptografia de chave pública é lenta, normalmente as pessoas preferem enviar documentos em textos claros assinados, visando somente a autenticação, quando o sigilo não é necessário.
Message Digest (Resumo de Mensagem)
Essa função de hash, chamada de resumo de mensagem, as vezes é representada por MD, tem quatro propriedades:
1. Se P for fornecido, o cálculo de MD(P) será muito fácil. 2. Se MD(P) for fornecido, será impossível encontrar P.
3. Dado P, ninguém pode encontrar P’ tal que MD(P’) = MD(P).
4. Uma mudança na entrada, até mesmo de 1 bit produz uma saída muito diferente.
22
Message Digest (Resumo de Mensagem)
Um padrão de bits de comprimento fixado que caracteriza ou
representa uma mensagem ou documento de comprimento arbitrário. Uma função Message Digest, segura,
h = H(M) tem as seguintes propriedades: - Dado M, é fácil computar h.
- Dado h, é difícil computar M.
- Dado M, é difícil descobrir uma outra mensagem M’ tal que H(M) = H(M’).
23
Message Digest (Resumo de Mensagem)
Duas amplamente usadas funções digest para aplicações práticas: MD5 (Message Digest 5)
- [Rivest, 1992] - 128-bit digest
SHA-1 (Secure Hash Algorithm) - [NIST,2002]
24
Propriedades sobre as Message Digest
Mesmo que as mensagens tenham 53 bytes, os resumos têm apenas 20 bytes.
Independentemente do que você forneça ao SHA-1, o resultado será sempre 20 bytes.
A saída de um algoritmo de Message Digest é pseudo-aleatória. Por isso é base para PRNGs e PBE.
25
Propriedade sobre as Message Digest
IMPORTANTE:
Mesmo que uma mensagem seja quase idêntica a outra, os resumos serão bem diferentes.
Duas mensagens que são muito semelhantes produzirão dois resumos que não são nem mesmos próximos.
26
Message Digest (MD)
Funções Hash
Funções Hash são 3-10 vezes mais rápidas que criptografia
simétrica, que por sua vez é bem mais rápida que criptografia de chave pública.
Pelo fato da criptografia de chave pública ser lenta, não é uma boa idéia criptografar o texto simples inteiro.
Então, ao invés de encriptar todo o texto plano de grande volume (a mensagem), uma solução é gerar um (message digest) resumo dessa mensagem.
27
Verificando a Integridade com MD
Como um aplicativo pode verificar a
integridade de dados ?
Resposta: através de um resumo de
28
Verificando Integridade dos dados
Mas existem duas maneiras de evitar isso:
- Uma maneira é utilizar um MAC (Message Authentication Code), ou seja, um código de autenticação de mensagem.
29
Resumo de Mensagem serve para …
Base para um gerador de números pseudo-aleatórios. Base para a criptografia baseada em senha (PBE).
Representante de uma mensagem maior. Verificar a integridade de dados.
30
MAC
Para detectar alterações nos dados (integridade dos dados), um MAC pode estar baseado em um resumo, uma cifra de bloco ou uma cifra de fluxo.
Vejamos MAC baseado em resumo (HMAC – Hash Message Authentication Code).
31
HMAC
Para detectar alterações nos dados, HMAC utiliza uma chave.
Um algoritmo de HMAC resume uma chave e mais os dados (chave concatenada com os dados).
32
HMAC
Uma técnica de verificação de integridade de mensagens, de baixo custo, baseada sobre uma chave secreta compartilhada, ...
... que tem segurança adequada para vários propósitos é esquematizada como segue:
33
Verificando a integridade com MAC
1. A gera uma chave aleatória K e a distribui usando canais seguros para uma ou mais entidades, que precisam autenticar (verificar a integridade) mensagens recebidas de A.
34
Verificando a integridade com MAC
2. Para qualquer documento M que A deseje enviar, A concatena M
com K, computa o resumo (digest) h = H(M+K) , enviando o
documento “assinado” [ M ]k = h, M para uma entidade desejando verificar os dados M.
35
Verificando a integridade com MAC
O resumo h é um MAC (representa M+K). K não será comprometido pela revelação de h, visto que a função h tem seu valor totalmente obscuro.
3. O receptor, B, concatena a chave secreta compartilhada, K, com o documento M e computa o resumo h’ = h(M+K). A integridade de M
36
Verificando a integridade com MAC
O método padece de desvantagens, mas tem uma performance vantajosa porque não envolve nenhuma criptografia.
Resumos de mensagens são 3-10 vezes mais rápidas que criptografia simétrica.
37
Algoritmos Criptográficos
Chave Pública
Para informação em grande quantidade, algoritmos de chave pública são lentos:
(20Kb a 200Kb) por segundo. Muito lento para processamento de dados em volume.
Chave Simétrica
Algoritmos de chave simétrica podem encriptar informação em grande quantidade bem mais rapidamente:
10Mb, 20Mb, 50 Mb ou mais, por segundo.
38
Assinatura com Chave Pública
Criptografia de chave pública é bem adaptada para a geração de assinaturas digitais.
Porque é relativamente simples e não requer qualquer comunicação entre o receptor de um documento assinado e o assinante ou qualquer parte terceira.
39
Assinatura com Chave Pública
O método para A assinar uma mensagem M e B verificar a assinatura é como segue:
1. A gera um par de chaves (Kpub, Kpriv), e publica a chave Kpub
disponibilizando ela um local bem conhecido. 2. Computa o resumo (diguest) de M, H(M),
usando uma função hash segura e criptografa o resumo usando a chave privada Kprivpara produzir a assinatura
S = { H(M) } Kpriv .
3. A envia a mensagem assinada
[M]k = <M,S> à B.
4. B decriptografa S usando Kpub e computa o resumo de M, H(M). Se os resumos de A e de B correspondem, a assinatura é válida.
40
Assinatura com Chave Pública
{h}Kpri M Signing Verifying E(Kpri, h) 128 bits H(M) h M h H(doc) D(Kpub,{h}) {h}Kpri h' h = h'? M signed doc
41
Assinatura com Chave Pública
Note que a chave privada do assinante é usada para encriptar e, assim, construir a assinatura, ...
... em contraste com o uso da chave pública para encriptar, quando o objetivo é transmitir informação em sigilo.
A explicação é imediata – uma assinatura deve ser criada usando uma chave secreta conhecida apenas pelo assinante, a qual é chamada sua chave privada.
Como na vida real, que uma assinatura escrita é privativa a uma pessoa. O algoritmo RSA é bem adequado para se construir assinaturas digitais.
42
Assinatura com Chave Pública
Chave Privada DA Chave Pública EB Chave Privada DB Chave Pública EB P DA(P) EB(DA(P)) DA(P) Computador A Computador B P rede
Assume-se que os algoritmos de criptografia e decriptografia têm a propriedade que:
EB( DA(P) ) = P e DA( EB(P) ) = P, onde DA(P) é a assinatura do texto plano P com a chave
privada DA e EB(P) é a verificação da assinatura com a chave pública EB . O algoritmo RSA tem esta propriedade.
43
44
O Poder da Assinatura Digital
Cada fragmento de dados tem sua própria assinatura.
Nenhuma única assinatura digital é associada a uma pessoa ou a um par de chaves.
Cada assinatura é única para os dados assinados e para as chaves utilizadas.
45
O Poder da Assinatura Digital
Quando uma pessoa assina duas mensagens diferentes com a mesma chave, as assinaturas serão diferentes.
Quando duas pessoas com chaves distintas assinam os mesmos dados, elas produzirão assinaturas diferentes.
Como resultado, ninguém pode pegar uma assinatura válida e acrescentá-la à parte inferior de uma mensagem que não originou a mesma.
46
Um Exemplo ...
Duas pessoas (um remetente e um receptor) têm uma mensagem (documento).
A mensagem do receptor é cópia da mensagem do remetente.
Questão: a mensagem do receptor é realmente uma cópia ou a mensagem foi alterada durante o trânsito ?
47
Um Exemplo ...
Pode-se saber disso porque ele foi encriptado com a chave privada do remetente.
Como se pode saber que ele foi encriptado com a chave privada do remetente ?
48
Algumas outras verificações ...
Um assinante encriptará um bloco de dados, consistindo de um enchimento, o identificador do algoritmo de resumo e o resumo. O valor encriptado é a assinatura.
O identificador do algoritmo evita que um invasor substitua esse algoritmo, por outro algoritmo de resumo alternativo.
Para descobrir, eles resumem as duas mensagens e as compara.
Se os resumos forem iguais, ambos sabem que as duas versões são correspondentes. Se os resumos não corresponderem, algo saiu errado.
49
Algumas outras verificações ...
Ao usar a chave pública apropriada, essa assinatura é decriptada com o valor do enchimento.
Neste caso, não apenas o resumo, mas o identificador de algoritmo de resumo SHA-1 e também os bytes de enchimento são
verificados.
O programa que o verificador executa fará essas três verificações. Dispor de três verificações torna uma fraude mais difícil.
50
A criptografia beneficia …
A criptografia de chave simétrica fornece privacidade sobre os dados sigilosos.
A criptografia de chave pública resolve o problema da distribuição de chaves.
Resumo de mensagem – seja com HMAC ou assinatura – assegura integridade.
Uma assinatura oferece autenticação.
A entidade que envia dados deve revelar ser a entidade que afirma
ser. Os dados são verificados para garantir que vieram dessa entidade. Uma assinatura também fornece não-repúdio: quem assina não pode
Infra-estrutura de Chaves Públicas
ICP
Criptografia
e Hash
Certificação
Digital
Assinatura Digital
•
Criptologia = criptografia + criptoanálise
•
Criptografia = tornar incompreensível
•
Oferece
garantia de sigilo
dos conteúdos
•
Criptoanálise = desvendar criptografados
•
Hoje algoritmos complexos e chaves fortes
•
Tipos de criptog:
Simétrica e Assimétrica
Algoritmo + Chave = Código criptograf.
L+D D=3 ad, be, cf, ...
•
Chave única para cifrar e decifrar um conteúdo
eletrônico
•
Muito rápida para decifrar em relação a criptografia
assimétrica
Texto normal
Encript
Texto cifrado Texto normal Decript Remetente Destinatário
1) Segredo
compartilhado
2) Multiplicação de chaves
Problemas
•
Único par de chaves matematicamente relacionadas
pública
e
privada
•
Conteúdo cifrado por qualquer uma, só pode ser
decifrado por qualquer outra
•
Segurança depende do tipo de algoritmo e do tamanho
da chave criptográfica sendo mínimo recomendável
1024 bits (RSA)
Criptografia Assimétrica
Conteúdo
Assinatura
Chav Crip Aut
Assinat. Digital
+
=
+
=
Resumo cont.
PUB !@#$!% !@#$%! !@#$!% !@#$%! PRIV Internet Conteúdo Criptografado RECEPTOR RECEPTOR Conteúdo Criptografado
Segredo não
compartilhado
+++ Garantia de Sigilo +++
EMISSOR Conteúdo normal RECEPTOR Conteúdo normal•
Gera um
resumo
do conteúdo eletrônico chamado
Código Hash
(
M
essage
D
igest)
•
Deve gerar códigos Hash irreversíveis
•
Evitar códigos repetidos para conteúdos diferentes
(deve ser resistente a colisões)
•
Recomendável chave de no mínimo 128 bits (para
algoritmos SHA/MD5)
Conteúdo
Assinatura
Chav Crip Aut
Assinat. Digital
+
=
+
=
Código Hash
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
H o j e j a f o i d e c i d i d o
72 111 106 101 106 97 102 111 105 100 101 99 105 100 105 100 111
Total = 1732
Total DIV 100 = 17
Total MOD 100 = 32
225
á
1860
18
60
Criptografia X Hash
Criptografia (codificação reversível)
Original:
58431720844123736124178
N+D, D=1:
69542831955234847235289
Código Hash (resumo irreversível)
Infra-estrutura de Chaves Públicas
ICP
Criptografia
e Hash
Certificação
Digital
Assinatura Digital
Certificação Digital
•
Expedição e controle de
Certificados Digitais
(carteiras de identidade eletrônicas) por
Autoridades Certificadoras –
AC
’s
•
Componente de confiança (ISO X509v3)
•
Permite a qualquer momento atestar a
titularidade de uma chave criptográfica
•
Vinculação entre Certificado e titular, garantida
pela
Autoridade de Registro
Informações de Identificação Titular Chave Pública do Titular Nome da Autoridade Certificadora
Validade conforme LCR (Lista de Certificados Revogados)
É um arquivo
eletrônico que
contém
informações de
identificação,
permitindo
assegurar a
identidade de
quem assina uma
mensagem ou
documento
Infra-estrutura de Chaves Públicas
ICP
Criptografia
e Hash
Certificação
Digital
Assinatura Digital
Conteúdo .... ... ....
... ... . ... ... ... ..
.. ... ... .. .. .... ...
.... .... .... ... ... ..
. .... .... ... ...
Função
resumo
(
integridade
)
Sistema
criptográfico
seguro
(
sigilo
) e
conectar autor
a um conteúdo
Certificação
digital
(
autenticidade
)
identificação
do
autor via chave
criptográfica
Chav Crip Aut
Assinat. Digital
+
=
Código Hash
AR
AC
CHAVE PÚBLICA Assinatura de DOCUMENTO EletrônicoTrâmite
Certificação da Assinatura do DOCUMENTO CHAVE PRIVADA1 - Sistema criptográfico seguro
2 - Sigilo da chave privada (ponto vulnerável)
3 - Código Hash resistente a colisões
4 - Autoridade Certificadora confiável
5 - Ambiente computacional seguro
com GED
Garantia de segurança transações eletrônicas
Assinatura, sigilo, integridade e autenticação de
mensagens e documentos eletrônicos
Autenticação de servidores e Bancos de Dados
Autenticação de sites e paginas da Internet
Proteção de software e aplicativo seguro
Telefone e FAX seguros
Votação e avaliação virtual
Sr. receptor: Documento com Assin. Digital ##$%##%$ Internet 14867452 Cálculo da função hash
Código hash único
Cálculo da função hash PUB Emissor 14867452 14867452 Código hash Decriptograf. Código hash Calculado PRIV Sr. receptor: Documento com Assin. Digital ##$%##%$ Assinatura Encriptada Emissor Receptor Documento do Emissor
Garantia de Autenticidade com Integridade
Emissor