101
Criptologia – Segurança na Internet 2003 / 2004 970371 Rui Matos Departamento de Engenharia Informática Setembro de 2004 Orientador: Engº António Costa

Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

2003 / 2004

970371 Rui Matos

Departamento de Engenharia Informática

Setembro de 2004

Orientador: Engº António Costa

Page 2: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto i

Prefácio

No âmbito da disciplina Projecto do 5º ano da Licenciatura de Engenharia

Informática, Ramo Computadores e Sistemas, do Instituto Superior de

Engenharia do Porto, era pedido que se escrevesse um relatório sobre um

assunto/tecnologia relacionado com o curso. A minha escolha recaiu sobre a

Criptologia.

Tudo começou com uma pesquisa na Internet acerca do tema, onde fui

encontrando informação e documentos, que numa primeira etapa, fui

guardando. Segui-se uma leitura mais aprofundada, onde dei início à selecção

da informação mais pertinente. Com isto, comecei a tirar conclusões acerca da

matéria e a construír este relatório. No entanto, nunca deixei de pesquisar por

mais dados, sempre que surgia uma dúvida.

Com isto, posso neste momento dizer, que aprendi bastante sobre o tema –

Criptologia – tendo agora uma visão consideravelmente mais ampla acerca da

segurança necessária que se deve empregar, quando se requer privacidade,

sigilo, segurança nas transacções comerciais, documentais ou meramente de

mensagens privadas.

Page 3: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto ii

Agradecimentos

O projecto representa o final do curso académico, pelo que gostaria de

agradecer a todos os que contribuiram para que, neste momento, me

encontrasse aqui. Foram vários anos, muito trabalho, dores de cabeça,

sacrifícios feitos, não podendo, nesta altura deixar de deixar um Muito

Obrigado a todos que ajudaram não só no estudo, mas também a passar o

tempo. Especialmente, gostaria de enumerar algumas, que se tornaram casos

especiais.

Meus pais, pelo que sempre fizeram por mim.

Cláudia, por várias vezes se ver privada da minha presença e por todo o apoio.

Eduardo Covelinhas, Sérgio Lopes, pela grande amizade que ficou e pelos

bons momentos passados.

Engº António Costa, pelo tema deste projecto e pela prontidão em ajudar que

sempre revelou.

Page 4: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto iii

Índice

PREFÁCIO..................................................................................................................................................... I AGRADECIMENTOS .................................................................................................................................II ÍNDICE ........................................................................................................................................................ III ÍNDICE DE FIGURAS ................................................................................................................................V ÍNDICE DE TABELAS................................................................................................................................V 1. INTRODUÇÃO ...............................................................................................................................1 2. A REDE COMO MEIO DE DIVULGAÇÃO..............................................................................3

2.1. O QUE PROTEGER ..........................................................................................................................3 2.2. DE QUE PROTEGER ........................................................................................................................4 2.3. COMO PROTEGER...........................................................................................................................5

3. CRIPTOLOGIA..............................................................................................................................6 3.1. TERMINOLOGIA BÁSICA................................................................................................................6 3.2. PRINCÍPIOS BÁSICOS DA SEGURANÇA............................................................................................7

3.2.1. Autenticidade...........................................................................................................................8 3.2.2. Confidencialidade ...................................................................................................................9 3.2.3. Integridade.............................................................................................................................10 3.2.4. Disponibilidade .....................................................................................................................10

4. TEORIA DA INFORMAÇÃO E LEGISLAÇÃO.....................................................................12 4.1. ASPECTOS LEGAIS.......................................................................................................................12

4.1.1. Copyright (Direitos de Autor)...............................................................................................16 4.1.2. Trade Secrecy Protection (Protecção do Negócio) ..............................................................16 4.1.3. Contrato.................................................................................................................................17

5. PROTECÇÕES POR MEIOS NÃO LEGAIS...........................................................................18 6. TIPOS DE RISCOS PARA AS ORGANIZAÇÕES .................................................................19 7. ALGORITMOS DE CRIPTOGRAFIA BÁSICOS ..................................................................21 8. ASSINATURAS DIGITAIS.........................................................................................................23 9. FUNÇÕES DE HASH CRIPTOGRÁFICAS.............................................................................25 10. GERADORES DE NÚMEROS ALEATÓRIOS CRIPTOGRÁFICOS.................................27 11. A FORÇA DOS ALGORITMOS CRIPTOGRÁFICOS..........................................................29 12. CRIPTOANÁLISE E ATAQUES EM CRIPTOSISTEMAS ..................................................31 13. ALGORITMOS.............................................................................................................................35

13.1. CRIPTOSISTEMAS DE CHAVE PÚBLICA.........................................................................................35 13.2. TERMINOLOGIA ...........................................................................................................................36

14. CRIPTOSISTEMAS PRÁTICOS...............................................................................................39 14.1. FACTORIZAÇÃO: RSA, RABIN.....................................................................................................39 14.2. DISCRETE LOGS: DIFFIE-HELLMAN, ELGAMAL, DSS ................................................................41 14.3. KNAPSACKS ................................................................................................................................45 14.4. LATTICES.....................................................................................................................................45

14.4.1. Qual a ideia base por detrás do algoritmo NTRUSign?......................................................46 15. CRIPTOSISTEMAS DE CHAVE SECRETA ..........................................................................47

Page 5: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto iv

15.1. TERMINOLOGIA ...........................................................................................................................47 15.1.1. S-Boxes..............................................................................................................................47 15.1.2. Redes Feistel.....................................................................................................................48 15.1.3. Expansão, Permutação.....................................................................................................49 15.1.4. Operações bit slice ...........................................................................................................49

15.2. ONE-TIME PAD............................................................................................................................50 15.3. DES.............................................................................................................................................51

15.3.1. As origens do DES: o cifrador “Lucifer” da IBM...........................................................51 15.3.2. Descrição do Algoritmo ...................................................................................................54 15.3.3. Controvérsias sobre a segurança do DES .......................................................................55 15.3.4. Armadilhas e fraquezas ....................................................................................................56 15.3.5. Tamanho da chave............................................................................................................57 15.3.6. Fragilidades reais do DES...............................................................................................57 15.3.7. Existência de chaves fracas..............................................................................................58 15.3.8. Existência de chaves semi-fracas.....................................................................................58 15.3.9. O Futuro Padrão ..............................................................................................................59

15.4. BLOWFISH ...................................................................................................................................62 15.5. IDEA...........................................................................................................................................63 15.6. RC4.............................................................................................................................................63 15.7. MODOS DE OPERAÇÃO ................................................................................................................63 15.8. CRIPTOGRAFIA ANTES DOS ANOS 70 ...........................................................................................65

16. SSLEAY/OPENSSL......................................................................................................................68 16.1. CONTEXTO ..................................................................................................................................68 16.2. A ORIGEM DO SSLEAY................................................................................................................68

16.2.1. Autoridade ........................................................................................................................69 16.3. CERTIFICADO ..............................................................................................................................70

16.3.1. Informação de atributo.....................................................................................................71 16.3.2. Chave de informação pública ..........................................................................................71 16.3.3. Assinatura da Autoridade em Certificação (CA).............................................................72

16.4. CHAVES.......................................................................................................................................73 16.5. COMO FUNCIONA O SSL..............................................................................................................74 16.6. CARACTERÍSTICAS ......................................................................................................................76 16.7. CAMADAS DO SSL ......................................................................................................................77

16.7.1 Processos ..........................................................................................................................79 16.8. ALGORITMOS UTILIZADOS..........................................................................................................81 16.9. ATAQUES.....................................................................................................................................81

16.9.1. Integridade........................................................................................................................81 16.9.2. Autenticidade ....................................................................................................................82 16.9.3. Personificação ..................................................................................................................82 16.9.4. Confidencialidade.............................................................................................................82 16.9.5 Disponibilidade ................................................................................................................83

17. S-HTTP...........................................................................................................................................84 17.1 AMEAÇAS....................................................................................................................................84

17.1.1 Protecção possível............................................................................................................84 17.1.2. Fraquezas .........................................................................................................................85

18. PROTOCOLOS E STANDARDS...............................................................................................86 18.1. DOMAIN NAME SERVER SECURITY (DNSSEC). ........................................................................87 18.2. GENERIC SECURITY SERVICES API (GSSAPI) ...........................................................................87 18.3. SECURE SOCKET LAYER (SSL)...................................................................................................87 18.4. SECURE HYPERTEXT TRANSFER PROTOCOL (S-HTTP) .............................................................87 18.5. STANDARDS DE ENCRIPTAÇÃO DE CHAVE PÚBLICA (PKCS – PUBLIC KEY ENCRYPTION STANDARDS)..............................................................................................................................................88 18.6. IEEE P1363: ESPECIFICAÇÕES DO STANDARD PARA CRIPTOGRAFIA DE CHAVES PÚBLICAS .....88 18.7. PUBLIUS CENSOR-RESISTENT PUBLISHING PROTOCOL ..............................................................88 18.8. SSH2...........................................................................................................................................88 18.9 IPSEC ..........................................................................................................................................89

Page 6: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto v

19. CONCLUSÃO ...............................................................................................................................90 20. DEFINIÇÕES E ABREVIATURAS...........................................................................................92 21. BIBLIOGRAFIA...........................................................................................................................95

Índice de Figuras FIGURA 1 – ESQUEMA DE CIFRAGEM DO ALGORITMO DES.............................................................................. 56 FIGURA 2 – DIAGRAMA-BLOCO DES................................................................................................................. 57 FIGURA 3 – CAMADAS DE PROTOCOLO SSL..................................................................................................... 81 FIGURA 4 – PROTOCOLOS HANDSHAKE E PROCESSOS RECORD....................................................................... 81

Índice de Tabelas TABELA 1 - AMEAÇAS................................................................................................................................... 23 TABELA 2 – CHAVES FRACAS DES .................................................................................................................. 61 TABELA 3 – CHAVES SEMI-FRACAS DES......................................................................................................... 62

Page 7: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 1

1. Introdução

Podemos situar a criação da Internet no fim da década de 60, patrocinada pela

então ARPA (Advanced Research Projects Agency), com o nome de ARPANET,

que tinha como objectivo ligar em rede as várias instituições governamentais,

Ensino, Defesa e Pesquisa dos Estados Unidos da América.

O projecto original visava obter conectividade plena entre computadores, dentro

de um ambiente restrito de utilizadores de confiança. O crescimento da Internet

– a partir da sua criação – revelou-se exponencial, englobando um número cada

vez maior de organizações e pessoas.

Na realidade, os criadores da Internet não previram a sua utilização num

ambiente de tráfego de informações confidenciais e valiosas, quer sejam de

carácter pessoal, comercial ou mesmo oficial, como acontece actualmente.

No ambiente actual, com a massificação do acesso à Internet e também o livre

acesso de indivíduos e organizações mal-intencionadas, que laboram, pelos mais

diversos motivos, no sentido de obter o conhecimento e/ou comprometimento

de informações e sistemas alheios, há que se cuidar permanentemente do

aspecto da Segurança.

Portanto, no início, apenas a interoperabilidade e não a segurança, foi

enfatizada. Agora, com o crescimento da procura comercial cada vez mais

acentuado, a segurança passou a ser uma necessidade fundamental consistindo

foco de discussão das pessoas envolvidas com a tecnologia de redes.

Este projecto tem por objectivo, analisar os principais aspectos e ferramentas da

segurança das redes modernas, em especial, aquelas baseadas na tecnologia

TCP/IP. A motivação fundamental para este tema deve-se à utilização desses

padrões na rede mundial, a Internet. Esta rede é considerada por muitos como

Page 8: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 2

um dos mais importantes e revolucionários desenvolvimentos da história da

humanidade, tendo contribuído fortemente para o que se chama globalização

das informações. Através da Internet, qualquer pessoa ou empresa pode

(facilmente e a um custo muito baixo), não só ter acesso a informações

localizadas nos mais distantes pontos do Planeta, como também criar, gerir e

distribuir informações em larga escala, no âmbito mundial. A sua existência tem

vindo a criar costumes e a modificar culturas por todo o mundo.

Page 9: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 3

2. A Rede como meio de divulgação

A operação em rede possibilita, entre outras coisas, ganhos de produtividade

pela partilha de recursos e propagação da informação, inclusive com a

finalidade de divulgação. Contudo, esses benefícios trazem alguns riscos.

Conectar-se em rede significa possibilitar, mesmo que sob condições específicas

e com algum tipo de controlo, o acesso externo aos recursos computacionais,

inclusive às informações. Assim, falhas na especificação das condições e

controlo de acesso podem ser exploradas por utilizadores da rede, externos ou

internos ao sistema de computação/informação, para obtenção de acesso não

autorizado aos recursos. Essas falhas nos sistemas podem causar impactos dos

mais diferentes níveis, indo desde um simples constrangimento, passando pelo

desgaste da imagem corporativa e chegando a perdas financeiras e de mercado.

Torna-se, então, importante definir e configurar regras que determinem a

segurança dos sistemas. A definição de uma política de segurança que atenda as

necessidades de uma organização, seja ela qual for, deve partir da análise de três

factores: O que proteger, de que proteger e como proteger.

2.1. O que proteger

O alicerce da construção de um ambiente seguro consiste em saber o que precisa

realmente ser protegido. Cada organização precisa proteger algo diferente,

recursos ou informações, normalmente com graus de protecção diferenciados.

Muitas vezes, uma informação é sigilosa para uma organização e para outra não.

Por exemplo, para uma organização que tenha em seus dados o seu factor

Page 10: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 4

crítico, alterações na integridade destes podem acarretar altos custos em termos

de horas de trabalho necessárias para análise e recuperação ou prejuízos

irrecuperáveis com a perda definitiva de dados. Tal organização deve

estabelecer um nível de segurança mais rigoroso em termos de assegurar a

integridade do seu sistema. Por outro lado, uma agência de publicidade que

esteja ligada à Internet, tem que proteger muito a confidencialidade de seus

trabalhos, pois uma propaganda que irá ser na semana seguinte, não pode, de

maneira alguma, cair nas mãos da concorrência, pois isto traria muitos

prejuízos à empresa. Já numa universidade, o aspecto confidencialidade não é

tão necessário, pois os seus trabalhos geralmente são colocados à disposição de

outras universidades. Desse modo, a segurança deve ser entendida segundo

vários aspectos, dentre eles: autenticidade, confidencialidade, integridade e

disponibilidade, os quais serão tratados de forma mais abrangente neste

trabalho.

2.2. De que proteger

O segundo passo é saber “De que proteger?”. É necessário descobrir quais os

tipos de acção que podem comprometer a segurança das informações ou do

sistema da organização. Actualmente, não são só as grandes empresas que são

alvo de ataques. Existem mais de 80.000 sitios na própria Internet dedicados a

actividades de hacking onde é possível obter ferramentas para invasão de

sistemas. Essas ferramentas, muitas vezes automáticas, implementam

combinações de diversos tipos de ataque, procurando por falhas de configuração

e vulnerabilidades inerentes aos sistemas adoptados nas diversas redes alvo. As

providências específicas que uma organização deverá tomar para conter ataques

deverão ser baseadas nos objectivos das transacções e no que é preciso proteger.

Page 11: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 5

2.3. Como proteger Outro facto a ser enfatizado é que a segurança deve prever também a protecção

e controlo da rede internamente. Muitos modelos para segurança de redes tem

assumido que os invasores estão do lado de fora. Essa idéia tem feito com que

criadores de sistemas e administradores de rede utilizem uma estratégia

simplista na Internet, evitando qualquer acesso externo e, por outro lado, não

restringindo o acesso para utilizadores internos, quando grande parte dos

problemas está associada a ameaças internas.

A finalidade de toda a análise de segurança consiste em fundamentar a

especificação de como os níveis de segurança desejados devem ser atingidos.

Assim, depois de conhecer a ameaça, deve-se projectar mecanismos para

prevenir, detectar ou recuperar-se de um ataque. Nesse sentido, são

desenvolvidas diversas ferramentas para avaliação das vulnerabilidades das

redes, bem como para sua proteção, onde se destacam técnicas de criptografia e

softwares firewalls e proxies. Essas ferramentas possibilitam, além da protecção

preventiva do sistema, a realização de auditorias que permitam identificar a

ocorrência de ataques e rastrear a origem destes.

A análise destes factores vai fundamentar uma avaliação dos custos e benefícios

envolvidos na determinação e implantação de uma política de segurança

adequada. A maioria dos métodos para determinação de riscos e prejuízos

produzem resultados descritivos (análises) e não quantitativos. Isso expressa a

complexidade se calcular prejuízos decorrentes de uma segurança fraca ou

inexistente. Mas é certo assegurar que o custo de implementação de ferramentas

para segurança do sistema é bem menor que os custos e prejuízos advindos da

falta de segurança.

Page 12: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 6

3. Criptologia As pessoas têm interpretações diferentes quando se fala de criptologia. Crianças

brincam com linguagens secretas e códigos. Contudo, isto pouco se relacionará

com segurança real e encriptação forte.

Encriptação forte é o tipo de encriptação que pode ser usado para proteger

informação valiosa, de criminosos, corporações multinacionais e instituições

governamentais. Começou por ser apenas usada pelas forças militares, no

entanto, na sociedade de informação que vivemos, tornou-se numa das

principais ferramentas para preservar tanto a privacidade como

confidencialidade.

À medida que avançamos para a sociedade da informação, os meios

tecnológicos de vigilância de milhões de indivíduos tornam-se disponíveis aos

Governos. Para combater tal facto, a criptologia tem sido um dos melhores

meios para garantir a privacidade, confiança, controlo de acesso, pagamentos

electrónicos e inúmeros outros campos.

A Criptografia deixou de ser algo estritamente militar. Chegou a hora de a

desmistificar e aproveitar ao máximo todas as vantagens que pode proporcionar

a uma sociedade moderna.

3.1. Terminologia Básica A palavra Criptografia tem a sua origem no grego: “kryptós” significa oculto,

envolto, escondido, secreto; “grápheim”, escrever, grafar. Pode ser vista como a

ciência que estuda os princípios e técnicas que visam proporcionar às

Page 13: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 7

informações ou dados, armazenados ou em trânsito, os serviços de segurança da

Confidencialidade, Integridade e Autenticidade.

A meta da Criptografia é alcançada pela aplicação de sistemas, chamados

criptográficos, projectados e construídos de maneira adequada.

A Criptoanálise, do grego: “kryptós” e “analyein”, desfazer, é a ciência (e/ou

arte) que estuda os princípios, processos e métodos para desvendar os segredos

dos sistemas criptográficos existentes (“quebrar” os sistemas), com o propósito

de ganhar acesso ou mesmo a capacidade de alterar as informações ou dados

supostamente protegidos.

Juntas, a Criptografia e a Criptoanálise, compõem a Criptologia (“kryptós” +

“lógos” – palavra).

Quem efectua criptografia são chamados Criptógrafos, enquanto que os

praticantes da criptoanálise, são os Criptoanalistas.

Em termos criptológicos, a mensagem é chamada de texto simples. Codificar o

conteúdo de uma mensagem de forma a que se torne imperceptível a estranhos

designa-se por encriptação. À mensagem encriptada chama-se de texto cifrado.

O processo inverso (tranformar o texto cifrado em texto simples) é designado

por decifragem.

A encriptação e decifragem geralmente usam uma chave e, a codificação é feita

de forma que a decifragem apenas seja possível com o conhecimento dessa

chave.

3.2. Princípios básicos da segurança Os princípios básicos da segurança são a autenticidade, confidencialidade,

integridade e disponibilidade das informações. Os benefícios evidentes são

