Buscar

Criptografia: Ciência e Arte da Segurança

Prévia do material em texto

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MATO GROSSO DO SUL
CÂMPUS COXIM
EVERSON DE SOUZA SILVA
JADERSON TEODORO DE ASSIS
LAÉRCIO DA SILVA SOUTILHA
MARCO ANTÔNIO DE QUEVEDO BOSA
RAFAEL GONÇALVES VIANA
CRIPTOGRAFIA
COXIM – MS 
2014
EVERSON DE SOUZA SILVA
JADERSON TEODORO DE ASSIS
LAÉRCIO DA SILVA SOUTILHA
MARCO ANTÔNIO DE QUEVEDO BOSA
RAFAEL GONÇALVES VIANA
CRIPTOGRAFIA
Projeto apresentado ao Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul, Câmpus Coxim, como pré-requisito para aprovação na disciplina de Segurança da Informação, do Curso Técnico de Nível Médio Integrado em Informática, sob orientação do Prof. Francisco Xavier da Silva.
COXIM – MS
	2014	
SUMÁRIO
1.	INTRODUÇÃO	5
2.	CRIPTOGRAFIA	5
2.1.	CRIPTOGRAFIA DE CHAVES SIMÉTRICA E ASSIMÉTRICA	5
2.2.	FUNÇÃO DE RESUMO (HASH)	7
2.3.	ASSINATURA DIGITAL	7
2.4.	CERTIFICADO DIGITAL	8
2.5.	CUIDADOS A SEREM TOMADOS	9
2.6.	LEGISLAÇÃO	11
2.7.	TIPOS DE CRIPTOGRAFIA	13
2.7.1.	Criptografia de Hash	13
2.7.2.	Chaves Simétricas	14
2.7.3.	Chaves Assimétricas	15
3.	CONCLUSÃO	17
REFERÊNCIAS	18
			
	
INTRODUÇÃO
A necessidade de troca de informações entre os seres humanos, sem perigo de interceptação, existe desde os tempos de Roma antiga. Foi lá que surgiu o código de César, que consistia numa forma de embaralhar as letras de uma mensagem. Com o aparecimento dos computadores, novas formas de codificar a informação foram criadas, de modo que os usuários pudessem se comunicar, com proteção. Entretanto, essa tecnologia estava restrita a governos e organizações militares.
Em 1991, o pesquisador do Massachusetts Institute of Technology (MIT) Phillip Zimmermann criou um software que trouxe o mundo da criptografia para usuários comuns.
CRIPTOGRAFIA
A criptografia, considerada como a ciência e a arte de escrever mensagens em forma cifrada ou em código, é um dos principais mecanismos de segurança que você pode usar para se proteger dos riscos associados ao uso da Internet.
 Atualmente, a criptografia já está integrada ou pode ser facilmente adicionada à grande maioria dos sistemas operacionais e aplicativos e para usá-la, muitas vezes, basta a realização de algumas configurações ou cliques de mouse.
Por meio do uso da criptografia você pode:
Proteger os dados sigilosos armazenados em seu computador, como o seu arquivo de senhas e a sua declaração de Imposto de Renda;
Criar uma área (partição) específica no seu computador, na qual todas as informações que forem lá gravadas serão automaticamente criptografadas;
Proteger seus backups contra acesso indevido, principalmente aqueles enviados para áreas de armazenamento externo de mídias;
Proteger as comunicações realizadas pela Internet, como os e-mails enviados/recebidos e as transações bancárias e comerciais realizadas.
 CRIPTOGRAFIA DE CHAVES SIMÉTRICA E ASSIMÉTRICA
