Title: Seguran
1Proteção para Aplicações Web através de
Assinaturas Digitais
Marco Kiko Carnut, CISSP ltkiko_at_tempest.com.brgt
S.A.T.I. Março/2005
2Agenda
- O Encontro de Dois Problemas
- Fragilidade do Documento Digital
- A Fragilidade do Nome e Senha
- Certificados e Assinaturas Digitais
- Chaves Públicas e Privativas
- Autenticação em Aplicações Web
- Protocolo Desafio-Resposta
3Documento Digital Fácil de Forjar
- Documentos digitais são, em última instância,
longas seqüências de bits - Modificá-los é rápido, corriqueiro, eficiente e
não deixa evidências físicas - Em geral não é possível determinar se um
documento foi feito a partir de outro nem qual
deles foi criado primeiro - Meta-dados de controle, tal como a data de
criação/modificação do arquivo, também são
documentos digitais e, portanto, fáceis de forjar - O Medo dos Advogados (e Operadores do Direito)
- Documentos Digitais ? Menor Segurança Jurídica
4Certificado Digital
Marco Carnut CISSP Diretor kiko_at_tempest.com.br
w w w . t e m p e s t . c o m . b r
(RSA com hash SHA1)
Emitente CBR, STPernambuco, LRecife,
OTempest Security Technologies, OUFreeICP.ORG,
CNVerified Identity TEST Certification
Authority emailAddressvica_at_freeicp.org
(criptossistema RSA)
Recife Av. Marquês de Olinda, 126 - 5o
andar Edf. Citibank Recife Antigo
50.030-901 fone/fax 55 81 3424.3670
São Paulo Rua Jerônimo da Veiga, 164 - 6o
andar Itaim Bibi 04.536-001 fone/fax 55 11
3644.7249
Assinatura Digital 330759348276414438323640742289
31158343776148908996240094420998456934902145735677
88278071557866894234862782864842514558492006345426
66561258358995507426132214943300762331813663385924
18165284224170147414022293897823647640714225319941
19155607620122108426217561226430893455427068133155
46738202719032214613329726227611001523581952839114
70296643838056479664666109300055400808210775643032
51873506562261793490643836045444308449796374610594
65899740091532210590796308390577728115388982061569
02387475961505971469312690727810942165136600914535
37585805022066803217838163216563737476746283832612
840308825648045756458529060541743815
Chave Pública e65537,n1422393678584169757767099
73865450073964317047967537963581498770739727353522
09208923034348773158786975299494193169674382629541
52524442271030154244080262483101610520964810758282
64719552128147343307191910433656494782751532754737
31788224350504449982623988739104889886353702761094
0275999724385631333089769833207271
Chave Pública e65537,n1422393678584169757767099
73865450073964317047967537963581498770739727353522
09208923034348773158786975299494193169674382629541
52524442271030154244080262483101610520964810758282
64719552128147343307191910433656494782751532754737
31788224350504449982623988739104889886353702761094
0275999724385631333089769833207271
5Chaves Privadas
- A toda chave pública está associada uma (e
somente uma) chave privada
?
(mentirinhaaaaa... essa não é minha chave privada
de verdade....)
- As duas nascem juntas,a partir de certos
ingredientes matemáticos,... - Uma vez descartados esses ingredientes, não é
possível calcular uma a partir da outra!
6Chaves Privadas
- Como na prática as chaves são muito longas,
decorá-las é inviável - O usuário não lida com elas diretamente as
operações com elas são feitas por programas
criptográficos em nome do usuário - Ficam armazenadas emdisco rígido, memória,smart
cards, etc.
7Assinatura Digital Geração
- O documento digital é inserido noum programa
criptográfico para ser assinado. Esse programa
também cuida do armazena mento da chave privada.
- Gera-se um resumo matemático que represente a
mensagem de forma curta e indepen-dente de seu
tamanho.
- O resumo é cifrado com a chave privada do
assinante, resultando na assinatura digital. Como
su- postamente só o signatário detém o controle
de sua chave privada, só ele poderia tê-la gerado.
- A assinatura resultante é anexa-da à mensagem,
ou, alternativa-mente, enviada em separado.
8Verificação da Assinatura
- O verificador computa in-dependentemente
oresumo digital do docu-mento.
- O verificador usa a chavepública do
signatário(obtida previamente de umafonte
confiável) paradecifrar a assinatura e re-aver
o resumo digital origi-nalmente calculado.
- A assinatura será válida seos dois resumos forem
igua-is e inválida caso contrário.
9Modelo Clássico de Apps Web
- Fachada visualização e controle (regras de
negócio) - tipicamente um servidor web linguagens de
aplicação - ApacheJServJava
- Apachemod_perlPerl
- IISASP
- Retaguarda modelo abstrato dos dados
- tipicamente em um Gerenciador de Banco de Dados
Relacional - SQL Server, Postgres, Oracle...
10Autenticação Típica para Web Apps
- Cookies
- dado pequeno que o servidor pede que o navegador
salve e reapresente toda vez que contactá-lo - Na realidade, identifica o navegador, não o
usuário - Freqüentemente usado para o site lembrar se
aquele navegador já o visitou antes - Nomesenha
- Pequeno segredo que só o usuário e o servidor
deveriam conhecer - Na realidade, identifica aqueles que conhecem a
senha - Viabiliza uso em ambientes com navegadores/computa
dores compartilhados
11 Nomesenhacookies Desvantagens
- O servidor deve guardar uma cópia da senha
- Muitas aplicações salvam as senhas totalmente às
claras fácil roubar a senha de outrem - Muitas aplicações gravam as senhas cifradas
evitar isso - A aplicação (e os admins por ela responsáveis)
são guardiões (fiéis depositários) da sua senha - Para poder ser conferida pelo servidor, a senha
(cifrada ou não) tem de trafegar pela rede - Ataques em trânsito Torna-se alvo fácil para
ataques de interceptação, replay, etc. - Phishing scams É fácil convencer o usuário a dar
a senha para um atacante basta ele fazer um
site que se pareça com o real
12Desafio-Resposta via Assinatura
- Autenticação por Chaves Públicas
- Desafio Site envia um documento aleatório
- Resposta O programa criptográfico do cliente,
sob controle e permissão do usuário, assina
aquele documento - Verificação se a assinatura bater, o site sabe
que vocêdetém a chave privadacorrespondente
àquelachave pública...
13Pressupostos da Verificação
- Verificação se a assinatura bater, o site sabe
que você detém a chave privada correspondente
àquelachave pública... - Essa chave pública está dentro de um certificado
digital que contém seu nome dentro de algum
sistema de identificação - Se seu certificado digital foi assinado por uma
entidade em que a aplicação confie, ela poderá
deduzir que o usuário do outro lado da linha
14Vantagens
- Dispensa tabela de senhas
- Substituída pela tabela de certificados digitais,
que são públicos - Podemos reconhecer o usuário apenas pelo seu
certificado digital - Não mais somos fiéis depositários de dados de
autenticação do usuário - A senha não trafega pela rede em momento algum
- Nem jamais sai do computador do usuário
- Naturalmente mais resistente a phishing scams
15Conclusões
- Ceritificação Digital e Assinaturas Digitais
provêem maior proteção para documentos digitais e
autenticação em aplicações Web - Implementam o conceito de segurança fim-a-fim,
onde um interceptador é impotente para atrapalhar
a transação - Coloca a segurança mais sob controle do usuário
final ele não mais precisa confiar cegamente no
provedor da aplicação web
16Obrigado! Perguntas?
kiko_at_tempest.com.br