Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EcoSec

itszero
June 07, 2012

 EcoSec

My thesis defense slides for EcoSec: A thin security layer for interactive programming on WSN.

itszero

June 07, 2012
Tweet

More Decks by itszero

Other Decks in Technology

Transcript

  1. EcoSec: A thin security layer for interactive programming on WSN

    Chien-An “Zero” Cho Directed by Prof. Pai H. Chou
  2. sense> outdoor temp 30 °C query> room occupancy exec >

    A/C to 20 °C for occupied room HVAC Control
  3. • The world is dynamic • To adapt dynamic world,

    macroprogramming is gaining its popularity • How do you secure a dynamic sensor network?
  4. EcoCast/Marionette is a pure runtime environment. Both have no security

    features. This is where EcoSec can be integrated into.
  5. LiteShell is a command console on node. It allows control

    and execute the hex files located on node. EcoSec can also integrated into it as a pre-flight HEX check mechanism.
  6. SenShare/Darjeeling can be seen as secured since the apps are

    sandboxed/virtualized. However, the footprint requirements are even higher and performance is bad.
  7. WirelessHART is de facto protocol for the industry- grade instrument

    comm. It uses AES-128 with various keys to protect end-to-end comm. It does not provide fine-grained ACL.
  8. SpartanRPC is capable of define fine-grained policies. However, it is

    too abstract and high- level (built on nesC). The footprint is also big.
  9. Resources are defined as sensors/memory on the nodes. We’ll use

    an independent server to resolve URI to actual resources, acting like DNS.
  10. How do we define URI for WSN? Note that current

    URI has no concept of transportation.
  11. eco://epl.tw:9002/:RF/ 3F/PCRoom/temp.js? unit=c Last components is RESOURCE URI consists of

    ENDPOINTs and a RESOURCE. if no ENDPOINT specified, assume ANY.
  12. Policies is used to restrict access to resources. Gateway marks

    the sensitive codes and it’ll be verified upon execution on nodes.
  13. Relationships are retained in programming language and also object store.

    All metadata from ancestors will be available and overridable by children.
  14. ecosd_node0 Class: WSNObject::Node UUID: 7e786020-7179-012f-ce09-549a20d0e1e2 Based On: 7e785510-7179-012f-ce08-549a20d0e1e2 Metadata: Tag:

    NTHUCS-3F-PCROOM-00 Path: /3f/pcroom/00 Connections: [0] WSNObject::Connection -SPI-> WSNObject::TemperatureSensor
  15. ecosd_node0 Class: WSNObject::Platform UUID: 7e785510-7179-012f-ce08-549a20d0e1e2 Based On: 00000000-0000-0000-0000-000000000000 Metadata: Platform:

    EPL EcoSD Connections: [0] WSNObject::Connection -Built-In-> WSNObject::Accelerometer EcoSD Platform
  16. EcoSec Server is a HTTP service on the gateway. It

    provides facilities for nodes registration, node lookup and user request signing.
  17. Verb Path Description GET / Server Report GET [WSN Path]

    Object Lookup POST [WSN Path] Object Request / (de)registration POST /sign Sign a request
  18. 0103: MOV 0x80, #0x2 trying to pull high to GPIO

    P0.1 0100: MOV R0, 0x2 0103: MOV 0x80, R0
  19. MOV 0x80, R0 MOV 0x80, R0 MOV 0x18, 1 MOV

    0x19, 0x01 MOV 0x20, 0x03 LCALL ecosec_sentry MOV 0x80, 0x20 RET code stub
  20. Sentry check if the access is allowed. If so, execute

    the original command, or abort execution and reboot.
  21. XDATA CODE SRAM BLK 1 0x0000 0x01FF Host OS EcoSec

    1. map 0x000 ~ 0x01FF to CODE (black region indicates area after memory remap) Mapped: Payload SRAM 2. jump to payload
  22. Function Description void ecosec_init() Init cryptography system of EcoSec bool

    ecosec_verify() Verify if payload is properly signed and authorized bool ecosec_execute() Execute payload securely * To save code/mem size, arguments like PSK, payload are pre-configured at compile-time.
  23. CODE EcoSec Sanitized Code SRAM EPC RSL 1. jump to

    EPC to preserve env. 5. continue execution 2. call sentry to verify access 3. jump back to EPC to run the instruction 4. return to sentry to cleanup
  24. overhead = (α+β) * Ɣ α: size of sensitive instruction

    β: size of code stub = 12 Ɣ: num. of sensitive instructions
  25. latency = Δ + (ε * Ɣ) Δ: RF transmission

    delay ε : execution time latency Ɣ: num. of sensitive instructions
  26. Our current work does not know anything about the payload.

    Integration with compiler allows more advanced optimization and relocation to be done.
  27. 8051 platform is too resource- constrained. We would like to

    explore more algorithms such as One-Way Hashes to be used with EcoSec.
  28. Current server does not do static analysis. We would like

    to distribute some load to server by allowing server to perform a quick scan to pick out those denied access using direct addressing/immd. value.
  29. EcoSec is a novel security framework for the dynamic WSN.

    It’s small, high-performance while providing fine-grained control.
  30. Q&A