Schematizing Trust in Named Data Networking Yingdi Yu 1 , Alex - - PowerPoint PPT Presentation

schematizing trust in named data networking
SMART_READER_LITE
LIVE PREVIEW

Schematizing Trust in Named Data Networking Yingdi Yu 1 , Alex - - PowerPoint PPT Presentation

Schematizing Trust in Named Data Networking Yingdi Yu 1 , Alex Afanasyev 1 , David Clark 2 , kc claffy 3 , Van Jacobson 1 , Lixia Zhang 1 1. UCLA 2. MIT 3. CAIDA 1 Motivation Usability is critical to security solutions


slide-1
SLIDE 1

Schematizing Trust in Named Data Networking

Yingdi Yu1, Alex Afanasyev1, David Clark2, kc claffy3, Van Jacobson1, Lixia Zhang1

  • 1. UCLA 2. MIT 3. CAIDA

1

slide-2
SLIDE 2

Motivation

  • Usability is critical to security solutions
  • Tool to explicitly express trust model
  • Mechanism to automate trust management

2

slide-3
SLIDE 3

Data Authentication in NDN

  • Data-centric authenticity
  • mandate signature on every data packet
  • Data authentication needs public key only
  • independent from where/how data packet is retrieved
  • privilege of online signing key can be restricted

3

Name Content Signature KeyLocator Data packet

Name Content Signature KeyLocator Data packet (key) Name Content Signature KeyLocator Data packet (key)

retrieve data retrieve public key

slide-4
SLIDE 4

Trust Model

  • Data signing and verification require a trust

model

  • one or more pre-trusted keys
  • which key is authorized to sign/verify which data
  • key is just another type of data
  • defines strict authentication path for each data
  • Trust model is application specific
  • keys may have different privileges
  • Trust may go across different namespaces

4

slide-5
SLIDE 5

NDN Insight

  • Trust model can be defined in a set of

relationships between data names and key names

5

/a/blog/KEY/1 / a / b l

  • g

/ a d m i n / C a r l / K E Y / 3 7

Content (public key) Signature

/ a / b l

  • g

/ K E Y / 1 /a/blog/admin/Bob/KEY/5

C

  • n

t e n t ( p u b l i c k e y ) S i g n a t u r e

/a/blog/admin/Carl/KEY/37 / a / b l

  • g

/ a u t h

  • r

/ A l i c e / K E Y / 2 2

C

  • n

t e n t ( p u b l i c k e y ) S i g n a t u r e

/ a / b l

  • g

/ a d m i n / B

  • b

/ K E Y / 5 / a / b l

  • g

/ a r t i c l e / f

  • d

/ 2 1 5 / 3

C

  • n

t e n t ( a r t i c l e ) S i g n a t u r e

/ a / b l

  • g

/ a u t h

  • r

/ A l i c e / K E Y / 2 2

Trust Schema to Schematize and Generalize Trust Model

slide-6
SLIDE 6

Usable Security

  • Need to be easily expressible
  • trust model is application specific
  • given a trust schema, anyone can authenticate data
  • consumers, dedicated storages, routers, …
  • help producers to sign data
  • Need to be automated
  • otherwise developers will “temporarily” disable security
  • fake signature, no authentication
  • Better to be re-usable
  • applications may share the same trust model

6

slide-7
SLIDE 7

Trust Between Entities

  • Blog website framework
  • used by many people to set their own website
  • authors can publish articles
  • admins can create author account
  • blog configuration and admins can designate other

admins

7

Authors Admins Blog Website Articles

configured by authorize to publish enable other

slide-8
SLIDE 8

Name-based Trust

  • Blog framework namespaces

8

/a/blog Articles /a/blog/article /a/blog/author Authors /a/blog/admin Admins

signs /a/blog/admin/Carl/KEY/37 /a/blog/admin/Bob/KEY/5 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/article/food/2015/1 signs signs signs

slide-9
SLIDE 9

Generalize Trust Relationship

  • Relationship between data and key names

9

Articles /a/blog/article /a/blog/author /a/blog/admin /a/blog

signs signs signs

Admins Authors /a/blog/article/food/2015/1 /a/blog/admin/Carl/KEY/37 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/admin/Bob/KEY/5

signs

/a/blog/author/Alice/KEY/22 /a/blog/article/food/2015/3 /a/blog/author/Zach/KEY/5 /a/blog/article/drink/2014/9

slide-10
SLIDE 10

Generalize Trust Relationship

  • Relationship between data and key names
  • Generalize relationship
  • Regex-based syntax

10

/a/blog/author/Alice/KEY/22 /a/blog/article/food/2015/3 /a/blog/author/Zach/KEY/5 /a/blog/article/drink/2014/9 blog_prefix + "blog" + "author" + name + "KEY" + key_id blog_prefix + "blog" + "article" + category + misc_info \1<blog><author>[user]<KEY>[Id] (<>*)<blog><article>[category]<><>

slide-11
SLIDE 11

Key Name Pattern Derivation

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id]

11

Articles /a/blog/article /a/blog/author /a/blog/admin /a/blog

signs signs signs

Admins Authors /a/blog/article/food/2015/1 /a/blog/admin/Carl/KEY/37 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/admin/Bob/KEY/5

signs

/ a / b l

  • g

/ a r t i c l e / f

  • d

/ 2 1 5 / 3

C

  • n

t e n t ( a r t i c l e ) S i g n a t u r e

/ a / b l

  • g

/ a u t h

  • r

/ A l i c e / K E Y / 2 2

<a><blog><author>[user]<KEY>[id]