De acordo com o tipo de chave usada, os métodos criptográficos podem ser subdivididos em duas grandes categorias: criptografia de chave simétrica e criptografia de chaves assimétricas.
Criptografia de chave simétrica: também chamada de criptografia de chave secreta ou única, utiliza uma mesma chave tanto para codificar como para decodificar informações, sendo usada principalmente para garantir a confidencialidade dos dados. Casos nos quais a informação é codificada e decodificada por uma mesma pessoa não há necessidade de compartilhamento da chave secreta. Entretanto, quando estas operações envolvem pessoas ou equipamentos diferentes, é necessário que a chave secreta seja previamente combinada por meio de um canal de comunicação seguro (para não comprometer a confidencialidade da chave). Exemplos de métodos criptográficos que usam chave simétrica são: AES, Blowfish, RC4, 3DES e IDEA.
Criptografia de chaves assimétricas: também conhecida como criptografia de chave pública, utiliza duas chaves distintas: uma pública, que pode ser livremente divulgada, e uma privada, que deve ser mantida em segredo por seu dono. Quando uma informação é codificada com uma das chaves, somente a outra chave do par pode decodificá-la. Qual chave usar para codificar depende da proteção que se deseja, se confidencialidade ou autenticação, integridade e não-repúdio. A chave privada pode ser armazenada de diferentes maneiras, como um arquivo no computador, um smartcard ou um token. Exemplos de métodos criptográficos que usam chaves assimétricas são: RSA, DSA, ECC e Diffie-Hellman.
A criptografia de chave simétrica, quando comparada com a de chaves assimétricas, é a mais indicada para garantir a confidencialidade de grandes volumes de dados, pois seu processamento é mais rápido. Todavia, quando usada para o compartilhamento de informações, se torna complexa e pouco escalável, em virtude da:
Necessidade de um canal de comunicação seguro para promover o compartilhamento da chave secreta entre as partes (o que na Internet pode ser bastante complicado) e;
Dificuldade de gerenciamento de grandes quantidades de chaves (imagine quantas chaves secretas seriam necessárias para você se comunicar com todos os seus amigos).
A criptografia de chaves assimétricas, apesar de possuir um processamento mais lento que a de chave simétrica, resolve estes problemas visto que facilita o gerenciamento (pois não requer que se mantenha uma chave secreta com cada um que desejar se comunicar) e dispensa a necessidade de um canal de comunicação seguro para o compartilhamento de chaves.
Para aproveitar as vantagens de cada um destes métodos, o ideal é o uso combinado de ambos, onde a criptografia de chave simétrica é usada para a codificação da informação e a criptografia de chaves assimétricas é utilizada para o compartilhamento da chave secreta (neste caso, também chamada de chave de sessão). Este uso combinado é o que é utilizado pelos navegadores Web e programas leitores de e-mails. Exemplos de uso deste método combinado são: SSL, PGP e S/MIME.
 FUNÇÃO DE RESUMO (HASH)
Uma função de resumo é um método criptográfico que, quando aplicado sobre uma informação, independente do tamanho que ela tenha, gera um resultado único e de tamanho fixo, chamado hash.
Você pode utilizar hash para:
Verificar a integridade de um arquivo armazenado em seu computador ou em seus backups;
Verificar a integridade de um arquivo obtido da Internet (alguns sites, além do arquivo em si, também disponibilizam o hash correspondente, para que você possa verificar se o arquivo foi corretamente transmitido e gravado);
Gerar assinaturas digitais, como descrito na Seção 9.3.
Para verificar a integridade de um arquivo, por exemplo, você pode calcular o hash dele e, quando julgar necessário, gerar novamente este valor. Se os dois hashes forem iguais então você pode concluir que o arquivo não foi alterado. Caso contrário, este pode ser um forte indício de que o arquivo esteja corrompido ou que foi modificado. Exemplos de métodos de hash são: SHA-1, SHA-256 e MD5.
ASSINATURA DIGITAL
A assinatura digital permite comprovar a autenticidade e a integridade de uma informação, ou seja, que ela foi realmente gerada por quem diz ter feito isto e que ela não foi alterada.
A assinatura digital baseia-se no fato de que apenas o dono conhece a chave privada e que, se ela foi usada para codificar uma informação, então apenas seu dono poderia ter feito isto. A verificação da assinatura é feita com o uso da chave pública, pois se o texto foi codificado com a chave privada, somente a chave pública correspondente pode decodificá-lo.
Para contornar a baixa eficiência característica da criptografia de chaves assimétricas, a codificação é feita sobre o hash e não sobre o conteúdo em si, pois é mais rápido codificar o hash (que possui tamanho fixo e reduzido) do que a informação toda.
 CERTIFICADO DIGITAL