reduzir os riscos com fraudes, erros, uso indevido, sabotagens, roubo de

informações e diversos outros problemas e assim, consequentemente aumentar

a produtividade dos utilizadores através de um ambiente mais organizado,

maior controle sobre os recursos de informática e, finalmente, viabilizar

aplicações críticas das empresas.

Page 14: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 8

3.2.1. Autenticidade O controle de autenticidade está associado com a identificação correcta de um

utilizador ou computador. O serviço de autenticação em um sistema deve

assegurar ao receptor que a mensagem é realmente procedente da origem

informada em seu conteúdo. Normalmente, isso é implementado a partir de um

mecanismo de senhas ou de assinatura digital. A verificação de autenticidade é

necessária após todo processo de identificação, seja de um utilizador para um

sistema, de um sistema para o utilizador ou de um sistema para outro sistema.

Ela é a medida de proteção de um serviço/informação contra a personificação

por intrusos.

Um ataque contra a autenticidade envolve alguma forma de personificação

(spoofing). Um tipo comum de personificação consiste num utilizador externo

assumir a identidade de um utilizador interno, actuando no sistema no lugar

deste utilizador legítimo. A maneira mais simples de personificação está

associada com infiltrações de senha, onde o intruso introduz uma combinação

de nome do utilizador/senha, depois outra e assim por diante, até que uma

determinada combinação permita a sua entrada no sistema. Tal técnica,

consome, com frequência, um volume considerável de tempo e esforço. Assim

software como o sniffer, que possibilitam o rastreio de senhas, estão a ser

utilizados cada vez em maiores escalas.

Muitos tipos de sistemas não bloqueiam tentativas de autenticação após um

determinado número de insucessos. Essa fraqueza inerente em termos de

segurança, permite que um intruso dê início a um grande número de tentativas

de autenticação que não são impedidas. Consequentemente, possibilita aos

violadores várias formas de invasão: acedendo a mensagens de correio

electrónico, os quais contêm senhas; ou decifrando-as com uma ferramenta que

permite localizar e obter informações sobre senhas vulneráveis em sistemas. Na

verdade, alguns invasores utilizam TFTP ou FTP para tentar obter a senha, em

seguida o invasor deverá identificar as senhas verdadeiras. No Unix, as senhas

contidas em /etc/passwd são cifradas através de um esquema de criptografia

não-convencional, mas o algoritmo de criptografia em si está largamente

disponível e pode ser até mesmo incorporado em algumas ferramentas

Page 15: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 9

utilizadas pelos invasores. Os invasores utilizam-nas para obter senhas em

textos simples que serão espalhadas durante sessões de telnet ou de rlogin.

3.2.2. Confidencialidade Confidencialidade significa proteger informações da sua revelação para alguém

não autorizado – interna ou externamente. Consiste em proteger a informação

contra leitura e/ou cópia por alguém que não tenha sido explicitamente

autorizado pelo proprietário daquela informação. A informação deve ser

protegida qualquer que seja a forma que a contenha, como por exemplo,

impressa ou digital. Deve-se cuidar não apenas da proteção da informação como

um todo, mas também de partes da informação que podem ser utilizadas para

interferir sobre o todo. No caso da rede, isto significa que os dados, enquanto

em trânsito, não serão vistos, alterados, ou extraídos da rede por pessoas não

autorizadas ou capturados por dispositivos ilícitos.

O objetivo da confidencialidade é proteger informação privada (cidadãos,

indústrias, governo, militar). Na comunicação, ela é obtida evitando-se a escuta

(meio físico, topologia), ou se isto não for possível, evitando-se a inteligibilidade

dos dados durante o processo de transmissão (cifra).

Uma rede de meios físicos compartilhados, é uma rede na qual os pacotes são

transmitidos para várias partes da rede à medida que trafegam dos pontos de

origem para os de destino. As redes de meios físicos compartilhados impõem

um tipo especial de risco de segurança, pois os pacotes podem ser interceptados

em qualquer ponto dessas redes. A captura de pacotes dessa forma é conhecida

como rastreamento da rede. Para o rastreamento de uma rede é preciso usar um

dispositivo físico ou um programa. Normalmente, os dispositivos físicos de

rastreamento são instalados onde há conexão de cabos, através de um conector

dentado que penetra no isolamento do cabo, ou em interfaces de porta de

máquina host individuais. Os programas de captura de pacotes proporcionam

uma interface com um dispositivo de hardware que é executado no modo

promíscuo (sniffer), ou seja, copiando todos os pacotes que chegam até ele,

independentemente do endereço de destino contido no pacote.

Page 16: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 10

Se um sniffer for instalado em alguma parte da rota entre dois hosts de uma

rede, senhas e informações confidenciais podem ser capturadas, causando

transtornos e prejuízos. Tal acção pode proporcionar, também, a ocorrência de

futuros ataques contra autenticidade, usando senhas, usernames e endereços de

host capturados por sniffers.

3.2.3. Integridade A integridade consiste em proteger a informação contra modificação sem a

permissão explicita do proprietário daquela informação. A modificação inclui

acções como escrita, alteração de conteúdo, alteração do estado, remoção e

criação de informações. Deve-se considerar a protecção da informação nas suas

mais variadas formas, como por exemplo, armazenada em discos ou fitas de

segurança. Integridade significa garantir que se o dado está lá, então não foi

corrompido, encontra-se íntegro. Isto significa que aos dados originais nada foi

acrescentado, retirado ou modificado.

A integridade é assegurada evitando-se alteração não detectada de mensagens

(ex. Tráfego bancário) e o forjamento não detectado de mensagem (aliado a

violação de autenticidade).

3.2.4. Disponibilidade Ter as informações acessíveis e prontas para uso representa um objectivo crítico

para muitas empresas. No entanto, existem ataques de negação de serviços,

onde o acesso a um sistema/aplicação é interrompido ou impedido, deixando de

estar disponível; ou uma aplicação, cujo tempo de execução é crítico, é atrasada

ou abortada.

Disponibilidade, consiste na protecção dos serviços prestados pelo sistema, de

forma que eles não sejam degradados ou se tornem indisponíveis sem

autorização, assegurando ao utilizador o acesso aos dados sempre que deles

precisar. Isto pode ser chamado também de continuidade dos serviços.

Um sistema indisponível, quando um utilizador autorizado necessita dele, pode

resultar em perdas tão graves quanto as causadas pela remoção das informações

Page 17: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 11

daquele sistema. Atacar a disponibilidade significa realizar acções que visem a

negação do acesso a um serviço ou informação, como por exemplo:

bloqueamento do canal de comunicação ou do acesso a servidores de dados.

Page 18: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 12

4. Teoria da informação e legislação

A Informação é hoje, sem dúvida, o bem mais importante e mais precioso para

as organizações. Todavia, com os recursos de Tecnologia da Informação

disponíveis actualmente, as organizações vêem-se cercadas de imensa

quantidade de informações, às quais requerem alto custo para obtenção,

tratamento, armazenamento e disseminação, além de grandes investimentos na

protecção desse bem.

Os mecanismos de segurança disponíveis – cada vez mais sofisticados – não

asseguram total protecção às informações. Desse modo, as organizações ficam

expostas a riscos de intrusões, interceptações, alterações, destruição, divulgação

indevida, indisponibilização e outros ataques.

A falta de amparo legal, que imponha punições aos infractores, propicia e

incentiva acções da espécie, forçando as organizações a investirem cada vez

mais na protecção de suas informações, embora sem o sucesso desejado.

Alguns países já atentaram para a necessidade de proteger esse bem e

elaboraram leis rigorosas que protegem e amparam as organizações, como por

exemplo: Estados Unidos e Portugal.

4.1. Aspectos Legais

A informação tem sido objecto de alguns dos mais antigos acordos

multinacionais, tratados e organizações. Tratados postais remontam de 1601,

entre a França e a Espanha. O telégrafo, empregado comercialmente entre 1840

e 1849, gerou acordos para facilitar e regular o seu uso entre os países. Nos dias

Page 19: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 13

de hoje, informação e comunicação são objectos de centenas de acordos

internacionais, destacando-se: Convenção de Berna (Protecção aos trabalhos

literários e artísticos), Intelsat, World Intellectual Property Organization,

Intersputinik, etc.

Além desses acordos e tratados, existem outros que visam proteger direitos de

informação: Declaração Universal dos Direitos Humanos, art. 19 – “Todo o

homem tem direito à liberdade de opinião e expressão; este direito inclui a

liberdade de, sem interferências, ter opiniões e de procurar, receber e transmitir

informações e idéias por quaisquer meios, independentemente de fronteiras”;

Convenção Europeia para a protecção dos Direitos Humanos e Liberdades

Fundamentais, art. 10 e a Convenção Americana sobre Direitos Humanos, art.

13. Todavia, o direito à livre expressão de opiniões e repasse ou guarda de

informações, com a evolução dos meios de comunicação e com o advento da

tecnologia da informação, vem sendo cerceado por mecanismos cada vez mais

sofisticados de “invasão de privacidade”, deixando muitas vezes impune o

agente de tais acções.

As empresas têm enfrentado acções na justiça, muitas sem o sucesso desejado,

visto que as leis de protecção ao património e dos direitos das pessoas,

existentes até a década de 70, deixaram de atender às necessidades de penalizar

todo o tipo de crimes contra o direito das pessoas. Pela imaterialidade da

informação – um bem muito adverso daqueles até então normalmente tratados

como objecto de “roubo”, “subtracção” ou “destruição” – fica difícil de aplicar o

conceito de “coisa”, deixando lacunas na lei que, ou não possibilitam aplicar

penalidades aos agentes infractores ou exigem verdadeiras “ginásticas” de

interpretação por advogados e juízes, para que os julgamentos tenham o

resultado esperado num crime que envolva a informação. O exame dessas

questões tem ocorrido a nível internacional e regional. Em particular podemos

citar o OECD (Organisation for Economic Co-operation and Development) e o

Council of Europe, que têm produzido guias para legisladores e interessados no

assunto, além de órgãos envolvidos em investigação. Em 1983, o OECD

procedeu a um estudo que resultou na publicação, em 1986, de relatório que

analisava as leis existentes e recomendava uma lista mínima de abusos contra a

informação de modo geral, que os países deveriam considerar proibidos e

passíveis de punições por leis criminais, por exemplo: fraudes e falsificações por

Page 20: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 14

computador, alteração de programas e dados, violação de copyright e

interceptação de comunicações. Além destas, outras proteções legais deveriam

ser adoptadas para outros tipos de abusos, incluindo o roubo de “Segredos de

Negócios” e acesso não autorizado aos sistemas de computadores. O 8º

Congresso das Nações Unidas

A Prevenção de Crimes e Tratamento aos Infractores produziu uma resolução,

na qual cada Nação Membro intensificaria os seus esforços no combate aos

crimes por computador, observando as seguintes medidas:

Modernização das Leis e procedimentos penais;

Desenvolvimento de medidas de prevenção e segurança para

computadores, no que concerne a respeitar os direitos humanos e as

liberdades fundamentais;

Adopção de medidas que sensibilizem o público e o judiciário para o

problema e a importância de prevenir os crimes por computador;

Adopção de treinamento para juizes, oficiais e agências responsáveis por

prevenir, investigar e julgar os crimes por computador.”3 Nesta

resolução, recomenda-se que o Comité de Prevenção e Controle de

Crimes encite esforços no desenvolvimento e na disseminação de regras e

padrões que auxiliem as Nações a tratar com crimes por computador.

Para subsidiar tais acções foi elaborada a Lista Mínima de Infracções, que

concerne a crimes por computador, que deveriam ser tratadas pela

legislação:

Fraude por computador – compreende a adulteração, dano ou supressão

de dados ou programas de computador ou outras interferências no curso

do processamento de dados, que influencie o resultado do processo,

ocasionando perdas económicas ou de propriedade, beneficiando os

infractores ou terceiros;

Falsificação por computador – compreende a modificação de dados

descrita no item acima, já protegidos por lei, caracterizando embuste ou

imitação (fazer se passar por outro);

Danos a dados ou programas de computador – modificação, deterioração

ou supressão de dados ou programas sem autorização.

Page 21: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 15

Sabotagem computacional – introdução, alteração, supressão de dados

ou programas ou outras interferências em sistemas, com a intenção de

dificultar o funcionamento de computadores ou sistemas de

comunicação;

Acesso não autorizado – acesso a sistemas ou redes de computadores,

sem autorização, burlando os controles de segurança implementados;

Interceptação não autorizada – interceptação de comunicações de, para e

de dentro dos sistemas e redes de computadores, feita sem autorização e

por meios técnicos;

Cópias não autorizadas de programas de computadores – reprodução,

distribuição ou divulgação de programas de computador, sem

autorização;

Reprodução não autorizada de topografia – abrange a reprodução,

exploração ou importação comercial não autorizada de topografia de

semicondutores.” Ainda, a resolução propõe a Lista Opcional

abrangendo:

Espionagem computacional – obtenção, transferência ou uso de segredos

de negócio, de modo ilícito, sem autorização ou qualquer outra

justificativa legal, com intenção tanto de causar perdas económicas para

o proprietário como de obter vantagens económicas para si ou terceiros;

Uso não autorizado de computadores – uso de sistemas ou rede de

computadores, sem autorização, que: 1. é feito com a admissão de riscos

significativos de perdas para o proprietário, danos aos sistemas ou ao seu

funcionamento; 2. é feito com a intenção de causar perdas para o

proprietário, danos aos sistemas ou ao seu funcionamento; 3. causa

perdas para o proprietário, danos aos sistemas ou ao seu funcionamento,

mesmo não sendo intencional.

Uso não autorizado de programa computacional – uso e reprodução não

autorizados de programas protegidos por lei, com a intenção tanto de

obter ganhos económicos para si ou para terceiros, como causar danos ao

proprietário do bem.

Actualmente, os principais meios invocados para proteger legalmente as

informações são: Copyright, Segredo de Negócio e Contrato. Normalmente,

Page 22: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 16

aliam-se estes três métodos a outros não legais, a fim de obter-se maior nível de

protecção contra cópias e divulgações indevidas de informações e sabotagens,

visto que as leis não foram criadas observando os aspectos supracitados.

4.1.1. Copyright (Direitos de Autor) Tem origem no art.1 parag.18 da Constituição dos EUA arbitrando poderes ao

Congresso para: “Promover o progresso da ciência e das artes, assegurando por

tempo determinado a autores e inventores os direitos exclusivos sobre seus

escritos e descobertas”. O principal problema é determinar se o trabalho possui

ou não “originalidade” – ou seja, se mostra alguma criatividade e não somente

cópia de trabalhos ou de informações já existentes. Por exemplo: um Banco de

Dados com informações sobre cadastro de clientes: as informações não são

consideradas “originais” pois qualquer um pode obter as mesmas informações.

O trabalho despendido para obter as informações não qualifica o Banco de

Dados a ser protegido por Copyright. No que diz respeito à propriedade

intelectual de programas de computador, a Lei 9609 elevou de 25 para 50 anos

o prazo de protecção, equiparando-se ao regime de protecção conferido a obras

literárias. Entretanto, esta Lei não faz nenhuma referência à protecção das

informações processadas e armazenadas pelos sistemas.

4.1.2. Trade Secrecy Protection (Protecção do Negócio) Essencialmente, é a protecção legal ao conhecimento que pessoas ou

companhias adquirem pelos seus esforços e que tem valor ou vantagem

competitiva para elas. Tipicamente, estes conhecimentos são guardados dos

seus concorrentes, pois sabe-se que estes obteriam vantagens ao possuir tais

informações. Exemplos: fórmulas, programas, metodologias, tecnologias,

padrões etc.

Page 23: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 17

4.1.3. Contrato Acordos estabelecidos formalmente entre vendedores e compradores, definindo

as condições de compra. Tipicamente assumem a forma de “Licenças de Uso”

para proteger o direito das partes.

Page 24: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 18

5. Protecções por meios não legais

Trata-se da criação de mecanismos ou marcas específicas, como uma

“assinatura”, que possam comprovar a autoria de trabalhos. Exemplo: implantar

erros ou omissões em bases de dados, de forma a obter provas de cópias não

autorizadas. Se alguns erros são implantados e os mesmos erros se mostram em

base de dados de outrem, tem-se boas provas de que um competidor não obteve

tais informações por seus próprios meios. Outro exemplo seria o estilo de

programação, que equivale a um estilo de escrita. Os programadores podem

esconder mensagens cifradas no código objecto ou adicionar linhas de

programação desnecessárias. Estas idiossincrasias podem ser documentadas e

servir de prova contra cópias ilegais.

Em resumo, embora os mecanismos acima garantam sustentação legal que

favoreça acções contra os infractores, a necessidade de uma Lei específica, que

defenda os autores e as companhias contra invasões, danos, divulgação não

autorizada de informações ou topografias, dentre outros e, que defina

claramente as respectivas penalidades, é extremamente urgente e imperiosa.

Alguns países já perceberam a importância de se legislar sobre este assunto –

crimes por computador – oferecendo Leis abrangentes, consistentes e rigorosas

quanto às penalidades imputadas aos infractores. A lacuna deixada pela

ausência de Lei específica sobre o assunto, tem obrigado advogados e juízes a

enquadrar os crimes por computador em crimes comuns previstos em Leis

penal e civil.

Page 25: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 19

6. Tipos de riscos para as organizações

Ameaça – possibilidade de exploração de fragilidades de sistemas, de forma

intencional ou não. Podem originar-se interna ou externamente.

Ataque – é a efectivação da ameaça. Classificam-se em:

Ataque activo – informações são modificadas.

Ataque passivo – informações não sofrem modificação, sendo somente

copiadas. Caracteriza-se pela interceptação.

As ameaças típicas, contra as quais as organizações despendem maior esforço e

investimento em mecanismos de protecção das suas informações e estratégias

de negócio são:

Ameaças Descrição Violação de autorização Uso de autorização para outra finalidade.

Recusa de serviços Não atendimento, sem motivo explícito, das requisições dos legítimos usuários.

Espionagem Obter a informação, sem autorização do proprietário. Vazamento Revelação indevida de informação. Violação de Integridade Edição não autorizada de informação. Mascaramento Passar-se por outro, embuste. Replay Retransmissão ilegítima.

Repudiação Negação imprópria de uma acção ou transacção efectivamente realizada.

Exaustão Sobrecarga de utilização de recurso. Emulação Imitação para conseguir informações sensíveis. Roubo Posse ilegítima de informações.

Porta dos fundos (backdoor) Programação inserida e escondida no sistema, que possibilita a entrada de forma não convencional.

Cavalo de Tróia (trojan) Programa de captura indevida de informações. Tabela 1 – Ameaças

Page 26: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 20

Esses tipos de ameaças possibilitam ataques, que podem ser caracterizados

como:

Invasão – acesso intencional e não justificado, por pessoa não

autorizada pelo proprietário ou operadores dos sistemas.

Interceptação – acesso não autorizado a transmissões, possibilitando a

cópia das mensagens transmitidas. É o ataque mais comum e de difícil

detecção pelas partes legítimas.

Modificação – é um agravante da interceptação, em que o conteúdo da

mensagem é alterado.

Fabricação ou embuste – simulação para o destino de uma origem

legítima. O atacante faz-se passar por uma procedência legítima,

inserindo objectos ilegítimos no sistema atacado.

Indisponibilidade ou Interrupção – acções não autorizadas gerando

sobrecarga no processamento de sistemas, tornando-os inacessíveis aos

legítimos usuários, por longos períodos ou por sucessões de pequenos

intervalos.

Estes crimes carecem de legislação específica e, também, de apuração ou