slide-12
SLIDE 12

Enforce Least Privilege

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id]

12

Articles /a/blog/article /a/blog/author /a/blog/admin /a/blog

signs signs signs

Admins Authors /a/blog/article/food/2015/1 /a/blog/admin/Carl/KEY/37 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/admin/Bob/KEY/5

signs

/ a / b l

  • g

/ a u t h

  • r

/ E v e / K E Y / 1 1

C

  • n

t e n t ( a r t i c l e ) S i g n a t u r e

/ a / b l

  • g

/ a u t h

  • r

/ A l i c e / K E Y / 2 2

slide-13
SLIDE 13

Link Trust Relationship

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id] admin(\1) admin (<>*)<blog><admin>[user]<KEY>[id]

13

Articles /a/blog/article /a/blog/author /a/blog/admin /a/blog

signs signs signs

Admins Authors /a/blog/article/food/2015/1 /a/blog/admin/Carl/KEY/37 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/admin/Bob/KEY/5

signs

/ a / b l

  • g

/ a u t h

  • r

/ A l i c e / K E Y / 2 2

Content (public key) Signature

/ a / b l

  • g

/ a d m i n / B

  • b

/ K E Y / 5

slide-14
SLIDE 14

Multiple Trusted Signers

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id] admin(\1) admin (<>*)<blog><admin>[user]<KEY>[id] admin(\1)

14

Articles /a/blog/article /a/blog/author /a/blog/admin /a/blog

signs signs signs

Admins Authors /a/blog/article/food/2015/1 /a/blog/admin/Carl/KEY/37 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/admin/Bob/KEY/5

signs

/a/blog/admin/Bob/KEY/5

Content (public key) Signature

/a/blog/admin/Carl/KEY/37

slide-15
SLIDE 15

Link Trust Anchor

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id] admin(\1) admin (<>*)<blog><admin>[user]<KEY>[id] admin(\1)

15

Articles /a/blog/article /a/blog/author /a/blog/admin /a/blog

signs signs signs

Admins Authors /a/blog/article/food/2015/1 /a/blog/admin/Carl/KEY/37 /a/blog/KEY/1 /a/blog/author/Alice/KEY/22 /a/blog/admin/Bob/KEY/5

signs

/ a / b l

  • g

/ a d m i n / C a r l / K E Y / 3 7

C

  • n

t e n t ( p u b l i c k e y ) S i g n a t u r e

/ a / b l

  • g

/ K E Y / 1

slide-16
SLIDE 16

Trust Schema

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id] admin(\1) admin (<>*)<blog><admin>[user]<KEY>[id] admin(\1) root(\1)

16

Key Name Key root (<>*)<blog><KEY>[id] /a/blog/KEY/1 (0x30 0x82 ...)

Different trust anchor for different blog website

slide-17
SLIDE 17

Re-usability

Data Name Key Name article (<>*)<blog><article>[category]<><> author(\1) author (<>*)<blog><author>[user]<KEY>[id] admin(\1) admin (<>*)<blog><admin>[user]<KEY>[id] admin(\1) root(\1)

17

Key Name Key root (<>*)<blog><KEY>[id] /another/blog/KEY/1 (0x43 0x5a ...)

/another/blog/article/drink/ 2014/3 /another/blog/author/Jason/ KEY/25 /another/blog/admin/Mark/ KEY/2 /another/blog/admin/Karl/ KEY/73

slide-18
SLIDE 18

Automation

  • Trust schema à FSM

18

TPM Signing Interpreter unsigned data signed data private key

  • perations

root

author article admin

Authenticating Interpreter signed data public keys ... requests for public keys root

author article admin

Authentication Signing

slide-19
SLIDE 19

Automated Signing

19

article author

/a/blog/article/snacks/2015/3 <a><blog><author>[user]<KEY>[id]

Derive key name for the article 1 Lookup key in TPM 2

<a><blog><admin>[user]<KEY>[id]

Derive key name for author’s key 3

/a/blog/admin/Alex/KEY/5

Lookup key in TPM 4

/a/blog/author/Alex/KEY/40

Expand author’s key name and generate key 5

/a/blog/article/snacks/2015/3

Sign data 6

slide-20
SLIDE 20

Trust schema is more than that …

  • Universal tool for trust management
  • Representable in a data packet
  • can be retrieved and executed by any NDN entity
  • end application, dedicated storage, routers, …
  • can be (recursively) authenticated using higher-level

schemas

  • Security design pattern
  • regulate the behavior of applications
  • a set of common trust models
  • application developer can simply select a pre-defined

trust model

20

slide-21
SLIDE 21

Implementation

  • Available in all the NDN platform libraries
  • ndn-cxx: http://www.github.com/named-data/ndn-cxx
  • old schema (ValidatorConf)
  • new schema implementation in the upcoming release
  • NDN-CCL: http://named-data.net/codebase/platform/ndn-ccl/
  • NDN-CPP, NDN-JS, PyNDN, jNDN
  • Powers data and interest authentication in:
  • NFD: NDN Forwarding
  • NLSR: NDN Link State Routing Protocol
  • NDNS: NDN Domain Name System
  • Repo-ng: NDN Data Repository
  • ChronoChat: server-less multi-party chat application over NDN

21

slide-22
SLIDE 22

Conclusion

  • Usability is critical to all security solutions
  • A useful step forward in automating NDN data

signing/authentication

  • explicitly defines trust relations between namespaces
  • identify common security patterns to generalize solutions
  • Trust schema can be authenticated and fetched as

any other NDN data packets

  • Potentially applicable to other configuration/

automation challenges

22