do material sobre Segurança de Redes

Propaganda
1. SEGURANÇA EM REDES DE COMPUTADORES
1.1 Conceitos Básicos
A segurança está relacionada à necessidade de proteção contra o
acesso ou manipulação, intencional ou não, de informações
confidenciais por elementos não autorizados, e a utilização não
autorizada do computador ou de seus dispositivos periféricos. A
necessidade de proteção deve ser definida em termos das possíveis
ameaças e riscos e dos objetivos de uma organização, formalizados nos
termos de uma política de segurança.
1.1.1 Ameaças e Ataques
Uma ameaça consiste em uma possível violação da segurança de um
sistema. Algumas das principais ameaças às redes de computadores
são:





Destruição de informações ou de outros recursos.
Modificação ou deturpação da informação.
Roubo, remoção ou perda de informação ou de outros recursos.
Revelação de informação.
Interrupção de serviços.
Ameaças Acidentais são as que não estão associadas à intenção
premeditada.
Ameaças Intensionais variam desde a observação dos dados com
ferramentas simples de monitoramento de redes, a ataques sofisticados
baseados no conhecimento do funcionamento do sistema. A realização
de uma ameaça intencional configura em um ataque.
Ameaças Passivas são as que, quando realizadas, não resultam em
qualquer modificação nas informações contidas em um sistema, em sua
operação ou em seu estado.
Ameaças Ativas envolvem a alteração da informação contida no
sistema, ou modificações em seu estado ou operação.
Alguns dos principais ataques que podem ocorrer em um ambiente de
processamento e comunicação de dados são os seguintes:
Personificação (masquerade): uma entidade faz-se passar por outra.
Replay: uma mensagem, ou parte dela, é interceptada, e posteriormente
transmitida para produzir um efeito não autorizado.
Modificação: O conteúdo de uma mensagem é alterado implicando em
efeitos não autorizados sem que o sistema consiga detectar a alteração.
Recusa ou Impedimento de Serviço: ocorre quando uma entidade não
executa sua função apropriadamente ou atua de forma a impedir que
outras entidades executem suas funções.
Ataques Internos: ocorrem quando usuários legítimos comportam-se de
modo não autorizado ou não esperado.
Armadilhas (trapdoor): ocorre quando uma entidade do sistema é
modificada para produzir efeitos não autorizados em resposta a um
comando (emitido pela entidade que está atacando o sistema) ou a um
evento, ou seqüência de eventos, predeterminado.
Cavalo de Tróia: nesse ataque, uma entidade executa funções não
autorizadas, em adição às que está autorizada a executar. Um
procedimento de login modificado, que, além de sua função normal de
iniciar a sessão de trabalho dos usuários, grava suas senhas em um
arquivo desprotegido, é um exemplo de Cavalo de Tróia.
1.1.2 Política de Segurança
Uma política de segurança é um conjunto de leis, regras e práticas que
regulam como uma organização gerencia, protege e distribui suas
informações e recursos.
Um dado sistema é considerado seguro em relação a uma política de
segurança, caso garanta o cumprimento das leis, regras e práticas
definidas nessa política.
Uma política de segurança deve incluir regras detalhadas definindo
como as informações e recursos da organização devem ser
manipulados ao longo de seu ciclo de vida, ou seja, desde o momento
que passam a existir no contexto da organização até quando deixam de
existir.
As regras que definem uma política de segurança são funções das
designações de sensibilidade, associadas aos recursos e informações
(por exemplo não classificado, confidencial, secreto e ultra-secreto), do
grau de autorização das entidades (indivíduos ou processos agindo sob
o comando de indivíduos) e das formas de acesso suportadas por um
sistema.
A implementação de uma política de segurança baseia-se na aplicação
de regras que limitam o acesso de uma entidade às informações e
recursos, com base na comparação do seu nível de autorização relativo
a essa informação ou recurso, na designação da sensibilidade da
informação ou recurso e na forma de acesso empregada. Assim, a
política de segurança define o que é, e o que não é permitido em termos
de segurança, durante a operação de um dado sistema. A base da
política de segurança é a definição do comportamento autorizado para
os indivíduos que interagem com um sistema.
Política de Segurança Baseada em Regras: Regras baseadas em
atributos de sensibilidade genéricos; entidade com grau de segurança
não classificado, confidencial, secreto ou ultra-secreto.
Política de Segurança Baseada em Identidade: Regras baseadas em
atributos individuos específicos; o nome ou identificador da entidade no
sistema.
A autorização em uma política de segurança baseada em regras
normalmente apóia-se em informações sobre sensibilidade.
Em um sistema seguro, os dados ou recursos devem ser marcados com
rótulos de segurança que indicam o nível de sensibilidade. Os processos
atuando sob o controle de indivíduos devem adquirir os rótulos de
segurança apropriados, que definem o nível de autorização do indivíduo
que o está controlando.
As regras desse tipo de política utilizam os rótulos dos recursos e dos
processos para determinar o tipo de acesso que pode ser efetuado. No
caso de uma rede de computadores, os dispositivos que implementam
os canais de comunicação também possuem rótulos de segurança.
Nesse caso, as regras que definem a política de segurança também
determinam quando é, ou não, permitindo transmitir dados nesses
canais, isto é, informações sensíveis só podem ser transmitidas em
canais que ofereçam o nível de segurança adequado.
As políticas de segurança baseadas na identidade representam o tipo de
controle de acesso mais encontrado nos computadores atuais. A base
desse tipo de segurança é que um indivíduo, ou processo operando sob
seu controle, pode especificar explicitamente os tipos de acesso que
outros indivíduos podem ter às informações e recursos sob seu controle.
O objetivo desse tipo de política é permitir a implementação de um
esquema de controle de acesso que possibilite especificar o que cada
indivíduo pode ler, modificar ou usar.
1.1.3 Mecanismos de Segurança
Uma política de segurança pode ser implementada com a utilização de
vários mecanismos. Alguns dos principais mecanismos de segurança
adequados a ambientes de comunicação de dados são:
Criptografia
Surgiu da necessidade de se enviar informações sensíveis de meios de
comunicação não confiáveis, ou seja, em meios onde não é possível
garantir que um intruso não irá interceptar o fluxo de dados para leitura
(intruso passivo) ou para modificá-lo (intruso ativo).
A forma de contornar esse problema é utilizar um método que modifique
o texto original da mensagem a ser transmitida (texto normal), gerando
texto criptografado na origem, através de um processo de codificação
definido por método de criptografia.
O conhecimento dessa metodologia é antigo. Com o advento dos
computadores ela se tornou uma parte indispensável da segurança
moderna, sendo empregada no ambiente computacional para proteção
dos dados de pessoas não autorizadas.
Criptografia vem da palavra grega kryptos = "escondida" e graphia =
"escrever".
Criptografar significa transformar uma mensagem em outra
("escodendo" a mensagem original), usando para isso, funções
matemáticas e uma senha especial, chamada chave.
Os métodos de criptografia têm sido divididos em duas categorias: as
cifras de substituição e as de cifras de transposição.
Cifras de Substituição
Cada letra ou grupo de letras é substituída por outra letra ou grupo de
letras.
EXEMPLO:
Cada uma das 26 letras do alfabeto tem seu correspondente em
outra letra.
a b c d e f G h i j k l m n o p q r s t u v w x y z
Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
Esse sistema é conhecido como substituição monoalfabética, sendo a
chave o string de 26 letras correspondente ao alfabeto. Substituindo as
letras da palavra "atacar" pela correspondente resultaria em "qzqeqk".
Todavia em um texto pequeno, a cifra poderia ser descoberta
facilmente. Pois o intruso começaria contando as letras mais freqüentes
do texto cifrado e depois disso ele atribuiria a letra "a" à letra mais
comum.
Em seguida ele poderia verificar os trigamas e encontrar um no formato
gXi, o que poderia sugerir que X poderia ser "u". Embora a criptografia
moderna utilize as mesma idéias básicas da substituição tradicional, sua
ênfase atual é diferente, ela tem como objetivo tornar o algoritmo
complexo e emaranhado para que o intruso não seja capaz de obter
qualquer sentido da mensagem.
Cifras de Transposição
Muda a ordem das letras.
EXEMPLO:
Para cifrar o texto "transferir um mil", a cifra se baseia em uma
chave, que é uma palavra ou frase. Nesse exemplo é "disco".
A chave servirá de apoio para enumerar as colunas.
Palavra chave = "d i s c o"
(2 3 5 1 4)
A mensagem é escrita abaixo da chave, de 5 em 5 letras (que é a
mesma quantidade de letras da chave).
Palavra chave = "d i s c o"
(2 3 5 1 4)
trans
fer i r
ummil
O texto é lido na vertical, conforme a ordem dessas colunas,
resultando em "niitfuremsrlarm"
Chave
A chave consiste em um string que pode ser alterada sempre que
necessário. Desse modo o algoritmo de criptografia pode ser conhecido.
Quando o algoritmo se torna público, vários especialistas tentam
decodificar o sistema. Se após alguns anos nenhum deles conseguirem
a proeza, significa que o algoritmo é bom.
Tamanho da chave
O fator de trabalho para decodificar o método através de uma pesquisa
no espaço da chave é exponencial em relação ao tamanho da chave.
Por exemplo, uma chave com um tamanho de dois dígitos significa que
existem cem possibilidades, e um tamanho de chave de seis dígitos
significa um milhão de possibilidades, portanto quanto maior for a chave,
maior será o fator de trabalho com que o intruso terá de lidar.
Tipos de Chave
O tipo de chave usada depende do tipo da criptografia usada. Existem
dois tipos de criptografia:
 Criptografia simétrica, que usa uma chave privada.
 Criptografia de chave pública (assimétrica), que usa um par de
