56
5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

5 October 2015

OUR ROAD TO IOT: SECURE DEVICE GRID

Kresten Krab Thorup @drkrab

Page 2: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

Introduction

IoT and SSL/TLS landscape

Secure Device Grid design

Lessons Learned

Page 3: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

ABOUT THE SPEAKER

Kresten Krab Thorup, Ph.D.

Trifork CTO - since 1999

JAOO, QCon, YOW!, GOTO Conferences

Language Hacker

Page 4: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

HOW TO REMOTE CONTROL YOUR IOT DEVICES?

Page 5: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

IOT REMOTE CONTROL

ACCESS

Device/Mobile behind NAT

SECURITY

Secure Traffic (Secrecy, Integrity)

Authentication

Privacy

Page 6: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

DESIGN #1

GATEWAY

MOBILE DEVICE

TRUSTED? MAN IN THE MIDDLE

FIREWALL FIREWALL

Page 7: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

DESIGN #2

GATEWAY

MOBILE DEVICE

END-TO-END TRUST

FIREWALL FIREWALL

Page 8: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

DESIGN #2

GATEWAY

MOBILE DEVICEPAIRING

KEY EXCHANGE

PIN

Page 9: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

DESIGN #2

GATEWAY

MOBILE DEVICE

Secure

Authenticated

Private

Page 10: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

HOW TO SECURE THIS?

Page 11: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

PUBLIC KEY CRYPTOGRAPHY

SecretKey PublicKey

Alice BobI’m Home!

SecretKey PublicKey

Page 12: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

ENCRYPTION

Alice Bobciphertext

encode(“I’m Home!”, PublicKey)

decode(ciphertext, SecretKey)

Only Bob can decode it

Eve

Page 13: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SIGNING

Alice Bobsigned

sign(“I’m Home!”, SecretKey)

verify(signed, PublicKey)

Only Alice could have created the signed message

Eve

Page 14: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TRUST

Alice Bob

Eve

Carl

PublicKey PublicKey

sign(PublicKey, SecretKey)

sign(PublicKey, SecretKey)

Page 15: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SSL/TLS

Page 16: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SSL/TLS

Standardized approach to Public Key Crypto

Public Key Infrastructure (CA’s)

Standard Protocols

15+ years of history

Page 17: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SSL/TLS

iOS

Android

Windows

OpenSSL

ARM

Broadcom

WinCE

GATEWAY

Page 18: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

Many platforms ⇒ weakest link defines level

PROBLEMS

Implementation errors / limitations

Protocol errors

Configuration/use errors

SSL/TLS WOES

Page 19: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

NATIVE STACK LIMITATIONS

Client certificate capability

Validate/control connection status?

Who are you connected to?

Support proper (modern) ciphers

Page 20: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

WELL KNOWN SSL/TLS BUGS

FREAK - downgrade to ‘export grade’ crypto

POODLE - downgrade makes keys guessable

HeartBleed (OpenSSL)- expose contents of server memory

Logjam - Exploits standard config (DH) params

Many individual implementation bugs

Page 21: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab
Page 22: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TLS VULNERABILITIES

Page 23: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SSL VULNERABILITIES

Page 24: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #1

IMPLEMENT UPGRADE OF SOFTWARE IN THE FIELD

Page 25: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #2

OPENSSL IS A ATTACK TARGET BECAUSE IT IS POPULAR

(Just like Windows)

Page 26: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

COMPLEXITY

Page 27: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TLS COMPLEXITY

Creeps in as standards develop

15+ years backwards compatible

ASN.1, X509 Certificates, Revocations, …

Protocol negotiation (and renegotiations)

Diversity of features available on platforms

Diversity of configurations

Page 28: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

DIVERSITY

iOS

Android

Windows

OpenSSL

ARM

Broadcom

WinCE

Page 29: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

OUR TLS SOLUTION

OpenSSL

OpenSSL

OpenSSL

OpenSSL

OpenSSL

OpenSSL

OpenSSLONE CONFIGURATION: TLS 1.2 ECC BrainPool P384One cipher ECDH_ECDSA_AES

Page 30: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #3

ANY SSL/TLS IMPLEMENTATION IS LARGE AND COMPLEX

(ARM JUST OPEN SOURCED A NEW STACK ‘mbed TLS’)

