Peter Gutmann, firstname.lastname@example.org
Last updated 12 June 2007
Distributed under the Creative Commons license (see Appendix)
(In case you're wondering why the June version of this page suddenly reverted to a much older April-dated copy in early August, there was a problem with backups and all web pages here got rolled back about six months. Unfortunately by then various caches had overwritten the newer copies with the older ones, so it's taken awhile to restore the June version).
In August of this year I gave a talk at a security conference with a rather more up-to-date version of this material. The text here was mostly written nearly a year ago, and predates a number of events such as the appearance of the ATI HD2xxx hardware, about 100-odd MB of Vista updates, and entire stories like the GigE slowdown issue (although that has nothing to do with content protection). In addition numerous images and diagrams don't integrate too well into this text-only writeup (the talk material is in PDF form, which makes it easier to include graphical content). When it's ready for download I'll put up a link here. Stay tuned.
Windows Vista includes an extensive reworking of core OS elements in order to provide content protection for so-called “premium content”, typically HD data from Blu-Ray and HD-DVD sources. Providing this protection incurs considerable costs in terms of system performance, system stability, technical support overhead, and hardware and software cost. These issues affect not only users of Vista but the entire PC industry, since the effects of the protection measures extend to cover all hardware and software that will ever come into contact with Vista, even if it's not used directly with Vista (for example hardware in a Macintosh computer or on a Linux server). This document analyses the cost involved in Vista's content protection, and the collateral damage that this incurs throughout the computer industry.
The Vista Content Protection specification could very well constitute the longest suicide note in history [Note A].
This document looks purely at the cost of the technical portions of Vista's content protection [Note B]. The political issues (under the heading of DRM) have been examined in exhaustive detail elsewhere and won't be commented on further unless it's relevant to the cost analysis. However, one important point to keep in mind when reading this document is that in order to work, Vista's content protection must be able to violate the laws of physics, something that's unlikely to happen no matter how much the content industry wishes that it were possible [Note C]. This conundrum is displayed over and over again in the Windows content-protection requirements, with manufacturers being given no hard-and-fast guidelines but instead being instructed that they need to display as much dedication as possible to the party line. The documentation is peppered with sentences like:
“It is recommended that a graphics manufacturer go beyond the strict letter of the specification and provide additional content-protection features, because this demonstrates their strong intent to protect premium content”.
This is an exceedingly strange way to write technical specifications, but is dictated by the fact that what the spec is trying to achieve is fundamentally impossible. Readers should keep this requirement to display appropriate levels of dedication in mind when reading the following analysis [Note D].
A second point to note is that the term “premium content”, or in more recent statements by Microsoft, “commercial content” (I've used “premium content” throughout this writeup for consistency) goes well beyond the HD-DVD and Blu-Ray examples that I've used above and encompasses not just the obvious definition of “HD content in any form” but even non-HD content, or as Microsoft put it “commercial content generally, independent of resolution”. While premium content is currently still somewhat scarce, in five years' time it'll be hard to find a movie or similar content that isn't HD or similar premium content. So although Microsoft have tried to downplay the perceived impact of Vista's content-protection by stating that it'll only apply when premium/commercial content is present, this conveniently sidesteps the fact that Microsoft hopes that this situation will become universal in the near future. The whole future of Vista's content protection is predicated on this fact, because without near-universal premium content there's no point in having content-protection features in the first place.
Vista's content protection mechanism only allows protected content to be sent over interfaces that also have content-protection facilities built in. Currently the most common high-end audio output interface is S/PDIF (Sony/Philips Digital Interface Format). Most newer audio cards, for example, feature TOSlink digital optical output for high-quality sound reproduction, and even the latest crop of motherboards with integrated audio provide at least coax (and often optical) digital output. Since S/PDIF doesn't provide any content protection, Vista requires that it be disabled when playing protected content [Note E]. In other words if you've sunk a pile of money into a high-end audio setup fed from an S/PDIF digital output, you won't be able to use it with protected content. Instead of hearing premium high-definition audio, you get treated to premium high-definition silence.
Say you've just bought Pink Floyd's “The Dark Side of the Moon”, released as a Super Audio CD (SACD) in its 30th anniversary edition in 2003, and you want to play it under Vista (I'm just using SACD as a representative example of protected audio content because it's a well-known technology, in practice Sony has refused to license it for playback on PCs). Since the S/PDIF link to your amplifier/speakers is regarded as insecure for playing the SA content, Vista would disable it, and you'd end up hearing a performance by Marcel Marceau instead of Pink Floyd.
Similarly, component (YPbPr) video will be disabled by Vista's content protection, so the same applies to a high-end video setup fed from component video. In fact even the most basic composite video out (a.k.a. “TV-out” on video cards) is disabled, at least by nVidia's drivers:
“This feature is no longer supported due to the new Protected Video Path Output Content Protection (PVP-OPM) in Windows Vista.”.
A quick Google search leads to numerous online forums containing howls of outrage at this Windows “feature”, and an iTWire review recommends against nVidia-based media center PCs altogether because of it.
But what if you're lucky enough to have bought a video card that supports HDMI digital video with HDCP content-protection? There's a good chance that you'll have to go out and buy another video card that really does support HDCP, because until quite recently no video card on the market actually supported it even if the vendor's advertising claimed that it did. As the site that first broke the story in their article The Great HDCP Fiasco puts it:
“None of the AGP or PCI-E graphics cards that you can buy today support HDCP […] If you've just spent $1000 on a pair of Radeon X1900 XT graphics cards expecting to be able to playback HD-DVD or Blu-Ray movies at 1920×1080 resolution in the future, you've just wasted your money […] If you just spent $1500 on a pair of 7800GTX 512MB GPUs expecting to be able to play 1920×1080 HD-DVD or Blu-Ray movies in the future, you've just wasted your money”.
(The two devices mentioned above are the premium supposedly-HDCP-enabled cards made by the two major graphics chipset manufacturers ATI and nVidia). ATI was later subject to a class-action lawsuit by its customers over this deception. As late as August of 2006, when Sony announced its Blu-Ray drive for PCs, it had to face the embarrassing fact that its Blu-Ray drive couldn't actually play Blu-Ray disks in HD format:
“Since there are currently no PCs for sale offering graphics chips that support HDCP, this isn't yet possible”.
Only in mid-2007 have the first properly HDMI/HDCP-capable video cards finally started to appear, but even then no-one has been able to identify any Windows system that will actually play HD content in HD quality, in all cases any attempt to do this produced either no output or a message that it was blocked by content protection. Even nVidia's latest and greatest GPU, the G80, can't output 1080p HD video, because once you enable HDCP (which is required by Vista for HD-DVD or BluRay playback), you're limited to 720p resolution. nVidia's older G7x line also has this problem, as does ATI's R5xx. In fact the only GPU that appears to support full-resolution HD playback, requiring dual-link HDMI, is ATI's only-sort-of-released R600. While it's not possible to prove a negative in this manner, it's certainly an indication that potential buyers could be in for a shock when they try and play full HD-quality premium content on their shiny new Vista PC.
The same issue that affects graphics cards also goes for high-resolution LCD monitors. One of the big news items at the 2007 Consumer Electronics Show (CES 2007), the world's premier event for consumer high-tech, was Samsung's 1920×1200 HD-capable 27″ LCD monitor, the Syncmaster 275T, released at a time when everyone else was still shipping 24″ or 25″ monitors as their high-end product [Note F]. The only problem with this amazing HD monitor is that Vista won't display HD content on it because it doesn't consider any of its many input connectors (DVI-D, 15-pin D-Sub, S-Video, and component video, but no HDMI with HDCP) secure enough. So you can do almost anything with this HD monitor except view HD content on it.
If you have even more money to burn, you can go for the largest (conventional) computer monitor made, the Samsung's stupidly large (for a computer monitor) 46″ SyncMaster 460PN. Again though, Vista won't display HD content on it, turning your $4,000 purchase into a still-image picture frame. Oddly enough, this monitor has been advertised as “HDTV ready” by retailers even though there's no HDMI/HDCP input, although in practice the term “HD-ready” has been diluted close to meaninglessness — 10-year-old 14″ CRT monitors have a higher resolution than many “HDTV-ready” TVs being sold today. Someone who works for a large US retail chain has told me that they'll advertise anything that'll run at a higher resolution than standard NTSC/PAL/SECAM as “HD-capable”. Here's an example of an HD-capable PDA, and even a genuine HD-capable cellphone (the mockup using a Nokia phone is particularly amusing) to illustrate where this sort of creative marketing leads. HD-ready cellphones must be from the same marketing people who brough us Internet-ready modems.
In order to appropriately protect content, Vista will probably have to disable any special device features that it can't directly control. For example many sound cards built on C-Media chipsets (which in practice is the vast majority of them) support Steinberg's ASIO (Audio Stream I/O), a digital audio interface that completely bypasses the Windows audio mixer and other audio-related driver software to provide more flexibility and much lower latency than the Windows ones. ASIO support is standard for newer C-Media hardware like the CMI 8788. Since ASIO bypasses Windows' audio handling, it would probably have to be disabled, which is problematic because audiophiles and professional musicians require ASIO support specifically because of its much higher quality than the standard Windows channels. You can get more information on Vista's audio architecture and the changes from XP in this post from Creative Labs, and a discussion of the problems that the DRM-reengineered Vista audio system causes for sound card vendors in this article on the future of Vista audio.
As well as overt disabling of functionality, there's also covert disabling of functionality. For example PC voice communications rely on automatic echo cancellation (AEC) in order to work. Echo cancellation is used to prevent sound from a loudspeaker or headphones interfering with a microphone in the vicinity. This is rather tricky because the sound will be modified by the speaker and the surroundings that it's operating in, so it requires fairly sophisticated signal processing to remove, as well as a high-quality copy of the signal (if you get a degraded copy the signal, it becomes much harder to use it to cancel out the echo with it). Although it's not visible, echo cancellation is very widely used in applications like hands-free car phones, standard phones used in hands-free mode, and conference calling systems.
AEC in a PC requires feeding back a sample of the audio mix into the echo cancellation subsystem, but with Vista's content protection this isn't permitted any more because this might allow access to premium content. What is permitted is a highly-degraded form of feedback that might possibly still sort-of be enough for some sort of minimal echo cancellation purposes.
The requirement to disable audio and video output plays havoc with standard system operations, because the security policy used is a so-called “system high” policy: The overall sensitivity level is that of the most sensitive data present in the system. So the instant that any audio derived from premium content appears on your system, signal degradation and disabling of outputs will occur. What makes this particularly entertaining is the fact that the downgrading/disabling is dynamic, so if the premium-content signal is intermittent or varies (for example music that fades out), various outputs and output quality will fade in and out, or turn on and off, in sync. Normally this behaviour would be a trigger for reinstalling device drivers or even a warranty return of the affected hardware, but in this case it's just a signal that everything is functioning as intended.
Alongside the all-or-nothing approach of disabling output, Vista requires that any interface that provides high-quality output degrade the signal quality that passes through it if premium content is present. This is done through a “constrictor” that downgrades the signal to a much lower-quality one, then up-scales it again back to the original spec, but with a significant loss in quality. So if you're using an expensive new LCD display fed from a high-quality DVI signal on your video card and there's protected content present, the picture you're going to see will be, as the spec puts it, “slightly fuzzy”, a bit like a 10-year-old CRT monitor that you picked up for $2 at a yard sale (see the Quotes for real-world examples of this). In fact the specification specifically still allows for old VGA analog outputs, but even that's only because disallowing them would upset too many existing owners of analog monitors. In the future even analog VGA output will probably have to be disabled. The only thing that seems to be explicitly allowed is the extremely low-quality TV-out, provided that Macrovision is applied to it (see the Decreased System Reliability section for further discussion of Macrovision problems with Windows).
The same deliberate degrading of playback quality applies to audio, with the audio being downgraded to sound (from the spec) “fuzzy with less detail” [Note G].
Amusingly, the Vista content protection docs say that it'll be left to graphics chip manufacturers to differentiate their product based on (deliberately degraded) video quality. This seems a bit like breaking the legs of Olympic athletes and then rating them based on how fast they can hobble on crutches.
The Microsoft specs say that only display devices with more than 520K pixels will have their images degraded (there's even a special status code for this, STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH), but conveniently omit to mention that this resolution, roughly 800×600, covers pretty much every output device that will ever be used with Vista. The abolute minimum requirement for Vista Basic are listed as 800×600 resolution (and an 800MHz Pentium III CPU with 512MB of RAM, which seems, well, “wildly optimistic” is one term that springs to mind). However that won't get you the Vista Aero interface, which makes a move to Vista from XP more or less pointless. The minimum requirements for running Aero on a Vista Premium PC are “a DX9 GPU, 128 MB of VRAM, Pixel Shader 2.0, and minimum resolution 1024×768×32”, and for Aero Glass it's even higher than that. In addition the minimum resolution supported by a standard LCD panel is 1024×768 for a 15″ LCD, and to get 800×600 you'd have to go back to a 10-year-old 14″ CRT monitor or something similar. So in practice the 520K pixel requirement means that everything will fall into the degraded-image category.
(A lot of this OPM stuff seems to come straight from the twilight zone. It's normal to have error codes indicating that there was a disk error or that a network packet got garbled, but I'm sure Windows Vista must be the first OS in history to have error codes for things like “display quality too high”).
Beyond the obvious playback-quality implications of deliberately degraded output, this measure can have serious repercussions in applications where high-quality reproduction of content is vital. Vista's content-protection means that video images of premium content can be subtly altered, and there's no safe way around this — Vista will silently modify displayed content under certain (almost impossible-to-predict in advance) situations discernable only to Vista's built-in content-protection subsystem (Philip Dorrell has created a neat cartoon that illustrates this problem). Microsoft claim that this hidden image manipulation will only affect the portions of the display that contain the protected content, but since no known devices currently implement this “feature” it's hard to say how it'll work out in practice (what happens currently is that Vista just refuses to play premium content rather than downgrading it).
An interesting potential security threat, suggested by Karl Siegemund, occurs when Vista is being used to run a security monitoring system such as a video surveillance system. If it's possible to convince Vista that what it's communicating is premium content, the video (and/or audio) surveillance content will become unavailable, since it's unlikely that a surveillance center will be using DRM-enabled recording devices or monitors. I can just see this as a plot element in Ocean's Fifteen or Mission Impossible Six, “It's OK, their surveillance system is running Vista, we can shut it down with spoofed premium content”.
The silly thing about the industry's obsession with image quality is that repeated studies have shown that what really matters to viewers (rather than what they think matters) is image size and not quality. Sure, if you take the average consumer into a store and put them in front of the latest plasma panel they'll be impressed by the fact that they can count each individual hair in Gandalf's beard, but once he's leaping about wrestling with the balrog this detail becomes lost and the only differentiator is image size. You can find a good discussion of this in The Media Equation by Stanford professors Byron Reeves and Clifford Nass. In one experiment on visual fidelity they showed a film using the best equipment they could get their hands on, and again using a fifth-generation copy on bad tape and poor equipment. There were no differences in users' responses to the two types of images (see the book for more details on this). You can see an example of this effect yourself if you can set up a machine with a CRT and an LCD monitor. Use the CRT monitor for awhile, then switch to the LCD monitor for a minute or two. When you go back to the CRT monitor, does it seem faulty? Did you notice this before you looked over at the LCD monitor?
Photographers have known about this issue for some time because of the pointless megapixel race that camera manufacturers are engaged in (the reason why the race continues is that the masses are under some impression that more pixels = better, so manufacturers are cramming more and more sites onto their sensors with no real effect except for larger file sizes and more image noise due to fewer photons impacting each sensor site). The New York Times ran a great experiment to demonstrate this when they blew up 5 megapixel, 8 megapixel, and 13 megapixel images to poster size and spent 45 minutes asking passers-by to guess which was which. Only one single person, a photography professor (who may have just got lucky), could tell the difference. On the HD media front, the UK's PC Format magazine did a direct pictorial comparison and again couldn't really tell the difference.
Conversely, image size, rather than pixel count, is a huge differentiator: The bigger the better. So in practice a degraded image on a huge VGA monitor (or by extension anything with a lower-quality analog input) will rate better than a non-degraded image on a much smaller LCD monitor, assuming you can find an example of the latter that Vista will actually output an HD image to. Of course convincing consumers of this is another matter.
The image perception problem works in the other direction as well. Even if you do have a true 1080p display (rather than a “1080p compatible” display or some similar weasel-words indicating that what you're actually seeing is a much lower-resolution image), unless the conditions are set up just right (an appropriate viewing distance and display size), you won't be able to tell the difference between a true 1080p image and a much lower-resolution one. Since the real limiting factor is the acuity of human vision and not the resolution of the display, even on a huge 50 inch plasma panel someone with normal eyesight at a standar viewing distance can't distinguish any finer detail than 720p.
In order to prevent the creation of hardware emulators of protected output devices, Vista requires a Hardware Functionality Scan (HFS) that can be used to uniquely fingerprint a hardware device to ensure that it's (probably) genuine. In order to do this, the driver on the host PC performs an operation in the hardware (for example rendering 3D content in a graphics card) that produces a result that's unique to that device type.
In order for this to work, the spec requires that the operational details of the device be kept confidential. Obviously anyone who knows enough about the workings of a device to operate it and to write a third-party driver for it (for example one for an open-source OS, or in general just any non-Windows OS) will also know enough to fake the HFS process. The only way to protect the HFS process therefore is to not release any technical details on the device beyond a minimum required for web site reviews and comparison with other products.
This potential “closing” of the PC's historically open platform is an extremely worrying trend. A quarter of a century ago, IBM made the momentous decision to make their PC an open platform by publishing complete hardware details and allowing anyone to compete on the open market. Many small companies, the traditional garage startup, got their start through this. This openness is what created the PC industry, and the reason why most homes (rather than just a few offices, as had been the case until then) have one or more PCs sitting in a corner somewhere. This seems to be a return to the bad old days of 25 years ago when only privileged insiders were able to participate.
The HFS process has another cost involved with it. Most hardware vendors have (thankfully) moved to unified driver models instead of the plethora of individual drivers that abounded some years ago (in the bad old days it used to be necessary to identify individual device types and download specific drivers for them, something that was more or less impossible for non-geek users). Since HFS requires unique identification and handling of not just each device type (for example each graphics chip) but each variant of each device type (for example each stepping of each graphics chip) to handle the situation where a problem is found with one variation of a device, it's no longer possible to create one-size-fits-all drivers for an entire range of devices like the current Catalyst/Detonator/ForceWare drivers. Every little variation of every device type out there must now be individually accommodated in custom code in order for the HFS process to be fully effective, resulting in a re-balkanisation of drivers that have only just become available in a clean, unified form in the last few years. This is more a concern for device vendors and driver developers than users, since they don't see any of this artifically-created extra complexity. As far as the user is aware it's still a “unified” driver since the internal re-balkanisation isn't visible in the driver bundle (although the “unified” driver suddenly becomes a lot larger). The indirect cost to the user (longer driver development cycles and higher cost) is mostly hidden from them.
If a graphics chip is integrated directly into the motherboard and there's no easy access to the device bus then the need for bus encryption (see Unnecessary CPU Resource Consumption below) is removed. Because the encryption requirement is so onerous, it's quite possible that this means of providing graphics capabilities will suddenly become more popular after the release of Vista. However, this leads to a problem: It's no longer possible to tell if a graphics chip is situated on a plug-in card or attached to the motherboard, since as far as the system is concerned they're both just devices sitting on the AGP/PCIe bus. The solution to this problem is to make the two deliberately incompatible, so that HFS can detect a chip on a plug-in card vs. one on the motherboard. Again, this does nothing more than increase costs and driver complexity.
An even more complex situation occurs with DVI paddle boards, in which the graphics device is on the motherboard but the DVI output is provided through a card that goes into the AGP slot. This means that the graphics device meets the requirements for a non user-accessible bus device (see the section Increased Hardware Costs) but the DVI output portion doesn't. Does this mean that your graphics output gets disabled or not? Either option is unpalatable, because Vista's content-protection design never anticipated such situations.
Further problems occur with audio drivers. To the system, HDMI audio looks like S/PDIF, a deliberate design decision to make handling of drivers easier. In order to provide the ability to disable output, it's necessary to make HDMI codecs deliberately incompatible with S/PDIF codecs, despite the fact that they were specifically designed to appear identical in order to ease driver support and reduce development costs. In fact the Windows Vista logo requirements explicitly state that “HDMI output cannot be shared with an S/PDIF output under any circumstances. All digital outputs must be independent” (reading this part of the logo requirements is another trip into the content-protection twilight zone: In the “Bus Controllers and Ports” section, right under the text telling us that “The requirements defined for controllers and ports emphasize […] industry standards and specifications”, we find the primary Vista requirement for bus controllers, “BUSPORT-0001”, which mandates support for “requirements not specified in the Intel HD Audio specification”.
But wait, there's more! In order to provide the audio channel for HDMI, some manufacturers redirect the not-OK S/PDIF into the OK HDMI. So even if you go out of your way to get premium content-capable hardware, Vista can still disable it even though it's supposed to be approved for premium-content playback.
As other parts of this writeup point out, adding all of this unnecessary overhead and complexity to device drivers costs time and money. The result is that many Vista drivers, particularly for the 64-bit version, are nowhere near ready even after Vista has already been released. There's even a special site set up where people can report which Vista drivers currently work for them, one list for 32-bit Vista drivers and another for 64-bit Vista drivers (note how short the list is for the 64-bit drivers, with major vendors like nVidia being completely absent). Numerous indications I've seen, ranging from public analyses through to private comments from driver developers are that it's going to be about the middle of the year before the drivers for video cards are fully reliable. As of this writing, major vendors like nVidia (graphics) and Creative Labs (sound) still don't have their Vista drivers ready, and other vendors like ATI have resorted to fudging their Vista certification, selling Radeon X1950 graphics cards with no certified drivers but with a “Certified for Windows Vista” label on the box, although nVidia then followed suit, selling their GeForce 8600GTS without a certified driver but with the same “Certified for Windows Vista” label. In fact nVidia only has beta (pre-release) drivers available from its web site (and a pending class-action lawsuit to match, with an accompanying class-action suit against Microsoft for good measure), and when ATI finally released a Vista-certified driver for the X1950, it crashed Vista and would only work reliably in basic VGA mode, circa 1987. Even large companies like Dell and Gateway are admitting that Vista's graphics drivers just aren't ready yet, resulting in them holding back shipping Vista upgrades to people who have already ordered (and paid for) them. For example you can't buy Dell's top-of-the-line XPS 710 PC with Vista installed because there are no graphics drivers for it.
An additional reason for the driver backlog is that 64-bit versions of
Vista (which will be displacing the 32-bit versions within the next few years
as everyone moves to 64-bit platforms) will
load drivers signed by Microsoft (there's a special debug mode invoked by
hitting F8 on boot or using the
/TESTSIGN flag that allows you to
load unsigned drivers on a one-off basis for debugging purposes, but this gets
disabled again at the next reboot, and, if you haven't already guessed it,
premium content playback is disabled completely in this mode). This means
that no drivers that potentially threaten premium content can be loaded. A
downside of this is that an enormous mass of third-party drivers that haven't
passed through Microsoft's approval process can't be used under 64-bit Vista,
and because of the time and money involved in the approval process may never
end up running under Vista. In any case a mere month or so after Vista was
released, Indian security researchers at NV
Labs released details of their
Vbootkit, a pre-loader that
allows unsigned (and therefore completely untrusted) drivers to be loaded into
the Vista kernel. At about the same time NT kernel developer
Alex Ionescu created a
simple command-line tool to
de-protect Windows Vista's
“protected” processes, complete with a
screenshot of Vista's
audio content-protection process being unprotected. So the whole
driver-signing process-protection effort survived for just over a month in the
real world, and now remains as a serious impediment to legitimate driver
vendors but little more than a speedbump to attackers.
Why is this a problem? Because the vast majority of drivers running on PCs today aren't signed, not so much because the developers couldn't be bothered but because the WHQL process that produces the signed drivers is so slow that they're obsolete by the time they've been approved by Microsoft (and even some of the WHQL-certified ones are still pretty flaky). As a result, vendors supply current but unsigned drivers, a practice so widespread that instructions on bypassing the warning dialog that pops up are a standard part of most device install instructions (you can use Google to find endless examples of the use of unsigned drivers. One quick example of a large, well-known vendor doing this is AGFA). Almost the entire PC industry relies on users clicking Continue in response to the unsigned-driver warning so that the driver can load anyway. This situation is so common that you'll see it written up in computer books and covered in Windows install guides. At the moment the problem with unsigned drivers isn't too visible as people seem to be avoiding 64-bit Vista because of the driver issues, but the inability to load drivers that haven't been through Microsoft's approval process is likely to become a serious headache when its use becomes more widespread. At some point something will have to give in order for Vista to have viable 64-bit driver support. It remains to be seen whether content protection or device support will prove the bigger hammer in this tug-of-war.
Having said that, Vista isn't the only OS that's being hurt by short-sighted decisions about driver handling. The Linux community has a strong lobby in favour of refusing to load non-GPL'd drivers into the kernel, a process that one commentator calls "DRM for code".
Once a weakness is found in a particular driver or device, that driver will have its signature revoked by Microsoft, which means that it will no longer be fed anything considered to be premium content. What this means is that a report of a compromise of a particular driver or device will cause all premium content-handling ability for that device worldwide to be turned off until a fix can be found. To quote the content-protection specs, “Vista will […] revoke any driver that is found to be leaking premium content […] if the same driver is used for all the manufacturer's chip designs, then a revocation would cause all that company's products to need a new driver”. If it's an older device for which the vendor isn't interested in rewriting their drivers (and in the fast-moving hardware market most devices enter “legacy” status within a year or two of their replacement models becoming available), all devices of that type worldwide become permanently unable to handle premium content.
An example of this might be nVidia TNT2 video cards, which are still very widely deployed in business environments where they're all that you need to run Word or Outlook or Excel (or, for that matter, pretty much any non-gaming application). The drivers for these cards haven't been updated for quite some time for exactly that reason: You don't need the latest drivers for them because they're not useful with current games any more (if you go to the nVidia site and try and install any recent drivers, the installer will tell you to go back and download much older drivers instead as soon as it detects that you're using a TNT2). If a such a device were found to be leaking content, it seems unlikely that nVidia would be interested in reviving discontinued drivers that it hasn't touched for several years, creating instant orphanware of the installed user base.
The threat of driver revocation is the ultimate nuclear option, the crack of the commissars' pistols reminding the faithful of their duty. The exact details of the hammer that vendors will be hit with is buried in confidential licensing agreements, but I've heard mention of multi-million dollar fines and embargoes on further shipment of devices alongside the driver revocation mentioned above.
This revocation can have unforeseen carry-on costs. Windows' anti-piracy component, WGA (or in Vista's case its successor Software Protection Platform, SPP), is tied to system hardware components. Windows allows you to make a small number of system hardware changes after which you need to renew your Windows license (the exact details of what you can and can't get away with changing has been the subject of much debate). If a particular piece of hardware is affected by a driver revocation (even just temporarily while waiting for an updated driver to work around a content leak) and you swap in a different video card or sound card to avoid the problem, you risk triggering Windows' anti-piracy measures, landing you in even more hot water. If you're forced to swap out a major system component like a motherboard, you've instantly failed WGA validation. Revocation of any kind of motherboard-integrated device (practically every motherboard has some form of onboard audio, and all of the cheaper ones have integrated video) would appear to have a serious negative interaction with Windows' anti-piracy measures.
Another unforeseen consequence of the potential for a downgrade disguised as an upgrade (that is, a driver being revoked by Windows Update) is that the whole process of updating your machine is supposed to provide benefits to the user in the form of enhanced functionality or, more pragmatically, bugfixes and security patches. Since malware attacks are invisible but a loss of playback capability isn't, if the only visible effect of an update is to reduce system functionality it incentivises users to disable updates in order to avoid this issue. The unfortunate hidden side-effect of this is that in the interests of protecting themselves from having their content-playback capabilities turned off, they're now vulnerable to all manner of malware, viruses, spyware, and so on.
The details of what will happen if a motherboard contains unused onboard audio capabilities and an additional sound card alongside it, and the motherboard drivers are revoked, is unknown. Windows can't tell that there's nothing connected to the cheap onboard audio because the user prefers to use their M-Audio Revolution 7.1 Surround Sound card instead, so it'll probably have to revoke the motherboard drivers even though they're not used for anything. Since virtually all motherboards contain onboard audio in some form, this could prove quite problematic.
An entirely different DoS problem that applies more to HDMI-enabled devices in general has already surfaced in the form of, uhh, “DVI amplifiers”, which take as input an HDMI signal and output a DVI signal, amplifying it in the process. Oh, and as a side-effect they forget to re-apply the HDCP protection to the output. Amusingly enough, precisely this approach has been recommended by a Westinghouse (large US TV manufacturer) VP of Marketing to resolve problems with Sony's interpretation of HDCP in the Playstation 3 and Westinghouse's interpretation in their 1080p televisions, who told consumers to “purchase an HDMI to DVI adapter to bypass HDCP”. The hardware vendors seem to have come to the same conclusion about content protection as the computer in Wargames did about global thermonuclear war: “A strange game. The only winning move is not to play”.
HDCP strippers are relatively simple to design and build using off-the-shelf HDMI chips. Beyond the commercially-available models, individual hardware hackers have built their own protection-strippers using chip samples obtained from chip vendors. If you have the right credentials you can even get hardware evaluation boards designed for testing and development that do this sort of thing. Even more accessible than that are HD players with non-HDMI digital outputs, for example ones that contain an HD-SDI (SMPTE 292M) interface. HD-SDI is an unencrypted digital link typically used in TV studios but also available from various non-US sources as after-market sidegrades for standard HD players, providing better-than-HDMI image quality without the hassle of HDCP.
Now assume that the “DVI amplifier” manufacturer buys a truckload of HDMI chips (they'll want to get as many as they can in one go because they probably won't be able to go back and buy more when the chip vendor discovers what they're being used for). Since this is a rogue device, it can be revoked… along with hundreds of thousands or even millions of other consumer devices that use the same chip. If they're feeling particularly nasty, they can recycle the HDMI chips from junked TVs to ensure that the maximum possible damage to the consumer base occurs. This cannibalisation process is actually fairly common among TV servicemen. When a major component like the picture tube or yoke (which is often only sold as an integral part of the picture tube) fails, it's often not worth repairing the TV any more, at which point it gains a second life as a source of spare parts for other TVs. In particular components like the jungle IC (which integrates a large amount of discrete circuitry into a single device) can cost as much as $50-100 to replace, so it makes sense to recycle some of the parts rather than buy new ones, particularly when it's not obvious whether this is the problem component in a set brought in for repair. Lifting an HDMI chip from such a TV set isn't nearly as exotic as it sounds. Engadget have a good overview of the ensuing doomsday scenario.
Exactly what will happen when a key is leaked depends on how the attackers handle it. The way HD-DVD/Blu-Ray keying works is that a per-device key is used to decrypt the title key on the disk, and the title key is then in turn used to decrypt the content. So the chain of custody is Device key ⇒ Title key ⇒ Content. This level of indirection allows an individual device to be disabled by revoking the device key without making the disk unplayable on all devices, since other device keys can still decrypt the title key and thus the content (I've simplified this a bit to cut down the length of the explanation, see the AACS specification for more details).
The device key is tied to a particular device/player/vendor, but the title key is only tied to the content on disk. You can probably see where this is going… by publishing the device key, the attacker can cause general mayhem by forcing device revocation. On the other hand by publishing the title key the attacker can release the content in an untraceable manner, since it's not known which device key was used to leak the title key. In addition since there's no way to un-publish the title key (encrypted content + title key = unencrypted content), at that point it's game over for the content.
(Finding the manifold holes in these content-protection mechanisms has proven an interesting intellectual exercise, first for security researchers and more recently for hardware and software hackers of all kinds. Some of the public attacks are described elsewhere in this writeup, and in particular the various AACS key recovery attacks have made most other types of attack unnecessary since once you have the keys to the kingdom everything else becomes pretty much irrelevant. The high level of key management flexibility built into AACS may make for a nice dog-and-pony show when describing its capabilities, but adding too many levels of indirection means that once an attacker gets into certain levels of the chain, their access can never be revoked any more. This presents a rather interesting object lesson in crypto design. Although the mass of keying options and multiple levels of indirection provide a great deal of flexibility and functionality for the designers of the crypto mechanisms, they provide just as much flexibility for the attacker. Specifically, there's a nice pick-and-mix capability where an attacker can choose to publish the player key, which unlocks all movies but can be traced and disabled, or they can choose to publish the title key for one particular movie, which unlocks only that movie but can't be traced back to a revocable player. This highly flexible keying system probably serves the attacker better than it does the defender!
Since the following is no longer of much interest to an attacker because universal attacks already exist, I may as well mention my reaction to reading about the details of the AACS revocation process, which was that the threat modelling was done pretty poorly, leaving it vulnerable to attack. The way the revocation processing works is that the player implements a high-water mark mechanism to avoid someone feeding in an old revocation list that doesn't contain the key(s) to be revoked. This is implemented via a monotonically increasing counter in the key block (referred to as a “version number ” in the AACS spec). Players will ignore any list with a counter value smaller than one they've already seen, this preventing key rollback attacks.
So to immunise a player against ever processing another revocation list, you need to feed it a list with a counter value of INT_MAX, the largest possible integer value. Since nothing can exceed this, no future revocation lists will be processed by the player, and no matter how hacked it is, your player will never be revoked. Here's how you do this.
The lists are digitally signed, so you need a way to get around the
signature on the data. To do this you hook the system's file read function
using any one of a vast number of standard rootkit techniques, an example
being a filesystem filter driver that intercepts file access IRPs. When the
system reads the media key block file, you use
VirtualProtect() to make the second 4K of data (corresponding to
an x86 page) a guard page. Then you sit back and wait.
At some point the AACS verification code will check the digital signature on the data. Once the hashing gets to the second x86 page, the guard page exception will trigger and you'll be handed over control. Your exception handler then goes back 4K - 8 bytes from the exception location, sets the value there to INT_MAX, and returns from the exception. You now have a verified digital signature on a media key record with a counter value of INT_MAX, and your player (which carefully records the information in secure non-volatile storage) is immunised against any future revocations, since they'll all have a value less than INT_MAX. QED.
A simpler approach that's already being used is just to patch the drive firmware to bypass the check).
“Drivers must be extra-robust. Requires additional driver development to isolate and protect sensitive code paths” — ATI.
Vista's content protection requires that devices (hardware and software drivers) set so-called “tilt bits” if they detect anything unusual. For example if there are unusual voltage fluctuations, maybe some jitter on bus signals, a slightly funny return code from a function call, a device register that doesn't contain quite the value that was expected, or anything similar, a tilt bit gets set. Such occurrences aren't too uncommon in a typical computer. For example starting up or plugging in a bus-powered device may cause a small glitch in power supply voltages, or drivers may not quite manage device state as precisely as they think. Previously this was no problem — the system was designed with a bit of resilience, and things will function as normal. In other words small variances in performance are a normal part of system functioning. Furthermore, the degree of variance can differ widely across systems, with some handling large changes in system parameters and others only small ones. One very obvious way to observe this is what happens when a bunch of PCs get hit by a momentary power outage. Effects will vary from powering down, to various types of crash, to nothing at all, all triggered by exactly the same external event.
With the introduction of tilt bits, all of this designed-in resilience is gone. Every little (normally unnoticeable) glitch is suddenly surfaced because it could be a sign of a hack attack, with the required reaction being that (from the spec) “Windows Vista will initiate a full reset of the graphics subsystem, so everything will restart”. According to Microsoft this will only take a few seconds and will only affect the graphics subsystem (so it's not a complete restart of Vista), but the true impact of this mechanism remains to be seen. In addition even if it's relatively quick, systems with high availability requirements probably won't appreciate the overhead of periodic soft-reboots of the graphics subsystem. So the effect that these tilt bits will have on system reliability should require no further explanation.
Content-protection “features” like tilt bits also have worrying denial-of-service (DoS) implications. It's probably a good thing that modern malware is created by programmers with the commercial interests of the phishing and spam industries in mind rather than just creating as much havoc as possible. With the number of easily-accessible grenade pins that Vista's content protection provides, any piece of malware that decides to pull a few of them will cause considerable damage. The homeland security implications of this seem quite serious, since a tiny, easily-hidden piece of malware would be enough to render a machine unusably unstable, while the very nature of Vista's content protection would make it almost impossible to determine why the denial-of-service is occurring. Furthermore, the malware authors, who are taking advantage of “content-protection” features, could claim protection under the DMCA against any attempts to reverse-engineer or disable the content-protection “features” that they're abusing.
Going beyond deliberate denial-of-service attacks, it's possible to imagine all sorts of scenarios in which the tilt bits end up biting users. Consider a warship operating in a combat zone and equipped with Vista PCs for management of the vessel's critical functions that does nothing more wrong that to suffer a severe jolt from a near miss, scrambling the bus just enough to activate the tilt bits (without causing any other real damage). In one infamous incident in September 1997, Windows NT managed to disable the Aegis missile cruiser USS Yorktown (“NT Leaves Navy 'Smart Ship' dead in the water”, Government Computer News, 13 July 1998). Now Windows Vista can do the same thing via a by-design feature of the OS [Note H]. This issue, unless it can be clearly resolved, would make the use of Vista PCs unacceptable for any applications that have any hint of unusual environmental conditions such as high altitude, environmental variations, shock, and so on.
Some contributors have commented that they can't see the revocation system ever being used because the consumer backlash would be too enormous, but then the legal backlash from not going ahead could be equally extreme. The only real indication that we have for how committed Microsoft really are to this is the amazing speed with which Microsoft released a patch for the WMDRM (Windows Media DRM) vulnerability, which they rushed out at a speed that even the most virulent worm never produced. This would seem to indicate that they're pretty serious about this, since they prioritised it above any conventional non-DRM-related security problem.
Can these protection mechanisms be inadvertently triggered? There's plenty of real-world evidence to show that this happens all the time. One example that I recently encountered in my friends-and-neighbours computer support work involved a retired filmmaker who has a 50-year collection of educational films made for teaching in schools. Recently he's been transferring his entire collection to DVD to make them more accessible to newer audiences. Unfortunately some component of Windows' content-protection has decided that some protection requirement isn't being met somewhere, and as a result 50 years of educational film-making have been reduced to an error message indicating that Macrovision can't be enabled and therefore the content can't be played. Since it plays just fine on a variety of non-Windows platforms including a range of standard DVD players, it's not a problem with the DVDs but is due to the malfunctioning of a Windows content-protection mechanism around a technology called Macrovision.
Macrovision is a basic analog signal-protection technique that's applied to TV-out ports on computer video cards. Strangely, his computer doesn't actually have any TV-out capability. What it does have is a video chipset that, in theory, can provide TV-out (most video chipsets have this capability, but it's only used on some types of video cards, see the section Increased Hardware Costs for details on their use in different variations of video cards). However, since no actual TV-out capability exists, it's not possible to enable Macrovision for it. This leads to a farcical situation where Windows is prohibiting playback due to the absence of copy protection on a nonexistent output (here's one of many examples of other users running into the same problem). As a result, in the name of content protection, the film-maker is prevented from playing back his own content!
This isn't just an isolated incident. A quick Google search of the error message that comes up reveals thousands upon thousands of users that have encountered this very problem, and this in turn is merely the tip of the iceberg, since few of those affected — home users wanting to play back movies — will have enough know-how to seek out the far-flung technical forums where this is being discussed (to get a better estimate of the number of affected users you need to make multiple searches using variations of the error message since it's reported in a variety of different ways, the single search link above is just one example). In any event even if they do get this far, it's a pointless effort because there's no known solution to the problem (although random poking around like wiping the computer clean and reinstalling Windows has reportedly helped in some cases).
This in turn is just one single way in which Windows' content-protection can malfunction. A Google search for various other playback-prevention error messages (here's one example of such a message) reveals further unfortunate communities of users united by the fact that they've been prevented from viewing legitimate content by malfunctioning Windows content protection.
“Cannot go to market until it works to specification… potentially more respins of hardware” — ATI.
“This increases motherboard design costs, increases lead times, and reduces OEM configuration flexibility. This cost is passed on to purchasers of multimedia PCs and may delay availability of high-performance platforms ” — ATI.
Vista includes various requirements for “robustness” in which the content industry, through “hardware robustness rules”, dictates design requirements to hardware manufacturers. The level of control that the content producers have over technical design details is nothing short of amazing. As security researcher Ed Felten quoted from Microsoft documents on his freedom-to-tinker web site about a year ago:
“The evidence [of security] must be presented to Hollywood and other content owners, and they must agree that it provides the required level of security. Written proof from at least three of the major Hollywood studios is required”.
So if you design a new security system, you can't get it supported in Windows Vista until well-known computer security experts like MGM, 20th Century-Fox, and Disney give you the go-ahead (this gives a whole new meaning to the term “Mickey-Mouse security”). It's absolutely astonishing to find paragraphs like this in what are supposed to be Windows technical documents, since it gives Hollywood studios veto rights over Windows security mechanisms.
As an example of these “robustness rules”, only certain layouts of a board are allowed in order to make it harder for outsiders to access parts of the board. Possibly for the first time ever, computer design is being dictated not by electronic design rules, physical layout requirements, and thermal issues, but by the wishes of the content industry. Apart from the massive headache that this poses to device manufacturers, it also imposes additional increased costs beyond the ones incurred simply by having to lay out board designs in a suboptimal manner. Video card manufacturers typically produce a one-size-fits-all design (often a minimally-altered copy of the chipset vendor's reference design, as illustrated by one product review that shows five virtually identical cards from different vendors with the only noticeable difference being the logo on the heatsink), and then populate different classes and price levels of cards in different ways. For example a low-end card will have low-cost, minimal or absent TV-out encoders, DVI circuitry, RAMDACs, and various other add-ons used to differentiate budget from premium video cards. You can see this on the cheaper cards by observing the unpopulated bond pads on circuit boards, and gamers and the like will be familiar with cut-a-trace/resolder-a-resistor sidegrades of video cards.
An example of omitting components from a high-end card to create a mid-range card clearly shows the large red rectangular area to the far left of the card, which is where the manufacturer has omitted a component to produce a lower- cost model. The same thing is visible in another card. Conversely, an (at the time it was released) top-of-the-line card with optional components fitted shows an additional chip to the left of the large square heatsink+fan that handles video encoding and can be added or removed (along with other optional components) to create different levels of cards at different price points. The automotive industry does the same thing, you have one basic model of each car type and 10,000 extras and options to suit everyone's needs and pockets.
In some cases the addition of extra circuitry isn't merely a convenient price-differentiation mechanism but is required for the device to function. Most newer video cards have dual video outputs, and the higher-end ones tend to have dual-DVI out. However, many devices only provide a single TMDS (Transition Minimized Differential Signaling, a high-speed serial data format) output for DVI signalling. The second output is provided by a DVO (Digital Video Out, not to be confused with Intel's similarly-named SVDO) port in combination with an external TMDS transmitter. In addition some high-resolution displays require multiple DVI/TMDS links because single-channel DVI doesn't have enough bandwidth to support very high resolutions, requiring external TMDS transmitters. You can see this in the first image on a review of Macintosh video cards, which shows the dual-link DVI output used to drive Apple's 30″ Cinema Display (this actually requires two dual-link TMDS transmitters to support a second display, but I'll spare you the technical details of that one). The important point in all of this is the phrase “external TMDS transmitter”, none of which meet the robustness requirements since they have direct access to the high-quality digital signal. Perversely enough, it's mostly the high-resolution displays advertised as suitable for HD content that require the external TMDS circuitry that makes them unable to meet the robustness requirements.
This problem is a nasty catch-22 from which there's no escape. In theory it would be possible to add a DVI-to-HDMI (with HDCP) encoder to bypass this (a typical example would be the Silicon Image Sil139x or Sil193x devices, which were specifically designed for this application. Silicon Image TMDS transmitters are widely used on graphics cards), but HDMI doesn't have the bandwidth to carry the high-definition images that the Cinema Display provides. Even without explicit image degradation via constriction, the requirement to use the lower-quality HDMI link to carry what should be a DVI signal means that image quality is lost, and to make it even more painful the resulting graphics cards will be more expensive because it costs extra to add the quality-downgrading HDMI transmitter. In other words consumers will be paying extra in order to get a lower-quality image.
Even with lower-resolution monitors, the fact that the data signal is present in unprotected form when it enters the external encoder means that it probably won't meet the robustness requirements. (Exactly how this is meant to work is unspecified in any documentation that I've been able to get my hands on. It appears to be close to impossible to output a content-provider approved protected signal from a PC while also meeting the robustness requirements).
Vista's content-protection requirements eliminate the ability to accomodate different feature sets in a one-size-fits-all design, banning the use of separate TV-out encoders, DVI circuitry, RAMDACs, and other discretionary add-ons because feeding unprotected video to these optional external components would make it too easy to lift the signal off the bus leading to the external component. So everything has to be custom-designed and laid out so that there are no unnecessary accessible signal links on the board. This means that a low-cost card isn't just a high-cost card with components omitted, and conversely a high-cost card isn't just a low-cost card with additional discretionary components added, each one has to be a completely custom design created to ensure that no signal on the board is accessible.
This extends beyond simple board design all the way down to chip design. Instead of adding an external DVI/TMDS chip, it now has to be integrated into the graphics chip, along with any other functionality normally supplied by an external device. So instead of varying video card cost based on optional components, the chipset vendor now has to integrate everything into a one-size-fits-all premium-featured graphics chip, even if all the user wants is a budget card for their kid's PC (although given the popularity of graphics-intensive computer games, it's more likely that they'd be getting the budget card for their own PC).
A further example of external meddling in hardware vendors' product development and distribution can be found in the document that specifies what happens when a product is compromised in some way even though it's previously been found to be fully compliant with the robustness requirements:
“Company shall promptly redesign the affected product […] if such redesign is not possible or practical, cease manufacturing and selling such product”.
This indicates that no matter how much dedication you show to the party line, it still won't help you when the chips are down. Some years ago a friend of mine was working for a company that was building a custom IT solution for a government department. When the day came time to sign off on it, everyone in the entire department who had signing authority called in sick rather than end up being the one who put their name to it. I can just imagine the corporate sick day that must have taken place at ATI, nVidia, Intel, VIA, and SiS when it came time to put someone's name to this gem, which gives Hollywood veto rights over your production lines and sales and distribution channels.
“We've taken on more legal costs in copyright protection in the last six to eight months than we have in any previous engagement. Each legal contract sets a new precedent, and each new one builds on the previous one” — ATI.
Protecting all of this precious premium content requires a lot of additional technology. Unfortunately much of this is owned by third parties and requires additional licensing. For example HDCP for HDMI is owned by Intel, so in order to send a signal over HDMI you have to pay royalties to Intel even though you could do exactly the same thing for free over DVI (actually you could do it better, since DVI provides a higher-quality link than HDMI). Similarly, since even AES-128 on a modern CPU isn't fast enough to encrypt high-bandwidth content, companies are required to license the Intel-owned Cascaded Cipher, an AES-128-based transform that's designed to offer a generally similar level of security but with less processing overhead.
The need to obtain unnecessary technology licenses extends beyond basic hardware IP. In order to demonstrate their commitment to the cause, Microsoft have recommended as part of their “robustness rules” that vendors license third-party code obfuscation tools to provide virus-like stealth capabilities for their device drivers in order to make it difficult to interfere with their operation or to reverse-engineer them (for example the spec requires “use of techniques of obfuscation to disguise and hamper attempts to discover the approaches used”). Vendors like Cloakware and Arxan have actually added “robustness solutions” web pages to their sites in anticipation of this lucrative market. This must be a nightmare for device vendors, for whom it's already enough of a task getting fully functional drivers deployed without having to deal with adding stealth-virus-like technology on top of the basic driver functionality. In fact the sorry state of some of Vista's still-not-finished-yet graphics drivers have already prompted a class-action lawsuit against nVidia for deceptive advertising because many devices using nVidia hardware and advertised as “Vista Ready” don't actually work because the drivers aren't ready (the situation with 64-bit drivers, ostensibly a major reason for switching to Vista in the first place, is particularly dire).
The robustness rules further complicate driver support by disallowing features such as driver debugging facilities in shipping drivers. Most Windows XP users will at one time or another have encountered a Windows crash message indicating that some application that they were using has terminated unexpectedly and would they like to send debugging information to Microsoft to help fix the problem. Some device vendors even implement their own custom versions of this debugging support in their drivers, an example being ATI's VPU Recover, which captures graphics diagnostic and debugging information to send to ATI when a graphics device problem occurs. Since this debugging functionality could leak content or content-related security information, it can no longer be used with audio or video components, considerably complicating vendors' driver support and software enhancement processes (the ATI product manager referenced in the Sources section lists these additional testing and support costs as “potentially the highest cost of all”).
“Since [encryption] uses CPU cycles, an OEM may have to bump the speed grade on the CPU to maintain equivalent multimedia performance. This cost is passed on to purchasers of multimedia PCs” — ATI.
In order to prevent tampering with in-system communications, all communication flows have to be encrypted and/or authenticated. For example content sent to video devices has to be encrypted with AES-128. This requirement for cryptography extends beyond basic content encryption to encompass not just data flowing over various buses but also command and control data flowing between software components. For example communications between user-mode and kernel-mode components are authenticated with OMAC message authentication-code tags, at considerable cost to both ends of the connection. The initial crypto handshake is:
driver -> application: cert + nonce application -> driver: RSA-OAEP-SHA512( nonce || key || seqNo1 || seqNo2 )
In this step the driver supplies its certificate to the calling application
DxgkDdiOPMGetCertificate() and a 128-bit nonce via
DxgkDdiOPMGetRandomNumber(). This is either a COPP or an OPM
certificate, with COPP being the older Windows XP content protection and OPM
being the newer Windows Vista one. There's also a third type of fleur-de-lis
certificate that the driver uses if it has a UAB (User-Accessible Bus). The
certificates contain a 2048-bit RSA key which is used to encrypt a 40-byte
payload containing the nonce provided by the driver, a 128-bit session key,
and two 32-bit initial sequence numbers (they start at random values), the
first number is for status messages via
DxgkDdiOPMGetInformation() and the second for command messages
Once the keys are set up, each function call is:
in = OMAC( nonce || seqNo || data ) out = OMAC( nonce || seqNo || data )
(I've used conventional bits-on-the-wire notation for this, the values are
actually fields in a structure so for example the sequence number is provided
ulSequenceNumber member). This is very similar to the
protocol used in SSL or SSH (in practice some steps like cipher suite
negotiation are omitted, since there's a hardcoded set of ciphers used).
Finding SSL being run inside a PC from one software module to another is just
Needless to say, this extremely CPU-intensive mechanism is a very painful way to provide protection for content, and this fact has been known for many years. Twenty years ago, in their work on the ABYSS security module, IBM researchers concluded that the use of encrypted buses as a protection mechanism was impractical.
In order to prevent active attacks, device drivers are required to poll the underlying hardware every 30ms for digital outputs and every 150 ms for analog ones to ensure that everything appears kosher. This means that even with nothing else happening in the system, a mass of assorted drivers has to wake up thirty times a second just to ensure that… nothing continues to happen (commenting on this mechanism, Leo Laporte in his Security Now podcast with Steve Gibson calls Vista “an operating system that is insanely paranoid”). In addition to this polling, further device-specific polling is also done, for example Vista polls video devices on each video frame displayed in order to check that all of the grenade pins (tilt bits) are still as they should be. We already have multiple reports from Vista reviewers of playback problems with video and audio content, with video frames dropped and audio stuttering even on high-end systems [Note I]. Time will tell whether this problem is due to immature drivers or has been caused by the overhead imposed by Vista's content protection mechanisms interfering with playback.
An indication of the level of complexity added to the software can be seen by looking at a block diagram of Vista's Media Interoperability Gateway (MIG). Of the eleven components that make up the MIG, only two (the audio and video decoders) are actually used to render content. The remaining nine are used to apply content-protection measures.
Even more radical approaches to content protection can be found in Microsoft research papers, which indicate areas that Microsoft are looking at for future work. For example the ASPLOS X paper Enabling Trusted Software Integrity proposes a system whereby content-playback mechanisms are protected by adding encrypted constraints into each basic instruction block that prevent the code from acting in anything other than an extremely constrained way. This goes beyond simple code signing in that each basic code block contains a cryptographic hash that special hardware (around 20K gates on a simple RISC CPU, but far more for a more complex x86 one) added to the processor's instruction unit recalculates on the fly for each basic block of code before it's executed to ensure that nothing other than the originally authorised instruction flow is executed. The content-playback software is node-locked to a CPU on install, a special process that involves the processor running in single-user mode with virtual memory, context switches, and all interrupts disabled (this special operation mode is only required for the initial install step, not during normal playback). With various optimisations applied, typical content-processing operations like MPEG and JPEG encode or decode take a 10-20% performance hit.
On-board graphics create an additional problem because blocks of precious content will end up stored in system memory, from where they could be paged out to disk. In order to avoid this, Vista tags such pages with a special protection bit indicating that they need to be encrypted before being paged out and decrypted again after being paged in. Vista doesn't provide any other pagefile encryption, and will quite happily page banking PINs, credit card details, private, personal data, and other sensitive information, in plaintext. The content-protection requirements make it fairly clear that in Microsoft's eyes a frame of premium content is worth more than (say) a user's medical records or their banking PIN [Note J].
In fact, Microsoft is imposing a higher standard of security for premium content than what's been required in the past for any known secure computing initiative proposed for protecting data classified at TOP SECRET or TS/SCI levels (the closest that anything came to what's required in Vista was the LOCK kernel with SIDEARM and BED coprocessors (PDF link), which didn't go as far as the Vista requirements and after 17 years of development effort was a commercial failure to boot). Just to make this point clear, the level of security that Vista is trying to achieve to protect video and audio is more extreme than anything the US government has ever considered necessary for protecting its most sensitive classified data.
In addition to the CPU costs, the desire to render data inaccessible at any level means that video decompression can't be done in the CPU any more, since there isn't sufficient CPU power available to both decompress the video and encrypt the resulting uncompressed data stream to the video card. As a result, much of the decompression has to be integrated into the graphics chip. At a minimum this includes IDCT, MPEG motion compensation, and the Windows Media VC-1 codec (which is also DCT-based, so support via an IDCT core is fairly easy). As a corollary to the Increased Hardware Costs problem above, this means that you can't ship a low-end graphics chip without video codec support any more.
The inability to perform decoding in software also means that any premium-content compression scheme not supported by the graphics hardware can't be implemented. If things like the Ogg video codec ever eventuate and get used for premium content, they had better be done using something like Windows Media VC-1 or they'll be a non-starter under Vista or Vista-approved hardware. This is particularly troubling for the high-quality digital cinema (D-Cinema) specification, which uses Motion JPEG2000 (MJ2K) because standard MPEG and equivalents don't provide sufficient image quality. Since JPEG2000 uses wavelet-based compression rather than MPEG's DCT-based compression, and wavelet-based compression isn't on the hardware codec list, it's not possible to play back D-Cinema premium content (the moribund Ogg Tarkin codec also used wavelet-based compression). Because all D-Cinema content will (presumably) be premium content, the result is no playback at all until the hardware support appears in PCs at some indeterminate point in the future. Compare this to the situation with MPEG video, where early software codecs like the XingMPEG en/decoder practically created the market for PC video. Today, thanks to Vista's content protection, the opening up of new markets in this manner would be impossible.
This extra overhead carries a heavy cost for the typical user. It's not uncommon to find PCs so infested with malware (spyware, viruses, trojans, bots, and so on) that they can barely perform their normal tasks, let alone handle the overhead of content protection (depending on whose surveys you believe, the typical Internet-connected PC averages 20-30 pieces of malware). Despite the fact that, on paper, they may have plenty of system resources to throw around for content protection, in practice the overhead of hosting an entire zoo of malware means that any added overhead due to content protection renders them more or less unusable for content playback (while users don't seem to mind waiting around for their botnet-hosting PC to open a Word document, they'll be less happy when it drops frames or produces stuttering audio output).
Looking at this from the point of view of the high-end rather than the average user, the problem is rather different. The high-end graphics and audio market are dominated entirely by gamers, who will do anything to gain the tiniest bit of extra performance, like buying Bigfoot Networks' $250 “Killer NIC” ethernet card in the hope that it'll help reduce their network latency by a few milliseconds. These are people buying $500-$1000 graphics and sound cards for which one single sale brings the device vendors more than the few cents they get from the video/audio portion of an entire roomful of integrated-graphics-and-sound PCs. I wonder how this market segment will react to knowing that their top-of-the-line hardware is being hamstrung by all of the content-protection “features” that Vista hogties it with?
“Compliance rules require [content] to be encrypted. This requires additional encryption/decryption logic thus adding to VPU costs. This cost is passed on to all consumers” — ATI.
As part of the bus-protection scheme, devices are required to implement AES-128 encryption in order to receive content from Vista. This has to be done via a hardware decryption engine on the graphics chip, which would typically be implemented by throwing away a GPU rendering pipeline or two to make room for the AES engine (nVidia did this in their low-end G84 variant of the G80 GPU, while saving the G80's silicon for as many rendering pipelines (well, technically speaking they're stream processors now) as they can fit. Discarding GPU features to make way for content-protection hardware seems a sub-optimal business model for graphics device vendors.
Establishing the AES key with the device hardware requires further cryptographic overhead, in this case a 2048-bit Diffie-Hellman key exchange whose 2K-bit output is converted to a 128-bit AES key via a Davies-Meyer hash with AES as its block transformation component. In programmable devices this can be done (with considerable effort) in the device (for example in programmable shader hardware), or more simply by throwing out a few more rendering pipelines and implementing a public-key-cryptography engine in the freed-up space.
Needless to say, the need to develop, test, and integrate encryption engines into audio/video devices will only add to their cost, as covered in Increased Hardware Costs above, and the fact that they're losing precious performance in order to accommodate Vista's content protection will make gamers less than happy.
The burden that the content-protection overhead places on resources is even more severe for portable, battery-powered devices. As a CNET review of portable devices found, “DRM not only slows down an MP3 player but also sucks the very life out of them”, with the extra overhead of processing DRM'd content shortening the battery life by about 25% across a whole range of products. This burden extends beyond DRM'd music into games as well. For example the content-protected version of the game Flatout 2 runs 15% slower than the same game without content protection.
In the introduction, I predicted that Vista's content protection, the entire mass of complex and troublesome technology covered in this writeup, would last less than a week once the hackers got hold of it. Sure enough, shortly after Vista's release, it was broken by an individual who was annoyed by the fact that he couldn't play back his legitimately-purchased HD-DVDs on his legitimately-purchased HD-DVD player (technically what he broke was the AACS content protection rather than mounting a direct attack on Vista, but the end result is that premium content under Vista is now unlocked). In a sort of re-run of the DeCSS/Xing player story from a few years, someone going by the name of muslix64 appears to have figured out how to extract HD-DVD and Blu-Ray keys from the PowerDVD player software, allowing all(?) HD disk content to be decrypted and played back on any HD display, without content-protection measures getting in the way. The manufacturers of PowerDVD claim that they've done nothing wrong and won't be updating the player, and muslix64 says that “they [players] are all vulnerable [to a] different extent”. This was indirectly confirmed in April 2007 when the WinDVD player apparently had its keys revoked, requiring that users download and install, an, uh, “security update” to re-enable the DRM.
As a result, both HD-DVD and Blu-Ray content can now be decrypted and played without image downgrading or blocking by the OS, and unprotected content is already appearing in the usual locations like BitTorrent streams. The fact that the legally-purchased content wouldn't play on a legally-purchased player because the content protection got in the way was the motivating factor for the crack. The time taken was about a week. As a result, all of the content-protection technology (at least for HD-DVDs and Blu-Ray discs) is rendered useless. All that remains is the burden to the consumer. It lasted all of one week.
If you want to read more about the AACS crack and its potential repercussions, Ed Felten has a long and detailed analysis in his Freedom to Tinker blog. TLS security person Eric Rescorla has looked at this a bit further and concluded that this problem is more or less unfixable as long as software players exist. A side-effect is that if the content owners decide to address this by revoking the players, it affects a huge number of innocent users, and because the problem as a whole is unfixable, the attackers can force the content owners to do this whenever they please and as often as they please, a fact that's unlikely to endear the content providers to consumers. From a chess-playing perspective it appears that the content owners' threat modelling never went any further than “Hey, I can move my rook over there!”. There doesn't seem to have been any consideration of what could happen during any subsequent moves, or maybe no-one wanted to think about it. So even though the mechanisms to address this are in place, in practice it looks like AACS is CSS all over again (see [Note C] for the reasons why).
The AACS Licensing Authority in turn says that AACS has not been seriously compromised, which no doubt comes as a considerable surprise to people busy decrypting HD-DVD and Blu-Ray content. Given the legal implications for the various participants in AACS this finger-pointing contest is to be expected (you could just blame Canada, for example), but it's unlikely that anyone but the lawyers will care. In the meantime there's an ongoing arms race (or an amusing game if you're not the AACS LA) in which the AACS LA releases fixes and the opposition break them, often within a day of the fix being released. Overall it's probably safe to say that the future function of AACS will be mostly to act as a teaching example of how not to do security engineering.
(The “blame Canada” comment is a reference to a carefully-planted story in the Canadian Globe and Mail newspaper designed to influence Canadian lawmakers in their vote on Bill C-60. Another Canadian paper calls the story “mostly fiction […] much ado about nothing, featuring unsubstantiated and inconsistent claims about camcording, exaggerations about its economic harm and misleading critiques of Canadian law ”, with further analysis showing that “the industry's own data reveals that the claims are based primarily on fiction rather than fact”).
“No amount of coordination will be successful unless it's designed with the needs of the customer in mind. Microsoft believes that a good user experience is a requirement for adoption” — Microsoft.
“The PC industry is committed to providing content protection on the PC, but nothing comes for free. These costs are passed on to the consumer” — ATI.
“How do I put all these companies in a position where, regardless of what they see is in their best interest, they have to adopt your technology? […] I realized that a major part of my job was to figure out how to use technology control to create economic force, or leverage, such that money and business flowed in Microsoft's direction” — Alex St.John, father of DirectX.
“I'm not sure how the company lost sight of what matters to our customers, both business and home, the most, but in my view we lost our way. I think our teams lost sight of what bug-free means, what resilience means, what full scenarios mean, what security means, what performance means, how important current applications are, and really understanding what the most important problems our customers face are” — Jim Allchin, Platform Products and Services Group, Microsoft.
The topic of DRM is far too complex to cover here, and in any case has been extensively analysed elsewhere. In you want a good summary of the situation then I'd recommend reading There Ain't No Such Thing as a Free Lunch by book author Eric Flint. This provides an interesting view of DRM from one of the artists/content creators that DRM is supposed to be protecting. It's an extremely insightful analysis of the topic that examines the underlying business model and indeed philosophy of DRM rather than focusing exclusively on technical and legislative measures or its counterpart, “information wants to be free” jingoism. This should be required reading for anyone who works with DRM or who's interested in the background for the whole DRM debate.
So setting aside the DRM debate, the question remains: Why is Microsoft going to this much trouble? Ask most people what they picture when you use the term “premium-content media player” and they'll respond with “A PVR” or “A DVD player” and not “A Windows PC”. So why go to this much effort to try and turn the PC into something that it's not? You can get an idea of just how important content protection is to Microsoft by looking at the Windows Vista logo requirements. The primary requirement for graphics devices in the Windows Vista Logo Program isn't, as would be expected, the ability to handle a high-resolution display or display a rich palette of colours. It isn't the presence of a good quantity of memory and powerful graphics rendering. It isn't even the ability to handle Vista's much-touted Aero interface, arguably the primary reason for running Vista. Instead, the number one requirement for Windows Vista graphics device certification, “GRAPHICS-0001” in the specification, is “Display adapter supports output connectors with content protection features and provides control via PVP and COPP DDIs”. It's only the follow-on “GRAPHICS-0002” that requires that “Display subsystem meets GPU, memory, resolution, and bandwidth requirements for a premium Windows experience”. This is a pretty amazing admission, because it means that Microsoft is placing content protection above all other requirements for Vista, even the ability to handle Vista's primary feature, the Aero interface. For audio it's less critical, dropping to 14th place as “AUDIO-0014”, “Audio device implements DRM support as defined in the Windows Driver Kit”. This is probably because Microsoft haven't quite got the audio DRM sorted out yet so it's a bit hard to nail down requirements at this stage.
So why is content protection apparently Microsoft's number one priority for Vista?
In July 2006, Cory Doctorow published an analysis of the anti-competitive nature of Apple's iTunes copy-restriction system that looked at the benefits of restrictive DRM for the company that controls it. The only reason I can imagine why Microsoft would put its programmers, device vendors, third-party developers, and ultimately its customers, through this much pain is because once this copy protection is entrenched, Microsoft will completely own the distribution channel. In the same way that Apple has managed to acquire a monopolistic lock-in on their music distribution channel (an example being the Motorola ROKR fiasco, which was so crippled by restrictions that a Fortune magazine senior editor reviewed it as the STNKER), so Microsoft will totally control the premium-content distribution channel. In fact examples of this Windows content lock-in are already becoming apparent as people move to Vista and find that their legally-purchased content won't play any more under Vista (the example given in the link is particularly scary because the content actually includes a self-destruct after which it won't play any more, so not only do you need to re-purchase your content when you switch from XP to Vista, but you also need to re-purchase it periodically when it expires. In addition since the media rights can't be backed up, if you experience a disk crash you get another opportunity to re-purchase the content all over again. This is by design: as Jack Valenti, former head of the MPAA, put it, “If you buy a DVD you have a copy. If you want a backup copy you buy another one”). It's obvious why this type of business model makes the pain of pushing content protection onto consumers so worthwhile for Microsoft since it practically constitutes a license to print money.
Microsoft have been saying for some years now that they'd really like the PC to go away, to turn into a kind of media platform and content-distribution center for consumers. This was a major theme of Bill Gates' world promotional tour for Vista in early 2007, and in particular something he went into in some detail at the World Economic Forum in Davos, Switzerland. Windows MCE has been the tail and of a long line of (unsuccessful) attempts to achieve this (the only reason why MCE seems to sell at all is because it's the cheapest version of Windows that vendors can pre-install on a PC). If “premium content” ever takes off, Microsoft wants to be the central controller of all content distribution and playback — only Windows can secure the content, therefore only Windows can distribute it. Even the term “premium content” is misleading: in a few years' time, most audio and video will be produced in some form of HD format, at which point “premium content” becomes normal, and so everything is subject to content protection.
Paul Stimpson submitted an excellent analysis of this situation in which he points out that “Microsoft are being clever by releasing these protection 'features' now; The average user who goes to a computer store will get Vista but won't have either premium content or get 'premium ready' PC hardware; The ordinary person in the street can't afford a top-of-the-line machine and display. They will have a 'Vista capable' machine; Vista will look nice and not cause too much trouble or suffer from the protection overhead too much; They won't have any choice or know any different and it will be accepted. These people will dismiss any complaints they hear about these problems as a geek thing. They got their computer at the right price and it does everything they ask of it. They will only find out the truth in a few years when they buy their next computer and all machines are 'premium ready' (and fast enough to implement the protection) and every display has an HDMI connector. By that time XP will be well into its decline so there will be no going back. It's impossible to keep off the upgrade treadmill if you have Windows; Eventually you will either have to buy new hardware (with a new copy of Windows) or your out-of-support version of Windows will become such a target for malware that it will no longer be useable”.
“In today's environment these content protection features are indeed a nonsense. I don't think, however that Microsoft are thinking about today's environment beyond keeping these features low-key for most users in order to avoid rejection. In their heads Microsoft see the 'connected home' where everyone has a network and displays around the house that integrate everything from TV to email, Internet, telephone, lighting and heating. In order to do these things on your TV you need a computer attached to it and Microsoft want that computer to run Windows”.
So not only will Microsoft be able to lock out any competitors, but because they will then represent the only available distribution channel they'll be able to dictate terms back to the content providers whose needs they are nominally serving in the same way that Apple has already dictated terms back to the music industry: Play by Apple's rules, or we won't carry your content. And as the example above shows, they'll also be able to dictate terms to consumers in order to ensure a continual revenue flow. The result will be a technologically enforced monopoly that makes their current de-facto Windows monopoly seem like a velvet glove in comparison [Note K].
The onerous nature of Vista's content protection also provides a perverse incentive to remove the protection measures from the content, since for many consumers that'll be the only way that they can enjoy their legally-acquired content without Vista's DRM getting in the way. This is already illustrated in the Quotes and Footnotes sections, where the people bypassing HD-DVD protection measures aren't hardcore video pirates but ordinary consumers who can't even play their own legitimately-acquired content. The sheer obnoxiousness of Vista's content protection may end up being the biggest incentive to piracy yet created. Even without overt “piracy” (meaning bypassing restrictions in order to play legally-purchased media), it makes very sound business sense for companies to produce media-player hardware that bypasses the problem, just as they have already with region-free play-anything DVD players. Perhaps Hollywood should heed the advice given in one of their most famous productions: “The more you tighten your grip, the more systems will slip through your fingers”.
A historical feature of organisations like Beria's NKVD (and by extension any kind of state enforcers in a totalitarian society) is that the lack of any fixed goals and limits on their behaviour, the kind that would be set by the laws of a democratic country, combined with the intense paranoia of the leadership, leads to a continual extension of the security apparatus and an ongoing escalation of repressiveness by the enforcers. The result is a driftnet approach to enforcement that ends up netting more innocent bystanders than anything else. The many examples given in the rest of this writeup are an indication that Windows is already well down this path.
Overall, Vista's content-protection functionality seems like an astonishingly short-sighted piece of engineering, concentrating entirely on content protection with no consideration given to the enormous repercussions of the measures employed. It's something like the PC equivalent of the (hastily dropped) proposal mooted in Europe to put RFID tags into high-value banknotes as an anti-counterfeiting measure, which completely ignores the fact that the major users of this technology would be criminals who would use it to remotely identify the most lucrative robbery targets (in my Godzilla security tutorial I nominate this (hastily-dropped) idea as “possibly the most stupid use of RFID ever proposed”).
To add insult to injury, consider what this enormous but ultimately wasted effort could have been put towards. Microsoft is saying that Vista will be the most secure version of Windows yet, but they've been saying that for every new Windows release since OS security became a selling point. I don't think anyone's under any illusions that Vista PCs won't be crawling with malware shortly after the bad guys get their hands on them (there were already Vista exploits up for sale before the OS even hit the shelves). But what if the Vista content-protection technology had instead been applied towards malware protection? Instead of a separate protection domain for video playback, we might have a separate protection domain for banking and credit card details. Instead of specialised anti-debugging technigues to stop users getting at even one frame of protected content, we could have those same techniques combatting malware hooking itself into the OS. The list goes on and on, with all of the effort being misapplied to DRM when it could have been used to combat malware instead. What a waste. What a waste.
Where could all this stuff be heading in the future? For some years now Microsoft have been trying to introduce software-as-a-service (SaaS), where you don't pay one lump sum for an application any more but instead rent it in an ongoing series of payments. The reason for this is that they've pretty much run out of ideas for new revenue-generation features for their two flagship produces Windows and Office. If you take a typical user and dump them in front of a ten-year-old copy of Microsoft Word (Office'97) and then ask them to compare it with the latest edition (at least before Office 2007, when they radically changed the user interface) then the only obvious change is that the paperclip is gone. Sure, there's a pile of obscure little changes that 99.99% of the user base would never notice, but for the vast majority of users the functionality of Office that they actually make day-to-day use of hasn't changed in ten years.
This isn't due to any inability of Microsoft to innovate, but because there's only so many things that you can do with (say) a word processor, and at some point you've made the last meaningful change and the only thing left to do is repeatedly tweak the eye candy and bump the version number every few years.
Windows has the same problem. If you take an eight-year-old PC running Windows 98, put it next to a current PC running Windows XP (with the Fisher-Price colour scheme turned off), the typical user won't be able to tell you what's changed without a point-by-point comparison of system features from one machine to the other.
This problem is by no means exclusive to Microsoft. Here's a quick exercise: Apart from the monstrous bloat in size, what changed between Adobe Acrobat Reader 4, Acrobat Reader 5, Acrobat Reader 6, and Acrobat Reader 7? For anyone but a hardcore geek or DTP professional, the response is “ nothing”, because there really wasn't much more left to add after version 4. You can actually see this in a program called Adobe Reader Speedup, which unplugs all of the bloat from newer versions of Acrobat so that it loads and runs almost instantly, with no noticeable loss in functionality.
The same applies to any number of other software packages: After they've reached a certain level of maturity, you just run out of things to add. This is a severe problem for large software (and hardware) vendors, whose revenue streams are dependent on users upgrading to the latest version every few years. If users have a perfectly usable old PC running a perfectly usable old version of Windows and a perfectly usable old version of Office, there's no incentive to upgrade, and so by extension no incentive to provide a new revenue stream to the vendor.
Enter the subscription model for software. Instead of paying for something once and then falling off the radar as a revenue source for several years, subscription-based content and subscription-based software guarantee a continuous revenue stream for the vendor. If Microsoft controls the distribution channel for content (which is what Vista's content protection is trying to achieve) then every time you view or listen to some content (no matter whose content), Microsoft gets paid for permitting that content to be played on their system.
This new revenue model extends beyond mere content playback and into SaaS, in a manner revealed by Microsoft's patent application System and method for delivery of a modular operating system, the first portions of which we're already seeing as Vista's Windows Anytime Upgrade. This provides a scary look at Micrsoft's view of the future of computing. As the Groklaw analysis points out, “the patent is not interesting for its technical content — all the building blocks of the described system have been used for some time now — but for the glimpse it offers into the business model envisaged by the applicant”.
What the patent describes is a deliberately crippled system for which users then pay (and pay and pay and pay) for each feature that's allowed to run at it's actual capacity. Quoting from the patent application:
 An operating system is composed of a small basic kernel, often given away for free. The small basic kernel, may be used for simple operations and for basic application support. A user of the computer system may then have the opportunity to add specific modules supporting the functionality required for his or her particular interests.
 Digital rights management may be used to manage add-on modules. As opposed to the prior art, where the operating system is available in perpetuity, add-on modules may be available for limited periods of time, based on the license terms. It may also be possible to allow only certified or authorized add-on modules to be installed, enabling digital rights management to allow selective purchase by users, fraud control for providers and also to restrict unauthorized operating system extensions from being installed that may support unauthorized hardware and/or software.
(The “unauthorized operating system extensions” in this case are ones that would allow the hardware to run at its full capacity rather than restricting it in order to create a payment enforcement mechanism).
 The hardware category may include power management, removable memory support, metered disk drives, multiple processor support, increased screen resolution, increased screen color depth, 3D acceleration, and patches/bug fixes/service packs. Power management offers the user options for setting power consumption, particularly in a laptop, but also for desktop environments. Removable memory support may include capabilities for rotating media such as CD and DVD, as well as solid-state memory such as USB memory peripherals. A metered disk drive (not depicted) may provide a user with a base function for small capacity disk storage at a given speed. Advanced support for disk access may include high speed/high capacity drives as well as network drives. In a base configuration supported by the operating system, the number of processors may be limited to one, or to a fixed performance level. The operating system may support limited screen resolutions and color depth, while an add-on module may expand those capabilities. 3-D acceleration is of interest to some users is discussed further below. In the area of operating system maintenance, service packs, bug fixes, and patches have been included in the original purchase price of an operating system for prior art systems. The use of an add-on module for support of bug fixes, service packs, and patches allows users to selectively pay for only the support that is of interest to them.
 The peripheral category may include installed printers, COM ports, USB ports, telephone service, and the number of peripherals allowed. A computer functioning with the operating system may have limited peripheral support. Add-on modules may allow users to select the types, speed, and number of peripherals allowed and supported.
 The communication category may include network interfaces, such as dial up, TCP, and peer-to-peer networks, etc. A computer supported by the operating system may not include any network support for use in basic applications. Add-on modules for communication may be used to support low- speed access such as dial up, higher-speed access, for example, DSL speeds up 500 kilobits per second, or speeds up to the maximum supported by the available hardware. Communication may also be limited by type, such as support for Internet browsing separate from peer-to-peer networking.
(So absolutely everything that a computer is possibly capable of doing is crippled until payment has been received by Redmond).
 […] a power user may want specific window and background themes with associated styles, a significant number of concurrent windows, and an unlimited number of concurrent applications, up to the capacity of the hardware. A game support pack including advanced sound support, game controller support, and increased video memory may be of interest to those users primarily interested in interactive games. Users of business support applications may benefit from a support pack including high speed disk access, network drive support, and network printing, for example.
Here's a sample cost breakdown:
 […] For the sake of illustration, it is shown that add-on module 210 is available for free, add-on module 212 has a one-time charge of $6, and add-on module 214 has an ongoing charge of $2 per month.
(The numbers refer to parts of diagrams included in the patent application).
This is basically a form of blackmail in which the user's hardware is held to ransom by the operating system and only released when the appropriate amount of baksheesh has been forwarded to Redmond. As the Groklaw analysis puts it, “Why would anyone agree to something like this? Perhaps I can chalk it up to Microsoft innovating again. They must be testing the outer limits of what a customer will put up with before bolting to Linux, certainly a valuable scientific study from my point of view”. Microsoft has already quietly trialled pay-as-you-go functionality for its software in out-of-the-way countries where it won't attract much media coverage, providing applications like MS Office in a manner that gives users “the flexibility to pay over time”.
The worst thing about all of this “content protection” is that there's no escape. Hardware manufacturers will have to drink the kool-aid (and the reference to mass suicide here is deliberate [Note L]) in order to work with Vista: “There is no requirement to sign the [content-protection] license; but without a certificate, no premium content will be passed to the driver”. Of course as a device manufacturer you can choose to opt out, if you don't mind your device only ever being able to display low-quality, fuzzy, blurry video and audio when premium content is present, while your competitors don't have this (artificially-created) problem.
As a user, there is simply no escape. Whether you use Windows Vista, Windows XP, Windows 95, Linux, FreeBSD, OS X, Solaris (on x86), or almost any other OS, Windows content protection will make your hardware more expensive, less reliable, more difficult to program for, more difficult to support, more vulnerable to hostile code, and with more compatibility problems. Because Windows dominates the market and device vendors are unlikely to design and manufacture two different versions of their products, non-Windows users will be paying for Windows Vista content-protection measures in products even if they never run Windows on them.
Here's an offer to Microsoft: If we, the consumers, promise to never, ever, ever buy a single HD-DVD or Blu-Ray disc containing any precious premium content [Note M], will you in exchange withhold this poison from the computer industry? Please?
This document was put together with input from various sources, including a number that requested that I keep their contributions anonymous (in some cases I've simplified or rewritten some details to ensure that the original, potentially traceable wording of non-public documents isn't used). Because it wasn't always possible to go back to the sources and verify exact details, it's possible that there may be some inaccuracies present, which I'm sure I'll hear about.
In addition to the material presented here, I'd be interested in getting further input both from people at Microsoft involved in implementing the content protection measures and from device vendors who are required to implement the hardware and driver software measures. I know from the Microsoft sources that contributed that many of them care deeply about providing the best possible audio/video user experience for Vista users and are quite distressed at having to spend time implementing large amounts of anti-functionality when it's already hard enough to get things running smoothly without the intentional crippling. I'm always open to further input, and will keep all contributions confidential unless you give me permission to repeat something. If you're concerned about traceability, grab a disposable account at Yahoo, Gmail, or some similar provider and contact me through that. If you're worried about being identified via the machine that you connect to the email provider with, use an Internet cafe to send the message — just use standard common-sense precautions. If you want to encrypt things, my PGP key is linked from my home page.
(In case the above hints aren't obvious enough, if you work for nVidia, ATI, VIA, SiS, Intel, …, I'd really like to get your comments on how all of this is affecting you).
Because this writeup started out as a private discussion in email, a number of the sources used were non-public. The best public sources that I know of are:
(Note that the cryptography requirements have changed since some of the information above was published. SHA-1 has been deprecated in favour of SHA-256 and SHA-512, and public keys seem to be uniformly set at 2048 bits in place of the mixture of 1024 bits and 2048 bits mentioned in the presentations).
An excellent analysis from one of the hardware vendors involved in this comes from ATI, in the form of Digital Media Content Protection from WinHEC. This points out (in the form of PowerPoint bullet-points) the manifold problems associated with Vista's content-protection measures, with repeated mention of increased development costs, degraded performance and the phrase “increased costs passed on to consumers” pervading the entire presentation like a mantra.
In addition there have been quite a few writeups on this (although not going into quite as much detail as this document) in magazines both online and in print, one example being PC World's feature article Will your PC run Windows Vista? that covers this in the appropriately-titled section “Multimedia in chains”, and ComputerWorld's article Vista and More: Piecing Together Microsoft's DRM Puzzle. Audience reactions to these proposals at WinHEC are covered in Longhorn: tough trail to PC digital media published in EE Times, unfortunately you need to be a subscriber to read this but you may be able to find accessible cached copies using your favourite search engine. The EFF has an overview of the effects of Vista's revocation mechanisms in Protected Media Path, Component Revocation, Windows Driver Lockdown.
This document is licensed under the Creative Commons Attribution 2.5 License. This means that you can copy, distribute, display, and perform the work, and make derivative works, provided that you credit the original author and provide a link back to the original work (at the URL given in the title). To quote the Creative Commons site “This license lets others distribute, remix, tweak, and build upon your work, even commercially, as long as they credit you for the original creation. This is the most accommodating of licenses offered, in terms of what others can do with your works”.
The more formal section of the document ends here. The following sections contain various informal comments, thoughts, and other odds and ends. For people doing translations of this document, it's probably not worth trying to translate these sections.
This document seems to produce various reactions that come up repeatedly. To respond to the more frequently-expressed views, I've added this mini-FAQ.
It's bad-technology bashing. If this had been done by Linus Torvalds, Steve Jobs, Alan Cox, or Theo de Raadt, I'd have said the same thing about it. As far as I'm concerned computers are tools to get a job done and not a platform for religious wars, and if something's bad I'll say so regardless of who's doing it. In fact Vista overall has some really nice new technology and features built into it, it's just this one aspect of Vista that's troublesome. And just for the record I run various versions of Windows on … [counting] … seven of my machines (the rest are a mixture of Linux, FreeBSD, and occasionally Solaris and QNX), so I'd be a rather unlikely Microsoft detractor if I have their software all over my machines.
Perhaps, but then I challenge anyone to read the specifications given in the Sources section above and write a positive analysis of Vista's content protection. Someone has to point out these problems, and it happened to be me in this case, but I think anyone with technical skills who reads the relevant documents would come to a similar conclusion.
The process that leads to comments like this tends to be (1) Quickly skim through this document, (2) Decide that it sounds a bit implausible (possibly even before performing step 1), (3) Post a rant saying that it's FUD. To pick one particular example, a Digg reader's reaction to the section of text that states that there isn't sufficient CPU power available for both decompression and encryption was:
I'm sorry, where does this come from? You do realize that this is completely uncited, and very likely wrong? Entire paragraphs that follow are based on this magical detail pulled out of thin air. […] I'm no fan of this asinine DRM bullshit, but the scenarios and postulates put forth in this article are complete rubbish.
Referring to the very first source listed in the Sources section shows that this is picked not from thin air but from Microsoft's own documentation:
The problem with regular AES is that it takes about 20 CPU clocks to encrypt each byte. This is OK for compressed or semi-compressed video, but for the multiple HD uncompressed case, it is too much even for a 2006 processor [referring to the fastest CPU available at the time the document was written].
and then again:
In the case of premium content, whether video can play back smoothly when using regular AES with uncompressed video will be a function of the resolution of the uncompressed video and the power of the processor. It is unlikely to work well in 2006 for uncompressed HD premium content
If you don't believe what you've read here, go back to Microsoft's own documentation and read that (in fact read the Microsoft documents no matter what you believe, because they're quite scary). If you still think it's FUD then you can at least post informed comments about it.
“We were only following orders” has historically worked rather poorly as an excuse, and it doesn't work too well here either. This is just an example of the Dank defence. The Dank defence, as reported by former Assistant U.S. Attorney Andrew Grosso, was used by someone who was picked up carrying a shotgun in a park at night. With six previous violent crime convictions on his record, he explained his presence in the park by saying that a man called “Dank” had held a gun to his head and forced him to carry the shotgun. When the police turned up, “Dank ” ran away, leaving him holding the bag (or at least the shotgun). As the Assistant U.S. Attorney put it, “the jurors chose not to believe the defendant's story”. In Vista's case, we're being asked to believe that Hollywood is holding a gun to Microsoft's head and forcing them to cripple their flagship product and inflict all manner of pain on their business partners and customers, and Microsoft has no choice but to comply.
I choose not to believe the defendant's story. While it's convenient to paint an industry that sues 12-year-old children, grandmothers, families with no computer or Internet access, and even tries to sue the dead as the scapegoat, there's no Dank holding a gun to Microsoft's head to force them do this. There is no evidence whatsoever to show that crippling your flagship product and seriously annoying your business partners and your entire customer base will leave you better off financially than being unable to play a few HD movies, which is what Microsoft is asking us to believe. The content industry is desperate to get its content onto PCs, and it would have been quite easy for Microsoft to say “Here's what we'll do with Vista, take it or leave it. We won't seriously cripple our own and our business partners' products just to suit your whims”. In other words they could make it clear to Hollywood who's the tail and who's the dog. As security guru Bruce Schneier says, “Microsoft could have easily told the entertainment industry that it was not going to deliberately cripple its operating system, take it or leave it. With 95% of the operating system market, where else would Hollywood go?”
Here's an illustrative story about what can happen when the content-industry tail tries to wag the dog. About 10-15 years ago, music companies told a bunch of NZ TV stations that they had to pay fees in order to screen music videos. The TV stations disagreed, saying that they were providing free advertising for the music companies, and if they didn't like that then they'd simply stop playing music videos. So they stopped playing all music videos.
After a few weeks, cracks stated to appear as the music companies realised just how badly they needed the TV channels. One of the music companies bought an entire prime-time advertising block (at phenomenal cost, this wasn't a single 30-second slot but every slot in an entire prime-time ad break) just to play one single new music video.
Shortly afterwards, music videos reappeared on TV. The details of the settlement were never made public, but I imagine it consisted of a bunch of music company execs on their knees begging the TV stations to start playing music videos again and let's please never bring this matter up again.
It's the same with Microsoft, the content industry needs them as badly (or more badly) than Microsoft needs the content industry. Claiming that they're only following orders from Hollywood is a red herring — if Microsoft declined to implement this stuff, Hollywood would have to give in because they can't afford to lock themselves out of 95% of the market, in the same way that the music companies couldn't afford to cut out their primary advertising channel. Microsoft fought the US government to a standstill in its anti-trust case — they faced down a superpower to protect their products — and yet now we're supposed to believe that they jeopardised their flagship product because a few film studios asked them to. I don't buy it. The far more likely motivation for why Microsoft is doing this are given in the Final Thoughts section above.
I work in the field of computer security. It's my job to perform risk assessments of computer technology and that's what this writeup is. If I worked in marketing, it'd be my job to tell you how wonderful Vista's content handling is. Since I don't work in marketing, what you're reading is an analysis of the potential risks of Vista's content-protection technology.
If you go to a lawyer and say “I want to do X, what are the potential risks from a legal point of view”, they'll tell you the potential risks of X. If you go to a security person and ask the same question, they'll tell you the potential risks from a security point of view. The intent is to inform potential Vista users of possible risks and allow them to make their own decisions. Some of the risks may seem obscure, but it's up to you to decide what their impact on you might be and whether they apply to you or not.
Yes, someone really did send me email with this claim in it. It's silly enough that I had to include it for the amusement value :-).
There are a number of open questions about Vista's content protection that probably won't be able to be answered until some months after its wide deployment when users can report on real-life experiences, because no-one seems to know how certain things will work. If anyone has any more information on these, please let me know.
How easy is it to get HD content around the outside of Vista's content protection? The block diagrams in the specification documents show the layering as:
User-space application -------- Vista content-protection interface -------- Vista content playback subsystem -------- Vista device drivers -------- Device hardware
Reading the specs, user-space applications are expected to call down into the Vista content-protection interface to play back content (one document actually uses the metaphor of the user-space application acting merely as a remote control for the Vista content-protection and playback subsystem). The question is, can a user-space application that chooses to opt out perform an end-run around the higher-level Vista interface and go directly to the low-level interface to get its content out without Vista's content-protection getting in the way? User feedback on Microsoft's own forums indicates that even using third-party playback software like the nVidia or Cyberlink decoders instead of the Vista one will result in playback being disabled when (in this case) the Vista Media Centre trial license expired.
How will all of this affect users who want to prepare HD content, protected or not? Given that the intent of Vista's content-protection is to ensure that no HD content ever leaves the system in usable form, how do you prepare the HD content? More importantly, since Vista happens to be a multitasking OS, how do you guarantee that as your HD content is being prepared, the presence of some other protected content somewhere in the system doesn't cause it to be silently degraded for “protection” purposes? Just how deep does the protection extend? If it's on a per-task or even per-thread level then any cross-task or cross-thread mechanism (e.g. process thread injection) can be used to compromise the content protection. On the other hand if it's all your content are belong to us whenever protected content is present then innocent content will be degraded along with protected content.
If you build it, they will come. Once the DRM mechanisms are in place, there's every reason to believe that any kind of content subject to any kind of copyright will try and take advantage of it. After all, why not? The tools are there, there's no reason not to use them. We already have so-called Enterprise DRM (E-DRM) and Information Rights Management (IRM) that's intended to control access to documents like Microsoft Word, PDF documents, CAD files, and so on (about 20 years ago during the heyday of the DoD Orange Book this stuff was known as ORCON, originator-controlled access control). Now that DRM is integrated into Vista as a core technology there's no knowing how far this can be taken in the future. Indeed Bill Rosenblatt, managing editor of Jupiter Media's “DRM Watch” sees enterprise DRM as a major growth area for Vista's content-protection technology. What will computing be like in a few years time?
I've both read on the web and received via email endless reports of people unable to play HD-DVD and Blu-Ray content on Windows PCs, both Vista (beta) and XP. Has anyone actually been able to play HD-DVD or Blu-Ray content (i.e. the material that Vista classes as premium content) under Windows at HD quality levels (i.e. without resorting to hooking up an analog monitor or something similar)? If so, what HD drive, player software, graphics card, and monitor did you use?
(So far alongside a great many reports of people being unable to play any HD content at all I've received one report of someone who managed to play back HD-DVDs. Equipment used was an XBox360 (functioning as the HD-DVD player), an nVidia 8800GTX with HDCP (a top-of-the-line graphics card currently selling for around $600), and a Westinghouse 37w3 with HDCP on the DVI input (a 37″ LCD display currently selling for around $1,200).
In mid-January 2007, Microsoft responded to some of the points in this writeup. Some of the material was new and interesting (for example clarifying just what actually gets revoked when a driver revocation occurs), other parts seem more likely to have come from Waggener Edstrom (Microsoft's PR firm) than Program Manager Dave Marsh (The Inquirer wasn't too impressed by it either). I've updated the body text based on some of the clarifications, but for things that aren't directly relevant to the main text (which means the PR-spin items) I'll comment on them here. The important technical clarifications that affected the main body of the writeup are (1) exactly what happens when a driver is revoked, (2) what happens when a tilt bit triggers, and (3) which portions of the output are affected when content degradation takes place. The content-protection specifications were previously somewhat unclear about these various consequences of the protection mechanisms, so it's good to have this clarification on exactly what occurs.
Since the portions that I'll comment on here are PR-related rather than technical content, the following section is an attempt to respond directly and try and unravel the PR spin. The technical comments have been integrated into the main body of the writeup.
No. HFS uses additional chip characteristics other than those needed to write a driver. HFS requirements should not prevent the disclosure of all the information needed to write drivers.
This claim is directly contradicted by a document by the same author that states:
“Such tests could involve loading a surface with an image, and then getting the chip to apply various visual effects to the image and reporting back the resulting pixels”.
and then later on:
“The internal workings of the graphics chip must be kept secret, such that a hacker building an emulator could not find out the required information”.
So this document, the primary reference for Vista's content protection, states exactly the opposite of what's said in Microsoft's response, namely that standard chip functionality (in this case graphics rendering in a GPU) is exercised for HFS, and that the device details have to be kept secret to prevent someone emulating the functionality.
Everything was moving to be integrated on the one chip anyway and this is independent of content protection recommendations. Given that cost (particularly chip cost) is most heavily influenced by volume, it is actually better to avoid making things optional through the use of external chips.
While it's certainly tempting to quote the Slashdot response “Whose ass was this assertion pulled out of?”, I'll provide a bit more context. This comment, that the overhead of Vista's content protection will lead to cheaper hardware, comes from a Microsoft product manager responsible for the content protection. An ATI product manager responsible for producing the actual hardware says:
“These costs are passed on to the consumer”
“This cost is passed on to all consumers”
“This cost is passed on to purchasers of multimedia PC's”
“Costs are passed on to consumers”
“Costs are passed on to consumers, especially early adopters”
I'll let you decide who to believe.
(Another problem with this unification of hardware is that it leads to problems like the erroneous triggering of content-protection measures that's described in Decreased System Reliability).
Yes. However, the use of additional CPU cycles is inevitable, as the PC provides consumers with additional functionality.
Note the careful use of the term “additional functionality” rather than “enhanced functionality”. Vista's content protection actually provides reduced functionality (as the main body of the writeup goes into in great detail), so the comment is pretty much confirming what's in the writeup. Vista users have already complained about the excessive CPU usage of a Vista component called “Media Foundation Protected Pipeline” (here's a screenshot of it in action), complaining of it pegging the CPU at 100% load on startup and then staying at 10-20% CPU during playback. One user complained of it consuming 50% of the CPU on his 3GHz Pentium 4 machine under Vista, while there had been no problems under XP. Another user observed that this process also runs for DivX and XviD files, implying that it's always active even if no premium content is present. Another DRM-enabled piece of Windows audio, the somewhat problematic AudioDG Vista audio engine host, has similar resource problems.
The exact nature of this Media Foundation Protected Pipeline is somewhat mysterious, it's present as a 24KB protected executable mfpmp.exe in the System32 directory. The process only shows up with Windows Media Player, not with other players like VLC or WinAMP, and even then only when certain content like MP3s or video is played. It doesn't show up for older/simpler content like WAV files, but then again it does show up for non-protected content. Karel Donk has done some further testing with this and reports that:
“While playing an MP3 file in WMP, I ended the “mfpmp.exe” process, and then sound stopped, but WMP still worked. I then pressed stop in WMP and then Play again and the MP3 file started playing, but this time through wmplayer.exe itself. It probably detected something wrong with the “mfpmp.exe” and fell back to another playback path I think. Can't be sure. A few seconds later, “mfpmp.exe” did appear again, but with 0 CPU usage as the file was playing through WMP. I had to restart WMP in order for the MP3 to play again through “mfpmp.exe””.
Another user has reported:
“Whenever I play .mp3 and .wmv files in WMP11(unprotected, I assume, as they are the example videos that come with Vista itself) mfpmp.exe shows up in the task manager and uses between 5 and 15% of the available CPU cycles”.
A way to put Microsoft's response into perspective is to rephrase the question to “Will viruses increase CPU resource consumption?”, to which the answer is also “Yes. However, the use of additional CPU cycles is inevitable, as the PC provides consumers with additional functionality” (like spamming, phishing site hosting, and so on).
Similar to S/PDIF, Windows Vista does not require component video outputs to be disabled, but rather enables the enforcement of the usage policy set by content owners or service providers, including with respect to output restrictions and image constraint.
So that would be a “Yes” then. This is another one of the sections that seems likely to have had Waggener Edstrom influence.
We believe that Windows Vista provides applications with access to sufficient information to successfully build high quality echo cancellation functionality.
The reason why I brought up the issue of echo cancellation in the first place is that a document by Dave Marsh, the same person who wrote the above text, states that content protection interferes with echo cancellation. The above text says that it doesn't. These statements can't both be right.
It is better if they show as different codec types, as it allows the difference to be reflected in the UI, thus providing the user help with their configuration and creating a better user experience. The user wants to know the difference between HDMI and S/PDIF, as they are different physical connectors.
From reading the slashdot comments on this, it's nice to see that I wasn't the only one who immediately thought of Orwell when they read this reply:
War is peace!
Slavery is freedom!
We have always been at war with the consume^H^H^H^H^H^Hpirates!
This is another one of these twilight-zone comments that seem to crop up again and again when discussing Vista's content protection. The HDMI designers had very good reasons for making HDMI's audio S/PDIF-compatible, as discussed in the section Elimination of Unified Drivers above. Arguing that creating an artificial difference between the two because it gives users more control is like arguing that manual gearboxes are better because they provide more control — this may (technically) be the case, but unless you're an F1 driver you're probably not going to appreciate this very much. Less is more. War is peace.
(A further twilight-zone DRM comment comes from Macrovision, the company that made the copy-protection system that prevented a film-maker from viewing his own movies, which claimed that DRM increases not decreases consumer value. John Gruber has helpfully provided a translation of Macrovision's comments from PR-speak into plain English that you and I can understand).
No. The Windows Vista content protection requirements do not require that graphics hardware include hardware acceleration for decode for many years, but such support is highly recommended to improve the user experience for HD content.
Like the comment about echo cancellation above, my source for this is also the original document by Dave Marsh. Here's the text straight from the original document:
“It is a PVP-UAB requirement that discrete graphics chips implement at least iDCT and Motion Comp decode acceleration for MPEG2 and Windows Media® Version 9/VC-1”.
As with the comments on HFS and echo cancellation, those statements can't both be right.
There are other minor nits with Microsoft's response, but it's minor stuff and not worth picking through here.
In my spare time I engage my obsesssion with photography, and if I had just a little bit more spare time than that the link would probably take you to a proper Flickr gallery rather than a bare web page. In addition to this, I seem to have recently taken up a second full-time job as spokesperson for Vista content security. If you feel the need for even more background info, there was a news story about all of this available that provided some more detail, but it's expired from the paper's site (in any case count yourself lucky that the online version doesn't include the photo of me). You can still get a saved copy of the story from Archive.org.
This document was originally written for a technical audience and so used a number of technical terms that would have been familiar to its target audience but not to the general public. This glossary provides a few basic definitions, for more details see your favourite online source, for example Wikipedia.
(More definitions to come).
A few fun quotes, included for amusement value.
“I propose that each copy of the OS should ship with an orange jumpsuit and sensory deprivation goggles, since all Vista users have been unilaterally declared 'enemy combatants' by the content apparatchiki ” — Daniel Nevin.
“Windows Vista? And what a vista! All you see as you look around your garden is a 60foot high brick wall” — Crosbie Fitch.
“When you download licenses for protected content, you agree that Microsoft may include a revocation list with the licenses […] content owners may ask Microsoft to revoke the software's ability to use WMDRM to play or copy protected content” — Windows Vista EULA.
“[Microsoft researcher] England has a bold plan to improve the PC and make it a secure delivery system for audio and video. England's solution involves making minor modifications to the PC's hardware to allow Microsoft to make a secure version of the Windows Media Player. Essentially, this would turn the PC into a record player as far as music is concerned” — Microsoft Research News.
“This is obviously some strange use of the word 'improve' which I've previously been unaware of” — Arthur dent.
“welcome to the new world of DRM where expensive pieces of hardware across the world could potentially be remotely rendered useless by over-zealous copyright holders. Way to go, Hollywood!” — Chip Mulligan.
“I can not only say that the idea [of tilt bits] is basically insane, but I can also see hardware manufacturers refusing to implement tilt bits, or more likely, faking their functionality” — Dave Walker.
“I purchased a new DVD/SACD player (w/HDMI out), surround- sound receiver/amp (non-HDMI i/o — they're still too expensive for me), & LCD TV with HDMI input. My DVD/SACD player was connected to the SSamp via a nice single simple optical cable (& HDMI cable to the TV). I figured that would be all I need, keeping a digital path all the way to the SSamp (& TV). Wrong! It worked beautifully until I played my one & only SACD. No sound came forth! Huh? I read the DVD/SACD player manual: in brief small print, 'When playing SACDs, audio is output only from the 5.1ch RCA analogue outputs' ” — Anthony May.
“This is SACD silence, the purest silence known to man — It's premium and must be protected at all costs!” — Paul Stimpson.
“I can't playback HD because I need to upgrade my 2 (SLI'd) Nvidia Quadro 4500's (~$2000) to a $200 FX7600GT because it supports HDCP. I can't wait till someone cracks this DRM/HDCP/AACS crap” — “Sy”.
“I've just had my first experience with HD content being blocked. I purchased an HP Media Center PC with a built-in HD DVD player, together with a 24″ 'high definition' 1920 × 1200 HP flat panel display (HP LP2465). They even included an HD movie, 'The Bourne Supremacy'. Sure enough, the movie won't play because while the video card supports HDCP content protection, the monitor doesn't. (It plays if I connect an old 14″ VGA CRT using a DVI-to-VGA connector)” — Roger Strong.
“when I disable my HD monitor, I can watch the movie, on my old VGA screen, but, what is the point of having a HD monitor and not being able to watch a HD movie on it” — “muslix64” (muslix64 was so upset at not being able to play his legitimately-purchased movies on his legitimately-purchased monitor attached to his legitimately-purchased player that he broke the AACS protection just to be able to see his own movies, see How Effective is it Really?).
“With the HD-DVD, I wasn't able to play my movie on my non- HDCP HD monitor. Not being able to play a movie that I have paid for, because some executive in Hollywood decided I cannot, made me mad… I'm just an upset customer. My efforts can be called 'fair use enforcement'!” — “muslix64”, author of the HD-DVD and Blu-Ray cracks.
“I build 2 Media Center 2005's one for Satalite and one for Cable TV. Never had a problem recording my kid's show's. Upgraded to Vista MCE/Ultamite and like most people not able to record there 'Standard definition' HBO. I cannot record the show Avatar: The last airbender. So abviously the technology existed but now with Vista's DRM it is now being envorced much more strictly then the previous operating system's Microsoft has made” — “Lupo”.
“Thanks alot, Muslix64 [author of the HD-DVD crack] you're not the only one with a monitor/vid card that doesn't support hdcp, your work is greatly appreciated” — “yodoso”.
“[Vista] refuses to send content through the component output for my plain jane video files. So the content system disables all content through the non protected output. Its listed in the nvida vista driver news that vista's content protection disables this output [See “NVIDIA Features No Longer Supported towards the end of the page ”]. Many forum posts, search engine results for problem. Content protection is active in some form, as I can attest. The mere disabling of UNPROTECTED output while playing UNPROTECTED content is proof enough as far as im concerned.” — Kevin Cripe.
“The funny thing is that I cant see how HDCP will actually even prevent piracy. In fact the only thing I can see it doing is encouraging piracy because everyone whose bought a new computer/monitor/HDTV in the last few years which don't have HDCP are now screwed out of the several thousand dollar purchases. So instead of buying new products they will turn to pirated/cracked Blu-ray/HD-DVDs which will work without the HDCP” — “Gizza”.
“The HDCP scheme will serve to make the illegal product the most full featured and least restrictive, and thus the most attractive to the consumer. Add in the expense of buying new equipment to view the legal content (when existing equipment is perfectly capable) and the performance drain imposed by in-line encryption/decryption and they've put out the biggest incentive to piracy yet” — “Greg”.
“The HDCP (high-definition content protection) overlords are coming to get us. They are basically saying you can't watch video unless you have a digital monitor and a special video card that supports the end-to-end content protection they have built; So that you, the un-trusted-consumer-who-bought-their-expensive-product, can't possibly make backup copies or anything else with that fancy new HD-DVD or Blu-ray disc you have” — “verifex”.
“Digital rights management technology will still fail to prevent widespread infringement. In a related development, pigs will still fail to fly. I predict that every year, and it turns out to be true every year” — Ed Felten.
“The whole premise of the PC is that it's a UNIVERSAL MACHINE, a machine that can do anything any other machine can do. I have a horrible feeling that Bill may have lost sight of this original vision. But if he does it the consequences will be catastrophic for him. If the Vista PC is so hobbled that it can't play the role of a universal machine in the household, then you might as well throw it out the window and just get separate components that do separate functions - i.e. bang goes the PC's raison d'etre” — Peter Stewart.
“Microsoft wasted no time; it issued a patch three days after learning about the hack. There's no month-long wait for copyright holders who rely on Microsoft's DRM. This clearly demonstrates that economics is a much more powerful motivator than security” — Bruce Schneier on Microsoft's DRM re-enabling patch for FairUse4WM.
“As a not-so-long-ago electronics design engineer, I can imagine the rage & pain felt by engineers & their employers […] This is total insanity from anyone's perspective except the content providers, and they don't care because it's everyone else who's picking up the tab for it!” — Anthony May.
“Good job, industry! Spend an incredible amount of time and effort developing the next generation of video quality only to step on it BEFORE THERE'S EVEN A DECIDED UPON STANDARD in the name of Copy Protection which will just be outflanked by a couple of 14 year old hackers and distributed over BitTorrent anyway” — “SweetMercury”.
“By any standard, Vista's new DRM capabilities hardly qualify as a selling point; after all, it's hard to sing the praises of technology designed to make life harder for its users” — Matt McKenzie, Computerworld.
“Why would anyone agree to something like this? Perhaps I can chalk it up to Microsoft innovating again. They must be testing the outer limits of what a customer will put up with before bolting to Linux, certainly a valuable scientific study from my point of view”. — Groklaw.
“Sony, MS, movie studios… here's the deal. You've screwed up so bad that i'm not buying either HD drive option until they're so cheap that I end up getting one included with my computer because it was the minimum optical drive” — “zweben”.
“When screwing the customer is one of the FEATURES of a product the people selling it are #$#$%$% morons!” — “JWW”.
“I was reminded of a quote from a Disney executive that I read a while ago [in the Economist]. The quote is: If consumers even know there's a DRM, what it is, and how it works, we've already failed. If I went to play premium content and all that shows up on my monitor is a message telling me that part of the display process isn't supported by content protection, this would scream DRM to even the most unsavvy users” — Steven Grueber.
“I could not be more skeptical about the viability of the DRM included with Vista, from either a technical or a business standpoint. It's so consumer-unfriendly that I think it's bound to fail — and when it fails, it will sink whatever new formats content owners are trying to impose” — Matt Rosoff, lead analyst, Directions On Microsoft.
“The [AACS] design prevents legitimate purchasers from playing legitimately purchased content on legitimately purchased machines, and fails to prevent people from ripping the content and sharing it through bittorrent. The DRM people wanted something that could not be done, so unsurprisingly they winded up buying something that does not do it” — James Donald.
“Music executives have come to realise that DRM simply doesn’t work. It is supposed to stop unauthorised copying, but no copy-protection system has yet been devised that cannot be easily defeated. All it does is make life difficult for paying customers, while having little or no effect on clandestine copying plants that churn out pirate copies ” — “Criminalising the Consumer"”, The Economist.
“The net effect of these concerns may constitute the real Vista revolution as they point to an unprecedented loss of consumer control over their own personal computers […] Vista seemingly wrestles control of the 'user experience' from the user ” — Michael Geist, Canada Research Chair in Internet and E-commerce Law at the University of Ottawa, Faculty of Law.
“There has to be a whole new division at Microsoft. The 'Office of Consumer Apology' or something. Responsible for 'I'm sorry your content didn't PlayForSure. That isn't meant to be literal you know' and 'yes, I know you're supposed to be able to play HD at full resolution, but you see, your cable has a kink in it, which changed the electrical characteristics slightly and, well, I guess I'm just sorry'” — Blake Ramsdell.
“Microsoft could have easily told the entertainment industry that it was not going to deliberately cripple its operating system, take it or leave it. With 95% of the operating system market, where else would Hollywood go? […] This isn't about stopping pirates and the small percentage of people who download free movies from the Internet. This is about the overwhelming majority of honest users and who owns the distribution channels to them. And while it may have started as a partnership, in the end Microsoft is going to end up locking the movie companies into selling content in its proprietary formats.” — Bruce Schneier in Forbes Magazine.
“DRM causes too much pain for legitimate buyers […] There are huge problems with DRM” — Bill Gates (reported by blogger Michael Arrington).
“The only reason this debate over DRM as it applies to electronic text is still going on is simply because our opponents have what amounts to a quasi-religious and sometimes downright hysterical blind faith in the magic powers of DRM. As a test of competing business strategies in the real world of economic intercourse, the debate is over. We won, they lost — and it was a rout.” — Eric Flint, content producer and artist.
“Looking for a Senior Software Engineer/Designer to work on our Digital Rights Management (DRM) technology. Must […] have a strong understanding of consumer expectations and behaviors in this space” — email I got from a recruiter. Maybe they're trying to generate power from the matter/antimatter reaction arising from “have a strong understanding of consumer expectations” and “work on our DRM technology”.
“your latest girly moan bitch rant is making the rounds on every news site just about isn't it? are you on cnn yet? are women throwing their panties at you?” — A friend (who requested anonymity).
Note A: This comment was inspired by Sir Gerald Kaufman's similar comment about the British Labour Party's 1983 election manifesto, which resulted in Labour turning in its worst election results since its founding (it was so bad that Labour's opponents in the election reprinted and distributed it themselves. Maybe Apple could take a hint from this and use Microsoft's content-protection details in their advertising for OS X). At 44 pages, Microsoft's “Output Content Protection and Windows Vista” document squeezes out Labour's 37-page manifesto to take the crown.
Note B: This document uses “cost” in the sense of “penalty”, “damage”, “harm”, “injury” and “loss” rather than the more financial “expense”, “outlay”, and “price”. A full financial analysis would require a top-to-bottom internal audit of the design, development, production, distribution, support, and legal costs for each vendor involved, something for which even the vendors themselves would have difficulty producing a precise figure.
Note C: In order for content to be displayed to users, it has to be copied numerous times. For example if you're reading this document on the web then it's been copied from the web server's disk drive to server memory, copied to the server's network buffers, copied across the Internet, copied to your PC's network buffers, copied into main memory, copied to your browser's disk cache, copied to the browser's rendering engine, copied to the render/screen cache, and finally copied to your screen. If you've printed it out to read, several further rounds of copying have occurred. Windows Vista's content protection (and DRM in general) assume that all of this copying can occur without any copying actually occurring, since the whole intent of DRM is to prevent copying. If you're not versed in DRM doublethink this concept gets quite tricky to explain, but in terms of quantum mechanics the content enters a superposition of simultaneously copied and uncopied states until a user collapses its wave function by observing the content (in physics this is called quantum indeterminacy or the observer's paradox). Depending on whether you follow the Copenhagen or many-worlds interpretation of quantum mechanics, things then either get weird or very weird. So in order for Windows Vista's content protection to work, it has to be able to violate the laws of physics and create numerous copies that are simultaneously not copies.
(Someone has pointed out that Microsoft is trying to implement a quantum encryption channel in software that attempts to make premium content non- observable, detecting problem states and discontinuing transmission if any are observed).
A simpler explanation of the problem faced by DRM authors is provided by Cory Doctorow: “For DRM to work, it has to be airtight. There can't be a single mistake. It's like a balloon that pops with the first prick. That means that every single product from every single vendor has to perfectly hide their keys, perfectly implement their code. There can't be a single way to get into the guts of the code to retrieve the cleartext or the keys while it's playing back. All attackers need is a single mistake that they can use to compromise the system”.
Note D: I'll make a prediction at this point that, given that it's trying to do the impossible, the Vista content protection will take less than a day to bypass if the bypass mechanism is something like a driver bug or a simple security hole that applies only to one piece of code (and can therefore be quickly patched), and less than a week to comprehensively bypass in a driver/hardware-independent manner. This doesn't mean that it'll be broken the day or week that it appears, but simply that once a sufficiently skilled attacker is motivated to bypass the protection, it'll take them less than a day or a week to do so.
Note E: There is SCMS, but that has all the effectiveness of a “Keep out” sign.
Note F: Incidentally, if anyone wants to send me one of these amazing 27″ monitors for, uh, evaluation purposes, I promise to evaluate it and return it by 2012.
Note G: The question of how content producers other than the major studios who can afford expensive custom equipment are supposed to create and manipulate high-definition content has been raised by a number of readers. For example one contributor who works with people in the content industry comments that “I have seen [smaller content producers] going from just recording weddings and the like, to ones that have gone all the way to make a full featured movie. They have gone through problems like where to edit HD material, which cameras to use, which format, etc. Their decisions have been based on availability of equipment to make their projects, not really costs”. It has been suggested that the large content producers are quite happy with this situation, since it prevents any competition from more innovative, creative, and agile newcomers.
Note H: I see some impressive class-action suits to follow if this revocation mechanism (“bricking”) is ever applied. Perhaps Microsoft or the content providers will buy everyone who owns a device that inadvertently leaks content and is then disabled by the revocation process replacement hardware for their system, although that will in turn trigger the WGA time-bomb.
For anyone who's read Guns of August, the situation seems a bit like pre-WWI Europe with people sitting on step 1 of enormously complex battle plans that can't be backed out of once they're triggered, no matter how obvious it is that going ahead with them is a bad idea. Driver revocation is a lose/lose situation for Microsoft, they're in for some serious pain whether they do or they don't. Their lawyers must have been asleep when they let themselves get painted into this particular corner — the first time some “feature” of Vista's content protection inadvertently takes out a hospital, foreign government department, air traffic control system, or whatever, they've guaranteed themselves a front-row seat in court for the rest of their natural lives.
(Several people have suggested that this move was deliberate in order for the lawyers to guarantee themselves lifetime employment, but this seems highly unlikely. Firstly, lawyers have an obligation to protect their clients, so deliberately getting a client into trouble in order to generate more work would be a severely career-limiting move. Secondly, they're corporate in-house counsel rather than independent counsel, so they'll get paid anyway. Making more work for themselves would not be a big priority for them).
Note I: Some insider comments indicate that it'll be mid-2007 at least before Vista's non-Microsoft graphics and sound drivers are finished enough to be stable and reliable. Vendors were still frantically rushing to get drivers ready in time for Vista's release (they didn't even make it onto the RTM media and will have to be downloaded after the install), but even those have been described as 'beta-quality at best'. Now that Vista is publicly available, you can use Google to find all the problem reports arising from not-quite-ready-yet drivers.
Note J: The Enterprise and Ultimate editions of Vista do feature this type of encryption (BitLocker) (to quote Microsoft “all user and system files are encrypted”), but the features of these high-end versions will never get into the hands of typical users. What's really important is to provide swap-file encryption for all users of all versions of Vista (independent of whether they use BitLocker), since that's what contains copies of sensitive in-memory data. The OpenBSD approach of generating a random swap-file encryption key at boot time and encrypting any memory data that gets paged to disk is the correct way to handle memory protection. Oddly enough, Windows Readyboost does encrypt all data swapped to a USB drive so the technology is present and active in Vista, it just doesn't seem to be enabled for disk swap files instead of USB swap.
Note K: Video and audio playback aren't the only areas in which Vista's inner control freak comes to the fore. A Gamasutra article Vista Casts A Pall On PC Gaming looks at Vista's new Game Explorer “feature”, which subjects all games to parental controls. Any games vendor who can't afford to obtain an extremely expensive ESRB rating has their software treated as “Not Rated”, the equivalent of the MPAA's X-rating for films which was originally intended to mean “Not Rated” (for example the multiple Oscar-winning Midnight Cowboy is an example of an early X-rated film) but has since become synonymous with hardcore porn (Midnight Cowboy was later re-rated R). Obviously any parent would block Not-Rated content, which means that anyone who can't afford to pay the ESRB (in other words any small, independent game producers, including the ones most likely to produce free and low-cost family-rated games) can't work with Vista's Game Explorer. Alex St.John, Microsoft's gaming evangelist, calls the Game Explorer “a roadblock right in the center of the screen that developers and users are going to have to maneuver around”. This seems like yet another area of Vista in which the words “anticompetitive” and “class-action” will feature prominently in the future.
Note L: The “kool-aid” reference may be slightly unfamiliar to non-US readers, it's a reference to the 1978 Jonestown mass-suicide in which Jim Jones' followers drank Flavor Aid laced with poison in order to demonstrate their dedication to the cause. In popular usage the term “kool-aid” is substituted for Flavor Aid because it has more brand recognition. There's also an earlier, less well-known link to fruit juice laced with LSD, I'll avoid the obvious comment linking that and some of the thinking behind Vista's content protection.
Note M: If I do ever want to play back premium content, I'll wait a few years and then buy a $50 Chinese-made set-top player to do it, not a $1000 Windows PC. It's somewhat bizarre that I have to go to communist China in order to find vendors who actually understand the consumer's needs.
A reductio ad absurdum solution to the “premium-content problem”, proposed by a Slashdot reader, is to add support to Windows Vista for a black-box hardware component that accepts as input encrypted compressed premium content and produces as output encrypted (or otherwise protected) decoded premium content. In other words, move the entire mass of hardware, driver, and software protection into a dedicated black box that's only used in media PCs where it's (arguably) required.
Now compare this add-on black box to the canonical Chinese-made $50 media player. Why would anyone buy the black box (which will almost certainly cost more than $50) merely as an add-on to their already-expensive PC when they can buy a complete dedicated media player that does the same thing and more? A BBC World Service commentator agrees, people will just buy dedicated players instead of using Vista. In fact the entire market's reaction to Windows Media Centre PCs has been a single colossal yawn, with HP, the last remaining major MCE vendor, dropping its entire product line in early 2007. What's left now is a bunch of “niche players making nice products […] but they're not HP or Dell or Gateway or Alienware for that matter. In other words, they're not mass-market products”. As HP channel development manager Doug Robert put it in a piece of doublespeak that would make any politician proud, “This not a statement about Media Center PCs. It doesn't mean Media Center isn't going to be successful. It's just that we're discontinuing development”. Compare this to something like the MediaGate 350, a Korean-made player that's small, silent, fits in with current A/V gear, and plays back HD video at full 1080p resolution over a DVI connector, with no DRM encumbrance anywhere in sight. This player, just one example of many currently available, is everything that a Media Center PC isn't: Inexpensive, silent, small, fits into the living room, and non-crippled. It's not surprising that vendors are discontinuing development of Media Center PCs.
(It's possible that people in countries conditioned to region-locked minimal-functionality DVD devices may not understand the appeal of one of these low-cost players. For about $50 you'll get a totally region-free PAL + NTSC DVD player with upscaling to 1080i that plays pretty much anything you can get onto a CD or DVD, not just the usual DVD, VCD, and SVCD formats but also MPEG4/DivX, XviD, and so on. Add another $10-20 and you get features like an SD/CompactFlash card reader, a USB interface, 1080p, and DVI and HDMI output. So with a slightly more expensive player and an external USB drive or SD card to hold the content I get everything that Microsoft is promising us for Vista, but without any crippling and without the high cost, size, and ungainliness of a full-blown PC in my living room. It's really no contest).