50
Where are we today? Devices and Solutions are exploding personal o fitness, watches, ... household o lights, detectors, thermostats, appliances, ... medical o heart rate monitors, ...

CIS14: Securing the Internet of Things with Open Standards

Embed Size (px)

DESCRIPTION

George Fletcher, AOL, Inc. Exploring one mechanism, using open standards, to add a layer of security and convenience for devices connecting to a personal cloud, including the challenges that exist to make it a reality.

Citation preview

Page 1: CIS14: Securing the Internet of Things with Open Standards

Where are we today? Devices and Solutions are exploding ●  personal

o  fitness, watches, ... ●  household

o  lights, detectors, thermostats, appliances, ... ●  medical

o  heart rate monitors, ...

Page 2: CIS14: Securing the Internet of Things with Open Standards

Emerging Pattern Each device has it’s own service in the cloud Device reports data to the service User accesses their device’s data via cloud APIs

Page 3: CIS14: Securing the Internet of Things with Open Standards

Three examples

Page 4: CIS14: Securing the Internet of Things with Open Standards

Internet Connected Dishwasher Big Data analytics ●  how often I wash dishes ●  when I have guests ●  when I’m not at home ●  when I’m canning

Page 5: CIS14: Securing the Internet of Things with Open Standards

Challenges Security Ubiquity & Variety Data Model User Experience & Management

Page 6: CIS14: Securing the Internet of Things with Open Standards

Bruce Schneider

https://www.schneier.com/essays/archives/2014/01/the_internet_of_thin.html

The computers in our routers and modems are much more powerful than the PCs of the mid-1990s, and the Internet of Things will put computers into all sorts of consumer devices. The industries producing these devices are even less capable of fixing the problem than the PC and software industries were.

Page 7: CIS14: Securing the Internet of Things with Open Standards

Security Layers

Page 8: CIS14: Securing the Internet of Things with Open Standards

Samsung Gear Live

Page 9: CIS14: Securing the Internet of Things with Open Standards

Types of “things” personal (fitbit) shared (family, doctor, neighbor) medical (heart monitor) industrial (air conditioner) temporary (beer glasses)

Page 10: CIS14: Securing the Internet of Things with Open Standards

Data Model Requirements Authorization / Revocation Co-ownership Grouping / Aggregation Policy Inheritance Privacy By Design

Page 11: CIS14: Securing the Internet of Things with Open Standards

User Experience ●  How do I allow my son to change the

thermostat but only within a limited range? ●  How do I easily add a light bulb to the family

room and have it inherit the policy already assigned to the other lights in the “family room”?

●  How do I let my friend borrow the car such that driving data is delivered to both of us?

Page 12: CIS14: Securing the Internet of Things with Open Standards

User Experience ●  How do I sell my washing machine? (and

reset to initial state?) o  Can I save my policy from the old washing machine

and apply it to the new one? ●  How do I craft custom experiences such that

when a World Cup game comes on, the light change to my preferred team’s colors, the blinds close and the TV tunes to the correct channel?

Page 13: CIS14: Securing the Internet of Things with Open Standards

Key Elements to Usability Simple onboarding process ●  provisioning device into personal cloud ●  grouping device with other like devices ●  pre-authorization of

o  who/what can query the device o  who/what can control the device

Page 14: CIS14: Securing the Internet of Things with Open Standards

Key Elements to Usability Simple Authorization model ●  out-of-band user consent channel ●  alerts of abnormalities ●  sharing / multi-access ●  centralized policy management

Page 15: CIS14: Securing the Internet of Things with Open Standards

Key Elements to Usability Simple de-provisioning ●  revocation of authorized capabilities ●  reset of device to initial state ●  removal of device from groups and

relationships ●  archive activity data for historical purposes

Page 16: CIS14: Securing the Internet of Things with Open Standards

Building for a Better Tomorrow

Page 17: CIS14: Securing the Internet of Things with Open Standards