investigação detalhada que, devido às suas especificidades e meios utilizados,

aliados à falta de capacitação dos investigadores e do judiciário, dificultam a

comprovação do acto e de sua autoria. A situação torna-se ainda mais crítica

pelas características do mercado actual, com a globalização da economia,

levando pessoas e empresas a disputarem freneticamente a sua fatia de mercado

e “justificando” acções, mecanismos e técnicas não muito “éticas” adoptadas por

elas, para conhecimento de planos e produtos de concorrentes. A inadequação

da legislação actual, a não tratar tais ações como crime, favorece a sua

ocorrência, através de agentes internos ou externos ao país. Com esse cenário e

as fragilidades criadas pela própria tecnologia de comunicação, as preocupações

com a criação de uma Lei visando a protecção dos cidadãos e empresas contra

crimes por computador são crescentes. É imperativo que haja uma

normatização e definição de punições para os excessos, inclusive as tentativas,

que também afectam a prestação de serviços e disponibilidade do sistema para

os usuários.

Page 27: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 21

7. Algoritmos de Criptografia Básicos

O método de encriptação e a operação inversa (decifragem) chama-se cifra.

Alguns métodos criptográficos baseiam-se no secretismo dos algoritmos. Tais

algoritmos apenas têm interesse histórico e não são os mais adequados para as

operações da vida real. Todos os algoritmos modernos usam uma chave para

controlar a encriptação/desencriptação; a mensagem só pode ser decifrada se a

chave coincidir com a chave de encriptação.

Existem duas classes de algoritmos de encriptação baseados em chaves, os

algoritmos simétricos (chave secreta) e os assimétricos (chave pública). A

diferença reside no facto que os algoritmos simétricos usam a mesma chave

tanto para a encriptação, como para a decifragem (por vezes a chave de

decifragem não é a mesma, mas facilmente derivável a partir da chave de

encriptação); enquanto que os algoritmos assimétricos usam chaves diferentes

para os processos de encriptação e decifragem, bem como a chave de decifragem

não pode derivar da chave de encriptação.

Os algoritmos simétricos podem ser divididos em cifras de cadeia e cifras de

bloco. Cifras de cadeia, apenas conseguem encriptar um bit de texto simples de

cada vez, enquanto que as cifras de bloco pegam num número de bits

(geralmente 64 bits em algoritmos modernos) e, encriptam-nos como um só.

Cifras assimétricas (também conhecidas por algoritmos de chave pública, ou

criptologia de chave pública) permitem que a chave de encriptação seja pública,

permitindo que qualquer indivíduo encripte com essa chave, mas apenas o

Page 28: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 22

destinatário da mensagem (que conhece a chave de descriptação) consegue

descriptar a mensagem.

A chave de encriptação é também conhecida por chave pública e a de

descriptação, chave privada ou secreta.

Os algoritmos modernos de criptografia à muito que deixaram de ser cifras

simples escritas em papel. Algoritmos fortes, são concebidos para serem

executados em computadores ou aparelhos de hardware especializados para tal.

Na maioria das aplicações, a criptografia é feita em software de computadores.

De uma forma genérica, a execução dos algoritmos simétricos é bastante mais

rápida do que os assimétricos. Na prática, são muitas vezes usados em conjunto,

de forma que um algoritmo de chave pública, é usado para encriptar uma chave

gerada aleatoriamente e, que essa chave é usada para encriptar a mensagem

usando o algoritmo simétrico. Este método é conhecido como encriptação

híbrida.

Descrições de inúmeros bons algoritmos criptográficos, são vastamente

conhecidos e disponíveis publicamente em variados locais, tais como a Internet,

bibliotecas científicas, livrarias de renome. Provavelmente a mais conhecida e

estudada cifra simétrica é a DES, contudo poderá ser substituída pela nova AES.

Como melhor algoritmo de encriptação assimétrica temos o RSA.

Page 29: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 23

8. Assinaturas digitais

Alguns algoritmos de chave pública podem ser usados para gerar assinaturas

digitais. Uma assinatura digital é uma pequena quantidade de dados, que foram

criados usando uma chave secreta, onde existe uma chave pública que pode ser

usada para verificar que a assinatura foi gerada usando a chave privada

correspondente. O algoritmo deverá ser implementado de forma que, sem saber

a chave seceta, não poderá ser possível criar a assinatura que se apresente como

válida.

Assinaturas digitais são usadas para verificar que uma mensagem provém

realmente de onde aparenta (isto assumindo que apenas o emissor conhece a

chave secreta correspondente à sua chave pública).

Outra aplicação pode ser de certificar que a chave pública pertence a uma

pessoa. Isto é feito atribuindo a combinação da chave e da informação acerca do

seu dono a uma chave de confiança. O conjunto da assinatura digital

pertencente a uma entidade alheia, da chave pública e a informação acerca do

dono da chave pública são chamados de certificados.

Porque se deverá confiar numa chave duma entidade alheia? A explicação é

simples, também esta terá sido atribuída por uma chave de confiança.

Eventualmente, alguma chave terá de ser a raiz de toda esta hierarquia de

confiança (isto é, não é de confiança porque foi atribuída por alguém, mas sim

porque se acredita que a chave é de confiança).

Numa infraestructura de chave centralizada, poucas serão as raízes na rede de

confiança – um exemplo serão agências governamentais, as suas raízes são

também conhecidas por autoridades de certificação.

Ao contrário do exemplo anterior, numa infraestructura distribuída, não são

necessárias raízes de asssinaturas universalmente reconhecidas, neste caso, as

Page 30: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 24

entidades podem ter diferentes raízes de confiança. Este conceito de “rede de

confiança” é usado por exemplo no PGP.

A assinatura digital de um documento é tipicamente criada através da

computatação do sumário da mensagem, concatenando-a com a informação

acerca do utilizador, data do documento, etc. A “string” resultante é então

encriptada usando a chave privada. O bloco de bits resultante é a assinatura.

Normalmente é distribuída juntamente com informação acerca da chave pública

usada. Para verificar a assinatura, o recipiente deve decidir se confia que a chave

usada, provém donde é suposto (através da rede de confiança ou conhecimento

prévio), de seguida desencripta a assinatura, usando a chave pública da pessoa.

Se a assinatura desencripta devidamente e a informação coincide com a da

mensagem (sumário da mensagem), a assinatura é aceite como válida.

Podem encontrar-se vários métodos para fazer e verificar assinaturas digitais de

distribuição gratuita. O mais conhecido é o algoritmo RSA.

Page 31: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 25

9. Funções de Hash Criptográficas

Funções de Hash Criptográficas são usadas mediante variados contextos. Uma

função de hash, compressa os bits de uma mensagem para um valor de hash de

tamanho fixo, de forma que distribui as mensagens possíveis uniformemente

através dos valores possíveis das hashes. Isto serve para tornar extremamente

difícil a criação duma mensagem, cuja hash teria o mesmo valor de uma outra

hash.

Geralmente produzem valores de hash de 128 ou mais bits. Este valor (2128) é

largamente superior ao número de mensagens distintas, que serão trocadas em

todo o Mundo. A principal razão para usar mais de 128 bits, reside no paradoxo

do aniversário (birthday paradox). O paradoxo do aniversário diz-nos que para

uma função de hash a usar uma hash de 128 bits, essa mesma hash terá sido

computada por duas vezes, quando 264 das mensagens totais escolhidas

aleatoriamente, tiverem sido processadas.

Existem inúmeras funções de hash criptográficas disponíveis livremente. As

mais conhecidas fazem parte da família MD, em particular a MD4 e MD5.

Contudo, a MD4 foi já quebrada, enquanto que a MD5, apesar de ser ainda

usada comummente, deverá ser considerada insegura. Dois exemplos de

funções consideradas como seguras, são a SHA-1 e RipeMD-160.

Algumas das funções mais conhecidas e usadas são descritas a seguir.

SHA-1 (Secure Hash Algorithm):

Este algoritmo foi publicado pelo Governo dos EUA. Produz um valor de hash

de 160 bits dum conjunto de caracteres de tamanho arbitrário. É considerado

um algoritmo bastante bom.

Page 32: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 26

RIPEMD-160:

Algoritmo concebido para substituiro MD4 e MD5 (ver mais abaixo). Produz um

sumário de 20 bytes (160 bits, de onde deriva o nome), correndo a cerca de 40

Mb/s num Pentium 90 MHZ, sendo de domínio público.

MD5 (Message Digest Algorithm 5):

Desenvolvido nos RSA Laboratories, pode ser usado para criar uma hash dum

conjunto de caracteres de tamanho arbitrário num valor de 128 bits. O seu

antecessor, o MD4, foi quebrado, pelo que também existem algumas

preocupações que o mesmo aconteça com o MD5. Em 1996, uma colisão da

função de compressão do MD5 foi encontrada por Hans Dobbertin. Apesar disto

não comprometer directamente a sua segurança, como medida de precaução, o

uso do MD5 não é recomendado em aplicações novas.

Tiger:

Algoritmo de hash recente, desenvolvido por Anderson e Biham.

MD2, MD4.

Estes são algoritmos mais antigos desenvolvidos pela RSA Data Security. Ambos

possuem falhas conhecidas, pelo que o seu uso também não é recomendado.

Page 33: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 27

10. Geradores de números aleatórios criptográficos

Geradores de números aleatórios criptográficos, geram números para serem

usados em aplicações criptográficas. Os geradores convencionais, utilizados na

maioria das linguagens de programação , não são adequados para este tipo de

aplicações, pois não previnem nem dificultam a previsão por criptoanalistas.

Numa situação óptima, os números aleatórios são baseados em fontes físicas de

aleatoriedade, que não podem ser previstas. Como exemplo podemos destacar o

ruído proveniente dum dispositivo semicondutor, os bits menos significantes

duma entrada de áudio, tal como os intervalos de tempo do carregar de teclas de

um utilizador. O “barulho” obtido duma fonte física é então, “destilado” por uma

função de hash criptográfica, de forma a que cada bit dependa de todos os

outros bits. Geralmente, uma grande fila – de vários milhares de bits – é usada

para criar a aleatoriedade, onde cada bit da fila, dependa de cada bit de ruído de

entrada, bem como de todos os outros bits da fila.

Quando não é possível obter aleatoriedade pura, é necessário usar números

“pseudo-aleatórios”. Esta situação, obviamente, não é a desejada, no entanto

acontece em actividades menos específicas. De preferência, deverá incluir-se

ruído ambiental – dispositivos de latência, estatisticas de rede, o que quer que

seja. O objectivo principal, é tornar os dados o menos previsíveis possível, aos

olhos de um observador externo. Para conseguir isto, a fila de aleatoriedade,

deverá conter, pelo menos 128 bits de entropia.

Geradores de números pseudo-aleatórios, têm geralmente uma fila grande

contendo aleatoriedade. Os bits são retornados da fila, extraíndo dados da

mesma fila, ou opcionalmente, fazendo os dados percorrer através duma função

de hash criptográfica, de forma a evitar revelar o conteúdo da fila. Quando são

Page 34: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 28

necessários mais bits, a fila é agitada através da encriptação do seu conteúdo,

por uma cifra de chave aleatória, de forma que cada bit da fila, dependa de todos

os outros bits. Ruído ambiente deverá voltar a ser acrescentado, antes da

agitação, para que a predição de valores anterior ou futura, seja ainda mais

difícil.

Apesar de não ser difícil de construir geradores de números aleatórios – se

projectados devidamente- são muitas vezes menosprezados. A importância de

um gerador de números aleatórios não deve deixar de ser realçado – se for feito

de forma incorrecta, facilmente se tornará no ponto mais fraco do sistema.

Page 35: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 29

11. A Força dos Algoritmos Criptográficos

Bons sistemas criptográficos, devem ser projectados a pensar na sua dificuldade

de quebrar. Obviamente, deve-se procurar construir o mais difícil possível. É

possível montar sistemas que na prática não podem ser quebrados (embora isto

não possa ser provado). Tal facto não aumenta significativamente o esforço de

implementação do sistema, contudo, algum cuidado e competência são

necessários. Não existe desculpa para que o sistema seja violável. Quaisquer

mecanismos que possam ser usados para ludibriar a segurança, devem estar

disponíveis, documentados e trazidos à atenção dos utilizadores.

Teoricamente, qualquer método criptográfico com uma chave, pode ser

quebrado tentando todas as chaves possíveis em sequencia. No caso da força

bruta ser a única opção, o poder de computação aumenta exponencialmente

com o comprimento da chave. Uma chave de 32 bits, são necessárias, no

máximo 232 tentativas. Isto, contudo, pode ser conseguido por qualquer pessoa

no seu computador pessoal. Num sistema com chave de 40 bits, já sobe para

240 tentativas – este tipo de computação requer períodos que podem chegar a

uma semana (dependendo da eficiência do algoritmo) num computador pessoal

moderno. Se subirmos para 56 bits (caso da DES) o esforço é já considerável

(com um número grande de computadores pessoais trabalhando em conjunto,

já foi possível quebrar em alguns meses), mas ainda facilmente quebrável, com

hardware especial. O custo deste hardware especial, é substancial, contudo, ao

alcance de organizações criminosas, grandes companhias, ou instituições

governamentais. Chaves de 64 bits, são provavelmente quebráveis nos nossos

dias por algumas instituições governamentais, estando ao alcance de criminosos

organizados, grandes companhias e governos menos poderosos dentro de

Page 36: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 30

alguns anos. Com 80 bits, deverão estar salvaguardadas por um bom período

ainda, enquanto que chaves de 128 bits, ainda não se prevê que possam ser

quebradas num futuro próximo.

No entanto, o comprimento da chave não é a única parte relevante. Muitas cifras

podem ser quebradas sem tentar todas as chaves possíveis. No geral, é muito

difícil projectar as cifras que não poderiam ser quebradas mais eficazmente

usando outros métodos. Projectar as suas próprias cifras pode ser desafiador,

mas não se recomenda para aplicações reais a menos que seja um grande perito

e souber exactamente o que está a fazer.

Deve-se geralmente ser muito cauteloso com algoritmos não publicados ou

secretos. Frequentemente o desenhador não está certo da segurança do

algoritmo, ou a sua segurança depende do secretismo do algoritmo. Geralmente,

nenhum algoritmo que depende do secretismo do algoritmo é seguro.

Particularmente no software, qualquer um pode contratar alguém para

desmontar e converter, redireccionar o algoritmo. A experiência, tem-nos

mostrado que a grande maioria dos algoritmos secretos que se tornaram de

conhecimento público, mais tarde revelaram-se muito fracos no uso de

aplicaçõe reais.

O comprimento usado na criptografia de chaves públicas, é geralmente muito

maior do que nas chaves privadas. Isto é causado pela estrutura extra que fica

disponível ao criptoanalista. Neste caso, o problema não reside em adivinhar a

chave correcta, mas derivar a chave secreta correspondente à chave pública. No

caso da RSA, isto pode ser alcançado factorizando um número inteiro grande

com dois factores primos.

Para dar uma ideia da complexidade do RSA, um módulo de 256 bits é

facilmente factorizado em casa, uma chave de 512 bits podem ser quebrados

num período de meses, por grupos de pesquisa universitários – tendo em conta

a facilidade de computação conjunta. 768 bits, não serão seguras por muito

mais tempo. Chaves de 1024 bits e mais, podem se considerar seguras por

agora, a não ser que surjam grandes avanços criptográficos contra a RSA;

chaves de 2048 bits são consideradas por muitos, seguras pelas próximas

décadas.

Page 37: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 31

12. Criptoanálise e ataques em criptosistemas

Criptoanálise é a arte de decifrar comunicações encriptadas, sem possuir o

conhecimento das chaves apropriadas. Existem variadas técnicas

criptoanalíticas. Algumas das mais importantes são descritas de seguida.

Ataque Ciphertext-only

Esta é a situação em que o intruso desconhece o conteúdo da mensagem, pelo

que se vai concentrar apenas no texto de cifra. Na prática, é possível tentar

adivinhar o conteúdo da mensagem, visto que muitos de mensagens possuem

formatos de cabeçalho fixos. Mesmo cartas e documentos começam de forma

muito previsível.

Ataque Known-plaintext

O intruso conhece ou consegue prever a mensagem de algumas partes do texto

de cifra. A tarefa, neste caso consiste em desencriptar o resto dos blocos do texto

de cifra usando essa informação. Isto pode ser feito, determinando a chave

usada na encriptação dos dados, ou através de algum atalho.

Ataque Chosen-plaintext O intruso é capaz de obter qualquer texto que queira, encriptado com chave

desconhecida. A tarefa consiste em determinar qual a chave usada na

encriptação.Um bom exemplo deste tipo de ataque é a criptoanálise diferencial,

que pode ser aplicada contra cifras de bloqueio ( e em alguns casos, também

contra hashs de funções).Alguns criptosistemas, particularmente RSA, são

vulneráveis a este tipo de ataques. Quando tais algoritmos são usados, é preciso

muito cuidado na implementação da aplicação ou protocolo, de forma a que o

intruso nunca tenha acesso à mensagem encriptada.

Page 38: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 32

Ataque Man-in-the-middle Este ataque é relevante para cominucações criptográficas e protocolos com troca

de chaves. A ideia consiste em ter dois lados, A e B, que trocam chaves para

comunicações seguras, um intruso posiciona-se algures entre A e B na linha de

comunicação. Esse intruso, intercepta o sinal que A envia para B e, efectua uma

troca de chaves com A e B separadamente. A e B, acabam por usar uma chave

diferente, sendo ambas do conhecimento do intruso. De seguida, este pode

desencriptar toda a comunicação proveniente de A com a chave que partilha

com ele, após esta operação, o intruso encripta a mensagem com a chave de B e

envia-a para este. Tanto A, como B, pensarão que estão a comunicar em

segurança, mas o que realmente acontece é que o intruso consegue ler todas as

mensagens.A forma mais comum de prevenir este ataque é usar um sistema que

suporte chave pública com assinaturas digitais. Para tal, os intervenientes

precisam de saber à partida as chaves públicas um do outro. Depois de

partilhado o segredo, os intervenientes trocam entre si as assinaturas digitais.

Caso o intruso tente usar o método acima referido para forjar as assinaturas,

falhará porque não as conseguirá falsificar. Esta solução é suficiente, caso exista

forma de distribuir, com segurança, chaves públicas. Uma forma é usar o

certificado hierárquico tal como o X.509, usado no IPSec.

Correlação Correlação entre a chave secreta e os dados de saída do criptosistema são a

principal fonte de informação para o criptoanalista. No caso mais simples, a

informação acerca da chave secreta é directamente fornecida ao criptosistema.

Casos mais complexos, requerem um estudo da correlação entre a informação

observada acerca do criptosistema e a informação da chave “adivinhada”. Por

exemplo, com os ataques lineares contra blocos de cifras, o criptoanalista estuda

o texto simples e o texto cifrado observado. Adivinhando alguns dos bits chave

do criptosistema, o analista determina através de correlação entre o texto

simples e o texto cifrado, se adivinhou correctamente. Este processo pode ser

repetido, contendo inúmeras variações.A criptoanálise diferencial introduzida

por Eli Biham e Adi shamir no final dos anos 80, foi o primeiro ataque que fez

uso desta ideia, contra cifras de bloco (especialmente contra DES). Anos depois,

Mitsuru Matsui surgiu com criptoanálise que se provou ser ainda mais eficiente

Page 39: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 33

contra o DES. Mais recentemente, novos ataques com ideias semelhantes têm

sido desenvolvidos e usados. A ideia da correlação é fundamental para a

criptografia e diversos investigadores têm tentado construir critposistemas,

