Prévia do material em texto
S. O. Segurança (aula 01) AURÉLIO FIGUEIREDO Agenda Segurança em Sistemas Operacionais: ◦Criptografia: ◦O Papel da Criptografia. ◦Ameaças e Ataques: ◦ Principal Objetivo da Segurança; ◦Bibliografia. Segurança em Sistemas Operacionais Introdução a Criptografia: ◦É o estudo e aplicação de técnicas utilizadas para comunicação e armazenamento seguro de dados em Sistemas Computacionais ◦A palavra Criptografia tem origem no Grego clássico: ◦Kryptós significa oculto, escondido; ◦Graphien: escrita; ◦Portanto, "escrita secreta". Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Texto Puro (ou Texto Plano): esses são os dados não encriptados, ou seja, os dados que queremos encriptar (Tipos); ◦Texto Cifrado (ou Texto Encriptado): São os dados depois de terem sido encriptados; ◦Chave (Key): É um conjunto de bits (caracteres, números, etc) utilizados para encriptar, ou desencriptar um Texto Cifrado; ◦Algoritmo de Criptografia: Método matemático utilizado para encriptar ou desencriptar dados, com ajuda das chaves. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Encriptação: Processo de conversão de dados legíveis, em um novo formato ilegível (ou seja, um Texto Cifrado) para pessoas não autorizadas, usando para isso uma chave de criptografia e um algoritmo de criptografia específico. O objetivo é proteger a privacidade durante armazenamento de dados ou troca de informações entre entidades, trafegando por meios não seguros. O receptor da mensagem encriptada poderá decifrá-la e ler seu conteúdo no formato original, caso possua a chave correta. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Decriptação: Processo de inverso ao da encriptação, ou seja, a conversão de dados ilegíveis (encriptados) em dados legíveis, utilizando para isso a chave (senha) correta, além da utilização do algoritmo criptográfico correspondente. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Criptoanálise: Processo de transformação de dados cifrados (ou seja, encriptados) em dados legíveis (decriptados) sem que se conheça a chave de encriptação. Portanto, trata-se de "quebra" do processo de encriptação dos dados, para obter acesso indevido ao conteúdo original das mensagens; ◦Muitas vezes, tais processos são a forma que os especialistas da área (chamados de criptoanalistas) tem de testar e descobrir falhas nos algoritmos, com o intuito de avaliá-los ou torná-los mais seguros. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Condições para que haja segurança nas comunicações: ◦Autenticação; ◦Integridade; ◦Confidencialidade; ◦Não Negação (ou Não Repúdio). Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Condições para que haja segurança nas comunicações: ◦Autenticação: o princípio da autenticação garante que a mensagem tenha sido realmente originada no remetente correto, evitando que outras pessoas ou processos se façam passar por ele. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Condições para que haja segurança nas comunicações: ◦Integridade: refere-se ao conteúdo das informações que são trocadas entre o transmissor e o receptor. Para garantir a integridade, deve-se garantir que o conteúdo da mensagem chegue íntegro, ou seja, que não existam alterações de nenhum tipo durante o processo de transmissão dos dados. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Condições para que haja segurança nas comunicações: ◦Confidencialidade: o princípio da confidencialidade visa garantir que a informação que foi encriptada esteja disponível somente para pessoas, ou processos que tenham autorização para acessá-la e utilizá-la. Em outras palavras, deve-se evitar que outras pessoas/processos tenham acesso aos dados encriptados. Segurança em Sistemas Operacionais Introdução a Criptografia: Termos Técnicos importantes: ◦Condições para que haja segurança nas comunicações: ◦Não Negação (ou Não Repúdio): por último mas não menos importante, esse princípio garante que uma mensagem qualquer, depois de enviada, não possa ser repudiada (ter sua autoria negada) pelo transmissor, ou seja, tem-se que garantir formas de que o transmissor não possa negar que a transmitiu. Existem algumas formas padrão para garantir isso, como por exemplo a utilização de assinaturas digitais. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Basicamente, podemos dividir os algoritmos de criptografia em três famílias diferentes: ◦Criptografia de Chave Privada, ou Simétrica; ◦Criptografia de Chave Pública, ou Assimétrica; ◦Funções de Hash. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Criptografia de Chave Privada (shared key), ou Simétrica: Essa classe de algoritmos se caracteriza pela utilização de uma única chave. Dessa forma, o emissor utiliza essa chave para encriptar a mensagem, enquanto o receptor utiliza essa mesma chave para decriptá-la. ◦Como ambos utilizam a mesma chave, vem daí o nome de criptografia simétrica. Desenhar o esquema de funcionamento no quadro! Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Criptografia de Chave Privada (shared key), ou Simétrica: ◦Usada em cifragem de fluxo (modo stream); ◦Exemplos de algoritmos conhecidos: DES, 3DES, BLOWFISH, AES, OTP (ONE TIME PAD), etc. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Criptografia de Chave Pública, ou Assimétrica: Nesse tipo usa-se duas chaves distintas, de modo a obtermos comunicação segura através de canais de comunicação inseguros. Chamamos de técnica de Criptografia assimétrica pelo fato de emissor e receptor utilizarem chaves diferentes. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Criptografia de Chave Pública, ou Assimétrica: ◦Cada um dos participantes possui uma chave pública e uma chave privada. A chave privada é secreta, e só o proprietário a conhece. A chave pública é compartilhada com todos que se comunicarão; ◦Exemplo: U1 quer se comunicar com U2 de forma segura. Então U1 encripta a mensagem com a chave pública de U2. Feito isso, a mensagem somente poderá ser decriptada utilizando-se da chave privada de U2, que somente U2 possui. Desenhar o esquema de comunicação no quadro. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Criptografia de Chave Pública, ou Assimétrica: ◦Transmissor e receptor possuem chaves diferentes, com tamanhos que variam normalmente entre 512 e 2048 bits; ◦Esse esquema de criptografia é muito usado no modo bloco; ◦Exemplos de alguns algoritmos: ◦DAS, RSA, GPG, etc. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Funções de Hash: tabelas hash também utilizam uma chave específica, como vimos nas técnicas anteriores. Aqui utiliza-se um "valor de hash" de tamanho fixo, que será utilizado para computar um valor específico sobre o Texto Plano. ◦Funções de Hash são utilizadas para verificar a integridade de dados depois de terem trafegado, de modo a garantir que não tenham sido inadvertidamente, ou propositalmente alterados. ◦Podem ser utilizadas para verificação de senha. Segurança em Sistemas Operacionais Introdução a Criptografia: Tipos de Algoritmos de Criptografia: ◦Funções de Hash: ◦Alguns exemplos de funções de Hash que utilizamos no nosso dia a dia: ◦MD5 Sum, SHA1, SHA2, etc Desenhar o esquema de comunicação no quadro; Segurança em Sistemas Operacionais Revisão de Operações Lógicas: ◦ AND; ◦ OR; ◦ NOT;◦ XOR ◦ Importância dessas operações para a criptografia. Segurança em Sistemas Operacionais Operações Lógicas: são operações em Álgebra Booleana (ou seja, somente com valores binários, ou BITS), que podem tomar valores 0 ou 1. ◦ As operações mais comuns são: ◦ AND (ou E); ◦ OR (OU); ◦ NOT (Negação: operação unária); ◦ XOR (ou OU-Exclusivo) Segurança em Sistemas Operacionais Operações Lógicas: AND (ou E); Segurança em Sistemas Operacionais Operações Lógicas: OR (OU); Segurança em Sistemas Operacionais Operações Lógicas: NOT (Negação: operação unária); Segurança em Sistemas Operacionais Operações Lógicas: XOR (ou OU-Exclusivo): ◦ Possui reversibilidade! Segurança em Sistemas Operacionais Exemplos de Operações Lógicas Bit a Bit: Segurança em Sistemas Operacionais Cifras Simétricas: ◦ Como já sabemos, um sistema de cifragem simétrico utiliza a mesma chave de criptografia tanto para encriptar quanto para decriptar os dados. Tais algoritmos também são conhecidos como Criptografia de Chave Compartilhada. ◦ Tais sistemas são utilizados tanto em Criptografia de Fluxo quanto em Criptografia de Bloco. Segurança em Sistemas Operacionais Cifras (Criptografia): ◦ Uma execução de criptografia (ou cifra) é definida através de um par de algoritmos: um de encriptação (E) e outro de decriptação (D), onde: c = E(k, m) e m = D(k, c) m: Texto Plano (mensagem); c: Texto cifrado (encriptado); k: Chave Criptográfica; Segurança em Sistemas Operacionais Cifras (Criptografia): ◦ Podemos relacionar os algoritmos de encriptação (E) e de decriptação (D), onde: m = D(k, E(k, m) ) Chamamos essa equação de "Equação de Consistência). Para satisfazer essa equação: D(k, E(k, m) ) = m Segurança em Sistemas Operacionais One Time Pad (OTP): Desenvolvido por Gilbert Vernam no Bell Labs (1917); A chave é uma string de bits aleatória, com o mesmo tamanho da mensagem em si: C = E(k, m) = K XOR m Segurança em Sistemas Operacionais One Time Pad (OTP): Exercícios... Segurança em Sistemas Operacionais Bibliografia: