Linux Founda+on Collabora+on Summit: OIC Security Ned - - PowerPoint PPT Presentation

linux founda on collabora on summit oic security
SMART_READER_LITE
LIVE PREVIEW

Linux Founda+on Collabora+on Summit: OIC Security Ned - - PowerPoint PPT Presentation

Linux Founda+on Collabora+on Summit: OIC Security Ned Smith Intel 1 1 IoT A Metaphor for Pelagic Compu+ng What do I mean by pelagic


slide-1
SLIDE 1

1 1

Linux ¡Founda+on ¡ Collabora+on ¡Summit: ¡ OIC ¡Security ¡

Ned ¡Smith ¡ Intel ¡

slide-2
SLIDE 2

2 2 Open ¡Source ¡Technology ¡Center ¡

IoT ¡– ¡A ¡Metaphor ¡for ¡“Pelagic” ¡Compu+ng ¡ ¡

  • What ¡do ¡I ¡mean ¡by ¡pelagic ¡compu;ng? ¡

Larval ¡slipper ¡lobster ¡riding ¡on ¡salp ¡chain* ¡ *SRC: ¡www.jacksdivinglocker.com ¡ Venus ¡Girdle* ¡ Ctenophore* ¡

Real ¡simple ¡structures ¡that ¡can ¡connect ¡to ¡other ¡structures ¡to ¡form ¡ more ¡complex ¡structures ¡that ¡are ¡autonomous ¡or ¡semi-­‑autonomous ¡

Sensor Actuator Controller Other

slide-3
SLIDE 3

3 3 Open ¡Source ¡Technology ¡Center ¡

IoT ¡is ¡also ¡about ¡Clouds ¡ ¡

  • Cloud ¡compu;ng ¡essen;ally ¡

means ¡

– Unlimited ¡storage, ¡compute ¡power ¡ and ¡availability ¡

  • Pelagic ¡+ ¡Cloud ¡compu;ng ¡

implies ¡

– Pelagic ¡behaviors ¡may ¡be ¡monitored ¡ and ¡analyzed ¡over ¡long ¡periods ¡and ¡ – Cloud ¡analy;cs ¡may ¡inform ¡pelagic ¡ controllers ¡making ¡them ¡smarter ¡

Security objective: Enable intended pelagic interactions while preventing unintended interactions

Cloud ¡Compu;ng ¡

Monitoring ¡ Informing ¡ Analy;cs ¡

Pelagic ¡Compu;ng ¡

slide-4
SLIDE 4

4 4 Open ¡Source ¡Technology ¡Center ¡

Controller

OIC ¡Terminology ¡

  • Intermediary ¡is ¡a ¡role ¡that ¡combines ¡client ¡& ¡server ¡

OIC Client

Actions

OIC Server

Resources

Access Control

OIC Device

OIC Client

Actions

OIC Server

OIC Device

Resources

Access Control

Resource ¡ Access ¡ Request ¡

Actuator

Sensor ¡

OIC Server

Resources

Access Control

  • A ¡Device ¡is ¡an ¡OIC ¡stack ¡instance ¡
  • Devices ¡implement ¡Client ¡& ¡

Server ¡roles ¡

  • Devices ¡have ¡Resources ¡and ¡

perform ¡Ac;ons ¡

  • Resources ¡have ¡AVributes, ¡

Proper;es ¡and ¡Interfaces ¡

slide-5
SLIDE 5

5 5 Open ¡Source ¡Technology ¡Center ¡

Security ¡Significance ¡of ¡OIC ¡Layering ¡

  • Security ¡seman;cs ¡are ¡

managed ¡at ¡OIC ¡Resource ¡layer ¡

  • Resource ¡level ¡access ¡is ¡

enforced ¡at ¡the ¡Resource ¡layer ¡

  • Device ¡level ¡access ¡is ¡enforced ¡

at ¡the ¡OIC ¡Exchange ¡layer ¡

– Keys ¡reside ¡at ¡the ¡Resource ¡layer ¡

  • Device ¡ownership ¡may ¡be ¡

derived ¡using ¡network ¡layer ¡or ¡

  • ther ¡hardware ¡

– May ¡be ¡vendor ¡specific! ¡

OIC Resource Layer OIC Clients OIC Servers

Containerization (e.g. JSON)

OIC Exchange Layer

COAP Message Protection Other Message Exchange ... E2E Protection (e.g. DTLS)

OIC Resources

OIC Network Abstraction Layer

UDP/IP BLE 802.15 ...

OIC Intermediaries

Other E2E Protection ...

Network Layer

slide-6
SLIDE 6

6 6 Open ¡Source ¡Technology ¡Center ¡

How ¡To ¡Dis+nguish ¡Intended ¡vs. ¡Unintended? ¡

  • Access ¡control ¡granularity ¡has ¡four ¡scoping ¡levels ¡

