You are on page 1of 43

Criptografia e Segurana na Informtica

Pedro A. D. Rezende
Cincia da Computao Universidade de Braslia

No existe nada de demonaco na tcnica,


mas existe o mistrio da sua essncia. a essncia da Tcnica, enquanto destino de revelao, que o perigo Martin Heidegger, 1995 citado em Cibercultura, de Andr Lemos Editora Meridional, Porto Alegre, 2002

Quem tem ouvidos, oua o que o Esprito diz s igrejas.


Ao vencedor darei um prmio: o man escondido. Darei tambm uma pedrinha branca a cada um. Nela est escrito um nome novo, que ningum conhece. S quem recebeu. Apocalipse de So Joo, Captulo 2 Versculo 17

ndice
0: 1: 2: 3: 4: 5: 6: 7: Introduo............................................................... ii Fundamentos............................................................1 Elementos de Protocolos....................................... 21 Protocolos Importantes.........................................34 Tcnicas Criptogrficas........................................ 59 Algoritmos Criptogrficos Importantes..............79 Enfoques para Implementao...........................123 Exemplos de Aplicaes...................................... 155 Apndices........................................................ A, B, C

Notao Conceito: Explicao; Termo a definir; Anglicismo: Descrio de algoritmo: Objeto matemtico; Cdigo fonte em C: Canal de comunicao digital inseguro: Canal presumido seguro (sigilo e/ou integridade): Passo presumido executado antes do protocolo: Ponto de confiana para algum agente do protocolo: Conjunto das sequncias de smbolos do alfabeto : Para todo...; Existe...: ()* ;
0: ...

Negrito Itlico Font Arial Font Courier

ii

0: Introduo
No mundo hoje, somos levados a crer que podemos comprar solues prontas de preferncia feitas sob medida para atender nossas necessidades. Mas a essncia do que se busca nem sempre pode ser encontrada na prateleira, embrulhada em pacote. Essas notas iniciam-se com um comentrio sobre a natureza da busca de segurana para a informtica. Creio que a essncia dessa busca no pode ser encapsulada e apresentada em forma de algoritmo. Por isso, no posso me propor apresentar-lhes roteiros ou receitas para segurana na informtica. Proponho, ao invs disso, ajud-los a desenvolver sensibilidade sobre como usar o conhecimento e as ferramentas at hoje acumulados, nessa busca. Para guiar-nos em minha proposta, compilei nas sesses seguintes um resumo dos conceitos, tcnicas e procedimentos mais eficazes hoje conhecidos para a construo de mecanismos criptogrficos de proteo a dados digitais, e de meios para esses mecanismos se integrarem a sistemas de informao que se queira proteger. Comeamos observando que a segurana de que falamos no dos bits. Os bits no podem sofrer dano, pois so apenas smbolos. Bits apenas ocorrem em sequncias que representam dados. Quem pode sofre dado so aqueles para quem tais sequncias de bits representam valor. Na sesso 1 veremos os principais conceitos tcnicos ou cientficos, inclusive de natureza lingistica e psicolgica, relacionados com a construo e funcionamento de ferramentas para a proteo a dados os servios bsicos de segurana computacional. Na sesso 2 abordaremos como mecanismos de proteo contra ameaas os protocolos so concebidos, para tornarem vivel o uso destas ferramentas. Na sesso 3 estudaremos o funcionamento dos mecanismos que tem se mostrado eficazes, ou seja, os principais protocolos criptogrficos de padro aberto hoje em uso. Em seguida exploraremos na sesso 4 as formas como os servios bsicos so escolhidos e montados em protocolos especficos, para ento examinarmos em mais detalhes, na sesso 5, as peas principais desses protocolos os algoritmos criptogrficos inclusive quanto s formas mais elementares de se avaliar a segurana que ofecerem. Detalhes de segurana externos aos protocolos que influem nas suas escolhas so abordados na sesso 6, e uma viso do estado atual da aplicao da criptografia, principalmente na internet, ser oferecida na sesso 7. Assim, faremos uma abordagem top-down at os algoritmos criptogrficos e tcnicas para sua implementao, e da retornamos, por via reversa, de novo a uma viso de conjunto do assunto. Enquanto discorro sobre conceitos, protocolos e algoritmos criptogrficos, buscarei situ-los, por meio de comentrios, no cenrio real, onde deve configurar-se claro o carter global e integrador do significado da segurana na informtica, de cuja compreenso evolui tal sensibilidade. Estas notas representam portanto apenas um esforo para resumir descries de conceitos, protocolos e algoritmos, no havendo a pretenso de faz-las passar por texto didtico autnomo. Referncias bibliogrficas esto espalhadas ao longo das notas e devem ser buscadas por quem julgar necessria uma apresentao textual mais discursiva do assunto. Espera-se do leitor algum conhecimento da aritmtica modular (aritmtica dos processadores digitais), do funcionamento bsico de sistemas operacionais e das redes de computadores, e noes de complexidade de algoritmos. E por que esse conhecimento esperado? A criptografia uma rea de especializao da matemtica e da engenharia que oferece tcnicas de proteo a mecanismos de acesso e integridade de dados, e ferramentas de avaliao da eficcia dessas tcnicas. Estas tcnicas e ferramentas so de natureza puramente sinttica, no podendo, portanto, serem destinadas a fornecer ou induzir, por si mesmas, confiana no significado da informao que tais dados supostamente veiculam. A criptografia pode oferecer segurana na informtica somente onde e quando a confiana no significado da informao veiculada pelos dados protegidos j tenha sido obtida ou fornecida por outros meios. Portanto, a criptografia no oferece nenhuma soluo mgica para problemas de segurana na informtica. O que oferece so truques para manipulao de probabilidades que nos permitem escolher o terreno e o maneira como poderemos nos defender no mundo dos bits. Para explicar minha crena sobre a natureza do assunto que iremos tratar, escolhi um texto de um experiente criptlogo, Bruce Schneier, divulgadas em uma lista de discusso eletrnica em novembro de 96 (schneier@couterpane.com), cuja traduo transcrevo abaixo

Porque a criptografia mais difcil do que parece

iii

Do correio eletrnico telefonia celular, do acesso seguro a servidores WEB moeda eletrnica, a criptografia parte essencial dos sistemas de informao de hoje. A criptografia ajuda a imputar responsabilidade, promover a justia, prover acurcia e privacidade. Pode prevenir fraudes em comrcio eletrnico e garantir a validade de transaes financeiras. Usada apropriadamente, protege a anonimidade e fornece provas de identidade de pessoas. Pode impedir vndalos de alterarem sua pgina na internet e competidores industriais de lerem seus documentos confidenciais. Com o comrcio seguindo sua marcha pelas redes de computadores, a criptografia se tornar cada vez mais vital. Mas a criptografia hoje existente no mercado no fornece a segurana que apregoa seu marketing. A maioria desses sistemas so projetados e implementados no por criptgrafos, mas por engenheiros que pensam que a criptografia como qualquer outra tecnologia de computadores. No . Voc no pode tornar um sistema seguro simplesmente acrescentando criptografia como uma medida adicional. Voc precisa saber o que est fazendo a cada passo do caminho, da concepo at a implementao do sistema. Bilhes de dlares so gastos em segurana de computadores, e quase todo este dinheiro desperdiado em produtos inseguros. Afinal, criptografia fraca parece idntica criptografia forte na vitrine de software. Dois produtos de encriptao de correio eletrnico no mercado tm interface de usurio praticamente idnticas, enquanto um deles seguro e o outro permite bisbilhotagem. Uma tabela contendo comparaes entre recursos pode sugerir que dois produtos tenham funcionalidade similar, embora um possa ter furos comprometedores de segurana e o outro no. Um criptgrafo experiente pode reconhecer a diferena. Determinados tipos de criminosos tambm podero. A segurana de computadores hoje em dia um castelo de cartas; pode se manter de p por agora, mas no vai durar. Muitos produtos inseguros ainda no foram quebrados porque ainda esto em sua infncia, mas medida em que se tornem mais e mais usados, tornar-se-o alvos atraentes para criminosos. A imprensa divulgar os ataques, minando a confiana do pblico nesses sistemas. No final, produtos sobrevivero no mercado de acordo com a robustez de sua segurana. Os ataques a sistemas de informao so dos mais variados tipos. Toda forma de comrcio j inventado tem sido alvo de fraudes, desde as balanas propositadamente descalibradas, o dinheiro falso, as faturas frias, etc. O comrcio eletrnico tambm sofrer fraudes, personificao, bloqueio de servio, e falsificaes. No se pode caminhar pelas ruas usando uma mscara que imita o rosto de outra pessoa sem ser percebido, mas no mundo digital muito fcil personificar outrem. Ocorre que a informatizao torna os riscos maiores ainda, permitindo ataques automatizados, impossveis de serem conduzidos contra sistemas no automatizados. Um ladro pode se sustentar retirando um centavo por ms de cada dono de carto de crdito Visa. Apenas com a criptografia forte pode-se proteger tais sistemas contra estes tipos de ataques. Violaes contra a privacidade constituem outro tipo de ataque. Alguns ataques contra a privacidade so direcionados: algum da imprensa pode tentar ler a correspondncia eletrnica de uma figura pblica, ou uma companhia pode tentar interceptar as comunicaes de um competidor. Pode-se tambm tentar ataques de colheita, buscando informaes interessantes num mar de dados: vivas ricas, usurios de AZT, pessoas que visitam determinada pgina na internet, etc. O vandalismo eletrnico um problema cada vez mais srio. J foram pichadas as pginas digitais da agncia de servio secreto dos EUA, enviadas cartas-bomba digitais a provedores da internet, e cancelados centenas de listas de discusso eletrnicas, alm de ataques que bloqueiam o acesso a computadores que se comunicam por meio de determinados protocolos. E como divulgado, ladres e vndalos rotineiramente invadem redes de computadores. Quando as salvaguardas de segurana no so adequadas, os invasores correm poucos riscos de serem flagrados. Os atacantes no seguem regras, podendo atacar sistemas usando tcnicas no antecipadas pelos projetistas e analistas de sistemas, como no exemplo de arrombadores que entram numa casa abrindo um buraco na parede, evitando os alarmes e trancas das portas e janelas. Vndalos cibernticos tambm abrem buracos em paredes de bits. Roubam dados tcnicos, subornam agentes, modificam programas e mancomunam. Tiram vantagens de tecnologias mais avanadas que a dos sistemas que querem atacar, e at descobrem novos mtodos matemticos para atac-los. Geralmente dispem de mais tempo do que algum honesto normalmente teria para desmontar e examinar um sistema. O SecurID foi usado durante anos at que algum olhou mais atentamente dentro de seu gerenciador de chaves: seus cdigos binrios ainda continham rtulos!. As chances favorecem os atacantes, que s precisa encontrar um ponto vulnervel no sistema, enquanto os defensores precisam proteger seu sistema de toda vulnerabilidade possvel.

