Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
NodeJS Crypto
Search
Lucas Santos
August 01, 2019
Programming
150
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NodeJS Crypto
Lucas Santos
August 01, 2019
More Decks by Lucas Santos
See All by Lucas Santos
The Hitchhiker's Guide for an Amazing API with TypeScript
khaosdoctor
0
140
Escalando globalmente com TypeScript e JavaScript na Klarna
khaosdoctor
0
230
The future of JavaScript
khaosdoctor
0
100
TypeScript tips that could save your life
khaosdoctor
0
270
É hora de falar sobre Deno
khaosdoctor
0
99
JS Software testing for beginners
khaosdoctor
0
110
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
77
The Dark Side of JavaScript
khaosdoctor
0
110
Integrating Containers Into JavaScript
khaosdoctor
0
98
Other Decks in Programming
See All in Programming
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
340
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
120
残高管理から台帳サービスへの進化
artoy
1
200
気持ちぃ〜角丸 Squircle
ryu1013
0
300
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
110
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
0
190
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
660
速習iPhone Duo対応
yuukiw00w
2
980
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
380
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
How STYLIGHT went responsive
nonsquared
100
6.3k
Believing is Seeing
oripsolob
1
240
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Tell your own story through comics
letsgokoyo
1
1.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Transcript
Crypto Deixando sua aplicação mais segura nativamente
senior solutions architect_ quem sou eu_ /khaosdoctor @_staticvoid lsantos.dev @khaosdoctor
nindoo.ai
abcdevelopers.org cupom: LSANTOSABCDEV2019
Criptografia
Conjunto de técnicas para ofuscar a escrita e torná-la ininteligível
para quem não é autorizado
Ela existe há muito tempo
Muito tempo mesmo
None
Cifra de César T E X T O k =
3 W H A W R +k +k +k +k +k
Criptografia clássica - Puramente baseada em lógica - Se decifrada
perdia o sentido
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
Tipos de criptografia
Reversível É possível obter a mensagem original - AES -
RSA - 3DES (DES) - Diffie-Hellman - Base64 - Rot13
Irreversível Não é possível obter a mensagem original - SHA256
- SHA128 - MD5 - PBKD2F
O módulo Crypto
O que podemos fazer - Criação de certificados - Criptografia
assimétrica - Criptografia simétrica - Algoritmos autenticados - Algoritmos de iteração
Criptografia baseada em chaves
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
Criptografia com chaves
Criptografia com chaves
Criptografia com chaves
Casos de uso - Modelo mais utilizado de criptografia reversível
- Armazenamento de informações confidenciais - Utilizado quando não precisamos compartilhar a senha
Criptografia autenticada
Criptografia autenticada
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
Criptografia autenticada
Criptografia autenticada
Casos de uso - Autenticação de usuários - Tokens de
validação - Assinatura simples de mensagens
Hashes
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
Hash com chave (SHA)
Hash sem chave (MD5)
Casos de uso - Validação de blocos (blockchain) - Assinaturas
de mensagens - Validação de binários - Armazenamento de senhas
Criptografia iterativa
PBKD2F Criptografando a criptografia … Várias vezes - Aplica uma
criptografia irreversível várias vezes - Utiliza um Salt - Depende do algoritmo subsequente
None
Casos de uso - Todas as de um hash -
Mais seguro
Assinar mensagens
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
JWT header assinatura payload
JWT - Na prática
Assinando mensagens
Assinando mensagens
Casos de uso - Validação de autenticidade - Validação de
integridade - Emails - Chaves - Mensagens - Criptomoedas
/khaosdoctor @_staticvoid lsantos.me @khaosdoctor Demos
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
Feedbacks
/khaosdoctor @_staticvoid lsantos.dev @khaosdoctor obrigado_