– Group, ¡Device, ¡Resource ¡and ¡AVribute ¡

  • OIC ¡scripts ¡specify ¡interac;on ¡paVerns ¡

– Peer-­‑peer, ¡Observer, ¡Subscribe-­‑no;fy, ¡etc... ¡

  • Authoring ¡tools ¡are ¡privileged ¡ ¡

– They ¡specify ¡intended ¡mul;-­‑device ¡interac;ons ¡

#%RAML ¡0.8 ¡ +tle: ¡OIC ¡Light ¡set ¡ /Collec+on01: ¡ type: ¡oic.collec+on ¡ get: ¡ ¡ ¡ ¡ ¡responses: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡applica+on/json: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡schema: ¡| ¡ ¡{ ¡"$schema": ¡"hYp://json-­‑schema.org/schema", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"rt": ¡{ ¡"type": ¡"string", ¡"required":true ¡}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"if": ¡{ ¡"type": ¡"string", ¡"required":true ¡}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"resourceref": ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"link": ¡{ ¡"type": ¡ ¡ ¡”URI" ¡} ¡ ¡} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡example: ¡| ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"rt": ¡"oic.collec+on", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"if": ¡"oic.if.b", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"resourcelinks": ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡”href": ¡”Device2/oic/Light01", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡”href": ¡”Device3/oic/Light02” ¡ ¡ ¡} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡

Example ¡ACL ¡

#%RAML ¡0.8 ¡ +tle: ¡OIC ¡Light ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ /Light01: ¡ type: ¡oic.light ¡ get: ¡ ¡ ¡ ¡ ¡responses: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡applica+on/json: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡schema: ¡Light ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡example: ¡| ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡”on": ¡”True", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ } ¡ ¡

Example ¡Resources ¡ acl0

Device1 /oic/Light01 Read

Device1 ¡ Device2 ¡

OIC Server

Informs

slide-7
SLIDE 7

7 7 Open ¡Source ¡Technology ¡Center ¡

Responding Device

Access ¡Control ¡Model ¡

acl(s) service(s) cred(s) Local Resource(s)

LocalCred SvcType DeviceID SubjectID CredID RoleID CredType PublicData PrivateData /oic/d /oic/light/3 ... Resource(s) Permission Period Recurrence Subject(s) RemoteCred

Access Control Layer Network Abstraction Layer DTLS Layer

Requesting Device

Request Access Allow Access End Point DTLS Session

1 2 3

slide-8
SLIDE 8

8 8 Open ¡Source ¡Technology ¡Center ¡

Device ¡and ¡Group ¡Level ¡Access ¡

  • Pair-­‑wise ¡keys ¡enable ¡device ¡level ¡access ¡

– DTLS ¡

Device Server Secure ¡port=def ¡5684 Insecure ¡port=def ¡5683 Device Client IP/UDP/CoAP

  • Shared ¡group ¡key ¡enables ¡group ¡level ¡access ¡
  • /oic/sec/cred ¡structure ¡may ¡contain ¡pairwise ¡and ¡group ¡keys ¡

– Pairwise ¡keys ¡may ¡be ¡used ¡to ¡provision ¡group ¡key ¡ ¡

– e.g. ¡dra\-­‑keoh-­‑tls-­‑mul;cast-­‑security-­‑00 ¡

Device_ID_1 ¡ Device_ID_2 ¡

slide-9
SLIDE 9

9 9 Open ¡Source ¡Technology ¡Center ¡

Mediated ¡Creden+al ¡Provisioning ¡

Device 1 Device 2

Credential Provisioning Service

  • 3. Discover Provisioning service (optional)
  • 6. Generate

keys for Devices 1 and 2

  • 8. POST /oic/sec/cred [{“device1”:”cred1”...}]

(oic.sec.cps) ¡

  • 9. POST /oic/sec/cred [{“device2”:”cred2”...}]
  • 11. RSP 2.01
  • 4. Open DTLS w/ oic.sec.cps PSK
  • 7. GET/oic/sec/cred [{“device1”:”cred1”...}]
  • 1. Discover Provisioning service (optional)
  • 2. Open DTLS w/ oic.sec.cps PSK
  • 5. GET/oic/sec/cred [{“device2”:”cred2”...}]
  • 10. RSP 2.01
slide-10
SLIDE 10

10 10 Open ¡Source ¡Technology ¡Center ¡

Ad-­‑hoc ¡Pair-­‑wise ¡Creden+al ¡Nego+a+on ¡

Device 1 Device 2

Registration Service

Device 3

  • 2. Mediated Discovery (optional)
  • 4. DH session keys used