iv

O que a criptografia pode e no pode fazer


A garantia de 100% de segurana uma falcia, mas podemos trabalhar em direo a 100% de aceitao de riscos. Fraudes existem nas formas usuais de comrcio: dinheiro pode ser falsificado, cheques adulterados ou roubados, nmeros de carto de crdito copiados. Mesmo assim esses sistemas ainda tm sucesso porque seus benefcios e convenincias compensam as perdas. Cofres, fechaduras e cortinas mecanismos de privacidade no so perfeitos mas com freqncia so bons o suficiente. Um bom sistema criptogrfico atinge o equilbrio entre o que possvel e o que aceitvel. A criptografia forte pode resistir com sucesso a ataques que lhe so direcionados at um certo ponto o ponto onde se torna mais fcil obter, de alguma outra maneira, a informao que ele protege. Um sistema criptogrfico, no importa quo seguro, no ir impedir que algum vasculhe seu lixo. Mas pode perfeitamente prevenir ataques de colheita de dados: ningum conseguir vasculhar suficientes latas de lixo para montar a lista de todos os usurios de AZT do pas. A boa notcia sobre criptografia que j temos os algoritmos e protocolos para proteger nossos sistemas. A m notcia que esta foi a parte mais fcil: implementaes bem sucedidas requerem especializao considervel. As reas de segurana na informtica que interagem com pessoas gerncia de chaves, segurana da interface homem/mquina e controle de acesso freqentemente desafiam anlise. As disciplinas de infra-estrutura de chaves pblicas, segurana do software, segurana de computadores, segurana de redes e projeto de hardware inviolvel so tambm pouco compreendidas. Companhias muitas vezes fazem mal a parte fcil e implementam algoritmos e protocolos inseguros. Mas mesmo assim, na prtica raramente a criptografia quebrada por causa, ou atravs, de sua matemtica; outras peas do sistema so mais fceis de serem quebradas. O protocolo mais seguro j inventado poder facilmente sucumbir a um ataque simples se no for dado ateno a detalhes mais complexos e sutis sobre sua implementao. A segurana do browser Netscape 1.0 caiu devido a uma falha no seu gerador de nmeros randmicos. As falhas podem estar em qualquer lugar: no modelo de ameaas, no projeto do sistema, na implementao do software ou do hardware, ou na gerncia do sistema. Segurana uma cadeia, onde um nico elo fraco pode quebrar todo o sistema. Bugs fatais segurana podem estar em partes do software distantes dos mdulos que implementam servios de segurana, e uma deciso de projeto que no tenha nada a ver com segurana poder criar uma falha de segurana. Uma vez encontrada uma falha de segurana, pode-se consert-la. Mas encontrar as falhas, para incio de conversa, pode ser extremamente difcil. Segurana diferente de qualquer outro requisito de projeto, porque nele funcionalidade no igual a qualidade: se um editor de texto imprime corretamente, sabe-se que a funo de impresso funciona. Segurana diferente: s porque um cofre reconhece a combinao correta para abri-lo, no significa que seu contedo est seguro contra um chaveiro ou arrombador. Nenhuma quantidade de testes beta revelar todas as falhas de segurana de um sistema, e no haver nenhum teste possvel que prove a ausncia destas falhas.

Modelos de ameaas
Um bom projeto comea por um modelo de ameaas. O que o sistema est sendo concebido para proteger, de quem e durante quanto tempo? O modelo de ameaas deve levar em considerao todo o sistema, no apenas os dados que est sendo projetado para proteger, mas tambm e principalmente as pessoas que iro us-lo e como iro us-lo. O que motivar os atacantes? Que tipo de abusos podem ser tolerados? Deve um tipo de ataque ser prevenido ou basta que seja detectado? Se o pior acontecer e alguma hiptese fundamental sobre a segurana do sistema for violada, que tipo de salvamento ps-desastre pode ser conduzido? Respostas a estas questes no podem ser padronizadas, como os algoritmos e protocolos. So diferentes para cada sistema, e com freqncia, projetistas no dedicam tempo a construir um modelo realista das ameaas ou a analisar os riscos. Modelos de ameaas permitem a desenvolvedores de produtos e consumidores determinar quais medidas de segurana so necessrias: ter sentido encriptar todo seu disco rgido se voc no guarda seus documentos de papel num cofre? Como pode algum de dentro da companhia fraudar o sistema de comrcio? Qual exatamente o custo para se neutralizar a inviolabilidade de um carto inteligente? No se pode especificar um sistema seguro sem conhecimento sobre contra o que, e de quem, se deseja proteg-lo.

Projeto de sistemas
O projeto de um sistema criptogrfico seguro deve ser feito somente aps o modelo de ameaas ter sido compreendido. Este trabalho o tema central da criptologia, e muito especializado. A criptografia mescla vrias reas da matemtica: teoria dos nmeros, teoria da complexidade, teoria da informao, teoria da probabilidade, lgebra abstrata, anlise formal, dentre outros. Poucos podem contribuir apropriadamente para esta cincia, onde um pouco de conhecimento muito perigoso: criptgrafos inexperientes quase sempre projetam sistemas falhos. Bons criptgrafos sabem que nada substitui a reviso extensiva feita por colegas e anos de anlise. Sistemas de qualidade usam algoritmos e protocolos publicados e bem compreendidos: usar elementos no provados em um projeto no mnimo arriscado. O projeto de sistemas criptogrficos tambm uma arte. O projetista precisa atingir um equilbrio entre segurana e acessibilidade, anonimidade e responsabilizao, privacidade e disponibilidade. A cincia sozinha no garante segurana: somente a experincia e a intuio nascida da experincia podem guiar o criptgrafo no projeto de sistemas criptogrficos e na busca de falhas em sistemas existentes. Bons sistemas de segurana so feitos de pequenos mdulos independentemente verificveis (e que tenham sido verificados!), cada um provendo algum servio que claramente se resuma a uma primitiva. Existem vrios sistemas no mercado que so muito grandes para serem verificados em tempo razovel.

Implementao
Existe uma distncia enorme entre um algoritmo matemtico e sua implementao concreta em hardware ou em software. Projetos de sistemas criptogrficos so muito frgeis. S porque um protocolo logicamente seguro, no significa que permanecer seguro quando o implementador comear a definir estrutura de dados e a descrever a passagem de bits de um lado para outro. Fechado nunca ser totalmente fechado: esses sistemas tm que ser perfeitamente implementados, seno iro falhar. Uma interface mal projetada pode tornar um encriptador de arquivos de disco completamente inseguro. Uma interface de sincronizao mal projetada pode deixar um furo num sistema para comunicaes seguras. Confiana excessiva na inviolabilidade de hardware, tais como os chips de cartes selados, pode tornar intil um sistema de comrcio eletrnico. Como estes problemas no aparecem em testes, por vezes aparecem em produtos j lanados no mercado. Implementadores esto sempre sob presso de oramentos e prazos. Cometem os mesmos erros vezes a fio, em muitos produtos diferentes. Usam geradores de seqncias randmicas ruins, no checam condies de erro apropriadamente, e deixam informaes secretas em arquivos de swap. Muitas destas falhas no podem ser estudadas em livros acadmicos porque no so tecnicamente interessantes. A nica maneira de aprender sobre estas falhas fazendo e quebrando sistemas de segurana, um aps o outro, numa corrida sem fim.

