~/talk

Build your own Secure Messenger

Talkat NDC Sydney 2024 · 2024-02-12..02-16· [security, javascript]
slides:none on file

A working static-site chat that implements end-to-end encryption in the browser using OpenPGP.js and stores public keys in Supabase while persisting private keys in user metadata behind an identity provider. Messages encrypt once to multiple public keys (single ciphertext) and decrypt only with matching private keys; adding a late participant requires existing members to decrypt and re-encrypt history or use a rotated symmetric key wrapped per recipient. Demo runs but flags XSS, storage and UX risks (passphrases, key backup).

AI-written summary · about

  1. 0:00Introduction
  2. 1:11Speaker credentials
  3. 2:56Build secure messenger from scratch
  4. 4:43End-to-end encryption explained
  5. 8:40Asymmetric encryption tools
  6. 12:11OpenPGP JS for web app
  7. 12:52Key pair generation
  8. 18:14Decrypting with passphrases
  9. 19:59Secure key storage in web
  10. 26:47Keys in database metadata
  11. 31:19Encrypting messages
  12. 35:14Decrypting user messages
  13. 38:42Adding chat participants
  14. 43:17Live demo
  15. 48:24Security risks
  16. 50:31Key takeaways
  17. 53:41Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.