as pair-wise PSK for Devices 1 and 2.

  • 7. POST /oic/sec/cred [{“device2”:”cred2”...}]
  • 10. POST /oic/sec/cred [{“device1”:”cred1”...}]
  • 9. RSP 2.01
  • 3. Open DTLS w/ Diffie-Hellman
  • 1. Ad-hoc Discovery (optional)
  • 12. RSP 2.01
  • 5. Instantiate d1.cred2; cred.type = 1 (PSK)

8.Verify d1.cred2 = cred2

  • 6. Instantiate d2.cred1; cred.type = 1 (PSK)

11.Verify d2.cred1 = cred1

slide-11
SLIDE 11

11 11 Open ¡Source ¡Technology ¡Center ¡

ACL ¡Resource ¡

  • An ¡ACL ¡is ¡a ¡resource ¡with ¡the ¡following ¡defini;on ¡

Subject Resource Permission Period Recurrence

UUID ¡ (Device ¡or ¡ Group), ¡Role ¡ URI ¡Path ¡ C,R,W,E,D ¡ Start-­‑Stop ¡ Time ¡ (RFC5545) ¡ Recurrence ¡ PaVern ¡ (RFC5545) ¡

  • Example ¡ACL ¡policies ¡

Subject Resource Permission Period Recurrence

UUID1, UUID2 /oic/sh/light/3 0h001F (C,R,W,E,D) 19970101T180000Z/ 19970102T070000Z RRULE:FREQ=WEEKL Y;UNTIL=19970131 T070000Z UUID3 /oic/d 0h0001 (R)

  • ic.sec.role.admin

/oic/sec/acl/0 0h001F

slide-12
SLIDE 12

12 12 Open ¡Source ¡Technology ¡Center ¡

Resource ¡Access ¡Example ¡

  • Access ¡is ¡blocked ¡if ¡no ¡ACL ¡present ¡ ¡
  • Device ¡level ¡access ¡evaluated ¡before ¡evalua;ng ¡resource ¡access ¡
  • Resource ¡level ¡access ¡applies ¡to ¡resource ¡named ¡in ¡ACL ¡

– Resource ¡references ¡may ¡be ¡fully ¡qualified ¡(e.g. ¡<deviceID>/oic/light/1) ¡

/oic/d

Model Mfg Date

OIC Server OIC Client

GET /oic/d

DevID_1 ¡

OIC Device

AVributes ¡

acl1

DevID_2, _3

acl0

DevID_1 /oic/d Read

/oic/light/1

On-Off DimLevel

AVributes ¡

OIC Stack

(DevID_1) ¡

/oic/light/0

On-Off DimLevel

AVributes ¡ DevID_2 ¡

PUT /oic/light/1

(DevID_2) ¡

/oic/light/1 Read, Write 9 - 5 Daily

[{“/oic/d”, ¡“Model”, ¡“T”, ¡“Mfg ¡Date”, ¡“1/1/2015”}] ¡ [{“/oic/light/1”, ¡“On-­‑Off”, ¡“Off”, ¡“DimLevel”, ¡“80”}] ¡ RSP ¡2.04 ¡

slide-13
SLIDE 13

13 13 Open ¡Source ¡Technology ¡Center ¡

AYribute ¡Access ¡Example ¡

acl0

DevID_1 /oic/RsrcAtt-1 Read

OIC Server

acl1

DevID_1 /oic/RsrcAtt-2 Write

  • AVributes ¡are ¡opaque ¡to ¡OIC ¡stack ¡
  • AVribute ¡level ¡access ¡can ¡be ¡achieve ¡using ¡collec;ons ¡

– Where ¡a ¡resource ¡is ¡created ¡containing ¡a ¡single ¡aVribute ¡

  • ACL ¡policy ¡can ¡be ¡created ¡for ¡the ¡new ¡resource ¡

{"$schema": "http://json-schemas.org/schema#", "id": "http://openinterconnect.org oic.thing#", "definitions": { "oic.thing": { "type": "object", "properties": { “Attribute-1” {“type”: “type1”} “Attribute-2” {“type”: “type2”} ... } } } }

