| 11 | |
| 12 | Updating the code running on Wireless Sensor Network (WSN) nodes is a necessary service, which can be used to remove bugs or to add new functionalities after the sensors have been deployed. |
| 13 | In open, public, untrusted, or even hostile environments, protecting the code update operation against adversarial interference is an essential requirement. Otherwise, an insecure code update may provide an adversary with a backdoor rendering any security mechanism useless, and may even become a serious risk for the owner. |
| 14 | There are mainly three security aspects to be considered in the desing of a Secure Code Update (SCU) mechanism. First, a SCU mechanism shall only allow the load of authentic code images into the nodes' memory. Second, a SCU mechanism must detect the dissemination of a modified or corrupted code image as early as possible. The need is to avoid unnecessary energy consumption due to the propagation of a corrupted image over multiple hops and to the re-transmission of its pages. Finally, a SCU mechanism must keep the secrecy of a code image being disseminated. The need is to prevent eavesdroppers from gaining information on the content of the code image. |
25 | | |
26 | | Appunti: |
27 | | Config files in |
28 | | CONFIG_FILE=HOME_PATH+"/synapse-config.txt"; |
29 | | SECRET_KEYS_FILE=HOME_PATH+"/synapse-secret-keys.xml"; |
30 | | PUBLIC_KEYS_FILE=HOME_PATH+"/synapse-public-keys.bin"; |
31 | | |
32 | | Security bits configured during deployment |
| 28 | We assume that the installation PC is running a '''Linux''' operating system and the [http://docs.tinyos.net/index.php/Getting_started TinyOS-2.x] has been installed and configured properly on it. We skip the installation of TinyOS here and refer to [http://docs.tinyos.net/index.php/Getting_started TinyOS-2.x] if needed. We describe the installation and configuration steps in the following for the [http://www.ubuntu.com/ Ubuntu] operating system. |
| 29 | |
| 30 | These is the structure of the files contained in the SCU software package: |
| 31 | * scu |
| 32 | ** lib: Contains Bouncy Castle java library |
| 33 | ** scu-contrib: Contains developed TinyOS code for Secure Code Update |
| 34 | ** tinyos-2.x: Contains a minimal TinyOS source tree, necessary for compilation and running of the developed software |
| 35 | ** init_variables.sh: Inits environment variables |
| 36 | ** quick_start.sh: Simple script that execute a guided step-by step deployment, followed by a Secure Code Update operation. |
| 37 | |