README for Seluge Version 0.1 Authors: Sangwon Hyun, An Liu, Young-Hyun Oh Introduction ------------ Seluge is an efficient, secure, robust, and DoS-resistant code dissemination system. It's an extension to Deluge, an open souce code dissemination system included in TinyOS. Seluge provides security protections for code dissemination, including the integrity protection of code images and resistance to the following three classes of DoS attacks: (1) DoS attacks against signature packets; (2) DoS attacks against code dissemination packets; and (3) DoS attacks against maintenance packets. To the best of our knowledge, these are all the DoS attacks that manipulate code dissemination protocols. How to install -------------- 1. Install tinyos-1.x. 2. Install JDK6.0. 3. Install Sun's javax.comm package. 4. Install Bouncy Castle Provider for JCE. 5. Extract Seluge0.1.zip to /opt/tinyos-1.x/contrib. 6. Setup environment variable CLASSPATH as follows - export CLASSPATH=/opt/tinyos-1.x/contrib/Seluge/tools/java:$CLASSPATH 7. Executing following commands to backup Deluge folders and files. - cd /opt/tinyos-1.x/tos/lib - mv CC2420 CC2420_Original - mv Deluge Deluge_Original - cd /opt/tinyos-1.x/tos/platform/micaz - mv HPLCC2420M.nc HPLCC2420M.nc.backup - cp /opt/tinyos-1.x/contrib/Seluge/tos/platform/micaz/HPLCC2420M.nc ./ - cd /opt/tinyos-1.x/tools/java/net/tinyos - mv deluge deluge_Original 8. Recompile Seluge Java tools - cd /opt/tinyos-1.x/contrib/Seluge/tools/java/net/tinyos/deluge - make clean; make Examples -------- Assume you are using MIB600 programming board and MicaZ sensor node. 1. Install SelugeBasic program to your motes. To enable cluster key, include CKS=1 as follows. - cd /opt/tinyos-1.x/contrib/Seluge/apps/TestSeluge/SelugeBasic - make DEBUG=0 CKS=1 micaz install. eprb, 2. Prepare the program image you will inject into the network. - cd /opt/tinyos-1.x/contrib/Seluge/apps/TestSeluge/Blink - make DEBUG=0 CKS=1 micaz - cp ./build/micaz/tos_image.xml ../Seluge_KeyRepository 3. To inject a program image, you should wait until when your mote finishes the initial phase to set up cluster keys. After finishing the initial phase, the LEDs of your mote will show normal Deluge blinking. - cd /opt/tinyos-1.x/contrib/Seluge/apps/TestSeluge/Seluge_KeyRepository This folder contains all keys required for Seluge. Copy a program image to be injected to this folder. Then execute serial forwarder and deluge Java tools as follows. - java net.tinyos.sf.SerialForwarder -comm network@:10002 & - java net.tinyos.tools.Deluge --inject --tosimage=tos_image.xml --imgnum=1 4. After injecting is done, by pinging your mote you can check if your mote successfully receives a program image or not. - java net.tinyos.tools.Deluge --ping 5. To erase the injected image, execute the following command. - java net.tinyos.tools.Deluge --erase --imgnum=1