onde seja possível provar que são seguros contra estes ataques.

Ataques contra ou usando hardware subjacente

Nos últimos anos, com o surgimento de vários pequenos aparelhos de criptação

móveis, de fácil acesso, uma nova categoria de ataques tornou-se relevante,

onde se direccionam directamente à implementação de hardware para

criptosistemas. Os ataques usam os dados provenientes das medições dos

aparelhos de criptação. O modo de operação é semelhante ao usado no ataque

de correlação. O intruso adivinha alguns bits chave e tenta verificar a exactidão,

estudando a correlação entre as suas medições.Vários ataques foram

efectuaqdos, usando medições precisas do consumo de energia, padrões de

radiação, tempos dos aparelhos, etc. Estas medições podem servir para obter a

chave secreta ou outro tipo de informação armazenada no aparelho. Este ataque

é geralmente independente dos algoritmos criptográficos, podendo ser aplicado

a qualquer aparelho que não esteja explicitamente protegido.

Falhas nos criptosistemas Podem lever à criptoanálise e mesmo à descoberta da chave secreta. O interesse

em aparelhos criptográficos, levou à descoberta que alguns algoritmos

comportavam-se bastante mal, se fossem introduzidas pequenas falhas na

computação. Por exemplo, na implementação da chave privada da RSA, as

operações são muito subjectíveis de serem atacadas. Já foi provado que

causando um bit de erros num certo ponto, pode revelar a factorização do

módulo (ou seja, revela a chave privada). Ideias semelhantes foram usadas num

número grande de algoritmos e dispositivos. É então necessário que os

dispositivos criptográficos, sejam concebidos de forma a serem resistentes a

estas falhas (bem como contra a introdução maliciosa de falhas pelos

criptoanalistas).

Page 40: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 34

Computação quântica Consiste no campo de pesquisa que usa mecanismos quânticos para construir

computadores, que são na teoria, mais poderosos que computadores de série

modernos. O poder deriva do paralelismo inerente da mecânica quântica. Ao

invés de fazer as tarefas uma a uma – como as máquinas em série fazem – os

computadores quânticos conseguem fazê-las todas ao mesmo tempo. Com isso,

é esperado que se consiga resolver problemas que de outra forma seria

impossível de encontrar solução.Mecânica quântica, é também uma fonte para

esconder informação e assegurar comunicações, com o potencial de oferecer

segurança inquebrável, este é o campo da criptografia quântica. Ao contrário da

computação quântica, inúmeras implementações experimentais de criptografia

quântica, foram já conseguidas com êxito. Contudo, encontra-se ainda longe de

poder ser usada em aplicações comerciais.

Análise do ADN Leonard Adleman (um dos inventores de RSA) surgiu com a idéia de usar o

ADN como computadores. As moléculas do DNA podiam ser vistas como um

computador bastante grande, capaz de fazer execução paralela. Esta natureza

paralela poderia proporcionar aos computadores de ADN, um aumento

exponencial da velocidade em relação aos computadores em série. Infelizmente,

existem alguns problemas com os computadores de ADN, sendo um que o

aumento exponencial de velocidade requer um aumento também exponencial

no volume do material necessário, pelo que na prática, os computadores teriam

limites no seu desempenho. Para além de que não é nada fácil construir um.

Existem inúmeros outros ataques criptográficos e técnicas de criptoanálise.

Contudo os apresentados aqui, serão os mais importantes para a construção de

uma aplicação. Mesmo assim, para alguém que faça intenções de criar um

criptosistema, terá obrigatoriamente de possuir conhecimentos bem mais vastos

dos aqui apresentados.

Page 41: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 35

13. Algoritmos

13.1. Criptosistemas de chave pública

Os criptosistemas de chave pública foram inventados no final da década de 70,

com a ajuda do desenvolvimento da teoria da complexidade. Foi observado, que

perante um problema com solução tão difícil que levaria anos a resolver e, com

alguma sorte à mistura, poderia ser desenvolvido um criptosistema que

possuísse duas chaves – uma pública, outra privada. Com a chave pública,

poderia se encriptar mensagens, com a privada, a operação inversa

(desencriptar). Assim, apenas o possuidor da chave privada poderia ler a

mensagem, embora qualquer um que possuisse a chave pública poderia enviar

mensagens.Outra ideia, era usar uma troca de chaves. Numa comunicação a

dois, fazia sentido poder gerar uma chave privada comum para a encriptação,

usando um criptosistema de chave privada (bloco de cifra). Com isto, Whitfield

Diffie and Martin Hellman fizeram uso da Teoria dos Números para construir

um protocolo de troca de chaves, que iniciou a era dos criptosistemas de chave

pública. Pouco depois disso, Ron Rivest, Adi shamir e Leonard Adleman,

desenvolveram um criptosistema que se tornou no primeiro criptosistema de

chave pública a suportar encriptação e assinaturas digitais.

Após esta descoberta, outros criptosistemas apareceram, subjacentes nas

mesmas ideias. Mas muitos deles, provaram não ser seguros, pouco tempo

depois. Contudo, o protocolo Diffie-Hellman e RSA, conseguiram manter-se na

preferência de muitos, mesmo até agora.

Page 42: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 36

13.2. Terminologia O ingrediente básico de qualquer criptosistema de chave pública é um problema

de difícil computação. A segurança do criptosistema é baseado no facto de que a

chave privada pode ser obtida através da chave pública, resolvendo esse mesmo

problema.

De seguida, serão apresentados alguns dos termos usados na criptologia da

chave pública.

Algoritmo

Um algoritmo é uma descrição explícita de como uma dada computação deve

ser executada. A eficiência de um algoritmo pode ser medida através do número

de passos que demora a resolver um problema. Então, se afirmarmos que um

algoritmo demora O(n) passos, então isso significa que demora n passos

elementares, mas não especificamos o tempo que cada passo leva a executar.

Complexidade computacional Um problema é tempo polinomial ou em P se puder ser resolvido por um

algoritmo que leva menos de O(nt) passos, onde t é algum número finito e a

variável n mede o tamanho da instância do problema. Se a solução adivinhada

para algum problema pode ser verificada em tempo polinomial, então o

problema é tido como sendo em NP (tempo polinomial não determinístico). Na

criptografia de chave pública, o intruso interessa-se mais por resolver instâncias

específicas de um problema (decompôr em factores um dado número), do que

uma solução geral. Isto causa alguma preocupação aos criptógrafos, dado que

algumas instâncias NP em geral, podem ser de fácil resolução.

Números Primos Um número primo é um número que é apenas divisível por si mesmo ou 1. Os

números 2,3,5,7,11,13…são todos números primos. Existe um valor infinito de

números primos, sendo um dos maiores conhecidos (26,972,593)-1.

Page 43: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 37

Factorização Todo o número inteiro pode ser representado unicamente como um produto de

números primos. Por exemplo, 10 = 2*5 e é único. A arte da factorização é quase

tão antiga como a própria Matemática. Contudo, o estudo de algoritmos rápidos

para factorização tem apenas algumas décadas.

Um algoritmo possível para factorizar um inteiro, é dividir iterativamente um

número por todos os números primos mais pequenos, até que o resultado seja

um número primo. Isto é apenas eficiente para inteiros de tamanho inferior a

1016, visto que requere tentar todos os números primos até 108. Em

criptosistemas com chaves públicas baseados no problema da factorização, os

números podem chegar ao valor de 10300 pelo que requereria tentar todos os

números primos até 10150 e, segundo o teorema dos números primos, existem

10147. Este valor, excede largamente o valor de átomos no Universo, pelo que

não parece plausível que fosse enumerado para alguma tarefa.

Uma instância fácil de factorizar surge no caso do número inteiro ter apenas

factores primos pequenos. Por exemplo o valor 9 765 625 é simples de

factorizar, pois pode ser escrito como 55* 55. De preferência escolhe-se um

inteiro com dois factores primos grandes, tal como é feito no criptosistema RSA.

Logaritmos discretos Outra classe importante de problemas é encontrar n sabendo apenas y sendo

que y = gn. O problema é simples para inteiros, mas quando se trabalha com

opções ligeiramente diferentes, pode tornar-se bastante complicado.

Knapsacks (Mochila) Dado um conjunto pequeno de inteiros, o problema de knapsack consiste em

determinar o subconjunto desses inteiros, de forma a que a sua soma é igual à

do dado inteiro. Por exemplo, tendo o conjunto (2,3,5,7) e 10, a solução será 2 +

3 + 5 = 10, resolvendo o problam de knapsack através da procura por força

bruta.

O problema knapsack foi provado ser de difícil NP (complexidade

computacional), parecendo superior à factorização e logaritmo discreto usado

nos criptosistemas de chave pública. Infelizmente, todos os criptosistemas

Page 44: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 38

baseados neste princípio, foram quebrados – as instâncias usadas não são

consideradas de complexidade computacional elevada.

Lattices Definindo a base de um vector por wi = < w1, ..., wn> para i = 1, ..., m e, a lattice

gerada pela base. Isto é, os elementos da lattice são da forma t1w1 + t2w2 + ... +

tmwm, onde ti são inteiros.

O problema em encontrar o vector mais pequeno numa lattice (usando a

distância Euclidiana) é de complexidade computacional (NP) elevada, para

lattices de dimensões suficientemente grandes.

Contudo, o conhecido algoritmo LLL (de Lenstra, Lenstra e Lovasz) consegue

uma solução aproximada em tempo polinomial. A eficiência do algoritmo LLL,

provém do facto de que em muitos casos, soluções aproximadas são suficientes

e, um pouco surpreendentemente, o algoritmo consegue encontrar o vector mais

pequeno. Inclusivé, este algoritmo foi já usado por diversas vezes para quebrar

criptosistemas baseados nos problemas de lattice ou knapsacks, bem como

contra RSA e DSS.

Page 45: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 39

14. Criptosistemas práticos

O vasto interesse na criptografia de chave pública, serviu para produzir

criptosistemas de grande importância. De seguida será apresentada uma lista de

alguns problemas subjacentes.

Um criptosistema de chave pública, de maneira geral, é desenvolvido da

seguinte forma: pega-se num problema difícil, para o qual se consegue

encontrar uma instância que pode ser resolvida em tempo polinomial. Para

encriptar uma mensagem, converte-se a mesma numa instância simples do

problema difícil, de seguida, usa-se a chave pública para converter o problema

simples num complexo. O resultado será enviado para o recipiente através dum

canal inseguro. Para desencriptar, usa-se a chave privada para converter de

novo o problema complexo num simples e obter a mensagem. Todos os sistemas

usam este princípio, emboram difiram significativamente nos pormenores.

De seguida, para cada criptosistema, encontraremos as recomendações actuais

para tamanhos de chaves.

14.1. Factorização: RSA, Rabin

RSA (Rivest-Shamir-Adleman): é o algoritmo mais comum e mais

utilizado. Pode ser empregue, tanto na encriptação, como para assinaturas

digitais. O nível de segurança, é geralmente considerado equivalente à

factorização, embora isto ainda não tenha sido provado. A computação no RSA

acontece com o seguinte módulo n = p * q, para dois grandes números primos p,

q secretos.

Page 46: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 40

Para encriptar a mensagem m, é exponenciado com o expoente e. Para

decifragem,o recipiente do texto de cifra c = me (mod n) vai calcular o inverso

multiplicativo d = e-1 (mod (p-1)*(q-1)) obtendo cd = m e * d = m (mod n). A chave

privada consiste de n, p, q, e, d (onde p e q podem ser ignorados); a chave

pública consiste apenas de n, e. O problema do intruso é que calcular o inverso d

de e é conhecido como não sendo mais fácil que factorizar n.

O tamanho da chave deve ser superior a 1024 bits (magnitude superior a 10300)

para conseguir uma margem de segurança aceitável. Chaves de tamanho de

2048 bits deverão proporcionar segurança por décadas.

Avanços dramáticos na factorização de grandes números inteiros fariam com

que o RSA se torna-se vulnerável, no entanto, são também conhecidos ataques

contra outras variantes. Boas implementações usam redundância, com vista a

evitar ataques usando a estrutura multiplicativa do texto de cifra. RSA

apresenta-se vulnerável a Ataques Ciphertext-only e Ataques contra ou usando

hardware subjacente. Também ataques a expoentes bastante pequenos, bem

como a factorizações de módulos que foram parcialmente revelados.

A devida implementação do algoritmo RSA com redundância, encontra-se bem

explicada nos standards PKCS (Public-Key Cryptography Standards). É

fornecida uma explicação detalhada sobre como implementar encriptação e

assinaturas digitais, bem como os formatos para guardar as chaves. O algoritmo

RSA não deve ser usado em qualquer aplicação. É recomendado que as

implementações sigam à risca o standard, pois também se torna benéfico que

haja inter-operabilidade entre os principais protocolos.

RSA é actualmente o algoritmo de chave pública mais importante. Foi

patenteado nos Estados Unidos da América, com a curiosidade desta ter

expirado no ano 2000.

Rabin: criptosistema que pode ser visto como parente do RSA, embora o

processo de descodificação seja bastante diferente. O que o torna interessante é

o facto de que quebrar o Rabin, é tão difícil como a factorização.

Rabin usa o expoente 2 (ou qualquer outro inteiro par) ao invés dos inteiros

ímpares do RSA. Isto traz duas consequências; primeira, é possível provar que o

criptosistema é equivalente à factorização; segunda, a decifragem torna-se mais

Page 47: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 41

difícil. A segunda, é devido aos problemas existentes em decidir qual dos

resultados possíveis da decifragem, está correcto.

Como é equivalente à factorização, o tamanho do modulus é o parâmetreo de

segurança mais importante de todos. Módulo superior a 1024 bits são

reconhecidamente seguros.

Actualmente não existem standards para o algoritmo de Rabin, mas encontra-se

explicado em diversos livros. No entanto, o projecto IEEE P1363 deverá

apresentar um standard e assim torná-lo mais usado pela comunidade.

14.2. Discrete logs: Diffie-Hellman, ElGamal, DSS

Diffie-Hellman é um protocolo vulgarmente usado para troca de

chaves.

Em muitos protocolos criptográficos, dois intervenientes desejam começar a

comunicar entre si, contudo, assumindo que não possuem nenhum segredo

comum, portanto não podem usar de criptosistemas de chave secreta. A troca de

chave pelo protocolo Diffie-Hellman remedeia esta situação, permitindo a

construção duma chave secreta comum através dum canal de comunicação

inseguro. Baseia-se num problema descrito como logaritmos discretos,

nomeadamente o problema Diffie-Hellman. Este problema é considerado difícil

e, encontra-se em algumas instâncias, tão difícil como o problema de logaritmos

discretos.

O protocolo Diffie-Hellman é geralmente considerado como seguro quando

usado com um grupo matemático apropriado. Em particular, o elemento

gerador usado nas exponenciações deve ter um período grande.

Algoritmos de logaritmos discretos podem ser usados para atacar o protocolo

Diffie-Hellman, com ataques passivos, que é a melhor forma de obter sucesso –

assumindo correctamente certos parâmetros.

Ataques contra Diffie-Hellman incluem também o man-in-the-middle. Este

ataque requer intervenção adaptativa, mas na prática, torna-se bastante simples

se o protocolo não usar contramedidas, tal como as assinaturas digitais.

Page 48: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 42

Geralmente, este protocolo não é implementado por hardware, sendo que os

ataques por hardware não são uma grande ameaça. Isto, claro poderá ser

diferente no futuro, quando as comunicações móveis se tornarem mais usuais e

difundidas.

DSS (Digital Signature Standard). Mecanismo apenas de assinatura

endossado pelo governo dos Estados Unidos. O algoritmo subjacente DAS

(Digital Signature Algorithm) é semelhante ao usado pelo ElGamal ou pelo

algoritmo de assinatura Schnorr. É também razoavelmente eficiente, no entanto

não tanto como o RSA para a verificação de assinaturas. O standard define o

DSS para usar a função de hash SHA-1 exclusivamente para o sumário das

mensagens.

O maior problema do DSS é o tamanho fixo do subgrupo (a ordem do elemento

gerador), que limita a sua segurança para um valor que ronda os 80 bits.

Ataques de hardware podem ser uma fonte de preocupação para algumas

implementações do DSS. Contudo, é usado e genericamente aceite como um

bom algoritmo.

ElGamal. Cifra de chave pública. Esta é uma extensão directa da ideia

original de Diffie/Hellman numa geração de segredo partilhado.

Essencialmente, gere um segredo partilhado, usando-o unicamente uma vez

para encriptar um bloco de dados.

ElGamal, apesar de ser o predecessor do DSS, é ainda bastante usado no

presente, embora não exista nenhum standard sobejamente conhecido que

tenha sido criado para si.

Criptosistema da Curva Elíptica é mais uma forma de implementar

métodos de logaritmos discretos. Uma curva elíptica é basicamente um

conjunto de pontos que satisfazem a equação y2 = x3 + ax + b quando

considerado num campo finito de características p (onde p tem de ser superior a

3). É necessária uma equação ligeiramente diferente para os casos de

características baixas, p = 2 e p = 3.

Os pontos nas curvas elípticas podem ser adicionados e formar entre si uma

estrutura chamada grupo. Isto, é apenas uma forma de dizer que é possível fazer

Page 49: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 43

contas aritméticas com eles, tal como se podem fazer com inteiros, numa

operação como a adição ou a subtracção.

No que diz respeito à criptografia, curvas elípticas têm muitos benefícios

teóricos, sendo também bastante práticos. Não existe nenhum algoritmo sub-

exponencial para calcular logaritmos discretos de pontos das curvas elípticas, ao

contrário do que acontece nos logaritmos discretos. Um benefício prático para

tal, é que o tamanho da chave, bem como a assinatura digital produzida e as

mensagens encriptadas, são pequenas. Uma forma simples de calcular o limite

de segurança para um tamanho de uma chave, é pegar no tamanho dela, para

um criptosistema de chave privada, em bits e simplesmente multiplicar por

dois. Isto dá-nos uma estimativa, que não deixa de ser satisfatória para uma

instância genérica de curvas elípticas.

As curvas elípticas podem ser implementadas muito eficientemente tanto em

hardware como em software, competindo bem em termos de velocidade com

criptosistemas como o RSA e DSS. Existem algumas tentativas para

standardizar o criptosistema de curvas elípticas – por exemplo o ECDSA da

ANSI. N presente, as curvas elípticas são bastante conhecidas mas pouco usadas

na prática.

A segurança, neste método, tem-se mantido bastante estável durante anos,

contudo, foram já alcançados avanços significativos em ataques contra

instâncias especiais; sendo que estes ataques foram já previstos por

pesquisadores vários anos antes, pelo que não terão surgido como surpresa.

O algoritmo XTR, recentemente introduzido por Lenstra e Verheul, pode-se

tornar como um bom competidor às curvas elípticas. Contudo, estas, aparentam

ter um desempenho ligeiramente melhor e definitivamente escalam melhor com

o tamanho da chave.

LUC. Criptosistema de chave pública que utiliza um grupo especial

baseado nas sequências de Lucas (relacionadas com as séries de Fibonacci) na

construção básica do bloco. Pode implementar todos os algoritmos baseados nos

logaritmos discretos e, de certa forma, LUC é uma classe de algoritmos de chave

pública.

É possível de ver a estrutura subjacente do algoritmo como um grupo

multiplicativo de um campo finito de características p, de grau 2 (Fp2) – o que

Page 50: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 44

também pode servir para provar que existe um algoritmo sub-exponencial, para

cálculos discretos e assim atacar o algorimo LUC. Por esta razão pode parecer

que o algorimo será de pouco interesse, sendo que é apenas outra forma de

