Mapa mental
6.1 - Conceitos de Criptografia
Contenido del mapa
6.1 - Conceitos de Criptografia
O que é criptografia?
- A ciência de “esconder informações”; Historicamente, os primeiros métodos utilizados eram fáceis de usar e de quebrar (cifra de César, por exemplo); Ao longo do tempo, com a expansão do uso, a complexidade e segurança foram aumentando (A famosa Enigma, dos alemães, na segunda guerra mundial); Algoritmos de criptografia são, em geral, difíceis de criar.
Criptoanálise é o processo de retornar uma informação criptografada ao seu modo original
- Criptoanálise diferencial
- Compara a entrada em texto puro com a saída em texto criptografado, para determinar a chave utilizada
- Criptoanálise linear
- Similar ao método diferencial, porém submete o texto puro a um processo simples de criptografia, para tentar deduzir a chave utilizada
- Criptoanálise diferencial
Fundamentos
- Criptografia moderna utiliza algoritmos e chaves; A escolha do algoritmo depende da utilização necessária
- Operações criptográficas envolvem: Encriptação para garantir confidencialidade, hash para integridade, assinaturas digitais para não - repúdio e situações especiais como trocas de chave
- Dados são caracterizados pelo seu uso
- Data - in - transit (dados em trânsito)
- Data - at - rest (dados em descanso)
- Data - in - use (dados em uso)
Objetivos
- Confidencialidade
- Um dos pontos principais do sistema de criptografia é garantir que a informação não seja revelada ou usada de forma indevida
- Integridade
- Garantir que a mensagem (dado) enviada chegue ao destino sem alteração
- Não Repúdio ( Non Repudiation )
- Ex: possibilidade de assinar digitalmente um email e a partir desta assinatura comprova que a ação foi realizada pelo usuário
- Confidencialidade
Algoritmos simétricos(Chave privada)
- Método simples de criptografia; Se baseia no princípio de que remetente e destinatário utilizam a mesma chave para criptografar e decriptar a informação; Distribuição de chave é o ponto fraco; Mais rápidos que os assimétricos
- Algoritmos simétricos mais comuns
- DES; 3DES; AES; Blowfish; Twofish; RC4.
Modos de operação
- Necessidade de lidar com blocos de dados idênticos, no sentido de não facilitar a identificação de dados de entrada iguais
- 5 modos de uso mais comuns (detalhados no NIST SP 800 - 38A), recommendations for block cipher modes of operations
- ECB(eletronic code book); CBC(cipher block chaining ); CFB (cipher feedback mode ); OFB (output feedback mode ); CTR (counter mode)
Algoritmos assimétricos(Chave pública)
- Conhecido como criptografia de chave pública (public key cryptography); Ao contrário da criptografia simétrica, utiliza par de chaves; Uma chave privada, mantida em segredo, e uma chave pública, passível de distribuição; Tem dificuldade de fatorar números maiores, tornando os processos mais lentos; A resiliência das funções matemáticas é de extrema importância; Como a chave pública é livre, um atacante pode derivar a chave privada, a partir de dados cifrados
- Possibilitam o uso de assinaturas digitais; Corrige a maior falha da criptografia simétrica, com a permissão de envio de mensagens seguras, sem que o remetente e destinatário tenham de ter estabelecido contato prévio; Assinaturas digitais permitem compartilhamento de informações e documentos de forma segura
- Algoritmos assimétricos mais comuns
- RSA; Diffie - Hellman; ECC (elliptic curve cryptography); El Gamal
Simétrica x Assimétrica
- é mais rápida com menor poder computacional envolvido e tende a ser mais eficiente em grandes massas de dados
- garantem mais segurança no processo de criptografia, porém se torna menos eficiente em massas maiores de dados
- Ambas possuem vantagem e desvantagem
Hashing
- Qualquer algoritmo que mapeia dados de tamanhos variáveis em um dado de tamanho fixo
- O valor retornado pode ser:
- Valor Hash
- Código Hash
- Checksum
- O valor retornado pode ser:
- Algoritmos mais comuns
- MD2, MD4, MD5, SHA - 1, SHA - 256, SHA - 384 e SHA - 512
- Qualquer algoritmo que mapeia dados de tamanhos variáveis em um dado de tamanho fixo
Nonce
- é de uso único, sendo similar ao salt e iv, inserindo randomicidade em cenários de reutilização de senha
Vetor de Inicialização
- é utilizado no universo wireless para adicionar entradas randômicas de dados, no uso de cifragem em bloco, tentando dificultar um possível comprometimento da chave
Salt
- garante variação do hash armazenado, principalmente aumentando a entropia de senhas pequenas ou fracas
Elliptic curve
- Se baseia no uso de curvas elípticas, que é uma função simples de “desenhar” uma curva no plano x y; Largamente utilizado em dispositivos móveis, por ter baixa penalidade de performance; Funciona como criptografia de chave pública, utilizando valor de curva elíptica e ponto fixo para a curva.
Algoritmos fracos – não mais utilizados
- A força do algoritmo depende de sua resistência a colisões e aos mais diversos tipos de ataques; Com o passar dos anos, vão sendo descobertas falhas nos algoritmos e seu uso é desaconselhado; Colisão é um problema comum em algoritmos de hash; MD5 não deve ser utilizado. SHA - 1 também possui problemas de segurança; AES provê melhor performance e, até então, é estável
Difusão (Diffusion)
- É o princípio de que a análise estatistica do texto sem criptografia, com o texto criptografado, para criar uma situação de dispersão da informação, de modo a não ser possível realizar análises comparativas; Dessa maneira é possível garantir que uma mudança no texto puro gere uma quantidade de alterações no texto criptografado, escondendo a estrutura do texto original, dificultando análises
Confusão (confusion)
- Princípio que afeta a randomicidade de uma saída de dados; O conceito se baseia em cada caracter do texto puro, utilizar diversas partes da chave, para construção do texto criptografado; Garante aumento da entropia do dado
Colisão (collision)
- Quando duas entradas de dados distintas geram a mesma saída, em uma função criptográfica; Hash, por exemplo; Ataques de colisão são comuns; Eventualmente colisões podem ocorrer; O algoritmo precisa ser o mais resistente possível a esse tipo de ataque
Esteganografia
- Esconder Informações em Blocos; Esconder Informações em Imagens; Alterar invisivelmente a estrutura de uma imagem digital
Stream vs block
- Block
- Realizada em blocos de informação, habilitando transposição e substituição. Eficiente com grande quantidade de dados
- Requer mais recursos de memória; É mais forte; Apresenta bastante difusão; Resistente a modificações/inserções; Sucetível a propagação de erros; Provê verificação de autenticação e integridade; Algoritmos comuns: 3DES e AES
- Stream
- Se tornou popular através de uso de áudio e vídeo via internet; Não é adequado para quantidades grandes de dados; Trabalha bit a bit, ou byte a byte
- Mais veloz que o block cipher; Mais difícil de implementar corretamente; Baixa difusão; Sucetível a modificações/inserções; Baixa propagação de erros; Não provê verificação de autenticação e integridade; Algoritmos comuns: A5 e RC4
- Block
Key strenght – força da chave criptográfica
- A força de uma função criptográfica está associada a sua chave
- Chaves maiores possuem maior entropia e adicionam mais resistência a criptografia; A comparação entre algoritmos se torna complexa, pois nem todos usam chave fixa; 3DES (168) utiliza, AES possui vários tamanhos de chaves (128,192 e 256)
- A força de uma função criptográfica está associada a sua chave
Session key – chave de sessão
- Chave simétrica utilizada para criptografar a comunicação, durante uma sessão
- Gerada de forma randômica e utilizada no período de duração de uma sessão de comunicação; Quando gerada e propagada de forma correta, provê excelentes ganhos de proteção, podendo proporcionar PFS (perfect forward secrecy); Chaves de sessão se valem dos benefícios das chaves simétricas: Velocidade, performance e simplicidade
- Chave simétrica utilizada para criptografar a comunicação, durante uma sessão
Ephemeral key
- Chaves criptograficas utilizadas apenas uma única vez, após serem geradas; Pode ser utilizada como parte de um esquema com Diffie - Hellman; Quando em conjunto, criam uma chave EDH (ephemeral diffie - hellman); Gera uma chave temporária para conexão, nunca sendo reutilizada
Algoritmos secretos
- Algoritmos são divididos em 2 tipos: Os que possuem seus detalhes publicados e os que tem suas informações mantidas em segredo; Isso torna a engenharia reversa mais difícil; Em contrapartida, manter o algoritmo secreto não o coloca “a prova”, reduzindo a quantidade de testes realizados nele; Os algoritmos mais seguros são os que resistem aos ataques, ao longo do tempo
Data - in - transit (dados em trânsito)
- Criptografia na camada de transporte é utilizada para proteger dados em trânsito; Provê proteção end - to - end durante a comunicação entre redes inseguras; TLS é o método mais utilizado atualmente; SSL foi bastante utilizado, até ser descontinuado recentemente
Data - at - rest (dado em descanso)
- Se refere a proteção do dado armazenado; Pode ser alcançado através de criptografia de disco inteiro, ou apenas dos arquivos; É transparente para o usuário; Fabricantes possuem soluções distintas, possibilitando gerenciamento centralizado
Data - in - use (dados em uso)
- Requer proteção, tal qual outros estados do dado; Crescente aumento de ataques envolvendo captura de dados em memória RAM; Novas técnicas surgindo, como o Intel Software Guard Extension (SGX), que promete proteção para dados sensíveis, mesmo contra níveis elevados de autoridade, como o root
Geração de sequência randômica/pseudo - randômica de números
- Funções de criptografia precisam de números randômicos; Um número randômico verdadeiro, não tem relação com números randômicos anteriores ou futuros; Escolher algoritmos que gerem números randômicos de fato é necessário pra garantir a segurança do processo como um todo
Key Stretching
- Processo de melhorar a segurança de uma senha mais fraca, “esticando” a mesma, tornando - a mais resiliente a ataques de força bruta; Com o aumento dessa senha, a probabilidade de realizar o “guessing” do hash dela diminui consideravelmente; Dessa maneira, o custo computacional para descobrir a senha aumenta e a chance de um ataque bem sucedido é reduzida
Implementação vs seleção de algoritmo
- Crypto service provider
- Biblioteca de software que implementa funções de criptografia; Microsoft CryptoAPI é um exemplo; Proporciona um padrão para implementações complexas; Possibilita, por exemplo, o uso de criptografia para e - mail
- Crypto modules
- Componente de hardware ou software que executa operações de criptografia, de forma segura, com cenário de isolamento; Os módulos utilizam esse cenário para garantir que as chaves de criptografia não saiam do isolamento, mantendo níveis de segurança mais adequados
- Ao utilizar criptografia pra proteção de informação, diversos fatores são levados em consideração. Inclusive, como implementar a criptografia; Selecionar um algoritmo existente é sempre uma melhor opção do que desenvolver o seu próprio; É necessário evitar algoritmos descontinuados e sabidamente inseguros
- Crypto service provider
Perfect Forward Secrecy - PFS
- É uma propriedade de um sistema de chave pública onde uma chave é derivada de outra e essa chave derivada não é comprometida mesmo que a chave que a originou seja; Tem importância especial na geração de chaves de sessão; Se o PFS não estiver sendo utilizado e as chaves em uso forem comprometidas, as comunicações anteriores são passíveis de ser decriptadas
Segurança por obscuridade
- Conceito que envolve a crença de que algo estará seguro porque está sendo escondido; Sozinho, não representa nenhum ganho em segurança; Combinado com outros tipos de controles e proteções, auxilia no processo de dificultar o trabalho do atacante no levantamento de informações
Casos de uso mais comuns
- Dispositivos de baixo consumo
- Representados por smartphones e tablets; Sua característica de uso recomenda o uso da criptografia; Criptografia pode consumir muitos recursos computacionais; ECC (ellipict courve cryptography) é recomendado por seu baixo uso de recursos
- Baixa latência
- Algumas aplicações são sensíveis ao tempo; Sua execução precisa ser controlada em segundos e, as vezes, milisegundos; Para suportar esse tipo de cenário, é recomendado utilizar stream cipher, dada a sua característica de melhor performance
- Resiliência alta
- Alguns sistemas são caracterizados por funções que podem ser resumidas em termos de operação, após uma falha operacional; Para proteger esse tipo de sistema, utilizando criptografia, é importante escolher módulos de criptografia que suportem resiliência através de padrões de implementação flexíveis
- Confidencialidade
- É o princípio de que apenas indíviduos que tenham autorização para acessar uma informação, possam acessar ela; Criptografia é a forma primária de garantir confidencialidade da informação; Não importa se ela está em uso, em descanso ou em trânsito
- Integridade
- É o princípio de que apenas indivíduos autorizados podem alterar determinada informação; Demonstra que o dado não foi alterado; Hash auxilia a comprovar a manutenção da integridade de uma informação
- Autenticação
- É o princípio de identificar um indivíduo através, por exemplo, de um usuário; Criptografia pode auxiliar a demonstrar um processo de autenticação bem sucedido, mostrando que uma entidade possui uma chave privada associada a uma chave pública que foi apresentada
- Não - repúdio
- O princípio de não poder negar que realizou uma determinada ação, quando houverem provas irrefutáveis; Um e - mail assinado digitalmente é um exemplo de não - repúdio; Criptografia possibilita a assinatura digital de mensagens, sem a necessidade de troca de chaves
- Recursos vs considerações de segurança
- Criptografia é um processo que, sabidamente, consome recursos de sistema; Utilizar funções apropriadas é fundamental para garantir o bom funcionamento do sistema; Avaliar o cenário antes de implementar criptografia pode ser de grande valia
- Dispositivos de baixo consumo
Imágenes y archivos del mapa
Información
- Descripción
- (Criptografia - 12%) Comptia Security + Mapa Mental sobre 6.1 - Conceitos de Criptografia, creado por Henrique Luiz el 30/04/2019.
- Creado por
- Henrique Luiz
- Visitas
- 3
- Valoración