|
|
|
January 1st, 2007
07:42 pm - Disasters of Commerce: HDCP So, while the console wars look good for Microsoft, not everything does, and the source of the troubles is the same as Sony's -- high-definition DVD formats.
There are two competing high-definition content formats, Blu-Ray and HD-DVD. Both, however, are controlled by the content industry (i.e. the MPAA and the movie studios, and their friends in the RIAA.) And both specify a copy-protection scheme called HDCP in order to play high-definition content.
HDCP is basically "when copy-protection attacks." The scheme is ludicrously aggressive; it is to technological copy protection what the DMCA was to legal copyright (i.e. it takes it far beyond a reasonable level and treads on everyone else's rights.)
HDCP requires that there be a secure path from the content to an analog output (i.e. the screen.) So to play a disc in high-definition, you need an HDCP-encrypted disc, an HDCP-compliant disc player, an HDCP-compliant cable connecting it to the screen, and an HDCP-compliant screen (TV or monitor.) So no existing technology from more than about a year ago will work (nor will most of what you can buy now.) Each of these devices has to present encryption keys to decrypt a title key on the disc; if any of them fail, the other HDCP-compliant devices will refuse to provide data at high resolution. So your $1000 Blu-Ray/HD-DVD player becomes a $60 standard-definition DVD player instead if any device doesn't play by the rules.
What's more, every disc has a certificate revocation list that can tell compliant devices to self-destruct, or to tell compliant devices about formerly-compliant devices that can no longer be trusted. Essentially, all HDCP compliant devices are not under your control as the owner -- they are totally under the control of every HDCP-compliant disc you put under them. If some hacker in Russia figures out how to make the brand of TV you bought send an unencrypted digital output, then the movie studios have the option of pressing a revocation onto all future movie discs that, when played on your DVD player, will tell your DVD player that your TV is no longer trusted and the player can never play an HDCP-compliant disc on that TV ever again. There is nothing you can do about this as the user.
This is merely bad for consumer electronics devices. It can, however, be pretty bad -- as HDCP chips will likely be manufactured by only a few companies and bought by a host of others. Thus, if the movie industry decides to revoke a chip because some Chinese piracy company made a "DVI amplifier" (i.e. a box that coverts the HDCP-compliant HDMI cable into an unencrypted digital DVI cable) using the same chip as your perfectly-legitimate DVD player or TV, you're screwed.
However, this is abominable for makers of general-purpose devices like computers. Microsoft, with Windows Vista, has capitulated to the content providers almost entirely, for reasons I do not understand. (The movie industry is not their customers -- so why are they so willing to do whatever the movie industry says? It seems daft, but they must have a reason.) Windows Vista is an HDCP-compliant operating system, which makes your computer under the control of any HDCP-compliant disc you put into it. Or any HDCP-compliant file you download and play.
Complying with the super-agressive HDCP specification means that whenever protected content is playing anywhere on the system, Vista:
- will disable all non-HDCP digital audio or video outputs (so much for S/PDIF, DVI, and component video) if requested by the HDCP-compliant disc or file
- will disable the ability of the computer to monitor its own audio and video output (there goes echo cancellation on microphones and antialiasing on video)
- will degrade the quality of all audio and video output to non-HDCP outputs to ensure that they are not up to high-definition quality
- will require all drivers to be signed by Microsoft (so hackers can't put together open-source drivers to support old hardware)
- will break unified drivers as are used by all current video cards (every model of card will need to be signed separately; otherwise, a revocation of one device will kill a video card maker's entire product line, a risk none would be willing to take)
- will have intentional lack of fault-tolerance on all audio-visual playback subsystems (if the system detects any sort of warning or other possible anomaly, it's required to kill off the entire high-def playback system because it could possibly be a hacker trying to watch a movie unencrypted.)
- will require all drivers to be approved by "at least three major Hollywood studios" if they affect the audio/visual output path
- will require hardware not to have missing or socketed components. Basically, this breaks hardware versioning -- right now, a low-end video card is just a high-end card with some parts removed. Hardware manufacturers will not be able to do this with Vista devices, and thus will need to spend money designing separate cards
- will incur heavy encryption overhead on practically everything it does
The really scary thing, though, is that all of these parts of the system obey not the user, but the HDCP-compliant content. Essentially, many parts of Vista are constructed with "degrade functionality" and "self-destruct" code that can be triggered by the movie studios. As a security professional, I find this really scary. Sure, it's all protected by strong cryptography normally, and nobody's going to break that. But what happens when either a.) someone at a movie studio leaks a legitimate HDCP content private key, allowing hackers to create their own "official" HDCP-compliant content that has absolute control over people's computers, or b.) some hacker figures out how to invoke the degrade APIs manually? Chances are, the "don't work" button is not nearly as well protected as the "work" button. This could make for some really nasty viruses and worms.
You know what's really sad, though? For all this, the system won't work. It won't actually stop piracy, or even seriously impede it. It will be broken as fast as movies are released (right now, nobody cares about HDCP because nobody actually wants a high-definition DVD player; Blu-Ray and HD-DVD both have a market penetration of effectively zero.) The problem is twofold: that copy protection is subject to "break once, break everywhere," and that it's attempting to do something that is truly, provably impossible.
The first problem is that if one device is made that will handshake with HDCP and play unencrypted data, pirate distributors will all buy that device and use it to make unencrypted movies. I don't need to break any encryption on a DVD to download Superman Returns off the Internet -- I just need one guy somewhere in the world to rip it, and then upload it in clear for everyone else in the world. HDCP requires perfection. Now, they try to get around this problem with certificate revocation lists, but this will be a serious political problem, because if an actually popular device is flawed, the movie industry will be forced to either accept the flaw, or issue a disc that breaks that device for everyone, including legitimate buyers. They'll try to get the manufacturer to eat the cost of a recall, of course, but if this happens repeatedly, consumers will get sick of it right quickly.
The second problem is the Church-Turing Thesis. There's no way for a piece of software to know it's running on real hardware. If I want to crack HDCP (seriously, and I have a lot of time and resources to devote to it), I don't do it on a Windows Vista machine using an HDCP-compliant video card. I do it on a simulation of a Vista machine running a simulation of an HDCP-compliant card, where both simulations have access to the real thing and can use it to carry out operations for them. The movie industry can make doing this really hard, but they can't make it impossible, because the real apparatus has to be able to decrypt the movie and play it. Essentially, they have to give all of us the keys to the kingdom, but stuck in boxes that try to keep us from getting them. This wouldn't be so bad for them due to the difficulty of this attack, but with a break-once-break-everywhere problem, the incentive for pirates to attack it will be very strong. No matter how high the gates, enough barbarians will eventually get through.
Depending on how it turns out, in the long run this could be as bad for Microsoft as the PS3 is for Sony.
|
Comments:
Another big problem (well, not for the user, for the MAFIAA) is that HDCP is cryptographically insecure:
HDCP uses a linear system for generating the shared secret.
The flaw is that any device whose public key is a linear combination of public keys of other devices will, when assigned a private key that's a similar linear combination of the other devices private keys, successfully authenticate.
This flaw is fundamental, and cannot be worked around.
Get 40 devices together in a conspiracy, and with O(40 2) runtime, you can read plaintext. With O(2 40) runtime, you can usurp the central authority and issue and revoke your own keys.
This is absurd. Picking a good algorithm is not hard - I don't understand how this could happen. Oh well, it's a good thing for them to be so incompetent.
I heard today from a coworker that the algorithm was cracked. I haven't looked for more info yet.
![[User Picture]](http://l-userpic.livejournal.com/71797236/33448) | | From: | pyran |
| Date: | January 2nd, 2007 09:01 am (UTC) |
|---|
| | | (Link) |
|
This is something that will make me seriously consider switching to Macs, or at least Linux. (I also posted about it here.) And I currently work at Microsoft.
The disabling seems kinda pointless - wouldn't you hack your device to ignore the "shut-off" command as part of whatever other hacking you were doing?
Anyway, total insanity. Hopefully this is one of those cases where extremeness provokes backlash, so the worse this is, the better for the future.
![[User Picture]](http://l-userpic.livejournal.com/71797236/33448) | | From: | pyran |
| Date: | January 2nd, 2007 07:25 pm (UTC) |
|---|
| | | (Link) |
|
My guess is that the shut-off command is never sent to the device and is instead handled by the OS. If I were writing this, I'd have a list of devices in memory that I can flag as good or bad. The ones that I flag as bad would get "disabled" only in the sense of its signal would get downgraded by the OS. Otherwise, it makes no sense to say you don't trust a device to honor the HDCP spec but trust it to honor a command telling it to neuter itself.
Anyway, total insanity. Hopefully this is one of those cases where extremeness provokes backlash, so the worse this is, the better for the future.
No argument here. This is one of the reasons MS is losing a customer in me.
Here's how it's supposed to work: imagine I have the following devices, in sequence:
HDCP HD DVD player -> HDCP (MS Vista) computer -> HDCP video card -> HDCP (HDMI) cable -> HDCP TV or monitor
Each of these has a set of keys. Now, I find a way to compromise the HDCP video card to output an unencrypted stream, pure digital video, ready to pirate. The movie industry finds out, and they revoke the certificate for the video card. Later, I buy an HD DVD that has the certificate revocation list containing my video card, and put it in my computer.
What happens: my DVD player, computer, and TV are all instructed that the HDCP video card has been revoked. None of these devices will output any HD video at all as long as that video card is in the computer, as they now recognize an insecure path. So not only does the new HD DVD not play, but neither will any other HD DVD I have, even ones that played before. In addition, my video card is instructed to self-destruct -- to modify itself such that is is no longer capable of HD output.
If I have truly totally compromised the device, it will ignore the disable command. But if I have just found some kind of bug in it that leaks data, and do not have total control, the disable command may be obeyed. But even if it's not, to use that card any more I have to replace all my other hardware and software, as they've all been told that the card is revoked and to no longer produce HD output at all. HDCP requires that these devices not be under user control -- in other words, there will be no function on the HD DVD player, or the TV, or even in the Windows Vista OS to "reset" HDCP and get rid of the revocations.
I think this is a case where the extremeness provokes backlash, because the worst-case-scenario is not that pirated video breaks all your equipment. The nightmare case is that some hacker usurps the central authority and gets the ability to issue CRLs. He then puts out a worm or virus on the Internet, like the worms that come out every 6-12 months anyway, that invokes the CRL functionality in the OS and revokes every certificate. Every PC that gets it has HD capability permanently broken -- as does every piece of hardware attached to it. There's no ability to un-revoke a cert -- that lack of user control is precisely what HDCP requires.
Who gets to pay for that disaster? Whoever it is, they won't be happy about it, and it might well destroy them.
Good Lord. Can you speculate on why MSFT is complying with this? You must have some suspicions.
Each of these has a set of keys. Now, I find a way to compromise the HDCP video card to output an unencrypted stream, pure digital video, ready to pirate. The movie industry finds out, and they revoke the certificate for the video card. Later, I buy an HD DVD that has the certificate revocation list containing my video card, and put it in my computer.
Does this certificate revocation list affect all video cards with the same particular model number or does it only affect the compromised card?
In case I've inaccurately used words that have a specific industry-related meaning, does the CRL for a compromised Ford Focus affect all Ford Focus automobiles, or just the single compromised car?
![[User Picture]](http://l-userpic.livejournal.com/443084/335317) | | From: | crasch |
| Date: | March 29th, 2007 03:10 am (UTC) |
|---|
| | Offtopic: trip to Seattle | (Link) |
|
I'm making a trip to Seattle from April 6 - April 8th. I've love to get together with you and sheeplass while I'm there. Would you be interested? If so, feel free to give me a call at (919) 395 0856 or email me at (crasch@gmail.com). |
|