chaves, conhecida como chaves pública e privada.
Criptografia Simétrica
Uma única chave criptografa e decriptografa os dados. Ela é
relativamente pequena e rápida, contudo como desvantagem, não só o
transmissor deve conhecer a chave como também o receptor. Além
disso, o volume total dos dados transmitidos é limitado pelo tamanho da
chave.
É mais freqüentemente usada:
 Nas comunicações entre duas máquinas
 No armazenamento da informação em um disco rígido
Exemplos resumidos de algoritmos que usam criptografia simétrica:
 Crypt –– Programa de criptografia original do Unix. O método se
baseia em uma chave de comprimento variável.
 IDEA (International Data Encrypton Algorithm) –– O método se
baseia na utilização de uma chave de 128 bits, onde blocos de texto
da mensagem de entrada são alterados em uma seqüência de
interações, produzindo blocos de saída.
 DES (Data Encrypton Standard) –– Um dos principais métodos de
criptografia, baseado em chave secreta, desenvolvido pela IBM e
adotado pelo governo dos EUA, como método de criptografia padrão.
Algoritmo DES
O DES é basicamente uma cifra de substituição que utiliza um caracter
de 64 bits. Ele possui uma chave de 56 bits e seu algoritmo tem 19
estágios. O DES executa uma série de transposições, substituições, e
operações de recombinação em blocos de dados de 64 bits.
Inicialmente, os 64 bits de entrada sofrem uma transposição e são
colocados em uma função usando tabelas estáticas de transposição e
substituição (conhecidas como caixas-P e caixas-S).
EXEMPLO do funcionamento de uma caixa-P:
P significa "permuta", então se forem designados 8 bits de entrada
"01234567" será efetuada uma transposição (que irá mudar a ordem
dos números) . A saída dessa caixa-P será "36071245".
EXEMPLO do funcionamento de uma caixa-S:
S representa a substituição dos números por outros números.
Supondo que o número 0 seja substituído por 2, o 1 por 4, o 2 por 5,
o 3 por 0, o 4 por 6, o 5 por 7, o 6 por 1 e o 7 por 3. Para a entrada
"01234567" a substituição resultaria em "24506713".
Os estágios são parametrizados por diferentes funções da chave. A
função consiste em 4 etapas, que são executadas em seqüência.
1. Primeiro é feita uma transposição de 64 bits dos dados.
2. Os 16 estágios restantes são parametrizados por diferentes funções
da chave.
3. O penúltimo estágio troca os 32 bits da esquerda pelos 32 bits da
direita (os 32 bits representam uma divisão dos 64 bits).
4. O último estágio é o inverso da primeira transposição.
Em cada uma das 16 iterações, é utilizada uma chave específica. Antes
de se iniciar o algoritmo, uma transposição de 56 bits é aplicada à
chave.
Antes de cada iteração, a chave é particionada em duas unidades de 28
bits, sendo que cada uma delas é roteada para a esquerda por um
determinado número de bits. Em cada rodada, um subconjunto de 48
bits dos 56 bits é extraído e permutado. O algoritmo então executa a
transposição final e gera 64 bits.
Este algoritmo é estruturado de uma maneira que a mudança de
qualquer bit de entrada surta um efeito maior em quase todos os bits de
saída.
Texto
Normal
64
bits
T
R
A
N
S
P
O
S
I
Ç
Ã
O
E
S
T
Á
G
I
O
1
...
E
S
T
Á
G
I
O
...
N
E
S
T
Á
G
I
O
16
P
E
R
M
U
T
A
Ç
Ã
O
T
R
A
N
S
P
O
S
I
Ç
Ã
O
Texto
Criptografado
64
bits
Chave de Codificação
Criptografia de chave pública
Nesse método as chaves de criptografia e decriptografia são diferentes.
Quando uma chave criptografa um dado, a outra pode decriptografá-lo.
O usuário tem duas chaves, uma chave pública que é usada por todo
mundo que queira enviar mensagens a ele, e a chave privada que o
usuário utiliza para decriptografar as mensagens recebidas.
Aqui o usuário divulga sua chave pública para os outros, e mantém a
sua chave privada em sigilo. Poderia também ser ao contrário,
criptografar com chave privada e decriptografar com chave pública.
Nesse caso, não existe uma questão de segurança, mas de
identificação, certificando a origem do dado.
Algumas desvantagens desse método é o fato dele ser lento, volumoso
e as chaves não podem ser facilmente divididas. É mais freqüentemente
usado para certificar a origem do dado e integridade.
Exemplos resumidos de algoritmos que usam criptografia assimétrica:
Diffie-Hellman –– É um método para desenvolver e trocar uma chave
compartilhada sobre um canal de comunicação público utilizando
transformações matemáticas.
ElGamal –– É um método baseado na exponenciação e aritmética
modular.
RSA –– O mais importante método de criptografia assimétrico, cujo
nome deriva das iniciais dos autores Rivest, Shamir e Adleman.
Algoritmo RSA
O RSA usa duas chaves criptográficas, uma chave pública e uma
privada. A chave pública é usada para criptografar a mensagem e a
chave privada é usada para decriptografar a mensagem (pode ser viceversa). A segurança desse método se baseia na dificuldade de fatorar
números extensos.
Segundo seus pesquisadores, a fatoração de um número de 200 dígitos
requer 4 milhões de anos para ser processada; fatorar um número de
500 dígitos exige 1025 anos. Mesmo que os computadores se tornem
mais velozes, muito tempo irá passar até que seja possível fatorar um
número de 500 dígitos, e até lá poderão escolher a fatoração de um
número ainda maior.
O funcionamento do RSA:
1. São escolhidos dois números primos extensos, p e q (geralmente
maiores que 10100).
2. Calcula-se n = p*q e z = (p -1)*(q -1).
3. Escolhe-se um número primo d, em relação a z.
4. Encontramos e de forma que (e*d) mod z = 1.
O texto simples (uma string de bits) é dividido em blocos, de modo que
cada mensagem de texto simples p fique no intervalo 0 <= p < n.
Para criptografar a mensagem p é calculado C = pe mod n.
Para decriptografar C, é calculado p = Cd mod n.
É possível provar que, para todo p na faixa especificada, as funções de
criptografia e decriptografia são inversas entre si. Para realizar a
criptografia, é necessário ter e e n, ao passo que para a decriptografia,
são necessários d e n. Portanto a chave pública consiste no par (e,n) e
a chave privada consiste em (d,n).
Se pudesse fatorar o valor de n (publicamente conhecido), seria
possível então encontrar d, utilizando-se o algoritmo de Euclides, porém
fatorar números extensos é extremamente difícil.
EXEMPLO:
Escolheremos p = 3 e q = 11
Calculando n = p*q e z = (p -1)*(q -1); n = 3*11 = 33; z = 2*10 =20;
O valor escolhido como número primo, em relação a z é 7, visto que
7 e 20 não possuem fatores comuns. Desse modo d = 7.
Para que a equação (e*d) mod z = 1 seja verdadeira e deverá ser um
número que multiplicado por 7 mod 20 seja igual a 1. Fazendo
tentativa, 1 não daria certo pois (1*7) mod 20 é diferente de 1, com 2
também não daria certo pois (2*7) mod 20 é diferente de 1. O
número 3 se identifica pois (3*7) mod 20 = 1, portanto e = 3.
Cálculo do transmissor
Cada letra do alfabeto é representada por um número:
A
1
B
2
C
3
D
4
E
5
F
6
G
7
H
8
I
9
J K L M N O P Q R S T U V W X Y Z
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
P
p
p3
Simbólico Numérico
R
18
5832
A
1
1
Q
17
4913
U
21
9261
E
5
125
L
12
1728
C = p3 mod 33
24
1
29
21
26
12
Cálculo do Receptor
C = p3 mod 33
24
1
29
21
26
12
C7
4586471424
1
17249876309
1801088541
8031810176
35831808
C7 mod 33
18
1
17
21
5
12
Simbólico
R
A
Q
U
E
L
Os números escolhidos para p e q, nesse exemplo são muito pequenos
(geralmente os números são maiores que 10100).
Vantagens da Criptografia
 Proteger a informação armazenada em trânsito
 Deter alterações de dados
 Identificar pessoas
