For a better understanding of the OLPC approach towards security I read the Bitfrost platform specification. Some of Ivan Krstic’s ideas resemble the DMP’s approach to create a secure environment by setting up Certification and Registration Authorities.
Krstic writes:
The crux of the problem lies in the assumption that any program executing on a system on the user’s behalf should have the exact same abilities and permissions as any other program executing on behalf of the same user.
I agree with Krstic’s approach to enable by default a stringent security policy that is appropriate even for the youngest user, and to provide a simple graphical interface for interested users to disable any of these protections, allowing the user to tailor the security level to match her interest in hacking her machine.
However, for setting up such an infrastructure an environment will be be needed for developers (authors of code) to register new software and authorities to assess and certify the security of the code. It depends on what is considered an “authorized subset of the user’s rights” and who authorizes this subset.
On my MacBook all applications run in user space, but some applications (e.g. OSX software updates) can ask me for root privileges. So Apple’s security policy requires that I grant all rights to Apple in order to have a stable system. Of course I have to trust Apple that they don’t spy on my personal data during a system
software update.
Krstic writes:
As an example, if a program is found attempting to violate a security setting, the user will not be prompted to permit the action; the action will simply be denied. If the user wishes to grant permission for such an action, she can do so through the graphical security center interface.
One difference to the security policy of my MacBook is that per default OLPC will never ask for a password. This is new. A computer which is not constantly opening message boxes asking “can I do this?”…”Do you want that?”… “Enter your password here”… is a real progress.
Children will learn that computers just work without asking stupid questions. They will really “own” their OLPCs. Programs attempting to violate security simply won’t run. Hopefully children will understand that it is not necessary to sign dubious “End User License Agreements (EULA)” for upgrading their devices.
Another advatage is the OLPC’s “system of rights“:
Every program, when first installed, requests certain bundles of rights, for instance “accessing the camera”, or “accessing the internet”. The system keeps track of these rights, and the program is later executed in an environment which makes only the requested resources available. This is implemented by a fully-fledged, container-based virtual machine.
By default, the system denies certain combinations of rights; for instance, a program would not be granted both the right to access the camera and to access the internet. Anybody can write and distribute programs that request allowable right combinations. Programs that require normally unapproved right combinations need a cryptographic signature by some authority. The laptop’s user can use the built-in security panel to grant additional rights to any application.
When a user first installs a piece of software she can see and understand which parts of the system it accesses. Applications are only allowed to execute the functions (e.g. access the network) that are authorized by the OLPC user. Hopefully children will learn that it is not necessary to install applications which require unusual rights settings.
My conclusion is that the OLPC’s you need not sign anything
to use your own machine approach can create a safe environment for free
software and open content.