We will be landing portions of our security system for Update.1. We want to give those of you who are developing activities a heads up as to what is required from you: (1) file-path compliance; (2) a cryptographic signature; and (3) a permissions declaration.
<br><br>1. File-path compliance means that you must ensure your activity does not write to any path outside of that contained in the environment variable SUGAR_ACTIVITY_ROOT; specifically subdirectories called 'data', 'conf' and 'tmp' within the SUGAR_ACTIVITY_ROOT directory. (We are working with the Sugar team to provide helper functions for easily getting those three directory paths for those of you using Python. Until then, please depend on the environment variable directly.)
<br><br>Please note that if you are using the DataStore for your file I/O, you still must write the file somewhere before asking the DataStore to check it in; if you choose a temporary filename that's outside of SUGAR_ACTIVITY_ROOT, you will be non-compliant.
<br><br>File path compliance is a <span style="font-style: italic;">requirement</span> for inclusion in Update.1. Please do your best to make sure you are not writing to paths outside of SUGAR_ACTIVITY_ROOT; we'll try to help you catch any such writes that you miss.
<br><br>2 & 3. We will be posting more details regarding cryptographic signatures and permissions declarations—these will be required in near future. As a summary, when we say signatures, we mean that you as the activity authors will use a set of tools we provide to make
<br>your own keys and sign your activities; the purpose of this is simply to allow secure activity upgrades once they are on the machines.<br>Permission declarations will enumerate which special permissions (camera access? microphone access? non-Tubes network access? etc.)
<br>your activity may need for its normal operation.<br><br>Thank you. Please don't hesitate to send any questions our way.<br><br>regards.<br><br>-walter, ivan, and michael<br><br clear="all"><br>-- <br>Walter Bender
<br>One Laptop per Child<br><a href="http://laptop.org">http://laptop.org</a>