Desvantagens da Criptografia
Não há como prevenir que um intruso:
 Apague todos os seus dados, estando eles criptografados ou não.
 Modifique o programa para modificar a chave . Desse modo o
receptor não conseguirá decriptografar com a sua chave.
 Acesse o seu arquivo antes dele ser criptografado.
Assinatura Digital
A Assinatura Digital é a versão digital da assinatura de punho em
documentos físicos. A assinatura de punho é um componente que
assegura que a pessoa em questão escreveu ou concordou com o
documento no qual consta sua assinatura.
A Assinatura Digital apresenta um grau de segurança muito superior ao
de uma assinatura de punho. O destinatário de uma mensagem
assinada digitalmente pode verificar se a mensagem foi realmente
emitida pela pessoa cuja assinatura nela consta, ou se a mensagem não
foi em algum ponto adulterada intencional ou acidentalmente depois de
assinada. Mais ainda, uma Assinatura Digital que tenha sido verificada
não pode ser negada; aquele que assinou digitalmente a mensagem não
pode dizer mais tarde que sua assinatura digital foi falsificada.
Em outras palavras, Assinaturas Digitais habilitam "autenticação" de
documentos digitais, garantindo ao destinatário de uma mensagem
digital tanto a identidade do remetente quanto a integridade da
mensagem.
Por exemplo, para personalizar uma mensagem, um determinado
usuário A codifica uma mensagem utilizando sua chave secreta e a
envia para o destinatário. Somente a chave pública de A permitirá a
decodificação dessa mensagem. Portanto é a prova de que A enviou a
mensagem. A mensagem assim pode ser decodificada por qualquer um
que tenha a chave pública de A.
Propriedades
1) a assinatura é autêntica: quando um usuário usa a chave pública de
A para decifrar uma mensagem, ele confirma que foi A e somente A
quem enviou a mensagem;
2) a assinatura não pode ser forjada: somente A conhece sua chave
secreta;
3) o documento assinado não pode ser alterado: se houver qualquer
alteração no texto criptografado este não poderá ser restaurado com o
uso da chave pública de A;
4) a assinatura não é reutilizável: a assinatura é uma função do
documento e não pode ser transferida para outro documento;
5) a assinatura não pode ser repudiada: o usuário B não precisa de
nenhuma ajuda de A para reconhecer sua assinatura e A não pode
negar ter assinado o documento.
Compromisso de Terceiro
Baseia-se no conceito de um terceiro parceiro de confiança 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.
Autenticação
Kerberos
Sistema de segurança desenvolvido pelo MIT (Massachusetts Institute
of Technology) para o projeto Athena que utiliza o conceito de algoritmo
de chave pública.
 Usado na Internet, adotado pela OSF (Open Software Foundation)
