UNICAMP
IA368
Prof. Ivan Ricarte
Prof. Leo Pini Magalhães
Aluno Rossano Pablo Pinto
RA 973273
SEGURANÇA
"Tendências"
SEGURANÇA
"Tendências"
Abstract
The first part of this document presents a brief security chronology, which is ordered by date of implementation. The second part lists some proposals in security, presented as Internet Drafts, which are submitted to IETF and also presents some brazilian banks security systems. At the end, two recent technologies in security are presented, CDSA and CryptoAPI. The focus of this document wil be on these two technologies.
Resumo
A primeira parte deste documento apresenta uma breve cronologia da segurança em rede, ordenadas por data de implementação. A segunda parte relaciona algumas propostas em segurança apresentadas nos Internet Drafts da IETF e sistemas de segurança utilizados em bancos brasileiros. Ao final são apresentadas duas tecnologias atuais em segurança, CDSA e CryptoAPI. Eu darei maior ênfase nestas duas tecnologias.
Introdução
Existem várias técnicas utilizadas para tentar garantir a segurança em rede. Técnicas estas que são empregadas nas várias camadas do modelo OSI de referência, tentam garantir os seguintes aspectos:
As técnicas atuais para garantir os aspectos citados são:
No contexto da Internet, a maior preocupação está em autenticar mensagens utilizando criptografia, impossibilitando que sejam alteradas e/ou inseridas novas mensagens por uma pessoa não envolvida na comunicação, pois muitas vezes é mais importante a procedência do que o próprio conteúdo da mensagem.
Cada uma das técnicas citadas podem ser empregadas em uma ou mais camadas ao mesmo tempo, formando uma hierarquia que pode trabalhar em conjunto, podendo até mesmo ser redundante em alguns casos.
Breve cronologia da segurança em rede
A preocupação com a segurança em rede aumenta com o crescimento do número de usuários utilizando-a. Atualmente não existe mais barreira para a interconexão e comunicação entre equipamentos e software de diferentes plataformas, viabilizando os ataques (invasão, destruição, roubo, espionagem, alteração, vírus etc..) à qualquer máquina conectada em uma rede. A preocupação existe há muito tempo e as técnicas para tentar garantir a segurança em rede tem evoluído de acordo com a necessidade. Será apresentada aqui uma linha do tempo com o objetivo de retratar uma evolução histórica.
A criptografia foi o primeiro método inventado para tentar garantir que uma mensagem não fosse interpretada por alguém diferente do destinatário e já era utilizada muito antes de qualquer computador ser inventado. As maiores contribuições na criptografia atual vieram dos militares, os quais definiram as bases para a tecnologia.
Outras tecnologias que merecem ser citadas são:
Internet Drafts
Os Internet Drafts constituem-se de documentos organizados e disponibilizados na WEB pela IETF (Internet Engineering Task Force). Estes documentos apresentam propostas de grupos associados à IETF e individuais. Procurei organizar tais propostas em categorias neste documento, as quais representam as camadas do modelo OSI (Figura 1.) em que estas tecnologias atuam. A camada de enlace não será abordada, apesar de existirem maneiras de à utilizar, bem como a camada física para implementação de sistemas de segurança.
Dentre os Internet Drafts lidos, a grande maioria apresenta propostas de extensões à mecanismos de segurança já existentes e em utilização, sejam elas referentes ao modo de criptografar, se utiliza chave simétrica ou não, tamanho das chaves etc..
As propostas citadas abaixo são poucas, muitas outras estavam disponíveis quando pesquisadas. Estas foram escolhidas pelo grau de interesse despertado durante a leitura. As propostas estão divididas em grupos em cada camada. O número de documentos em cada grupo é apresentado, no entanto apenas alguns são citados aqui. Para maiores referências acesse a página da IETF, que quando este documento for lido já estará desatualizado com relação as propostas.
Categoria I Rede
A Figura 2 apresenta um exemplo de criptografia na camada de rede.
Categoria II Transporte
Segundo afirmações de Tanenbaum[4], nesta camada é possível criptografar conexões inteiras, oferecendo sigilo às partes comunicantes. A Figura 3 exemplifica a criptografia na camada de transporte.
Categoria III Sessão
Não encontrou-se propostas nesta categoria.
Categoria IV Apresentação
Não encontrou-se propostas nesta categoria.
Categoria V Aplicação
Esta categoria é a que mais abriga propostas e soluções concretas em segurança.
A Figura 4 exemplifica protocolos nas várias camadas do modelo OSI.
Segurança em Bancos brasileiros
Devido à imposição das leis norte-americanas, o SSL utilizava chaves de 40 bits em browsers utilizados fora dos E.U.A.. O SSL de 128 bits só foi liberado nas versões 4.0 e superiores do Netscape e Internet Explorer. Os bancos não podiam esperar e criaram suas próprias soluções. As restrições com relação à novos métodos em segurança, geralmente algoritmos matemáticos para criptografia, são fortemente controladas pelo governo norte-americano chegando ao ponto de proibir a exportação de livros ou CDs, ou seja, informações relacionadas ao assunto segurança. Esta restrição pôde ser comprovada na tentativa de compra de um CD com 12 livros sobre criptografia e segurança vendido pela revista Dr. Dobbs Journal. Eles simplesmente recusaram o pedido de compra do CD e passou-se a publicar na revista que este CD só estaria disponível para leitores do Canadá e E.U.A.. Segue-se a seguir alguns exemplos de soluções implementadas nos bancos brasileiros:
RCML (Remote Control Management Language da EverSystems) é uma tecnologia genérica que permite desenvolver aplicações cliente/servidor que manipulem transações com segurança.
Executado através de um plug-in instalado no browser, o qual deve ser adquirido junto aos bancos. Oferece:
Os dados serão primeiramente criptografados pelo SSL e depois pela camada de segurança da RCML.
Solução baseada no SSL de 40 bits e incrementos de segurança implementados em Java que utiliza criptografia baseada no algoritmo RSA. Trata-se de um segundo navegador que trabalha com chave de 128 bits.
Solução utilizando o SSL de 40 bits do próprio browser + Solução proprietária com chave de 128 bits.
WSP (Web Security Protocol da Unitools) As chaves do WSP podem variar de tamanho, mas na maioria dos casos utiliza-se chave de 128 bits. O banco utiliza chave de 160 bits. Implementado através de um plug-in adquirido junto ao banco através da Internet (download do plug-in).
Duas tecnologias atuais em segurança
CDSA - Common Data Security Architecture
É um conjunto de serviços disposto em camadas que oferece serviços de segurança para aplicações conforme mostra a Figura 5. A camada mais baixa oferece componentes fundamentais como algoritmos de criptografia, por exemplo. As camadas mais altas oferecem certificados digitais, mecanismos de gerenciamento de chaves e protocolos para transações seguras. Esta arquitetura foi criada e desenvolvida pela Intel e está na versão 1.1. A razão de escolha desta tecnologia para ser apresentada foi o fácil acesso ao material e uma certa simpatia pela maneira pela qual esta foi apresentada.
System Security Services Layer
CSSM Common Security Services Manager Layer
Esta é a camada principal do CDSA.
Esta API deve permitir que as aplicações busquem e selecionem objetos de dados armazenados e também retornar meta-informação (nome, data da última modificação, tamanho etc..)
Security Add-in Modules
Esta camada é categorizada em quatro serviços básicos:
Cada instância de um módulo Add-in deve ser instalada pelo CSSM para que esteja disponível para utilização no sistema.
Microsoft CryptoAPI
Estas APIs fornecem interfaces de funções para assinatura digital para utilização em aplicações Windows de 32bits.
A potencialidade destas APIs está na forma em que estas são implementadas. São DLLs conhecidas como CSPs (Cryptographic Service Providers) (Alguma semelhança com o CDSA?). Mudanças podem ser feitas nas DLLs sem ter que mudar a interface das funções. Isto quer dizer quando uma nova técnica ou algoritmo for desenvolvido, basta criar DLLs utilizando-se destas e estarão disponíveis para as APIs.
A CryptoAPI da Microsoft oferece seis funções:
Para poder utilizar a CryptoAPI deve-se seguir os seguintes passos:
Ficção
No filme Johnny Mnemonic utiliza-se como chave para criptografar uma certa quantidade de dados, uma imagem adquirida aleatoriamente durante a programação normal de uma dada emissora. Uma cópia da imagem é impressa em um papel que servirá para descriptografar a mensagem quando chegar ao seu destino.
Em um outro filme, não me lembro o nome, um certo matemático inventou um algoritmo matemático que era capaz de quebrar qualquer chave criptográfica em questão de segundos, o qual foi implementado em hardware.
Conclusão
Todas as coisas de uma forma geral sofrem uma evolução contínua. Na área da tecnologia a visão desta evolução é mais fácil de ser notada. As técnicas em segurança evoluem e os ataques também. O problema é que existem pessoas empenhadas em desenvolver novas técnicas e outras preocupadas em quebrar ou burlar estas. Estas últimas podem ter causas nobres ou não. Uma causa nobre seria descobrir falhas de segurança nesta nova técnica. A facilidade de uso de APIs para fornecer serviços de segurança é um fator importante para emprego de novos algoritmos criptográficos e o poder inerente às DLLs que podem ser atualizadas sem ter que mudar as APIs. Além da CryptoAPI apresentada, que é utilizada apenas para assinatura digital, existem outras APIs genéricas. Temos como exemplo a GSS-API, que fornece uma interface genérica para aplicações que desejam oferecer segurança. Outra ferramenta relativamente nova que oferece serviços de segurança é a linguagem de programação JAVA.
Glossário
Referências