implementar logaritmos discretos baseados em algoritmos de campos finitos.

Contudo, LUC faz uso de operações aritméticas que derivam das sequências de

Lucas, que podem ser ligeiramente mais rápidas, do que se se tentasse uma

aproximação directa.

Os diferentes algoritmos de chave pública baseados na aritmética de LUC são

chamado LUCDIF(LUC Diffie-Hellman), LUCELG (LUC ElGamal) eLUCDSA

(LUC Digital Signature Algorithm). Alguns destes encontram-se patenteados.

O facto de que valores usados nos algoritmos LUC, podem ser representados

como pares de valores proporcionam alguma vantagem em relação ao uso de

apenas inteiros de módulo p. Os cálculos apenas envolvem números com

metade dos bits que seriam precisos no caso dos inteiros de módulo p. Como as

operações de grupo do algoritmo LUC são simples de calcular, este torna-se

competitivo contra algoritmos como RSA e DSS.

Contudo, no presente momento, não existem muitos motivos para que se use os

criptosistemas LUC, visto que oferecem poucas vantagens sobre as curvas

elípticas ou o XTR.

XTR. Desenvolvido por Arjen Lenstra e Eric Verheul, o XTR é similar ao

LUC, no facto que usa um grupo multplicativo de um campo finito particular

(Fp6) como grupo subjacente.

Contudo, o XTR possui características únicas, tais como apenas precisar de 1/3

dos bits das assinaturas para encriptar as mensagens.

Todos os logaritmos discretos baseados nos algoritmos de chave pública podem

ser implementados segundo os ideais XTR. Portanto, tal como o LUC, é uma

classe de algoritmos de chave pública.

Talvez surpreendentemente, o algoritmo mostra-se eficaz e de acordo com os

autores (Lenstra e Verheul), pode até servir como um bom substituto às curvas

elípticas. Possui a vantagem sobre estas, pois baseia-se essencialmente no

mesmo problema de logaritmo discreto do DSS, pelo que pode incentivar os

criptógrafos a adoptarem-no mais facilmente como um algoritmo forte.

Page 51: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 45

14.3. Knapsacks Existem apenas alguns criptosistemas de chave pública baseados no knapsack,

sendo que nenhum apresenta grande importância no campo prático.

Rivest-Chor: criptosistema baseado numa variante particular do

problema knapsack. Este é o criptosistema que tem provado ser o mais

resistente a ataques.

Merkle-Hellman (MH): O primeiro criptosistema baseado no

knapsack. Surgiu em 1978 por Ralph Merkle e Martin Hellman. Apesar de se

basear nuns ideais bastante interessantes, sendo consideravelmente mais

simples que o RSA, já foi quebrado. MH apoia-se no problema da soma dos

subconjuntos (caso especial do problema do snapsack): dada uma lista de

números e um terceiro número, que é a soma do subconjunto desses números,

determinar o subconjunto. De forma geral, este problema é tido como sendo

computacionalmente complexo, contudo existem algumas instâncias simples

que podem ser resolvidas eficientemente. MH permite transformar instâncias

simples em complexas e vice-versa. Foi quebrado por Shamir, não atacando o

problema do knapsack, mas sim quebrando a conversão duma instância simples

para uma complexa.

14.4. Lattices Nos últimos anos o interesse em criptosistemas baseados em lattices aumentou

consideravelmente. Uma das razões principais reside no facto que certas classes

dos problemas de lattice são computacionalmente complexos (NP-hard), onde

vários criptosistemas eficientes foram já propostos e aparentam ser seguros.

NTRU é um criptosistema proposto a meio da década de 90 como uma

cifra de chave pública eficiente. É baseado no problema de lattice, apresentando

algumas características interessantes.

Page 52: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 46

Algumas das versões iniciais tinham problemas, mas as versões mais actuais foi

já proposta para alguns standards Americanos.

14.4.1. Qual a ideia base por detrás do algoritmo NTRUSign?

O algoritmo NTRUSign baseia-se na dificuldade em encontrar um ponto numa

lattice que seja próxima dum vector aleatório no espaço. Tal dificuldade é

conhecida como o Problema do Vector mais Próximo (appr-CVP). No

NTRUSign, o assinante tem um bom conhecimento da lattice, usando este

conhecimento para resolver a appr-CVP para um ponto arbitrário no espaço,

que esteja ligado ao documento a ser assinado. O destinatário apenas tem um

conhecimento deficiente da lattice, que é pública, podendo assim verificar que a

assinatura é um ponto da lattice e que se encontra próximo do ponto associado

ao assinado pelo documento.

A ideia subjacente em basear um esquema de assinatura, no uso de uma base

para encontrar vectores próximos numa lattice, foi inicialmente proposta por

Goldreich, Goldwasser e Halevi num artigo publicado em 1998. Contudo, neste

caso, as chaves e as assinaturas eram de tamanho n2 em n (onde n é a dimensão

da lattice), sendo que para um esquema seguro, as chaves seriam demasiado

grandes. A novidade no NTRUSign é a possibildade de utilizar as técnicas da

lattice NTRU para alcançar uma melhoria na velocidade e comprimento da

chave.

Page 53: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 47

15. Criptosistemas de chave secreta

Algoritmos de chave privada usam a mesma chave tanto para encriptar, como

para o processo inverso – desencriptar. Esta é a abordagem mais simples no

campo da encriptação, sendo matematicamene menos complexo do que a

criptografia de chave pública, usada à já vários séculos.

15.1. Terminologia A seguinte terminologia é usada quando tratamos de cifras simétricas.

15.1.1. S-Boxes Significa caixas de substituição. Tabelas com mapas de n por m bits (onde n e m

são muitas vezes iguais).

Existem várias formas de construir S-boxes eficientes para cifras, bem como

maneiras de as medir. Alguns criadores usam abordagens matemáticas através

de funções bent, para criar S-boxes que se mostrem ser mais seguras contra

certos ataques. Outros tentam abordagens heurísticas, matematicamente mais

complexas, mas que possuem benefícios adicionais (bem como implementação

de opções diferentes).

A S-box pode até ser a única parte não linear da cifra. Isto acontece no caso da

cifra de bloco DES, podendo mesmo ser considerada a parte mais importante do

algoritmo.

Page 54: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 48

15.1.2. Redes Feistel É o dispositivo para construir cifras de bloco a partir de funções simples. A ideia

original foi usada na cifra de bloco Lucifer, inventada por Horst Feistel. Desde

então surgiram já algumas variações ao modelo original.

De uma forma muito simplista, o standard redes Feistel, pega no texto a cifrar,

M e, divide-o em duas metades, L e R e, vai cifrando iterativamente uma das

metades, quando as metades se cruzarem, o processo volta a repetir-se.

M / \ / \ L1 R1 \ / \ / \C(K1) / \ L2 R2 \ / \ / \C(K2) / \ L3 R3 Como se pode observar, usam-se várias chaves (K1, K2), uma por cada ciclo.

Esta rede tem a particularidade de ser reversível, se aplicarmos o K em sentido

inverso. No DES, usam-se 16Ks, portanto forma uma rede Feistel com 16 ciclos.

A segurança da estrutura Feistel não é óbvia, mas análises ao DES, mostraram

que é uma boa forma de construir cifras. É imperativo que a cifra Feistel possua

passos suficientes, se bem que simplesmente adicionando mais passos não

garanta a segurança.

A operação de pegar na chave do utilizador e expandi-la em rK bits para os

passos de Feistel é chamado de key scheduling. Geralmente, esta é uma

operação não-linear, pelo que encontrar qualquer um dos rK bits, não nos

fornece directamente nenhuma informação acerca da chave. Existem diversas

cifras que têm esta estrutura base: Lucifer, DES, TwoFish, entre outros.

Page 55: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 49

15.1.3. Expansão, Permutação Estas são as operações comuns para misturar bits numa função. São operações

lineares, pelo que não são suficientes para garantir a segurança. Contudo,

quando usadas com S-boxes não-lineares fortes (como no DES), tornam-se

vitais para a segurança, porque propagam a não-linearidade uniformemente

entre todos os bits.

Existem três tipos de permutações:

1)As permutações em que a saída possui o mesmo número de bits de entrada:

Entrada: 1 0 1 0

\ / \ / / \ / \

Saída: 0 1 0 1 Os bits apenas trocam de posição.

2)Compressão. A saída ocupa menos bits que a entrada, sendo que alguns bits

acabam por se perder:

Entrada: 1 0 1 0 \ / \ / / \ Saída: 1 0 Por fim, a expansão:

Entrada: 0 1

/ \ / \ / \ Saída: 0 0 1 1 Igual à compressão, mas ao contrário. Os bits repetem-se para criar um número

de bits maior.

15.1.4. Operações bit slice Operações lógicas XOR, AND, OR, NOT e permutações de bit: a ideia sobre as

implementações de bit slice pertence a Eli Biham.

Page 56: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 50

Basicamente, todas as cifras de bloco podem ser escritas por bitslice, mas

operações aritméticas tornam-se muito lentas. Por outro lado, permutações são

praticamente imediatas, porque não requerem que se nomeie os registos

novamente e isto pode ser alcançado ao nível do código. Por isso, no caso do

DES, a pesquisa exaustiva da chave usando técnicas de bitslice, pode-se

incrementar a chave actual numa fracção de tempo do que normalmente é

necessário no key scheduling.

A Serpent, finalista na Advanced Encryption Standard (AES), foi desenhada

para realizar somente operações de bitslice, o que a torna bastante eficiente em

arquitecturas modernas com muitos registos.

Idealizada a pensar nos níveis práticos mais altos de segurança e, para o

conseguir, limitaram-se ao uso de mecanismos bem entendidos e rotinados,

para que se pudesse depender da experiência na criptoanálise de cifras de

blocos. Foram usados também o dobro dos passos suficientes para bloquear

todo o tipo de ataques de atalho actualmente conhecidos. O objectivo seria

conseguir proporcionar a esta cifra um tempo de vida superior a um século.

Apesar destas restrições, a Serpent consegue ser bem mais rápida que o DES.

15.2. One-Time Pad A OTP é a única cifra que se conseguiu provar ser incondicionalmente segura,

ou seja, inquebrável na prática. Foi provado também que qualquer cifra

inquebrável, tem de ser OTP.

A cifra Vernam (inventada por G. Vernam em 1917) é uma instância famosa de

uma OTP. Esta cifra é bastante simples: pega-se numa cadeia de bits que

contêm a mensagem em texto simples e uma cadeia de bits aleatória do mesmo

tamanho, que é considerada a chave. O problema prático é que a chave não tem

um tamanho pequeno constante, mas sim o tamanho da mensagem e, uma parte

da chave não deve ser usada mais que uma vez. Portanto, apenas temos que

substituir o problema de trocar dados secretos, pelo problema de trocar chaves

aleatórias secretas do mesmo tamanho. Esta cifra tem sido utilizada desde os

tempos da sua invenção e, mais ainda desde a prova de segurança dada por C.

Shannon em 1949.

Page 57: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 51

15.3. DES DES, abreviatura de “DATA ENCRYPTION STANDARD, é um algorítmo

criptográfico simétrico cifrador de blocos de 64 bits de texto simples, que utiliza

uma chave secreta de 64 bits, dos quais apenas 56 bits são efectivamente usados

e gera blocos de texto cifrado de 64 bits.

Adoptado como padrão de criptografia para protecção de informações federais

americanas de carácter não-classificadas, portanto de grau de sigilo menor que

as informações de segurança nacional (principalmente militares e

diplomáticas), o DES tornou-se de facto um padrão internacional, para uso de

bancos, particulares e organizações comerciais.

15.3.1. As origens do DES: o cifrador “Lucifer” da IBM Os algoritmos criptográficos ou cifradores mais antigos, usados até na altura da

Segunda Guerra Mundial, eram baseados em operações de substituição ou de

transposição. Durante aquele conflicto bélico os pesquisadores concluíram que

seria possível a obtenção de sistemas mais seguros, com o emprego de etapas

alternadas de substituição e transposição.

Shannon, em 1949, propôs a composição de vários tipos de funções, para obter

transformações mistas, mais complexas e geradoras de algoritmos criptográficos

mais poderosos. Basicamente, estas funções seriam obtidas através do produto

de duas operações simples não comutativas, o que levou os algoritmos que delas

fizesse uso denominar-se “algoritmo ou cifra-produto”.

Shannon estabeleceu dois princípios básicos que os algoritmos de criptografia

ou cifradores seguros deveriam obedecer:

1. O Princípio da Difusão

Pelo qual o bom cifrador deve realizar um espalhamento da informação do texto

simples sobre todo o texto cifrado. Em outras palavras, mudanças ocorridas no

texto simples devem afectar muitas partes do texto cifrado. Esta característica

Page 58: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 52

irá obrigar um atacante ou criptoanalista possuir uma grande quantidade de

texto cifrado para tentar iniciar uma análise.

2. O Princípio da Confusão

Pelo qual o bom cifrador deve possuir um relacionamento funcional bastante

complexo entre o par texto simples/chave e o texto cifrado. Desta forma torna-

se difícil para um criptoanalista inferir que mudança ocorrerá no texto cifrado,

em decorrência de uma alteração no texto simples ou na chave, o que dificultará

a quebra do algorítmo.

O algoritmo Lucifer, projectado por Horst Feistel para a IBM no início da

década de 70, baseia-se exactamente na proposta de Shannon, sobre uso de

transformações mistas de substituições e transposições.

O Lucifer é, portanto, uma cifra-produto em bloco de 128 bits, com chave de 128

bits (o DES ficou com tamanho de bloco de 64 bits e com chave efectiva de 56

bits).

As operações de transposições no “Lucifer” são implementadas em forma de

caixas P (Permutação), ao passo que as substituições são efectuadas por caixas S

(Substituição), conforme a figura 2 mais abaixo.

No caso das operações de substituições, é impraticável a realização de todas as

substituições possíveis, para determinado tamanho de bloco. Por esta razão elas

são feitas em paralelo, sobre segmentos menores do bloco.

As operações de transposições, realizadas pelas caixas P – Permutação,

geralmente fixas e sem chave, são responsáveis pela produção da Difusão.

Por seu turno, as operações de substituições, feitas pelas caixas S, com chave,

implementam a Confusão.

As aplicações sobre os bits do bloco em claro, de sucessivas e alternadas

operações de transposição e substituição, sob o controle dos bits da chave, irão

produzir um bloco cifrado de bits, que não poderão ser deduzidos dos bits em

claro, sem o conhecimento de todas as operações e da chave envolvida.

A operação inversa, que vem ser a decifração, é efectuada submetendo-se o

bloco de dados cifrados, de volta pelo processo, usando-se o inverso de cada

caixa S, de substituição.

Page 59: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 53

Portanto, o Lucifer, originador do DES, tinha a sua segurança baseada numa

série de operações complexas de substituições, interpoladas por transposições,

bem como no segredo da chave criptográfica utilizada.

Figura 1 – Esquema da cifragem do algoritmo DES

Page 60: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 54

Figura 2 – Diagrama-bloco DES

15.3.2. Descrição do Algoritmo O diagrama-bloco do DES, figura 2 acima, mostra os seguintes passos,

sucessivos e independentes entre si :

1. Um passo inicial denominado de Permutação Inicial ( IP ), que executa

uma operação simples de transposição de bits, trabalhando apenas sobre o

bloco de 64 bits do texto em claro (texto simples), sem fazer uso da chave

criptográfica de 64 bits.

2. Um passo intermediário denominado de Transformação Criptográfica

(tipo produto), complexa e dependente da chave, que realiza cifragem em bloco.

Sucessivas operações lógicas, de substituição e de transposição, são executadas

em 16 passos ou “rounds”. As substituições são efectuadas sob o controlo da

Page 61: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 55

chave criptográfica, ao passo que as transposições são efectuadas de acordo com

uma sequência fixa.

3. Um passo final denominado de Permutação Final ( IP-1 ), operação de

transposição exactamente inversa à da Permutação Inicial ( IP ), o que irá

permitir a operação de decifração como o mesmo algorítmo.

Este método é ainda suficientemente forte para impedir os intrusos normais de

decifrarem as mensagens, mas é facilmente ultrapassavel com hardware

aproporiado ao alcance de Governos, organizações criminosas ou mesmo por

grandes companhias. DES está a tornar-se demasiado fraco, pelo que não deve

ser utilizado em aplicações.

A variante 3DES, é baseada no uso de três vezes do DES (geralmente numa

sequência de encriptar-desencriptar-encriptar com três chaves diferentes). É

sem dúvida muito mais forte, mas apresenta a desvantagem de ser bastante

mais lento que outras cifras de blocos.

Apesar de não apresentar grande interesse para uso em aplicações na

actualidade, existem ainda várias razões para que se considere ainda

importante. Foi a primeira cifra de blocos que se expandiu no sector público,

tendo assim, desempenhado um papel importante na divulgação da criptografia

ao público geral.

A sua estrutura era também excepcionalmente boa, para uma cifra que

supostamente apenas seria utlizada durante alguns anos. O DES mostrou-se

extremamente forte, pelo que demorou mais de uma década para que houvesse

algum desenvolvimento criptoanalítico que o pudesse pôr em causa.

15.3.3. Controvérsias sobre a segurança do DES As controvérsias a respeito do DES surgiram logo no início do processo de

padronização. Entre 1972 e 1974, uma equipa da IBM, sob o cargo de Walter

Tuchman, trabalhou no que seria a versão definitiva do DES, a partir do

algorítmo Lucifer.

Page 62: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 56

Por influência da NSA, os elementos principais do projecto do DES foram

designados como sensíveis e mantidos fora do conhecimento do público, tais

como os critérios de escolhas das caixas P (Permutação), caixas S (Substituição)

e cálculos das subchaves Ki.

Tal facto deu origem a críticas da comunidade científica e vários trabalhos

foram publicados, envolvendo diversos pesquisadores, uns criticando e outros

defendendo o DES, tais como Martin Hellman e Whitfield Diffie, ambos de

Stanford e, Walter Tuchman da IBM.

15.3.4. Armadilhas e fraquezas Eram dois os principais receios advindos do segredo do projecto do DES :

• Poderia haver uma armadilha (trapdoor) inserida no algoritmo, que

possibilitasse uma decifração fácil por parte dos conhecedores dos segredos do

projecto, que daria à NSA o poder de ter acesso a comunicações privadas;

• Alguma fraqueza séria do algoritmo poderia ser ou mesmo ter sido

descoberta por algum criptoanalista, que então ganharia a possibilidade de

acesso à correspondência privada.

Devido às repercussões do caso, o Senado Americano foi chamado a intervir.

Apesar dos trabalhos internos terem sido considerados como “classificados”, o

resultado final foi tornado público e livrou a NSA de qualquer envolvimento

indevido como o projeto do DES.

Tentando encontrar alguma fraqueza no DES, o Bell Laboratories e a Lexan

Corporation, analisaram na época a operação (mas não o projecto) das caixas S,

não tendo sido detectada nenhuma fragilidade.

Page 63: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 57

15.3.5. Tamanho da chave Outra crítica que logo surgiu, dizia respeito ao tamanho da chave. O algoritmo

Lucifer, que originou o DES, operava com chave de 128 bits. No entanto, o DES

ficou com chave efectiva de 56 bits.

Martin Hellman e outros membros da comunidade científica da época alegaram

ter a NSA pedido à IBM a redução do tamanho da chave, o que iria facilitar o

ataque ao algoritmo por pesquisa exaustiva da chave.

Walter Tuchman ofereceu outra versão para o novo tamanho da chave. Ele

negou que a NSA tivesse pedido a redução da chave. O real motivo, segundo ele,