Procedimentos e Gerncia
No final da estria, muitos sistemas de segurana so quebrados por pessoas que os usam, e a maioria das fraudes contra sistemas de comrcio so praticadas por quem os opera. Usurios honestos tambm causam problemas, porque geralmente no ligam para segurana. Eles querem simplicidade, convenincia, e compatibilidade com sistemas legados (inseguros) e em uso. Eles escolhem senhas fracas, anotam-nas, passam-nas para parentes e amigos, largam computadores com sesses abertas, etc. muito difcil vender fechaduras para pessoas que no querem ser molestadas pela responsabilidade de carregar chaves. Sistemas bem projetados tm que levar em conta as pessoas, e as pessoas so os elementos mais difceis de serem abstrados no projeto. A onde est realmente o custo com segurana. No est nos algoritmos. A criptografia forte no mais cara que a fraca. O grosso do custo tambm no est em projeto e implementao: sai bem mais barato projetar e implementar um bom sistema do que cobrir as perdas com um sistema inseguro. A maior parte de seu custo est em fazer com que as pessoas o utilizem. difcil convencer o consumidor sobre a importncia de sua privacidade financeira, quando o mesmo est disposto a trocar um detalhado registro de suas compras por um milsimo de uma viagem ao Hava. difcil construir um sistema de autenticao robusto sobre um outro sistema que permite ser penetrado por meio do conhecimento do nome de solteira da me de algum. A segurana rotineiramente ultrapassada por vendedores, gerentes, executivos e qualquer um que esteja querendo apenas tocar o servio. vi

Mesmo quando o usurio compreende a necessidade de um sistema de segurana robusto, no ter meios de comparar dois sistemas. Revistas de computao comparam produtos de segurana listando seus recursos e funcionalidade, e no avaliando sua segurana. Propagandas de produtos fazem asseres que simplesmente no se sustentam. Um produto mais robusto, isto , melhor testado (e portanto mais caro), estar nestas condies em desvantagem para a comercializao. As pessoas confiam no governo para zelar pela sua segurana e bem estar, em coisas para as quais no detm conhecimento suficiente para fazerem sua prpria avaliao industrializao de alimentos, aviao, medicamentos, medicina, etc. Com a criptografia entretanto, os governos fazem geralmente o contrrio.

Problemas
Quando cai um avio, so abertos inquritos, feitas anlises e laudos tcnicos. Informao sobre o acidente amplamente divulgada, e muitos aprendem algo com o acidente. Pode-se obter das autoridades, laudos sobre acidentes areos desde o incio da histria da aviao. Mas quando o sistema eletrnico de transaes financeiras de um banco penetrado e fraudado, quase sempre o episdio acobertado. Se alguma informao chega at os jornais, os detalhes so omitidos. Ningum analisa o ataque, e ningum aprende nada com os erros. O banco tenta remendar o problema em segredo, na esperana de que a clientela no perca a confiana num sistema que no merece esta confiana. Remendar sistemas de segurana para tapar furos em resposta a ataques bem sucedidos no suficiente. A informao move muito depressa. Uma falha em algum sistema, descrita na internet, pode ser explorada por milhares em um dia. Os sistemas para hoje precisam antecipar futuros ataques. Qualquer sistema de grande porte seja para comunicaes autenticadas, armazenamento seguro de dados ou comrcio eletrnico deveria ter vida til de cinco anos ou mais. Para permanecer seguro, precisa ser capaz de resistir ao futuro: ataques mais inteligentes, com maior capacidade computacional e motivaes crescentes para se subverter um sistema que est consolidado por longo uso. No haver tempo para se fazer upgrades enquanto este estiver em uso. A histria tem nos ensinado: nunca subestime a quantidade de recursos em dinheiro, tempo e esforo que algum esteja disposto a gastar para subverter um sistema. Use sistemas de defesa ortogonais, com vrias maneiras de se fazer a mesma coisa. Autenticao segura pode significar assinaturas digitais pelo usurio via teclado, SSL para proteger a transmisso, IPSec pelo firewall para o destino, junto com pontos de auditoria mltiplos ao longo do caminho para gerar rastros e produzir evidncias. A quebra de alguma parte dar ao atacante uma alavanca, mas no causar o colapso de todo o sistema. sempre melhor assumir o pior. Assuma que seus adversrios so melhores do que realmente so. Assuma que a cincia e a tecnologia podero em breve fazer coisas que hoje ainda no podem. D a si mesmo um margem de erro. D a si mesmo mais segurana do que hoje precisa. Quando o inesperado acontecer, voc estar contente por ter agido assim. (Bruce Schneier) Creio ser a busca de segurana para a informtica semelhante busca metafsica do homem pelo significado da vida. Um movimento de impulso difuso entre o compreensvel e o desejvel, no horizonte cambiante do possvel. Terei atingido meu objetivo se ao final pudermos reconhecer o contexto onde as ferramentas criptogrficas podem ser teis. Este contexto formado pelas esferas de atitude, motivao e compreenso dos riscos por parte de quem usa a informtica, para dela se obter confiabilidade. Poderemos ento conviver, e convencer outros da necessidade de convivncia, com o dilema que h na verso digital da segunda lei da termodinmica, expressa pela equao de Nemeth Segurana = 1 / Convenincia A sabedoria de cada um ser enriquecida na medida em que puder discernir a dose certa com que uma outra fora humana relacionada segurana a parania pode contribuir ao delicado equilbrio desta lei.

vii

1: Fundamentos
Desafios e demandas sociais por segurana computacional: Safety- proteo contra acidentes (Leis de Murphey) Security- proteo contra ataques e 'incidentes' (Primeira Hiptese
Metafsica de Descartes) 1 - Security: desafio 1- Padronizao de mecanismos e protocolos Instituies financeiras...Transaes eletrnicas. Corporaes..........Gerncia, Comrcio eletrnico, etc. Telecomunicaes Provimento de servios. Comunidades........Internet, Redes proprietrias, etc. Governo................Administrao, Militar, Espionagem, etc.

3 - Security: desafio 2- Norma jurdica e Norma cultural Classificada Governos Organizaes militares Virtual Interna Sistemas operacionais Bancos de dados Sensvel Comrcio, Indstria Comunidades Virtual Externa Redes de computadores Telecomunicaes

3 - Security: desafio 3- Mudana no perfil da impunidade (Estudo por Securicor Consult. Ltd, Londres, 1993) Crimes rastreados dentre ocorridos............~ 1% ; Crimes denunciados dentre rastreados.......~15% ; Crimes denunciados com suspeito(s).........~61% ; Suspeitos julgados e condenados...............~ 3% ; Crimes punidos com priso........................ ~0,0003%

Pedro Rezende 1998-2011

v 2.3

Processo de segurana computacional - Security


Demanda bsica de mecanismos de proteo:
Tipo de proteo Privacidade Integridade Legitimidade Disponibilidade Ameaa bsica Ao Indevida (Read) Vazamento ou desvalorizao (Write) Fraude, adulterao ou perda (eXec) Acesso indevido execuo (eXec) Bloqueio ilegtimo de servio

Componentes principais do processo:


1 - Poltica de segurana de dados Planejamento - Avaliao e anlise de riscos e custos. Especificao para implementao de salvaguardas e servios. Atribuio documentada de autorizaes e responsabilidades. 2 - Servios bsicos para segurana computacional (security) Autorizao..........identificao para controle de acesso. Cifragem..............codificao para sigilo ou privacidade. Autenticao........validao de origem e/ou integridade de contedo. Certificao.........autenticao recursiva com validao objetiva. 3 - Controle e Auditoria Monitoramento..........gerenciadores (rede, backup) logs, IDS, etc. Rastreamento.............antivirus, firewalls, proxies, IDS, etc. Avaliao...................testes de penetrao, anlise estatstica, relatrios, reviso de polticas, de estratgias, etc.

Pedro Rezende 1998-2011

v 2.3

Ataques a sistemas informticos


Classificao de ataques (Warwick Ford):
Subjacentes Primrios Ameaas bsicas

Por penetrao 1-

Por Implantao

Ataques primrios por penetrao Personificao:.................... invaso no permetro de login Desvio de controle:..............explorao de falhas na plataforma Violao de autoridade:.......uso indevido de privilgios

2-

Ataques primrios por implantao Gancho: (backdoor).....uso de recurso no documentado Infeco:...................... exploit, verme, vrus. Embuste:......................c. de tria, spoof, smurf, (spear) phishing

Quadro-resumo (Warwick Ford)

Ameaas: Vazamento Ataques Primrios:


Penetrao

Fraude

Bloqueio

Uso indevido

Personificao, Desvio, Violao.

Gancho, Virus, Spoof, Troiano, etc.

Implantao

Ataques Subjacentes:
Escuta passiva, Anlise de trfego, Descuido, Grampo, Varredura. Escuta ativa, Refutao. Sobrecarga intencional, Fraude. Furto de sesso, Replay, Espelhamento, Fraude.

Pedro Rezende 1998-2011

v 2.3

Vulnerabilidades e pontos de ataque


Ataques mais freqentes a sistemas computacionais em 89(em ~3000 casos; Computer Security Conference, ordem decrescente) 1 2 3 4 5 Violao de autoridade:..........abuso de usurio legtimo. Personificao:....................... uso de senha vazada. Desvio de Controle:................hacking, cracking. Gancho ou Embuste:..............mascaramento de funcionalidade. Grampo, Escuta, Varredura:...garimpagem no trfego de dados.

Meios externos de ataque (Counterintelligence DoD, 94) via Internet (rede aberta).........................................80% dos casos outros meios:...........................................................20% dos casos

Riscos de invaso de redes (NCSA, 95) Redes de companhias conectadas Internet:..........24% invadidas Redes privadas no conectadas Internet:.............3% invadidas

Recursos que demandam medidas especficas (ver Apndice B)


Cabeamento Dispositivos de interconexo (gateways, routers, bridges, etc). Estaes de trabalho. Servidores (de autenticao, de terminais, de aplicativos, etc). Software de rede e aplicativos Arquivos de configurao e de Banco de Dados .

