Apresentação realizada na palestra da join community 2016, com o tema de criptografia em .net, mostrando a facilidade de implementação e a importância de te criptografia nos projetos.
2. Quem sou?
• Raphael Freitas
• Certificações: 70-483 – Programming in c#
70-486 – developing ASP.NET MVC web applications
• Graduado – Analise e desenvolvimento de sistemas
• Pós-graduando: Cybersecurity e cybercrimes
Pericia forense aplicada a informática
3. Afinal o que é
criptografia?
• A arte de transformar um informação
legível e algo ilegível
• Criptoanálise
• Email
• Cartoes de créditos
• Dados corporativos
4. Historia
Inicio em 600 a.c. por meio de cifras monoalfabeticas, uma cifra
famosa por seu uso e a cifra de cesar, que deu origem a cifra atbash
5. Bases que ajudam a
conceituar
• Confidencialidade
• Integridade
• Não-repúdio
10. Números aleatórios
Muito utilizado em criptografia, e de extrema importancia que o
resultado seja não determinista e não previsível.
• AES
• Hash
11. Algoritmos hash
Uma sequencia de bits gerados por um algoritmo de dispersão.
• É fácil de calcular o valor hash para qualquer dada mensagem.
• É inviável para gerar uma mensagem que tenha um determinado
hash.
• É inviável para modificar uma mensagem sem alterar o hash.
• É impossível encontrar duas mensagens diferentes com o mesmo
hash.
Métodos hash mais utilizando são MD5 e a família de hash
SHA(sha-1,sha-256,sha-512,sha-384)
12. Armazenamento de senha
A utilização do salt e muito comum
para gerar senhas mais fortes
Salt e um dado aleatório que e usado
como entrada adicional ao hash
13. Função baseada em senha de
derivação de chave
PBKDF como e conhecido, recebe a senha + salta + valor de
interação
Valor de de interação e a quantidade de vezes que será processada
o mesmo hash
14. Criptografia simetrica
Processo de duas vias que usa a mesma chave para
criptografar e descriptografar
• cifras de fluxo, em que cada byte é codificados um de cada
vez.
• cifras de blocos, onde os dados são criptografados em
blocos.
• SymmetricAlgorithm
16. Preenchimento
• ANSIX923 – consiste em uma sequência de zeros antes do
comprimento.
• ISO10126 – dados aleatórios antes do comprimento
• NONE – nenhum preenchimento e feito
• PKCS7 – consiste em uma sequencia de bytes, onde o
tamanho e igual ao tamanho de bytes.
• ZEROS – consiste em bits definidos como zero (0).
17. Chave
Key uma matriz de byte que e usado
para armazenar a chave de criptografia.
18. IV
Inicialização do vetor uma matriz de bytes que e usado
juntamente com a chave, IV impede uma ataque de brute
force.
20. Triplo DES (3DES)
Adotado em 74 pela IBM, Gera de 3
chaves de 64 bits sendo que 8 bits para
verificar paridade das chaves, tamanha
máximo da chave 168 bits
21. AES
Advanced encryption standard foi
adotado pela NIST em 2001, que foi
selecionado para substituir o des,
desenvolvido por Joan Daemen e Vicent
Rijmen, possui um bloco de 128 bits e
suporta 3 comprimentos de chaves: 128,
192 e 256 bits
23. RSA
R (Rivest) S (Shamir) A (Adelman), para deduzir a chave RSA precisa
de muitos computadores, o que deixa o RSA limitado e que so pode
criptografar dados que seja menos que o tamanho da chave.
• In-memory
• Arquivos XML
• Provider Crypto Service
24. Assinatura digital
Ajuda a demonstrar autenticidade e integridade da
mensagem, uteis em autenticação de documentos,
transações bancarias download de software,