Registro eletrônico composto por um conjunto de dados que distingue uma entidadee associa a ela uma chave pública. Ele pode ser emitido para pessoas, empresas, equipamentos ou serviços na rede (por exemplo, um site Web) e pode ser homologado para diferentes usos, como confidencialidade e assinatura digital.
Um certificado digital pode ser comparado a um documento de identidade, por exemplo, o seu passaporte, no qual constam os seus dados pessoais e a identificação de quem o emitiu. No caso do passaporte, a entidade responsável pela emissão e pela veracidade dos dados é a Polícia Federal. No caso do certificado digital esta entidade é uma Autoridade Certificadora (AC).
Uma AC emissora é também responsável por publicar informações sobre certificados que não são mais confiáveis. Sempre que a AC descobre ou é informada que um certificado não é mais confiável, ela o inclui em uma "lista negra", chamada de "Lista de Certificados Revogados" (LCR) para que os usuários possam tomar conhecimento. A LCR é um arquivo eletrônico publicado periodicamente pela AC, contendo o número de série dos certificados que não são mais válidos e a data de revogação.
De forma geral, os dados básicos que compõem um certificado digital são:
Versão e número de série do certificado;
Dados que identificam a AC que emitiu o certificado;
Dados que identificam o dono do certificado (para quem ele foi emitido);
Chave pública do dono do certificado;
Validade do certificado (quando foi emitido e até quando é válido);
Assinatura digital da AC emissora e dados para verificação da assinatura.
 CUIDADOS A SEREM TOMADOS
Proteja seus dados:
Utilize criptografia sempre que, ao enviar uma mensagem, quiser assegurar-se que somente o destinatário possa lê-la;
Utilize assinaturas digitais sempre que, ao enviar uma mensagem, quiser assegurar ao destinatário que foi você quem a enviou e que o conteúdo não foi alterado;
Só envie dados sensíveis após certificar-se de que está usando uma conexão segura (mais detalhes na Seção 10.1 do Capítulo Uso seguro da Internet);
Utilize criptografia para conexão entre seu leitor de e-mails e os servidores de e-mail do seu provedor;
Cifre o disco do seu computador e dispositivos removíveis, como disco externo e pen-drive. Desta forma, em caso de perda ou furto do equipamento, seus dados não poderão ser indevidamente acessados;
Verifique o hash, quando possível, dos arquivos obtidos pela Internet (isto permite que você detecte arquivos corrompidos ou que foram indevidamente alterados durante a transmissão).
Seja cuidadoso com as suas chaves e certificados:
Utilize chaves de tamanho adequado. Quanto maior a chave, mais resistente ela será a ataques de força bruta (mais detalhes na Seção 3.5 do Capítulo Ataques na Internet);
Não utilize chaves secretas óbvias (mais detalhes na Seção 8.2 do Capítulo Contas e senhas);
Certifique-se de não estar sendo observado ao digitar suas chaves e senhas de proteção;
Utilize canais de comunicação seguros quando compartilhar chaves secretas;
Armazene suas chaves privadas com algum mecanismo de proteção, como por exemplo senha, para evitar que outra pessoa faça uso indevido delas;
Preserve suas chaves. Procure fazer backups e mantenha-os em local seguro (se você perder uma chave secreta ou privada, não poderá decifrar as mensagens que dependiam de tais chaves);
Tenha muito cuidado ao armazenar e utilizar suas chaves em computadores potencialmente infectados ou comprometidos, como em LAN houses, cybercafes, stands de eventos, etc;
Se suspeitar que outra pessoa teve acesso à sua chave privada (por exemplo, porque perdeu o dispositivo em que ela estava armazenada ou porque alguém acessou indevidamente o computador onde ela estava guardada), solicite imediatamente a revogação do certificado junto à AC emissora.
Seja cuidadoso ao aceitar um certificado digital:
Mantenha seu sistema operacional e navegadores Web atualizados (além disto contribuir para a segurança geral do seu computador, também serve para manter as cadeias de certificados sempre atualizadas);
Mantenha seu computador com a data correta. Além de outros benefícios, isto impede que certificados válidos sejam considerados não confiáveis e, de forma contrária, que certificados não confiáveis sejam considerados válidos (mais detalhes no Capítulo Segurança de computadores);
Ao acessar um site Web, observe os símbolos indicativos de conexão segura e leia com atenção eventuais alertas exibidos pelo navegador; 
Caso o navegador não reconheça o certificado como confiável, apenas prossiga com a navegação se tiver certeza da idoneidade da instituição e da integridade do certificado, pois, do contrário, poderá estar aceitando um certificado falso, criado especificamente para cometer fraudes (detalhes sobre como fazer isto na Seção 10.1.2 do Capítulo Uso seguro da Internet).
 LEGISLAÇÃO
