Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
120
Escalando globalmente com TypeScript e JavaScript na Klarna
khaosdoctor
0
220
The future of JavaScript
khaosdoctor
0
93
TypeScript tips that could save your life
khaosdoctor
0
250
É hora de falar sobre Deno
khaosdoctor
0
93
JS Software testing for beginners
khaosdoctor
0
100
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
63
The Dark Side of JavaScript
khaosdoctor
0
93
Integrating Containers Into JavaScript
khaosdoctor
0
86
Other Decks in Programming
See All in Programming
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
450
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
860
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
420
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
250
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.9k
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
320
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
150
Creating Composable Callables in Contemporary C++
rollbear
0
210
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
110
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
110
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
4 Signs Your Business is Dying
shpigford
187
22k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
390
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
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_