Javascript Crypto & The Case Against Crypto Reductionism Ben - - PowerPoint PPT Presentation

javascript crypto
SMART_READER_LITE
LIVE PREVIEW

Javascript Crypto & The Case Against Crypto Reductionism Ben - - PowerPoint PPT Presentation

Javascript Crypto & The Case Against Crypto Reductionism Ben Adida Mozilla Workshop on Real-World Crypto January 2013 promote openness, innovation & opportunity on the Web. previously easy to deploy easy to use privacy


slide-1
SLIDE 1

Javascript Crypto &

The Case Against Crypto Reductionism Ben Adida

Mozilla Workshop on Real-World Crypto January 2013

slide-2
SLIDE 2

promote openness, innovation & opportunity on the Web.

slide-3
SLIDE 3

previously

slide-4
SLIDE 4
  • easy to deploy
  • easy to use
  • privacy protecting
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8

How to implement it

  • Ask for authentication

navigator.id.request();

  • Obtain proof of email address ownership:
  • Verify it and go.
slide-9
SLIDE 9

How it works

slide-10
SLIDE 10

We Make it Work Today

slide-11
SLIDE 11

We Make it Work Today

slide-12
SLIDE 12

We Make it Work Today

  • include a JS library
  • that implements

navigator.id.*

  • backend server &

postMessage communication to shim new browser functionality.

slide-13
SLIDE 13

Why this approach?

  • works today, in 20 LoC, on all browsers

with a shim Javascript library

  • as browsers implement native support,

the user experience improves dramatically while web sites don't need to change a thing

  • deploying new distributed technology is hard

scaffold + strategy for removing scaffolding

slide-14
SLIDE 14
  • in-browser crypto for e2e
  • encryption. Clipperz, SJCL,

Mozilla, Helios, ...

  • "web sites that do crypto in

browser Javascript are doomed."

  • user has no idea

what crypto is running, or even if crypto is running.

  • if attacker breaks into server,

can change client crypto.

  • so what's the point?

Do it on the server.

slide-15
SLIDE 15

Highly Pragmatic Reasons

  • progressive enhancement to web
  • packaged web apps are coming
  • increasingly stronger guarantees
  • f code integrity (CSP, HSTS, ...)
slide-16
SLIDE 16

But even without that...

slide-17
SLIDE 17

Trust is all-or-nothing if I trust server to deliver crypto code, I might as well trust it with my data. Mistake #1

slide-18
SLIDE 18

Compromises are all-or-nothing if attacker can extract DB data can also modify served JS code. Mistake #2

slide-19
SLIDE 19

All targets are equally attractive a server with millions of user accounts

  • vs. a single user's computer

Mistake #3

slide-20
SLIDE 20

Implementations are perfect e.g. discarding information is the same as never receiving it in the first place. Mistake #4

slide-21
SLIDE 21

security in practice is about defense in depth Crypto in browser is

  • ne darn good defense
slide-22
SLIDE 22

threat models are not all-or-nothing