Securing Web Content Joakim Koskela, Nicholas Weaver, Andrei Gurtov - - PowerPoint PPT Presentation

securing web content
SMART_READER_LITE
LIVE PREVIEW

Securing Web Content Joakim Koskela, Nicholas Weaver, Andrei Gurtov - - PowerPoint PPT Presentation

Securing Web Content Joakim Koskela, Nicholas Weaver, Andrei Gurtov and Mark Allman ReArch'09 Rome, December 1 s t 2009 2009-12-01 2009-12-01 How do we protect the user without dwarfing the web experience? Nature of the web has changed


slide-1
SLIDE 1

Securing Web Content

Joakim Koskela, Nicholas Weaver, Andrei Gurtov and Mark Allman ReArch'09 Rome, December 1s

t 2009

slide-2
SLIDE 2

2009-12-01

slide-3
SLIDE 3

2009-12-01

slide-4
SLIDE 4

2009-12-01

How do we protect the user without dwarfing the web experience?

  • Nature of the web has changed
  • Simple hyperlinked documents -> complex

collages

– Mashups, cross-site delegation, Flash, JavaScript..

  • Single producer -> collection of providers
  • Security model outdated
slide-5
SLIDE 5

2009-12-01

Securing content

  • Add accountability to individual content

components

  • Handled according to the preferences and

experiences of the user

– Opportunistic Personas – History with an actor, the trackrecord

slide-6
SLIDE 6

2009-12-01

Securing the page structure

  • Sign the page with the site's key

– Integrity (as in SSL)

  • Sets the general attitude

– Browser caches, pre-filled input fields – Detect phishing attempts

slide-7
SLIDE 7

2009-12-01

Content components

  • Add signature to HTML content blocks

– <div>s – Signature and key as attributes

  • Different strategies

– Sign tag contents as-is – Decorate the tag interiors

  • Fill child elements with data from a signed block
slide-8
SLIDE 8

2009-12-01

Decoration example

  • op_* attributes identifies the div

<div id="sdiv5" class="entry"

  • p_data="header=Hi&message=Testing+123"
  • p_signature="OyjONQTCAR6Mv/sBjRaF.."
  • p_key="LS0tLS1CRUdJTiBQVUJMSUMgS0..">

<div>Posted 11:43:51</div> <div id="sdiv5_header"></div> <div id="sdiv5_message"></div> </div>

slide-9
SLIDE 9

2009-12-01

Decoration example

  • op_* attributes identifies the div
  • <div>s id is prefixed to the id of child elements

<div id="sdiv5" class="entry"

  • p_data="header=Hi&message=Testing+123"
  • p_signature="OyjONQTCAR6Mv/sBjRaF.."
  • p_key="LS0tLS1CRUdJTiBQVUJMSUMgS0..">

<div>Posted 11:43:51</div> <div id="sdiv5_header"></div> <div id="sdiv5_message"></div> </div>

slide-10
SLIDE 10

2009-12-01

Decoration example

  • op_* attributes identifies the div
  • <div>s id is prefixed to the id of child elements
  • op_key and op_signature contain author's key & signature

<div id="sdiv5" class="entry"

  • p_data="header=Hi&message=Testing+123"
  • p_signature="OyjONQTCAR6Mv/sBjRaF.."
  • p_key="LS0tLS1CRUdJTiBQVUJMSUMgS0..">

<div>Posted 11:43:51</div> <div id="sdiv5_header"></div> <div id="sdiv5_message"></div> </div>

slide-11
SLIDE 11

2009-12-01

Decoration example

  • op_* attributes identifies the div
  • <div>s id is prefixed to the id of child elements
  • op_key and op_signature contain author's key & signature
  • op_data is the signed key-value data

<div id="sdiv5" class="entry"

  • p_data="header=Hi&message=Testing+123"
  • p_signature="OyjONQTCAR6Mv/sBjRaF.."
  • p_key="LS0tLS1CRUdJTiBQVUJMSUMgS0..">

<div>Posted 11:43:51</div> <div id="sdiv5_header"></div> <div id="sdiv5_message"></div> </div>

slide-12
SLIDE 12

2009-12-01

Decoration example

<div id="sdiv5" class="entry"

  • p_data="header=Hi&message=Testing+123"
  • p_signature="OyjONQTCAR6Mv/sBjRaF.."
  • p_key="LS0tLS1CRUdJTiBQVUJMSUMgS0..">

<div>Posted 11:43:51</div> <div id="sdiv5_header"></div> <div id="sdiv5_message"></div> </div> <div id="sdiv5" class="entry"

  • p_status="trusted">

<div>Posted 11:43:51</div> <div id="sdiv5_header">Hi</div> <div id="sdiv5_message">Testing 123</div> </div>

  • op_* attributes identifies the div
  • <div>s id is prefixed to the id of child elements
  • op_key and op_signature contain author's key & signature
  • op_data is the signed key-value data
  • Data is inserted into child elements, matching value keys with element ids
slide-13
SLIDE 13

2009-12-01

  • External content can be included by

signature in tag attributes

– <img> <link> <video> etc.

External content

slide-14
SLIDE 14

2009-12-01

Partnerships

  • Partners delivering dynamic content

–Advertizers, CDNs, search bars

  • A method for indicating partnerships

–Trust is not transitive –An indication to expect something

  • Include partner key in tag attributes
slide-15
SLIDE 15

2009-12-01

Trust and security policies

  • Framework: the opportunistic personas

– Track record, Peer review, Web-of-Trust, Trust Databases

  • Knowledge of actors

– What do we know about someone? – How do we know that? – How well?

  • Policies

– Accept, ignore, sanitize, sandbox

slide-16
SLIDE 16

2009-12-01

Prototype

  • FireFox plugin, persona (key-) daemon and server library
  • Experimented with a subset

– Page signatures – <div> tag signatures and decoration – External content – Signing content submissions (POSTs)

  • Server-side required only a user-space library
  • Persona daemon provided the track record

– Recorded keys from web, e-mail, P2P IM and VoIP – Provided statements about actors

  • “You trust this person, knowing him well (through browsing and e-mails)”
  • Simple security policies
slide-17
SLIDE 17

2009-12-01

Conclusions

  • The way the web is composed today

provides plenty of opportunities for malicious activity

  • Our model points out the content that sites

will not vouch for

slide-18
SLIDE 18

2009-12-01

Thank you for your attention!

joakim.koskela@hiit.fi http://www.hiit.fi/netwr http://www.icsi.berkeley.edu

slide-19
SLIDE 19

2009-12-01

slide-20
SLIDE 20

2009-12-01

Four parts

  • Securing the page structure
  • Content components
  • External content
  • Partnerships
slide-21
SLIDE 21

2009-12-01

slide-22
SLIDE 22

2009-12-01

slide-23
SLIDE 23

2009-12-01

slide-24
SLIDE 24

2009-12-01

slide-25
SLIDE 25

2009-12-01

slide-26
SLIDE 26

2009-12-01

slide-27
SLIDE 27

2009-12-01

slide-28
SLIDE 28

2009-12-01

slide-29
SLIDE 29

2009-12-01

slide-30
SLIDE 30

2009-12-01