Opaque to OIC Stack {"$schema": "http://json-... ... "type": ”collection", ”resources": { “Attribute-1”, “Attribute-2”} ... definitions”: { “oic.RsrcAtt-1”: { “type”: “object”, “properties”: { “Attribute-1” {“type”: “type1”} } ... “oic.RsrcAtt-2”: { “type”: “object”, “properties”: { “Attribute-2” {“type”: “type2”} } ...

Example ¡Resource ¡Defini;ons: ¡

Single Attribute Resource can have ACL Policy

slide-14
SLIDE 14

14 14 Open ¡Source ¡Technology ¡Center ¡

Establishing ¡Device ¡Ownership ¡

  • Device ¡ownership ¡determines ¡how ¡/ ¡if ¡the ¡device ¡is ¡provisioned ¡
  • Taking ¡/ ¡transferring ¡ownership ¡securely ¡requires ¡device ¡

manufacturer ¡support ¡

Just Works Mode Switch Random PIN Pre-provisioned PIN Pre-provisioned Credential

¡ ¡ ¡ ¡ ¡

  • OIC ¡members ¡are ¡working ¡to ¡standardize ¡methods ¡for ¡

establishing ¡device ¡ownership ¡

*Source: ¡hVp://blog.atmel.com/2014/08/12/the-­‑abcs-­‑of-­‑ecdsa-­‑part-­‑2/ ¡

* ¡

slide-15
SLIDE 15

15 15 Open ¡Source ¡Technology ¡Center ¡

  • Can ¡establish ¡device ¡owner ¡over-­‑the-­‑air ¡
  • Can ¡be ¡implemented ¡in ¡DTLS ¡ciphersuites ¡
  • Can ¡be ¡privacy ¡preserving ¡(e.g. ¡TPM ¡EK ¡/ ¡DAA) ¡ ¡
  • Can ¡aVest ¡device ¡trust ¡proper;es ¡
  • Provably ¡secure ¡against ¡iden;ty ¡misbinding ¡aVacks ¡
  • Resul;ng ¡symmetric ¡keys ¡are ¡good ¡for ¡performance ¡ ¡

Device ¡Owner ¡Transfer ¡with ¡Signed ¡Diffie-­‑Hellman ¡

... ¡ UDP/IP ¡ DTLS ¡ Handshake ¡ Layer ¡ CoAP ¡ Record ¡Layer ¡

Network ¡ Abstrac;on ¡Layer ¡

Device ¡(A) ¡ Device ¡(B) ¡

ga ¡|| ¡GID ¡ [gb ¡|| ¡CertB ¡|| ¡SigB(gb ¡|| ¡ga)]SMK ¡|| ¡SigRL ¡ ¡ [ga ¡|| ¡GID ¡|| ¡AVesta;onID ¡|| ¡SigA(ga ¡|| ¡gb)]SMK ¡

(SK, ¡MK) ¡session ¡key ¡

Embedded ¡ Key ¡A ¡

SMK ¡|| ¡SK ¡|| ¡MK ¡= ¡KDF(gab) ¡

Cer;ficate ¡Key ¡B ¡

slide-16
SLIDE 16

16 16 Open ¡Source ¡Technology ¡Center ¡

Conclusion ¡

  • OIC ¡security ¡mechanisms ¡support ¡“pelagic” ¡compu;ng ¡models ¡

– Autonomous ¡and ¡semi-­‑autonomous ¡opera;on ¡ – Ad-­‑hoc ¡device ¡interac;ons ¡ – Fric;onless ¡access ¡control ¡for ¡intended ¡device ¡interac;ons ¡

– Added ¡fric;on ¡when ¡device ¡interac;ons ¡are ¡unintended ¡

– An;cipates ¡device ¡grouping ¡and ¡composi;on ¡ – Aligned ¡key ¡management ¡with ¡IoT ¡use ¡models ¡ ¡

slide-17
SLIDE 17

17 17 Open ¡Source ¡Technology ¡Center ¡

Call ¡to ¡Ac+on ¡

  • OIC ¡is ¡working ¡to ¡deliver ¡interoperable ¡security ¡for ¡IoT ¡
  • Membership ¡in ¡OIC ¡will ¡ensure ¡your ¡IoT ¡solu;ons ¡benefit ¡from ¡

interoperability ¡goal ¡

  • Your ¡contribu;ons ¡to ¡IOTIVITY ¡will ¡help ¡realize ¡secure ¡IoT ¡

solu;ons ¡quicker ¡

slide-18
SLIDE 18

18 18 Open ¡Source ¡Technology ¡Center ¡

Ques+ons? ¡

slide-19
SLIDE 19

19 19 Open ¡Source ¡Technology ¡Center ¡

Overview ¡of ¡EPID ¡

  • EPID ¡can ¡be ¡seen ¡as ¡a ¡privacy ¡preserving ¡signature ¡scheme ¡

– One ¡group ¡public ¡key ¡corresponds ¡to ¡mul;ple ¡private ¡keys ¡ – Each ¡private ¡key ¡can ¡be ¡used ¡to ¡generate ¡a ¡signature ¡ – Signatures ¡can ¡be ¡verified ¡using ¡the ¡group ¡public ¡key ¡ – EPID ¡is ¡standardized ¡in ¡ISO/IEC ¡20009-­‑2 ¡ – Scalable ¡manufacturing ¡in ¡high ¡volume ¡circuits ¡

EPID pub-key pvt-key 1

Sign

Message EPID Signature

Verify

Message, EPID Signature True / False

pvt-key n pvt-key 2