securing iot connected device applications
play

Securing IoT Connected Device Applications Ian Massingham - PowerPoint PPT Presentation

Securing IoT Connected Device Applications Ian Massingham Technology Evangelist, AWS IanMmmm IoT isnt a new use-case for AWS Amazon Amazon Kinesis Amazon AWS Lambda API Gateway Streaming Analytics DynamoDB Run Code in Build,


  1. Securing IoT Connected Device Applications Ian Massingham Technology Evangelist, AWS IanMmmm

  2. IoT isn’t a new use-case for AWS Amazon Amazon Kinesis Amazon AWS Lambda API Gateway Streaming Analytics DynamoDB Run Code in Build, Deploy, and Predictable and Response to Events Manage APIs Scalable NoSQL Data Store … and more Amazon SNS 
 Amazon Cognito Amazon Redshift Mobile Push 
 User Identity and Data Petabyte-Scale 
 and Notifications Synchronization Data Warehouse

  3. AWS IoT: simplify and accelerate IoT development Amazon Amazon Kinesis Amazon AWS Lambda API Gateway Streaming Analytics DynamoDB Run Code in Build, Deploy, and Predictable and Response to Events Manage APIs Scalable NoSQL Data Store AWS IoT … and more Connect Devices to the Cloud Amazon SNS 
 Amazon Cognito Amazon Redshift Mobile Push 
 User Identity and Data Petabyte-Scale 
 and Notifications Synchronization Data Warehouse

  4. AWS IoT “Securely connect one or one billion devices to AWS, 
 so they can interact with applications and other devices”

  5. http://192.168.1.200:8080

  6. http://192.168.1.200:8080

  7. http://192.168.1.200:8080 http://a.public.address:8080

  8. http://192.168.1.200:8080 http://a.public.address:8080

  9. http://192.168.1.200:8080 http://a.public.address:8080

  10. http://192.168.1.200:8080 http://a.public.address:8080

  11. http://192.168.1.200:8080 http://a.public.address:8080

  12. http://192.168.1.200:8080 http://a.public.address:8080

  13. http://192.168.1.200:8080 http://a.public.address:8080

  14. http://192.168.1.200:8080 http://a.public.address:8080

  15. http://192.168.1.200:8080 http://a.public.address:8080

  16. DADDY, WHERE DO BOTNETS COME FROM?

  17. It doesn’t have to be this way

  18. http://192.168.1.200:8080

  19. http://192.168.1.200:8080

  20. IoT Security: One Slide Primer Variably-constrained devices Variably-constrained environment & networks Remote locations, variable physical security Diverse IoT market segments, threat models Variable criticality of the IoT applications

  21. Start with a threat model

  22. Safety

  23. Bad things can happen in the real world

  24. How can we defend against these threats?

  25. Secure Communications with Things Strong Thing Identity Fine-grained Authorisation for: Thing Management (Control plane) Pub/Sub Data Access (Data plane) Access to Services (To add features)

  26. Secure Communications with Things

  27. Mutual TLS Authentication TLS/SSL MUTUAL TLS AUTHENTICATION

  28. Public Key Cryptography Options Symmetric Key Size (bits) RSA Key Size (bits) Elliptic Curve Key size (bits) 80 1024 160 112 2048 224 128 3072 256 192 7680 384 256 15360 512 For same bits & level of security ECC keys are much smaller that RSA keys https://aws.amazon.com/blogs/iot/elliptic-curve-cryptography-and-forward-secrecy-support-in-aws-iot-3/

  29. Communicating with non-things (Humans)

  30. How we implement this MQTT + Mutual Authn TLS AWS Authn + HTTPS Server Authn TLS + Cert TLS + Cert Client Authn TLS + Cert AWS API Keys Confidentiality TLS TLS Protocol MQTT HTTP

  31. Strong Thing Identity

  32. Strong Thing Identity X.509 Certificates https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/

  33. Fine Grained Authorisation

  34. AWS IoT

  35. AWS IoT Service Access Data Plane Data Plane Control Plane

  36. Applying Permissions to Thing Management { "Version": "2012-10-17", "Statement": [ { "Sid": ”ManageCerts", "Action": [ "iot:CreateCertificateAndKeys", "iot:CreateCertificateFromCsr", "iot:DescribeCertificate", "iot:UpdateCertificate", "iot:DeleteCertificate", "iot:ListCertificates” ], "Effect": "Allow", { "Resource": "*" "Version": "2012-10-17", } "Statement": [ ] { } "Sid": "RevokeOneThing", "Action": [ "iot:UpdateCertificate" ], "Effect": "Allow", "Resource": "arn:aws:iot:us-east-1:123456972007:cert/d7677b0…SNIP…026d9", "Condition": { "IpAddress": { "aws:SourceIp": "192.168.42.54" } } } ] }

  37. Allowing/Denying Access to MQTT Topics { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:Connect" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "iot:Publish" ], "Resource":[ "arn:aws:iot:us-east-1:123456972007: topic/$aws/things/MyThing/shadow/update"] }, { "Effect":"Allow", "Action":[ "iot:Subscribe", "iot:Receive" ], "Resource":[ "arn:aws:iot:us-east-1:123456972007: topicfilter/$aws/things/MyThing/shadow/*" ] } ] }

  38. Hardware Security (Private Key & Platform Protection)

  39. IoT Gateways

  40. Amtel Zero Touch Secure Provisioning Kit

  41. If you spend a lot of time on securing your IoT applications, you’re not spending time solving problems for your customers.

  42. So don’t build a platform, unless you’re building a platform. In which case, fine, build a platform.

  43. Building ‘Hello World’ (for IoT Developers)

  44. Turns out, developers are creative

  45. Sassy Ping Pong 
 Score Keeper Source: https://www.hackster.io/youngd/ping-pong-showdown-eabaed

  46. Slack-powered Doorbell Source: www.theatlantic.com/notes/2016/07/make- every-week-2-a-silent-slack-powered-doorbell/ 490880/

  47. Emergency 
 Sweet Green Ordering Source: http://www.andrewmcgill.me/2016/08/19/make-every-week-sweetgreen-salad-button.html

  48. Push a button to get directions to the right meal within your budget. (Integrate time of day, weather, Google Directions, Yelp, and Stripe) Source: https://medium.com/@_adeel/nerding-out-with-the-amazon-iot- button-84a6e14b6b28#.ekd5hsnez

  49. How does it work? Invoke a Lambda function Put object in an S3 bucket Insert, Update, Read from a DynamoDB table AWS IoT Publish to an SNS Topic 
 or Endpoint Publish to a Kinesis stream Kinesis Firehose > Redshift Republish to AWS IoT

  50. But wait, I live in Europe and I want to do this. Right now!

  51. HARDWARE YOU WILL (& MIGHT) NEED • A Raspberry Pi 
 • Electronics Kit • Try the SunFounder 37 modules Sensor Kit v2.0 for Raspberry Pi 3, 2, Model B+ with 40-Pin GPIO Extension Board & Jump Wires • http://www.amazon.co.uk/dp/B014PF05ZA • Example tutorial • Raspberry Pi Sense Hat (optional fun) • https://www.raspberrypi.org/products/sense-hat/

  52. SETTING UP FOR GPIO/SENSE HAT Your own electronics/sensor build C (for embedded C) http://wiringpi.com Python Wrapper Module for WiringPI https://github.com/WiringPi/WiringPi-Python For the Sense Hat Python Module https://github.com/RPi-Distro/python-sense-hat

  53. SETTING UP FOR AWS IOT Use the AWS Console to create your device Download the required crypto materials & save the C header file contents with your endpoint, cert, and key details Download & set up your chosen AWS IoT SDK Get them at : https://aws.amazon.com/iot/sdk/ Building the C SDK on the Raspberry Pi requires the CppUTest library from: https://github.com/cpputest/cpputest/releases/tag/v3.6 Get started with the sample applications that come with the AWS SDKs

  54. EXAMPLES & DEMOS Emulating the AWS IoT Button (C++) https://github.com/ianmas-aws/iot-button-emulator Controlling the Sense Hat via AWS IoT Device Shadow (Python) https://github.com/ianmas-aws/PiPyIoT

  55. Go Build, Have Fun Ian Massingham Technology Evangelist, AWS IanMmmm

  56. 1.

  57. 2.

  58. 2.

  59. 3.

  60. 4.

  61. Alert Someone : AWS IoT to AWS Lambda to SNS AWS IoT Rules Engine Lambda Function SNS Topic Private Key Execution Rule Policy Action Permission Event Policy SDK & Certificate Role Source Button AWS IoT SMS or Email Rule: “Select * from ‘iotbutton/+’ Function SNS Topic Subscription AWS Services

  62. Count items or Track Usage: AWS IoT to DynamoDB to Dashboard Rules Engine Lambda Function Dashboard DynamoDB Private Key Rule Policy Action Permission Event Execution Policy SDK & Certificate Source Role Button AWS IoT S3 Website Rule: “Select * from ‘iotbutton/+’ Function API Gateway DynamoDB AWS Services

Recommend


More recommend