linux founda on collabora on summit oic security
play

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


  1. Linux ¡Founda+on ¡ Collabora+on ¡Summit: ¡ OIC ¡Security ¡ Ned ¡Smith ¡ Intel ¡ 1 1

  2. IoT ¡– ¡A ¡Metaphor ¡for ¡“Pelagic” ¡Compu+ng ¡ ¡ • What ¡do ¡I ¡mean ¡by ¡pelagic ¡compu;ng? ¡ Other Controller Actuator Larval ¡slipper ¡lobster ¡riding ¡on ¡salp ¡chain* ¡ Sensor Ctenophore* ¡ Venus ¡Girdle* ¡ Real ¡simple ¡structures ¡that ¡can ¡connect ¡to ¡other ¡structures ¡to ¡form ¡ more ¡complex ¡structures ¡that ¡are ¡autonomous ¡or ¡semi-­‑autonomous ¡ *SRC: ¡www.jacksdivinglocker.com ¡ Open ¡Source ¡Technology ¡Center ¡ 2 2

  3. IoT ¡is ¡also ¡about ¡Clouds ¡ ¡ • Cloud ¡compu;ng ¡essen;ally ¡ means ¡ – Unlimited ¡storage, ¡compute ¡power ¡ and ¡availability ¡ Cloud ¡Compu;ng ¡ • Pelagic ¡+ ¡Cloud ¡compu;ng ¡ Analy;cs ¡ implies ¡ – Pelagic ¡behaviors ¡may ¡be ¡monitored ¡ and ¡analyzed ¡over ¡long ¡periods ¡and ¡ Monitoring ¡ Informing ¡ – Cloud ¡analy;cs ¡may ¡inform ¡pelagic ¡ controllers ¡making ¡them ¡smarter ¡ Security objective : Enable intended pelagic interactions while preventing unintended interactions Pelagic ¡Compu;ng ¡ Open ¡Source ¡Technology ¡Center ¡ 3 3

  4. OIC ¡Terminology ¡ • A ¡Device ¡is ¡an ¡OIC ¡stack ¡instance ¡ OIC Device OIC Device Resource ¡ • Devices ¡implement ¡Client ¡& ¡ Access ¡ Server ¡roles ¡ OIC Client OIC Server Request ¡ • Devices ¡have ¡Resources ¡and ¡ Access Control Actions perform ¡Ac;ons ¡ Resources • Resources ¡have ¡AVributes, ¡ Proper;es ¡and ¡Interfaces ¡ Sensor ¡ Controller Actuator OIC Server OIC Client OIC Server Access Control Actions Access Control Resources Resources • Intermediary ¡is ¡a ¡role ¡that ¡combines ¡client ¡& ¡server ¡ Open ¡Source ¡Technology ¡Center ¡ 4 4

  5. Security ¡Significance ¡of ¡OIC ¡Layering ¡ OIC OIC Clients OIC Servers Intermediaries • Security ¡seman;cs ¡are ¡ managed ¡at ¡OIC ¡Resource ¡layer ¡ OIC Resource Layer • Resource ¡level ¡access ¡is ¡ OIC Resources enforced ¡at ¡the ¡Resource ¡layer ¡ Containerization (e.g. JSON) Message Protection • Device ¡level ¡access ¡is ¡enforced ¡ OIC Exchange Layer at ¡the ¡OIC ¡Exchange ¡layer ¡ Other Message Exchange ... COAP – Keys ¡reside ¡at ¡the ¡Resource ¡layer ¡ • Device ¡ownership ¡may ¡be ¡ E2E Protection (e.g. DTLS) Other E2E Protection ... derived ¡using ¡network ¡layer ¡or ¡ OIC Network Abstraction Layer other ¡hardware ¡ – May ¡be ¡vendor ¡specific! ¡ UDP/IP BLE 802.15 ... Network Layer Open ¡Source ¡Technology ¡Center ¡ 5 5

  6. 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 ¡ Device1 ¡ Example ¡ACL ¡ Example ¡Resources ¡ #%RAML ¡0.8 ¡ +tle: ¡OIC ¡Light ¡set ¡ OIC Server /Collec+on01: ¡ type: ¡oic.collec+on ¡ acl0 get: ¡ Device2 ¡ ¡ ¡ ¡ ¡responses: ¡ Device1 ¡ ¡ ¡ ¡ ¡ ¡ ¡applica+on/json: ¡ #%RAML ¡0.8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡schema: ¡| ¡ ¡{ ¡"$schema": ¡"hYp://json-­‑schema.org/schema", ¡ Informs /oic/Light01 +tle: ¡OIC ¡Light ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"rt": ¡{ ¡"type": ¡"string", ¡"required":true ¡}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ Read ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"if": ¡{ ¡"type": ¡"string", ¡"required":true ¡}, ¡ /Light01: ¡ type: ¡oic.light ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"resourceref": ¡{ ¡ get: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"link": ¡{ ¡"type": ¡ ¡ ¡”URI" ¡} ¡ ¡} ¡ ¡ ¡ ¡ ¡responses: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡applica+on/json: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡example: ¡| ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡schema: ¡Light ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡example: ¡| ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"rt": ¡"oic.collec+on", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"if": ¡"oic.if.b", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡”on": ¡”True", ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡"resourcelinks": ¡{ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡”href": ¡”Device2/oic/Light01", ¡ } ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡”href": ¡”Device3/oic/Light02” ¡ ¡ ¡} ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡} ¡ Open ¡Source ¡Technology ¡Center ¡ 6 6

  7. Access ¡Control ¡Model ¡ Responding Device Local cred(s) acl(s) service(s) Resource(s) CredID DeviceID Subject(s) SubjectID SvcType Resource(s) /oic/d RoleID LocalCred Permission /oic/light/3 CredType RemoteCred Period ... PublicData Recurrence PrivateData Access Control Layer Allow Access End Point DTLS Layer Network Abstraction Layer DTLS Session Request Access Requesting Device 1 3 2 Open ¡Source ¡Technology ¡Center ¡ 7 7

  8. Device ¡and ¡Group ¡Level ¡Access ¡ • Pair-­‑wise ¡keys ¡enable ¡device ¡level ¡access ¡ – DTLS ¡ IP/UDP/CoAP Device Device Insecure ¡port=def ¡5683 Client Server Device_ID_1 ¡ Device_ID_2 ¡ Secure ¡port=def ¡5684 • 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 ¡ Open ¡Source ¡Technology ¡Center ¡ 8 8

  9. Mediated ¡Creden+al ¡Provisioning ¡ Credential Device 1 Device 2 Provisioning Service (oic.sec.cps) ¡ 1. Discover Provisioning service (optional) 2. Open DTLS w/ oic.sec.cps PSK 3. Discover Provisioning service (optional) 6. Generate 4. Open DTLS w/ oic.sec.cps PSK keys for Devices 1 5. GET/oic/sec/cred [{“device2”:”cred2”...}] and 2 7. GET/oic/sec/cred [{“device1”:”cred1”...}] 8. POST /oic/sec/cred [{“device1”:”cred1”...}] 9. POST /oic/sec/cred [{“device2”:”cred2”...}] 10. RSP 2.01 11. RSP 2.01 Open ¡Source ¡Technology ¡Center ¡ 9 9

  10. Ad-­‑hoc ¡Pair-­‑wise ¡Creden+al ¡Nego+a+on ¡ Device 1 Device 2 Device 3 Registration Service 1. Ad-hoc Discovery (optional) 2. Mediated Discovery (optional) 3. Open DTLS w/ Diffie-Hellman 4. DH session keys used as pair-wise PSK for 5. Instantiate d1.cred2; cred.type = 1 (PSK) Devices 1 and 2. 6. Instantiate d2.cred1; cred.type = 1 (PSK) 7. POST /oic/sec/cred [{“device2”:”cred2”...}] 8.Verify d1.cred2 = cred2 9. RSP 2.01 10. POST /oic/sec/cred [{“device1”:”cred1”...}] 11.Verify d2.cred1 = cred1 12. RSP 2.01 Open ¡Source ¡Technology ¡Center ¡ 10 10

  11. ACL ¡Resource ¡ • An ¡ACL ¡is ¡a ¡resource ¡with ¡the ¡following ¡defini;on ¡ Subject Resource Permission Period Recurrence UUID ¡ URI ¡Path ¡ C,R,W,E,D ¡ Start-­‑Stop ¡ Recurrence ¡ (Device ¡or ¡ Time ¡ PaVern ¡ Group), ¡Role ¡ (RFC5545) ¡ (RFC5545) ¡ • Example ¡ACL ¡policies ¡ Subject Resource Permission Period Recurrence UUID1, UUID2 /oic/sh/light/3 0h001F 19970101T180000Z/ RRULE:FREQ=WEEKL (C,R,W,E,D) 19970102T070000Z Y;UNTIL=19970131 T070000Z UUID3 /oic/d 0h0001 (R) - - oic.sec.role.admin /oic/sec/acl/0 0h001F - - Open ¡Source ¡Technology ¡Center ¡ 11 11

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend