CAPÍTULO 1 INTRODUÇÃO Os requisitos de segurança de informação dentro das organizações teve 2 grandes mudanças nos últimos anos. antes era feita por meios físicos e administrativos. O nome genérico para a colecção de ferramentas desenhada para proteger os dados e demover os hackers é a segurança de computadores . Medidas de segurança de redes são precisas para proteger os dados durante a sua transmissão - network security e internet security .Não há fronteiras claras entre estas 2 formas de segurança. este livro foca-se na segurança de internet, a qual consiste em medidas para deter, prevenir, detectar, e corrigir violações de segurança que envolvem a transmissão de informação. A segurança interredes é ao mesmo tempo fascinante e complexa. Eis algumas das razões. 1. É precis precisoo con confid fidenc encial ialida idade de,, auten autentic ticaçã ação, o, não não renúnc renúncia, ia, integr integrida idade de.. mas mas os mecanismos usados para obter esses requisitos podem ser muito complexos. 2. Em muitos casos, ataques com sucesso são desenhados olhando para o problema duma forma completamente diferente, e assim explorando um fraqueza inesperada no mecanismo. 3. devido ao ponto 2., os procedimentos usados para fornecer serviços particulares são frequentemente contra-intuitivos. 4. Tendo desenhado vários mecanismos de segurança, é necessário decidir onde os usar. 5. Os mecanismos de segurança envolvem habitualmente mais do que um algoritmo particularou protocolo. Também requerem usualmente que os participantes estejam na posse de alguma informação secreta (e.g. uma chave de encriptação), o que faz emergir questões acerca da sua criação, distribuição, e protecção desa informação secreta. 1.1. A ARQUITECTURA DE SEGURANÇA OSI Securit rityy Arch Archit itec ectu ture re for for OS OSI I , defin A reco recome mend ndaç ação ão X.80 X.8000 do ITUITU-T, T, Secu efinee tal tal aproximação sistemática. A arquitectura de segurança OSI é útil para gestores como maneira de organizar a tarefa de prover segurança. Ameaça - Um potencial para violação da segurança, o qual existe quando houver uma circunstância, capacidade, acção, ou evento que pode brechar a segurança e causar prejuízo. Isto é, uma ameaça é um perigo possível que pode explorar uma vulnerabilidade. Ataque - Um assalto à segurança do sistema que deriva de uma ameaça inteligente; isto é, um acto inteligente que é uma tentativa deliberada (especialmente no sentido de um método ou técnica) para ultrapassar os serviços de segurança e violar a política de segurança e um sistema. Ataque à Segurança - Qualquer acção que compromete a segurança da informação na posse da organização. organização. Mecanismo de Segurança - Um mecanismo que é desenhado para detectar, prevenir, ou recuperar de um ataque à segurança. Serviço de Segurança - Um serviço que enriquece a segurança dos sistemas de procesamento de dados e as transferências de informação de uma organização.; organização.; fazem uso de um ou mais mecanismos de segurança para fornecer o serviço. 1.2. ATAQUES À SEGURANÇA Classificação de ataques à segurança. Um ataque passivo tenta aprender ou fazer usos da informação do sistema, mas não afecta os recursos do sistema. Um ataque activo tenta alterar os recursos r ecursos do sistema ou afectar a sua operação. ATAQUES PASSIVOS Há 2 tipos:
- A libertação do conteúdo de mensagens . Queremos prevenir que um oponente apanhe/aprenda apanhe/aprenda o conteúdo destas transmissões. - A análise de tráfego . Se tivermos a usar uma protecção por encriptação, um oponente pode ainda ser capaz de observar o padrão das mensagens mensagens transmitidas e assim determ determina inarr a locali localizaç zação ão e identi identida dade de dos hosts hosts comun comunica icante ntess e pod podee obser observar var a frequência e o tamanho das mensagens trocadas. Os ataques passivos são muito difíceis de detectar porque não envolvem a alteração dos dados. É possível prevenir, usualmente por encriptação. Assim, a ênfase em lidar com os ataques passivos é na prevenção em vez e na detecção. ATAQUES ACTIVOS Há 4 categorias: - Uma mascarada/disfarce tem lugar quando uma entidade pretende ser/passar-se por uma entidade diferente. - Uma repetição/ replay envolve a captura passiva de uma unidade de dados e a sua subsequente retransmissão retransmissão para produzir um efeito não autorizado. - Modificação de Mensagens signif significa ica simple simplesme smente nte que alguma alguma porçã porçãoo de uma uma mensagem legítima é alterada, ou que mensagens mensagens são atrasadas ou reordenadas. reordenadas. - A negação de serviço /denial of service previne/evita/impede ou inibe o uso normal ou gestão, de facilidades de comunicação. Ex. a supressão de todas as mensagens para um destino particular, ou a disrupção de uma rede inteira, quer disablando a rede quer sobrecarregando-a. As cara caract cter erís ísti tica cass são são opos oposta tass às do ataq ataque ue pass passiv ivo. o. É muit muitoo difíc difícil il prev preven enir ir absolutamente. absolutamente. Em vez disso, a meta é detectar e recuperar de uma disrupção ou atrasos causados por eles. 1.3. SERVIÇOS DE SEGURANÇA É um serviço de processamento ou comunicação que é fornecido por um sistema para dar um tipo específico de protecção aos seus recursos de sistema; os serviços de segu segura ranç nçaa impl implem emen enta tam m polí políti tica cass de segu segura ranç nçaa e são são são são impl implem emen enta tado doss por por mecanismos de segurança. Essses serviços são divididos em 5 categorias e 14 serviços específicos. AUTENTICAÇÃO Conc Co ncer erne ne com com o asse assegu gura rarr que que uma uma comu comuni nica caçã çãoo é autê autênt ntic ica. a. No caso caso de uma uma mensagem única, assegura ao recipente de que a mensagem é da fonte de que reclama ser. No caso de uma interacção contínua, há 2 aspectos envolvidos. Primeiro assegura que as 2 entidades são autênticas, segundo assegura que a conexão não é interferida duma forma que um terceiro se possa mascarar como um dos 2. 2 serviços de autenticação específicos são definidos no standard: - Autenticação entre Entidades Par - Autenticação de Origem dos Dados - suporta aplicações como o correio electrónico. CONTROLO DE ACESSO É a capacidade de limitar e controlar o acesso a sistemas host e aplicações via ligações de comunicação. CONFIDENCIALIDADE DOS DADOS É a protecção de dados transmitidos de ataques passivos. O serviço mais lato protege todos os dados de utilizador transmitidos entre 2 utilizadores num dado período de tempo. O outro aspecto da confidencialidade é a protecção de fluxo de tráfego da análise. INTEGRIDADE DE DADOS Tal como com a confidencialidade, a integridade pode aplicar-se a uma stream de mensagens, uma únicva mensagem, ou campos seleccionados dentro da mensagem.
Assegura que as mensagens são recebidas como enviadas, sem duplicação, inserção, modificação, reordenação, ou repetições. Assim, o serviço de integridade orientado-àconexão tem a ver com modificação de mensagens de stream e denial of service. por outro lado, numa ligação sem conexão assegura-se protecção apenas contra modificação de mensagens. Alternativamente podemos recuperar. A incorporação de mecanismos de recuperação automática é, em geral, a alternativa mais atractiva. NÃO REPÚDIO Previne que o receptor ou emissor de negar uma mensagem transmitida. DISPONIBILIDADE DE SERVIÇO É a propriedade de um sistema ou de um recurso de sistema ser acessível e utilizável sob procura por uma entidade de sistema autorizada, de acordo com as especificações de perfomance. Tabela 1.3. Relação entre Serviços de segurança e Ataques Ataque Serviço Visão do do Análise Masc Mascar araada Rep Repetiç etiçãão Modi Modifi ficcaçã ação Denial conteúdo de e de das Tráfego mensagens Service mensagens Aute Au tent ntic icaç ação ão de Y entidades pares Aute Au tent ntic icaç ação ão de Y origem de dados Controlo de Y acesso Confidencialidade confidencialidade Y Y de fluxo de tráfego Integrid ridade de Y Y Dados Não repúdio Disponibilidade Y 1.4. MECANISMOS DE SEGURANÇA Um mecanismo de cifra reversível é simplesmente um algoritmo de encriptação que permite que os dados sejam encriptados e subsequentemente subsequentemente desencriptados. desencriptados. Mecanismos de cifra irreversível incluem algoritmos de hash e códigos de autenticação de mensagens, os quais são usados em aplicações e assinatura digital e autenticação de mensagens. 1.5. UM MODELO PARA SEGURANÇA DE REDES Todas as técnicas para fornecer segurança têm 2 componentes: componentes: - Uma transformação relacionada com a segurança, nas informações a serem enviadas. Ex. a encriptação, e a adição de um código baseado no conteúdo da mensagem, o qual pode ser usado usado para verificar a identidade identidade do emissor. emissor. - Alguma informação secreta partilhada pelos 2 intervenientes, como por ex. uma chave de encriptação Uma terceira parte, de confiança, pode ser precisa para atingir a transmissão segura, por ex. sendo responsável pela distribuição da informação secreta. Tabela 1.4. Mecanismos de Segurança (X.800) Tabela 1.5. Relações entre Serviços de Segurança e Mecanismos
Serviço Autenticação entr entree enti entida dade dess pares Aute Au tent ntic icaç ação ão de origem de dados Controlo de acesso Confidencialidade Confidencialidade de fluxo de tráfego Integrid ridade de dados Não repúdio Disponibilidade
Mecanismo Cifra Assinatura Controlo Integridade Troca de Caminho Controlo de Notariazação Digita de de Dados Autenticação do Roteamento Acesso Tráfego Y Y Y Y
Y Y
Y Y Y
Y Y
Y
Y
Y Y
Y Y
Y Y
O modelo geral mostra que há 4 tarefas básicas no desenhjo de um serviço de segurança particular: 1. Desenhar um algoritmo para executar a transformação relacionada com a segurança. 2. Gerar a informação secreta para ser usada com o algoritmo 3. Desenvolver métodos para a distribuição e partilha da informação secreta 4. Especificar um protocolo a ser usado pelos 2 intervenientes que faz uso do algoritmo de segurança e da informação secreta para atingir um serviço de segurança particular. Um modelo geral preocupa-se com a protecção de um sistema de informação contra o acesso indesejado, que pode ser um hacker ou um empregado despedido, por ex. Um outro tipo de acesso indesejado é o que afecta programas de aplicação assim como utilitários, que podem apresentar 2 tipos de ameaça: - Ameaças de acesso à informação - Ameaças ao serviço Os vírus e os worms são 2 exemplos de ataques de software. Os mecanismos de segurança têm de ter um gatekeeper (ex. password de login), e numa segunda linha, uma série de controlos internos. 1.6. STANDARDS DE INTERNET E A SOCIEDADE DA INTERNET PARTE UM - CRIPTOGRAFIA
CAPÍTULO 2 ENCRIPTAÇÃO SIMÉTRICA E CONFIDENCIALI CONFIDENCIALIDADE DADE DAS MENSAGENS A simétrica mantém-se, de longe, como a mais largamente usada dos 2 tipos de encriptação. 2.1. PRINCÍPIOS DA ENCRIPTAÇÃO SIMÉTRICA Tem 5 ingredientes: - Plaintext - isto é, a mensagem original ou dados que alimenta o algoritmo como input - Algoritmo de Encriptação - feito de substituições e transformações - Chave Secreta - também é um input do algoritmo. As substituições e transformações exactas executadas pelo algoritmo dependem da chave.
- Texto Cifrado - esta é a mensagem misturada produzida como output. - Algoritmo de Desencriptação - é essencialmente o algoritmo de encriptação corrido reversamente. Há 2 requisitos para o uso seguro da encriptação simétrica: 1. Um algoritmo de encriptação forte. O oponete deve ser incapaz de desencriptar texto cifrado ou descobrir a chave mesno que esteja na posse de um nº de textos cifrados juntamente com o texto texto original que produziu produziu cada texto cifrado. cifrado. 2. O emissor e o receptor devem ter obtido cópias da chave secreta duma forma segura. O principal problema de segurança é manter o segredo da chave. CRIPTOGRAFIA Os sistem sistemas as cripto criptográ gráfic ficos os são geralm geralmen ente te classi classific ficado adoss ao longo longo de 3 dimens dimensões ões independentes: 1. O tipo de operações usadas para transformar texto em texto cifrado - Todos os algo algorit ritmo moss de encr encrip ipta taçã çãoo são são base basead ados os em 2 prin princí cípi pios os gera gerais is:: subs substi titu tuiç ição ão e transposição. 2. O númer mero de chav haves usadas adas - simétri simétrico cos, s, chavechave-úni única ca,, chavechave-sec secret reta; a; ou assimétrica, 2-chaves, chave-pública. chave-pública. 3. A maneira em que o texto é processado - Uma cifra por blocos ou uma cifra por stream. ANÁLISE CRIPTOGRÁFICA É o processo de tentar descobrir o texto original ou a chave. A estratégia usada pelo cripto criptoan anali alista sta dep depen ende de da nature natureza za do esquem esquemaa de encrip encriptaç taçõa õa e da inform informaçã açãoo disponível a ele. Apenas os algoritmos relativamente fracos falham a oposição a ataques a apenas-textocifrado. Geralmente, um algoritmo de encriptação é desenhado para se opor a um ataque com texto conhecido. Um esquema de encriptação é computacionalmente seguro se o texto cifrado cifrado gerado gerado pelo esquema encontra um ou ambos ambos os seguintes seguintes critérios_ - O custo de brechar a cifra excede o valor da informação encriptada. - O tempo requerido para brechar a cifra excede o tempo de vida útil da informação. Tabela 2.1. Tipos de Ataques a mensagens mensagens Encriptadas Tipo de Ataque Sabido do Criptanalista Apenas te texto ci cifrado - Al Algoritmo tmo de de en encriptação - Texto cifrado a ser descodificado Texto original - Algoritmo de encriptação conhecido - Texto cifrado a ser descodificado - Um ou mais pares texto cifrado-texto original formados com a chave secreta Texto Texto orig origina inall escol escolhid hidoo - Algor Algoritm itmoo de de encr encript iptaç ação ão - Texto cifrado a ser descodificado - Mensagem de texto escolhida pelo criptanalista, juntamente com o seu correspondente texto cifrado gerado com a chave secreta Text Textoo cifra cifrado do esc escol olhi hido do - Algo Algori ritm tmoo de enc encri ript ptaç ação ão - Texto cifrado a ser descodificado - Texto Texto cifrad cifradoo propos proposita itado do escol escolhid hidoo pelo pelo cripta criptanal nalist ista, a, juntamente com o seu texto correspondente desencriptado, desencriptado, gerado pela chave secreta Texto escolhido - Algoritmo de encriptação - Texto cifrado a ser descodificado
- Mensagem de texto escolhida pelo criptanalista, juntamente com o seu correspondente texto cifrado gerado com a chave secreta - Texto Texto cifrad cifradoo propos proposita itado do escol escolhid hidoo pelo pelo cripta criptanal nalist ista, a, juntamente com o seu texto correspondente desencriptado, desencriptado, gerado pela chave secreta Uma abordagem força-bruta envolve tentar todas as chaves possíveis até uma tradução inteligível do texto cifrado seja obtida. ESTRUTURA DE CIFRA FEISTEL É um bloco de texto de comprimento 2w bits e uma chave K. O texto é dividido em 2 meta metade des, s, L0 e R0 R0.. As 2 metad etades es dest destes es dado dadoss pass passam am atra atravé véss de n volt voltas as de processamento processamento e depois combinam-se para produzir produzir o bloco de texto cifrado. Cada Cada volta i tem entradas Li-1 e Ri-1, derivadas da volta anterior, tal como uma subchave Ki, derivada da geral K. Todas as voltas têm a mesma estrutura: Uma substituição é executada na metade esquerda dos dados. Isto é feito aplicando a função de round F ao lado direito dos dados e depois fazendo o XOR da saída daquela função e da metade esquerda dos dado dados. s. A funç função ão de roun roundd tem tem a mesm mesmaa estru estrutu tura ra gera gerall para para cada cada volt voltaa mas mas é parametrizada pela subchave de volta Ki. Seguidamente a esta substituição, substituição, é executada uma permutação que consiste na troca dos dois lados dos dados. Características: - Tamanho do Bloco : Tamnhos maiores de bloco significam maior segurança, mas reduzem a velocidade de encriptação/desencriptação. Um tamanho e bloco de 64 bits é um razoável equlíbrio. - Tamanho da Chave : normalmente é de 128 bits. - Número de voltas : Típico são 16 - Algoritmo de geração de subchave : Grande complexidade para dificultar - Função de round : Também de grande complexidade. Outras considerações no design da cifra de Feistel: encriptação/desencriptação rápido - Software de encriptação/desencriptação - Facilidade de Análise - O DES, por ex., não tem uma funcionalidade facilmente analisável. A desencriptação com uma cifra de Feistel usa o texto cifrado como input do algoritmo, mas usa as subchaves Ki na ordem inversa. Isto é, usa Kn na primeira volta, Kn-1 na segunda volta, e assim sucessivamente até K1 que é usada na última volta. 2.2. ALGORITMOS DE ENCRIPTAÇÃO SIMÉTRICOS São os mais comuns. DATA ENCRYPTION STANDARD DESCRIÇÃO DO ALGORITMO O texto original tem 64 bits de tamanho e a chave tem 56 bits de tamanho. a estrutura do DES é uma variação menor da rede Feistel. Há 16 volats de processamento. O processo de desencriptação, usa o texto cifrado como input do algoritmo DES, mas usa as subchaves Ki na ordem inversa. A FORÇA DO DES Cabe em 2 categorias: preocupações acerca do algoritmo ele próprio e preocupações acerca do uso da chave de 56 bits. Apesar de numerosas aproximações, ninguém até agora teve sucesso em descobrir uma fraqueza fatal no algoritmo DES. Uma preocupação mais séria é o tamanho da chave. Com um tamanho de 56 bits, há 2 56 chaves possíveis, o que é aproximadamente 7,2 x 10 16 chaves, o que pode ser atacável
com redes de computadores. Assim, usa-se agora uma chave de 128 bits, o que é inbrechável pela força bruta. DES TRIPLO 3DES usa 3 chaves e 3 execuções do algoritmo. A função segue uma sequência encripta-desencripta-encripta encripta-desencripta-encripta (EDE). C = EK3 [DK2 [EK1 [P]]] onde: C = Texto cifrado P = Texto original EK [X] [X] = encriptação de X usando a chave K DK [Y] [Y] = desenriptação de Y usando a chave X A desencriptação é simplesmente a mesma operação com as chaves revertidas P = DK1 [EK2 [DK3 [C]]] A vantagem de usar a desencriptação no 2º passo é só para que os utilizadores antigos do DES possam desencriptar mensagens encriptadas no triplo DES. C = EK1 [ DK1 [EK1 [P]]] = EK1 [P] Com 3 chaves distintas, o 3DES tem um tamanho efectivo de chave de 168 bits. É fácil de ver que o 3DES á um algoritmo formidável; os ataques força-bruta são efectivamente impossíveis. ADVANCED ENCRYPTION STANDARD O prin princi cipa pall defe defeit itoo do 3D 3DES ES é que que é muit muitoo vaga vagaro roso so em soft softwa ware re.. Um defe defeit itoo secundário é que ambos o DEA e o 3DES usam um tamanho de bloco de 64 bits. Por razões de eficiência e segurança um bloco maior é desejável. Então o AES foi proposto, o qual tem uma fortaleza de segurança igual ou melhor que o 3DES e muito maior eficiência. O tamanho do bloco é de 128 bits e suporta tamanhos de chave de 128, 192 e 256 bits. Os critérios de avaliação incluem segurança, eficiência comput computaci aciona onal, l, requis requisito itoss de memória memória,, compat compatibi ibilid lidade ade de softwa software re e hardwa hardware, re, e flexibilidade. VISÃO GERAL DO ALGORITMO A entrada é um bloco de 128 bits. Este bloco é copiado para o array State, o qual é modificado a cada estágio da encriptação ou desencriptação. Depois do estágio final, o State é copiado para uma matriz de saída. Similarmente, a chave de 128 bits é descrita como uma matriz quadrada de bytes. Esta chave é então expandida num array de palavras de agendamento de chave; cada palavra é 4 bytes e a agenda total de cahves é 44 palavras para a chave de 128 bits. A ordem dos bytes dentro da matriz é por coluna. 1. Não é uma estrutura Feistel, mas processa o bloco inteiro de dados em partalelo durante cada volta usando substituições e permutação 2. A chave que é fornecida como entrada é expandida num array de 44 palavras de 32 bits, w[i]. 4 palavras distintas distintas (128 bits) servem como chave de volta para cada volta. volta. 3. 4 diferentes estágios são usados, um de permutação e 3 de substituição: - Bytes de Substituição : Usam uma tabela, referida como uma s-box, para executar uma substituição do bloco, byte-a-byte. - Shift Rows: uma permutação simples que é executada linha a linha - Mix Columns: Uma substituição que altera cada byte numa coluna como função de todos os bytes na coluna. - Adicionar a Chave de Volta : um simples XOR do bloco corrente com uma porção da chave chave expandida. expandida. 4. A estrutura é muito simples: começa com um estágio Add Round Key, seguido por 9 voltas, cada com 4 estágios, seguido por 10 voltas de 3 estágios.
5. Apenas o estágio Add Round Key faz uso da chave. Todos os outros estágios não adicionam segurança. 6. Podemos ver a cifra como operações alternadas de encriptação XOR (Add Round Key) e um bloco, seguido de uma mistura do bloco (os outros 3 estágios), seguido e uma encriptação XOR, e assim sucessivamente. Este esquema é ambos eficiente e altamente seguro. 7. Cadfa estágio é facilmente f acilmente reversível. OUTRAS CIFRAS DE BLOCO SIMÉTRICAS Em vez de reinventar totalmente a roda, virtualmente todos os algoritmos de encriptação de blocos simétricos contemporâneos usam a estrutura de bloco básico de Feistel. IDEA Usa uma chave de 128 bits. Difere marcadamente do DES na função de round e na função de geração de subchaves. É usado no Pretty Good Privacy (PGP). Tabela 2.3. Algoritmos de Encriptação Convencionais Algoritmo Tamanho da Tamanho de Número de Aplicações Chave (bits) Bloco (bits) Voltas DES 56 64 16 SET, Kerberos Triple DES 112 ou 168 64 48 gestão de chaves financeiras; PGP, S/MIME AES 128, 192, ou 128 10, 12, ou 14 Com intenção 256 de subs substi titu tuir ir o DES e 3DES IDEA 128 64 8 PGP Blowfish Variável até 64 16 Vários pacotes 448 de software RC5 Variável até 64 Variável até Vários Vários pacotes pacotes 2048 255 de software BLOWFISH Tornou-se rapidamente uma das mais populares alternativas ao DES. Foi desenhado para ser de fácil implementação e ter uma alta velocidade de execução. execução. Pode correr ainda em menos de 5K de memória. RC5 ... 2.3. MODOS DE OPERAÇÃO DOS BLOCOS DE CIFRA A maneira mais simples de proceder é a que é conhecida como modo de livro de código electróncio (ECB), no qual o texto original é manuseado a 64 bits de cada vez e cada bloco de texto original original encriptado usando usando a mesma chave. chave. Para ultrapasar as deficiências de segurança do ECB, gostaríamos de uma técnica na qual o mesmo bloco de texto original, se repetido, produzisse um bloco de texto cifrado diferente. MODO DE CADEIA DE BLOCO DE CIFRA A entrada para o algoritmo de encriptação é o XOR do bloco de texto original corrente e o bloco de texto cifrado precedente. Asim, padrões repetidos de 64 bits não ficam expostos. Para Para dese desenc ncri ript ptaç ação ão,, cada cada bloc blocoo cifr cifrad adoo é pass passad adoo atra atravé véss o algo algori ritm tmoo de desencriptação. O resultado é XORado com o bloco de texto cifrado precedente para produzir o bloco de texto original: Ci = EK [C [Ci-1 + Pi] o + é XOR (com circunferência circunferência à volta, pois) pois)
Então: DK [C [Ci] = DK [E [EK (C (Ci-1 + Pi] DK [C [Ci] = (Ci-1 + Pi) C i-1 + DK[Ci] = C i-1 + C i-1 + Pi = Pi Para produzir o primeiro bloco de texto cifrado, um vector de inicialização (IV) é XORado com o primeiro bloco de texto original. Na desencriptação, o IV é XORado com a saída do algoritmo de desencriptação para recuperar o primeiro bloco de texto original. O IV tem de ser conhecido pelo emissor e pelo receptor, pelo que deve ser tão bem protegido como a chave. chave. MODO DE FEEDBACK DA CIFRA É possível converter qualquer bloco cifrado numa stream cifrada usando o modo feedback de cifra (CFB). A unidade de transmissão é s bits; um valor comum é s=8. Como, no CBC, as unidades de texto original são encadeadas juntas, de modo a que o texto cifrado de qualquer unidade de texto original é uma função de todo o texto original precedente. precedente. C1 = P1 + Ss(E(IV)) Então: P1 = C1 + (Ss(E(IV)) 2.4. LOCALIZAÇÃO DOS DISPOSITIVOS DE ENCRIPTAÇÃO Há 2 alternativas fundamentais: Encriptação por ligação e encriptação fim-a-fim. Com a primeira, cada ligação de comunicação vulnerável é equipada em ambos os finais com um dispositivo de encriptação. Apesar de este método requerer um monte de dispositivos de encriptação numa rede grande, ele fornece um alto nível de segurança. Uma desvantagem desta abordagem é que a mensagem precisa de ser desencriptada cada vez que entra num packet switch para rotear o packet. Assim, a mensagem é vulnerável em cada switch. Se esta é uma rede public-packet switching, o utilizador não tem controlo sobre a segurança de cada nó. Com a encriptação fim-a-fim parece que é mais segura contra ataques nas ligações ou switchs. Mas há ainda um ponto fraco. O host pode apenas encriptar a porção de dados do utilizador do pacote e tem de deixar o cabeçalho em claro, de modo a que possa se rlido pela rede. Assim, os dados do utilizador estão seguros. Contudo, o padrão de tráfego não está. Para atingir grande segurança, é preciso ambos. 2.5. DISTRIBUIÇÃO DE CHAVES Mudanças de chave frequentes são usualmente desejáveis para limitar a quantidade de dados comprometidas se o atacante aprende a chave. Então, a força de qualquer sistema criptográfico está na técnica de distribuição de cahves. Há várias formas: 1. Uma chave pode ser escolhida por A e entregue fisicamente a B. 2. Um terceiro pode escolher a chave e entrega´-la fisicamente a A e B 3. Se A e B usaram previamente e recentemente recentemente uma chave, uma parte pode transmitir a nova chave ao outro, encriptando-a com a chave antiga. 4. Se A e B tiverem ambos ambos uma ligação ligação encriptada um terceiro C, o C pode pode entregar a chave nas ligações encriptadas a A e B. As opções 1 e 2 são de entrega manual. Para encriptação de ligação, este é um requisito razoável. Contudo, para encripatção fim-a-fim, a entrega manual é inepto. A opção 3 é uma possibilidade para ambos os caso, mas se um atacante tiver sucesso em ganhar acesso a uma chave, então todas as chaves subsequentes estão reveladas. Para fornecer chaves para uma encriptação fim-a-fim, a opção 4 é prteferível. A figura 2.10 ilustra uma implementação que satisfaz a opção 4 para encriptação fimafim. Dois tipos de chave são identificados:
- Chave de Sessão : Qua Quando ndo 2 sistem sistemas as termin terminais ais (hosts (hosts,, termina terminais, is, etc.) etc.) que querem rem comunicar, estabelecem uma ligação lógica (e.g. circuito virtual). No fim da sessão, ou ligação, a chave de sessão é destruída. - Chave Permanente : Uma chave permanente é uma chave usada entre entidades com o propósito de distribuir chaves de sessão. - Centro de Distribuição de Chaves : O Centro de Distribuição de Chaves (KDC) determina quais os sistemas que estão permitidos comunicar um com o outro. Quando a permissão está garantida para 2 sistemas estabelecerem uma onexão, o centro fornece uma chave de sessaõ de uma vez para essa conexão. - Processador Front-End : FEP executa encriptação fim-a-fim e obtém chaves de sessão em benefício do seu host ou terminal. Um pacote de requisição-de-conexão (passo 1). O FEP grava esse pacote e pede ao KDC permissão para estabelecer a conexão (passo 2). A comunicação entre o FEP e o KDC é encriptada usando uma chave mestra partilhada apenas pelo FEP e pelo KDC. Se aprovado, gera uma chave de sessão e entrega-a aos dois apropriados front-end processors usando usando uma chave chave permanente única única para cada front-end front-end (passo 3). 2.1. Quais são os ingredientes principais de uma cifra simétrica? 2.2. Quais são as 2 funções básicas usadas nos algoritmos de encriptação? 2.3. Quantas chaves são precisas para 2 pessoas comunicarem via uma cifra simétrica? 2.4. Qual é a diferença entre uma cifra de bloco e uma cifra de stream? 2.5. Quais são as 2 abordagens gerais para atacar uma cifra? 2.6. Porque é que alguns modos de operação de cifra de bloco apenas usam encriptação enquanto outros usam encriptação e desncriptação desncriptação?? 2.7. O que é encriptação tripla? 2.8. Porque é a parte do meio do 3DES uma desencriptação em vez de uma encriptação? 2.9. Qual é a diferença entre encriptação link e end-to-end? 2.10. Liste maneiras nas quais as chaves secretas podem ser distribuídas a 2 parceiros comunicantes. 2.11. Qual é a diferença entre uma chave de sessão e uma chave master? 2.12. O que é um Centro de Distribuição de Chaves?
CAPÍTULO 3 CRIPTOGRAFIA DE CHAVE-PÚBLICA E AUTENTICAÇÃO DE MENSAGENS 3.1. ABORDAGENS DA AUTENTICAÇÃO DE MENSAGENS A encri encripta ptação ção proteg protegee con contra tra ataque ataquess passiv passivos os (escut (escuta). a). Um requis requisito ito difere diferente nte é proteger contra ataque activo activo (falsificação de dados e transacções). transacções). Protecção Protecção contra tais ataques é conhecida como autenticação de mensagens. Os 2 importantes aspectos são verificar que o conteúdo da mensagem não foi alterado e que a fonte é autêntica. Também podemos querer verificar se a mensagem não foi atrasada e repetida artificvialmente e se está em sequência. AUTENTICAÇÃO USANDO ENCRIPTAÇÃO CONVENCIONAL É possível executar autenticação simplesmente pelo uso e encriptação convencional. AUTENTICAÇÃO D MENSAGENS SEM ENCRIPTAÇÃO DE MENSAGENS Nesta secção, examinamos várias abordagens à autenticação de mensagens que não se baseiam na encriptação. Em todas estas abordagens, uma tag de autenticação é gerada e anexa a cada mensagem para transmissão. DAV sugere 3 situações nas quais a autenticação de mensagem sem confidencialidade é preferível:
1. Há um nº de aplicações nas quais a mesma mensagem é emitida (broadcast) para um nº de destinos. 2. Uma troca na qual um lado tem uma carga elevada e não consegue ter tempo de desencriptar todas as mensagens que chegam. 3. Autenticação de um programa de computador é texto original é um serviço atractivo. CÓDIGO DE AUTENTICAÇÃO DE MENSAGENS Uma técnica de autenticação envolve o uso de uma chave secreta para gerar um pequeno bloco bloco de dados, conhecido conhecido como como um código de autenticação autenticação de mensagens, mensagens, que é anexo à mensagem. Quando A tem uma mensagem para enviar a B, ele calcula o código de autenticação da mensagem como função da mensagem e da chave: MAC M = F(K AB AB, M). 1. O receptor têm a segurança que a mensagem não foi alterada. 2. O receptor tem a certeza que a mensagem é do laegado emissor. 3. Se a mensagem inclui um nº de sequência, grante-se sequência de mensagens. mensagens. Usa-se muito o DES. Um código de 16 ou 32 bits é típico. FUNÇÃO HASH DE UM SENTIDO Uma alternativa é a função de hash de um sentido. Ela aceita uma mensagem M tamanho variável como entrada e produz uma mensagem de digest de tamanho fixo H(M) como saída. Ao contrário do MAC não toma como entrada também uma chave secreta. Para autenticar uma mensagem, o digest da mensagem é enviado com a mensagem de tal maneira que o digest da mensagem é autêntico. Há 3 mane maneira iras. s. O dige digest st da mens mensag agem em pode pode ser ser encr encrip ipta tado do usan usando do encr encrip ipta taçã çãoo convencional. a mensagem pode também ser encriptada usando uma encriptação de chave pública, o que tem 2 vantagens: fornece uma assinatura digital para além da autenticação da mensagem, e não requer a distribuição de chaves para os parceiros comunicantes. Estas 2 abordagens têm uma vantagem em relação à que encripta a mensagem toda menos computação. Mas ainda há vantagens em não haver encriptação de todo: - O software de encriptação é muito lento; - O hardware de encriptação é caro - O hardware de encriptação é optimizado voltado para tamanhos de dados grandes - Os algoritmos de encriptação podem estar cobertos por patentes - Os algoritmos de encriptação podem estar sujeitos a controlo de exportação. A figura 3.2c mostra uma técnica que usa uma função de hash mas não encriptação para a autenticação de mensagens. O A e o B partilham um valor secreto comum S AB. Quan Qu ando do A tem tem uma uma mens mensag agem em para para envi enviar ar,, calc calcul ulaa a funç função ão de hash hash sobr sobree a concatenação do valor secreto e da mensagem: MD M = H(SAB||M). Envia então [M|| MDM]. O B possui o valor secreto e recomputa H(S AB||M) e verifica então MD M. como o valor secreto não é enviado, o atacante não pode modificar nem alterar uma mensagem. Uma variação desta técnica, chamada HMAC é adoptada para segurança IP. 3.2. FUNÇÕES HSAH SEGURAS E HMAC REQUISITOS DAS FUNÇÕES DE HASH O propósito de uma função de hash é produzir uma impressão digital de um ficheiro, mensagem, ou outro bloco de dados. Propriedades: 1. H pode ser aplicada a um bloco de dados de qualquer tamanho 2. H produz uma saída de comprimento fixo 3. H() é relativamente fácil de computar 4. Para qualquer valor h, é computacionalmente infazível encontrar x tal que H(x) = h. Propriedade de um sentido .
5. Para qualquer bloco x, é computacionalmente infazível encontrar y != x com H(y) = H(x) - Propriedade de resistência à colisão fraca. 6. É computacionalmente infazível encontrar qualquer par (x,y) tal que H(x) = H(y) Propriedade de resistência à colisão forte . As que satisfazem as 5 primeiras propriedades são conhecidas por funções de hash fracas; se a 6ª propriedade é satisfeita é uma função de hash forte. Em adição a fornecer autenticação, um digest de mensagem também fornece integridade de dados. FUNÇÕES DE HASH SIMPLES Princípios gerais: A entrada é vista como uma sequência de blocos de n-bits. A entrada é processada um bloco de cada vez duma forma iterativa para produzir uma função de hash de n-bits. Uma das mais simples é o XOR bit-a-bit. Uma maneira de melhorar é acrescentar uma rotação do valor de hash depois de cada bloco ser processado: 1. Inicialmente põe o valor do hash dos n-bits a zero 2. Processe cada sucessiveo bloco de n-bits de dados, como se segue: a. Rode o valor de hash corrente à esquerda, de um bit b. XORe o bloco bloco no valor de hash Isto tem o efeito de randomizar a entrada e evitar regularidades da entrada. Embora forneça uma boa medida para integridade de dados, é inútil para segurança de dados quando um código de hash encriptado é usado com uma mensagem de texto original: Dada uma mensagem, é fácil produzir uma nova mensagem que tenha o mesmo código de hash. Mas ainda é útil quando a mensagem, como o código de hash são encriptados. É usado um XOR simples aplicado a blocos de 64-bits da mensagem e depois uma encriptação da mensagem mensagem inteira que usa o bloco de cifra em cadeia (CBC). O SHA-1: FUNÇÃO DE HASH SEGURA O algoritmo toma como entrada uma mensagem com um comprimento máximo de menos de 264 bits e produz como saída um digest de 160-bits. Passo 1: Acescentar bits de enchimento (padding) - sempre Para ter comprimento = 448 mod 512. assim, o nº de bits de enchimento é de 1 a 512. O enchimento consiste de um 1 e o resto 0s. Passo 2: Acrescentar comprimento : Um bloco de 64 bits é adicionado à mensagem e contém o comprimento da mensagem original. A saída dos 2 primeiros passos é uma mensagem que é um inteiro múltiplo de 512 bits em comprimento (Lx512 bits). Equivalentemente, Equivalentemente, o resultado é um múltiplo de 16 palavras de 32 bits (N=Lx16). Passo 3: Inicilaizr o buffer MD : Um buffer de 160 bits é usado para manter os valores intermédios e finais da função de hash. O buffer pode ser rtepresentado como 5 registos de 32-bits (A,B,C,D,E). Estes registos são inicializados com os seguintes inteiros de 32 bits (valores hexadecimais): hexadecimais): A=67452301; B=EFCDAB89; C=98BADCFE; D=10325476; E=C3D2E1F0 Passo 4: Processa a mensagem em blocos de 512-bits (16 palavras ): O coração do algoritmo é um módulo, conhecido como função de compressão , que consiste de 4 voltas de processamento de 20 passos cada. Passo 5: Saída - Um digest de 160-bits O algoritmo SHA-1 tem a propriedade de que cada bita do código de hash é uma função de todos os bits da entrada. OUTRAS FUNÇÕES DE HASH SEGURAS Tal como no caso dos blocos de cifra simétricos, os desenhadores de funções de hash seguras são relutantes em sair de uma estrutura com provas dadas.
Se a função de compressão é resistente à colisão, então também o é a função de hash iterada resultante, pelo que a estrutura pode ser usada para produzir uma função de hash segura para mensagens de qualquer tamanho. ALGORITMO DE DIGEST DE MENSAGEM MD5 Toma como entrada uma mensagem de um tamanho qualquer e produz como saída um digest de mensagem de 128-bits. A entrada é processada em blocos de 512-bits. Para 2 mensagen mensagenss terem o mesmo mesmo digest digest o nº de operações operações necessa´rio necessa´rio é da ordem das 2 64, o que é pouco para segurança. RIPEMD-160 É muit muitoo simi simila larr em estr estrut utur uraa ao SHASHA-1. 1. O algo algori ritm tmoo toma toma como como entra entrada da uma uma mensagem de tamanho arbitrário e produz como output um digest de 160-bit. A entrada é processada em blocos de 512-bits. Tabela 3.1. - Uma comparação de Funções de Hash Seguras MD5 SHA-1 RIPEMD-160 Tamanho do digest 128 bits 160 bits 160 bits Unidad Unidadee básica básica de 512 bits 512 bits 512 bits processamento processamento Número de passos passos 64 (4 voltas de 16) 16) 80 (4 voltas de 20) 20) 160 (5 pares de voltas de 16) 64 Tama Tamanh nhoo máxi máximo mo infinito 2 - 1 bits infinito de mensagem Funções lógicas 4 4 5 primitivas Constante Constantess aditivas aditivas 64 4 9 usadas HMAC Tem crescido o interesse em desenvolver um MAC derivado de um código de hash criptografado. As motivações: - As funções de hash criptográficas geralmente executam-se mais rapidamente em software do que os algoritmos de encriptação convencionais convencionais tasi como o DES. - Bibliotecas de código para funções de hash criptográficas está largamente disponível. - Não há restrições de exportação. O HMAC foi escolhido como mandatório para implementar o MAC para segurança IP. OBJECTIVOS DE DESENHO DO HMAC - Usar, sem modificações, funções de hash disponíveis - Permitir substituição fácil da função de hash emebebida - Preservar a perfomance original da função de hash - Usar e manusear chaves duma forma simples - Ter uma análise criptográfica bem-percebida. ALGORITMO HMAC H = função de hash embebida (e.g. SHA-1) M = mensagem de entrada para o HMAC Yi = bloco de ordem i de M, 0 ≤ i ≤ (L-1) L = nº de blocos de M b = nº de bits num num bloco n = tamanho do código de hash produzido pela função de hash embebida K = chave secreta K + = K enchida com zeros à esquerda, de forma a que o resultado é b bits em comprimento. ipad = 00110110 (36 em hexadecimal) hexadecimal) repetido b/8 vezes
opad = 01011100 (5C em hexadecimal) repetido b/8 vezes Então o HMAC pode ser expresso: HMACK (M) (M) = H[(K + ⊕ opad) || H[K + ⊕ ipad) || M]] Em palavras: 1. Adiciona zeros à esquerda do fim de K para criar uma string K + de b-bits (e.g. se K é do tamanho de 160 bits e b=512, então K será adicionado com 44 bytes zero 0x00) 2. XOR K + com o ipad para produzir o bloco de b-bit S i 3. Adiciona M a S i 4. Aplica H à stream gerada no passo 3. 5. XOR K + com o opad para produzir o bloco de b-bit S o 6. Adiciona o resultado hash do passo 4 a S o 7. aplica H à stream gerada no passo 6 e sai o resultado. 3.3. PRINCÍPIOS DE CRIPTOGRAFIA DE CHAVE-PÚBLICA De igual importância à encriptação convencional é a encriptação de chave-pública, que encontra uso nas autenticações de mensagens e distribuições de chaves. ESTRUTURA DA ENCRIPTAÇÃO DE CHAVE-PÚBLICA É a primeira verdadeiramente revolucionário avanço na encriptação em milhares de anos. São baseados em funções matemáticas, é assimétrica, envolve o uso de 2 chaves separadas. Uma confusão comum, que convém esclarecer: não há nada que faça uma superior à outra. Outra confusão é que a convencional seria agora obsoleta, o que é falso. Devido ao overhead computacional da chave-pública, não será abandonada. Há também a ideia que a distri distribui buição ção de chave chavess é trivial trivial,, mas mas de facto facto proce procedim diment entos os e protoc protocolo oloss envolvidos não são simples ou mais eficientes. Um esquema de encriptação por chave-pública tem 6 ingredientes: - Texto Original: é a mensagem de entrada - Algoritmo de Encriptação - são as transformações - Chaves Pública e Privada : Se uma é usada para encriptação, a outra é usada para desencriptação. desencriptação. As transformações exactas que o algoritmo executa dependem da chave pública ou da privada. privada. - Texto Cifrado Desencriptação - Algoritmo de Desencriptação Os passos essenciais são: 1. Cada utilizador gera um par de chaves para ser usado na encriptação e desencriptação desencriptação das mensagens 2. Cada utilizador coloca uma das 2 chaves num registo público ou outro ficheiro acessível 3. Se o Bob quer enviar uma mensagem privada a Alice, encripta a mensagem usando a chave pública de Alice 4. Quando Alice recebe a mensagem, mensagem, ela desencripta-a usando a sua chave privada. Em termos globais, podemos classificar o uso de sistemas de criptografia e chave pública em 3 categorias: categorias: Desencriptação - Encriptação / Desencriptação - Assinatura Digital : o emissor “assina” uma mensagem com a sua chave privada - Troca de Chaves REQUISITOS PARA CRIPTOGRAFIA DE CHAVE-PÚBLICA Os algoritmos devem preencher: 1. É computacinalmente fácil para um B gerar um par (chave pública KU b, chave privada KR b)
2. É computacionalmente fácil para um emissor A, sabendo a chave pública e a mensagem a ser encriptada, M, gerar o correspondente texto cifrado: C = EKub (M) 3. É computacionalmente fácil para o receptor B desencriptar o texto cifrado usando a chave privada para recuperar a mensagem original: M = D KRb(C) = DKRb[EKub(M)] 4. É computacionalmente infasível para um oponente, sabendo a chave pública, KU b, determinar a chave privada, KR b. b. 5. É computacionalmente infasível para um oponente, sabendo a chave pública, KU b, e o texto cifrado, C, recuperar a mensagem original, M. 6. Qualquer uma das chaves relacionadas pode ser usada para encriptação, com a outra usada para desencriptação. M = D KRb[EKub(M)] = DKub[EKRb(M)] Tabela 3.2. Aplicações para os sistemas de encriptação de chave-pública Algoritmo Encriptação/Desencriptação Assinatura Troca de Chaves Digital RSA Sim Sim Sim Diffie-Hellman Não Não Sim DSS Não Sim Não Elliptic Curve Sim Sim Sim 3.4. ALGORITMOS DE CRIPTOGRAFIA DE CHAVE PÚBLICA O ALGORITMO DE ENCRIPTAÇÃO DE CHAVE PÚBLICA RSA C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n Ambos o emissor e o receptor r eceptor têm de saber os valores de n e e, e apenas o receptor sabe o valor de d. Requisitos que devem ser encontrados: 1. É possível encontrar valores de e, d, n tais que M ed = M mod n para todo o M < n 2. É relativamente fácil calcular M e e Cd para todos os valores de M
112 mod 187 = 121 114 mod 187 = 14641 mod 187 =55 118 mod 187 = 214358881 mod 187 = 33 1123 mod 187 = (11x121x55x33x33) mod 187 = 79720245 mod 187 = 88 Há 2 abordagens para desfeitear o RSA: A força bruta: Tenatr todas as chaves possíveis. Assim, quanto maior for o nº de bits em e e d, mais seguro é o algoritmo. Contudo isso diminui a velocidade do sistema. Outra é a criptoanálise. Correntemente usa-se uma chave do tamanho dos 1024-bits. TROCA DE CHAVES DE DIFFIE-HELLMAN DI FFIE-HELLMAN O prop propós ósit itoo do algo algori ritm tmoo é perm permit itir ir 2 util utiliz izad ador ores es troc trocar arem em uma uma chav chavee secr secret etaa seguramente e que possa ser usada na encriptação de subsequentes mensagens. mensagens. O algoritmo depende da dificuldade que há em computar logaritmos discretos, que são: primeiro definimos uma raiz primitiva de um nº primo p como um cujas potências geram todos os inteiros de 1 a p-1. Isto é, se a é uma raiz primitiva de nº primo p, então os nºs a mod p, a 2 mod p,..., a p-1 mod p são distintos e consistem nos inteiros de 1 a p-1 numa qualquer permutação. Para qualquer inteiro b menor que p e uma raiz primitiva a do nº primo p, podemos encontrar um único expoente i tal que b = ai mod p onde 0 ≤ i ≤ (p-1) O expoente i é referido como o logaritmo discreto, ou index, de b para a base a mod p. Este valor é denotado por ind a,p(b). Há 2 nºs públicos: um primo q e um inteiro α que é a raiz primitiva de q. Suponha que os utilizadores A e B querem trocar uma chave. O A selecciona um inteiro randómico XA < q e computa Y A = αXA mod q. Similarmente B selecciona randómicamente o inteiro XB < q e computa Y B = αXB mod q. Cada lado mantém o valor X privado e faz o valor Y disponível publicamente para o outro lado. O A computa a chave como K = (YBXA) mod q e o B K = (Y AXB) mod q. Estes 2 cálculos produzem resultados idênticos: A segurança do Diffie-Hellman para troca de chaves baseia-se em que enquanto é relativamente fácil calcular exponenciais módulo um primo, é muito difícil calcular logaritmos discretos. Por ex: seleccionando q=71 e α=7. a e B seleccionam X A = 5 e XB=12. Cada um computa a sua chave: YA = 75 mod 71 = 51 YB = 712 mod 71 = 4 Depois de trocarem as chaves públicas, cada qual pode computar a chave secreta comum: K = (YBXA) mod 71 = 45 mod 71 = 30 K = (YAXB) mod 71 = 512 mod 71 = 30 Um atacante não consegue computar facilmente 30 de {51,4}. Um protocolo simples é. A quer usar uma chave secreta para encriptar. gera uma chave XA, calcula YA, e envia-a a B. O B responde gerando o seu valor privado X B, calculando YB e enviando-o a A. ambos podem agora calcular a chave. Os necessa´rios valores públicos q e α devem ser conhecidos antecipadamente. Alternativamente o A pode picar valores para q e α e incluí-los na primeira mensagem. OUTROS ALGORITMOS CRIPTOGRÁFICOS DE CHAVE-PÚBLICA DIGITAL SIGNATURE STANDARD Faz uso do SHA-1 ELLIPTIC-CURVE CRIPTOGRAFIA A principal atracção do ECC comparado com o RSA é que parace ter a mesma segurança para um muito mais pequeno tamanho. 3.5. ASSINATURAS DIGITAIS
Bob usa a sua chave privada para encriptar a mensagem. Quando Alice recebe o texto cifrado, ela sabe que pode desencriptá-la usando a chave pública do Bob, assim provando que que a mensagem foi encriptada pelo Bob. Também é autenticada em termos de integridade de dados, para além da fonte. Uma maneira mais eficiente de atingir os mesmos resultados é encriptar um pequeno bloco de bits que é uma função do documento. documento. Tal bloco, cahamado autenticador deve ter a propriedade de que é infazível mudar o documento sem mudar o autenticador. Mesmo no caso de encriptação completa, não há protecção de confidencialidade confidencialidade porque qualquer observador pode desencriptar a mensagem usando a chave pública do emissor. 3.6. GESTÃO DE CHAVES 2 distintos aspectos: - A distribuição e chaves públicas - O uso de encriptação de chave-pública para distribuir chaves privadas. CERTIFICADOS CHAVE-PÚBLICA Qualquer um pode forjar tal anúncio público. a solução é o certificado chave-pública. Consiste numa chave públicamais um ID de utilizador do dono da chave, com todo o bloco assinado por uma parte de confiança. Um utilizador pode apresentar a sua chave pública à autoridade de uma maneira segura e obter um certificado. O utilizador pode então publicar o certificado. Qualquer um precisando esta chave pública pode obter o certificado e verificar que é válido pela assinatura de confiança anexada. anexada. DISTRIBUIÇÃO DE CHAVES SECRETAS POR CHAVE PÚBLICA Ou entrego à mão. Uma abordagem é usar a troca de chaves por Diffie-Hellman. Embora muito usada tem um defeito que não prover aurtenticação dos 2 pares comunicantes. Uma alternativa mais forte é o usos de certificados de chave-pública. chave-pública. bob quer alice: 1. Prepara a mensagem 2. Encripta-a usando encriptação convencional com um chave de sessão convencional de uma-vez. 3. encripta a chave de sessão usando a encriptação de chave-pública com a chave pública da Alice. Alice. 4. Anexa a chave de sessão encriptada à mensagem e envia-a a Alice. 3.1. Liste 3 abordagens da autenticação de mensagens. 3.2. O que é um código de autenticação de mensagem? 3.3. Descreva brevemente os 3 esquemas ilustrados na figura 3.2. 3.4. Que propriedades deve uma função de hash ter para ser útil para a autenticação de mensagens? 3.5. No contexto de uma função de hash, o que é uma função de compressão? 3.6. Quais são os principais ingredientes de um criptosistema de chave-pública? 3.7. Liste e defina brevemente 3 utilizações de um criptosistema de chave-pública chave-pública.. 3.8. Qual é a diferença entre uma chave privada e uma chave secreta? 3.9. O que é uma assinatura digital? 3.10. O que é um certificado de chave-pública? 3.11. Como pode a encriptação de chave-pública ser usada para distribuir uma chave secreta?
PARTE 2 - APLICAÇÕES DE SEGURANÇA DE REDES CAPÍTULO 4 4.1. KERBEROS
APLICAÇÕES DE AUTENTICAÇÃO
É um serviço de autenticação. autenticação. O problema que trata é: Assume um ambiente distribuído e aberto no qual utilizadores nas estações de trabalho querem aceder a serviços em servidores distribuídos pela rede. Em particular as seguintes 3 ameaças existem: - Um utilizador pode ganhar acesso a uma workstation particular e pretender ser outro utilizador - Um utilizador pode alterar o endereço de rede de uma workstation - Um utilizador pode apanhar, mudar e usar um ataque de replicação para entrar num servidor ou disromper operações. O Kerberos fornece um servidor de autentyicação central cuja função é autenticar utiliz utilizado adores res a servid servidore oress e vice-v vice-vers ersda. da. Baseia Baseia-se -se exclus exclusiva ivamen mente te na encri encripta ptação ção simétrica, ao contrário de outros. MOTIVAÇÃO O mais comum é uma arquitectura distribuída, ambiente no qual pode ser divisadas 3 abordagens à segurança: 1. Baseada em cada workstation cliente individual para assegurar a identidade do seu utiliz utilizado adora ra ou utiliz utilizado adores res e basear basear em cada cada servid servidor or o força forçarr e uma política política de segurança baseada baseada na identificação do utilizador (ID). 2. Requerer que sistemas cliente se autentiquem aos servidores, mas confiar no sistema cliente no que concerne à identidade do seu utilizador. 3. Requerer ao utilizador que prove a sua identidade para cada serviço invocado. Também rquer que os servidores provem a sua identidade aos clientes. Requisitos para o Kerberos: - Seguro - Fiável - Transparente - Escalável KERBEROS VERSÃO 4 UM DIÁLOGO DE AUTENTICAÇÃO SIMPLES Num ambiente e rede não protegido há o perigo da personificação. Cada servidor pode ser obrigado a tomar conta desta tarefa para cada interacção cliente/servidor, mas num ambiente aberto, isso coloca uma substancial carga em cada servidor. Uma alternativa é usar usar um serv servid idor or de aute autent ntic icaç ação ão (AS) (AS) que que conh conhec ecee as pass passwo word rdss de todo todoss os utilizadores e armazena-as numa base de dados centralizada. Em adição, o AS partilha uma única chave secreta com cada servidor. (1) C AS: IDC || IDV (2) AS C: Ticket (3) C V: IDC || Ticket Ticket = E Kv[IDC || ADC || IDV] com: C = Cliente AS = Servidor de Autenticação V = Servidor IDC = Identificador do Utilizador em C IDV = Identificador de V PC = Password do Utilizador em C ADC = Endereço de Rede de C K V = Chave de Encriptação Secreta partilhada por AS e V || = concatenação concatenação O AS checa a sua base de dados para ver se o utilizador forneceu a password própria para este ID de utilizador utilizador e se este utilizador utilizador é permitido aceder aceder a servidor V. Porque o ticket está encriptado, ele não pode ser alterado por C ou por um oponente.
Com este ticket, C pode agora aplicar-se a V para serviço. V desencripta o ticket e verifica que o ID de utilizador no ticket é o mesmo que o ID de utilizador não-criptado na mensagem. Se estes 2 baterem, o servidfor considera o utilizador autenticado e garante o serviço pedido. Finalmente ADC serve para contarriar a seguinte ameaça: Um oponente pode capturar o tick ticket et tran transm smit itid idoo na mens mensag agem em (2), (2), depo depois is usar usar o nome nome ID C e trans transmi miti tirr uma uma mensagem da forma (3) de outra workstation. UM DIÁLOGO DE AUTENTICAÇÃO MAIS SEGURO Há 2 problemas que permanecem. Primeiro, gostaríamos d eminimizar o nº de vezes que um utilizador tem de entrar um password. Se C quer checar o mail várias vezes durante o dia. Podemos melhorar dizendo que os tickets são reutilizáveis. Para uma sesão de logon simples. Contudo, permanece o caso que o utilizador precisa de um novo ticket para cada um novo serviço diferente. O segundo problema é que o cenário anterior envolvendo uma transmissão do password em pleno texto [mensagem (1)]. Um escuta pode capturar o password e utilizar qualquer serviço acessível à vítima. Para Para resolv resolver er estes estes proble problema mass adici adicion onais ais,, introd introduzi uzimo moss um esque esquema ma para para evita evitar r passwords em pleno texto e um novo servidor, conhecido como servidor garantia-detickets (TGS): Uma vez por sessão de logon de utilizador: (1) C AS: IDC || IDtgs (2) AS C EKC [Tickettgs] Uma vez por tipo de serviço: (3) C TGS: IDC || IDV | Ticket tgs (4) TGS C: Ticketv Uma vez por sessão de serviço (5) C --Z V: IDC || Ticketv Tickettgs = EKtgs [IDC || ADC || IDtgs || TS1 || Lifetime1] Tickettgs = EKv [IDC || ADC || IDv || TS2 || Lifetime2] 1. O cliente requisita um ticket-de-garantia on behalf do utilizador enviando o ID de utilizador ao AS, junto com o ID de TGS, indicando um pedido para usar o serviço do TGS. 2. O AS responde com um ticket encriptado com uma chave que é derivada do password do utilizador. Quando esta resposta chega ao cliente, o cliente prompt ao utilizador para o seu password, gera a chave, e tenta desencriptar a mensagem que chegou. se o password correcto correcto é fornecido o ticket ticket é recuperado com com sucesso. Assim, o ticket granting-ticket é reutilizável. Contudo, não queremos que um oponente seja seja capa capazz de capt captur urar ar o tick ticket et e usáusá-lo lo.. Para Para cont contar arria riarr isso isso o tick ticket et incl inclui ui um timestamp, indicando a data e hora à qual o ticket foi editado, e um tempo de vida, indicando otamanho do tempo para o qual é válido (e.g. 8 horas). 3. O cliente requisita um ticket de garantia-de-serviço on behalf do utilizador. 4. O TGS desencripta o ticket que chegou e verifica o sucesso da desencriptação pela presença do seu ID. De novo, o ticket contém um timestamp timestamp e lifetime. 5. O cliente requisita acesso ao serviço on behalf do utilizador. O DIÁLOGO DE AUTENTICAÇÃO DA VERSÃO 4 2 problemas permanecem. O coração do primeiro é o tempo de vida associado com o ticket granting-ticket. Assim, chegamos a um requisito adicional. Um serviço de rede (o TGS ou um serviço de aplicação) deve ser capaz de provar que a pessoa usando o ticket é a mesma pessoa a quem o ticket foi editado.
O segundo problema é que pode haver um pedido para servidores para se autenticarem eles próprios aos utilizadores. O AS fornece a ambos o cliente e o TGS com uma peça secreta de informação de uma mane maneira ira segu segura ra.. Uma Uma mane maneira ira efic eficie ient ntee de cons conseg egui uirr isso isso é usar usar uma uma chav chavee de encriptação como informação segura; isto é referido como uma chave de sessão no Kerberos. Como antes, o cliente envia uma mensagem ao AS requisitando acesso ao TGS. O AS responde com uma mensagem, encriptada com uma chave derivada do password do utilizador (K C), que contém o ticket. A mesnagem encriptada também contém uma cópia da chave de sessão. Armado com o ticket e a chave de sessão, C está pronto para a aproximação ao TGS. Como antes, C envia ao TGS uma mensagem que inclui o ticket mais o ID do serviço requisitado. Em adição, C transmite um autenticador, o qual inclui o ID e endereço do utilizador de C e um timestamp. A ameaça de que um oponente roube o ticket e o autenticador para apresentar mais tarde está contrariada. Se autenticação mútua for requerida, o servidor retorna o valor do timestamp do autenticador, incrementada de 1, e encriptada na chave de sessão. C pode desencriptar esta mensagem para recuperar o timestamp incrementado. Porque a mensagem foi encriptada pela chave de sessão, C está seguro que ela só pode ter sido criada por V. REALMS DO KERBEROS E KERBERI MÚLTIPLOS Um ambiente Kerberos de serviço-completo consistindo de um servidor Kerberos, um nº de clientes, e um nº de servidores de aplicação requer: 1. O servidor Kerberos deve ter o ID do utilizador (UID) e passwords hashed de todos os utilizadores participantes na base de dados. 2. O servidor Kerberos deve partilhar uma chave secreta com cada servidor. Tal ambiente é referido como tendo uma realm. Para 2 realms suportarem autenticação inter-realm, um 3º requisito é acrescentado: 3. O servidor Kerberos em cada realm interoperacional partilha uma chave secreta com o servidor na outra realm. DIFERENÇAS ENTRE AS VERSÕES 4 E 5 A vers versão ão 5 foi foi inte intend ndid idaa para para ende endere reça çarr as limi limita taçõ ções es da vers versão ão 4 em 2 área áreas: s: insuficiências de ambiente e deficências técnicas. Insuficiências de ambiente: 1. Dependência do Sistema de Encriptação : A versão 4 requer o uso do DES. Restrições de exportação do DES asim como dúvidas acerca da sua força são assim concernadas. concernadas. Na 5, qualquer técnica de encriptação pode ser usada. 2. Dependência do Protocolo de Internet : A versão 4 requer o uso de endereços IP; a 5 permite que qualquer tipo de endereço de rede poe ser usado. 3. Ordenação dos Bytes da Mensagem 4. Tempo de Vida do Ticket : na versão 4 os valores são codificados numa quantidade de 8-bits em unidades de 5 minutos. Assim, o máximo é 2 8 x 5 = 1280 minutos, ou cerca de 21 horas. No 5 é arbitrário 5. Encaminhamento de Autenticação : A 4 não permite que credenciais editadas para um cliente possam ser encminhadas para outro host e usadas por outro cliente. 6. Autenticação Inter-Realm : A 5 requer menos relações. Deficiências Técnicas: 1. Encriptação Dupla: Os tickets fornecidos aos clientes são encriptados 2 vezes. 2. Encriptação PCBC : A encriptação na versão 4 faz uso de um modo não-standadr do DES conhecido como cadeia depropagação de blocos (PCBC). Foi demonstrado que
este modo é vulnerável a um ataque envolvendo a intermutabilidade de blocos de texto cifrado. 3. Chaves de Sessão : Cada ticket inclui um chave de sessão que é usada pelo cliente para encriptar o autenticador enviado para o serviço associado com esse ticket. Em adição, a chave de sessão pode subsequentemente ser usada pelo cliente e pelo servidor para proteger mensagens mensagens passadas durante essa sessão. sessão. Contudo, porque o mesmo mesmo ticket pode ser usado repetidamente para ganhar serviço de um servidor particular, há o risco que um oponente repita mensagens de um sessão velha para o cliente ou para o servidor. Na versão 5 há possibilidade de uma chave de subsessão, subsessão, a qual é para ser ser usada apenas apenas para aquela conexão. conexão. 4. Ataques de Password : Ambas as versões são vulneráveis. 4.2. SERVIÇO DE AUTENTICAÇÃO X.509 Define um serviço de directório, que é um servidor ou um conjunto distribuído de servidores que mantêm uma base de dados de informação acerca dos utilizadores. O X.509 define uma framework para a provisão e serviços de autenticação. O directório pode servir como como repositório de certificados certificados de chaves-públicas. chaves-públicas. X.509 é um importante standard, usado em S/MIME, Segurança IP e SSL/TLS e SET. X.509 é baseado no uso de criptografia de chave-pública e assinatura digital, com uso de função de hash. CERTIFICADOS O coração do esquema X.509 é o certificado de chave pública associado com cada utilizador. O certificado inclui os elementos: - Versão : do formato do certificado - Número de Série - Identificador de Algoritmo de Assinatura - Nome do Editor : Nome X.500 do CA que criou e assinou este certificado. - Período de Validade - Nome do Sujeito: o nome do utilizador - Informação da Chave-Pública do Sujeito - Assinatura: Cobre todos os outros campos do certificado; contém o código de hash dos outros campos, encriptado com a chave privada do CA. Este campo inclui o identificador de algoritmo de assinatura. OBTENÇÃO DE UM CERTIFICADO DE UTILIZADOR Os certificados de utilizador gerados por um CA tem as seguintes características: - Qualquer utilizador com acesso à chave pública do CA pode verificar a chave de utilizador que foi certificada. - Nenhuma outra parte a não ser a autoridade de certificação poe modificar o certificado sem isso ser detectado. Os certificados são infalsificáveis. Cada utilizador participante tem de ter uma cópia da chave pública do CA para verificar assinaturas. Esta chave pública tem de ser fornecida a cada utilizador duma forma absolutamente segura. Assim, com muitos utilizadores, pode ser mais prático para eles haver um nº de CAs, cada qual fornece de forma segura a sua chave pública a alguma fracção de utilizadores. Se 2 Cas Cas troc trocar aram am segu segura rame mente nte as suas suas próp própri rias as chav chaves es públ públic icas as,, o segu seguin inte te procedimento permitirá permitirá A a obter a chave pública de B: 1. A obtém, do directório, o certificado de X 2 assinado por X 1. Porque A seguramente conhece a chave pública de X 1, A pode obter a chave pública de X 2 do seu certificado e verificá-la por meio da assinatura de X 1 no certificado.
2. A então volta ao directório e obtém o certificado d eB assinado por X 2. Porque A agora tem uma cópia de confiança da chave pública de X 2, A pode verificar a assinatura e seguramente obter a chave pública de B. Esta cadeia tem a notação: X 1<>X2<> este esquema não é limitado a uma cadeia de 2 certificados. O X.509 sugere que os Cas devem ter uma forma hierárquica. A entrada de directório para cada CA inclui 2 tipos de certificados: - Certificados de Encaminhamento : Certificados de X gerados por outros Cas - Certificados Reversos : Certificados gerados por X que são certificados de outros Cas. REVOGAÇÃO DE CERTIFICADOS Razões: 1. A chave privada do utilizador foi comprometida. 2. O utilizador já não é certificado por este CA 3. O certificado do CA foi comprometido Quando um utilizador recebe um certificado numa mensagem, o utilizador tem de determinar se o certificado foi f oi revogado, mantendo uma cache de revogados para não se perder tempo na busca. busca. PROCEDIMENTOS DE AUTENTICAÇÃO AUTENTICAÇÃO ONE-WAY Envolve uma única transferência de informação e estabelece: 1. A identidade de de A e que a mensagem mensagem foi gerada por por A 2. Que a mensagem era intendida para B 3. A integridade e originalidade (não foi enviada múltiplas vezes) da mensagem. No mínimo, a mensagem inclui um timestamp t A, um nonce r A, e a identidade de B e é assinada com a chave privada de A. AUTENTICAÇÃO TWO-WAY Em adição: 4. A identidade de B e que a mensagem de resposta foi gerada por B 5. Que a mensagem foi intendida para A 6. A integridade e originalidade da resposta AUTENTICAÇÃO THREE-WAY Uma mensagem final de A para B contém uma cópia assinada do nonce r B. 4.1. Que problema foi o Kerberos desenhado para resolver? 4.2. Quais são as 3 ameaças associadas com a autenticação de utilizador sobre uma rede ou Internet? 4.3. Liste 3 abordagens para autenticação de utilizador segura num ambiente distribuído. 4.4. Que 4 requisitos foram definidos para o Kerberos? 4.5. Que entidades constituem um ambiente Kerberos de serviço-completo? 4.6. No contexto do Keberos, o que é um realm/domínio/área? 4.7. Quais são as principais diferenças entre a versão 4 e a versão 5 do Kerberos? 4.8. Qual é o propósito do standard X.509? 4.9. O que é uma cadeia de certificados? 4.10. Como é revogado um certificado X.509?
CAPÍTULO 5 SEGURANÇA DE CORREIO ELECTRÓNICO 5.1. PRETTY GOOD PRIVACY PGP fornece um serviço de confidencialidade e autenticação que pode ser usado por aplicações de e-mail e armazenamento armazenamento de ficheiros. O que foi feito:
1. Selecc Seleccion ionar ar os melho melhores res algori algoritmo tmoss de encrip encriptaç tação ão dispon disponíve íveis is como como blocos blocos de construção. 2. Integrar estes algoritmos numa aplicação de uso geral que é independente do SO e processador e que é baseada baseada num pequeno pequeno conjunto de comandos comandos fáceis de usar. 3. Fazer o pacote e a sua documentação, incluindo o código fonte, livre e disponível via Internet 4. Entra Entrarr num num acor acordo do com com uma uma comp compan anhi hiaa para para forn fornec ecer er uma uma comp comple leta tame ment ntee compatível, e de baixo custo, versão comercial do PGP. Razões do crescimento de uso: 1. Está disponível livremente em todo o mundo em versões que correm numa variedade de paltaformas. 2. É baseado em algoritmos que sobreviveram extensivamente a revisões públicas e são considerados extremamente seguros. 3. Tem um largo escopo de aplicabilidade. 4. Não foi desenvolvido, desenvolvido, nem é controlado, por qualquer organização governamental ou de standards. 5. PGP está agora na calha para ser um standard de Internet. NOTAÇÃO K S = chave de sessão usada num esquema de encriptação simétrico KR a = chave privada do utilizador A, usada num esquema de encriptação de chave pública KUa = chave pública do utilizador A, usada num esquema de encriptação de chave pública EP = encriptação de chave pública DP = desencriptação desencriptação de chave-pública EC = encriptação simétrica DC = desencriptação simétrica H = função de hash || = concatenação concatenação Z = compressão usando o algoritmo ZIP R64 = conversão para o formato ASCII radix 64 DESCRIÇÃO OPERACIONAL Consiste em 5 serviços: autenticação, confidencialidade, compressão, compatibilidade e-mail e segmentação. segmentação. AUTENTICAÇÃO A sequência da assinatura digital é: 1. O emissor cria uma mensagem 2. O SHA-1 é usado para gerar um código hash da mensagem de 160-bit 3. O código hash é encriptado com RSA usando a chave privada deo emissor, e o resultado é preposto à mensagem. 4. O receptor usa o RSA com a chave pública do emissor para desencriptar desencriptar e recuperar o código hash 5. O receptor gera um novo código hash para a mensagem e compara-o com o código de hash desencriptado. Se baterem a mensagem é aceite como autêntica. A combinação do SHA-1 e RSA fornece um efectivo esquema de assinatura digital. Assinaturas depositadas (detached) são suportadas. Por ex. quando um utilizador pode querer manter um log separado de assinaturas de todas as mensagens enviadas ou recebidas; Mais de um parceiro tem de assinar um documento, tal como num contrato legal. CONFIDENCIALIDADE
É fornec fornecida ida encri encripta ptando ndo mensa mensagen genss a ser transm transmiti itidas das ou a serem serem armaz armazena enadas das localmente como ficheiros. O algoritmo é o CAST-128 ou, alternativamente, alternativamente, o IDEA ou 3DES. No PGP, cada chave simétrica é usada paenas uma vez e, por isso, a chave de sessão é junta à mensagem e transmitida com ela, encriptada com a chave pública do receptor. A sequÊncia é: 1. O emissor gera uma mensagem e um nº randómico de 128-bit para ser usado como chave de sessão apenas para essas mensagem. 2. A mensagem é encriptada, usando o CAST-128 (ou IDEA ou 3DES) com a chave de sessão. 3. A chave de sessão é encriptada com RSA, usando a chave pública do receptor e é prépendida à mensagem. mensagem. 4. O receptor usa o RSA com a sua chave privada para desencriptar e recuperar a chave de sessão. 5. A chave de sessão é usada para desencriptar a mensagem. Obs: Primeiro, para reduzir o tempo de encriptação, usa-se o CAST-128 que são substancialmente substancialmente mais rápidos que o RSA ou ElGamal. Segundo, o uso do algoritmo de chave-pública resolve o problema da distribuição da chave de sessão. Além disso, dada a natureza store-and-forward do e-mail, o uso de aperto-de-mão para assegurar que ambos os lados têm a mesma chave de sessão não é prático. Desde que o algoritmo de chave-pública chave-pública seja seguro, todo o esquema é seguro. CONFIDENCIALIDADE E AUTENTICAÇÃO Primeiro, uma assinatura é gerada para a mensagem original e prépendida à mensagem. Depois a mensagem original mais a ssinatura é encriptada usando o CAST-128 (ou IDEA ou 3DES), e a chave de sessão é encriptada usando o RSA (ou ElGamal). COMPRESSÃO Como defeito, o PGP comprime a mensagem depois de aplicar a assinatura mas antes da encriptação. Isto tem o benefício de salvar espaço quer para a transmissão de e-mail quer para armazenamento: armazenamento: 1. A assinatura é gerada antes da compressão por 2 razões: a) Pode Podemo moss assi assim m arma armaze zena narr apen apenas as a mens mensag agem em não não comp comprim rimid idaa junt juntoo com com a assinatura para verificação futura. b) A compressão compressão PGP é não-determinística não-determinística 2. A encriptação à mesnagem é aplicada depois da compressão para reforçar a segurança criptográfica. O algoritmo de compressão usado é o ZIP. COMPATIBILIDADE DE EMAIL Contudo, muitos sistemas de e-mail apenas permitem o uso de blocos consistino de texto ASCII. Então o PGP fornece o serviço de converter o stream rústico de 8-bit em um stream de caracteres ASCII imprimíveis. SEGMENTAÇÃO E REASSEMBLAGEM As facilidades de e-mail estão frequentemente restringidas a um tamanho máximo de mensagem, por ex. 50000 octetos. CHAVES CRIPTOGRÁFICAS E ANÉIS DE CHAVES O PGP faz uso de 4 tipos de chaves: chaves simétricas de sessão vez-única; chaves públicas; chaves chaves privadas; chaves chaves simétricas baseadas baseadas em frase passe. passe. Estas cahves apresentam 3 requisitos: r equisitos: 1. É preciso um meio de gerar chaves de sessão não adivinháveis 2. Gostar Gostaríam íamos os de permit permitir ir que um utiliz utilizado adorr tivess tivessee múltip múltiplos los pares pares de chave chave- pública/chave-privada. pública/chave-privada. Assim, algum meio meio é preciso para ientificar ientificar chaves particulares. particulares. 3. Cada entidade PGP tem de manter um ficheiro dos seus pares chave pública/privada assim como um ficheiro de chaves-públicas dos seus correspondentes. correspondentes.
GERAÇÃO DE CHAVES DE SESSÃO IDENTIFICADORES DE CHAVES CHAVES ANÉIS DE CHAVES CHAVES GESTÃO DE CHAVES-PÚBLICAS APROXIMAÇÕES À GESTÃO GESTÃO DE CHAVES PÚBLICAS PÚBLICAS O USO DA CONFIANÇA REVOGAÇÃO DE CHAVES CHAVES PÚBLICAS 5.2. S/MIME S/MIME (Secure/Multiprupose Internet Mail Extension) emergirá como o standard da indústria para uso comercial e organizacional. organizacional. RFC 822 Define um formato para mensagens de texto que são enviadas usando e-mail. As mensagens são vistas como um envelope e conteúdo, contendo o primeiro a informação necessa´ria para atingir a transmissão e entrega. O RFC 822 standard aplica-se apenas ao conteúdo. Contudo, o conteúdo standard inclui um conjunto de campos de cabeçalho que pode ser usado pelo sistema de mail para criar o envelope. Uma mensagem consiste de algum nº de linhas de cabeçalho (the header) seguido de texto irrestrito (the body). São separados por uma linha em branco. Uma linha de cabeçalho consiste numa palavra chave, seguida de uma vírgula e dos argumentos da chave. As palavras chave mais usadas são: From, To, Subject, e Date. Um outro campo é o Message-ID. EXTENSÕES MULTIPROPÓSITO DE MAIL INTERNET MIME é uma extensão ao RFC 822 e tem a intenção de tratar alguns problemas e limitações do uso do SMTP. Limitações: 1. O SMTP não pode transmitir ficheiros executáveis ou outros objectos binários 2. SMTP não pode transmitir dados de texto que incluam caracteres de linguagem nacionais. 3. Os servidores de SMTP podem rejeitar mensagens de mail acima de um dado tamanho. 4. Transmissões entre ASCII e EBCDIC pelos gateways de SMTP dão problemas de transmissão 5. Os gateways de SMTP para redes de e-mail X.400 não conseguem lidar com dados não-textuais, incluindo mensagens X.400 6. Algumas implementações de SMTP não aderem completamente aos standards SMTP VISÃO GLOBAL A especificação MIME inclui os seguintes elementos: 1. 5 novos campos de cabeçalho são definidos. Fornecem informação acerca do corpo da mensagem 2. Um nº de formatos de conteúdo são definidos, para suportar multimedia 3. Codificações de transferência são definidas para permitir a conversão Os 5 campos são: - MIME-Version - Content-Type - Content-Transfer-Encoding Content-Transfer-Encoding - Content-ID - Content-Description TIPOS DE CONTEÚDO MIME São 7 tipos e 15 subtipos: Para o tipo texto, os subtipos são plain text (strings de caracteres ASCII ou ISO) e o enriched , que permite grande flexibilidade de formatação.
O multipart type indica que o corpo contém múltiplas partes, independentes. Há 4 subtipos: mixed subtype é usado quando é preciso enviar as partes por uma dada ordem; no parallel subtype a ordem não é significativa (ex: uma imagem com música de fundo); No alternative subtype , as várias partes são diferentes represenatç~eos da mesma informação (tem a ver com as capacidades do sistema do receptor, por ex. de formatação); o digest subtype permite a construção de uma mesnagem cujas partes são mensagens individuais, individuais, por ex. para moderadores de grupos. O message type fornece um nº de capacidades importantes no MIME. O message/rfc 822 subtype indica que o corpo é uma mensagem inteira incluindo um cabeçalho e um corpo; o partial subtype permite fragmentação de uma mensagem grande em partes; o external-body subtype indica que o corpo contém a informação necessa´ria para aceder aos dados. O application type refere-se a outros tipos de dados, binários. CODIFICAÇÕES DE TRANSFERÊNCIA MIME O outro componente maior da especificação MIME é a definição de codificações e transferência para corpos de mensagem. O objectivo é fornecer entrega fiável através do maior espectro de ambientes. Para a transferência SMTP, é seguro usar a forma 7bit. As formas 8bit e binária pode ser usável usável em outros contextos contextos de transporte transporte de mail. mail. Outro valor é o x-token, x-token, que indica indica que algum outro esquema de codificação foi usado, para o qual um nome é fornecido. Os 2 esquemas de codificação usados são o quoted-printable e o base64. A codificação de transferência quoted-printable é útil quando os dados consistem largamente em octetos que correspondem a caracteres ASCII printáveis. A codificação de transferência base64, também conhecida por radix-64, é comum para codificar dados binários arbitrários. FORMA CANÓNICA É um formato, apropriado ao tipo do conteúdo, que está standardizado para uso entre sistemas. FUNCIONALIDADE S/MIME Em term termos os de func funcio iona nali lida dade de o SMIME SMIME é simi simila larr ao PGP. PGP. Ambo Amboss ofer oferec ecem em a capacidade de assinar e/ou encriptar mensagens. mensagens. FUNÇÕES - Enveloped Data : Conteúdo encriptado - Signed Data: Uma assinatura digital é formada tomando o digest da mensagem do conteúdo da mensagem a ser assinada e depois encriptando isso com a chave privada do assinante. O conteúdo mais a assinatura são depois codificados usando o código base64. Uma Uma mens mensag agme me de dado dadoss assi assina nada da pode pode apen apenas as ser ser vist vistaa por por um rece recept ptor or com com capacidade S/MIME - Clear-Signed Data : Apenas a assinatura digital é codificada usando base64 - Signed and Eveloped Data : Podem ser aninhados ALGORITMOS DE CRIPTOGRAFIA O S/MIME incorpora 3 algoritmos de chave-pública. O Digital Signature Standard (DSS). O Diffie-Hellman é o preferido para encriptar chaves de sessão (ElGamal). Como alternativa temos o RSA. Estes são os mesmos algoritmos que usa o PGP. Para a função de hash usada para criar a assinatura digital requer-se o SHA-1 de 160-bit. Para a encriptação da mensagem, usa-se o 3DES. As seguintes regras, por ordem, devem ser seguidas por um emissor: 1. Se o agente emissor tem uma lista de capacidades de desencriptação preferidas por um intendido receptor, DEVE escolher a primeira preferênncia
2. Se não tem tal lista mas recebeu uma ou mais mensagens desse receptor, então a mensagem a enviar DEVE usar o mesmo algoritmo de encriptação que foi usado na última mensagem assinada e encriptada recebida desse receptor 3. Se não tem conhecimento das capacidade de desencriptação e quer tomar riscos, DEVE usar o 3DES 4. ... Se não quer tomar riscos TEM de usar o RC2/40 MENSAGENS S/MIME O S/MIME faz uso de um nº de novos tipos de conteúdo MIME. Preparação de uma mensagem S/MIME: SEGURAR UMA ENTIDADE MIME O S/MIME segura uma entidade MIME com uma assinatura, encriptação, ou ambas. A entidade pode ser uma mensagem inteira, ou se o tipo de conteúdo MIME é multipart, então uma entidade MIME é uma ou mais das subpartes da mensagem. A entidade MIME é preparada de acordo com as regras normais para o MIME. Então a entidade mais alguns dados relacionados com a segurança, tais como identificadores de aloritmos e certificados, são processados pelo S/MIME para prouzir o que é conhecido como um objecto PKCS. DADOS ENVELOPADOS Os passos para preparar uma entidade MIME envelopedData envelopedData são: 1. Gerar uma chave de sessaõ pseudo-randómica para um algoritmo particular de encriptação (RC2/40 ou 3DES) 2. Para cada receptor, encriptar a chave de sessão com a chave pública RSA do receptor 3. Para cada receptor, preparar um bloco conhecido como RecipientInfo, que contém um ientif ientifica icador dor do certif certifica icado do de chavechave-púb públic licaa do recept receptor, or, um identi identific ficado adorr do algoritmo usado para encriptar a chave de sessão, e a chave de sessão encriptada. 4. Encriptar o conteúdo da mensagem com a chave de sessão SIGNEDDATA Passos: 1. Seleccionar um algoritmo de digest de mensagem (SHA ou MD5) 2. Computar o digest da mensagem, ou função de hash, do conteúdo a ser assinado 3. Encriptar o digest da mensagem com a chave privada do assinante 4. Peparar um bloco conhecido como SignerInfo que contém o certificado de chave pública do assinante, um identificador do algoritmo do digest da mensagem, mensagem, um ientificador do algoritmo usado para encriptar o digest da mensagem, e o digest da mensagem encriptado. 5.1. Quais são os 5 principais serviços fornecidos pelo PGP? 5.2. Qual é a utilidade de uma assinatura detached/objectiva? 5.3. Porque é que o PGP gera uma assinatura antes de aplicar compressão? 5.4. O que é a conversão R64? 5.5. Porque é que a conversão R64 é útil para uma aplicação de e-mail? 5.6. Porque é que a função de segmentação e o reagrupamento é precisa no PGP? 5.7. Como é que o PGP usa o conceito de trust/confiança? 5.8. O que é o RFC 822? 5.9. O que é o MIME? 5.10. O que é o S/MIME?
CAPÍTULO 6 6.1. Dê exemplos de aplicações de IPSec 6.1. SEGURANÇA IP - VISÃO GERAL
SEGURANÇA IP
APLICAÇÕES DO IPSEC O IPSec fornece a capacidade de segurar comunicações através de uma LAN, através de WANs públicas e privadas, e através da Internet. Exemplos: - Conectividade entre Escritórios Seguros sobre a Internet : Uma companhia pode construir uma rede privada virtual segura sobre a Internet ou sobre uma WAN pública. Isto Isto perm permit itee que que um negó negóci cioo se base baseie ie larg largam amen ente te na Inte Intern rnet et e redu reduzi zirr as suas suas necessidades necessidades de redes privadas, poupando custos e esforço de gestão de redes. - Acesso Remoto Seguro sobre a Internet : Um utilizador final cujo sistema está equipado com os protocolos de segurança IP pode fazer uma chamda local para um ISP e ganhar acesso seguro a uma rde de uma companhia. Isto reduz o custo das taxas de chamada para empregados em viagem - Estabelecimento de Conectividade Extrarede e Intrarede com Parceiros : O IPSec pode ser usado para segurar comunicações comunicações com outras organizações, organizações, assegurando assegurando autenticação e confidencialidade e fornecendo um mecanismo de troca de chaves. - Enriquecimento de Segurança no Comércio Electrónico : Mesmo pensando que algumas aplicações de comércio electrónico e Web têm protocolos de segurança em si, o uso de IPSec aumenta a segurança. A principal característica do IPSEc que permite que suporte estas variadas aplicações é que pode encriptar e/ou autenticar todo o tráfego no nível IP. Assim, todas as aplicações ditrib ditribuíd uídas as,, inclui incluindo ndo o logon logon remoto remoto,, client cliente/s e/serv ervido idor, r, e-mail e-mail,, trnasf trnasferê erênc ncia ia de ficheiros, acesso Web, etc., podem ser seguros. 6.2. Que serviços são fornecidos pela IPSec? 6.2. ARQUITECTURA DA SEGURANÇA IP SERVIÇOS IPSEC O IPSec fornece serviços de segurança na camada de IP por permissão e um sistema a seleccionar os protocolos requeridos de segurança, determinar os algoritmos a usar para os serviços e colocar em acção qualquer chave criptográfica requerida para fornecer os serviços requeridos. 2 protocolos são usados para fornecer segurança: um protocolo de autenticação designado por cabeçalho do protocolo, Authentication Header (AH); e um protocolo combinado de encriptação/autenticação encriptação/autenticação designado pelo formato do pacote para esse protocolo, protocolo, Encapsulating Encapsulating Security Payload Payload (ESP). Os serviços fornecidos por cada protocolo, são: ESP (apenas ESP (encriptação mais AH encriptação) autenticação Controlo de Acesso SIM SIM SIM SIM SIM Integridade da Ligação Ligação Autenticação da Origem dos Dados Rejeição de Pacotes Pacotes Replayed Confidencialidade Confidencialidade de Fluxo de Tráfego Limitado
SIM
SIM
SIM SIM SIM
SIM SIM
SIM
SIM
6.3. Que parâmetros identificam uma SA e que parâmetros caracterizam a natureza de uma SA particular? ASSOCIAÇÕES DE SEGURANÇA Um conceito chave que aparece nos mecanismos de autenticação e de confidencialidade do IP é a Associação de Segurança (SA). É uma relação de um sentido entre o emissor e o receptor que fornece serviços de segurança ao tráfego sobre ela. Se uma relação entre
pares é precisa, para trocas de 2 sentidos, então 2 Sas são requeridas. Os serviços de segurança são fornecidos para uma SA pelo uso do AH ou ESP, mas não ambos. Uma SA é unicamente identificada por 3 parâmetros: - Índice de Parâmetros de Segurança (SPI): Uma string de bits associada a esta SA, e tendo significado local apenas. O SPI é carregado nos cabeçalhos de AH ou ESP para permitir que o sistema de recepçaõ seleccione o SA sob o qual um pacote recebido será processado. - Endereço de Destino IP: Correntemente, apenas endereços de unicast são permitidos; pode ser um sistema d utilizador final ou um sistema de rede tal como um firewall ou router. - Identificador de Protocolo de Segurança : AH ou ESP. PARÂMETROS SA Emcada implementação de IPSec, há uma Base de Dados Associação de Segurança nominal que define os parâmetros associados com cada SA. Uma SA é normalmente definida pelos seguintes parâmetros: - Contador Número de Sequência (SNC): Um valor de 32-bit usado para gerar o campo Nº de Sequência nos cabeçalhos AH ou ESP (requerido) - Contador de Sequência Overflow : Uma flag indica se o overflow ou o SNC devem gerar um evento auditável e prevenir transmissão futura de pacotes nesta SA (requerido) - Janela Anti-Replay : Usada para determinar se um pacore AH ou ESP a chegar é uma repetição (requerido) - Informação AH: Algoritmo de autenticação, chaves, tempos de vida das chaves, e parâmetros relacionados relacionados sendo usados usados com AH (requerido) (requerido) Informaçãoo ESP: Algori - Informaçã Algoritmo tmo de encrip encriptaç tação ão e auten autentic ticaçã ação, o, chaves chaves,, valore valoress de inicailização, tempos de vida das chaves, e parâmetros relacionados sendo usados com AH (requerido) - Tempo de Vida desta SA : Um intervalo de tempo ou contagem de bytes depois da qual uma SA deve ser substituída por uma nova (e novo SPI) ou terminada, mais uma indicação de qual destas acções deve ocorrer (requerido) - Modo de Protocolo IPSec : Túnel, Transporte, ou Wildcard (requerido) - Caminho MTU: Qualquer tamanho máximo de caminho observado de unidade de tran transm smis issã sãoo (tam (taman anho ho máxi máximo mo de um paco pacote te que que pode pode ser ser tran transm smit itid idoo sem sem fragmentação) e variáveis de idade (requerido) 6.4. Qual é a diferença entre modo de transporte e modo de túnel? MODO TRANSPORTE O modo modo Transp Transport ortee fornec fornecee protec protecçã çãoo prima primariam riament entee para para protoc protocolo oloss de camad camadas as superiores. Isto é, extende a carga de pagamento de um pacote IP. Exemplos incluem um segmento TCP ou UDP ou um pacote ICMP, todos os quais operam directamente sobre IP numa pilha de protocolos do host. Tipicamente é usado para comunicações fim-a-fim entre 2 hosts (ex: 2 workstations; cliente/servidor). Quando um host corre o AH ou ESP sobre Ipv4, o payload é os dados que normalmente se seguem ao cabeçalho. O ESP no modo de transporte encripta e opcionalmente autentica o payload IP mas não o cabeçalho. O AH autentica também partes seleccionadas do cabeçalho. cabeçalho. MODO DE TÚNEL O modo de túnel fornece protecção ao pacote IP inteiro. Para isso, depois dos campos AH ou ESP serem adicionados o pacote inteiro mais os campos de segurança é tratado como payload para o novo pacote IP a sair, com um novo cabeçalho IP. O pacote original, ou inteiror, viaja através de um túnel de um ponto de uma rede IP para outro.; Os routers ao longo do caminho não são capazes de examinar o cabeçalho interior IP. Porque o pacote original é encapsulado, o novo, maior pacote, pode ter endereços de
origem origem e destin destinoo comp complet letame amente nte difere diferente ntes, s, adici adiciona onados dos para para segura seguranç nça. a. É usado usado quando um ou mais fins de uma SA é um gateway seguro, tal como um firewall ou router que implementa IPSec. No modo de túnel, um nº de hosts de redes sob o firewall podem ter comunicações comunicações seguras seguras em implementar o IPSec. IPSec. 6.5. O que é um ataque de replay? 6.3. CABEÇALHO DE AUTENTICAÇÃO SERVIÇO DE ANTI-REPLAY É um em que um atacante obtém uma cópia de um pacote autenticado e mais tarde transmite-o para o estino intendido. A recepção de pacotes IP autenticados duplicados pode disromper o serviço de alguma forma ou pode ter outras cosequências cosequências não desejadas. O campo Nº de Sequência é usado para ultrapassar tais ataques. 6.6. Porque inclui o ESP um campo de padding? 6.4. ENCAPSULAMENTO DA PAYLOAD DE SEGURANÇA PADDING O campo de padding serve vários propósitos: - Se um algoritmo de encriptação requer que o texto original seja múltiplo de algum nº de bytes (e.g. o múltiplo de um bloco para uma cifra de blocos) o campo de padding é usado para expandir o texto original (consistindo dos Dados de Payload, Padding, Tamanho de Padding, e campos Next Header). - O formato ESP requer que os campos Pad Lenght e o Next Header sejam alinhados à direita dentro de uma palavra de 32 bits. Igualmente o texto cifrado tem de srr um múlt múltip iplo lo inte inteir iroo de 32 bits bits.. O camp campoo de Padd Paddin ingg é usad usadoo para para asse assegu gura rarr este este alinhamento. - Padding adicional pode ser adicionado para fornecer confidencialidade parcial ao fluxo de tráfego conciliando o tamanho real do payload. 6.7. Quais são as abordagens básicas para bundling SAs? 6.5. COMBINAÇÃO DE ASSOCIAÇÕES DE SEGURANÇA BUNDLE DE TRANSPORTE-TÚNEL O uso de autenticação antes da encriptação pode ser preferível por várias razões. Primeiro, porque os dados de autenticação são protegidos por encriptação, é impossíevl para alguém interceptar a mensagem e alterar os dados de autenticação sem ser detectado. Segundo, pode ser desejável armazenar a informação de autenticação com a mensa mensagem gem no destin destinoo para para referê referênci nciaa futura futura.. É mais mais con conven venien iente te fazer fazer isso isso se a informação de autenticação se aplica a uma mensagem não-encriptada; doutra maneira a mesnagem terá de ser reencriptada para verificar a informação de autenticação. Uma abordagem abordagem é usar um bundle consistindo consistindo de um transporte transporte AH interior SA e um túnel ESP de saída SA. Neste caso, a autenticação é aplicada ao pacote payload IP mais ao cabeçalho IP (e extensões) excepto para campos mutáveis. O pacote IP resultante é então procesado no modo túnel pelo ESP; o resultado é que o inteiro pacote interior autenticado é encriptado e um novo cabeçalho IP de saída (e extensões) é adicionado. 6.8. Quais são os papéis do protocolo de determinação da chave de Oakley e ISAKMP na IPSec? 6.6. GESTÃO E CHAVES O protocolo de defeito de hestão de chaves automatizado para IPSec é referido como ISAKMP/Oakley e consiste nos seguintes elementos: - Protocolo de Determinação de Chaves de Oakley - É um protocolo de troca de chaves baseado no algoritmo Diffie-Hellman mas fornecendo segurança adicional. É genérico pelo que não dita dita formatos específicos. específicos.
- Internet Security Association and Key Management Protocol: fornece a framework para a gestão de chaves Internet e fornece o protocolo específico, incluindo formatos, para negociação negociação de atributos de segurança.
CAPÍTULO 7
SEGURANÇA WEB
7.1. Quais são as vantagens de cada uma das 3 abordagens mostradas na figura 7.1? 7.1. CONSIDERAÇÕES SOBRE SEGURANÇA WEB ABORDAGENS À SEGURANÇA DO TRÁFEGO WEB Um nº variado de abordagens para fornecer segurança Web são possíveis. As várias abordagens que foram consideradas são similares nos serviços que fornecem e, de algum modo, nos mecanismos que usam, mas diferem com respeito ao seu escopo de aplicabilidade e à sua localização relativa dentro da pilha do protocolo TCP/IP. A figura 7.1. ilustra esta diferença. Uma maneira De fornecer segurança segurança web é usar segurança IP. a vantagem de usar IPSec é que é transparente aos utilizadores finais aplicações e fornece uma uma solução de propósito geral. geral. Além disso, a IPSec inclui uma capacidade e filtragem e assim apenas o tráfego seleccionado precisa de incorrer no overhead do processamento do IPSec. Uma outra relativamente solução de propósito geral é implementar segurança apenas acima do TCP. O exemplo mais comum desta abordagem é o Secure Sockets Layer (SSL) e o standard Internet conhecido por Transport Layer Security (TLS). Neste nível, há 2 escolhas de implementação. Para generalidade completa, o SSL (ou TSL) podem ser fornecidos como parte da suite de protocolo de base e assim ser transparente às aplicações. Ex: Netscape e Internet Explorer vêm equipados com SSL. Serviços de segurança específicos-de-aplicações são embebidos dentro da palicação particular. a vantagem é que o serviço pode ser talhado para as necessidades específicas de uma dada aplicação. No contexto da segurança web, um importante exemplo desta abordagem é o Secure Electronic Transaction (SET). 7.2. Que protocolos cumpre o SSL? 7.2. SSL E TSL ARQUITECTURA SSL O SSl é desenhado para fazer uso do TCP para fornecer f ornecer um serviço de segurança fim-afim fiável. Não é um protocolo único mas antes duas camadas de protocolos. O SSL Record Protocol fornece serviços de segurança básicos para vários protocolos de camadas camadas mais altas. altas. Em particular, particular, o HTTP, HTTP, o qual fornece fornece o serviço serviço de transferê transferência ncia para uma interacção cliente/servidor, pode operar sobre o SSL. 3 protocolos de de altonível são definidos como parte do SSL. - CHANGE CIPHER SPEC PROTOCOL É um dos 3 protocolos específicos-SSL que usa o SSL Record Protocol, e é o mais simples. Consiste de uma mensagem única, a qual consiste de um único byte com o valor 1. O único propósito é causar que o estado pendente seja copiado para o estado corrente, o qual actualiza a suite de cifra para ser usada nesta conexão. - ALERT PROTOCOL É usado para obter alertas relacionados-SSL para a entidade par. Como em outras palicações que usam SSL, mensagens de alerta são comprimidas e encriptadas, como especificado pelo estado corrente. Cada mensagem consiste em 2 bytes. O primeiro toma o valor warning (1) ou fatal (2) para dar a severidade da mensagem. Se o nível for fatal, o SSL termina imediatamente a ligação. Outras ligações d amesma sessão podem continuar, mas não são permitidas novas conexões nesta sessão. O segundo byte contém um código que indica o alerta específico. - HANDSHAKE PROTOCOL
O mais complexo Este protocolo permite que o servidor e cliente se autentiquem e negociar um algoritmo de encriptação e MAC e chaves criptográficas a ser usadas para proteger os dados enviados num registo SSL. É usado antes que qualquer dado de aplicação seja transmitido. Consiste de uma série de mensagens trocadas por cliente e servidor, cada uma com 3 campos. 7.3. Qual é a diferença entre uma ligação SSL e uma sessão SSL? 7.2. SSL E TSL ARQUITECTURA SSL Ligação: É um transporte (na definição do modelo de camdas OSI) que fornece um tipo de serviço adequado. Para o SSL, tais conexões são relações par-a-par. Estas conexões são transientes. Todas as conexões estão associadas com uma determinada sessão. Sessão : É uma associação entre um cliente e um servidor. As sessões são criadas pelo protocolo handshake. Sessões definem um conjunto de parâmetros de segurança criptografados, os quais podem ser partilhados entre múltiplas conexões. São usadaspara usadaspara evitar a cara negociação de novos parâmetros de segurança para cada ligação. 7.4. Liste e defina brevemente os parâmetros que definem um estado de uma sessão SSL. 7.2. SSL E TSL ARQUITECTURA SSL - Identificador de Sessão : uma sequência arbitrária de bytes escolhida pelo servidor para identificar uma sessão sessão activa ou resumível. - Certificado de Par : Um certificado X509.v3 do par. Pode ser nulo. Métodoo de Compr Compres essão são: o algo - Métod algori ritm tmoo usad usadoo para para comp comprim rimir ir dado dadoss ante antess da encriptação - Chipher Spec : Especifica o algoritmo de encriptação de dados base (por ex. null, DES, etc.) e o algoritmo de hash (ex. MD5 ou SHA-1) usado para o cálculo MAC. Também define atributos criptográficos tais como o hash_size. hash_size. - Master Secret : 48-bytes secretos partilhados entre o cliente e o servidor - Is Resumable : uma flag indicando se a sessão pode ser usada para iniciar novas ligações. 7.5. Liste e defina brevemente os parâmetros que definem uma conexão de sessão SSL. 7.2. SSL E TSL ARQUITECTURA SSL Server And Client Random : Sequências de bytes que são escolhidas pelo servidor e cliente para cada conexão. Server Write MAC Secret : A chave secreta usada nas operações MAC nos dados enviados pelo servidor. Client Write MAC Secret : A chave secreta usada nas operações MAC nos dados enviados pelo servidor. Server Write Key : A chave de encriptação convencional para dados encriptados pelo servidor e desencriptados pelo cliente. Client Write Key : A chave de encriptação convencional para dados encriptados pelo cliente e desencriptados pelo servidor. Initialization Vectors : Quando um bloco de cifra no modo CBC é usado, um IV é mantido para cada chave. Este campo é primeiro inicializado pelo protocolo handshake do SSL. Depois o bloco de texto cifrado final de cada registo é preservado para uso como IV com o registo seguinte. Sequence Numbers : Cada parte mantém nºs de sequência separados para mensagens recebidas e transmitidas para cada ligação. Quando uma parte envia ou receb uma
mensagem change cipher spec, o nº e sequência apropriado é setado a zero. Não podem exceder o 264-1 7.6. Que serviços são fornecidos pelo Protocolo de Registo SSL? 7.2. SSL E TSL PROTOCOLO DE REGISTO SSL - Confidencialidade: O Protocolo Handshake define uma chave secreta partilahda que é usada para encriptação convencional de cargas SSL. - Integridade de Mensagens : O Protocolo Handshake também define uma chave secreta partilhada que é usada para formar um código de autenticação de mensagens (MAC). 7.7. Que passos estão envolvidos na transmissão SSL Record Protocol? 7.2. SSL E TSL PROTOCOLO DE REGISTO SSL Este protocolo toma uma mensagem de aplicação a ser transmitida e: - Fragmentação: Cada mensagem de camada superior é fragmentada em blocos de 2 14 bytes (16384 bytes). bytes). - Compressão : é opcionalmente aplicada. Tem de ser sem perdas e não pode aumentar o comprimento do conteúdo mais que 1024 bytes. O defeito é null. - Adicionar o MAC : - Encriptar: encriptação simétrica - Adicionar um cabeçalho : com o campos: - Content Type (8 bits): O protocolo de camada superior usado para processar o fragmento encapsulado. encapsulado. - Major Version (8 bits): Indica a major versão do SSL em uso. - Minor Version (8 bits) - Tamanho de Compressão (16 bits): omáximo é 2048 7.8. Liste e defina brevemente as principais categorias dos participantes SET. 7.3. TRANSACÇÃO ELECTRÓNICA SEGURA PARTICIPANTES SET É uma uma espec especifi ificaç cação ão aberta aberta de segura seguranç nçaa e encrip encriptaç tação ão desenh desenhad adaa para para proteg proteger er transacções de cartões de crédito na Internet. - Dono do Cartão : - Mercador : Tem de ter uma relação com um Acquirer - Issuer : Instituição finaceira que fornece ao dono do cartão o cartão de pagamento. Tipicamente, contas são aplicadas e abertas por mail ou pessoalmente. É o issuer que é responsável pelo pagamento do débito do dono do cartão. - Acquirer: É a instituição finaceira que estabelece uma conta com o mercador e processa as autorizações de pagamento por cartão e os pagamentos. pagamentos. Os mercadores aceitam muitos cartões de crédito mas não querem lidar com muitas associações de cartões de banco ou múltiplos issuers. O Acquirer fornece autorização ao mercador que uma dada conta de cartão está activa e que a compra não excede o limite de crédito. Também fornece transferêncai electrónica de pagamentos para a conta do mercador. Depois o acquirer é reembolsado pelo issuer sob algum tipo de rede de pagamento para transferência electrónica de fundos. - Payment Gateway: É uma função operada pelo acquirer ou uma 3ª parte que processa as mensagens de pagamento do mercador. As de gateway de pagamento interfaceia entre o SET e as redes de pagamento de cartões existentes para autorização e funções de pagamento. O mercador troca mensagens mensagens SET com o gateway de pagamento sobre a Internet, enquanto o gateway de pagamento tem alguma ligação directa ou por rede com o sistema de processamento financeiro do acquirer.
Autoridad dadee de Certifi Certificaç cação ão (CA) (CA) : É uma - Autori uma enti entida dade de que que é fiáv fiável el para para emit emitir ir certificados de chave-pública X.509v3 para donos de cartão, mercadores e gateways de pagamento. O sucesso do SET depende da existência de uma infraestrutura de CA disponível para este propósito. 7.9. O que é uma assinatura dual e qual é o seu propósito? 7.3. TRANSACÇÃO ELECTRÓNICA SEGURA ASSINATURA DUAL O propósito é ligar 2 mensagens que são intendidas para 2 recipientes. Neste caso, o cliente quer enviar a informação da encomenda (OI) ao mercador e a informação do pagamento (PI) ao banco. O mercador não precisa saber os detalhes do nº de cartão de crédito, e o banco não precisa de saber os detalhes da encomenda. O cliente fica com mais protecção em termos de privacidade mantendo estes 2 itens separados. Contudo, os 2 itens tem de ser ligados duma maneira que possa resolver disputas, se necesaa´rio. A ligação é necessária para que o cliente possa provar que esse pagamento é intendido para essa encomenda encomenda e não outra qualquer. Em resumo: - O mercador recebe a OI e verifica a assinatura (pública do cliente) - O banco recebe a PI e verifica a assinatura (pública do cliente) - O cliente ligou a OI e a PI e pode provar a ligação (tem a privada) CAP. 8 GESTÃO DE SEGURANÇA DE REDES 8.1. Em que sentido é uma arquitectura de gestão de rede considerada integrada? 8.1. CONCEITOS BÁSICOS DE SNMP ARQUITECTURA DE GESTÃO DE REDE Um sistema de gestão de rede é uma colecção de ferramentas para monitorização e controlo da rede que é integrada nos seguintes sentidos: - Uma única interface de operador com um poderoso, mas amigável, conjunto de comandos para executar quase todas, ou todas, as tarefas de gestão de rede. - Uma quantidade mínima de equipamento separado. Isto é, a maioria do hardware e software requerido para gestão da rede é incorporado no equipamento de utilizador existente. 8.2. Quais são os elementos chave do modelo SNMP? 8.1. CONCEITOS BÁSICOS DE SNMP ARQUITECTURA DE GESTÃO DE REDE O modelo de gestão de rede que é usado para SNMP (Simple Network Management Protocol) inclui os seguintes lementos chave: - Estação de Gestão - Agente de Gestão - Base de Informação de Gestão - Protocolo de Gestão de Rede A Estação de Gestão é tipicamente um dispositivo stand-alone, mas pode ser uma capacidade implementada num sistema partilhado. Em ambos os caso, serve como interface para o gestor de rede humano e o sistema de gestão da rede. Deve ter no mínimo: - Um conjunto de aplicações de gestão para análise de dados, recuperação de falhas, etc. - Uma interface pela qual o gestor de rede r ede pode monitorizar e controlar a rede. - A capa capaci cida dade de de trad traduz uzir ir os requ requis isit itos os do gest gestor or de rede rede no real real cont contro role le e monitorização de elementos remotos na rede. - Uma base de dados de informação extraída dos MIBs de todas as entidades geridas na rede.
O Agente de Gestão . Plataformas chave, tais como hosts, bridges, routers e hubs, podem ser equipados com o SNMP de modo a que possam ser geridos de uma estação de uma estação de gestão. O agente de gestão responde a pedidos de informação de uma esta estaçã çãoo de gest gestão ão,, a pedi pedido doss de acçã acçãoo da esta estaçã çãoo de gest gestão ão,, e pode pode forn fornec ecer er assincronamente assincronamente à estação de gestão informação importante. Cada recurso é interpretado como um objecto. É, essencialmente, uma variável que representa um aspecto do agente de gestão. a colecção de objectos é conhecida como Base de Informação de Gestão (MIB). Funciona como colecção de pontos de acesso do agente para a estação de gestão. Estes objectos são standardizados transversalmente transversalmente a todos os sistemas de uma classe particular (e.g. as bridges suportam todas os mesmos object objectos os de gestã gestão). o). Uma Uma estaçã estaçãoo de gestão gestão execut executaa a função função de monito monitoriz rizaçã açãoo carregando o valor dos objectos MIB. depois pode tomar uma acção a ter lugar num agente ou pode mudar so parâmetros de configuração de um agente por modificação do valor de objectos específicos. As estações de gestão e agentes e agentes são linkados por um Protocolo de Gestão de Redes. O protocolo usado para a gestão de redes TCP/IP é o SNMP. 8.3. O que é um MIB? É uma uma cole colecç cção ão e obje object ctos os que que repr repres esen enta tam m recu recurs rsos os da rede rede a ser ser geri gerido doss (monitorizados e controlados) como visto na alínea anterior. 8.4. Que capacidades básicas ou comandos são fornecidos no SNMPv1? - Get: Permite que a estação de gestão carregue o valor de objectos do agente. - Set: Permite à estação de gestão setar o valor de objectos no agente. - Notify Notify:: Permit Permitee que um agente agente possa notifica notificarr a estaç estação ão de gestã gestãoo de event eventos os significativos. 8.5. Qual é a função de um proxy SNMP? 8.1. CONCEITOS BÁSICOS DE SNMP PROXIES No SNMP todos os agentes, tal como todas as estações de gestão, têm de suportar UDP e IP. Isto limita a gestão directa a tais dispositivos e exclui outros dispositivos, tais como algumas bridges e modems, que não suportam nenhuma parte do protocolo TCP/ TCP/IP IP.. além além diss disso, o, have haverá rá inúm inúmer eros os pequ pequen enos os sist sistem emas as (PCs (PCs,, wo work rkst stat atio ions ns,, cont contro rola lado dore ress prog progra rama mado dos) s) que que impl implem emen enta tam m o TCP/ TCP/IP IP para para supo suport rtar ar as suas suas aplicações, mas para os quais não é desejável adicionar carga adicional do agente lógico SNMP, e manutenção MIB. Para acomodar dispositivos que não implementam SNMP, o conceito de proxy foi desenvolvido. Neste esquema um agente SNMP actua como proxy para um ou mais outros outros dispo disposit sitivo ivos; s; isto isto é, o agente agente SNMP SNMP actua actua em benef benefíci ícioo dos dispo disposit sitivo ivoss proxados. A estação de gestão envia consultas concernentes a um dispositivo para o seu agente proxy. este converte-a no protocolo de gestão que é usado pelo dispositivo e inversamente. 8.6. Explique brevemente o conceito de comunidade do SNMPv1. 8.2. FACILIDADE DE COMUNIDADE SNMPv1 COMUNIDADE E NOMES DE COMUNIDADES O SNMPv1 fornece apenas facilidades de segurança rudimentares baseadas no conceito de comunidade, que dá algum nível de segurança mas está aberto a vários ataques. Como outras aplicações distribuídas, a gestão de redes envolve a interacção de um nº de entidades de aplicação suportada por um protocolo de aplicação. No caso do SNMP essas entidades são as aplicações de gestão e as aplicações de agente.
A gestão de redes SNMP tem va´rias características não típicas de todas as palicações distribuídas. A aplicação envolve uma relação de um-para-muitos entre o gestor e o conjunto de agentes. Pode haver um nº de gestores, cada qual gere todos ou um subconjunto de agentes na configuração. Estes subconjuntos podem sobrepor-se. Também precisamos de ser capazes de ver o SNMP como uma relação um-para-muitos entre um agente e um conjunto de gestores. Cada agente controla os seus MIBs locais e deve ser capaz de controlar o uso desse MIB por um nº de gestores. Há 3 aspectos deste controlo: - Serviço de Autenticação : O agente pode querer limitar o acesso ao MIB a gestores autorizados. - Política de Acesso : O agente pode querer dar privilégiso diferentes de acesso. - Serviço de Proxy : Um agente pode actuar como proxy para outros agentes. Todos estes aspectos se relacionam com segurança. Num ambiente tão “partido”, os agentes precisam de se proteger e aos seus MIBs contra acessos não autorizados. O SNMP SNMP forne fornece ce apena apenass uma uma primitiv primitivaa e limita limitada da capac capacida idade de para para tal segur seguran ança, ça, nomeadamente nomeadamente o conceito de uma comunidade. Uma comunidade SNMP é uma relação entre um agente SNMP e um conjunto de gestores SNMP que define as características de autenticação, controlo de acesso e características de proxy. O conceito é local, efinido no agente. A cada comunidade é dado um nome único (nesse agente). Cada agente pode criar várias comunidades. 8.7. Qual é a relação entre SNMPv1, SNMPv2 e SNMPv3? 8.1. CONCEITOS BÁSICOS DE SNMP + 8.3 SNMPv3 SNMPv2 A forç forçaa do SNMP SNMPv1 v1 é a sua sua simp simpli lici cida dade de.. Co Cont ntud udoo para para rede redess gran grande dess e/ou e/ou sobrecarregadas sobrecarregadas de trabalho, as suas deficiências vêm ao de cima: - Falta de suporte para gestão distribuída de rede . - Deficiências funcionais - Deficiências de Segurança As 2 primeira são colmatadas pela SNMPv2 e a última pela SNMPv3. É importante perceber que o SNMPv3 não é uma substituição do SNMPv1 e/ou do SNMPv2. Ele define uma capacidade de segurança e é para ser usado em conjunção com, preferencialemnte, o SNMPv2 ou com o SNMPv1. 8.8. Que ameaças foi o USM desenhado para contrariar? 8.3 SNMPv3 PROC PROCES ESSA SAME MENT NTO O DE MENS MENSAG AGEN ENS S E O MODE MODELO LO DE SEGU SEGURA RANÇ NÇA A DO UTILIZADOR (USM) USER SECURITY MODEL Fornece servços de privacidade e autenticação ao SNMP. especificamente, é desenhado para segurar contra contra as seguintes principais principais ameaças: ameaças: entidade ) pode alterar - Modificação de Informação : Uma entidade (ver (ver o que é uma entidade) uma mensagem em trânsito gerada por uma entidade autorizada de tal forma a causar operações de gestão não-autorizadas, incluindo a setagem de valores de objectos. a essên essência cia desta desta ameaç ameaçaa é que uma uma entida entidade de não não-au -autor toriza izada da pod podee altera alterarr qua qualqu lquer er parâmetro de gestão, gestão, incluindo os relacionados relacionados com operações, operações, configuração configuração e contas. contas. - Masquerade: Operações de gestão que não são autorizadas para uma certa entidade podem ser tentadas por essa entidade assumindo a identidade de uma entidade autorizada.
- Modificação o Stream de Mensagens : O SNMP é desenhado para operar sobre um protocolo de transporte tr ansporte sem ligação. Há uma ameaça que as mensagens SNMP possam ser reordenadas, atrasadas ou repetidas (duplicadas) para causar operações de gestão não-autorizadas. Por exemplo, uma mensagem para rebootar um dispositivo pode ser copiada e repetida mais tarde. - Disclosure (Revelação/Descoberta): Uma entidade pode observar trocas entre um gestor e um agente e assim aprender os valores dos objectos manipulados e aprender eventos notificáveis. Por ex. a observação de um comando set que muda passwords pode permitir que um atacante aprenda aprenda novos passwords. passwords. Não é intendido para para prevenir as seguintes seguintes ameaças: ameaças: - Denial of Service : Um atacante pode prevenir trocas entre um gestor e um agente. - Análise de Tráfego : Um atacante pode observar o padrão geral de tráfego entre gestores e agentes. 8.9. Qual é a diferença entre um motor autoritativo e não-autoritativo? 8.3 SNMPv3 PROC PROCES ESSA SAME MENT NTO O DE MENS MENSAG AGEN ENS S E O MODE MODELO LO DE SEGU SEGURA RANÇ NÇA A DO UTILIZADOR (USM) MOTORES AUTORITATIVOS E NÃO-AUTORITATIVOS Em qualquer transmissão de mensagem, uma das duas entidades, emissor ou receptor, é designado como o motor autoritativo SNMP, de acordo com as seguintes regras: - Quando uma mensagem SNMP contém uma carga que espera resposta (por ex. um Get, GetNext, GetBulk, Set, ou Inform PFU), então o receptor dessas mensagens é autoritativo; - Quando uma mensagem SNMP contém uma carga que não espera uma resposta (por ex. um SNMPv2-Trap, Response, ou Report PDU), então o emissor de tal mensagem é autoritativo (autorizado/autoritário). 8.10. O que é localização de chave? 8.3 SNMPv3 PROC PROCES ESSA SAME MENT NTO O DE MENS MENSAG AGEN ENS S E O MODE MODELO LO DE SEGU SEGURA RANÇ NÇA A DO UTILIZADOR (USM) LOCALIZAÇÃO DE CHAVE Um requisito para o uso de serviços de autenticação e privacidade do SNMPv3 é que, para qualquer comunicação comunicação entre um principal num motor não-autoritativo e um motor autoritativo remoto, uma chave de autenticação secreta e uma chave privada secreta tem de ser partilhada. Estas chaves permitem que um utilizador num motor não-autoritativo (tipicamente um sistema de gestão) empregue autenticação e privacidade com sistemas autoritativos remotos que o utilizador gira (tipicamente, sistemas agentes). O RFC 2574 fornece linhas de guia para criação, actualização e gestão destas chaves. Para simplificar a carga da gestão de chaves nos principais, cada principal deve apenas manter uma única chave de utenticação e uma única chave de encriptação. Estas chaves não são armazenadas num MIB e não são acessíveis via SNMP. Nesta subsecção veremos primeiro a técnica de gerar estas chaves a partir de uma password. Depois veremos o conceito de localização de uma chave, o qual permite que um principal partilhe uma única chave de autenticação e enecriptação com cada motor remoto enquanto mantém uma úncia chave de autenticação e encriptação localmente. Uma chave localizada é definida no RFC 2574 como uma chave secreta partilhada entre um utilizador e um motor SNMP autoritativo. O objectivo é que o utilizador precisa apenas de manter uma única chave (ou 2 se for necessa´rio distinguir entre chave de autenticação e de privacidade) e assim precisa apenas de se lembrar de uma password (ou 2). O segredo real partilhado entre um utilizador particular e cada motor autoritativo
SNMP são diferentes. O processo pelo qual uma única chave de utilizador é convertida em múlt múltipl iplas as únic únicas as chav chaves es,, uma uma por por cada cada moto motorr SNMP SNMP remo remoto to,, é refe referid ridoo por por localização de chave. a motivação é: - Se uma chave de um utilizador for comprometida as dos outros, não são (isto do ponto de vista do agente). - A chaves o utilizador em diferentes agentes são diferentes, pleo que apenas o agente comprometido o é. - A gestão de rede pode ser executada de qualquer ponto. 8.11. Liste e defina brevemente os elementos que cumprem VACM. 8.3 SNMPv3 CONTROLO DE ACESSO BASEADO-NA-VISÃO ELEMENTOS DO MODELO VACM São 5: - Grupos - É definido como um conjunto de zero ou mais tuplas em cujo benefício a gestão de objectos SNMP podem ser acessados. Um securityName refere-se a um principal, principal, e os direitos de acesso para todos todos os principais num dado grupo são idênticos. - Nível de Segurança - Os direitos de acesso para um grupo podem diferir dependendo do nível de segurança da mensagem que contém o pedido. Por ex. um agente pode permitir apenas read_only acesso para um pedido comunicado numa mensagem nãoautenticada mas pode exigir autenticação para direcito de write. wr ite. - Contexto MIB - é um subconjunto, com nome, das instâncias objectos no MIB local. Os con contex textos tos fornec fornecem em uma uma manei maneira ra útil útil de agreg agregar ar objec objectos tos em colec colecçõe çõess com diferentes políticas de acesso. - Visão MIB - É frequente o caso de qurermos restringir o acesso de um grupo particular a um subconjunto de objectos no agente. Para atingir este objectivo, o aceso aum contexto tem o significado de uma visão MIB. - Política de Acesso - O VACM permite que um motor SNMP seja configurado para forçar um conjunto particular de direitos de acesso, o qual constitui uma política de acesso.
CAP. 9 INTRUSOS 9.1. INTRUSOS Há 3 classes: - Masquerader (farsante): Um indivíduo que não está autorizado a usar o computador e que penetra nos controlos de acesso dum sistema para explorar uma conta legítima de um utilizador. - Misfeasor (delinquente): Um utilizador legítimo que acede a dados, programas ou recursos para os quais tal acesso não é autorizado, ou que é autorizado para tal acesso mas usa impropriamente os seus privilégios. Utilizador Clandestino : Um indivíduo agarra o controlo de supervisor do sistema e usa este controlo para se esquivar a audits e controlos de acesso ou para apagar a colecção de audits. Os intrusos benignos podem ser toleráveis, apeasr de consumirem recursos e poderem baixar a perfomance perfomance dos utilizadores utilizadores legítimos. O alto alto nível nível são os utiliz utilizado adores res sofis sofistic ticado adoss com um conhe conhecim ciment entoo comple completo to da tecnologia; o baixo nível são os “peões” que meramente usam os programas de cracking fornecidos, com pouca compreensão de como eles trabalham. TÉCNICAS DE INTRUSÃO
O objectivo do intruso é ganhar acesso a um sistema ou aumentar a gama de privilégios de aces acessi sibi bili lida dade de num num sist sistem ema. a. Ge Gera ralm lmen ente te,, isto isto requ requer er que que o intr intrus usoo cons consig igaa informação que devia ter sido protegida, tal como passwords. O ficheiro de password pode ser protegido de uma de duas maneiras: - Encriptação de um-caminho - Controlo de Acesso: O acesso ao ficheiro de password é limitado a um ou muito poucas contas. contas. Os intrusos utilizam as seguintes técnicas para aprenderem os passwords: 1. Tentar passwords defeito usadas em contas standard que são embracadas com o sistema. 2. Exaustivamente, tentar todas as passwords pequenas (1 a 3 caracteres) 3. tentar palavras do dicionário online do sistema 4. Colectar informação acerca dos utilizadores 5. Tentar os nºs de telefone, nºs de segurança social e nºos de quarto dos utilizadores 6. Tentar todas as matrículas do estado 7. Usar um cavalo de tróia para bypassar restrições de acesso 8. Armadilhar a linha entre um utilizador remoto e o host Ataques de adivinhação são fazíveis, e de facto altamente efectivos, quando um grande nº de tentativas pode ser feito automaticamente. O cavalo de tróia pode ser particularmente difícil de contrariar e pode ir, por ex., num jogo feito e supervisor supervisor convidado. O 8º ataque é uma matéria de segurança segurança física e pode ser contrariada contrariada com técnicas de encripatação de ligação. 9.2. DETECÇÃO DE INTRUSÃO Inevitavelmente, a melhor prevenção de intrusão vai falhar. Uma segunda linha de defesa do sistema é a detecção. Interesse: 1. Se uma intrusão é detectada suficientemente rápido, o intruso pode ser identificado e ejectado do sistema antes do mal ter sido feito. 2. Pode ser dissuasor 3. Permite colectar informação acerca de técnicas de intrusão que podem ser depois usadas em prvenção. A detecção de intrusão é baseada na assumpção de que o comportamento do intruso difere de um utilizador legítimo de modos que podem ser quantificados. Com razoável confiança pode-se distinguir um mascarado de um utilizador legítimo observando a história passada, e desvios significativos de tais padrões podem ser detectad detectados. os. Detectar Detectar um misfeaser misfeaser pode ser mais difícil. Detectar um clandesti clandestino no está para além do escopo escopo de técnicas técnicas puramente automáticas. automáticas. Abordagens à detecção de intrusão: 1. Detecção de Anomalias Estatísticas: a) Detecção de Limiar: definir limiares, independentes do utilizador, para a frequência de ocorrência de vários eventos b) Baseado no Perfil: um perfil da actividade de cada utilizador é desenvolvido e utilizado 2. Detecção Baseada-Em-Regras: define-se um conjunto de regras: a) Detecção de Anomalias: São desenvolvidas regras para detectar desviuos de padrões de utilização prévias b) Identificação de Penetração: Uma abordagem de peritos em sistema que procura por comportamentos suspeitos.
A anom anomal alia ia esta estatí tíst stic icaa é efec efecti tiva va cont contra ra fars farsan ante tes, s, mas mas inca incapa paze zess de dete detect ctar ar misfeasores, em que se deve usar abordagens baseadas em regras. Na prática os sistemas usam uma combinação. REGISTOS DE AUDIT Uma ferramenta fundamental. Algum registo de actividade dos utilizadores deve ser mantida como input de um sistema de detecção de intrusão. 2 planos são usados: - Registos de Audit Nativos - Registos de Audit Específicos de Detecção : uma vantagem é que podem ser feitos independentes do vendedor; a desvantagem é o overhead extra de 2 pacotes a correr na máquina. Um bom ex. é cada registo de audit conter os seguintes campos: - Sujeito: Iniciadores de acções. Pode ser um utilizador de um terminal mas também um processo. - Acção: Operação executada pelo sujeito num ou com um objecto - Objecto: Receptores das acções Condição de Excepçã Excepçãoo : Den - Condição Denota ota qua quais, is, se alguma algumas, s, con condiç dições ões de excepç excepção ão se levantam como retorno. - Utilização de Recursos - Selo de Tempo A decomposição das operações do utilizador tem 3 vantagens: 1. Porq Porque ue os obje object ctos os são são enti entida dade dess prot proteg egív ívei eiss num num sist sistem ema, a, o uso uso de acçõ acções es lementares permite uma audit a todo o comportamento afectando um objecto. Assim, o sistem sistemaa pod podee detec detectar tar tentat tentativa ivass subver subversiv sivas as de contr controlo olo de acesso acesso (notan (notando do uma anornamildade no nº de condições de excepção retornadas) e pode detectar subversões com sucesso notando uma anormalidade no conjunto de objectos acessíevis ao sujeito. 2. Ob Obje ject cto-ú o-úni nico co,, regi regist stos os de audi auditt de acçã acção-ú o-úni nica ca simp simplif lific icam am o mode modelo lo e a implementação. 3. Mapeamento directo de registo de audit nativos e registos de audit de detecção específica. DETECÇÃO DE ANOMALIAS POR ESTATÍSTICA Anál An ális isee de limi limiar ar,, por por si próp própri ria, a, é um dete detect ctor or cru cru e não não efec efecti tivo vo de apen apenas as moderadamente sofisticados ataques. Contudo, detectores siples de limiar podem ser úteis em conjunção com técnicas mais sofisticadas. Um perfil consiste num conjunto de paâmetros. A fundação desta abordagem é uma análise dos registos de audit. Exemplos de métricas que são úteis para detecção de intrusão baseada no perfil são as seguintes: - Contador: Exemplos incluiem nº de logins de um utilizador numa hora; nº de vezes que um dado comando é executado durante uma sessaõ única de utilizador, e o nº de falhas de password durante um minuto. - Medidor: Ex. nº de conexõeslógicas associadas a uma aplicação do utilizador e o nº de mensagens em fila para saída para um processo de utilizador. Temporizador de Intervalos : O tamanho de tempo entre 2 eventos relacionados. Ex. - Temporizador logins sucessivos a uma conta. Utilização de Recursos : Dadas estas métricas, vários testes podem ser executados. O teste estatístico mais simples é medir a média e o desvio padrão de um parâmetro sobre algum período histórico, o que é aplicável a uma variedade de contadores, temporizadores e medidas de recursos, mas são tipicamente muito cruas para detecção de intrusão.
Um modelo multivariável é baseado em correlações entre 2 ou mais variáveis (por ex. temp tempoo de proc proces essa sado dorr e util utiliz izaç ação ão de recu recurs rsos os,, ou frequ frequên ênci ciaa de logi loginn e temp tempoo transcorrido de sessão). Um modelo de processo de Markov é usado usado para para estabe estabelec lecer er proba probabil bilida idades des de transição entre vários estados. Ex. transição entre certos comandos. Um modelo de série de tempo foca-se em intervalos de tempo, olhando para sequências de eventos que acontecem muito rapidamente ou muito lentamente. Finalmente, um modelo operacional trabalha melhor quando o comportamento do intruso pode ser detectado de certos tipos de actividades, por ex. um nº grande de tentativas de login num período pequeno sugere uma tentaiva de intrusão. A principal vantagem do uso de perfis estatísticos é que um conhecimento prévio de falhas de segurança não é requerido. ogo, é portável. DETECÇÃO DE INTRUSÃO BASEADA-EM-REGRAS Detecção de anomalias baseada-em-regras baseada-em-regras É similar à estatística; os registos de audit do histórico são analisados para identificar padrões de utilização e gerar regras automaticamente. automaticamente. Cada transacção é comparada com um conjunto de regras. Para esta aproximação ser efectiva é preciso uma grande base de dados dados deregras, por ex. ex. 10 4 a 106. Identificação de penetração baseada-em-regras baseada-em-regras Toma Toma uma uma abo aborda rdagem gem difere diferente nte,, basea baseada da em perito peritoss de sistem sistemas as de tecnol tecnologi ogia. a. Heurísticas exemplo: 1. Os utilizadores não devem ler ficheiros em directórios pessoais de outros utilizadores 2. Os utilizadores não devem escrever ficheiros de outros utilizadores 3. Os utilizadores que se logam ao longo do tempo frequentemente acessam os mesmos ficheiros que usaram antes 4. Os utilizadores geralmente não abrem os dispositivos de disco directamente mas baseiam-se em utilitários utilitários de alto-nível do SO. 5. Os utilizadores não devem ser loggados mais que uma vez no mesmo sistema. 6. Os utilizadores não fazem cópias de programas de sistema. A FALÁCIA DA BASE-RATE Um estudo indica que os sistemas correntes não ultrapassaram o problema de falácia da base-rate, isto é, deve detectar verdadeiras intrusões e gerar poucos falsos alarmes, o que não acontece. DETECÇÃO DE INTRUSÃO DISTRIBUÍDA Os maiores pontos no design de us sistema de detecção de intrusão distribuído são: - Pode precisar de lidar com diferentes formatos de registos de audit. - Um ou mais nodos na rede servirá como ponto de colecção e análise para os dados dos sistemas na rede, logo terá de haver um requisito de integridade e confidencialidade na rede. - Quer uma arquitectura centralizada ou descentralizada pode ser usada. Ex. da Universidade da California - arquitectura: - Módulo Agente Host - Módulo Agente Monitor de LAN - Módulo Gestor Central POTES DE MEL São desenhados para: - Divertir um atacante de aceder a sistemas críticos - Recolher informação acerca da actividade do atacante - Encorajar o atacante a ficar no sistema suficiente tempo para os administradores repsonderem.
Os esforços iniciais envolveram um computador honeypot único com endereços de IP desenhados para atrair hackers. Mais recentemente a pesquisa focou-se em construir redes inteiras honeypot que emulam uma empresa, possivelmente com tráfego real ou simulado e dados. Uma vez os hackers dentro da rede, os administradores podem observar o seu comportamento em detalhe e desenvolver depois defesas. DETECÇÃO DE INTRUSÃO TROCA DE FORMATO É preciso standards. Comissão chegou a: - Um documento de requisitos, o qual descreve os requisitos funcionais de alto-nível para comunicação comunicação - Uma especificação de linguagem de intrusão comum, a qual descreve formatos de dados que satisfazem os requisitos. GESTÃO DE PASSWORDS PROTECÇÃO DE PASSWORDS A linha da frente de defesa contra intrusos é o sistema de passwords. O password serve para autenticar o ID do indíviduo a logar-se no sistema. Por sua vez, o ID fornece segurança das seguintes maneiras: - O ID determina se o utilizador está autorizado a ganhar acesso ao sistema. - O ID determina os privilégios acordados para o utilizador - O ID é usado naquilo que é referido como controlo de acesso discricionário, isto é, pode dar acesso acesso a outros sobre sobre os seus ficheiros. ficheiros. A VULNERABILIDADE DOS PASSWORDS Para perceber a natureza da ameaça aos sistemas baseados-em-passwords, baseados-em-passwords, consideremos o esquema do Unix, onde nunca são armazenados em claro: Cada utilizador selecciona um password igual ou acima de 8 caracteres imprimíveis. Isto é convertido num valor de 56-b 56-bit itss (7-b (7-bit it ASCI ASCII) I) que que serv servee como como chav chavee de entra entrada da para para uma uma roti rotina na de encriptação, baseada no DES, que é modificado usando um valor de salto de 12-bits. Tipicamente este valor é relacionado com o instante de tempo em que a password é associada ao utilizador. O algoritmo DES modificado é exercitado com uma entrada de dados consistindo em blocos de zeros de 64-bits. A saída do algoritmo serve depois como entrada entrada para uma segunda segunda encriptaçã encriptação. o. este proceso proceso é repetido repetido para um total de 256 erncriptações. A saída resultante de 64-bits é depois traduzida numa sequência de 11 caracteres. A password de texto cifrado é depois armazenada junto com uma cópia de texto pleno do salto, no ficheiro de password para o correspondente ID de utilizador. O salto fornece 3 propósitos: - Previne passwords duplicados de serem visíveis no ficheiro de passwords - Efectivamente aumenta o tamanho do password sem requerer que o utilizador se lembre de 2 caracteres adicionais. - Previne o uso de implementações de hardware do DES. Os Sos usam o ID para indexar no ficheiro de password e recuperar o pleno texto do salto e a password encriptada. Assim, há 2 ameaças ao esquema de passwords do Unix. Primeiro, um utilizador pode ganhar ganh ar acesso a uma máquina máquina usando usando a conta guest guest ou de outro modo e depo depois is correr um programa de adivinhação de passwords, chamado password cracker, nessa máquina. Em adição, se um oponente é capaz de obter uma cópia do ficheiro de password, então o programa cracker pode ser corrido noutra máquina em leisure. Conseguiu-se já 6,4 milhões de encriptações por segundo numa máquina e 1024-nodos. Em vez disso, os passwords crackers baseiam-se no facto de que algumas pessoas escolhem passwords facilmente adivinháveis. adivinháveis. Por ex. absurdamente absurdamente curtos; ou tais como o seu próprio nome, o nome da sua rua, uma palavra de dicionário comum, etc. A seguinte estratégia é usada pelos crackers:
1. Tentar o nome do utilizador, iniciais, nome de conta, e outra informação pessoal relevante. 2. Tentar palavras de vários dicionários 3. Tentar várias permutações das palavras do passo 2. 4. Tentar várias capitalizações de permutações nas palavras do passo 2. CONTROLO DE ACESSO Uma forma de thwart um ataque de password é negar ao oponente o acesso ao ficheiro de passwords. Flaws nesta estratégia: - Muitos sistemas, incluindo a maioria dos sistemas Unix, são susceptíveis a break-ins inantecipáveis. Uma vez que um atacante tenha ganho acessopor qualquer meio, pode querer obter uma colecção de passwords para depois reduzir o seu risco de detecção. Ou um utilizador com uma conta pode desejar outra conta para obter privilégios ou sabotar. - Um acidente de protecção pode tornar o ficheiro de passwords legível - Alguns dos utilizadores têm contas noutras máquinas noutros domínios protegidos, e usam a mesma password. Assim, uma estratégia mais efectiva é forçar os utilizadores a escolherem um password difícil de adivinhar. ESTRATÉGIAS DE SELECÇÃO DE PASSWORDS A nossa meta, então, é eliminar paswords facilmente adivinháveis enquanto permitimos que o utilizador selccione uma password facilmente rememorável. 4 técnicas básicas estão em uso: - Educação do utilizador - Passwords geradas pelo computador - Checagem reactiva de password - Checagem proactiva de password Muitos utilizadores ignoram simplesmente as linhas de guia. As passwords geradas pelo computador também têm problemas, pois os utilizadores não se conseguem lembrar delas, pelo que têm uma aceitação muito pobre entre os utilizadores. checagem m de pasword pasword reactiva reactiva é uma tal em que o sistema Uma estra estratég tégia ia de checage periodicamente corre o seu próprio programa cracker para encontrar passwords adivinháveis. O sistema cancela qualquer password que seja adivinhado e notifica o utilizador. As desvantagens é que consome recursos intensivamente. A abordagem mais promissora é a checagem de passwords proactiva : na altura da escolha, o sistema checa para ver se o password é permitido e, se não, rejeita-o. O truque é atingir um equilíbrio entre a aceitabilidade do utilizador e a sua fortaleza. A primeira aproximação é um sistema simples de forçagem de regras, por ex:.: - Todas as passwords devem ter pelo menos 8 caracteres - Nos primeiros 8 caracteres, as passwords devem incluir pelo menos um de cada maiúsculas, minúsculas, dígitos numéricos e sinais de pontuação. Outro Outro possív possível el proced procedime imento nto é simple simplesme smente nte compi compilar lar um grande grande dicion dicionári árioo de possíveis más passwords. passwords. Há 2 problemas com esta esta aboradegm: Espaço Espaço e Tempo. Tempo. 9.1. Liste e defina brevemente 3 classes de intrusos. 9.2. 9. 2. Qu Quai aiss sã sãoo as 2 té técn cnic icas as ma mais is co comu muns ns us usad adas as pa para ra pr prot oteg eger er um fi fich chei eiro ro de passwords? 9.3. Quais são os 3 benefícios que podem ser fornecidos por um sistema de detecção de intrusão? 9.4. Qual é a diferença entre detecção de anomalia estatística e detecção de intrusão baseada-em-regras? baseada-em-regra s?
9.5. Que métricas são úteis para a detecção de intrusão baseada-no-perfil? 9.6. Qual é a diferença entre detecção de anomalias baseada-em-regras e identificação de penetração baseada-em baseada-em-regras? -regras? 9.7. O que é um honeypot? 9.8. O que é um salt no contexto da gestão de passwords do UNIX? 9.9. Liste e defina brevemente 4 técnicas usadas para evitar passwords adivinháveis.
CAPÍTULO 10 SOFTWARE MALICIOSO 10.1 VÍRUS E AMEAÇAS RELACIONADAS PROGRAMAS MALICIOSOS Podem ser divididos em 2 categorias: aqueles que precisam de programa hospedeiro e os que são independentes. Estes são programas auto-contidos que podem ser agendados e corridos pelo SO. Também podemos diferenciar entre aquelas ameaças de software que não se replicam e as que se replicam. As primeiras são fragmentos de programas que são activados quando o programa hospedeiro é invocado para executar uma função específica. Os últi último moss cons consis iste tem m em ou um frag fragme ment ntoo de prog progra rama ma (vír (vírus us)) ou um prog progra rama ma independente (worm, bacterium) que, quando executado, pode produzir uma ou mais cópias dele próprio que sejam activadas mais tarde no mesmo sistema ou noutro sistema. As bombas lógicas ou cavalos de tróia podem ser partes de um vírus ou de um worm. PORTAS ARMADILHADAS (TRAP DOORS) É um ponto secreto de entrada num programa que permite a alguém que o sabe ganhar acesso sem passar pelos procedimentos usuais de segurança de acesso. Têm sido usadas legitimamente durante muitos anos por programadores para debug e teste de programas. O desenvovedor pode querer ganhar privilégios especiais ou evitar todo o necessa´rio setupe autenticações. O programador pode também querer assegurar-se que há um método de activar o programa caso algo corra mal com o procedimento de autenticação que foi construído para essa aplicação. A trap door é código que reconhece alguma especial sequência de entradas ou é disparada sendo posta a correr por um certo ID de utilizador ou por um improvável sequência de eventos. As trap doors tornam-se ameaças quando são usadas por programadores sem escrúpulos para ganhar acesso acesso não autorizado. autorizado. Uma táctica é que a falsa update contenha um cavalo de tróia que pode ser activado por uma trap door e que permita à equipa tigre ganhar acesso. É difícil implementar controlos de SO para trap doors. As medidas de segurança devem focar-se no desenvolvimento dos programas e nas actividades de update de software. BOMBA LÓGICA É código embebido num programa legítimo que é preparado para “explodir” quando se verificam certas condições, como a presença ou ausência de certos ficheiros, uma certa data ou dia da semana. Uma vez disparada, uma bomba pode alterar ou apagar dados ou ficheiros inteiros, causando uma paragem da máquina. CAVALOS DE TRÓIA É um útil, ou aparentemente útil, programa ou comando contendo código escondido que, quando invocado, executa alguma função não querida ou prejudicial. Podem ser usados para atingir funções indirectamente que um utilizador não autorizado não pode atingir directamente. Por exemplo, ganhar acesso a ficheiros e outro utilizador num sistema partilhado, um utilizador pode criar um programa cavalo de tróia que,
quando executado, mude as permissões do ficheiro de utilizador invocado de modo a que os ficheiros sejam legíveis por qualquer utilizador. Um ex. de um programa cavalo de tróia que é difícil de detectar é um compilador que seja modificado para inserir código adicional em certos programas quando eles são compilados, tal como um programa de login de sistema. O código cria uma trap door no programa de login que permite que o autor se logue no sistema usando uma password especial. Uma outra motivação comum para o cavalo de tróia é a destruição de dados. O programa aparenta executar uma função útil (e.g. programa calculadora), mas ele pode também silenciosamente apagar ficheiros de utilizador. ZOMBIE É um programa que secretamente toma co comando de outro computador ligado à Internet e depois usa esse computador para lançar ataques que são difíceis de seguir até ao criador do zombie. Zombies são usados em ataques denial-of-service, tipicamente contra sites Web alvo. A NATURTEZA DOS VÍRUS Um vírus é um programa que pode “infectar” outros programas, modificando-os; a modificação inclui uma cópia do programa de vírus, o qual pode depois ir infectar outros programas. Num ambiente de rede a capacidade capacidade de aceder a aplicações e sistemas de serviços em outros computadores fornece uma cultura perfeita para o espalhar de vírus. Um vírus pode fazer qualquer coisa que os outros programas façam. Eles apenas se diferenciam em ligar-se eles próprios a outro programa e executar-se secretamente quando o programa hospedeiro corre. Uma vez que o vírus se execute, ele pode executar qualquer função, tal como apagar ficheiros e programas. Durante o seu tempo de vida, um vírus típico passa pelas seguintes 4 fases: - Fase Dormente : será activado por algum evento, tal como uma data, a presença de outro programa ou ficheiro. Nem todos os vírus têm este estágio. - Fase de Propagação : - Fase de Disparo : É activado para executar a função para a qual foi criado. - Fase de Excução : causa prejuízo ou danos. Assim, eles são desenhados para tomar partido dos detalhes e fraquezas de sistemas particulares. ESTRUTURA DO VÍRUS Um vírus pode se posto ao princípio ou no fim e um programa executável. A chave da sua operação é que o programa infectado, quando invocado, executa primeiro o código do vírus e depois executa o código original do programa. Um programa infectado começa com o código do vírus e trabalha assim: A primeira linha de código é um salto para o programa principal do vírus. A segunda linha é uma marca especial que é usada pelo vírus para determinar se sim ou não um programa potencial vítima já foi infectado com este vírus. Quando o programa é invocado, o controlo é imediatamente transferido para programa principal do vírus. O programa do vírus primeiro procura por ficheiros executáveis não infectados e infecta-os. a seguir, o vírus pode executar alguma acção, usualmente prejudicial ao sistema. esta acção pode ser executada sempre que o programa é invocado, ou pode ser uma bomba lógica que dispara sob determinadas condições apenas. Finalmente, o vírus transfere o controlo para o programa original. Se a fase de infecção do programa é razoavelmente rápida, o utilizador não é capaz de se aperceber de qualquer diferença entre a execução de um programa infectado ou ou não infectado. infectado.
Um vírus como o que foi descrito é facilmente detectado porque uma versão infectada do programa é maior que a correspondente não infectada. Uma maneira de frustrar tal simples maneira d edetectar o vírus é comprimir o executável de tal modo que as versões infectadas e não infectadas sejam de tamanho idêntico. INFECÇÃO INICIAL Uma vez ganha a entrada no sistema pelo vírus, por infecção de um único programa, ele está em posição de infectar alguns ou todos os outros ficheiros executáveis desse sistema quando o programa infectado se executar. Assim, a infecção viral pode ser completamente prevenida prevenindo prevenindo que o vírus ganhe entrada em primeiro lugar. a maioria das infecções virais iniciam-se com um disco de onde os ficheiros são copiados na máquina, tais como jogos ou utilitários que os empregados obtêm dos seus computadores pessoais e depois trazem e colocam na máquina do escritório. Alguns, incrivelmente, estão presentes em discos que vêm ainda embrulhados do fabricante da aplicação. Apenas uma pequena fracção de infecções começam através da ligação de rede. TIPOS DE VÍRUS - Vírus Parasitas - A tradicional e ainda mais comum forma de vírus. - Vírus Residentes-Em-Memória - Alojam-se na memória principal como parte do parograma de sistema residente. A partir desse ponto, o vírus infecta todo o programa que se execute. - Vírus de Sector de Boot - Infecta um registo de boot master ou registo de boot e espalha-se quando o sistema é bootado a partir disco que contém o vírus. - Vírus de Reserva/Discrição (Stealth ) - Uma forma de vírus explicitamente desenhada para se esconder esconder dos softwares de detecção detecção anti-vírus. - Vírus Polimórficos - Um vírus mutante em cada infecção, tornando a detecção por “assinatura” do vírus, impossível. Um ex. de stealth é o que vimos que usa compressão. Técnicas mais sofisticadas são possíveis em que quando se tenta ler a parte do disco suspeita ele apresenta o original. Assim, stealth não é um vírus mas uma técnica. Um vírus vírus polimó polimórfic rficoo cria cria cópia cópiass durant durantee a replic replicaçã açãoo que são funcio funcional nalme mente nte equivalentes mas têm diferentes padrões de bits. Uma outra arma dos escritores de vírus é a caixa de ferramentas para criação de vírus. VÍRUS MACRO Os vírus cresceram muito devido à proliferação deste tipo de vírus (são cerca de 2/3 do total). São particularmente ameaçadores devido a: 1. São independentes de paltaformas. Virtualmente todos os vírus de macro infectam documentos do Microsoft Word. 2. Infectam documentos, não partes de código executável. 3. São facilmente f acilmente espalhados. O que torna possível criar um vírus de macro é a sua auto-execução. Eventos de autoexecução comuns são abrir um ficheiro, fechar um ficheiro, e inicar uma aplicação. Uma vez a macro a correr, ela pode copiar-se a ela própria para outros documentos, apgar ficheiros, e causar outros tipos de danos no sistema do utilizador. No Word há 3 tipos de macros autoexecutáveis: autoexecutáveis: - Autoexecute: Se a uma macro é dado o nome de AutoExec e está no template “normal.dot” é executada sempre que o Word é iniciado. - Automacro: executa-se quando um evento definido ocorre, tal como abrir ou fechar um documento, criar um novo documento, ou sair do Word. - Command macro: Se uma macro tiver o nome de um comando do Word existente, é executada sempre que o utilizador invoque ese comando (e.g. File Save).
Uma técnica comum para espalhar um vírus de macro é assim: Uma automacro ou command macro é anexada a um documento Word que é introduzido num sistema por e-mail ou transferência de disco. Em algum ponto depois do documento ter sido aberto, a macro executa-se. A macro copia-se a ela própria para o ficheiro global macro. Quando Quan do a próxima próxima sessão de Word abrir, a macro macro globa infectada infectada é activada activada.. Quan Quando do esta macro executa pode replicar-se e causar danos. A Microsoft já oferece o Macro Virus Protection e vários anti-vírus também já lidam. VÍRUS DE E-MAIL Ex. o Melissa. Se o recipiente abrir um anexo de e-mail, a macro Word é activada. Então: 1. O vírus de e-mail envia-se a ele próprio para toda a gente na lista de endereços de email do package de e-mail do utilizador. 2. O vírus causa danos locais. Em 1999 apareceu um tipo ainda mais perigoso em que bastava abrir um e-mail. É feito em Visual Basic scripting que é suportada pelo package de e-mail. WORMS / VERMES Procura activamente mais máquinas para infectar e cada máquina que é infectada serve como lançadora automática de ataques para outras máquinas. Uma vez activo dentro dum sistema, um worm de rede pode comportar-se como um vírus de computador, ou pode implantar cavalos de tróia ou executar qualquer nº de acções destrutivas ou disruptivas. Para se replicar, um worm derede usa algum tipo de veículo de rede. Exemplos: - Facilidade de Correio Electrónico : o worm envia por email uma cópia dele próprio para outros sistemas. sistemas. - Capacidade de Execução Remota : Um worm executa uma cópia dele próprio noutro sistema. - Capacidade de Login Remoto : Um worm loga-se num sistema remoto como um utilizador e depois usa comandos para se copiar a ele próprio de um sistema para outro. Exibe as mesmas características de um vírus de computador. A fase de propagação faz: 1. Procura outros sistemas para infectar por exame das tabelas do host ou repositórios similares de enndereços de sistemas remotos. 2. Estabelece uma conexão com um sistema remoto 3. Autocopia-se para o sistema remoto e causa que a cópia seja corida. Ele pode disfarçar-se dando-se um nome de um processo de sistema. Tal como os vírus, os worms de rede são difíceis de contrariar. 102. MEDIDAS CONTRA OS VÍRUS A solução ideal à ameaça dos vírus é a prevenção, o que é, em geral, impossível atingir. Então a abordagem seguinte: - Detecção: Determinar que ocorreu e localizar o vírus. - Identificação - Remoção STEP ientifica 4 gerações de software antivirus: - Primeira geração: Scanners Simples - Segunda geração: Scanners Heurísticos - Terceira geração: Armadilhas de Actividade - Quarta geração: Protecção Completa A primeira geração requer uma assinatura do vírus para o identificar. O vírus tem essencialmente a mesma estrutura e padrão de bits em todas as cópias. estão pois limitados à detecção de vírus conhecidos. Outro tipo de scanners de 1ª geração mantém um registo do tamanho dos programas e olha pelas alteraçoes nesse tamanho.
A 2ª geração olha para fragmentos de código que estão frequentemen fr equentemente te associados com vírus. Também usa checagem de integridade: um checksum pode ser anexo a cada programa. Para os mais sofisticados uma função de hash encriptada pode ser usada. a chave de encriptação é armazenada separadamente do programa de modo a que o vírus não possa gerar um novo código de hash e encriptá-la. A 3ª geração são programas residentes em memória que identificam um vírus pelas suas acções em vez de pela estrutura num programa infectado. Tem a vantagem de que não é necessa´rio desenvolver assinaturas e heurísticas para uma gama variada de vírus. em vez disso é só preciso identificar o pequeno conjunto de acções. A 4ª geração são packages consistindo numa variedade de técnicas ant-vírus usadas em conjunto. Em adição, tal package inclui capacidade de controlo de acesso. TÉCNICAS AVANÇADAS DE ANTIVÍRUS DESENCRIPTAÇÃO GENÉRICA Permite que o programa antivírus detecte facilmente até o mais complexos dos vírus polimórficos, enquanto mantém altas velocidades velocidades e scanning. Relembremos que os polimórficos têm de autodesencriptar-se para se activar. Então os ficheiros executáveis são corridos contra um scanner GD, que contém: - Emulador CPU - Scanner de Assinaturas de Vírus - Emulação de Módulo de Controlo Não pode haver danos pois são interpretados num ambiente completamente controlado. A maior dificuldade no desenho de um scanner GD é determinar quanto correr cada interpretação. SISTEMA DE IMUNIZAÇÃO DIGITAL Para os, cada vez mais, espalhados espalhados pela Internet, evido a: - Sistemas de Correio Integrados - Sistemas de Programas-Móveis: Java e ActiveX permitem que programs se movam por eles próprios de de um sistema para outro. Este sistema expande o uso da emulação. O objectivo é fornecer resposta rápida de modo a que os vírus possam ser atirados fora quase logo que são introduzidos. Passos: 1. Um programa monitor em cada PC usa uma variedade de heurística baseada no compor comportam tament entoo do sistem sistema, a, mudan mudanças ças suspei suspeitas tas nos nos progra programas mas,, ou assina assinatur turaa de família. Ele reenvia uma cópia e qualquer programa que se ache que está infectado para uma máquina administrativa. 2. Esta encripta a amostra e envia-a para uma máquina central de análise de vírus. 3. Esta cria um ambiente no qual o programa infectado pode ser corrido seguramente para análise. 4. O prescrição resultado é enviado para a máquina administrativa 5. Esta reenvia para o cliente infectado 6. A prescrição é também enviada a outros clientes na organização. organização. 7. Todos os subscritores recebem updates regulares dos antivirus. SOFTWARE DE BLOQUEAMENTO-DE-COM BLOQUEAMENTO-DE-COMPORTAMENTO PORTAMENTO Monitoriza o comportamento dos programs em tempo-real por acções maliciosas. Estes comportamentos podem incluir: - Tentativas de abrir, apagar, ver, e/ou modificar ficheiros - Tentativas de formatar drives de disco e outras operações de disco irrecuperáveis. - Modificações à lógica dos ficheiros executáveis, scripts ou macros. - Modificação de parâmetros de sistema críticos, tais como configuração de arranque. - Scri Script ptss de e-ma e-mail il e mens mensag agen enss inst instan antã tãne neas as de clie client ntes es para para envi enviar ar cont conteú eúdo do executável.
- Inicialização de comunicações de rede. Ele pode identificar e bloquear acções maliciosas sejam qual for a lógica mais retorcida que o programa malicioso use. Desvantagem é que pode um programa malicioso pode causar um grande prejuízo antes de ser detectado, fazendo antes da infecção actividades aparentemente sem importância, como baralhar ficheiros por ex. 10.1. Defina brevemente cada tipo de malware mostrado na figura 10.1. 10.2. Qual é o papel da compressão na operação de um vírus? 10.3. Qual é o papel da encriptação na operação de um vírus? 10.4 Quais são as fases típicas de operação de um vírus ou verme? 10.5. Em termos gerais, como se propaga um worm? 10.6. O que é um sistema digita imune? 10.7. Como funciona um software de bloqueamento-do-comportamento? bloqueamento-do-comportamento?
CAP. 11 FIREWALLS 11.1. PRINCÍPIOS DE DESENHO DE FIREWALLS Evolução: - Sistemas de processamento de dados centralizados, com mainframe e terminais - Redes locais (LANs) - Rede de LANs - Rede de empresa (Wans) - Conectividade via Internet Enqua Enquanto nto é possív possível el equip equipar ar cada cada workst workstati ation on e servid servidor or nas nas locais locais com grande grandess características de segurança, esta aproximação não é prática, devidos ao grande nº de updates individuais necessários. necessários. A alternativa é usar o firewall. fir ewall. É inserido entre as redes locais e a Internet para estabelecer uma ligação controlada e erigir uma parede de segurança ou perímetro. O objectivo deste perímetro é proteger as redes locais de ataques baseados na Internet e fornecer um único ponto de obstrução onde segurança e audit pode ser imposta. Objectivos de desenho: 1. Todo o tráfico de dentro para fora, e vice-versa, tem de passar através da firewall 2. Apenas tráfico autorizado, tal como definido pela política de segurança local, será permitido passar. 3. O firewall ela própria é imune à penetração. SMIT lista 4 técnicas genéricas que os firewalls usam para controlar o acesso e forçar a política de segurança segurança do site: - Controlo de Serviços: determina os tipos de serviço Internet que podem ser acedidos, dirigidos para dentro ou para fora. O firewall pode filtrar o tráfico com base no endereço de IP e nº de port TCP; pode fornecer software proxy que recebe e interpreta cada pedido de serviço serviço antes de passar. passar. - Controlo de Direcção: - Controlo de Utilizador - Controlo de Comportamento: Por ex., o firewall pode filtrar o e-mail para eleiminar spam. Capacidades Capacidades dentro do escopo do firewall: 1. A fire firewa wall ll defi define ne um únic únicoo pont pontoo de chok chokee que que mant mantém ém os util utiliz izad ador ores es não não autorizados fora da rede protegida, proíbe potenciais serviços vulneráveis de entrar ou sair da rede, e fornece protecção para vários tipos de ataques de IP spoofing e routing. O uso de um único ponto choke simplifica a gestão da segurança.
2. Uma firewall fornece uma localização para monitorizar eventos realcionados com a segurança. Audits e alarmes podem ser implementados no sistema firewall. fir ewall. 3. A firewall é uma plataforma conveniente para várias funções de Internet que não estão relacionadas com a segurança, tais como tradutor de endereços de rede, que mapeia endereços locais com endereços Internet e audits ou logs de utilização da Internet. 4. Uma Uma firew firewal alll pode pode serv servir ir como como plat plataf aform ormaa para para IPSe IPSec; c; pode pode ser ser usad usadoo para para implementar redes privadas virtuais. As suas limitações são: 1. Não podem proteger contra ataques que bypassem o firewall. Sistemas internos podem ter capacidade capacidade de dial-out para para se conectar conectar a um ISP. 2. Não protege contra ameaças internas. 3. Não protege contra transferências e programas ou ficheiros infectados de vírus. TIPOS DE FIREWALLS PACKET-FILTERING ROUTER - ROTEADOR FILTRADOR-DE-PACOTE FILTRADOR-DE-PACOTES S Aplica um conjunto de regras a cada pacote IP de entrada e depois reenvia-o ou desacrta-o. Funciona em ambas as direcções. As regras de filtragem são baseadas em informação contida num pacote de rede: - Endereço de IP da Fonte - Endereço de IP do Destino - Endereço de Nível de Transporte da Fonte e do Destino - Campo de Protocolo IP - Interface Se não há batimento com qualquer regra, então um acção defeito é tomada, uma das 2 possíveis: descartar descartar ou reenviar. Uma vantagem de um router packet-filtering é a sua simplicidade, para além da sua transparência aos utilizadores e velocidade. As suas fraquezas são: - Porque não examinam dados de níveis superiores, não podem prevenir ataques que empregam funções ou vulnerabilidades específicas das aplicações. - Devido à limitada informação disponível ao firewall, a funcionalidade de logging presente nos firewalls firewalls packet filter é limitada. - A maioria deste tipo de firewalls não suporta esquemas de autenticação de utilizador avançados. - São geralmente vulneráveis a ataques e exploits que tiram vantagem dos problemas dentro da especificação TCP/IP e pilha de protocolo, tal como network network layer address spoofing. - Finalmente, devido ao pequeno nº de variáveis usadas nas decisões de controlo de aces acesso so,, são são susc suscep eptí tíve veis is de brec brecha hass de segu segura ranç nçaa caus causad adas as por por conf config igur uraç açõe õess impróprias. Alguns ataques e contramedidas para este tipo de firewalls são: - IP Address Spoofing : O intruso transmite pacotes de fora com um campo de endereço fonte de IP contendo um endereço de um host interno. A contramedida é descartar pacotes com um um enderço fonte interno interno se o pacote chegar chegar de uma interface externa. - Source Routing Attacks : A estação fonte especifica o caminho que um pacote deve tomar à medida que cruza a Internet, na esperança que isto bypasse medidas de segurança que não analisam a informação de encaminhamento encaminhamento da fonte. A contramedida é descartar todos os pacotes que usam esta opção. - Tiny Fragment Attacks : O intruso usa a opção de fragmentação IP para criar extremamente pequenos fragementos e forçar a informação de cbeçalho IP a ir num
fragmento do pacote separado. Assim, circunvala as regras de filtro que dependem da informação do cabeçalho TCP. A contramedida é descartar todos os pacotes onde o tipo de protocolo é TCP e o IP Fragement Fr agement Offset é igual a 1. STATEFUL INSPECTION FIREWALLS Em geral, quando uma aplicação que usa o TCP cria uma sessão com um host remoto, ela cria uma conexão TCP na qual o nº de port TCP para a aplicação remota (servidor) é um nº menor que 1024 e da cliente entre 1024 e 16383. Os nºs menores que 1024 são os nºs de ports ports “bem “bem conhe conhecid cidos” os” e são associ associado adoss perma permanen nentem tement entee a aplica aplicaçõe çõess particulares (e.g. 25 para o servidor SMTP). Os nºs entre 1024 e 16383 são gerados dinamicamente e têm significado temporário apenas no período de vida de uma conexão TCP. Um simples firewall packet-filtering deve permitir tráfico para dentro da rede em todos estes ports de altos nºs para tráfego baseado baseado em TCP que ocorrer. Isto cria uma vulnerabilidade que pode ser explorada por utilizadore não autorizados. Um stateful inspection packet filter tightens up as regras para tráfego TCP criando um directório de conexões TCP para fora (outbound) como mostrado na tabela 11.2. Há uma entrada para cada conexão estabelecida. O packet filter permitirá agora tráfego par adentro nos ports altos nºs apenas para aqueles pacotes que se enquadrem no perfil de uma destas entradas neste directório. APPLICATION-LEVEL GATEWAY Também chamado um servidor proxy. O utilizador contacta o gateway usando uma aplicação TCP/IP, tal como Telnet ou FTP, e o gateway pergunta ao utilizador pelo nome do host remoto a ser acedido. Quando o utilizador responde e fornece um user ID válido e informação de autenticação, o gateway contacta a aplicação no host remoto e realys segmentos TCP contendo os dados da palicação entre os 2 pontos finais. Além disso, a gateway tem de ser configurada para suportar apenas características específicas de uma aplicação que o administrador da rede considere aceitáveis. tendem a ser mais seguros que os packet-filters. Em adição é mais fácil logar e auditar todo o tráfico que entra no nível de palicação. A principal desvantagem é o overhead de processamento processamento adicional. CIRCUIT-LEVEL GATEWAY Não permite uma conexão conexão TCP fim-a-fim. A função função e segurança segurança consiste em determinar que conexões serão permitidas. Uma utilização típica é uma em que o administrador confia nos utilizadores internos. A gateway pode ser configurada para suportar nível-aplicação ou serviço de proxy em conexões inbound e funções de nível-circuito para conexões para fora. Um ex. é o SOCKS. HOST BASTIÃO É um sistema identificado pelo administrador o firewall como um ponto fortemente crítico na segurança da rede. Tipicamente, o host bastião serve como plataforma para um gatewaye nível-aplicação ou nível-circuito. Características: - Executa uma versão segura do seu SO, tornando-o num sistema de confiança. - Apenas os serviços que o administrador de rede considera essenciais essenciais são instalados no bastião host. - O host host bastiã bastiãoo pod podee requer requerer er autent autentica icaçã çãoo adicio adicional nal antes antes de um utiliz utilizado adorr ser permitido aceder aos aos serviços de proxy. proxy. - Cada proxy é configurado para suportar apenas um subconjunto dos comandos de uma aplicação standard. - Cada proxy é configurado para permitir acesso paenas a sistemas host específicos. - Cada proxy mantém informação de audit detalhada pelo loggando todo o tráfego. - Cada proxy é independente de outros proxies no host bastião.
- Um proxy geralmente não executa outros acessos de disco a não ser ler o seu ficheiro inicial de configuração. Isto torna mais difícil para um inruso instalar um cavalo de tróia tr óia sniffer ou outros ficheiros perigosos. CONFIGURAÇÕES DE FIREWALL Em vez de um só único sistema, configurações mais complexas são mais comuns. Na configuração Screened Host Firewall, Single-Homed Bastion , o firewall consiste em 2 sistemas: um router packet-filtering e um host bastião. Tipicamente, o router é configurado de tal modo que: 1. Para tráfego da Internet, apenas pacotes IP destinados ao host bastião são permitidos entrar. 2. Para tráfego da rede interna, apenas pacotes IP do host bastião são permitidos sair. O host bastião executa funções de autenticação e proxy. Esta configuração tem uma grande segurança, por 2 razões. Primeiro, implementa ambos filtragem de nível-pacote e nível-aplicação, permitindo flexibilidade na definição de política de segurança. segundo, segundo, um intruso tem geralmente depenetrar em 2 ssitemas separados. Como vimos, se o packet-filetring router for completamente comprometido, o tráfego pode fluir directamente através do router entre a Internet e os outros hosts na rede Screened Host Firewall, Firewall, Dual-Homed Dual-Homed Bastion Bastion previne privada. A configuração Screened fisicamente tal brecha de segurança. A configuração Screened Subnet Firewall é a mais segura, sendo usados 2 packetfiltering routers. Vantagens: - Há 3 níveis de defesa - A rede interna é invisível para a Internet - Os sistemas no interior da rede não podem construir caminhos directos para a Internet. 11.2. SISTEMAS DE CONFIANÇA É uma tecnologia. CONTROLO DE ACESSO AOS DADOS Enquanto o SO pode garantir uma permissão de utilizador para aceder a um ficheiro ou usar uma aplicação aplicação,, seguidamentr seguidamentr ao qual não há outras checagens checagens de segurança segurança,, o sistema de gestão de bases de dados pode tomar uma decisão com base em cada tentativa de acesso. Essa decisão dependerá não paenas na identidade do utilizador mas também em partes específicas dos dados. Um modelo geral é o que usa uma matriz de acesso . Os elementos básicos são: - Sujeito: uma entidade capaz de aceder aos objectos, geralmente um processo. - Objecto: Qualquer coisa à qual o acesso é controlado (ficheiro, aplicação, zona de memória) - Direito de Acesso : A maneira na qual um objecto é acedido por um sujeito (escrever, ler, executar). Um eixo contém os sujeitos, o outro os objectos (que podem até ser, ao nível mais detalhado, campos de dados). Cada entrada na matriz indica os direitos de acesso daquele sujeito para aquele objecto. A matriz pode ser decomposta em colunas, ficando-se com listas de controlo de acesso . Decomposição por linhas leva a bilhetes de capacidades . O CONCEITO DE SISTEMAS DE CONFIANÇA Muito do que discutimos até aqui concerne com proteger uma dada mensagem ou item de ataques passivos ou activos por um dado utilizador. Um requisito diferente é proteger os dado dadoss ou recu recurs rsos os na base base de níve níveis is de segu segura ranç nça: a: Nã Nãoo-Cl Clas assi sific ficad adoo (U), (U), Confidencial (C), Secreto (S), Top Secret (TS). É uma segurança multinível , que deve forçar:
- No read up: Um sujeito pode apenas ler um objecto de menos ou igual nível de segurança (Simple Security Property ) - No write down: um sujeito pode apenas escrever num objecto de maior ou igual nível de segurança (*-Property) Para um sistema de processamento de dados a abordagem é baseada no conceito de monitor monitor de referênc referência ia, que é um elemento de controlo no hardware e SO de um computador, que regula o acesso de sujeitos a objectos na base de parâmetros de segurança do sujeito e do objecto. O monitor de referência tem acesso a um ficheiro, conhecido como base de dados de núcleo de segurança , que lista os privilégios de acesso acesso (secur (security ity cleara clearance nce)) de cada cada sujei sujeito to e os atribu atributos tos de protec protecçã çãoo (níve (nívell de classificação) de cada objecto. O monitor de referÊncia força as regras de segurança (no read up, no write down) e tem as seguintes propriedades: propriedades: - Mediação Completa: As regras de segurança são forçadas em todos os acessos - Isolamento: O monitor de referência e base de dados são protegidos de modificações não autorizadas. - Verificabilidade: A correcção do monitor de referência deve ser provável. sistemaa de Um sist sistem emaa que que pode pode forn fornec ecer er tal tal veri verifi fica caçã çãoo é refe referi rido do como como um sistem confiança. DEFESA CONTRA CAVALOS DE TRÓIA Uma maneira é usar um seguro, SO de confiança. 11.1. Liste 3 objectivos do desenho de um firewall. 11.2. Liste 4 técnicas usadas pelos firewalls para controlar o acesso e forçar uma política de segurança. segurança. 11.3. Que informação é usada por um router de filtragem-de-pacotes típico? 11.4. Quais são as fraquezas de um router de filtragem-de-pacotes? 11.5. Qual é a diferença entre um router de filtragem-de-pacotes e um firewall de inspecção stateful? 11.6. O que é um gateway de nível-de-aplicação? 11.7. O que é um gateway de nível-de-circuito? 11.8. Quais são as diferenças entre as 3 configurações da figura 11.2.? 11.9. No contexto do controlo de acesso, qual é a diferença entre um sujeito e um objecto? 11.10. Qual é a diferença entre uma lista de controlo de acesso e um bilhete de capacidade? 11.11. Quais são as 2 regras que um monitor de referência força? 11.12. Que propriedades são requeridas de um monitor de referência?