Building Blocks OAuth2 OpenID Connect User Managed Access Personal Clouds

Page 18: CIS14: Securing the Internet of Things with Open Standards

OAuth2 Basics ●  Framework for API

Authorization o  e.g. Valet Key

●  Get a token (RFC 6749) o  code, implicit,

refresh, assertion, ... ●  Use a token (RFC 6750)

o  bearer token profile

Page 19: CIS14: Securing the Internet of Things with Open Standards

OAuth2 Dynamic Registration Client Registration Endpoint ●  Initial Access Token

o  out-of-band AuthZ ●  Software Statement

o  signed claims provided by software stack

Page 20: CIS14: Securing the Internet of Things with Open Standards

OAuth2 Dynamic Registration flow

Page 21: CIS14: Securing the Internet of Things with Open Standards

OpenID Connect Basics Identity layer build on top of OAuth2 ●  id_token ●  user claims ●  session management ●  logout

Page 22: CIS14: Securing the Internet of Things with Open Standards

User Managed Access (UMA)

resource owner

resource server authorization server

client

protected resources

(unnamed till now)

UMA, Kantara Initiative: Used with Permission

Page 23: CIS14: Securing the Internet of Things with Open Standards

UMA & Online Sharing I want to share this stuff selectively •  Among my own apps •  With family and friends •  With organizations

I want to protect this stuff from being seen by everyone in the world

UMA, Kantara Initiative: Used with Permission

I want to control access proactively, not just feel forced to consent over and over

Page 24: CIS14: Securing the Internet of Things with Open Standards

UMA request flow Alice shares calendar with Bob ●  Alice emails Bob a link to her calendar ●  Bob goes to his calendar software and

subscribes to Alice’s calendar using the link provided by Alice in the email

Page 25: CIS14: Securing the Internet of Things with Open Standards

OAuth2 Code Flow

UMA Request Flow

UMA 3.1.1 UMA 3.4.1 UMA 3.1.2 UMA 3.2.2 / OAuth2 Token Introspection

Page 26: CIS14: Securing the Internet of Things with Open Standards

Personal Clouds

Slide by Phil Windley: Used with Permission

Page 27: CIS14: Securing the Internet of Things with Open Standards

Persistent Compute Object (PICO) Identity—they represent a specific entity

Storage—they persistently encapsulate both structured and unstructured data

Open event network—they respond to events

Processing—they run applications autonomously

Event Channels—they have connections to other picos

APIs—they provide access to and access other online services

Slide by Phil Windley: Used with Permission

Page 28: CIS14: Securing the Internet of Things with Open Standards

Picos are Decentralized & Networked

Slide by Phil Windley: Used with Permission

Page 29: CIS14: Securing the Internet of Things with Open Standards

Picos Use an Event Query Model

Slide by Phil Windley: Used with Permission

Page 30: CIS14: Securing the Internet of Things with Open Standards

Programming Model Program in any language you like OAuth access to pico Pico provides

user data processing API and inter-pico communications

Slide by Phil Windley: Used with Permission

Page 31: CIS14: Securing the Internet of Things with Open Standards

Applying to IoT

Page 32: CIS14: Securing the Internet of Things with Open Standards

Sample Use Case Adding new garage door opener to my Internet of Things - already have Car, Lights, Thermostat, etc Goal: garage door is up when I drive in the driveway

Page 33: CIS14: Securing the Internet of Things with Open Standards

Data Model

Page 34: CIS14: Securing the Internet of Things with Open Standards

Solution Key Components Trusted Introduction Transport Security Activity Authorization Standards Support ●  OAuth2 ●  UMA

Page 35: CIS14: Securing the Internet of Things with Open Standards

Architectural Requirements Owner Pico functions as the UMA AS Each Pico functions as an UMA client ●  pico channel authz is RPT introspection Smart phone app functions as an UMA client Tight binding between device and device Pico

