6. Protocolos para Internet
7.4 Mecanismos de Segurança
Uma política de segurança pode ser implementada com a utilização de vários mecanismos. A seguir são discutidos alguns dos principais mecanismos de segurança adequados a ambientes de comunicação de dados.
7.4.1 Descoberta e Remoção de Vírus
O software antivírus é projetado para descobrir e remover vírus usando técnicas como monitorar atividade e comportamento incomum de programas, conferir arquivos para verificar contaminação, e procurar assinaturas de vírus.
7.4.2 Controle de Acesso
Os mecanismos de controle de acesso são usados para garantir que o acesso a um recurso é limitado aos usuários devidamente autorizados.
O acesso a workstations e aplicações pode ser controlado usando técnicas de hardware e de software. Uma forma de controle por hardware é requisitar um token, como um cartão magnético. Uma forma de controle por software consiste em associar o acesso a arquivos, aplicações, hardware e periféricos a uma senha.
7.4.3 Controle de Acesso Remoto
Usando uma seleção de hardware e software é possível reduzir o risco de um sistema de acesso remoto.
7.4.3.1 Callback
A técnica de callback faz com que depois que uma conexão é realizada, o computador termine a conexão e ligue de volta ao modem que fez a chamada.
7.4.3.2 Criptografia de Senhas
Todo sistema deve prover criptografia de senha. Ao invés de transmitir uma senha em claro para autenticação (que pode ser facilmente capturada e usada por um invasor), a senha deve ser codificada antes da transmissão, e então decodificada pelo destino.
7.4.3.3 Senhas Dinâmicas
A técnica de senha dinâmica assegura que as senhas são mudadas a cada vez que o sistema é usado, e que não há nenhum padrão em sua criação.
7.4.4 Criptografia
A criptografia surgiu da necessidade de se enviar informações sensíveis através de meios de comunicação não confiáveis. Utiliza-se um método que modifique o texto original da mensagem a ser transmitida, gerando um texto criptografado na origem. O texto criptografado é então transmitido e, no destino, o processo inverso ocorre (o texto criptografado é transformado no texto original).
Da forma como foi apresentado, sempre que um intruso conseguisse descobrir o método utilizado (quebrasse o código de criptografia) seria necessário substituir o método de criptografia. Isto levou ao desenvolvimento de um novo modelo, onde o texto criptografado gerado a partir do texto normal varia de acordo com uma chave de codificação utilizada para o mesmo método de criptografia. Assim, para um mesmo texto normal e um mesmo método de criptografia, chaves diferentes produzem textos criptografados diferentes.
Um bom método de criptografia deve garantir que seja muito difícil que um intruso recupere, a partir do texto criptografado e do conhecimento sobre o método de criptografia, o valor da chave.
Os métodos de criptografia que utilizam a mesma chave para codificação e decodificação são classificados como simétricos, também conhecidos como baseados em chave secreta.
Um dos principais métodos de criptografia baseado em chave secreta é o DES (Data
Encryption Standard), desenvolvido pela IBM. O DES codifica blocos de 64 bits de texto normal
gerando 64 bits de texto criptografado. O algoritmo de codificação é parametrizado por uma chave de 56 bits e possui 19 estágios diferentes. O primeiro estágio realiza uma transposição dos bits do texto independente da chave. O último estágio realiza uma transposição inversa a do primeiro estágio. O penúltimo estágio realiza a permutação dos 32 bits mais significativos com os 32 bits menos significativos do bloco de dados. Os outros 16 estágios são funcionalmente idênticos (executam a mesma transformação nos dados, transposições e substituições), porém são parametrizados por chaves obtidas pela aplicação de funções que variam de um estágio para outro, nos bits da chave original. O método permite que a decodificação seja feita com a mesma chave usada na codificação.
O principal problema dos algoritmos de criptografia simétricos é a exigência de que o transmissor e o receptor de uma mensagem conheçam a chave secreta, que é usada na codificação e na decodificação. Se a chave for interceptada, o responsável pelo ataque poderá ler todas as mensagens que serão criptografadas utilizando a referida chave. Um complicador é que em um sistema com n usuários, comunicando-se dois a dois, são necessárias n2 chaves secretas.
Em 1976 foi proposto um novo método que revolucionou os sistemas de criptografia. O método baseia-se na utilização de chaves distintas: uma para a codificação (E) e outra para a decodificação (D), escolhidas de forma que a derivação de D a partir de E seja, em termos práticos, senão impossível, pelo menos muito difícil.
Uma vez respeitada essa condição, torna-se a chave E pública. Os métodos de criptografia que exibem essa característica são denominados assimétricos, também conhecidos como baseados
em chave pública.
O mais importante método de criptografia assimétrico é o RSA, cujo nome deriva das iniciais dos autores (Rivest, Shamir e Adleman). O método RSA baseia-se na dificuldade de se fatorar números muito grandes. Para usar o RSA, deve-se tomar dois números primos p e q, com centenas de bits de comprimento, e calcular n = p×q. Em seguida deve-se obter um número d, tal que d e (p- 1)×(q-1) sejam primos entre si. Deve-se obter também um número e tal que o resto da divisão de
e×d por (p-1)×(q-1) seja igual a 1.
Uma vez escolhidos números que satisfaçam estas condições, pode-se utilizar o par (e, n) como chave pública e o par (d, n) como chave privada. A codificação do texto normal P é realizada através da aplicação da operação:
C = Pe (mod n)
A decodificação é executada aplicando-se a mesma operação utilizando d como expoente: P = Cd (mod n)
O único modo conhecido de recuperar o valor de d conhecendo o valor de e envolve a fatoração de n. Fatorando n é possível encontrar p e q e com base nesses valores calcular (p-1)×(q-1). Conhecendo (p-1)×(q-1) e o valor de e pode-se calcular o valor de d. A segurança do
segundo problema é utilizar métodos assimétricos para codificar uma chave de um método simétrico, e usar o método simétrico para codificar o texto.
7.4.5 Assinatura Digital
Um sistema de assinatura digital deve fornecer um mecanismo que permita enviar uma mensagem assinada para outra parte de forma que:
• O receptor possa verificar a identidade alegada pelo transmissor. • O transmissor não possa negar o conteúdo da mensagem.
• O receptor não possa alterar a mensagem.
O mecanismo de assinatura digital envolve dois procedimentos: assinatura de uma unidade
de dados e verificação da assinatura em uma unidade de dados. O primeiro procedimento baseia-se
em informação privada do signatário. O segundo utiliza informação pública para reconhecer a assinatura.
O procedimento envolve a codificação da unidade de dados completa ou a codificação de uma parte da unidade de dados, ambos utilizando informação privada do signatário. O texto criptografado é codificado com a chave privada do usuário.
O procedimento de verificação envolve a utilização de um método e uma chave públicos para determinar se a assinatura foi produzida com a informação privada do signatário. No procedimento de verificação, o verificador utiliza a chave pública do signatário para decodificar a mensagem.
7.4.6 Compromisso de Terceiro
O mecanismo de compromisso baseia-se no conceito de um terceiro parceiro de confiança (uma espécie de tabelião ou notário) que atesta certas propriedades da informação intercambiada entre duas entidades, como sua origem, sua integridade, ou o momento em que ela foi enviada ou recebida.
7.4.7 Hardware e Software de Confiança
Algumas das entidades que fazem parte de um sistema devem fornecer garantias que funcionam corretamente, para que se possa confiar nos mecanismos de segurança que implementam a política de segurança do sistema. Para garantir o funcionamento correto deve-se exigir: a aplicação de métodos formais de prova, verificação e validação; a detecção e o registro das tentativas de ataque identificadas; e, adicionalmente, que a entidade tenha sido construída por pessoal de confiança em um ambiente seguro. Precauções também são necessárias para garantir que a entidade não seja acidentalmente ou deliberadamente adulterada com o intuito de comprometer seus mecanismos de segurança durante seu ciclo operacional.
7.4.8 Detecção e Informe de Eventos
A detecção de eventos relevantes no contexto da segurança inclui a detecção de aparentes violações à segurança e deve incluir, adicionalmente, a detecção de eventos normais, como um acesso bem sucedido ao sistema. Esse mecanismo necessita do apoio de uma função de gerenciamento que determina quais são os eventos que devem ser detectados.
7.4.9 Registro de Eventos
O registro de eventos que podem significar ameaças à segurança de um sistema constitui-se em um importante mecanismo de segurança, pois possibilita a detecção e investigação de possíveis violações da segurança de um sistema, além de tornar possível a realização de auditorias de segurança.
auditoria de segurança e a análise das informações armazenadas nesse arquivo para geração de relatórios. A segunda tarefa é uma função de gerenciamento de segurança, e não um mecanismo.
O mecanismo de arquivamento de informações para auditoria de segurança deve permitir a definição de qual informação deve ser registrada e sob que condições a informação deve ser registrada.