Page 31: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

A NEW START:

GOING SMALL

Page 32: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

A NEW START: NACL (CURVE 25519)

Crypto library from Daniel Bernstein (of qmail fame)

Used in ZeroMQ, Tor, SSH, HomeKit, AirPlay, Chrome/QUIC, countless open source tools.

“An attacker who spends a billion dollars on special-purpose chips to attack Curve25519, using the best attacks available today, has about 1 chance in 1027 of breaking Curve25519 after a year of computation.”

Page 33: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab
Page 34: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

NACL: CRYPTO SIMPLIFIED

One way to do things

ECC crypto (Curve25519)

Stream cipher (Salsa20)

SHA25

CurveCP: Control Protocol (like SSL/TLS)

Page 35: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

NACL: CRYPTO SIMPLIFIED

Multiple implementations

NaCl, the original (compiles to ~30k ARM code)

libsodium (with fast ASM for popular platforms)

TweetNacl, compiles to 10k ARM code

Java, .NET, JavaScript, … you name it.

Page 36: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

NACL: WHAT’S NOT THERE?

Key Management

Certificate Chains / X509 / ASN.1

Protocol negotiation, downgrade, …

Many ciphers, hashes, …

RANDOM SOURCE

Page 37: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #4

WHEN YOU CONTROL BOTH ENDS, CONSIDER SIMPLIFYING

Page 38: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

RANDOM

Page 39: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab
Page 40: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab
Page 41: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #5

RANDOMNESS IS HARD IN EMBEDDED DEVICES

Page 42: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

RANDOM IS HARD

Initialize when product is ‘installed’ at factory

product’s public key

entropy data file

Recent JEEP hack was lack of entropy

Android also had a serious random bug in 2013

Page 43: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

PRIVACY

Page 44: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

PRIVACY

GATEWAY

MOBILE DEVICE

Page 45: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

NEED-TO-KNOW

Gateway/router has no knowledge of peer identity — It only knows that they trust each other

A break-in of cloud infrastructure does not compromise peers

Individual peers being compromised will not compromise other peers.

Page 46: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #6

SAVE ONLY WHAT’S NECESSARY (PRIVACY BY DESIGN)

Page 47: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TRUST SCHEMES?

Establish trust by means of a 3rd party

SMS

3rd party SSO

Certificate authority

Trust direct between devices

Page 48: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TRUST

Alice BobEve

Carl

PublicKey PublicKey

sign(PublicKey, SecretKey)

sign(PublicKey, SecretKey)

Carl2sign(PublicKey, SecretKey)

sign(PublicKey, SecretKey)

Carl3sign(PublicKey, SecretKey)

sign(PublicKey, SecretKey)

Page 49: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TRUST

SecretKey PublicKey

Alice Bob

SecretKey PublicKey

OTPOTP

Page 50: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

LESSON #7

AVOID CERTIFICATE AUTHORITIES (CA’S) WHEN POSSIBLE

Page 51: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

TRUST ON FIRST USE

SSH shows a fingerprint to verify on first use

Our product you enter a PIN to verify the peer

Henceforth, trust the holder of that key

Page 52: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

END-TO-END LIMITATIONS

Sometimes you want an OPEN API - Most web-enabled IOT devices do that

IFTTT (open programmable interation platform) - Holds on to all your credentials

- Email, google, facebook, devices, …

- Ideal targt for a hacker

Make this a special case, not the default.

Page 53: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SUMMARY

Page 54: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

SUMMARY

SSL/TLS is more complex than you think

CA’s introduce trust in 3rd parties

Implement software upgrade

Control both ends? Consider a simpler solution.

Randomness is hard

Remember (log/store) only what’s necessary

Page 55: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

Aarhus Copenhagen Zurich Amsterdam Berlin Budapest Buenos Aires Krakow Leeds London San Francisco Seattle Stockholm

our product securedevicegrid.com

Page 56: OUR ROAD TO IOT: SECURE DEVICE GRID · 5 October 2015 OUR ROAD TO IOT: SECURE DEVICE GRID Kresten Krab Thorup @drkrab

Aarhus Copenhagen Zurich Amsterdam Berlin Budapest Buenos Aires Krakow Leeds London San Francisco Seattle Stockholm

Kresten Krab Thorup [email protected]

@drkrab