Pedro Rezende 1998-2011

v 2.3

Tipos de Ataque ao TCP/IP


Hierarquia de servios e protocolos hoje usados na InternetNFS PMAP arquiv portas XDR TELFTP SMTP NET transf. e-mail login arquivo HTTP Gopher DNS NTP TFTP RIP www direnome sincro- transf. roteatrio domino nizao arquivo mento UDP IP ISO 8802-2 HDLC: LAP-B: LAP-D: ITU ISO ITU ITU 3309 X.25 Q.921/2 Q.921 .8885 Frame Relay ISDN ATM: ITU I.361 RPC procedimento remoto NIS

Camada Aplic

Transp Rede Enlace Ethernet


ISO 8802-3

TCP

ISO 8802-5 Token Ring

ISO 9314 FDDI

SLIP

PPP: rfc 1331 Assncrona

CSMA/CD

Riscos nos protocolos de enlace Escuta passiva (sniffers) ............via interfaces em modo promscuo Sobrecarga (denial of service)....via escuta ativa (broadcast storm)

Riscos nos protocolos de rede Spoofing de endereo IP:....identificao falsa da origem do pacote Ataques ao ICMP:..............uso malicioso de mensagens de controle do IP (Redirect, Destination Unreachable,Source Quench, etc) Ataques de fragmentao:. subverso dos filtros de firewall em redes cuja implementao TCP pode reconstruir pacotes fragmentados.

Riscos nos protocolos de rede (continua) Ataques de roteamento (source routing):....uso de opes do IP para habilitar ataques de escuta ativa, espelhamento ou roubo de sesso.

Pedro Rezende 1998-2011

v 2.3

Riscos nos protocolos de transporte Ataques de nmero sequencial:...simulao do handshake para abertura de sesso TCP, conjugado ao spoofing de endereo IP. Spoofing de UDP:..........................simulao de datagramas para abertura ou roubo de sesso (sequestro) em aplicativos que usam UDP e que no implementam autenticao e criptografia .

Riscos nos protocolos de aplicao Ataques a login remoto:. escuta passiva de sesses TELNET ou "servios r-" vazam senhas que podem habilitar ataques de personificao Ataques ao DNS:.............modificaes fraudulentas de tabelas in-addr.arpa, podem habilitar ataques via servios remotos "r-". Ataques ao RIP ou EGP: roteadores com filtragem deficiente podem sofrer spoofings que habilitam espelhamento e escuta ativa nas redes. Ataques via SMTP, HTTP: falta de autenticao habilita mensagens forjadas. Extenses habilitam ataques por implantao contra servidor e/ou cliente (SQL injection, Cross-site scripting, etc.) FTP, TFTP:..................... configurao e filtragem seguras so complexas. Protocolo usado em quase todo ataque externo via IP. NIS, NFS, NTP: ..............fraudes no NTP podem habilitar ataques de replay na rede. Servios baseados em RPC podem ser alvo de sniffers. X-Windows, Finger, Whois: aplicativos que facilitam outros ataques se mal configurados ou indevidamente habilitados. Etc...

Pedro Rezende 1998-2011

v 2.3

Polticas de segurana
Roteiro Tpico de planejamento para segurana Quais recursos e ativos virtuais podem ou devem ser protegidos? De quem (security) e de que (safety) se quer proteg-los? Qual a probabilidade de acidentes (safety) e incidentes (security)? Como medir o valor a proteger representado nesses recursos e ativos? Quais aes podem proteg-los tm custo/benefcio aceitvel? Que planos de contingncia, reavaliao, terceirizao, etc. decorrem?

Salvaguardas no computacionais 1 - Segurana fsica:................controle de acesso fsico, blindagem, etc. 23456Segurana funcional:..........recrutamento, treinamento, motivao Segurana administrativa:. .auditoria, fiscalizao, contingncia Segurana na mdia:...........backup, destruio de material, etc. Radiao ou engenharia reversa: blindagem no encapsulamento Controle de ciclos:..............reavaliao da poltica de segurana

Servios bsicos (para Security) Servios computacionais bsicos, implementveis com Primitivas Criptogrficas, para montagem de mecanismos de proteo contra efeitos da Hiptese Metafsica de Descartes. Podem ser classificados:
1234Autorizao:....................... servio bsico para controle de acesso. Cifragem:............................servio bsico para sigilo ou privacidade. Autenticao:......................servio bsico para integridade. Certificao:.......servio bsico para autenticao recursiva objetiva.

Pedro Rezende 1998-2011

v 2.3

Primitivas criptogrficas: Notao


Autorizao:
para identificao visando principalmente controle de acesso Agente
id + senha ou Processos identificador usurio, hardware ou software identificvel controle Funo bloqueadora login Funo decisria

Objeto
Recursos mdia, servio ou dados que o agente identificado quer acessar log

Cifragem (Encriptao + Decriptao) com chave secreta:


para sigilo durante transmisso no tempo ou no espao de dados Emissor
chave compartilhada chave k

Receptor
texto pleno | Funo dado claro decriptadora

texto pleno | dado claro

chave k Funo encriptadora Criptograma c = k(m)

[cifragem simtrica]

c k(_) k(c) = k(k(m)) = m

Autenticao com chave secreta (usando hash criptogrfico (MAC) ):


para validao subjetiva de origem e/ou de integridade de dados transmitidos. Emissor
chave compartilhada chave k

Receptor
Funo verificadora origem e integridade?

texto | dado

chave k Funo autenticadora

m||s

Autenticador: s = h(m||k) (m a transmitir)

m h(_||k); [h(_): funo de hash] s =? h(m||k) (m recebido)


canais em banda canal inseguro || concatenao | 'ou' lgico

Legenda:

canais fora de banda requer integridade chave k chave k

requer sigilo e integridade

segredo k compartilhado
Pedro Rezende 1998-2011 8 v 2.3

Primitivas criptogrficas: Notao


Cifragem com chaves assimtricas (pblica + privada):
para sigilo durante transmisso de dados sem segredo prvio compartilhado
texto pleno| dado claro

Emissor
Funo encriptadora

par de chaves chave e chave d

Receptor
Funo decriptadora

texto pleno| dado claro

c d(_) d(c) = d(e(m)) = m

Criptograma c = e(m)

[assimtrica: d(e(_))=_]

Autenticao com chaves assimtricas (privada + pblica):


para validao objetiva de origem e/ou integridade de dados transmitidos Emissor
par de chaves chave d chave e

Receptor
Funo verificadora origem e integridade ?

texto | dado

s e(_); Autenticador s = d(h(m)) [assimtrica: e(d(_))=_ ] e(s) =? h(m) (m recebido) (m a transmitir)

Funo autenticadora

m||s

Certificao:
autenticao assimtrica recursiva para transitividade de validaes objetivas Emissor
par de chaves

Receptor

registro: id || identificador

chave d Funo certificadora (autentica)

chave e Funo Relao identificadora: (verifica) verificadora id ? identificador certificado canais em banda canal inseguro || concatenao | 'ou' lgico

Legenda:

canais fora de banda requer integridade chave e chave d chave d chave e

requer sigilo e integridade

segredo d no-compartilhado
Pedro Rezende 1998-2011 9 v 2.3

Modelos de Autorizao - Controle de Acesso


Sistemas de autorizao discricionrios Baseados no modelo de matriz de acesso de Lampson, vem o sistema a ser controlado como um conjunto de estados formados por sujeitos, objetos e permisses. As propriedades do mecanismo so definidas como transies de estado permitidas (possveis autorizaes). Aborda a questo pelo aspecto do armazenamento de permisses. (Lampson, B.: "Protection". OS Riview, Jan 1974)

