our road to iot secure device grid
play

OUR ROAD TO IOT: SECURE DEVICE GRID 5 October 2015 Kresten Krab - PowerPoint PPT Presentation

OUR ROAD TO IOT: SECURE DEVICE GRID 5 October 2015 Kresten Krab Thorup @drkrab Introduction IoT and SSL/TLS landscape Secure Device Grid design Lessons Learned ABOUT THE SPEAKER Kresten Krab Thorup, Ph.D. Trifork CTO - since 1999


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

  2. Introduction IoT and SSL/TLS landscape Secure Device Grid design Lessons Learned

  3. ABOUT THE SPEAKER Kresten Krab Thorup, Ph.D. Trifork CTO - since 1999 JAOO, QCon, YOW!, GOTO Conferences Language Hacker

  4. HOW TO REMOTE CONTROL YOUR IOT DEVICES?

  5. IOT REMOTE CONTROL ACCESS Device/Mobile behind NAT SECURITY Secure Traffic (Secrecy, Integrity) Authentication Privacy

  6. DESIGN #1 TRUSTED? GATEWAY MAN IN THE MIDDLE FIREWALL FIREWALL MOBILE DEVICE

  7. DESIGN #2 END-TO-END GATEWAY TRUST FIREWALL FIREWALL MOBILE DEVICE

  8. 
 DESIGN #2 GATEWAY PIN PAIRING 
 MOBILE DEVICE KEY EXCHANGE

  9. DESIGN #2 GATEWAY Secure Authenticated MOBILE DEVICE Private

  10. HOW TO SECURE THIS?

  11. PUBLIC KEY CRYPTOGRAPHY I’m Home! Alice Bob SecretKey SecretKey PublicKey PublicKey

  12. ENCRYPTION Eve ciphertext Alice Bob encode(“I’m Home!”, PublicKey) decode(ciphertext, SecretKey) Only Bob can decode it

  13. SIGNING Eve signed Alice Bob sign(“I’m Home!”, SecretKey) verify(signed, PublicKey) Only Alice could have created the signed message

  14. TRUST Eve Alice Bob PublicKey PublicKey sign(PublicKey, 
 sign(PublicKey, 
 Carl SecretKey) SecretKey)

  15. SSL/TLS

  16. SSL/TLS Standardized approach to Public Key Crypto Public Key Infrastructure (CA’s) Standard Protocols 15+ years of history

  17. SSL/TLS OpenSSL iOS ARM GATEWAY Android Broadcom Windows WinCE

  18. SSL/TLS WOES Many platforms ⇒ weakest link defines level PROBLEMS Implementation errors / limitations Protocol errors Configuration/use errors

  19. NATIVE STACK LIMITATIONS Client certificate capability Validate/control connection status? Who are you connected to? Support proper (modern) ciphers

  20. 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

  21. TLS VULNERABILITIES

  22. SSL VULNERABILITIES

  23. LESSON #1 IMPLEMENT UPGRADE OF SOFTWARE IN THE FIELD

  24. LESSON #2 OPENSSL IS A ATTACK TARGET 
 BECAUSE IT IS POPULAR (Just like Windows)

  25. COMPLEXITY

  26. 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

  27. DIVERSITY OpenSSL iOS ARM Android Broadcom Windows WinCE

  28. OUR TLS SOLUTION OpenSSL OpenSSL OpenSSL OpenSSL OpenSSL OpenSSL OpenSSL ONE CONFIGURATION: TLS 1.2 ECC BrainPool P384 One cipher ECDH_ECDSA_AES

  29. LESSON #3 ANY SSL/TLS IMPLEMENTATION 
 IS LARGE AND COMPLEX (ARM JUST OPEN SOURCED 
 A NEW STACK ‘mbed TLS’)

  30. A NEW START: GOING SMALL

  31. 
 A NEW START: N A CL (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 10 27 of breaking Curve25519 after a year of computation. ”

  32. NACL: CRYPTO SIMPLIFIED One way to do things ECC crypto (Curve25519) Stream cipher (Salsa20) SHA25 CurveCP: Control Protocol (like SSL/TLS)

  33. 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.

  34. NACL: WHAT’S NOT THERE? Key Management Certificate Chains / X509 / ASN.1 Protocol negotiation, downgrade, … Many ciphers, hashes, … RANDOM SOURCE

  35. LESSON #4 WHEN YOU CONTROL BOTH ENDS, CONSIDER SIMPLIFYING

  36. RANDOM

  37. LESSON #5 RANDOMNESS IS HARD IN 
 EMBEDDED DEVICES

  38. 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

  39. PRIVACY

  40. PRIVACY GATEWAY MOBILE DEVICE

  41. 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.

  42. LESSON #6 SAVE ONLY WHAT’S NECESSARY (PRIVACY BY DESIGN)

  43. TRUST SCHEMES? Establish trust by means of a 3rd party SMS 3rd party SSO Certificate authority Trust direct between devices

  44. TRUST Eve Alice Bob PublicKey PublicKey sign(PublicKey, 
 sign(PublicKey, 
 Carl SecretKey) SecretKey) sign(PublicKey, 
 sign(PublicKey, 
 Carl2 SecretKey) SecretKey) sign(PublicKey, 
 sign(PublicKey, 
 Carl3 SecretKey) SecretKey)

  45. TRUST OTP OTP Alice Bob SecretKey SecretKey PublicKey PublicKey

  46. LESSON #7 AVOID CERTIFICATE AUTHORITIES 
 (CA’S) WHEN POSSIBLE

  47. 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

  48. 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.

  49. SUMMARY

  50. 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

  51. our product securedevicegrid.com Aarhus Copenhagen Zurich Amsterdam Berlin Budapest Buenos Aires Krakow Leeds London San Francisco Seattle Stockholm

  52. Kresten Krab Thorup krab@trifork.com @drkrab Aarhus Copenhagen Zurich Amsterdam Berlin Budapest Buenos Aires Krakow Leeds London San Francisco Seattle Stockholm

Recommend


More recommend