O Projeto de Lei 3279/2012 dispõe sobre o uso de criptografia em peticionamento eletrônico.
O Congresso Nacional decreta:
Art. 1º. Esta Lei estabelece a obrigatoriedade do uso de criptografia em
peticionamento eletrônico.
Art. 2º. O caput do art. 2º da Lei nº 11.419, de 19 de dezembro de 2006, passa a vigorar com a seguinte redação:
"Art. 2º. O envio de petições, de recursos e a prática de atos processuais
em geral por meio eletrônico serão admitidos mediante uso de assinatura
eletrônica, na forma do art. 1º desta Lei, sendo obrigatório o
credenciamento prévio no Poder Judiciário, conforme disciplinado pelos
órgãos respectivos, bem como o uso de criptografia."(NR)
Art. 3º. Esta lei entra em vigor na data de sua publicação.
Justificação
A petição eletrônica foi introduzida em nosso ordenamento jurídico pela Lei
nº 11.419/2006 Tal sistema facilita a atividade jurídica e permite maior
celeridade processual.
Todavia alguns cuidados devem ser tomados, para que tal instrumento não
venha a ser utilizado a serviço de fraudes, por parte de pessoas
inescrupulosas.
Assim, o uso da petição eletrônica sem a certificação digital não garante a
integridade a veracidade dos dados transmitidos, o que possibilitará
interceptação, alteração do conteúdo e outros tipos de fraudes.
A salvaguarda dessas informações só será possível, se for adotada a
criptografia. Com estes recursos, evita-se a interceptação e alteração do
conteúdo da petição.
Trata-se portanto de preservar as partes e garantir que o seu direito de
acesso ao Judiciário não venha a ser tolhido, por meio de artifícios
fraudulentos.
O uso de artimanhas processuais para impedir o exercício de direitos é uma
realidade constatada, ao longo da História, em diversos tribunais.
Na era da informática não seria diferente e há muitos hackers atuando, hoje
em dia, em diversas áreas informatizadas, o que comprova a necessidade de
cuidados especiais com as informações que transitam na rede.
Todas as instituições que se valem da informática em sua atuação utilizam os
mais modernos recursos para evitar a invasão em seus sistemas.
O Judiciário não pode descuidar dessas medidas preventivas, nos diferentes
procedimentos adotados, na tramitação dos processos sob sua jurisdição.
Afinal, esse é também um requisito para a efetivação de uma prestação
jurisdicional de excelência. De nada adiantaria garantir direitos por meio
da legislação em vigor, se as partes estiverem vulneráveis a fraudes
processuais, que lhes impeçam de exercer os direitos legalmente tutelados.
Por essa razão, apresento este Projeto de Lei, com a finalidade de alterar o
art. 2º da lei 11.419/2006, para que a criptografia seja implantada
obrigatoriamente no peticionamento eletrônico.
Para garantir o livre acesso das partes ao Judiciário e a lisura dos
procedimentos judiciais, conto com o apoio dos ilustres Parlamentares na
aprovação deste Projeto de Lei.
TIPOS DE CRIPTOGRAFIA
No caso das Chaves (tanto Simétrica quanto Assimétrica), o nível de segurança de uma criptografia é medido no número de bits, ou seja, quanto mais bits forem usados, mais difícil será quebrar a criptografia na força bruta.
Ex: Se tivermos uma criptografia de 10bits, existirão apenas 2¹º (ou 1024) chaves, porém, ao usarmos 64 bits, o número de chaves possíveis subirá para aproximadamente 20 x 10^18 chaves, um número alto até mesmo para um computador.
No caso da função Hash, o nível de segurança é dado pela dificuldade de se criar colisões intencionais, evitando que haja sequência iguais para dados diferentes.
Criptografia de Hash
A criptografia hash permite que, através de uma string de qualquer tamanho, seja calculado um identificador digital de tamanho fixo, chamado de valor hash. O valor hash geralmente é formado por 16 bytes (no caso do MD-2, MD-4 e MD- 5) ou 20 bytes (no caso do SHA-1), mas pode se estender, embora não passe de 512 bytes.
Seja uma função hash H, e x uma string qualquer, teremos que H(x) será o valor hash para a string x.
As características básicas de uma função hash são:
O valor de entrada da função possui qualquer tamanho;
O valor de saída da função possui tamanho fixo;
H(x) é relativamente fácil de ser computado, para qualquer valor de x;
H(x) é uma função “one-way”;
H(x) é livre de colisão.
Uma função hash é dita "one-way” pois uma vez obtido o valor hash  h para uma string x, é computacionalmente impossível fazer o processo inverso, ou seja, encontrar um valor x tal que H(x) = h.   
Diz-se ainda que H(x) é livre de colisão, significando que as funções hash devem garantir uma probabilidade mínima de que duas strings diferentes acabem por resultar no mesmo valor hash. Qualquer alteração na string original que deu origem ao identificador digital, mesmo que de um único bit, acabará por gerar uma alteração significativa no valor hash final.
Chaves Simétricas 
É o tipo mais simples de criptografia, já que tanto o emissor quanto o receptor da mensagem possuem a mesma chave, ou seja, a mesma chave é usada tanto na codificação quanto na decodificação.
Para ser realizada, basta que o emissor, antes de enviar a mensagem criptografada, envie a chave privada que será utilizada para descriptografá-la.
Existem diversos algoritmos criptográficos que fazem uso da Chave Simétrica, tais como:
 - DES (Data Encryption Standard)
