route based authorization and discovery for personal data
play

Route-based Authorization and Discovery for Personal Data EuroDW - PowerPoint PPT Presentation

Route-based Authorization and Discovery for Personal Data EuroDW 2017 Yousef Amar 2017-04-23 Research Context The Databox Platform Research Context The Databox Platform Databox Databox Sensors & Dash- Manager Actuators board User


  1. Route-based Authorization and Discovery for Personal Data EuroDW 2017 Yousef Amar 2017-04-23

  2. Research Context The Databox Platform

  3. Research Context The Databox Platform Databox Databox Sensors & Dash- Manager Actuators board User Collects Driver App Arbiter Permission IoT Records App Devices Store Points to Hypercat Actuates Driver Catalog Publish to Social Collects Driver Requests App Pushes to Emits Export 3rd Media Parties

  4. Research Context The Databox Platform Databox Databox Sensors & Dash- Manager Actuators board User Collects Driver App Arbiter Permission IoT Records App Devices Store Points to Hypercat Actuates Driver Catalog Publish to Social Collects Driver Requests App Pushes to Emits Export 3rd Media Parties How can we design safe, scalable access control systems with arbitrary restrictions in this context?

  5. Implementation The Route { ◮ Triad of target , path , and method "target": "smartphone -store", "path": "/ accelerometer /ts/latest", ◮ The container as a host "method": "POST" } ◮ RESTful APIs for all operations { ◮ Direct mapping of HTTP methods to "target": "smartphone -store", CRUD functions "path": "/( sub|unsub)/gps /*", "method": "GET" ◮ Per-route granular permissions }

  6. Implementation Delegated Authorization ◮ Google Research: Macaroons ◮ A standard similar to signed cookies ◮ Can be attenuated by “caveats” ◮ Embedded permissions ◮ Minting and verification can be separated through shared secret keys target = smartphone -store path = /( sub|unsub)/gps /* method = GET time < 1489405851417 target = smartphone -store path = /light/ts/range method = GET startTimestamp >= 1489405234352 endTimestamp <= 1489405259525

  7. Implementation Resource Discovery ◮ API for describing APIs ◮ Directory servers ◮ Many competing standards ◮ Resource Description Framework (RDF) ◮ Web Application Description Language (WADL) ◮ Web Services Description Language (WSDL) ◮ eXtensible Resource Descriptor (XRD) ◮ Subject-predicate-object style pervalent ◮ Different formats and applications — XML for REST, SOAP, OpenID

  8. Implementation Resource Discovery { "catalogue -metadata": [ { "rel": "urn:X-hypercat:rels: isContentType ", ◮ Hypercat: Recently joined BSI Group "val": " application /vnd.hypercat.catalogue+json" } , { "rel": "urn:X-hypercat:rels: hasDescription :en", ◮ IoT-first specification design "val": "A Databox Store" } ], ◮ JSON/REST over XML/SOAP "items": [ { "href": "http://some -store/light", ◮ Only cataloguing; ontologies and "item -metadata": [ { "rel": "urn:X-hypercat:rels: hasDescription :en", authorisation extensible "val": "Light Datasource " } , { "rel": "urn:X-databox:rels:hasVendor", ◮ Discoverability vs accessibility "val": "Databox Inc ." } , { ◮ Catalogues can be nested, allowing "rel": "urn:X-databox:rels:isActuator ", "val": false decentralisation and distribution } ] } ] }

  9. Implementation The Arbiter Databox Databox Sensors & Dash- Manager Actuators board User Collects Driver App Arbiter Permission IoT Records App Devices Store Points to Hypercat Actuates Driver Catalog Publish to Social Collects Driver Requests App Pushes to Emits Export 3rd Media Parties

  10. Implementation Transcription of Permissions 1. Drivers/apps come packaged with a manifest { ◮ Contain image metadata "name": "app", ◮ Enumerate granular permissions for sources, "author": "amar", " permissions ": [ concurrency, external access, and hardware { 2. Users generate a Service-level Ageement (SLA) "source": "twitter" "required": true 3. The arbiter records granted permissions } , { 4. Tokens are minted based on these "source": "gps" } , {} , {} ] } Manifest SLA Token

  11. Evaluation Scalability ● 200 ● ● ● ● ● ● ● ● 150 Inserts/s 100 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 50 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 0 ● ● ● ● ● ● ● ● ● ● ● ● ● 0 5 10 15 Stores Figure: Inserts/s over Stores under Maximum Load

  12. Evaluation Scalability Stores Launched 100 75 50 Experiment 25 With Arbiter Registration Without Arbiter Registration 0 0 50 100 150 Time (s) Figure: Stores Launched over Time

  13. Next Steps ◮ Arbiter token minting under load evaluation ◮ Performance vs security when modifying token expiry ◮ Many areas to research, e.g. watermarking ◮ Many example apps and drivers, with multipurpose datavis and transformation

  14. Thank you for your attention! Questions? More info: http://www.databoxproject.uk/ Contribute: https://github.com/me-box

Recommend


More recommend