Add support for CSS encrypted DVD dumping. #139

Closed
opened 2026-01-29 15:11:01 +00:00 by claunia · 3 comments
Owner

Originally created by @claunia on GitHub (Dec 24, 2017).

Description

DVD-Video discs are encrypted using the well-known CSS encryption algorithm

Exact command line used:

DiscImageChef dump-media -i /dev/sr0 -w dvdvideo

Expected behavior:

DiscImageChef writes an encrypted dump and stores the decryption keys in the metadata sidecar.

Actual behavior:

Dump is incorrect.

Implementation notes

Calling to libdvdcss is not allowed. Everything should be done in .NET.

Originally created by @claunia on GitHub (Dec 24, 2017). ### Description DVD-Video discs are encrypted using the well-known CSS encryption algorithm ### Exact command line used: `DiscImageChef dump-media -i /dev/sr0 -w dvdvideo` ### Expected behavior: DiscImageChef writes an encrypted dump and stores the decryption keys in the metadata sidecar. ### Actual behavior: Dump is incorrect. ### Implementation notes Calling to libdvdcss is not allowed. Everything should be done in .NET.
claunia added the feature requestdevice labels 2026-01-29 15:11:01 +00:00
Author
Owner

@ChlorideCull commented on GitHub (Mar 4, 2019):

Should probably also dump the "DVD Copyright Information" which says if the disc is actually protected by CSS, but also which region the disc is for. (READ DISC STRUCTURE 01h)
Could be used to automatically detect whether a DVD is CSS-protected without having to specify it on the command line.

After establishing a bus key, you can dump the disc keys with READ DISC STRUCTURE 02h, then descramble it with the bus key. This can be used if you want to press a new CSS protected copy, I suppose, but more importantly, you have a hash of the disc key in there, which lets you bruteforce the disc key with a 2^28 complexity, according to this cryptoanalysis. I'd argue that storing the unscrambled block without cracking the disc key is good enough, since it's trivial to crack on a modern system.

Next up, title keys, for each sector you should dump the response of REPORT KEY keyclass 00h keyformat 000100b, and unscramble the title key, so it can be decrypted with a disc key. I haven't looked at that as much.

@ChlorideCull commented on GitHub (Mar 4, 2019): Should probably also dump the "DVD Copyright Information" which says if the disc is actually protected by CSS, but also which region the disc is for. (READ DISC STRUCTURE 01h) Could be used to automatically detect whether a DVD is CSS-protected without having to specify it on the command line. After establishing a bus key, you can dump the disc keys with READ DISC STRUCTURE 02h, then descramble it with the bus key. This can be used if you want to press a new CSS protected copy, I suppose, but more importantly, you have a hash of the disc key in there, which lets you bruteforce the disc key with a 2^28 complexity, [according to this cryptoanalysis](https://web.archive.org/web/20000302000206/http://www.dvd-copy.com/news/cryptanalysis_of_contents_scrambling_system.htm). I'd argue that storing the unscrambled block without cracking the disc key is good enough, since it's trivial to crack on a modern system. Next up, title keys, for each sector you should dump the response of REPORT KEY keyclass 00h keyformat 000100b, and unscramble the title key, so it can be decrypted with a disc key. I haven't looked at that as much.
Author
Owner

@claunia commented on GitHub (Mar 10, 2019):

Dumping the copyright information is already done. But for the rest, it needs to be done, and I'm not planning on doing it anytime soon. However if someone else does it I will accept the patch.

@claunia commented on GitHub (Mar 10, 2019): Dumping the copyright information is already done. But for the rest, it needs to be done, and I'm not planning on doing it anytime soon. However if someone else does it I will accept the patch.
Author
Owner

@claunia commented on GitHub (Dec 7, 2019):

Add support for CSS encrypted DVD dumping

@claunia commented on GitHub (Dec 7, 2019): ![](https://github.trello.services/images/mini-trello-icon.png) [Add support for CSS encrypted DVD dumping](https://trello.com/c/EjFSmHjv/33-add-support-for-css-encrypted-dvd-dumping)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aaru-dps/Aaru-aaru-dps#139