da chave ficar com 64 bits, é por que ela deveria caber num elemento

semicondutor (NMOS) de 2,5 microns. Segundo o próprio Tuchman, a

explicação era tão simples e directa que simplesmente ninguém acreditava nela.

Na altura, Diffie e Hellman, sugeriram uma pesquisa exaustiva de chave, através

de um ataque em paralelo. Muitos processadores, a trabalhar em paralelo, a

pesquisar espaços contíguos da chave, poderiam dar conta do problema. Por

exemplo, um processador que pudesse testar uma chave por microsegundo e,

portanto, 8.6 x 1010 chaves num dia, levaria 106 dias para testar todas as 256 ≈ 7

x 1016 chaves. Agora, se colocarmos 106 processadores como este, a trabalhar

em paralelo, todas as chaves poderiam ser testadas num dia.

Na época, foi estimado por Diffie e Hellman um custo final para tal máquina de

cerca de US$20 milhões, com um consumo de 2MW, enquanto a IBM a cotava

em cerca de US$200 milhões.

Com a constante evolução tecnológica e redução dos custos de hardware, era

esperado que tal engenho poderia ter o seu custo baixado para algumas

centenas de milhares de dólares, já no fim da década de 80.

15.3.6. Fragilidades reais do DES Enquanto se estendia a controvérsia em torno de temores e conjecturas sobre a

existência de armadilhas, fraquezas e o pequeno tamanho da chave, algumas

Page 64: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 58

fragilidades reais do padrão foram surgindo, graças ao intenso trabalho de

análise do DES empreendido pela comunidade científica.

15.3.7. Existência de chaves fracas No processo de cálculo das chaves, a chave K é dividida em 2 metades, que vão

sofrer deslocamentos circulares à esquerda independentes (FIG. 07). Se os

valores a serem deslocados forem todos “1s” ou “0s”, as subchaves usadas no

algorítmo serão iguais, não importando de se tratar de criptografia ou

decifração.

Então, para estas chaves criptografar é o mesmo que decifrar, isto é : Ek ( Ek

(m)) = m, onde Ek é a operação de cifrar com o DES, usando a chave k e m é a

mensagem em claro.

Vê-se, portanto, que se um utilizador capaz, cifrar uma mensagem m com uma

chave fraca k, basta o opositor aplicar sobre o resultado desta cifra, Ek (m), uma

nova cifra, Ek’ ( Ek (m)), testando agora todas as chaves fracas, que ele então

obterá, para k’ = k, a mensagem em claro m.

No DES existem quatro chaves fracas, conforme a Tabela abaixo, em notação

hexadecimal:

Tabela 2 – Chaves Fracas DES

15.3.8. Existência de chaves semi-fracas

Existem ainda seis pares de chaves que possuem a fraqueza pela qual, em cada

par considerado, as duas chaves realizam decifrações idênticas.

Page 65: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 59

Então, no par de chaves semi-fracas (k1, k2), teremos que :

Dk1 ( m ) = Dk2 ( m ), sendo D a operação de decrifração.

Portanto, a chave k1 pode decifrar uma mensagem criptografada com k2 e, vice-

versa. Estes pares de chaves semi-fracas são mostradas na tabela seguinte.

Tabela 3 – Chaves Semi-Fracas DES

Até a presente data, não têm sido encontradas outras fraquezas de chaves,

apesar das investigações realizadas, o que não significa que não existam. Por

outro lado, é aconselhável evitar o uso de chaves que possuam uma estrutura

óbvia ou semelhante às das tabelas acima.

Considerando o espaço de chaves do DES contendo 256 chaves possíveis, a

probabilidade de se apanhar, por acaso, uma destas chaves fracas e semi-fracas,

é de 2-52. Apesar disto, será mais seguro incorporar um filtro no algoritmo de

escolha aleatória de chaves, como garantia.

15.3.9. O Futuro Padrão

Actualmente existe uma árdua disputa no seio da comunidade científica

criptológica, travada entre várias organizações e pesquisadores autónomos. Têm

sido aplicadas etapas selectivas, como se se tratasse duma competição

desportiva,. O cobiçado prémio final, nada desprezível, é o título de “padrão

criptográfico para o próximo milênio”.

Page 66: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 60

No dia 2 de janeiro de 1997 o NIST anunciou o início dos esforços no sentido do

desenvolvimento de um novo padrão criptográfico para substituir o DES e, que

foi denominado AES ( Advanced Encryption Standard).

Em 12 de setembro de 1997 foi lançada formalmente uma chamada pública para

algorítmos candidatos ao novo padrão, tendo sido dado o prazo de até 15 de

Junho de 1998 para apresentação dos interessados.

As principais especificações colocadas aos candidatos ao AES foram :

Algoritmo criptográfico simétrico cifrador de bloco;

Será usado por organizações governamentais ou comerciais (de modo

voluntário), para protecção de informaçõess “não-classificadas”, justamente

como ocorrera com o DES;

O algoritmo deve ser completamente aberto ao conhecimento público e

possuir facilidades para execução de testes, para permitir, de modo irrestrito,

análises e avaliações ;

Deve ter a possibilidade de se tornar disponível mundialmente e livre de

royalties;

Deve ser mais eficiente e mais seguro que o 3-DES, possibilitando

tamanhos de chave de 128, 192 e 256 bits;

Deve também poder cifrar blocos de tamanhos variáveis, como : 64,128 e

256 bits.

Em 20 de agosto de 1998, o NIST anunciou que 15 candidatos tinham sido

seleccionados, após a 1ª Conferência de Candidatos a AES.

A partir daí foi travada uma verdadeira batalha, com os autores dos algoritmos

candidatos e também os seus simpatizantes a procurarem, ao mesmo tempo,

enaltecer as suas propostas e mostrar falhas, ou mesmo “quebrar”, os

algoritmos concorrentes. Foi uma guerra de todos contra todos.

Em 15 de abril de 1999, foi estabelecida uma trégua pelo NIST, com o fim do

período de aceitação de comentários públicos sobre os candidatos.

Entre os 15 candidatos selecionados, dez tinham origem fora dos EUA e havia

apenas um algoritmo cujos autores eram, na sua totalidade, cidadãos

americanos.

Page 67: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 61

Após um breve período de tempo, o NIST, que já vinha a realizar as suas

análises com o apoio da NSA, anunciou os cinco algoritmos candidatos

finalistas, que são os seguintes:

AES (Rijndael), concebido por dois criptógrafos belgas, Joan Daemen e

Vincent Rijmen.

Rijndael segue a tradição das cifras quadradas. NIST escolheu este como o

vencedor, devido ao elevado desempenho em hardware e software em

ambientes distintos. Requer pouca memória, para além de excelente tempos de

preparação da chave, sendo as suas operações fáceis de defender contra ataques

de tempos.

Foi salientado pela NIST, que todos os cinco finalistas possuíam segurança

adequada e, que nada de errado havia com os outros quatro. Após todas as

análises e comentários recebidos terem sido considerados, a NIST optou pelo

Rijndael como a melhor escolha para o AES.

MARS, desenvolvido pela IBM, em Armonk, Nova Iorque.

Com uma estrutura interessante (usando um tipo especial da Rede Feistel), que

depende grandemente no conjunto de instruções disponíveis nos processadores

de 32-bits. Tem a vantagem de ser eficiente neste tipo de arquitectura, mas

poderá levar a dificuldades de implementação em arquitecturas mais simplistas.

RC6, por Rivest, Robshaw e Yin, RSA Laboratories.

RC6 segue os ideais do RC5, mas conta com muitos melhoramentos. Contudo,

alguns ataques conseguem ir bastante longe, pelo que é ainda incerto se o RC6

se encontra analisado suficientemente.

Serpent, Anderson, Biham e Knudsen.

Servent possui uma estrutura basicamente conservadora, mas de alguma forma

inovadora. Pode ser implementada por bitslice. O que o torna bastante

complexo de implementar pela raíz, sendo que escrevendo-o de uma forma não

bitslice envolve uma perda de eficiência.

Twofish, Schneier et. Al., Counterpane Security.

Page 68: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 62

Cifra de bloco desenhada pela Counterpane. A sua estrutura é bastante delicada,

com várias formas de implementação. Consiste basicamente duma cifra Feistel,

mas utiliza muitas idéias diferentes.

15.4. Blowfish Blowfish é um algoritmo criptográfico de chave simétrica desenvolvido por

Bruce Schneier. Consiste de um cifrador em blocos de 64 bits com chaves de

tamanho variável (até 448 bits). Foi desenvolvido em 1973, tornando-se uma

alternativa grátis e eficiente aos algoritmos de encriptação já existentes. O

Blowfish ganhou uma grande aceitação no mercado sendo utilizado em diversas

aplicações, tal como o Nautilus e o PGPfone. Os únicos ataques conhecidos

baseiam-se na sua fraca classe de chaves. Possui:

Cifragem em blocos de 64 bits;

Chave de tamanho variável: 32 à 448 bits;

Desenvolvido por Bruce Schneier;

Mais rápido que o DES e o IDEA;

Não patenteado e totalmente grátis;

Não necessita de licença;

Código fonte disponível para download.

Vários criptógrafos examinaram o código do Blowfish, tendo deparado com

chaves fracas – existe uma classe de chaves que pode ser detectada, contudo não

quebrada – na variante do Blowfish.

É uma das cifras de bloco mais rápidas actualmente em uso, exceptuando na

troca das chaves. Cada chave nova requere um pré-processamento equivalente à

encriptação de 4 kilobytes de texto, o que comparando com outras cifras de

bloco é bastante lento. Tal pormenor, impossibilita o seu uso em certas

aplicações, não sendo problema para outras. Em alguns casos, isto é uma

vantagem, o método usado pelo OpenBSD para fazer o hashing da password usa

um algoritmo derivado do Blowfish, fazendo uso da lentidão na criação das

Page 69: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 63

chaves, utilizando o tempo de processamento para prevenir os ataques de

dicionário.

15.5. IDEA

International Data Encryption Algorithm é um algoritmo desenvolvido pela

ETH em Zurique por Xuejia Lai. Usa uma chave de 128 bits, sendo considerado

bastante segura. Tem sido um dos algoritmos publicamente mais conhecidos.

Apesar de inúmeras tentativas de encontrar falhas, ainda não foram publicados

nenhuns ataques com sucesso.

15.6. RC4

RC2, RC4 – Algoritmos criados pelo Professor Ronald Rivest, são proprietários

da RSA Data Security. Estes algoritmos usam chaves que variam de 1 a 1024 bits

de extensão. Com chaves pequenas (menores que 48 bits), são códigos fáceis de

serem quebrados e, como são proprietários, não se tem muitas informações

sobre a sua segurança com chaves extensas. No entanto, não é um algoritmo

fácil de quebrar. RC2 é uma cifra de bloco, similar ao DES. RC4 é uma cifra de

corrente, onde o algoritmo produz uma corrente de pseudo-números que são

cifrados através de uma operação lógica XOR com a própria mensagem. Por esta

razão, é extremamente importante que a mesma chave não seja usada para

encriptar duas correntes de dados.

15.7. Modos de operação

As cifras mais comuns são cifras de blocos. Estas, transformam blocos de

tamanho fixo de dados (geralmente de 64 bits) em outros blocos com o mesmo

tamanho, usando uma função escolhida pela chave. Se a chave, o bloco de

Page 70: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 64

entrada e de saída tiverem todos n bits, a cifra de bloco define um mapeamento

de um-para-um dos n-bit inteiros para permutações de n-bit inteiros.

Se o mesmo bloco for encriptado duas vezes com a mesma chave, o bloco de

texto cifrado resultante será também o mesmo (este tipo de encriptação é

conhecido como electronic code book ou ECB). Esta informação poderá ser de

grande uso para um atacante. Para evitar que isto aconteça e, que blocos

idênticos de texto simples sejam cifrados para blocos diferentes, são usados dois

métodos:

CBC (cipher block chaining): o bloco de texto cifrado é obtido

através duma operação de XOR do bloco de texto simples com o bloco cifrado

anterior, encriptando o valor resultante. Desta forma, os primeiros blocos

influenciam os restantes, o que aumenta o número de bits do texto simples que

um bit de texto cifrado depende, mas também leva a problemas de

sincronização, caso se perca um bloco.

CFB (cipher feedback): o bloco de texto cifrado na posição k, é obtido

através da encriptação do bloco na posição (k- 1) e pela operação XOR do seu

resultado no texto simples.

As cifras de bloco possuem relações bem interessantes com outras classes de

cifras. Vejam-se os seguintes exemplos:

Cifras de corrente. Consiste numa máquina de estados que devolve,

em cada transição de estados, um bit de informação. Esta corrente de bits

resultantes, é conhecida como running key. A máquina de estados não é mais

que um gerador de números pseudo-aleatório. Por exemplo, é possível criar um

a partir de uma cifra de blocos ao encriptar repetidamente o resultado da

encriptação anterior. Geralmente, são usadas criações mais elaboradas para as

cifras de corrente, de modo a conseguir diminuir os tempos de encriptação.

RC4 e SEAL são duas das cifras de corrente mais conhecidas.

Várias cifras de corrente baseiam-se no LFSR (linear feedback shift registers),

tal como o A5/1 usado no sistema GSM. Estes possuem a vantagem de serem

Page 71: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 65

bastante rápidos, chegando a ser várias vezes mais rápidos que as cifras de bloco

comuns.

SSSC (self-synchronizing stream ciphers): a classe das SSSC

possuem a propriedade de corrirgir a corrente resultante após bit flips ou bits

perdidos após um período de tempo.

As SSSC podem ser criadas usando cifras de bloco no modo CFB. Assumindo

que já se encriptou n bits da mensagem e que se conhece outro tanto do texto

cifrado (onde n corresponde ao comprimento do bloco da cifra). É então criado

um novo bit running key, encriptando n bits do texto cifrado. Tira-se um bit do

resultado da cifra e obtém-se o novo bit running key. Movendo um bit à frente,

pode-se iterar todo o processo para o comprimento total da mensagem.

Facilmente se constata que um erro num bit num texto cifrado não irá afectar a

decifragem do texto após n bits. É esta propriedade que torna a cifra auto-

sincronizadora. A cifra de bloco usada, deverá ter um tamanho suficientemente

grande de forma a evitar ataques de substituição por exemplo.

15.8. Criptografia antes dos anos 70

Neste subcapítulo, serão listadas algumas das cifras do “passado”.

Fish foi usada pelo exército alemão durante a Segunda Guerra Mundial,

para encriptar comunicações com comandos importantes para as tropas. A

encriptação era feita através duma cifra de corrente chamada Máquina Lorentz.

O nome Fish, surgiu dos criptoanalistas britânicos. Foi muito importante,

porque causou bastantes dificuldades aos analistas britânicos, que finalmente

desenvolveram uma máquina chamada Colossus, tornando-se num dos

primeiros computadores digitais.

A máquina Colossus, poderá ter sido um factor importantíssimo no

planeamento e eventual sucesso do ataque dos Aliados à Normandia. Devido aos

Page 72: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 66

resultados obtidos pelos criptoanalistas do Fish, as Forças Aliadas tinham

conhecimento da posição das tropas alemãs.

Engima foi outra cifra usada pelos Alemães na Segunda Guerra

Mundial. A máquina usava diversos rotores e tinha a aparência de uma simples

máquina de escrever. Contudo, tanto os matemáticos Polacos como os

Britânicos foram capazes de obter informações actualizadas acerca deste

método. A maior parte das comunicaões encriptadas pelo Enigma, eram

decifradas pelos analistas Britânicos em Bletchley Park no espaço de horas.

Uma das versões mais capazes do Enigma, era usada em comunicações entre

submarinos, mas mesmo estas, os analistas Aliados conseguiram quebrar,

provocando grandes implicações na Batalha do Atlântico.

Tudo isto encontra-se bem documentado, Enigma e Bletchley Park. Inclusive o

trabalho do mais respeitado criptoanalista britânico da altura, Alan Turing, que

foi explicado e dissecadoem vários livros e artigos.

Recentemente, as suas notas originais sobre criptoanálise da altura, foram

tornadas públicas.

No entanto e, devido à sua idade, é pouco provável e viável que qualquer

variante do Enigma possa ser considerada segura actualmente.

Cifra de substituição. Este é um dos métodos básicos de papel e

caneta. Constrói-se uma tabela listando o alfabeto por ordem na primeira linha,

fazendo uma permutação aleatória do alfabeto na segunda. Pode-se encriptar

qualquer caracter do alfabeto, simplesmente olhando para a primeira linha e,

escrevendo o caracter correspondente da segunda linha. A chave deste método é

a permutação do alfabeto na segunda linha. O processo de decifragem é

precisamente o inverso.

Este processo é susceptível a uma análise à frequência, no caso do alfabeto ser

pequeno. Cifras de bloco modernas, poderão ser vistas como uma variante desta

idéia, no sentido que tentam esconder a mensagem atrás dum alfabeto grande

que depende de uma chave. No caso da cifra de bloco a permutação é gerada

pela chave secreta, pelo que o espaço da chave pode não cobrir todas as

permutações possíveis.

Page 73: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 67

Vigenere. Esta cifra usa um relógio aritmético para adicionar a chave à

mensagem. A dferença entre o OTP (One Time Pad) e a Vigenere é que nesta

faz-se explicitamente uso da chave curta repetidas vezes para uma mensagem.

Métodos usados para atacar as cifras Vigenere são o teste Kasiski, índice de

coincidências e outros. Estes levam a métodos eficazes de quebrar até mesmo

mensagens bastante pequenas (relativamente ao tamanho da chave).

Cifra Hill. A cifra Hill usa matrizes de relógios aritméticos, sendo altamente susceptível a ataques de texto simples.

Page 74: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 68

16. SSLeay/OpenSSL

16.1. Contexto São relacionados abaixo três conceitos básicos para a compreensão do

funcionamento dos sistemas de comunicação seguros, são eles: Autenticidade,

Integridade e Confidencialidade.

Autenticidade: é a garantia de que a identidade da entidade com a qual se está a

comunicar corresponde à desejada. Em outras palavras, a autenticidade reside

no facto de as duas partes de uma comunicação terem a certeza de que estão a

trocar informações com a entidade correcta.

Integridade: é o facto de a mensagem transmitida chegar até ao seu receptor de

forma íntegra, isto é, sem erros ou modificações indevidas.

Confidencialidade: é a garantia de que apenas as partes envolvidas na

comunicação têm acesso às informações trocadas. De outra forma, diz-se que a

informação não pode ser interceptada por terceiros, ou pelo menos não pode ser

entendida quando interceptada. Deve-se notar que a autenticidade das partes é

essencial para se conseguir confidencialidade, pois é imperativo que se

identifique a outra parte na comunicação para o estabelecimento de chaves

criptográficas comuns que permitam a utilização de criptografia segura.

16.2. A origem do SSLeay A criptografia é o mecanismo básico para se prover segurança numa rede de

computadores. É esta que fornece as ferramentas para satisfazer os requisitos de

autenticidade, integridade e confidencialidade exigidos.

Page 75: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 69

O protocolo SSL fornece funções que permitem que se alcancem os três

requisitos citados anteriormente; fazendo uso de diferentes algoritmos

criptográficos para implementar segurança, tais como autenticação com

certificados, algoritmos de troca de chaves de sessão, cifração e verificação de

integridade. É um protocolo comummente utilizado para garantir que a

comunicação entre um servidor e um cliente WWW seja segura e cifrada.

Surgiu então o SSLeay que é uma biblioteca de funções que implementa o

protocolo SSL (Secure Socket Layer) da Netscape, baseado num trabalho