Criado pela IBM em 1977, usa criptografia de 56 bits, o que corresponde a cerca de 72 quadrilhões de chaves diferentes. Apesar de ser um valor bastante alto, foi quebrado por em 1997 por força bruta (tentativa e erro), em um desafio feito na Internet.
 	- IDEA (Internacional Data Encryption Algorithm)
Criado em 1991 por Massey e Xuejia Lai, utiliza chaves de 128 bits com uma estrutura semelhante ao anteriormente citado DES, porém, possui uma implementação mais simples.
 - RC (Ron’s Code ou Rivest Cipher)
Desenvolvido por Ron Rivest, é largamente utilizado em e- mails. Possui diversas versões (RC2, RC4, RC5 e RC6), com chaves que vão de 8 à 1024 bits
Podemos citar ainda o 3DES, o Twofish e o Blowfish, entre outros.
Porém, a Chave Simétrica apresenta alguns problemas graves, tais como a necessidade da troca constante dessas chaves e a impossibilidade de serem usados com fins de autentificação (já que a transmissão da chave privada de um para o outro pode não ser segura e acabar caindo em outras mãos), apesar de seus algoritmos serem mais rápidos do que os algoritmos assimétricos.
Chaves Assimétricas 
Diferentemente do método de Chave Simétrica, esse tipo utiliza 2 chaves, uma pública e uma privada. O sistema funciona da forma que alguém cria uma chave e envia essa chave à quem quiser mandar informações à ela, essa é a chamada chave pública. Com ela é feita a codificação da mensagem. Para decodificação será necessário utilizar uma outra chave que deve ser criada, a chave privada – que é secreta.
Esse esquema de chaves pública e privada atuando em conjunto funciona muito bem, principalmente quando queremos garantir a confiabilidade nos dados, já que somente o proprietário da chave privada será capaz de descriptografar a mensagem e vice-versa (nem mesmo o dono da chave pode descriptar a mensagem que ele encriptou, a não ser que ele possua a outra chave), ou seja, mesma que ela caia em “mãos erradas”, essa pessoa não será capaz de lê-la.
Existem diversos algoritmos criptográficos que fazem uso da Chave Simétrica, tais como:
   	   - RSA (Rivest, Chamir e Adleman)
     	Criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman, é um dos algoritmos de chave assimétrica mais utilizados. Seu funcionamento consiste na multiplicação de 2 números primos muito grandes para a geração de um terceiro número. Para quebrar essa cripografia, seria necessário a fatoração desse número para encontrar os 2 números primos que o geraram, porém, para isso é necessário um poder muito alto de processamento, o que acaba inviabilizando a tarefa. A chave privada são os dois números primos e a pública é o terceiro número.
    	  - ElGamal
  	Desenvolvido por Taher ElGamal, faz uso de um algoritmo conhecido como “logaritmo discreto” para se tornar seguro. É frequente seu uso em assinaturas digitais.