como parte do DCE (Distributed Computing Environment). Vários
fornecedores, como IBM, DEC, HP e Sun planejam tornar
Kerberos parte de seus sistemas operacionais UNIX.
Kerberos está baseado em 3 componentes para assegurar a segurança
da rede:
 um banco de dados
 um servidor de autenticação
 um servidor garantidor de tiquetes (TGS=Ticket Granting Server)
Todos os três componentes ficam em um servidor seguro que é
conectado à rede.
Componentes do Kerberos:
 O banco de dados contém todos os nomes de usuários, suas
passwords, os serviços a que tem direito e as chaves de
criptografia associadas.
 O servidor de autenticação assegura que a pessoa, requisitando
um serviço é quem diz ser.
 O servidor garantidor de tiquetes fornece tiquetes para os usuários
quando o servidor de autenticação verificar sua identidade.
 Para acessar uma aplicação, um usuário necessita do tiquete e
uma segunda credencial, denominada autenticador que consiste
do nome do usuário, o endereço IP da estação e o horário em que
o pedido foi originado.
 Para trabalhar com Kerberos o sistema operacional do PC precisa
ser modificado para processar os tiquetes e enviar autenticadores.
Cada aplicação que deve ser protegida por meio do Kerberos
precisa ser também modificada.
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.
Integridade dos Dados
Os mecanismos de controle de integridade atuam em dois níveis: o
controle da integridade de dados isoladas e controle da integridade de
uma conexão, isto é, das unidades de dados e da sequência de
unidades de dados transmitidas no contexto da conexão.
Enchimento de Tráfego (Traffic Padding)
A geração de tráfego espúrio e o enchimento das unidades de dados
fazendo com que elas apresentem um comprimento constante são
formas para fornecer proteção contra a análise do tráfego.
Controle do Roteamento
A possibilidade de controlar o roteamento, especificando rotas
preferenciais (ou obrigatórias) para a transferência de dados, pode ser
utilizada para garantir que os dados sejam transmitidos em rotas
fisicamente seguras ou para garantir que a informação sensível seja
transportada em rotas cujos canais de comunicação forneçam os níveis
apropriados de proteção.
Segurança Física e do Pessoal
Medidas que garantam a integridade física dos recursos de um sistema
são indispensáveis para garantir a segurança do sistema como um todo.
Hardware / 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 implementem a política de segurança do
sistema.
Rótulos de Segurança
Os recursos do sistema devem ser associados a rótulos de segurança
que indicam, por exemplo, seu nível de sensibilidade. O rótulo de
segurança deve ser mantido junto com os dados quando eles são
transportados.
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 (login).
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.
Download