Top Banner
Securing the Internet of Things Paul Fremantle CTO, WSO2 ([email protected] ) PhD researcher, Portsmouth University ([email protected] ) @pzfreo Paul Madsen* Technical Architect, PingIdentity ([email protected] ) @paulmadsen *Paul M helped me with the initial content, but I take responsibility for anything you don’t like in this slide deck.
49

Securing the Internet of Things

May 06, 2015

Download

Technology

Paul Fremantle

A talk given at the EclipseCon 2014 M2M day.
This deck addresses a number of aspects of security for IoT devices and applications and also looks at using federated identity for IoT including MQTT
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Securing the Internet of Things

Securing the Internet of Things

Paul FremantleCTO, WSO2 ([email protected])

PhD researcher, Portsmouth University([email protected])

@pzfreo

Paul Madsen*Technical Architect, PingIdentity([email protected])

@paulmadsen

*Paul M helped me with the initial content, but I take responsibility for anything you don’t like in this slide deck.

Page 2: Securing the Internet of Things
Page 3: Securing the Internet of Things

About me• CTO and Co-Founder

WSO2– Open Source Middleware

platform• Part-time PhD looking at

security• Working in Apache for 14

years• Working with Cloud,

SOA, APIs, MQTT, IoT3

Page 4: Securing the Internet of Things

Firstly, does it matter?

Page 5: Securing the Internet of Things
Page 6: Securing the Internet of Things
Page 7: Securing the Internet of Things

“Google Hacking”

Page 8: Securing the Internet of Things

http://www.forbes.com/sites/kashmirhill/2013/07/26/smart-homes-hack/

Page 9: Securing the Internet of Things
Page 10: Securing the Internet of Things

http://freo.me/1pbUmof

Page 11: Securing the Internet of Things

So what is different about IoT?

• The longevity of the device– Updates are harder (or impossible)

• The size of the device– Capabilities are limited – especially around crypto

• The fact there is a device– Usually no UI for entering userids and passwords

• The data– Often highly personal

• The mindset– Appliance manufacturers don’t think like security experts– Embedded systems are often developed by grabbing existing chips,

designs, etc

Page 12: Securing the Internet of Things

Physical Hacks

A Practical Attack on the MIFARE Classic: http://www.cs.ru.nl/~flaviog/publications/Attack.MIFARE.pdf Karsten Nohl and Henryk Plotz. MIFARE, Little Security, Despite Obscurity

Page 13: Securing the Internet of Things
Page 14: Securing the Internet of Things

Or try this at home?http://freo.me/1g15BiG

Page 16: Securing the Internet of Things

Hardware recommendations

• Don’t rely on obscurity

Page 17: Securing the Internet of Things

Hardware recommendations

• Don’t rely on obscurity• Don’t rely on obscurity• Don’t rely on obscurity• Don’t rely on obscurity• Don’t rely on obscurity• Don’t rely on obscurity• Don’t rely on obscurity

Page 18: Securing the Internet of Things

Hardware Recommendation #2

• Unlocking a single device should risk only that device’s data

Page 19: Securing the Internet of Things

The Network

Page 20: Securing the Internet of Things

Crypto on small devices

• Practical Considerations and Implementation Experiences in Securing Smart Object Networks– http://tools.ietf.org/html/draft-aks-crypto-sensors-02

Page 21: Securing the Internet of Things

ROM requirements

Page 22: Securing the Internet of Things

ECC is possible (and about fast enough)

Page 23: Securing the Internet of Things
Page 24: Securing the Internet of Things

Crypto

Borrowed from Chris Swan: http://www.slideshare.net/cpswan/security-protocols-in-constrained-environments/13

Page 25: Securing the Internet of Things

Won’t ARM just solve this problem?

Page 26: Securing the Internet of Things

Cost matters

8 bits$5 retail$1 or less to embed

32 bits$25 retail$?? to embed

Page 27: Securing the Internet of Things

Another option?

Page 28: Securing the Internet of Things

SIMON and SPECK

https://www.schneier.com/blog/archives/2013/07/simon_and_speck.html

Page 29: Securing the Internet of Things

Datagram Transport Layer Security(DTLS)

• UDP based equivalent to TLS• https://tools.ietf.org/html/rfc4347

Page 30: Securing the Internet of Things

Key distribution

Page 31: Securing the Internet of Things
Page 32: Securing the Internet of Things

CoAP

• Constrained Application Protocol– http://tools.ietf.org/html/draft-ietf-core-coap-18 – REST-like model built on UDP– Californium project coming soon to Eclipse IoT

• No authentication or authorization– Relies on DLTS or data in the body

Page 33: Securing the Internet of Things

MQTT

Page 34: Securing the Internet of Things

MQTT

• Very lightweight messaging protocol– Designed for 8-bit controllers, SCADA, etc– Low power, low bandwidth– Binary header of 2 bytes– Lots of implementations

• Mosquitto, Paho, RSMB and Moquette from Eclipse

– Clients:• Arduino, Perl, Python, PHP, C, Java, JS/Node.js, .Net, etc

• Plus an even lighter-weight version for Zigbee– MQTT-SN (Sensor Network)

Page 35: Securing the Internet of Things

MQTT

• Relies on TLS for confidentiality• Username/Password field

Page 36: Securing the Internet of Things

Passwords

• Passwords suck for humans• They suck even more for devices

Page 37: Securing the Internet of Things

Tokens

Page 38: Securing the Internet of Things
Page 39: Securing the Internet of Things

Why OAuth2?

• Widely implemented• Pretty good – Of course there is never 100% agreement– Or certainty with security protocols

• Not just HTTP:– http://tools.ietf.org/html/draft-ietf-kitten-sasl-oau

th-12

– OAuth2 used with SSL

Page 40: Securing the Internet of Things
Page 41: Securing the Internet of Things
Page 42: Securing the Internet of Things

Why FIAM for IoT?

• Can enable a meaningful consent mechanism for sharing of device data

• Giving a device a token to use on API calls better than giving it a password– Revokable– Granular

• May be relevant for both– Device to cloud– Cloud to app

Page 43: Securing the Internet of Things

Two aspects using OAuth with IoT

• On the device– Tokens are good– Limiting the access of the device

• On the cloud– Putting users in control of their data– Just good current practice

• Demo with MQTT – But not just for MQTT– Also for the cloud, CoAP, and other protocols too

Page 44: Securing the Internet of Things

Demo components

Mosquitto(Open Source MQTT

Broker)

Acting as “Resource Server”

Mosquitto_py_auth

mqtt-oauth2.py

IdP

WSO2 Identity Server

ESBIntrospection

API

Refresher.py

Arduino

CreateToken.py1

2

3

4

5

6

Page 45: Securing the Internet of Things

WSO2 Identity Server

Page 46: Securing the Internet of Things

Lessons learnt

• MQTT and MPU / I2C code is 97% of Duemilanove– Adding the final logic to do OAuth2 flow pushed it to 99%– No TLS in this demo is a big issue

• Different Oauth2 implementations behave differently (e.g. changing the refresh token every time you refresh)

• Need to be able to update the scope of token if this will work for long term embedded devices

• The refresh flow should not really go via the Resource server– Easy fix

• MQTT should have a well defined model for sending a message to just one client (securely)

Page 47: Securing the Internet of Things

What I haven’t covered enough of

Page 48: Securing the Internet of Things

Summary

• Think about security with your next device• We as a community need to make sure that

the next generation of IoT devices are secure• We need to create exemplars– Shields– Libraries– Server software– Standards

Page 49: Securing the Internet of Things

Questions?