Podemos citar ainda o DSS (Digital Signature Standard), entre outros.
Assim como a Chave Simétrica, a Assimétrica também tem seus problemas. A utilização de algoritmos reversos para descriptação de mensagens acaba por elevar o tempo computacional dos algoritmos de criptografia assimétrica, tornando inviável o seu uso em uma comunicação intensa.
Combinação dos Tipos 
Com os dois tipos de Chaves (Simétrica e Assimétrica) tendo suas vantagens e desvantagens, era natural o surgimento um método que buscasse mixar as vantagens de cada um, eliminando assim, suas desvantagens.
    	Os protocolos TLS (Transport Layer Security) e SSL (Secure Sockets Layer) são exemplos desse mix. Para compensar o problema do segredo pré-estabelecido da chave simétrica e o alto poder computacional necessário na chave simétrica, foi elaborado um meio onde em sua primeira etapa (handshake), seja utilizado a criptografia assimétrica, autenticando assim os nós e combinando uma chave secreta para um uso posterior na criptografia simétrica. Como o algoritmo de chave pública garante que a negociação foi realizada em um canal seguro, não havendo a necessidade da troca periódica da chave (problemas no caso da Chave Simétrica), todo o restante do processo pode passar a ser realizado utilizando algoritmos de chave simétrica, o que diminui potencialmente a necessidade do poder computacional, permitindo seu uso em uma comunicação mais intensa (problemas encontrados na Chave Assimétrica).
CONCLUSÃO 
 
 Os métodos desenvolvidos ate o tempo de hoje para proteção de dados, esta cada dia avançando mais, com diversas formas de embaralhar a informação proporcionando uma maior segurança para os usuários, que precisão de proteção para suas informações sigilosas.
REFERÊNCIAS
Projeto de Lei prevê uso exclusivo de criptografia para peticionamento eletrônico. Disponível em: <http://www.dnt.adv.br/noticias/processo-eletronico/projeto-de-lei-preve-uso-exclsuivo-de-criptografia-para-peticionamente-eletronico/> Acesso em: 17/05/2014
Criptografia. Disponível em: <http://cartilha.cert.br/criptografia/> Acesso em: 17/05/2014 
PL 3279/2012. Disponível em: <http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=535228> Acesso em: 17/05/2014.
Tipos de Criptografia. Disponível em: < http://www.gta.ufrj.br/grad/07_1/ass-dig/TiposdeCriptografia.html> Acesso em: 17/05/2014

Outros materiais

Perguntas Recentes