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
140
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
210
The future of JavaScript
khaosdoctor
0
91
TypeScript tips that could save your life
khaosdoctor
0
240
É hora de falar sobre Deno
khaosdoctor
0
90
JS Software testing for beginners
khaosdoctor
0
100
Ambientes dinâmicos com GitHub Actions
khaosdoctor
0
60
The Dark Side of JavaScript
khaosdoctor
0
93
Integrating Containers Into JavaScript
khaosdoctor
0
85
Other Decks in Programming
See All in Programming
New "Type" system on PicoRuby
pocke
1
830
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
130
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
160
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
680
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
390
RTSPクライアントを自作してみた話
simotin13
0
570
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2k
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
6
4k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
Claspは野良GASの夢をみるか
takter00
0
180
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
220
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
RailsConf 2023
tenderlove
30
1.5k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
420
Git: the NoSQL Database
bkeepers
PRO
432
67k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
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_