I have to admit upfront that Ive never been enamored of the One Laptop Per Child project. I think computers are way down the list of assistance needed in the countries targeted by this program. Still, some very smart people have put a lot of sincere, hard work into it, and its always interesting to see a whole new architecture planned.
Im not sure how much actual work has been done so far on security, but a lot of design specifying has been. The "Bitfrost" specification (click here for a short summary) by Ivan Krstić, is the main document describing the security philosophy and strategy for the OLPC. Its a great read and not really all that long.
The key philosophy is one that is not especially controversial these days, especially when dealing with children: "... we will ship and enable by default a stringent policy thats appropriate even for the youngest user, and which delivers the strongest available protections. However, we will 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."
eWEEK test-drove the $100 laptops interface.
Click hereto see what it looks like.
Even Windows attempts to do this to a degree, although systems like Windows and OS X are burdened, compared with OLPC, with an installed base and existing applications. They have to take such things into account when creating new security restrictions. But what OLPC creates is a new base set of rules for all development, although of course a lot of existing Linux code will be moved over to OLPC in short order.
OLPC may want to restrict users by default, but it also wants to encourage them to work beyond the restrictions: "... because we subscribe to constructionist learning theories, we want to encourage children to all eventually progress to this level of a more sophisticated user who takes greater liberties with her machine." As a necessary precaution for such users, it goes on to describe (in very vague terms) a system for system recovery and data backup.
It seems to me that the scenarios described by Krstić place a great burden on what Ill call, for lack of a better term, IT support for the schools in which these PCs will reside. The plans also have insufficient provision for social engineering attacks.
A good part of Bitfrost is devoted to a scheme to combat theft and tampering that resembles—and this is really ironic—Windows Product Activation. Its not about copy protection, but the similarities are out there in the open. Each system has a unique identifier flashed into it, and the distribution system will keep track of which system codes were shipped through authorities in each country receiving the system. The systems are not usable until they are activated through a local activation server set up by (probably) the school. When the notebooks are turned on, they look on Wi-Fi for the activation server, or they can be activated manually via the keyboard.
For some countries, the authority in charge of distributing the OLPCs generates a list of activation codes for the notebook batches for each school, and the codes are put on a USB drive. At the school this drive is plugged into a server provided by OLPC. They can also use any other computer running the right software, including an OLPC, which then becomes the activation server. Theres a lot more to activation. Its also involved with the generation of each childs "digital identity," which is used for authentication.
Back to privilege-based security, the model depends on applications to define the privileges needed and to stick to those requested privileges. When an application attempts to perform an action not permitted by its initially requested permissions, it fails. Bitfrost is also adamant that it fail simply, saying, in effect, "No, you cant do that." They reject the Vista model of allowing a one-time permission fix. Instead, if exceptions must be made, they send users to the oft vaguely mentioned "graphical interface," which seems to be a permissions administration program.
This is a perfectly good model, as far as it goes. The Bitfrost spec shows the authors Unix-ish bias for simple programs that do simple things: They give the example of Windows Solitaire, which has no need to read and write files. And yet, under Windows it has the ability to do whatever the logged-in user can do (Windows is actually capable of process-level privileges, but its an underused facility). So the idea for OLPC is that if a program asks to do something for which it has permission, this may be because it has become compromised, through an overflow perhaps, and the operation should be denied.