realizado por uma equipa coodenada por Eric A. Young e Tim Hudson. Este

trabalho iniciou-se devido a restrições do governo Norte Americano para

exportação de produtos que limitavam-se a um tamanho máximo de chaves

criptográficas, o que não atendia as necessidades do mundo da informática.

Após algum tempo, o SSLeay transformou-se no OpenSSL, que aproveitando o

legado do SSLeay deu sequência ao trabalho da equipa anterior de garantir

comunicação segura cliente-servidor (implementando o protocolo SSL), como

pode ser utilizado para criar uma Autoridade Certificadora e assim gerar

Certificados Digitais.

A Certificação Digital é uma tecnologia de identificação em redes de

computador. Ela permite a emissão de documentos de identidade electrónicos

para que entidades se reconheçam na Internet.

Os Certificados Digitais são elaborados segundo padrões internacionais,

definindo quais informações são imprescindíveis e deixa em aberto a

possibilidade de implmentação de outras informações de interesse do

usuário. Esse documento electrónico encontra-se sob a chancela digital do órgão

emissor, permitindo que a sua autenticidade possa ser verificada de maneira

simples e automática.

16.2.1. Autoridade

Os certificados digitais são emitidos por empresas especializadas, conhecidas

como Autoridades Certificadoras.

Page 76: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 70

Para obter um certificado digital, o usuário deve conectar-se (normalmente

utilizando um browser) ao sítio de uma certificadora digital e preencher um

formulário com os seus dados pessoais. Paralelamente, o browser envia a chave

pública para a certificadora, mantendo a privada em segredo na máquina do

usuário.

Depois disso, o candidato ao certificado digital deverá comprovar a sua

identidade junto a uma Autoridade de Registo (RA) que pode ser um cartório,

departamento de RH, etc. Feito isso, a autoridade certificadora emitirá o

certificado digital e o usuário fará o seu descarregamento e instalação através do

seu browser.

Normalmente uma Autoridade Certificadora torna pública a sua Declaração das

Práticas de Certificação (CPS – Certification Practice Statementes), que

descreve todos os procedimentos necessários para a validação de solicitações de

certificações, como realizar todos os processos de emissão de certificados,

verificação de validade, armazenamento, publicação ou acesso online, revogação

e arquivamento para verificação futura. Assim uma autoridade certificadora

constitui-se de um sistema computacional completo, com capacidade de

comunicação, processamento e armazenamento. Uma Declaração das Práticas

de Certificação bastante completa e interessante é disponibilizada pela

CertiSign.

16.3. Certificado

O Certificado de Identidade Digital, também conhecido como Certificado

Digital, associa a identidade de um titular a um par de chaves electrónicas

(uma pública e outra privada) que, usadas em conjunto, comprovam a

identidade. É uma versão electrónica de algo parecido a um Bilhete de

Identidade – serve como prova de identidade, reconhecida diante de qualquer

situação onde seja necessária a sua comprovação.

O Certificado Digital pode ser usado numa grande variedade de aplicações,

como comércio electrónico, groupware (Intranet e Internet) e transferência

electrónica de fundos.

Page 77: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 71

Dessa forma, um cliente que compre numa loja virtual, utilizando um servidor

seguro, solicitará o Certificado de Identidade Digital deste Servidor para

verificar a identidade do vendedor e o conteúdo do Certificado por ele

apresentado. Da mesma forma, o servidor poderá solicitar ao comprador o seu

Certificado de Identidade Digital, para identificá-lo com segurança e precisão.

Caso qualquer um dos dois apresente um Certificado de Identidade Digital

adulterado, ele será avisado do facto e, a comunicação com segurança não será

estabelecida.

O Certificado de Identidade Digital é emitido e assinado (chancelado) por uma

Autoridade Certificadora Digital(Certificate Authority – CA). Para tal, esta

autoridade usa as mais avançadas técnicas de criptografia disponíveis e de

padrões internacionais (norma ISO X.509 para Certificados Digitais), para a

emissão e chancela digital dos Certificados de Identidade Digital.

Um certificado contém três elementos:

16.3.1. Informação de atributo

Esta é a informação sobre o objecto que é certificado. No caso de uma pessoa,

isto pode incluir o seu nome, nacionalidade e endereço electrónico, a sua

organização e o departamento desta organização onde trabalha.

16.3.2. Chave de informação pública

Esta é a chave pública da entidade certificada. O certificado actua para associar

a chave pública à informação de atributo, descrita acima. A chave pública pode

ser qualquer chave assimétrica, mas usualmente é uma chave RSA.

Page 78: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 72

16.3.3. Assinatura da Autoridade em Certificação (CA)

A CA assina os dois primeiros elementos e então, adiciona credibilidade ao

certificado. Quem recebe o certificado verifica a assinatura e acreditará na

informação de atributo e chave pública associadas se acreditar na Autoridade

em Certificação.

Existem diversos protocolos que usam os certificados digitais para

comunicações seguras na Internet:

Secure Socket Layer ou SSL

Secured Multipurpose Mail Extensions – S/MIME

Form Signing

Authenticode / Objectsigning

O SSL é talvez a aplicação mais difundida para os certificados digitais e é usado

em praticamente todos os sitios que fazem comércio electrónico (livrarias, lojas

de música, bancos etc.). O SSL teve uma primeira fase de adopção onde apenas

os servidores estavam identificados com certificados digitais e, assim tínhamos

garantida, além da identidade do servidor, o sigilo na sessão. Entretanto, apenas

com a chegada dos certificados para os navegadores é que pudemos contar

também com a identificação na parte do cliente, eliminando assim a

necessidade do uso de senhas.

O S/Mime é também um protocolo muito popular, pois permite que as

mensagens de correio electrónico sejam encriptadas e/ou assinadas

digitalmente. Desta forma as mensagens não podem ser lidas ou adulteradas

por terceiros durante o seu trânsito entre a máquina do remetente e a do

destinatário. Além disso, o destinatário tem a garantia da identidade de quem

enviou a mensagem.

O Form Signing é uma tecnologia que permite que os utilizadores emitam

recibos com os seus certificados digitais. Por exemplo: o utilizador acede ao seu

banco pela rede e solicita uma transferência de fundos. O sistema do banco,

antes de fazer a operação, pede que o utilizador assine com o seu certificado

digital um recibo confirmando a operação. Esse recibo pode ser guardado pelo

Page 79: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 73

banco para servir como prova, caso o cliente posteriormente negue ter efectuado

a transação.

O Authenticode e o Object Signing são tecnologias que permitem que um

programador assine digitalmente o seu software. Assim, ao descarregar software

pela Internet, o utilizador tem certeza da identidade do fabricante do programa

e que o software se manteve íntegro durante o processo. Os certificados digitais

dividem-se em basicamente dois formatos: os certificados de uso geral (que

seriam equivalentes a um bilhete de identidade) e os de uso restrito

(equivalentes a cartões de banco, cartões de clubes etc.). Os certificados de uso

geral são emitidos directamente para o utilizador final, enquanto que os de uso

restrito são direccionados basicamente para empresas ou governo.

16.4. Chaves

Existem dois tipos básicos de criptografia actualmente: a criptografia simétrica

(chave privada) e a criptografia assimétrica (chave pública). A certificação

digital utiliza basicamente a criptografia assimétrica, onde cada utilizador

possui um par de chaves: uma pública e outra privada.

A chave pública é divulgada livremente e a chave privativa é mantida em

segredo pelo seu utilizador. Assim, quando alguém deseja enviar uma

mensagem em segredo para outra pessoa, basta encriptar a mensagem com a

chave pública do destinatário. Desta forma, a mensagem só poderá ser aberta

pelo detentor da chave privada, ou seja, o destinatário da mensagem.

A criptografia assimétrica possui outra utilidade: a assinatura digital. Desta

forma, quando um utilizador deseja assinar um documento digitalmente, ele

cifra o documento com a sua chave privada e todas as outras pessoas poderão

verificar a sua assinatura usando a sua chave pública.

Exemplos de algoritmos simétricos são IDEA, RC2, RC4, DES, DES3, Blowfish e

Diamond. O melhor algoritmo assimétrico de criptografia conhecido é o RSA.

Page 80: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 74

16.5. Como funciona o SSL

Um sitio seguro é constituído por programas de computador que são executados

num servidor seguro para atender solicitações feitas pelos utilizadores finais,

através dos seus próprios programas (clientes seguros).

Dotado de características que tornam as transacções electrónicas confidenciais,

mediante criptografia, o servidor seguro faz uso de um protocolo especial de

comunicação que é o SSL, que utiliza criptografia de chave assimétrica,

tornando a comunicação entre as partes virtualmente inviolável. Desta forma, se

houver interceptação das informações entre o cliente e o servidor por parte de

pessoas não autorizadas, estas informações não terão utilidade já que seria

necessário o conhecimento prévio das chaves privadas de criptografia.

O par chaves de cifração (chave pública e chave privada) é a identificação

electrónica de um servidor na Internet. E existem também os “cartórios”

electrónicos: as Autoridades Certificadoras.

A chave pública de um servidor deve ser previamente certificada para

comprovar que ela pertence mesmo a esse servidor. Desta maneira o utilizador

do navegador da Internet pode ter a certeza de não estar a ligar-se e passar as

suas informações confidenciais a um desconhecido. Este certificado é fornecido

por uma Autoridade Certificadora.

O mecanismo de certificação é simples, embora a burocracia envolvida seja

grande. A Autoridade Certificadora, após verificar a autenticidade das

informações fornecidas pelo solicitante do certificado, assina-o (encripta) com a

sua chave privada.

Os navegadores seguros têm as chaves públicas dos certificadores. Ao receber

uma chave certificada de um servidor, o navegador primeiro verifica a

assinatura do certificador, decifrando-a com as chaves públicas dos

certificadores conhecidos.

É fácil perceber que as chaves privadas são informações muito sigilosas.

Especialmente as chaves privadas das Autoridades Certificadoras. Se alguém se

apoderar de uma destas chaves, poderá assinar certificados falsos,

comprometendo todo o sistema de segurança descrito. Por este motivo, as

Page 81: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 75

chaves dos certificadores são conservadas em computadores especialmente

construídos, que destroem a chave em caso de tentativa de violação.

O Netscape Navigator, MS Internet Explorer, Mozilla Firefox e algumas versões

do Mosaic têm a capacidade de estabelecer sessões sigilosas com servidores

seguros na Internet. Usando cifração (codificação de dados com chaves) a

conversação entre o navegador e o servidor permanece secreta – nenhuma outra

pessoa consegue descodificar o conteúdo dos dados transitando entre os dois

computadores. É esta capacidade que permite a realização de negócios

comerciais, envolvendo informações sigilosas, via Internet.

Para alguns, existe um exagero na questão. Afinal, o cartão de crédito de uma

pessoa passa por diversas mãos sempre que efectua um pagamento numa loja

ou restaurante, não podendo ser considerado um número tão sigiloso assim.

Mas o trânsito destes números pela Internet permite a fraude de cartão de

crédito em grande escala e sem deixar pistas, algo difícil no comércio regular.

Na Internet, o sigilo deste tipo de dados é fundamental.

Os métodos de cifração podem ser divididos em duas categorias: Os simétricos

usam a mesma chave para codificar e decodificar a mensagem. Os assimétricos,

usam duas chaves diferentes. Uma mensagem cifrada com uma chave só pode

ser decifrada com a outra e vice-versa.

O protocolo SSL usa os dois tipos de cifração. O de chave pública é versátil pois

permite a passagem de chaves através da própria Internet. O simétrico, por

outro lado, é centenas de vezes mais rápido e é usado durante toda a

conversação após a passagem da chave secreta. O processo todo é um pouco

complicado, facto apontado como responsável pela lentidão do avanço do

comércio via Internet.

Suponha-se que uma pessoa deseja estabelecer uma sessão sigilosa com um

servidor de endereço wwws.exemplo.com. A sequência de eventos para efectuar

a negociação da chave é:

1) O navegador contacta o servidor wwws.exemplo.com solicitando a chave

pública deste servidor. Esta chave deverá estar previamente “assinada” por uma

autoridade reconhecida pelo navegador. A assinatura consiste na cifração da

chave pública do servidor com a chave privada da autoridade. Como o

navegador conhece a chave pública da autoridade, ele decifra a mensagem com

Page 82: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 76

a chave pública. Se a decifração der certo, o navegador sabe que a chave pública

recebida pertence efectivamente a wwws.exemplo.com e não a um impostor. É o

que se chama de chave pública certificada.

2) O navegador faz então um desafio ao servidor. Ele fabrica uma mensagem

aleatória, cifra com a chave pública do servidor e envia. O servidor então decifra

a mensagem com a sua chave privada e devolve ao navegador. Se a mensagem

devolvida for igual à original, o navegador pode ter certeza que o servidor

realmente possui a chave privada que alega ter.

3) O navegador agora fabrica uma chave aleatória. Esta chave é chamada de

chave de sessão. A chave de sessão é uma chave de cifração simétrica, o processo

de cifração mais rápido. O browser cifra a chave de sessão com a chave pública

de wwws.exemplo.com e envia para este servidor.

4) O servidor recebe a chave de sessão cifrada e decifra com sua chave privada.

Como a chave de sessão foi cifrada com a chave pública de wwws.exemplo.com,

somente este servidor – e o navegador que fabricou a chave – conhecem a chave

de sessão. Esta chave é então usada para codificar todas as mensagens

subsequentes trocadas entre os dois computadores.

De salientar que as chaves de sessão são longas (128 bits nos EUA e 40 bits no

resto do Mundo). É virtualmente impossível obter estas chaves pelo método das

tentativas. Também não é possível decifrar as mensagens sem a chave de

sessão.

16.6. Características

As principais características do SSL são:

Segurança em conexões cliente/servidor: o SSL garante o sigilo dos dados

trocados entre as partes envolvidas na conexão através do uso de

criptografia simétrica. A fim de evitar que as mensagens, mesmo

Page 83: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 77

decifradas, sejam modificadas e com isso um ataque de escuta activa seja

possível, o SSL adiciona a todas as mensagens um MAC (Message

Authentication Code). Calculado a partir de funções de hash seguras, o

MAC garante a integridade das mensagens trocadas. Além de sigilo e

integridade, o SSL ainda providencia a autenticação das partes

envolvidas a fim de garantir e verificar a identidade das mesmas. Neste

processo, o SSL utiliza criptografia assimétrica e certificados digitais.

Independência de protocolo: o SSL funciona sobre qualquer protocolo de

transporte confiável. Porém, a maioria das implementações são feitas

para redes TCP/IP.

Interoperabilidade: dado a sua especificação bem detalhada e o uso de

algoritmos criptográficos conhecidos, diferentes implementações do

protocolo têm a garantia de interagir entre si.

Extensibilidade: consoante a necessidade, permitir que novos parâmetros

e métodos de criptografia (assimétrica ou simétrica) sejam incorporados

ao protocolo, sem que seja necessária a criação de um novo protocolo ou

a implementação inteira de uma nova biblioteca.

Eficiência: devido à necessidade de recursos computacionais que este

tipo de operação requer, o protocolo dispõe da opção de

armazenamento em cache de informações referentes a sessão,

diminuindo desta forma o esforço computacional em sucessivas

conexões.

16.7. Camadas do SSL O protocolo SSL é dividido em duas camadas como mostra a figura. A de mais

baixo nível, que interage com o protocolo de transporte, é a camada Record.

Esta camada é responsável por encapsular os dados das camadas superiores em

pacotes compactados e cifrados e repassá-los para a camada de transporte.

Page 84: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 78

Entre as camadas superiores está a outra camada do SSL, a camada de

Handshake. Esta, permite que a aplicação servidora e a aplicação cliente

autentiquem-se e negociem os algoritmos de cifragem e as chaves criptográficas

antes que o protocolo de aplicação receba ou envie o seu primeiro byte.

Figura 3 – Camadas do protocolo SSL A camada Record recebe dados não interpretados de camadas superiores em

forma de bloco de dados cujo tamanho é variado. Estes blocos são encapsulados

em registos e, dependendo do seu tamanho, devem sofrer uma fragmentação.

Os dados contidos neste registo sofrem ainda uma compactação e, em seguida,

são cifrados usando os algoritmos e chaves definidos pelo processo de

Handshake. A figura 3.1.2 ilustra os protocolos internos da camada de

Handshake e os processos executados na camada Record.

Figura 4 – Protocolos Handshake e processos Record

Page 85: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 79

16.7.1 Processos - Processo de Fragmentação: neste processo, os dados originados das

camadas superiores, Aplicação e Handshake, são fragmentados em blocos de, no

máximo, 214 bytes. Estes blocos são empacotados gerando uma SSLPlainText. O

pacote SSLPlainText além do bloco de dados, contém ainda a informação do

tipo destes dados, ou seja, que entidade os enviou (dados de aplicação ou de

protocolos da camada Handshake).

- Processo de Compactação: neste processo, os fragmentos resultantes do

processo de fragmentação são compactados de acordo com o método de

compactação escolhido. Na versão actual do protocolo, nenhum algoritmo de

compactação é especificado. Porém, todas as implementações devem aceitar um

tipo de compactação, o CompressionMethod.null, a qual não realiza nenhuma

modificação sobre os dados. O resultado deste processo é um pacote

SSLCompressed . O tamanho do bloco de dados contido no SSLCompressed,

após a compactação, não pode exceder 214 + 1024 bytes. Este processo também

é responsável pela operação inversa, ou seja, a descompactação dos pacotes

resultantes do processo de decifragem. O processo de descompactação é

responsável por assegurar que os dados, após descompactados, não causem

nenhum estouro do buffer. É considerado erro sempre que um bloco de dados

apresente tamanho maior a 214 bytes após a sua descompactação.

- Processo de Cifragem: este é o principal processo da camada Record. O

processo de cifragem é responsável por proteger os dados enviados entre as

partes, através do uso de cifras e códigos MAC . Os algoritmos usados neste

processo são resultantes da fase de handshake a qual determina a cipherspec

(parte da ciphersuite que indica o algoritmo simétrico e a função de hash) que

deverá ser usada pela camada Record. A integridade das mensagens

transmitidas numa conexão SSL é obtida com o uso de MACs, que são

calculados a partir de um conjunto de dados usando funções de hash seguras.

Na Record, os MACs têm uma característica a mais, a presença de um segredo o

qual garante que o resultado do hash não poderá ser forjado por outro que não

aquele que conhece o segredo. A forma em que os dados deverão ser cifrados

Page 86: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 80

dependerá do tipo de algoritmo simétrico escolhido, ou seja, cifra de bloco ou

encadeada. Em ambos os casos, o dado cifrado é o bloco de dados compactado

no processo anterior, acrescentado do MAC. No caso de cifra de bloco, o pacote

a ser enviado para a rede conterá também um padding, quando necessário, a

fim de alcançar o tamanho do bloco. Este padding é acrescentado e retirado

respectivamente nos processos de cifragem e decifragem. O resultado do

processo de cifragem é um pacote SSLCipherText que deverá ser enviado pela

rede para o outro lado da comunicação.

A camada de Handshake é a responsável pelos processos de troca de chaves,

autenticação e estabelecimento de chave de sessão feitas no SSL. Nela,

encontram-se os protocolos Handshake, ChangeCipherSpec (CCS) e Alert. Cada

um destes protocolos desempenha um papel bem definido no SSL, mesmo

havendo uma grande interação entre eles durante os processos descritos acima.

Um conceito importante para o entendimento desta camada é o de sessão no

SSL. Uma sessão SSL é composta por um conjunto de dados que são gerados

após um processo de handshake completo. Uma sessão é dada como sendo

