Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

The Future of Trusted Linux Computing

Posted by Zonk on Fri Oct 19, 2007 08:25 AM
from the lock-down-that-penguin dept.
ttttt writes "MadPenguin.org tackles the idea of Trusted Computing in its latest column. According to author Matt Hartley, the idea of TC is quite reasonable; offering a locked-down environment offers several advantages to system administrators with possibly troublesome users. 'With the absence of proprietary code in the mix users will find themselves more inclined to trust their own administrators to make the best choices ... And so long as any controlled environment is left with checks and balances [like] the option for withdrawal should a school or business wish to opt out, then more power to those who want a closed off TC in an open source world." LWN.net has an older but slightly more balanced look at the TC approach.
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by jonwil (467024) on Friday October 19 2007, @08:29AM (#21040339)
    There is nothing wrong with hardware assisted security if the owner controls all the keys and nothing can touch the trusted hardware without the owner specifically installing it (i.e. logging in as root/administrator and changing things).

    Trusted Computing is only bad if the owner of the hardware does not have control over the software on the machine, the hardware keys etc.
    • Err...

      I would say that the owner should be allowed to do anything he likes provided that he cannot fake the keychain.

      Example in a pre-baked trusted environment when accessing resource A I sign up with a chain which shows that it is done by me, through software X on kernel Y and hardware Z.

      I should not be allowed to fake kernel Y, but there should be nothing to prevent me from installing an alternative signed kernel Y1. Similarly, I should be able to run Y on Z1 or X1 on Y as long as the chain is correctly r
        • by arivanov (12034) on Friday October 19 2007, @09:45AM (#21041587) Homepage

          Excuse me but how exactly do I get my linux kernel i compiled myself signed?

          SelfSign it. It is not the fact that it signed, it is who sign it which matters. From there on an access request goes down the chain with everyone signing it. The access control for A may like your selfsigned kernel. Similarly, it may not and it will invalidate everything down from it as untrusted. It is A-s "owner" choice.

          And if you are talking about DRM for media, forget it, it is not here to stay.

          You have mistaken me for someone who gives a fuck about signed MP3s. Now a document sitting on a corporate CMS encrypted individually on every release and with an associtated cert chain for each revision is something I do care about. A lot. A lost laptop in this case no longer means stolen data. The entire problem of document access control also more or less goes away. Same for revision and change control. While it is a hassle it solves quite a few real world problems.

    • Trusted Computing is only bad if the owner of the hardware does not have control over the software on the machine, the hardware keys etc.

      It's not always bad even then. It depends who the owner of the machine is. If the owner is someone who is easy to socially engineer (90% of users, I'm sure -- Come look at the dancing bears!), then a behemoth corporation is in effect the system administrator for all those people, and locking down machines by allowing only signed applications can make sense. Most people

    • Re: (Score:2, Informative)

      by Anonymous Coward

      Trusted Computing is only bad if the owner of the hardware does not have control over the software on the machine, the hardware keys etc.

      The only problem is that the whole point of Trusted Computing is to keep the keys used to attest to the state of the PCR completely unavailable to the user. Read the spec: https://www.trustedcomputinggroup.org/specs/TPM/ [trustedcom...ggroup.org]

      • The current "trusted" computing solutions would restrict the administrator too, because the system trusts some key-issuing authority instead of it's legitimate owner.

        This isn't correct.

        The only use of the third party-issued certificate is for remote attestation, where the computer proves that it has a trusted computing module. You can use that capability to build highly-secure remote control, but that's entirely a function of what application software you layer on top, it's not inherent in TC.

      • The authority is there for the same purposes certificate authorities are there on the itnernet right now: as an independent trusted 3rd party to validate keys. That's it. If a computer with a TPM wishes to prove to someone that it is running the software it says it is, you can trust it because the authority says the key it's using is valid. How does this limit what an administrator can do? If anything, it increases what an administrator can do. Now people will trust that said administrator is running a
  • Huh? (Score:2, Insightful)

    With the absence of proprietary code in the mix users will find themselves more inclined to trust their own administrators to make the best choices


    Proof of this statement?
  • Or are the users getting their CPUs' source code and recompile them? Or at least call their LinCPUx fans to do it for them?

    Trusted Computing requires trusting the CPU manufacturer in the first place. And in this world, where the telcos have disclosed our conversations to the govt without us finding out but several years later, can we really trust that the government hasn't pressured the CPU makers to add a backdoor here and there?

    Trusted Computing is practically closed, and incompatible with the spirit of Open Source/Free Software. Ergo, Trusted Computing cannot be trusted. Sorry.
    • wire your own computer out out of logic gates [win.tue.nl]!
    • As others have commented, the gentleman in the article is using TC in a way that isn't the same as we have come to know it. It seems like he's talking about your admin having root access on your box, rather than the DRM controls. Since he's speaking about the former, this really isn't anything new. Most business users don't have admin access to their own PCs. This is standard practice.

      In principle, there is nothing wrong with TC, so long as the owner of the PC has the private keys. But this scenario is
    • Trusted Computing requires trusting the CPU manufacturer in the first place.

      Actually, TC has almost nothing to do with the CPU. The TC Trusted Platform Module (TPM) is a separate device that is just another peripheral. Most implementations sit on the USB bus.

      Trusted Computing is practically closed, and incompatible with the spirit of Open Source/Free Software. Ergo, Trusted Computing cannot be trusted. Sorry.

      Not true. TC is an open specification, and can be used to implement all sorts of different security policies. The TPM is just a peripheral that provides three services:

      • Hashing of data sent to it. Coupled with TC-aware BIOS this can be used to construct a hash that represents the boot state -- essentially a hash of a
    • I don't fear this too much. Suppose this actually happens, i.e. one CPU manufacturer sells CPUs with a "backdoor". Whatever this may be, it allows some level of remote control over the PC.

      This is almost certainly discovered. Let's suppose we can't choose for the competitor, because they're in a big conspiracy.

      Making CPUs isn't that hard. It's making them the fastest and the cheapest that's hard. There are open source processor designs available, like the LEON core [wikipedia.org]. There are lots of producers of FPGAs [wikipedia.org]
  • by amigabill (146897) on Friday October 19 2007, @08:53AM (#21040691)
    With the absence of proprietary code in the mix users will find themselves more inclined to trust their own administrators to make the best choices

    Sorry, but I think that's putting your words into everyone else's mouths. Or fingertips, or whatever. The vast majority not only don't have this opinion about open vs proprietary code affecting how much they trust the choices their admins make, they also wouldn't have a freakin' clue as to what you're going on about in that sentence. The vast majority don't know what open-source is, how it differs from proprietary source, they don't know any reason why they'd care either way, and they'd probably give you a pretty funny look for attributing this philosophy to them.

    I like Linux and open-source, and have an appreciation for it. But I don't trust my admin at work more when he talks about Linux than when he's talking about Solaris. It's his job to make the best choices of any and all products available, and I trust him to choose whichever is most appropriate for our company, even if he feels that happens to be a proprietary product. It's not my place to impose on him to only ever choose open-source, and there's cases in our work where open-source offerings are less ideal.
  • Deception (Score:4, Insightful)

    by IgnoramusMaximus (692000) on Friday October 19 2007, @09:16AM (#21041045)
    These sorts of propaganda pieces have only one purpose: to sneak one past us. Trusted Computing (as presently defined by the corporate founders of the TC Consortium) has two major purposes which are deadly to all things "open":
    • To make sure that the computer can be trusted by a "contents owner" thus precluding the owner of the computer itself from being able to trust it
    • To allow for so-called "remote atestation" which has the effect of 3rd parties (banks and the like) to be able to trust the computer, again to the exclusion of its owner. The additional effect of this is that banks and other online entities will be able to ensure that only Windows systems, with "approved" apps are used. No spoofing of user-agent tags anymore, end of Linux use in most of the commercial Internet.

    In short, this article aims to lure the unwary into gullible acceptance of TC with an illusion of completely deceitfully presented and impractical (no one except the mega-corps will ever get the access to the main TPM keys) applications.

  • than having proper permissions set up on a machine and doing a lockdown like what's built in to Gnome? Having proper permissions prevents people from installing shit and running programs that they're not supposed to. Using Gnome's lockdown feature prevents them from fucking up their DE.
  • In corporate networks, this will just lock down your PC a little more than it already is. Nothing to see here, move on please. It is in the home this shit gets interesting. Do you want your ISP, and possibly MS, to rule your PC? For the typical /. reader, the answer is a clear NO. But what about grandma? Imagine your ISP offering 2 kinds of subscription: a normal, "free" one and a "protected" one. The protected one is firewalled (or at least NAT-ed) at the ISP, with just "sensible" traffic allowed, l
  • by Zigurd (3528) on Friday October 19 2007, @10:07AM (#21041987) Homepage
    Trusting "trusted" computing requires trusting hardware makers that can insert exploits. Trusted computing is therefore of limited value to end-users in a world where vendors and service providers are routinely leaned on to allow surveillance back doors.

    If you have applications that you need to secure, in order to prevent, for example, misuse of tax filings or medical records, you can do it using Web applications, or other thin client technologies combined with physical security of client computers. There is nothing that can guarantee stopping someone copying data manually from a screen display and smuggling it out of an office, so there are practical limits to securing data beyond which additional technology is pointless.

    There are some theoretical cases where trusted computing could benefit individuals. But, in practice, it's all about someone else trusting your hardware to rat you out. Most of the money flowing in to trusted computing comes from those kinds of uses. "Trusted computing" has rightly earned distrust.
  • Trusted computing also enables a real market in CPU time. You can sell your spare processor cycles since the trusted machine can attest to the fact that this really was the result of the code you sent out. Similarly to have software agents that run on unknown people's servers this would be necessary.

    It would also be useful to implement true ecash schemes and in allowing true p2p based virtual worlds/games with safegaurds against cheating.

    In short the technology offers a lot more promise than mere security
    • Re: (Score:3, Interesting)

      Yes, there are certainly benefits. I changed my mind about TC when I needed my own machine to boot up in a trusted state, so that I could be sure that it was safe for me to unlock my encrypted filesystems without the keys being stolen by a trojan. Without a TPM, the only way to do this is to boot from removable media, since an unencrypted kernel on disk could be modified by an attacker. But a TPM could be used to store a key-unlocking-key that would only be available to kernels with my digital signature. Un
  • by SiliconEntity (448450) on Friday October 19 2007, @11:09AM (#21043217)
    Unfortunately there are several DIFFERENT, INCOMPATIBLE concepts being bandied about under the name Trusted Computing. This new "Trusted Computing Project" took on that name seemingly without being aware that there was substantial work already under way on a different concept with the same name.

    Perhaps to try to remedy the confusion, we can distinguish between TC as proposed by the Trusted Computing Group [trustedcom...ggroup.org] and other forms of TC. The TCG is an industry consortium with Microsoft, Intel, HP etc., dating back several years, originally called TCPA. Their proposal has always been controversial but IMO misunderstood.

    TCG's flavor of TC is fundamentally open. I would call it Open Trusted Computing, OTC. It does not lock down your computer or try to prevent anything from running. It most emphatically does NOT "only run signed code" despite what has been falsely claimed for years. What it does do is allow the computer to provide trustworthy, reliable reports about the software that is running. These reports (called "attestations") might indicate a hash of the software, or perhaps a key that signed the software, or perhaps other properties or characteristics of the software, such as that it is sandboxed. All these details are left up to the OS, and that part of the technology is still in development.

    Open Trusted Computing runs any software you like, but gives the software the ability to make these attestations that are cryptographically signed by a hardware-protected key and which cannot be forged. Bogus software can't masquerade as something other than it is. Virus-infected software can't claim to be clean. Hacked software can't claim to be the original. You have trustworthy identification of software and/or its properties. This allows you to do many things that readers might consider either good or bad. You could vote online and the vote server could make sure your voting client wasn't infected. You can play online games and make sure the peers are not running cheat programs. And yes, the iTunes Music Store could make sure it was only downloading to a legitimate iTunes client that would follow the DRM rules. It's good and bad, but the point is that it is open and you can still use your computer for whatever you want.

    This is in contrast to some other projects which may or may not call themselves TC but which are focused on locking down the computer and limiting what you can run. The most familiar example is cell phones. They're actually computers but you generally can't run whatever you want. The iPhone is the most recent controversial example. Now they are going to relax the rules but apparently it will still only run signed software. This new "Trusted Computing Project" is the same idea, it will limit what software can run. Rumors claim that the next version of Apple's OS X will also have some features along these lines, that code which is not signed may have to run in sandboxes and have restrictions.

    This general approach I would call Closed Trusted Computing, CTC. It has many problematic aspects, most generally that the manufacturer and not the user decides which software to trust. Your system comes with a list of built-in keys that limit what software can be installed and run with full privileges. At best you can install more software but it is not a first-class citizen of your computer and runs with limitations. Closed Trusted Computing takes decisions out of your hands.

    But Open Trusted Computing as defined by the TCG is different. It lets you run any software you want and makes all of its functionality equally available to anyone. P2P software, open-source software, anything can take full advantage of its functionality. You could even have a fully open-source DRM implementation that used OTC technology: DRM code that you could even compile and build yourself and use to download high-value content. You would not be able to steal content downloaded by software you had built yourself. And you could be sure there were no back doors,
    • by MyLongNickName (822545) on Friday October 19 2007, @08:32AM (#21040387) Journal
      But Linux and most Linux programs are already more "trusted" then Windows can ever be. From being open source, how can you not trust it?

      Did you even read the summary? Or were you just going for first post?

      This is about locking down the workstation so that users can't monkey around. I do not care how well the code is written, a malicious user can create a security issue if he/she has the ability to do so.
      • Which is why if your that paranoid, you look at the source yourself and compile it from that source, its not that hard and there is no way that you somehow got code you didn't want. If you overlooked somthing that is your fault, you compiled it, you looked over the source, thats something you can't do in the Windows world with stealth updates and the like
        • Read it again, you're not getting it. The issue is whether you can trust the compiler to produce machine code that corresponds to your source code.
        • You didn't evevn read the quote? The only way to bypass this is to hand build the compiler in binary. You won't *EVER* see the attack because it's in the compiler's binary, and the compiler puts it in the binary of any compiler it compiles - even if it is not in the source of the compiler it compiles.

          Good luck with that.
          • How does the bugged compiler binary recognize the fact that it is compiling the source to a compiler?

            In Thompson's case, he had it scan the source for recognizable text.

            Defeat the "am I compiling a compiler?" test of the compiler binary and you are done.

            All you need is a source code obfuscator. Randomize variable/function/file names, and insert red-herring calling sequences and recompile the source to the compiler to obtain a non-bugged compiler binary.

            Writing a source code obfuscator (capable of defeating
            • simple - one of the fields in computers is pattern recognition. Compilers can follow patterns as well. If one is trained or programmed to detect certain code or binary elements commonly found in compilers, then it can affect more than one compiler.

              I'm not saying it's easy, I'm just saying it's possible.
              • If you knew exactly how my obfuscator worked, you could probably write a compiler detector to defeat it. However, if I knew how your compiler detector worked, I could write an obfuscator to defeat that. The cycle could then repeat.

                Which activity, though, is eaiser to do? I don't know how to prove it, but I think obfuscation is far eaiser than detection.

                As the Anonymous Coward replying to me pointed out, writing a program that can always detect when another program is a compiler is as hard as detecting wh
                • A detector would definetly be harder than an obtusificator. But look how that worked for MS and security.

                  100% success may be virtually impossible, but 90% is probably significantly easier, and nearly as dangerous.

        • Read the GP post again. Carefully. You have the source, Luke -- and, on the basis of your inspection, you missed the second-order instance of the problem of Trusting Trust.

          (I don't know if the GP meant his or her post to be a direct attack on the frequent comment that "well, you have the source and can inspect it, after all", but if he or she did, congrats.)
      • Ha, you're the first person I've heard mention this idea since the early '80s! Here's another similarly old, interesting factoid I've heard about the C compiler: The ASCII character set is no longer defined anywhere in the C compiler source code (which is written in C). In other words, '&' compiles to decimal 37 only because existing binary compilers know how to translate the '&' character constant.
      • Re: (Score:3, Interesting)

        A sufficiently motivated whatnow?
        • Re:O RLY? (Score:4, Insightful)

          by YU Nicks NE Way (129084) on Friday October 19 2007, @10:07AM (#21041973)
          Either a wanker or an extremely clever commenter on the true value of human inspection. I suspect the poster was a wanker, but, oh, my, do I hope that he or she was extremely clever.
    • I thought the same thing when I first read it. However, it is entirely possible that there are simply two different definitions for the same phrase. Anyone with a better insight on this?
    • Re: (Score:3, Informative)

      You do not understand trusted computing. It is not about locking down your system.

      It is a common fallacy that the primary goal of trusted computing is to enable DRM so the movie studios/RIAA controls your computer. This is simply not true. Trusted computing provides methods by which you, the owner and administrator of your computer, can KNOW, by having a chain of trust that is anchored by keys securely stored on a TPM chip soldered to the motherboard, that the software and hardware in your system has

      • Think e-commerce where you can verify the other system and it can verify yours to make sure neither end has been compromised prior to making a transaction.

        I'm thinking about it, and I don't like it. I can do all my ecommerce today with a free and open system. If my bank demanded I had my OS/browser signed by some certificate authority I couldn't do that. I can't think of any use of this technology that doesn't hurt the software hobbyist.
      • Yes, there are good uses and bad uses. The technology can certainly be put to work for the user's benefit. Indeed, most digital rights management is altruistic in some sense, since it prevents the user from accidentally infringing copyright and perhaps even committing a crime, which they surely would not want to do.

        The fundamental argument is not whether good or bad policies are possible, but about freedom and whether you have control over your own computer. If doing e-commerce, can I program my computer
        • If doing e-commerce, can I program my computer to lie and send back a response saying it is not tampered with even when I have changed the software? If I cannot do this, then I no longer have control over the computer and it is no longer my computer.

          If you *CAN* do what you describe, then your system cannot and should not be trusted in a trusted computing transaction. Providing a provable, secure chain of trust is the fundamental reason for having a TC base. If you can arbitrarily corrupt this chain by "programming your computer to lie", then all bets are off and the trust model is irrevocably broken.

          Perhaps the e-commerce use case is not the best example. Perhaps TC will never be acceptable on personal computers for general purpose uses. How

    • Re: (Score:3, Informative)

      No, "trusted computing" means that hardware can guarantee the integrity of the environment. For example, I'd like to use TPM chip in my Thinkpad to guarantee that my machine will boot only kernels signed with MY key. Also, I very much like the hardware keyring.

      Trusted computing is only a problem when YOU are not the owner of the machine and don't have the full control over the TPM module on a new computer (of course, once TPM is set up - it shouldn't be possible to change it without owner's keys).
      • Trusted computing is only a problem when YOU are not the owner of the machine

        i.e. when you're using services over a network. What happens when microsoft pushes their TPM out and people get used to serving pages only to trusted peers? You thought "this site only works in IE" was bad? Try "this site is cryptographically impossible to read without a full trusted IE/windows system" And it's done all in the name of security.
        • MS has already done it with Vista x64 - it doesn't allow you to install unsigned drivers. TPM will also allow them to be sure that the kernel is not tampered during the startup. But I don't think it adds too much security for evil DRM schemes.

          But personally, I'd like to have the same capability to be sure my system is not tampered with by NSA when they examine my laptop during in airport :)
      • ... not to mention relatively clueless about encryption principles. Sorry if the following questions are glaringly obvious.

        How does it work? How will it affect my machine if enabled (i.e. will I notice?)? Could an OEM (I hear Microsoft is distributing PCs nowadays) theoretically set up the TPM to lock down a system pre-purchase? What happens when the TPM blocks something/notices a different checksum?
        • by Cyberax (705495) on Friday October 19 2007, @10:03AM (#21041899)
          TPM in Thinkpads allows stores private/public keys in a secure hardware storage.

          The kernel is signed and the hardware bootloader checks that the signature is valid (using TPM). So we can at least guarantee that the system is in consistent state during kernel loading. Later we can use numerous methods to control kernel integrity (SELinux, AppArmour, etc.).

          Theoretically, Microsoft can make you to use TPM to validate their kernel during booting (because tainted kernel can be used to circumvent DRM).

          So we just need to be able to turn off the TPM chip if it's not required.
      • Trusted computing is only a problem when YOU are not the owner of the machine and don't have the full control over the TPM module

        You mean like, all the time? Because you'll never know the TPM root key, so if there's any TPM'd operating system/application/content you'd like to use, there's no off switch. For building a secure network you just need things signed with your private key telling your master computer, which trusts your key. There's absolutely no need to build any PKI. Instead we got a global "trusted" root that makes sure the software can trust the host, not that the host can trust the software. It's the ultimate in usage

        • Why? I DO know my root key to TPM - I can view all stored keys and manipulate them. After all, it's not more than a hardware keystore and some validating code.

          The goal of TPM is to build a secure HOST. I.e. the one which I can trust to be secure during all stages (for example, TPM can guarantee that a malicious hacker has not installed a backdoor into my kernel).