Sistemas de autorizao mandatrios Baseados no modelo de classificao de relaes sujeito-objeto de Bell e LaPadula, vem o sistema como um conjunto de estados onde as transies possveis so determinadas por axiomas e regras. Aborda a questo pelo aspecto dos fluxos de informaes. (Bell, D. & LaPadula, J.: Lampson: "Security
Computer Systems. Mathematical Foundation". MITRE Corp., Bedford, 1974)

Elementos de um modelo de controle de acesso

Sujeitos:.........agentes ativos no sistema computacional; Objetos:.........agentes passivos, capazes de representar informaes de valor para algum outro agente (inclusive externo ao sistema); Permisses (modos de acesso) : formas de acesso que causam fluxo de informaes entre objeto e sujeito (e/ou vice-versa) atravs do sistema. Autorizao: conjunto das permisses (modos de acesso), outorgadas a um determinado sujeito do sistema, sobre certo(s) objeto(s) do sistema; Privilgio (direito administrativo): permisso que pode causar modificaes em autorizaes aplicveis no sistema. Poltica: regras para a criao de autorizaes, inclusive programveis para quando forem criados novos objetos ou agentes no sistema; Axioma: poltica embutida na implementao do controle de acesso.
10 v 2.3

Pedro Rezende 1998-2011

Elementos de controle de acesso


Quadro-resumo (Castano, Fugino, Martela, Samarati)
Sujeitos: Usurios
Requisio de acesso

Administradores
Requisio para operao administrativa

Processos comuns Log Controle de permisses (Funo decisria) Acesso autorizado

Cotrole administrativo (de privilgios) Acesso autorizado Autorizaes e polticas

Objetos:

Axiomas

Modelos especficos (C.,F.,M.& S.: "Database Security") Modelos para bancos de dados podem exigir adequaes, como para tratar mltiplas instncias de um objeto com distintos requisitos de autorizao. Vrias extenses dos modelos bsicos existem, por exemplo:
Harrison-Ruzzo-Ullman: modelo de matriz dependente de contexto. Take-Grant:....generaliza o modelo de matriz usando grafos, com enfoque no controle da propagao de autorizaes e privilgios; Wood et al.: orientado para a gerncia do controle de acesso em BDs multicamadas que seguem a arquitetura ANSI/SPARC. Biba, Dion e outros: estendem o modelo mandatrio para BDs

Modelo hbrido RBAC (Role Based Access Control)


Com uma camada adicional, para tipos de sujeitos (papis), possvel mesclar elementos dos modelos mandatrio e discricionrio (ex: SELinux)

Pedro Rezende 1998-2011

11

v 2.3

Controle de acesso
Mecanismos para implementao de controle de acesso:
1Listas de controle de acesso (ACL): banco de dados associado a objetos do sistema, descrevendo autorizaes permitidas 23(controle de acesso com autorizao discricionria). Capacidades:......................... banco de dados associado a objeto(s), descrevendo relaes de permisso com outros objetos. Rtulos de segurana:..........atributo associado a objeto(s) que determina as possveis autorizaes pertientes conforme classificao de capacidades (autorizao mandatria).

Mecanismos para controle de acesso discricionrio 1 - Alocao de autorizaes (critrio de necessidade de conhecimento ). 2 - Autorizao e gerncia de direitos administrativos (privilgios). 3 - Identificao e autenticao de agentes. 4 - Monitoramento de acessos. 5 - Preveno (on-line) contra acesso no autorizado.

Mecanismos para identificao: (ver Apndice B)


123O que (s) o agente pode dizer:... senha, passphrase; O que (s) o agente pode fazer:... assinatura de punho digitalizada, timbre de voz, etc; O que (s) o agente pode mostrar:... marca biomtrica (impresso digital, padro de retina, etc), chave privada, token ou carto inteligente, etc.

Pedro Rezende 1998-2011

12

v 2.3

Classificao de sistemas de controle de acesso


Arco-ris (publicaes do National Computer Security Center) -Definem padres de segurana computacional de sistemas para o
Department of Defense dos EUA - ISO 15408 (Common criteria) 12"Orange book".........DoD 5200.28 STD,. "Red Book"...............NCSC-TG-005, interpreta o orange book no contexto de redes de computadores.

Trusted Computer Standards Evaluation Criteria:


O orange book classifica sistemas stand-alone em classes e nveis. Classe D - Untrusted Nenhuma proteo para o hardware ou para o sistema operacional (Ex. MS DOS, Win95, Win98, MacOS, etc) Nvel C1 - Discrecionary Security Protection Identifica usurios por login e senha, com permisses de acesso a recursos e dados. Login nico "root" para administrao (Ex.Unix) Nvel C2- Discrecionary Access Controls C1 com controles adicionais: de acesso por nveis de autorizao, de auditoria, e de direitos administrativos. (Ex.Unix comerciais, WinNT) Nvel B1- Labeled Security Protection Objetos sob controle de acesso mandatrio tem suas permisses prcodificadas no sistema. (Ex: AT&T V/LMS, UNISYS 1100, HP UX ) Nvel B2- Structured Protection Todos os objetos acessveis so rotulados para controle mandatrio. Modelo formal de segurana documentado (Ex: Honeywell Multics).

Pedro Rezende 1998-2011

13

v 2.3

Trusted Computer Standards Evaluation Criteria (cont)


Nvel B3- Security Domains Level Mecanismos de segurana devem ser modularmente testveis. Controle e gerenciamento de memria por hardware. Mecanismo de restaurao e canais de comunicao protegidos em hw. Classe A - Verified Design Level B3 com especificao formal do projeto de software e consistncia do modelo de segurana formalmente verificvel. Controle na fabricao e transporte do hardware (Ex: Honeywell SCOMP)

O nvel de segurana C2 Esta classe, que se tornou critrio aceitvel para padro de segurana na maioria das aplicaes comerciais, tem como caracterstica principal as seguintes propriedades: 1Domnio:.......................... sistema operacional protegido, quando em execuo, contra vazamentos interprocessos, por meio da 23456compartimentao de memria. Kernel do sistema:..........protegido contra adulteraes em disco. Poltica de segurana:....parmetros configurveis em nveis de segurana, globalmente aplicveis no controle de acesso. Controle de acesso:.........autorizao controlada por listas de permisses, com registro configurvel de acessos em log Autenticao:..................com granularidade a nvel de objeto, por mdulo protegido, com suas operaes rastreveis via log. Log: ................................quando em execuo, acesso restrito a nveis de administrao e protegido de adulteraes em disco.

Pedro Rezende 1998-2011

14

v 2.3

Cifragem para sigilo


rea da Criptografia que estuda recodificaes reversveis

1- Cifra: Conjunto K de funes simblicas inversveis e:MC; e-1:CM, onde: m M pode codificar (representar) um texto m numa linguagem L; m M, e K [e(m) = c oculta o significado de m em L ]. - Um par de funes e, e-1 pode ser indexado (ou parametrizado) por uma chave k ou por um par de chaves (e,d) em K . M dito espao de mensagens, C, espao de criptogramas, K, espao de chaves. [Se K parametrizado, um par de funes e, e-1 pode ser indexado por mais de uma chave k (ou par de chaves (e,d)) em K] 2- Algoritmo de Cifra: implementao f de uma cifra K, f:K M K C, onde f encripta m : f calcula e(m)= c [=f(e, m), denotado e(m) ou k(m)]; e f decripta c : f calcula e-1(c)= m [=f(e-1, c), denotado d(c) ou k(c)].

3- Criptografia s. s.: Arte de implementar cifras robustas, i.e., cifras que permitem
controle do custo, invivel, para se obter m de c desconhecendo-se k (ou d).

4- Criptoanlise: Arte de se subverter tal controle (i.e., atacar e quebrar cifras). Classificao de Algoritmos de Cifra (por Premissas de Sigilo) -

1 - Algoritmo Restrito (implementa cifra secreta): Presumido ser desconhecido de quem o ataca: a robustez da cifra depende do sigilo de f (e das chaves, se existirem, pois neste caso o projeto da cifra ignora o princpio de Kerkhoffs). 2 -Algoritmo Simtrico (implementa cifra de chaves secretas): Projetado para que a robustez da cifra no dependa do sigilo de f, mas onde d facilmente dedutvel de e; neste caso, um par de funes e, e-1 geralmente indexado por uma chave k (dita secreta): a robustez de f depende do sigilo de k, da equiprobabilidade de qq chave k ter sido escolhida em K, e de K ser grande. 3 - Algoritmo Assimtrico (implementa cifra de chaves pblicas): Projetado para que a robustez da cifra no dependa do sigilo nem de f nem de e; neste caso, para qualquer par (e, d), tem que ser invivel deduzir-se d (chave privada) de e (chave pblica) ou de c: a robustez de f depende do sigilo de d, da equiprobabilidade de qq par (e,d) ter sido escolhido em K, e de K ser grande.
Pedro Rezende 1998-2011 15 v 2.3

Criptografia Pr-computacional
Cifras de substituio 1Monoalfabticas:. M=()*; = alfabeto de L e de M, f substitui cada letra

mi de m por e(mi). e uma bijeo de no alfabeto de C (geralmente tambm ), e k expressa esta bijeo (por exemplo, por meio de uma lista que emparelha cada letra de com sua substituta, mapeada por e(_)). Exemplo: Cifra de Csar: = { ,a,b,...,z}, e = rotao de por k posies. 2 - Poligrmicas:.....M=C=( n)*, = alfabeto de L, n = alfabeto de M e de C
= {blocos de n letras de }. f substitui os blocos de n letras de m por outros

blocos, conforme mapeados bijetivamente por e(_). (chaves longas) 3 - Polialfabticas:...M=C=K=( n)*, f uma cifra poligrmica que se decompe em n substituies monoalfabticas, indexadas pelas n letras da chave k, que se repetem em cada bloco de m (n dito perodo da cifra). Ex: Vigenre (1538): e = n rotaes distintas de , repetidas em cada bloco de m; Variante (com XOR): f= XOR da chave com cada bloco de m. 4 - One-time pad (OTP): polialfabtica onde n o tamanho da mensagem m, a chave k gerada aleatoriamente e usada apenas uma vez.

Cifras de transposio (usadas na 1 guerra mundial) M=C=(n)* ; K (n)(permutao de n posies). f permuta entre si as letras de cada bloco de tamanho n de m, conforme a permutao de posies definida por e (n), e indexada por k. (d representaria a permutao inversa de e, a qual facilmente dedutvel de e, portanto a cifra simtrica e basta um ndice k para representar o par e, e-1).

Cifras hbridas (combinam transposies e substituies) Entre 1920 e o final da 2 guerra mundial, prevaleceram implementaes
eletromecnicas, inspiradas no odmetro. Com o advento do computador, duas estratgias para projeto de cifras simtricas prevaleceram: Cifras de Bloco: procuram simular poligrmicas, com chaves menores. Cifras Encadeadas: procuram simular OTP, com chaves expansveis.
Pedro Rezende 1998-2011 16 v 2.3

Exemplo de um algoritmo criptogrfico


Implementao (em C) da cifra de Vigenre com XOR k(m): f(e,m) = k XOR m ; k(c): f(e-1,c) = k XOR c
/* uso:cripto chave arquivo_entrada arquivo_saida */ void main (int argc, char *argv[]) { FILE *entrada, *saida; char *key; int c; /*programa*/ if ((key = argv[1]) && *key!=\0) { if ((entrada = fopen(argv[2],rb))!=NULL) { if ((saida = fopen(argv[3],wb))!=NULL) { while((c = getc(entrada))!=EOF) { if (!*key) key = argv[1]; c ^= *(key++); putc(c,saida); } fclose(saida); } fclose(entrada); } } } Considerada robusta at 1820, quando foi descoberto mtodo de ataque estatstico baseado no desvio na frequncia de coincidncias em deslocamentos sucessivos, quando o deslocamento coincide com o tamanho do bloco (ou seja, o tamanho da chave escolhida para cifragem). /*XOR*/

Pedro Rezende 1998-2011

17

v 2.3

Ataques a Algoritmos Criptogrficos


Ameaas da Criptoanlise:
Neutralizao do ocultamento do significado de m ou do sigilo da chave de decriptao k (ou d), a um custo vivel para o atacante.

Tipos de ataques a cifras (em ordem cresceste de severidade) 1 - Criptograma conhecido: atacante tem acesso a e(mi), i = 1,2,3... 2 - Texto pleno conhecido:. .acesso a instncias de pares mi, e(mi), " 3 - Texto pleno escolhido:....acesso a escolhas de mi em e(mi), " 4 - Texto pleno adaptativo:. escolhas iterativas de mi em e(mi), " 5 - Chave comparada:..........acesso a instncias mi, e1(mi), e2(mi), ... 6 - Chave comprometida:....suborno, extorso, vazamento de k (ou d).

Tipos de ameaa a algoritmos criptogrficos (em ordem crescente de severidade) 1 - Deduo de informao :. .criptoanalista ganha informao sobre bits de uma chave, formato ou estatsticas relativas a um texto encriptado. 2 - Deduo local:...................criptoanalista descobre o texto pleno oculto em um criptograma c. 3 - Deduo global:................criptoanalista descobre algoritmo que calcula e-1(c) sem obter ou precisar de conhecer k (ou d). 4 - Quebra total:.....................criptoanalista descobre mtodo eficiente para obter a respectiva chave de decriptao k (ou d).

Pedro Rezende 1998-2011

18

v 2.3

Teoria da Informao aplicada Criptografia


Estruturas de linguagens naturais escritas num alfabeto :
LexL = Lxica
Cadeias de palavras de L Subconjunto de LexL formado por frases sintaticamente corretas

* = todas as sequncias de letras no alfabeto

SinL = Sinttica

Relao de equivalncia em SinLdas frases com significado idntico em L

SemL = Semntica

Entropia (incerteza) lingstica - (Shannon, 1949)


Definies de entropia (como 'medida de informao') numa Linguagem : 1 - Definio intuitiva: Dada um texto (sequncia de frases) m L, representado por uma escrita m *, a entropia de m em L, denotada por H(m), (uma medida d)o espao mnimo necessrio para se reescrever m numa codificao que, aplicada a L, seja capaz de distinguir os possveis significados das frases com a mesma sintaxe de m em L.
Contexto da mensagem Contedo semntico de m Mensagem escrita m H(m) Exemplo: H("sexta-feira") = log2(7) rvore de derivao sinttica de m em L

Intuitivamente, a entropia de uma linguagem L o espao mnimo necessrio para codificar mensagens com significado em L

2 - Definio formal: Medida logartmica ponderada do inverso da probabilidade dos possveis significados de m em L dado seu contexto (si = um possvel significado de m conhecido apenas seu contexto). H(m) = p(si ) log( p(s ) ) i =1 i
Pedro Rezende 1998-2011 19 v 2.3
j

Entropia em Criptoanlise
Taxa r de uma linguagem escrita L:
rL = H(m)/|m| Razo mdia entre a entropia de textos m de L e tamanho de suas escritas m.

Redundncia DL e redundncia relativa dL de uma linguagem L:


DL = log2(||)-rL Redundncia relativa dL a normalizao de DL, dada por dL = DL/log2(||). dL proporcional ao desvio padro na distribuio de freqncia de letras de
em textos escritos de L, e densidade de suas escritas em *

Estimativas de taxa e redundncia da lingua inglesa (Schneier)


rENG 1.3 bits / letra [ = { ,a,b,...,z}] ; DENG 3.4 bits / letra ; dENG 6.7 bits / caracter [ = ASCII]

Distncia de Unicidade UK,L de um sistema criptogrfico


- Um Sistema Criptogrfico a aplicao de uma cifra a uma linguagem: formalmente, um par (f:KxMKxC, L), abrevidamente denotado por (K,L). - A quantidade de distintos significados que poderiam ser ocultados num criptograma gerado com uma chave de K sobre uma mensagem m de tamanho n, isto , o nmero de possveis decriptaes em L de e(m), dada por: 2
(H(K)- dL*n)

+1

- A Distncia de Unicidade de um sistema criptogrfico, denotada UK,L , o limiar para tamanho de mensagens m acima do qual o nmero de possveis significados do correspondente criptograma em (K,L) estimadamente > 1: UK,L = H(K)/dL Se f preserva o comprimento das mensagens, criptogramas de tamanho maior que UK.L podem, em tese, ser deduzidos estatisticamente; menores, no podem.
Pedro Rezende 1998-2011 20 v 2.3

Distribuio de freqncia de letras


Frequncias do Portugus (arquivo genrico de 64KB)
0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0 as A B C D E F G H cii 32 I J K L M N O P Q R S T U V W X Y Z

0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0 as A E O S cii 32 I R T D C M N U P L V G F B Q H Z J X K W Y

frequncia do ingls
0,18 0,16 0,14 0,12 0,1 0,08 0,06 0,04 0,02 0 as E T A cii 32 I N O S R H D L U C F M W Y P B G V K Q J X Z

Pedro Rezende 1998-2011

21

v 2.3

2: Elementos de Protocolos
O que um Protocolo?
um algoritmo distribudo, em que a execuo dos passos alternada entre dois ou mais agentes executores.
Algoritmo
INCIO

Protocolo com 2 agentes


INCIO

Tempo

FIM Seqncia de passos do agente executor Agente A

FIM Agente B

Premissas implcitas no conceito de protocolo computacional:


01234H um propsito especificado que motiva a execuo do protocolo; Os agentes executores devem conhecer a especificao completa, Esses agentes devem concordar em seguir sua parte no protocolo; O protocolo deve ser inambguo, sem margem a mal entendidos, e completo, com uma ao especificada para cada situao possvel;

Interface com o Direito: (Miguel Reale, Marcos da Costa)


O Direito composto de trs dimenses: Norma, Valor e Fato. Com a informtica, o que muda a dificuldade de se estabelecer o Fato No Direito, fato de interesse jurdico se estabelece por correlaes entre ato, efeito (que causou dano) e autoria (que causou o ato).

Pedro Rezende 1998-2011

22

v 2.3

Protocolos Computacionais
Especificao de protocolo:
Uma especificao abstrai o processo que realiza o propsito do protocolo, dos mecanismos pelos quais este processo pode ser implementado. Assim, neste captulo, no mais distinguiremos m (texto) de m (escrita que codifica m), ou k, e ou d (chaves) de e, e-1 (funes de cifra correspondentes)

Protocolo Criptogrfico Tem como propsito proteger algum interesse de certo(s) agente(s) em certos processos de comunicao nos quais esse interesse conflita com alguma caracterstica da comunicao. Usa criptografia para manipular pontos, modos e momentos em que alguma confiana presumida no processo. Para isso, um protocolo criptogrfico pode buscar atingir um ou mais dos seguintes objetivos: 1234Transferir sigilo ou detectar adulterao:.......relativo ao propsito. Prevenir vazamentos que o vulneram:............durante a execuo. Prevenir ou detectar trapaas ou desavenas: entre interlocutores. Prevenir perigosas inferncias ou conluios:...relativo s premissas.

Alocao de Confiana Conforme seu propsito e premissas, um protocolo pode especificar a ao de um agente auxiliar, desinteressado a priori no propsito (TTP ver A-7), para resolver impasses entre agentes principais (interessados no propsito). 1 - Protocolo arbitrado:..........usa agente auxiliar TTP para, durante a execuo, impedir ou prevenir trapaas entre principais. 2 - Protocolo ajuizvel:...........usa TTP para, aps a execuo, detectar trapaas entre principais, e/ou para resolver desavenas entre estes. 3 - Protocolo autoverificvel: sem TTP, supondo que a execuo elimina possveis vantagens para trapaas ou desavenas entre principais.

Pedro Rezende 1998-2011

23

v 2.3

Ao da Confiana em Protocolos Criptogrficos


Resoluo de impasses Quando o protocolo no possibilita a um agente principal deduzir a lisura dos outros principais ao longo da execuo, um TTP tende a nele cumprir funo semelhante a uma instituio que goza de 'f pblica' (cartrio, tribunal, etc). 1- Arbitragem:..decises do TTP quanto lisura, em seus papis, dos agentes principais do protocolo (que no se confiariam em relao ao propsito deste), condicionantes continuidade da execuo do mesmo. 2 - Mediao:.....julgamento pelo TTP de disputas que possam surgir aps a execuo de um protocolo ajuizvel, baseado em evidncias produzidas durante execuo do mesmo.

Exemplo de protocolo no computacional arbitrado Compra de Automvel

6- Novo DUT

7-Crdito 5- Deposito cheque

Detran

4- DUT, Vistoria

Banco

8- Veculo, Novo DUT

rbitro (Agncia)

8- Transferncia do crdito menos taxa

3- Cheque

3- Veculo, DUT

2- Resposta

Comprador A
1- Proposta

Vendedor B

Pedro Rezende 1998-2011

24

v 2.3

Protocolos criptogrficos
Dificuldades da arbitragem em protocolos criptogrficos 12345Impessoalidade:..........programas-rbitro nem sempre inspiram a confiana necessria: podem ocultar 'falhas' de programao. Custo: ........................o custo de criao e manuteno de um servio de arbitragem geralmente recai no servio de comunicao. Gargalo.......................toda transao passa pela arbitragem. Tempo de execuo....a arbitragem consome tempo considervel. Vulnerabilidade..........ponto de alto risco no protocolo, atrai ataques.

Mediao e autoverificao em protocolos criptogrficos


A mediao apresenta dificuldades listadas acima em 1, 2 e 5. A autoverificao apresenta as seguintes dificuldades: 1 - Natureza do problema:. nem todo tipo de problema de security (premissas de confiana + objetivos de proteo) encontra soluo em protocolos criptogrficos autoverificveis. 2 - Anlise exaustiva:........a autoverifio s eficaz enquanto novas formas de ataque que subvertem o protocolo forem desconhecidas.

Conceitos semiolgicos fundamentais (ver Apndice B)


Apresentao:. .Conhecer algo ou algum (por exemplo, via cadastramento); Identificao:...Convencer-se de que se re-conheceu algo ou algum; Autenticao:...Convencer-se, e a outrem(s), de que se reconheceu algo / algum. Subjetiva: convencer o reconhecido; Objetiva: convencer o reconhecido e outros; Assinatura (sentido jurdico): Convencer-se, e a outrem, de que se reconheceu algo que pode representar a manifestao da vontade de algum. Para fazer prova jurdica, a assinatura deve convencer terceiros (juiz, juri, etc.)

Pedro Rezende 1998-2011

25

v 2.3

Elementos (subrotinas) de protocolos criptogrficos


Esquema de distribuio de chaves secretas I: para sigilo em rede fechada com cifragem simtrica

Requer sigilo e integridade

2: Solicita chave (A,B)

Gerenciador de chaves S (p/ controle de acesso)


3: Chave kA.B 3: Chave kA.B

2: Solicita chave (A,B)

0: Escolheu-se algoritmo, gerenciador 1: Requisio de servio

Agente A
7: decripta c': kA.B(c) = m

4: criptograma c = kA.B(m) 6: criptograma c' = kA.B(m)

Agente B
5: decripta c: kA.B(c) = m

Premissas e limitaes em I:
a - O esquema I supe que agentes principais (A e B) confiam um no outro (e no gerenciador de chaves) em relao ao sigilo das chaves. b - A transmisso de chaves requer sigilo e integridade. Geradas por um TTP (AS B), se o propsito de I incluir controle de acesso ( rede). c - I no prov para A a identificao positiva de B, nem vice-versa; d - Sem prvia identificao mtua de A e B, ou se uma chave for vazada ou quebrada (comprometida), um atacante poder personificar A ou B e escalar ataques subjacentes, como escuta ativa, spoofing, replay, etc. e - A privacidade na comunicao em rede com cifra simtrica requer uma chave distinta para cada par de agentes. [n2-n pares, se n agentes] fA distribuio de chaves pelo esquema I reduz a quantidade de chaves necessrias, mas no pode ser feita pelo canal a ser protegido.
Pedro Rezende 1998-2011 26 v 2.3

Esquema de distribuio de chaves pblicas II: para sigilo em rede fechada com cifragem assimtrica
Requer integridade

0.2: cadastrou-se A como titular da chave pblica EA

Banco de chaves pblicas tituladas


1:A l B||EB 1: B l A||EA

0.2: cadastrou-se B como titular da chave pblica EB

0: Escolheu-se algoritmo assimtrico

Agente A
0.1: A gerou par DA, EA 2. A produz m ; cifra m->EB(m) 7: decripta c' : m' = DA (EA(m'))

4: criptograma c = EB (m) 6: criptograma c' = EA (m')

Agente B
0.1: B gerou par DB, EB 2. B produz m' ; cifra m'->EA(m') 7: decripta c: m = DB (EB(m))

Premissas e limitaes em II:


aA origem e a integridade de A||EA, B||EB (relaes identificadoras de A e B) precisa ser certificadas no armazenamento e distribuio das respectivas chaves pblicas, para neutralizar ataques de spoofing , espelhamento, replay. bcAs chaves pblicas distribudas em II se expem ao nvel 4 de criptoanlise (texto pleno escolhido) Dentre os algoritmos criptogrficos robustos conhecidos, os assimtricos so de 103 a 104 vezes mais lentos que os simtricos.

Envelope Digital: uso racional das primitivas de cifragem III: Esquema de envelope digital
0: Escolhe-se um algoritmo simtrico e um assimtrico 1: B || EB

Agente A

2: gera chave de sesso k encripta m com k, encripta k com EB Pedro Rezende 1998-2011

3: Envelope: k(m) || EB(k)

Agente B
0.1 B gerou EB, DB 4: Decripta DB (EB (k)) = k; k(k(m)) = m v 2.3

27

Esquema de Assinatura Digital


Funes semiolgicas da assinatura de punho 1234Inforjabilidade: confiana do verificador na identificao de autoria e do autor, na de possveis falsificaes de um documento Inviolabilidade: confiana do verificador na integridade do contedo lingustico vinculado, pela assinatura, vontade do autor. Irrecuperabilidade: confiana de ambos na inviabilidade de reuso (transferncia desse vnculo por troca de contedo ou assinatura) Irrefutabilidade: confiana do verificador na inviabilidade tcnica de negao da autoria da assinatura pelo autor (perante ajuizamento)

Autenticao com chaves assimtricas:


IV: Esquema de assinatura digital
0.0: Escolheu-se algoritmo assimtrico p/ assinatura 0.2: Publicou-se A || EA (A o titular de EA) 3: mensagem (documento) assinada(o): m || s s = Assinatura digital de A (com DA) sobre m

Agente A
0.1: A gerou EA, DA; 1: gera m; calcula m -> h(m); 2: lavra: DA(h(m)) = s

Agente B

4: Separa m || s; identifica A em m; calcula m -> h(m); s -> EA(s); 5: verificao: h(m) =? EA(s)

Premissas de Confiana no esquema de Assinatura Digital:


1- S o titular de um par de chaves controla o uso de sua chave privada; 2- O usurio de uma chave pblica confia na titularidade dessa chave; 3- Presume-se que o titular manifesta, ou pode manifestar, sua vontade no contedo lingustico de um documento assinado com sua chave privada.

Objetivo do esquema de Assinatura Digital:


Autenticao objetiva no Direito, 'oponvel a terceiros' para validar origem e integridade de mensagens (documentos) assinada(o)s, aproximando as funes semiolgicas da assinatura de punho (a irrefutabilidade, apenas precariamente).
Pedro Rezende 1998-2011 28 v 2.3

Autenticao usando cifra simtica V: esquema arbitrado de assinatura eletrnica


r = "comprovante" de (data e) origem de m; s = r, kA(m) = assinatura 0.2: A solicita a J sua chave de assinatura kA (compartilhada com J) 0.3: kA

rbitro J
Requer sigilo e integridade

0.2: B solicita a J sua chave de assinatura kB (compartilhada com J) 0.3: kB 1: kA(m) 2: c = kB (m||s)

Agente A encripta m

0.1: Escolha de rbitro e algoritmo simtrico

Agente B decripta c
3: m||s = kB (c)

4. B solicita a J verificar se s =? r, kA(m)

Arbitragem:

Combinando os dois servios bsicos da criptografia assimtrica


VI: assinatura + envelope digitais
0.0: Escolheram-se algoritmos 0.2: Publicou-se A||EA ; B||EB 5: A, c || c'

Agente A
0.1: Gerou-se EA, DA; 1: produz m, m -> h(m) 2: lavra DA(h(m)) = s;

Agente B
0.1: Gerou-se EB, DB ; 5: separa c || c', decripta c': DB(c') = k ; 6: decripta c: k(c) = m||s ; separa m||s ; 7: identifica A em m; calcula m->h(m) 8: s -> EA(s); verifica h(m) =? EA(s)

3: gera k ; cifra m||s -> k(m||s) = c; 4: envelopa k-> EB (k ) = c'

Premissas de confiana e limitaes dos esquemas V e VI: V: rbitro J opera como caixa-preta para verificao indireta (subjetiva). VI: II.a,b,c, com II.c agravado. Irrefutabilidade relativa, como em IV.
Pedro Rezende 1998-2011 29 v 2.3

Cifragem unidirecional
Funo Unidirecional (One-way function) Funo simblica com a qual fcil (vivel) calcular a imagem de um
argumento, e difcil (invivel) calcular um argumento (pr-imagem) de uma imagem. Servem para cifragem unidirecional (p. ex., hash criptogrfico).

Funo unidirecional com segredo (trapdoor function) uma funo unidirecional para a qual existe alguma informao acerca da imagem que torna fcil o clculo de sua inversa. conceito fundamental para gerao de chaves assimtricas.
Argumento One-way function h(m) fcil h-1(c) difcil

c Imagem

Hash critogrfico Sinnimos: Digest, Fingerprint, ou Checksum Criptogrfico ; Cheque de Integridade, Cifra Unidirecional , etc. Definio: Funo unidirecional h( ) com imagens de tamanho fixo e argumentos de tamanho varivel, custo computacional de inverso estatisticamente controlado (a nveis inviveis), e resistente a coliso. Resistncia a coliso: Quando difcil (isto , estatisticamente controlado a nveis de custo inviveis) encontrar dois argumentos que produzam o mesmo valor (imagem) dela funo de hash (vide ataque de aniversrio )
h-1(_) Hash resistente a coliso h( )

m'

h(m)=h(m) difcil

- Cdigo de autenticao de mensagem (MAC): Esquema em que um hash criptogrfico h( ) usado com chave secreta k, para validao subjetiva (entre emissor e receptor) da integridade de m || h(m||k) durante transmisso. (Se um terceiro tambm conhece k, essa integridade no pode ser verificada por MAC)
Pedro Rezende 1998-2011 30 v 2.3

Autenticao: Resumo sobre uso adequado

Checksum , CRC (Check Redundancy Code): Destinado a detectar erros involuntrios de transmisso ou armazenagem de dados (safety). Incuo em canais sujeitos a escuta ativa (ex: rede aberta).

Hash, Checksum , Digest ou Fingerprint Criptogrfico: Funo unidirecional h( ) com imagem de tamanho fixo e resistente a coliso, usada em esquemas de autenticao que empregam ndices para representar mensagens (ou documentos) em primitivas criptogrficas. MAC: mensagem m || h(m||k) autenticador da mensagem Assinatura digital: mensagem m || DA(h(m)) autenticador da mensagem

MAC (Message Authentication Code): Esquema de autenticao adequado a protocolos cujo propsito permita que a validao de origem e integridade do contedo autenticado possa ser verificado subjetivamente, entre os agentes principais, portanto, com base em segredo compartilhado (k) presumidamente apenas entre emissor e receptor. Por exemplo, em protocolos destinados a sistemas ou redes fechadas.

Assinatura digital: Esquema de autenticao adequado a protocolos cujo propsito exija que a validao de origem e integridade do contedo autenticado seja verificvel objetivamente, isto , tambm por terceiros alm dos principais. Portanto, adequado onde tal validao no se baseie em compartilhamento de segredo, e sim em segredo no compartilhado (d). Por exemplo, em protocolos para rede aberta, ou protocolos que devam produzir elementos de prova jurdica. OBS: a irrefutabilidade da assinatura digital de natureza tcnica: sustentase nas premissas de confiana do esquema e de sanidade da implementao. Se presentes, sustentam a irretratabilidade jurdica da autoria da assinatura.
Pedro Rezende 1998-2011 31 v 2.3

Preveno contra ataque de replay e certas fraudes temporais:


VII: possvel implementao de selo temporal
0.0: Acordo sobre uso do protocolo 0.2: Publicou-se B||EB ; A||EA 2: h(m) 0.1: Gerou-se EA, DA; 1: produz m, m-> h(m) ; 7: verifica selo temporal t com EB 6: h(m) || B || t 0.1: Gerou-se EB, DB; 3: produz T ; 4: T -> h(T,h(m)) = x ; 5: lavra DB(T || h(m) || x ) = t

Agente A assina

Agente B protocoliza

8: lavra DA( h(m) || B || t ) = s ; m || s

t = selo temporal; T = tempo de relgio GMT

Preveno contra personificao e replay em II.b e III.b


VIII: distribuio de chaves certificadas (esboo do SSL one way):
integridade da origem e contedo presumidos 0.1: B Recebe ES 0.2: B Registra chave pblica EB; 0.1: A Recebe ES

Certificadora de chaves pblicas S gerou (DS, ES )

S prepara cert. cB = S ||B || EB sB = DS(h(cB)) ; CB = cB || sB ; 0.3: S emite CB (S cerifica B como titular de EB)

0.0: Escolheu-se certificadoras e protocolo 1: A Solicita CB 2: B envia CB 4: EB (k) 6: k(m) k = chave de sesso

A armazenou ES
3: verifica h(cB) =? ES (sB); B em 2: =? B em CB Se sim, gera k ; envelopa k -> EB (k)

B gerou (DB, EB )
5: decripta DB (EB (k)) = k ; inicia fluxo de dados cifrados

Pedro Rezende 1998-2011

32

v 2.3

Limitaes da autenticao em rede aberta


Ataque de espelhamento (man in the middle) com chaves pblicas
Intruso X para A finge ser B
6: m1 = DX (EX (m1)) 3: X escuta chave pblica EA 5: A envia EX(m1) 10: X envia EA(m2) 4: X Falsifica chave EB (= EX) [ _ = perda de integridade]

para B finge ser A


9: m2 = DX (EX (m2)) 8: B envia EX (m2) 7: X envia EB (m1) 4: X Falsifica chave EA (= EX) 3: escuta chave pblica EB

0: Escolhe algoritmo, solicita chave pblica 1, 2: X intercepta troca de chaves pblicas

Agente A vaza m1

(Conexo fracamente autenticada)

Agente B vaza m2

Resumo de problemas na distribuio de chaves criptogrficas


aEspelhamento em I e V pode ser feito por personificao do gerenciador de chaves, e em II, III, IV, VI e VII, por escuta ativa. A eficcia dos protocolos que usam chaves pblicas depende de autenticidade destas. b - No esquema VIII, o intruso precisa antes atacar S falsificando a titularidade das chaves de A e B, ou fazer spoofing do servidor S forjando ES, para habilitar o espelhamento entre A e B.

Certificado digital: um documento eletrnico, emitido e digitalmente assinado por uma entidade certificadora, cujo propsito atestar uma relao identificadora, representada em seu contedo. No padro X.509 esta relao entre uma chave pblica e um nome: o do titular (subject) desta chave e da chave privada correspondente. Neste caso o certificado serve (tambm) para distribuir esta chave pblica, nele contida e titulada, junto a outros atributos dessa titulao, como por exemplo o uso pretendido para esta chave pblica.

Pedro Rezende 1998-2011

33

v 2.3

Seqncias randmicas

Conceito
Uma definio formal de randomicidade ou aleatoriedade, se existisse, seria paradoxal (o padro de no seguir nenhum padro?) A ocorrncia ou no de sequncias aleatrias na natureza uma questo de natureza filosfica, mas que produz uma lista de propriedades necessrias aleatoriedade. Algumas dessas propriedades so mensurveis (i.e.: entropia mxima, aperiodicidade, etc.), enquanto outras no (i.e., irreprodutibilidade).

Seqncias pseudo-randmicas (B. Schneier)


So seqncias que exibem as propriedades mensurveis de aleatoriedade conhecidas. So usadas na criptografia, geralmente onde um protocolo requer um segredo inicial. As principais propriedades mensurveis so:

Distribuio homognea:

satisfaz medidas estatsticas

uniformes, incluindo os modelos de Markov de qualquer ordem. Subsequncias de mesmo comptimento (bits) 0, 1 00, 01, 10, 11 000,.., 111 0000,.., 1111 0..00,.., 1..11

Probabilidade de ocorrncia 1/2 1/4 1/8 1/16 1/2n

Entropia mxima:.....a seqncia no deve ser comprimvel por um algoritmo de compresso genrico. (exceto sua semente, por seu gerador pseudo-randmico, se houver) Aperiodicidade:........a sequncia no deve conter perodo (repeties de uma subsequncia de tamanho prximo ao da seqncia)

Pedro Rezende 1998-2011

34

v 2.3

3: Protocolos Importantes
Necessidade de protocolos criptogrficos
Criptografia no cria confiana a partir do nada. Suas primitivas so capazes apenas de transformar certas premissas de confiana, em mecanismos de proteo a certos valores, em situaes onde tais premissas estejam presentes. Autorizao.........transforma premissa de sigilo e integridade (da senha) ou de posse de um entificador nico (token ou chave) em identificao de um agente cadastrado, para fins de atribuio de permisses de acesso . Cifragem transforma premissa de sigilo e integridade de uma chave para a do sigilo de uma mensagem cifrada, durante a transmisso desta. Autenticao.......transforma premissa de sigilo (de uma chave secreta ou privada) e de integridade (destas ou de uma chave pblica) em validao de origem e integridade em transmisses do contedo autenticado. Certificao........transforma premissas de sigilo e integridade (de chaves assimtricas) em autenticao recursiva com validao objetiva. Um protocolo criptogrfico processa suas premissas de confiana, quando presentes em situaes que demandam proteo adequada a seu propsito, para defesa de quem as controla, onde a sua implementao for eficaz.

Protocolos bsicos - Autenticao para controle de acesso


O desenho de um protocolo bsico presume condies mnimas de confiana presentes onde o mesmo ir operar. Essas condies, por sua vez, dependem da arquitetura da plataforma onde a proteo bsica almejada. Protocolos bsicos podem ser classificados conforme o tipo de plataforma a que servem Login: autenticao e controle de acesso para sistema fechado; Distribuio de Chaves: autenticao e controle para rede fechada; Public Key Infrastructure: autenticao e controle para rede aberta.

Pedro Rezende 1998-2011

35

v 2.3