Proteção para Aplicações Web através de Assinaturas Digitais Marco Kiko Carnut, CISSP Marco...
Transcript of Proteção para Aplicações Web através de Assinaturas Digitais Marco Kiko Carnut, CISSP Marco...
Proteção para Aplicações WebProteção para Aplicações Webatravés de Assinaturas Digitaisatravés de Assinaturas Digitais
Marco “Kiko” Carnut, CISSP <[email protected]>Marco “Kiko” Carnut, CISSP <[email protected]>
S.A.T.I.S.A.T.I.Março/2005Março/2005
AgendaAgenda
O Encontro de Dois ProblemasFragilidade do Documento DigitalA Fragilidade do Nome e Senha
Certificados e Assinaturas DigitaisChaves Públicas e Privativas
Autenticação em Aplicações WebProtocolo Desafio-Resposta
Documento Digital: Fácil de ForjarDocumento 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 não deixa evidências físicasdeixa evidências físicasEm 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
Certificado DigitalCertificado Digital
Marco CarnutCISSP – Diretor
w w w . t e m p e s t . c o m . b r
Recife
Av. Marquês de Olinda, 126 - 5o andarEdf. Citibank – Recife Antigo – 50.030-901fone/fax: +55 81 3424.3670
São Paulo
Rua Jerônimo da Veiga, 164 - 6o andarItaim Bibi – 04.536-001fone/fax: +55 11 3644.7249
Assinatura Digital
3307593482764144383236407422893115834377614890899624009442099845693490214573567788278071557866894234862782864842514558492006345426665612583589955074261322149433007623318136633859241816528422417014741402229389782364764071422531994119155607620122108426217561226430893455427068133155467382027190322146133297262276110015235819528391147029664383805647966466610930005540080821077564303251873506562261793490643836045444308449796374610594658997400915322105907963083905777281153889820615690238747596150597146931269072781094216513660091453537585805022066803217838163216563737476746283832612840308825648045756458529060541743815
Chave Pública
e=65537,n=142239367858416975776709973865450073964317047967537963581498770739727353522092089230343487731587869752994941931696743826295415252444227103015424408026248310161052096481075828264719552128147343307191910433656494782751532754737317882243505044499826239887391048898863537027610940275999724385631333089769833207271
Chave Pública
e=65537,n=142239367858416975776709973865450073964317047967537963581498770739727353522092089230343487731587869752994941931696743826295415252444227103015424408026248310161052096481075828264719552128147343307191910433656494782751532754737317882243505044499826239887391048898863537027610940275999724385631333089769833207271
(RSA com hash SHA1) (criptossistema RSA)
O=FreeICP.ORGOU=Verified Identity TEST Certification
AuthorityCN= Marco Carnut
Emitente:C=BR, ST=Pernambuco, L=Recife, O=Tempest Security
Technologies,OU=FreeICP.ORG, CN=Verified Identity TEST Certification
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!
Chaves PrivadasChaves Privadas
A toda chave pública está associada uma (e somente uma) chave privada
(mentirinhaaaaa... essa não é minhachave privada de verdade....)
e=65537,n=142239367858416975776709973865450073964317047967537963581498770739727353522092089230343487731587869752994941931696743826295415252444227103015424408026248310161052096481075828264719552128147343307191910433656494782751532754737317882243505044499826239887391048898863537027610940275999724385631333089769833207271
Chave Pública
d=45513073726402274497112187375821996218728416949314546946140448587789481038639096016002749187761891763803670808413839912801228572529665774876532962635379131630567220917313622655792743595159858016481026785861643971550766288990167133657888343401183947460265117578350019500398898372064939800622637320099687830497
Chave Privada
Chaves PrivadasChaves 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.
Chave Privada
45513073726402 27449711218737582199 62187284169493145469461404 4858778948103 8639096016002749187761891 76380367080841383991280 12285725296657748765329 626353791316 3056722091731 36226557927435 95159858016481026785861643 97155076628899016713 36578883434011 83947 460265 11757835 001950 03988 983720 649 39800 622637 32009968 78304 97
Assinatura Digital: GeraçãoAssinatura Digital: Geração
2B0C407F49CBA6BFF84E96CA12D75301
Tw+1 4+ajkwLx kOEjYlzQ e//qZi
Declaro para osdevidos fins que a Empresa XYZ Ind. E Com. Ltda está rigo- rosamente em dia com todas suas obri- gações junto à Se- cretaria da Receita Federal.
3. 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.
2. Gera-se um resumo matemático que “represente” a mensagem de forma curta e indepen-dente de seu tamanho.
4. A assinatura resultante é anexa-da à mensagem, ou, alternativa-mente, enviada em separado.
RSA
1. O documento digital é inserido noum programa criptográfico para ser assinado. Esse programa também cuida do armazena mento da chave privada.
Verificação da AssinaturaVerificação da Assinatura
2B0C407F49CBA6BFF84E96CA12D75301
Declaro para osdevidos fins que a Empresa XYZ Ind. E Com. Ltda está rigo- rosamente em dia com todas suas obri- gações junto à Se- cretaria da Receita Federal. IDÊNTICOS
2B0C407F49CBA6BFF84E96CA12D75301
1. O verificador computa in-dependentemente oresumo digital do docu-mento.
2. 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.
3. A assinatura será válida seos dois resumos forem igua-is; e inválida caso contrário.
Modelo Clássico de Apps WebModelo Clássico de Apps Web
Fachada:Fachada: visualização e controle (“regras de negócio”)tipicamente um servidor web
+ linguagens de aplicação- Apache+JServ+Java- Apache+mod_perl+Perl- IIS+ASP
Retaguarda:Retaguarda: modelo abstrato dos dados tipicamente em um
Gerenciador de Banco de Dados Relacional- SQL Server, Postgres,
Oracle...
Autenticação Típica para Web AppsAutenticação Típica para Web Apps
Cookies: Cookies: dado pequeno que o servidor pede que o navegador
salve e reapresente toda vez que contactá-loNa realidade, identifica o navegador, não o usuárioFreqüentemente usado para o site lembrar se
aquele navegador já o visitou antes Nome+senha:Nome+senha:
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/computadores compartilhados
Nome+senha+cookies: Desvantagens Nome+senha+cookies: Desvantagens
O servidor deve guardar uma cópiaguardar uma cópia da senhaMuitas aplicações salvam as senhas totalmente
às claras: fácil roubar a senha de outremMuitas aplicações gravam as senhas cifradas
evitar issoA 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 redetrafegar pela redeAtaques em trânsito:Ataques em trânsito: Torna-se alvo fácil para
ataques de interceptação, replay, etc.Phishing scams: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
Desafio-Resposta via AssinaturaDesafio-Resposta via Assinatura
Autenticação por Chaves PúblicasDesafio: Site envia um “documento”
aleatórioResposta: 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...
Site XYZLtda
desafio
resposta
Pressupostos da VerificaçãoPressupostos 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
VantagensVantagens
Dispensa tabela de senhasSubstituída pela tabela de certificados digitais,
que são públicosPodemos reconhecer o usuário apenas pelo seu
certificado digitalNão mais somos fiéis depositários de dados de
autenticação do usuário A senha não trafega pela rede em momento
algumNem jamais sai do computador do usuário
Naturalmente mais resistente a phishing scams
ConclusõesConclusõ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
Obrigado! Perguntas?Obrigado! Perguntas?