Slashdot Mirror


One Laptop Per Child Security Spec Released

juwiley writes "The One Laptop Per Child project has released information about its advanced security platform called Bitfrost. Could children with a $100 laptop end up with a better security infrastructure than executives using $5000 laptops powered by Vista? 'What's deeply troubling — almost unbelievable — about [Unix style permissions] is that they've remained virtually the only real control mechanism that a user has over her personal documents today...In 1971, this might have been acceptable...We have set out to create a system that is both drastically more secure and provides drastically more usable security than any mainstream system currently on the market.'"

15 of 253 comments (clear)

  1. Drastic? by geomon · · Score: 3, Insightful

    "drastically more secure and provides drastically more usable security"

    Drastic?

    I'd be willing to work toward "acceptable" or "workable".

    The problem with "drastic" is that it often envisions high frontier technologies when all that is needed is a really well thought out plan.

    If the UNIX system worked well for nearly 40 years, and was fairly simple to implement, then another 40 years *might* be had with something equally simple.

    --
    "Rocky Rococo, at your cervix!"
    1. Re:Drastic? by Harmonious+Botch · · Score: 3, Insightful

      I'll offer my 'well thought out plan': Real security only happens when there is a button ( with a missle-launch-type cover ) on the side of my computer, so that some tracks of disk and some banks of memory cannot be written to unless that button is pushed.

    2. Re:Drastic? by 4e617474 · · Score: 3, Insightful

      I just had to su change the permissions on a config file so I could change the settings on vegastrike to steer with the mouse. With your model (yes, I detected the humor) developers would design around the "they can just hit the button" principle, even when they are writing things to "just work" remotely. Security will happen when people learn:

      1. This is a computer. You need to know how it works and what you're doing as you use it. Alternatively, you can wash dishes for a living and go outside and play when nothing is on TV.
      2. Some people are your friends and give you a bunch of stuff for nothing. Some people are not your friends, but pretend to be.
      3. Even your friends do not need to borrow your identity.
      --
      Finally modding someone offtopic when they rant about what "Begging the Question" means: priceless.
  2. Sand dunes by Space+cowboy · · Score: 3, Insightful

    The idea of putting every application into a virtual machine is a good one, but the truism is that security *is* a process, not a checkbox on a feature-list. There is (and always will be) an inverse relationship between security and usability - the more of one, the less of the other. Compartmentalising the applications in such a draconian fashion would appear to be heavily leaning towards the security side, and not the usability side of the argument.

    The article talks about the picture-viewer not being able to access the web. What if I *want* the picture-viewer to access the web ?

    I tihnk I take issue with 99% of applications not needing interaction. If that's true (and I doubt it to be honest), I think that's a failing of software today, not a goal to be strived for. Most of the apps I use daily require web/internet access. I think that's only going to increase over time.

    Simon

    --
    Physicists get Hadrons!
  3. very sceptical by Tom · · Score: 5, Insightful

    Security is a lot like crypto: Designing your own system is a recipe for desaster. Security is hard, and aside from the conceptual stages, small failures in implementation can destroy the best concept.

    So anyone coming up with a "new and improved" security concept is selling an untested solution. Because security is always tested in the field, never (at least never properly) in the lab.

    And yes, Unix permissions are primitive. But they work, they are reliable and we know their shortcomings and limitations.

    --
    Assorted stuff I do sometimes: Lemuria.org
    1. Re:very sceptical by swillden · · Score: 5, Insightful

      So anyone coming up with a "new and improved" security concept is selling an untested solution.

      True, but inapplicable in this case. For two reasons.

      1. There are no new concepts in the XO security model.
      2. The traditional security model (used by Unix and Windows) cannot work for the OLPC, so something different is required.

      How can we have a new security model, but no new security model concepts? What's new is that ideas which have been reserved for high-security systems are being applied to a system that large numbers of people will actually use.

      The core ideas are:

      • Sandboxing, aka Mandatory Access Controls. Not only have research systems built on this concept existed for years, but we also have a decade of practical experience with Java sandboxes, and several years of extensive experience with MAC on Linux (SELinux). Specialized high-security operating systems have employed MAC for decades.
      • Chroot jails. Most sysadmins who are serious about security run all Internet-facing applications in jails, to limit the damage that can be done if the app is exploited. The only difference here is that the concept is being applied to all apps.
      • Digital signatures as a way to authorize applications to break out of their constrained (sandboxed and jailed) environments.
      • Allowing users to authorize applications to break out of their constrained environments.
      • Security by default. The system is secure out of the box.

      The only innovation here is in the decision to apply these known security models/tools to all applications on the OLPC. There is some good thought that has gone into determining what kinds of restrictions can be placed on apps, and the bit about constraining the permissions that apps can request during installation (e.g. either network or file access, not both -- without digital signature or explicit user authorization) is clever, but there's nothing fundamentally new.

      But the issue is somewhat deeper than that, as well.

      It's important to realize that the traditional security model does not work for OLPC machines. Why? Because (1) they're specifically designed as computers whose software is highly mutable and (2) they're specifically designed to live as part of a network. The traditional model works great if you can thoroughly prove the integrity of the software on the system and then lock it down -- but you can't do that on machines that are constantly connected to others and always exchanging bits of code and data.

      You can try, of course. And we do. And we've seen just how well it works. Massive botnets of zombies is the result as is high-powered machines dedicating a significant portion of their processing power to defending themselves against malicious code -- and failing.

      The traditional model is fundamentally broken in the networked age, and the OLPC machines are not only networked, but designed to facilitate every user becoming an at least minimally-competent programmer and to encourage widespread, free sharing of user-developed code.

      New problems require new solutions. In this case, it appears that we already had all of the tools required available, they just weren't widely used.

      My prediction: The XO security model will be an outstanding success story. It'll have its problems, and it'll have to be tweaked in various ways, but the basic ideas are so good, and so fundamentally simple, that it will work very well. Application authors will be able to achieve what they want, and security will be generally quite good.

      I also think that the OLPC project is one of the most amazing stories in the history of computing. It's giving a bunch of brilliant people the opportunity to completely re-imagine computing, and they're doing it with a laser focus on the needs of the people who use the computers, rather than the needs of those who sell the computers and the software.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  4. The one major difference to MS "trusted" computing by gd23ka · · Score: 5, Insightful

    --"No lockdown. Though in their default settings, the laptop's security
      systems may impose various prohibitions on the user's actions, there
    must exist a way for these security systems to be disabled. When that is
    the case, the machine will grant the user complete control."

    That is the one of the key differences between Bitfrost and Microsoft
    "trusted computing" schemes: you as owner of the box can get around it.

  5. Re:chmod, chown, etc.? by pla · · Score: 5, Insightful

    I wonder if the author's used chmod, chown, etc.? What's the essential difference between Unix style permissions and other permission systems?

    Well, Windows uses the ACL system of permissions it stole from VMS. It actually does provide more control (that you don't need 99.9% of the time), such as multiple groups having different levels of permissions.

    Increasingly complex file-level security does come with one major drawback, however... I can look at a file under Linux and instantly tell (possibly with a quick check of the members of a single group) who has what access to it. Under Windows, good luck with that. XP actually has an advanced security tab, "Effective Permissions", solely for the purpose of testing what access a given user has to a file or directory. Short of that tool, some of the more complex possible configurations (which don't take any sort of unrealistically contrived setups to get, such as a combination of local and domain groups having both inherited and locally set permissions) would leave you feeling very uncomfortable guessing who has access to a given file. And of course, that tab only lets you check one user or group at a time, so it proves utterly useless in answering the simple question "Who can overwrite this file".

    In fairness, you could write a script to test every user and group against a given set of files and directories and generate a report off the output, but seriously, would anyone really consider that "better" than "0750, yup, that looks good"?

  6. It's not hard to do this. Just not compatible. by Animats · · Score: 4, Insightful

    It's not hard to do this. Several groups had systems this tight working back in the 1980s. For that matter, Multics had it right in the late 1960s. Linux has it now, in NSA SELinux.

    It breaks existing applications, of course. The OLPC people have a huge advantage - they don't care about existing applications. They can say to application developers, "these are the security constraints - design to them." That's a huge win.

    Somebody should have done this by now for phones and palmtops, but, unfortunately, those things started out so underpowered they barely had an operating system. So they have their own legacy problems.

  7. Re:One Desktop per Village would be a better start by Goaway · · Score: 5, Insightful

    I can't help but notice that the people working on this "too ambitious" project are actually out there doing it, while you are... posting on Slashdot?

  8. Two Cents by kahrytan · · Score: 3, Insightful


    I've got two things to say.

    1. Bring these security additions to public linux distributions.

    2. Would you (and the rest of /.ers) be willing to purchase 1 of these laptops for $200? I say $200 so the extra $100 goes toward a laptop for a child in third world country.

    --
    \
  9. Re:One Desktop per Village would be a better start by dbIII · · Score: 3, Insightful

    Forget about the theft angle - the surpisingly large rate of mobile phone adoption in the third world shows valuble bits of easily stolen electronics are not all going to suddenly get sold back to westerners. These things are infrastructure and I see them as comparable to the Australian School of the Air run by radio to remote areas since the 1920s. The concept of the possibilites of such a thing is explored in fiction in "The Diamond Age" - connected to the net these things are books with a lot of answers.

  10. It's worse than that, it prevents app partitioning by Morgaine · · Score: 5, Insightful

    >> how am I going to implement this new idea I have for cross-application communication based on shared pipes among apps.

    Actually, it's even worse than your funny (but accurate) comment suggests:

    In the Unix model, applications are often built out of multiple cooperating processes, each of which is isolated into its own address space, with strong barriers between processes enforced by the MMU hardware. This makes each separate part more robust, more comprehensible, and more secure.

    In contrast, when Bitfrost throws away the ability of programs to talk to other programs, it is intrinsically encouraging a monolithic approach to program design, which is a huge step backwards both for security and for complexity management.

    Bitfrost is right to deny free access by programs to a user's filestore objects as an important part of its new security framework, but if the price for that is to disallow strong application factoring and partitioning into separate but communicating processes then the cure may be worse than the disease.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  11. Re:chmod, chown, etc.? by Michael+Woodhams · · Score: 3, Insightful

    Yeah, because right-clicking a file or folder, selecting Properties, then choosing the confusingly labeled Security tab is difficult.

    Too right it was difficult. My WinXP installation decided that a "security" tab was just too confusing so it didn't display it. There was some arcane ritual I needed to perform to enable it. The help files mostly just assumed this ritual had been performed, so they said "click on the security tab and then...", flatly contradicting what I could see (a Properties window with no security tab). There was a lot of frustration before I stumbled on the ritual.

    --
    Quattuor res in hoc mundo sanctae sunt: libri, liberi, libertas et liberalitas.
  12. Linux did clone the Plan 9 feature though by r00t · · Score: 4, Insightful

    Our rfork() is called clone(), or unshare() if you don't need a new thread/process.

    When you want a new namespace, you specify the CLONE_NEWNS flag. (root only, sorry, because of setuid concerns)

    Once you have a new namespace, you can unmount things you don't need. You can do bind mounts, which let you graft directories onto other places. You can use a bind mount to make a read-only copy of something, then unmount the original... all without mucking up processes that aren't part of the same CLONE_NEWNS group. Portions of the filesystem tree can be shared as well, in case you really do want changes to appear to both sides of the CLONE_NEWNS. Access to things can be permanently given up within the CLONE_NEWNS group, making for a rather fine jail that generally beats jail(8) quite severely.

    There are extra goodies for stuff like isolating the view of system time, the view of executing processes, etc.