dependente do estado. O protocolo Handshake é o responsável por manter a

consistência dos estados de uma sessão tanto no cliente quanto no servidor.

Uma mesma sessão SSL pode incluir várias conexões, ou seja, a partir dos

mesmos dados que formam uma sessão podem-se abrir múltiplas conexões SSL.

Os dados que formam uma sessão são os seguintes:

• session ID: um valor arbitrário escolhido pelo servidor para identificar

esta sessão;

• peer certificate: usado para certificar uma organização. Está no

formato X.509 e entre outras coisas, encontra-se dentro dele a chave

pública da entidade que está a utilizar aquela aplicação;

• compression method: algoritmo usado na compressão dos dados;

• cipherspec: especifica que conjunto de algoritmos de cifragem e de

hash serão utilizados;

• Mastersecret: um segredo de 48 bytes compartilhado pelo servidor e

pelo cliente;

• IsResumable: flag utilizada para indicar se a sessão pode ou não ser

retomada ao iniciar uma nova conexão.

Page 87: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 81

16.8. Algoritmos Utilizados Existem quatro grupos que podem representar o conjunto de algoritmos

criptográficos utilizados pelo protocolo SSL. São estes:

• Algoritmos simétricos: estes algoritmos são utilizados no sigilo dos

dados transmitidos durante uma sessão SSL. Na actual especificação do

SSL são usados os algoritmos RC4, DES, 3DES, RC2, IDEA e Fortezza

(cartão PCMCIA que verifica tanto a cifragem como a assinatura digital).

• Algoritmos assimétricos e de derivação de chaves: algoritmos

utilizados para a troca de chaves e para o processo de assinatura digital.

Neste grupo estão o RSA, o DSA(somente assinatura) e o Diffie-Hellman

(derivação de chaves).

• Algoritmos de hash: usados para prover a integridade das mensagens

enviadas e no processo de criação dos segredos. São especificados o MD5

e o SHA.

• Algoritmos de compactação: na actual versão do SSL não há nenhuma especificação para funções de compactação.

16.9. Ataques Os protocolos de segurança precisam de oferecer protecção a tipos e métodos de

ataque. Mesmo com os algoritmos criptográficos a fazer a protecção dos dados

de aplicação, o protocolo deve resistir a ataques maliciosos. O SSL oferece

protecção contra as seguintes classes de ataque:

16.9.1. Integridade

Devido à presença de MACs nos pacotes Record, um invasor não consegue

alterar estes pacotes sem que a sua acção seja detectada. Qualquer modificação

Page 88: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 82

posterior aos pacotes ocasiona a queda automática da conexão. A integridade

dos dados é mantida mesmo nos casos onde a cifragem não é usada.

16.9.2. Autenticidade O sequestro de sessão é um ataque à autenticidade dos dados, pois envolve a

quebra de uma sessão através da personificação das partes. O SSL evita este tipo

de ataque com o processo de autenticação de servidores e clientes.

16.9.3. Personificação Apesar de versões antigas possibilitarem este tipo de ataque, foram feitas

modificações no protocolo de modo a evitá-lo. O SSL usa certificados para a

autenticação de servidores, o que impossibilita a personificação dos mesmos.

Além disso, a última mensagem trocada durante o processo de handshake

(FINISHED) executa uma verificação de todas as mensagens trocadas até o

momento, evitando assim que prováveis modificações ou ataques através do uso

destas mensagens não passem despercebidas. Aqui estão relacionados os

ataques que o SSL não oferece adequada proteção:

16.9.4. Confidencialidade Num estabelecimento de conexão entre duas máquinas, um atacante pode

adquirir informações úteis apenas pelo facto de escutar o meio (sniffer), sem

precisar, efectivamente, de analisar quaisquer dados. O SSL, por transmitir

pacotes cujos cabeçalhos não são cifrados, pode permitir este tipo de ataque.

Page 89: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 83

16.9.5 Disponibilidade Um atacante pode evitar que um serviço seja prestado consumindo os recursos

de um servidor através do estabelecimento de falsas conexões ou com a

deterioração do meio físico (DOS – Denial of Service).

O SSL possui algumas limitações de segurança devido às suas características e

propósitos fundamentais:

1. A protecção aos dados locais não é fornecida pelo protocolo. O SSL somente

garante a segurança dos dados durante a sua transmissão entre dois aplicativos.

2. Não-repudiação: o SSL não possui um mecanismo que evite a não repudiação

de uma transacção. Por esta razão, sistemas que necessitem da habilidade para

auditar ou provar a execução de uma transacção, devem empregar o uso de

assinaturas digitais nos dados de aplicativo.

Page 90: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 84

17. S-HTTP

S-HTTP foi concebido por E. Rescorla e por A. Schiffman do EIT, para permitir

conexões seguras. Através de uma variedade de mecanismos, permite

confidencialidade, autenticação e integridade. O sistema não se encontra ligado

a um sistema criptográfico particular, infraestrutura de chave ou formato

criptográfico.

S-HTTP trabalha sob o HTTP, permitindo que as mensagens sejam

encapsuladas de várias formas. A encapsulação pode incluir encriptação,

assinaturas, ou autenticação baseada no MAC (Message Authentication Code)do

utilizador. Esta encapsulação pode ser recursiva e, a mensagem pode ter várias

transformações de segurança aplicadas em si. O S-HTTP também inclui

definições dos cabeçalhos para fornecer transferência de chaves, de certificados

e de funções administrativas similares.

17.1 Ameaças As ameaças ao S-HTTP são similares ao SSL. Contudo, a sua natureza mais

generalista, tornam-no mais difícil de avaliar exactamente o que é possível fazer.

17.1.1 Protecção possível O modo de operar por defeito do S-HTTP torna-o bastante mais resistente a

ataques do que o SSL. É portanto mais robusto.

Page 91: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 85

O custo da criptoanálise ao texto é mais elevado que no RC4-40 – a cifra usada

por defeito no S-HTTP é a DES, enquanto que no SSL é a RC4-40. dando

valores comparativos, podemos dizer que para quebrar uma chave RC4-40 num

mês, teriamos que gastar $100. Para quebrar uma chave DES no mesmo

período de tempo, teríamos de dispender $10,000, ou seja 100 vezes mais.

17.1.2. Fraquezas O uso de troca de chaves in band é potencialmente problemático, os autores não

dispendem tempo suficiente para se certificarem de que as chaves são

transferidas apropriadamente. Uma transferência imprópria seria algo como

enviar a chave B como Ea(B). É o mesmo que dizer, a chave B que substitui a

chave A, não pode ser enviada usando a chave A para cifrar. Se um atacante

possui a chave A, então terá a chave B, pelo que a troca de chaves se revela uma

perda de tempo. Foi precisamente este erro que os japoneses cometeram

durante a Segunda Guerra Mundial.

O facto de ser tão flexível, pode-se tornar um problema para o programador. É

sabido que não existem muitas opções para o quebrar, mas também não partilha

da facilidade do SSL onde se pode encriptar tudo e não se preocupar. Um

programador, especialmente um não muito familiarizado com questões de

segurança e criptografia, pode pensar que apenas por usar S-HTTP estará

protegido. No entanto, poderá estar susceptível de sofrer ataques que ponham

em perigo a sua segurança.

Page 92: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 86

18. Protocolos e Standards

Neste capítulo vão ser descritos os protocolos de software usados em várias

aplicações. Estes protocolos são construídos em algoritmos criptográficos de

baixo nível.

Criptografia funciona em muitos níveis. Num, temos os algoritmos, tais como as

cifras de bloco e criptosistemas de chave pública. Acima destes, temos os

protocolos e, ainda mais acima encontramos as aplicações ou mesmo outros

protocolos. Não é suficiente estudar apenas a segurança dos algoritmos

subjacentes, isto porque, uma fraqueza num protocolo de nível mais elevado (ou

na aplicação), pode tornar a aplicação insegura mesmo que os algoritmos

subjacentes tenham sido bem codificados. Um exemplo simples, é um protocolo

que deixa escapar a informação sobre a chave usada para encriptar o canal de

comunicação. Independentemente da robustez dos algoritmos inferiores, estes

tornam-se inseguros se os protocolos de nível superior revelarem as chaves de

encriptação.

A análise dos protocolos é geralmente uma tarefa complicada, porque as

aplicações que implementam tais protocolos podem levar a mais problemas.

Portanto, um bom protocolo não é suficiente, é necessário existir também uma

implementação robusta.

De seguida, serão listados alguns dos protocolos e standards mais conhecidos.

Page 93: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 87

18.1. Domain Name Server Security (DNSSEC). Usado para assegurar o DNS. É uma extensão do DNS, que proporciona

autenticidade ponta-a-ponta e integridade, tendo sido concebida para proteger a

Internet de certos ataques.

Existem várias classes distintas de ameaças ao DNS, sendo que a maioria estão

relacionadas com problemas e falhas gerais, mas algumas são específicas ao

protocolo DNS.

18.2. Generic Security Services API (GSSAPI) GSSAPI fornece a autenticação, troca e chave e interface de encriptação para

diferentes algoritmos e sistemas criptográficos.

18.3. Secure Socket Layer (SSL)

SSL é um dos dois protocolos para efectuar conexões WWW (World Wide Web)

seguras, sendo o outro o S-HTTP. A segurança na WWW tem-se tornado cada

vez mais importante devido à quantidade de informação sensível que a

atravessa, tais como números de cartões de crédito, números de contas

bancárias.

O protocolo SSL foi originalmente desenvolvido pela Netscape como um

protocolo standard aberto.

18.4. Secure Hypertext Transfer Protocol (S-HTTP) Protocolo que permite alguma segurança nas transacções efectuadas na WWW.

É mais fléxivel em certos aspectos que o SSL, mas devido ao domínio da

Netscape na área, o SSL encontra-se numa posição mais forte.

Page 94: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 88

18.5. Standards de encriptação de chave pública (PKCS – Public Key Encryption Standards)

Desenvolvidos na RSA Data Security, definem formas seguras de usar a RSA.

São um conjunto de standards com funções de segurança, incluindo métodos

para troca de chaves, cifragem e decifragem de chaves públicas, pedido de

certificados bem como outras.

18.6. IEEE P1363: Especificações do Standard para criptografia de chaves públicas

Novo standard para criptografia de chave pública. Consiste em vários

algoritmos para encriptação de assinaturas digitais. Possui grande e exaustiva

documentação que explica todos os detalhes para a sua implementação.

18.7. Publius Censor-Resistent Publishing Protocol

Sistema avançado que permite a um grupo de autores e leitores de partilhar

documentos através de um servidor de rede de modo que:

• Nenhum autor nem leitor precisa de revelar a sua identidade • A origem dos documentos é certificada de vir de um certo autor

(pseudónimo) • Os documentos não podem ser removidos ou modificados a não ser que a

integridade de um grande número de servidores envolvidos seja compromentida.

18.8. SSH2

Desenvolvido pela IETF, grupo pertencente à SecSH. Este protocolo é bastante

versátil no que diz respeito às exigências da Internet, sendo usado no software

Page 95: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 89

SSH2. serve para proteger sessões terminais e conexões TCP. Baseia-se no seu

predecessor SSH1, desenvolvido por Tatu Ylönen.

18.9 IPSec Enquanto que os protocolos mencionados acima operam sob a camada de

aplicação da Internet, permitindo que programas comuniquem através de um

canal seguro, numa rede por si insegura, o IPSec tenta tornar a Internet segura

na sua base, o protocolo IP.

Page 96: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 90

19. Conclusão

A Internet evoluiu muito desde a sua origem. No início era apenas uma rede

privada, onde o fantasma da violação de propriedade e informação não passava

disso mesmo. Uma sombra que não se avistava na linha do horizonte ainda. Mas

esses tempos passaram rapidamente e, com a massificação, bem como a

mudança de interesses, que passaram a ser maioritariamente comerciais, algo

teve que ser feito. Pelo que então foi necessário dar maior relevância à

segurança.

A Internet tinha deixado de ser um canal privilegiado e seguro. Passara a ser um

local repleto de oportunistas, sabotadores ou meramente curiosos. A informação

passou a viajar “escondida”, codificada, imperceptível aos olhos alheios.

Codificação de mensagens, foi a resposta dada pelos peritos para a sua

protecção. Mas esta estratégia, não surgiu com o aparecimento da Internet e as

suas necessidades inerentes de segurança.

A codificação é uma arte secular que terá tido o seu marco mais importante nas

duas Grandes Guerras Mundiais. As forças Americanas transmitiam mensagens

com a ajuda da linguagem Mojave, conhecida apenas por alguns índios

americanos que se juntaram às Forças Aliadas. Alemães e Japoneses

desenvolveram algoritmos de encriptação para o mesmo efeito – tornar as

mensagens imperceptíveis a estranhos. Surgiram novos algoritmos, cada vez

mais fortes, de chaves maiores, embora todos possuam falhas, pelo que a

Criptografia continua a ser uma arte em desenvolvimento. Com a computação

em paralelo, a exigência da encriptação aumentou exponencialmente. Cifras

outrora julgadas inquebráveis, ou pelo menos na prática, pois exigiriam dezenas

Page 97: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 91

de anos de computação para o conseguir, foram quebradas numa fracção desse

tempo, devido ao grande desenvolvimento tecnológico.

Esta é uma “batalha do gato e do rato”. Sempre que surge um método novo de

encriptação, rapidamente a comunidade a tenta quebrar. E é no meio desta

guerra que nos encontramos. Guerra onde não existem propriamente

vencedores e vencidos, mas sim desenvolvimento, aperfeiçoamento de técnicas

e tecnologia.

A questão final que se pôe é então, será a Internet um local seguro?

Apesar da resposta não ser tão simples ou directa, como a que vou apresentar,

na essência poderá ser algo como:

Sim, mas mediante certas medidas e precauções. Não se pode julgar que quando

conversamos com alguém, nos encontramos sozinhos. Há sempre a

possibilidade de alguém estar à escuta. O mesmo acontece na Internet. Por isso

se usam canais seguros, encriptam textos, usam-se entidades certificadoras.

Page 98: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 92

20. Definições e abreviaturas

• Sistema critpográfico assimétrico Algoritmo processado electronicamente ou séries de algoritmos que utilizam chaves diferentes com as seguintes características: • Uma chave encripta a mensagem • Uma chave decifra a mensagem • As chaves possuem uma propriedade que torna “impossível” de descobrir

uma chave meramente por conhecer a outra. • Autenticação

Processo para verificar a identidade de um utilizador. • Autorização

Processo para estabelecer e forçar os direitos e privilégios de um utilizador a recursos específicos.

• Política de certificação

São os documentos formais que descrevem os vários passos envolvidos para criar, manter e validar os certificados. Também especifica as obrigações associadas às funções e que partes do processo podem ser delegadas.

• Autoridade de certificação

Pessoa ou entidade que emite, revoga ou mantém os certificados PKI (infraestrutura de chave pública).

• Dados críticos

Refere-se aos recursos cuja indisponibilidade ou uso impróprio, pode afectar a realização duma missão.

• Encriptação

Método electrónico de processamento de uma mensagem, em que uma mensagem cifrada por um algoritmo, seja impossível de decifrar sem o algoritmo de decifragem correspondente.

• Par chave Chave privada e a correspondente chave pública num criptosistema assimétrico. Este par é único, onde a chave pública pode verificar a

Page 99: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 93

assinatura digital criada pela chave privada e esta pode decifrar a mensagem ou ficheiro que a chave pública cifrou.

• Open Standard

Standard que apesar de não ser propriedade de nenhum constructor, vendedor, produto ou dono, pode ser usado entre outros componentes de modo a facilitar a interoperabilidade e, que tenha sido aprovado por um comité de standards reconhecido.

• Dono

Grupo ou divisão que controla o conjunto de recursos de informação que determinam o seu nível crítico. Sendo assim, podem determinar o acesso, direitos de autorização e disseminação desses recursos.

• Certificado PGP

Registo electrónico que inclui: • O número da versão do PGP, identifica qual a versão do PGP usada para

criar a chave associada ao certificado. • A chave pública do detentor do certificado – a porção pública do par

chave do subscritor, juntamente com o algoritmo da chave: RSA, Diffie-Hellman, DSA.

• A informação do detentor do certificado – consiste na informação identificativa do utilizador, tal como o seu nome, número de identificação, fotografia.

• A assinatura digital do detentor do certificado, esta é a assinatura usando a chave privada correspondente à chave pública associada ao certificado.

• O período de validade do certificado – data/hora de início e data/hora da validade do certificado.

• O algoritmo simétrico de preferência para a chave – indica o algoritmo usado para cifrar a informação que o detentor do certificado prefere.

• Conformidade com os standards do IETF OpenPGP. • Infraestructura de chave pública (PKI)

Conjunto de certificados, títulos e repositórios.

• Certificado PKI Também conhecido como certificado X.509, consiste de um registo electrónico que: • Identifica a autoridade certificadora. • Identifica o seu subscritor. • Contém a chave pública do subscritor. • Assinada electronicamente pela autoridade certificadora. • Em conformidade com os standards X.509/PKIX. • Pretty Good Privacy (PGP)

Implementação criptográfica assimétrica não baseada no PKI. O PGP reconhece dois formatos diferentes de certificados: • Certificados PGP. • Certificados X.509 (PKI). • Repository Authority (RA)

Page 100: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 94

Entidade que valida a assinatura electrónica duma entidade de confiança. Geralmente, consiste numa fonte de informação actualizada acerca de certificados, o seu nível de confiança e outras informações relacionadas.

• Informação sensível

Informação confidencial ou crítica na qual a perda, acesso não autorizado ou modificação, pode afectar os interesses de quem a possui.

• S/MIME

Secure Multi-Purpose Internet Mail Extensions, é um protocolo de segurança de aplicação usado principalmente para comunicações de correio electrónico. Usa o sistema de encriptação.

• Standard

Directiva ou especificação cuja conformidade é obrigatória. • Subscritor

Pessoa que: • É o sujeito listado no certificado. • Aceita o seu próprio certificado. • Detém a chave privada correspondente à chave pública listada no certificado.

• Utilizador

Indivíduo ou grupo que tem acesso a um sistema de informação ou aos seus dados.

• X.509/PKIX

Conjunto específico de técnicas standards, definidas pela Internet Engineering Task Force (IETF) através do seu grupo de desenvolvimento de standards PKIX. Baseia-se no standard X.509 adoptado pela International Telecommunication Union.

Page 101: Criptologia – Segurança na Internet 970371paf/proj/Set2004/Criptologia Seguranca.pdf · Criptologia – Segurança na Internet ISEP – Instituto Superior de Engenharia do Porto

Criptologia – Segurança na Internet

ISEP – Instituto Superior de Engenharia do Porto 95

21. Bibliografia

http://www.ssh.com/

http://www.cryptography.com/

http://www.rsasecurity.com/

http://www.nist.gov/

http://www.itl.nist.gov/fipspubs/fip180-1.htm

www.esat.kuleuven.ac.be/~bosselae/ripemd160.html

http://www.ietf.org/rfc/rfc2660.txt

http://www.pgpi.org/

http://www.ietf.org/html.charters/smime-charter.html

http://grouper.ieee.org/groups/1363/

http://cs1.cs.nyu.edu/waldman/publius/

M. E. Hellman and R. C. Merkle: Public Key Cryptographic Apparatus

and Method. US Patent 4,218,582, 1980.

B. Chor and R.L. Rivest: A knapsack type public key cryptosystem based

on arithmetic in finite field, Crypto '84.

D. Coppersmith. and A. Shamir: Lattice Attacks on NTRU, Eurocrypt '97