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
Hash Range Queries
Search
luke crouch
December 18, 2018
Technology
0
130
Hash Range Queries
For simple, privacy-preserving data-sharing.
luke crouch
December 18, 2018
Tweet
Share
More Decks by luke crouch
See All by luke crouch
Mr. Brokebot: Lethal language attacks against AI agents
groovecoder
0
35
Pigeons to Padlocks: 5000 years of Network Security
groovecoder
0
93
cryptory-up-to-https-atlas-2024.pdf
groovecoder
0
77
Cryptography: 500 BC to https
groovecoder
0
190
Mozilla Observatory First Draft
groovecoder
0
140
VPNs
groovecoder
0
140
Digital Privacy & Security
groovecoder
0
270
Cryptography: 500 BC to Quantum Computing
groovecoder
0
1k
Just enough bitcoing to go cryptojacking with JavaScript
groovecoder
0
120
Other Decks in Technology
See All in Technology
エンジニアリングマネージャーの仕事
yuheinakasaka
0
130
Phase04_ターミナル基礎
overflowinc
0
1.7k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
210
詳解 強化学習 / In-depth Guide to Reinforcement Learning
prinlab
0
360
Phase12_総括_自走化
overflowinc
0
1.1k
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
320
スピンアウト講座06_認証系(API-OAuth-MCP)入門
overflowinc
0
820
ABEMAのバグバウンティの取り組み
kurochan
1
390
Phase09_自動化_仕組み化
overflowinc
0
1.2k
大規模ECサイトのあるバッチのパフォーマンスを改善するために僕たちのチームがしてきたこと
panda_program
1
350
Cortex Code CLI と一緒に進めるAgentic Data Engineering
__allllllllez__
0
620
コンテキスト・ハーネスエンジニアリングの現在
hirosatogamo
PRO
6
720
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.2k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
190
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
340
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
650
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
The SEO Collaboration Effect
kristinabergwall1
0
400
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
84
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
430
Writing Fast Ruby
sferik
630
63k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
エンジニアに許された特別な時間の終わり
watany
106
240k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Transcript
Hash Range Queries For simple, privacy-preserving data-sharing
https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity/ https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/ Not my original idea
https://api.pwnedpasswords.com/pwnedpassword/password A request for a single password reveals who is
interested in this password. Maybe not that interesting for a widely-used value …
https://api.pwnedpasswords.com/pwnedpassword/p1nkyp13 But how many people would use their favorite my
little pony character with vowels replaced with numbers?
Do you trust the person operating the service? • Are
they doing something else with the data? • Are they securing the data?
None
How can a client get a single record from a
server without revealing the record identifier to the server?
The Easiest Way: Hashed Identifiers
None
None
But rainbow tables exist
None
The Hard Way: Private Set Intersection
None
None
The Middle Way: k-Anonymity
https://en.wikipedia.org/wiki/K-anonymity Every record is unique
https://en.wikipedia.org/wiki/K-anonymity k-Anonymity: 2 for any combination of Age + Gender
+ State found in any row of the table there are always at least 2 rows with those exact attributes Suppression Suppression Generalization
https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity/ By using this property, we are able to seperate
hashes into anonymized "buckets".
https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity/ A client is able to anonymize the user-supplied hash
…
https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity/ … and then download all hashes in the same
anonymized "bucket" as that hash … {
https://blog.cloudflare.com/validating-leaked-passwords-with-k-anonymity/ { 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 5baa61f4c0b12f0a6691121c7de9420c8ff12c1f 5baa61aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 5baa61bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 5baa61cccccccccccccccccccccccccccccccccc 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 5baa61f4c0b12f0a6691121c7de9420c8ff12c1f 5baa61aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
5baa61bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 5baa61cccccccccccccccccccccccccccccccccc … then do an offline check to see if the user- supplied hash is in that breached bucket.