Page 36: CIS14: Securing the Internet of Things with Open Standards

Assumptions Device manufactured with a Software Statement Device supports bi-directional NFC Device supports HTTPS User has a smart phone bound to their personal cloud (trusted app)

Page 37: CIS14: Securing the Internet of Things with Open Standards

Software Statement JSON Signed Web Token (JWS) ●  Issuer claim [iss] (manufacturer) ●  Subject claim [sub] (device unique id) ●  JWT ID claim [jti] (unique id) ●  Device type [com.example.device.type]

Public key for signature must be retrievable via the issuer claim.

Page 38: CIS14: Securing the Internet of Things with Open Standards

User Experience User runs personal cloud app and “taps” the Garage Door opener Garage Door opener flashes an LED to signal success Personal cloud app shows Garage Door as being connected to the House pico Personal cloud app can query (or change) the open/closed state of the door

Page 39: CIS14: Securing the Internet of Things with Open Standards

NFC “Tap” garage door opener 1. Device transfers

software statement to phone

2. Phone transfers UMA AS endpoint to device a.  optionally network

connectivity creds

Page 40: CIS14: Securing the Internet of Things with Open Standards

Phone app adds device to cloud

Pre-Register Device [Software_Statement]

Add Garage Door Opener to House?

Create ‘Garage Door’

Page 41: CIS14: Securing the Internet of Things with Open Standards

Garage Door Obtains Access_Token

Register Device [Software_Statement]

Client_ID & Client_Secret OAuth2 Client Assertion Flow

Access_Token [UMA AAT]

Page 42: CIS14: Securing the Internet of Things with Open Standards

Garage Door connects to pico

Where’s my Pico? [AAT]

Endpoint: https://… Pico ID: 123 UMA RPT Req (3.4.1)

[AAT, Pico ID]

RPT (pre-authorized) Establish Connection

[RPT]

Page 43: CIS14: Securing the Internet of Things with Open Standards

Where are we? Garage Door device is connected to it’s pico Policy for what/who can query/control the garage door managed by the Owner pico and implemented via UMA

Page 44: CIS14: Securing the Internet of Things with Open Standards

What do we want? Garage door to open when I drive into the driveway Assume: Car is already connected to it’s ‘Car’ pico ‘Car’ pico has a channel with the ‘House’ pico Car has geo-fence capability

Page 45: CIS14: Securing the Internet of Things with Open Standards

Opening the Garage Door

Page 46: CIS14: Securing the Internet of Things with Open Standards

Decommissioning the Garage Door 1.  User via their trusted app instructs the Owner pico to remove the ‘Garage

Door’ pico 2.  The Owner pico sends a message to the ‘House’ pico to delete the

‘Garage Door’ pico 3.  The ‘Garage Door’ pico can now archive any historical data before sending

a message to the ‘Garage Door’ to reset to factory defaults 4.  Owner pico revokes all ‘Garage Door’ access tokens

Page 47: CIS14: Securing the Internet of Things with Open Standards

Benefits of this approach ●  Collected data is stored and managed under

the user’s control ●  Authorization policy across the personal IoT

cloud is centrally managed o  Lots of opportunity for innovation in how to help the

user manage their devices o  Authorization policy can be inherited across the data

model ●  Implementable today with existing standards

Page 48: CIS14: Securing the Internet of Things with Open Standards

References UMA ●  UMA 101 2013-10-29 ●  UMA Webinar 2014-03-20 ●  UMA Core Spec

Personal Clouds: ●  Connecting Things

OAuth 2: ●  Dynamic Client Registration ●  Token Introspection

JOSE ●  JSON Web Token ●  JSON Web Signature

Page 49: CIS14: Securing the Internet of Things with Open Standards

Questions Acknowledgements ●  UMA: Eve Maler & Domenico Catalano ●  CloudOS: Phil Windley

Page 50: CIS14: Securing the Internet of Things with Open Standards

Appendix