NodeJS Crypto

NodeJS Crypto

0a8f40c6cc23fb6c8aad4de732c5abaf?s=128

Lucas Santos

August 01, 2019
Tweet

Transcript

  1. Crypto Deixando sua aplicação mais segura nativamente

  2. senior solutions architect_ quem sou eu_ /khaosdoctor @_staticvoid lsantos.dev @khaosdoctor

    nindoo.ai
  3. abcdevelopers.org cupom: LSANTOSABCDEV2019

  4. Criptografia

  5. Conjunto de técnicas para ofuscar a escrita e torná-la ininteligível

    para quem não é autorizado
  6. Ela existe há muito tempo

  7. Muito tempo mesmo

  8. None
  9. Cifra de César T E X T O k =

    3 W H A W R +k +k +k +k +k
  10. Criptografia clássica - Puramente baseada em lógica - Se decifrada

    perdia o sentido
  11. Criptografia digital - Baseada em matemática - Varia para cada

    tipo de entrada - Varia para cada tipo de dado - Dificuldade de decriptação - Facilidade de criação
  12. Tipos de criptografia

  13. Reversível É possível obter a mensagem original - AES -

    RSA - 3DES (DES) - Diffie-Hellman - Base64 - Rot13
  14. Irreversível Não é possível obter a mensagem original - SHA256

    - SHA128 - MD5 - PBKD2F
  15. O módulo Crypto

  16. O que podemos fazer - Criação de certificados - Criptografia

    assimétrica - Criptografia simétrica - Algoritmos autenticados - Algoritmos de iteração
  17. Criptografia baseada em chaves

  18. O que é uma chave? Criptografia reversível - Base da

    criptografia utilizada - Evita descobrimento por brute force - Não é um dicionário - Torna a função reversível
  19. Criptografia com chaves

  20. Criptografia com chaves

  21. Criptografia com chaves

  22. Casos de uso - Modelo mais utilizado de criptografia reversível

    - Armazenamento de informações confidenciais - Utilizado quando não precisamos compartilhar a senha
  23. Criptografia autenticada

  24. Criptografia autenticada

  25. Vetores de inicialização Adicionando ainda mais segurança - Número de

    uso único - Aleatório - Previne ataques de dicionário - Geralmente tem 16 bits
  26. Criptografia autenticada

  27. Criptografia autenticada

  28. Casos de uso - Autenticação de usuários - Tokens de

    validação - Assinatura simples de mensagens
  29. Hashes

  30. O que é hash Criptografia irreversível - Resultado de uma

    função criptográfica de derivação - Comprimento fixo - Com ou sem chave - Difíceis de reverter - Volatilidade da saída - Criam assinaturas - Transforma grandes quantidades de dados em pequenas unidades de informação
  31. Hash com chave (SHA)

  32. Hash sem chave (MD5)

  33. Casos de uso - Validação de blocos (blockchain) - Assinaturas

    de mensagens - Validação de binários - Armazenamento de senhas
  34. Criptografia iterativa

  35. PBKD2F Criptografando a criptografia … Várias vezes - Aplica uma

    criptografia irreversível várias vezes - Utiliza um Salt - Depende do algoritmo subsequente
  36. None
  37. Casos de uso - Todas as de um hash -

    Mais seguro
  38. Assinar mensagens

  39. O que é uma assinatura Garantindo que está tudo certo

    - Hash gerado a partir do conteúdo - Garante autenticidade - Tira proveito da natureza volátil dos hashes
  40. JWT header assinatura payload

  41. JWT - Na prática

  42. Assinando mensagens

  43. Assinando mensagens

  44. Casos de uso - Validação de autenticidade - Validação de

    integridade - Emails - Chaves - Mensagens - Criptomoedas
  45. /khaosdoctor @_staticvoid lsantos.me @khaosdoctor Demos

  46. referências_ - http://enigma.louisedade.co.uk/enigma.html - http://bit.ly/310srla - Como a enigma funciona

    - https://lollyrock.com/posts/nodejs-encryption/ - https://www.geeksforgeeks.org/node-js-password-hashing-crypto-module/ - https://nodejs.org/api/crypto.html - https://www.tecmundo.com.br/seguranca/1896-o-que-e-ssl-.htm - https://pt.wikipedia.org/wiki/Criptografia - https://www.youtube.com/watch?v=_Eeg1LxVWa8 - https://en.wikipedia.org/wiki/Enigma_machine - https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash - https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash_criptogr%C3%A1fica - https://github.com/khaosdoctor/palestra-nodejs-crypto - https://github.com/auth0/node-jsonwebtoken
  47. Feedbacks

  48. /khaosdoctor @_staticvoid lsantos.dev @khaosdoctor obrigado_