Security researcher cracks Google's Widevine DRM (L3 only)
A British security researcher has cracked the L3 protection level of Google’s Widevine digital rights management (DRM) technology. The hack can allow the researcher to decrypt content transferred via DRM-protected multimedia streams.
While “cracking Google’s DRM” sounds very cool, the hack isn’t likely to fuel a massive piracy wave. The reason is that the hack works only against Widevine L3 streams, and not L2 and L1, which are the ones that carry high-quality audio and video data.
Any user who cracks a Widevine L3 stream would only gain access to grainy low-quality video and lo-fi audio.
Many security and cryptography experts weren’t surprised by the Widevine L3 hack, as the L3 protection level is the lowest one.
Google designed its Widevine DRM technology to work on three data protection levels –L1, L2, and L3– each usable in various scenarios. According to Google’s docs, the differences between the three protection levels is as follows:
- L1 – all content processing and cryptography operations are handled inside a CPU that supports a Trusted Execution Environment (TEE).
- L2 – only cryptography operations are handled inside a TEE.
- L3 – content processing and cryptography operations are (intentionally) handled outside of a TEE, or the device doesn’t support a TEE.
Service providers, such as Hulu or Netflix, usually perform a check of a device to see what Widevine DRM level they support, before sending any actual content.
Because of the varying security levels, which exposes the DRM-encrypted content to attacks, service providers deliver audio and video streams with varying quality levels, with L3 receiving the lowest.
While it was known for a few years that Widevine’s L3 protection level was the weakest, no one until this today found a way to decrypt Widevine L3 encrypted content.
However, today, British security researcher David Buchanan made the first such claim.
“Soooo, after a few evenings of work, I’ve 100% broken Widevine L3 DRM,” Buchanan said on Twitter. “Their Whitebox AES-128 implementation is vulnerable to the well-studied DFA attack, which can be used to recover the original key. Then you can decrypt the MPEG-CENC streams with plain old ffmpeg.”
Albeit Buchanan did not yet release any proof-of-concept code, it wouldn’t help anyone if he did.
In order to get the DRM-encrypted data blob that you want to decrypt, an attacker would still need “the right/permission” to receive the data blob in the first place.
If a Netflix pirate would have this right (being an account holder), then he’d most likely (ab)use it to pirate a higher-quality version of the content, instead of bothering to decrypt low-res video and lo-fi audio.
The only advantage is in regards to automating the pirating process, but as some users have pointed out, this isn’t very appealing in today’s tech scene where almost all devices are capable of playing HD multimedia [1, 2].
For all intents and purposes, Buchanan’s hack is purely an interesting topic of research that has achieved something that many other experts have only speculated until now.
The researcher said he did report the issue to Google. He also said the issue is unfixable, as it’s a design flaw and not a bug or vulnerability.
Google’s Widevine is today’s most popular DRM technology, being used by content providers such as Netflix, Hulu, Disney, HBO, DirectTV, Facebook, Showtime, Jio, Sony and more. Almost all hardware platforms and device makers support it, such as Apple, Samsung, Google, Intel, LG, Roku, Mozilla, and others. If Google decides to update Widevine’s L3 cryptography implementation, patching it would be a considerable and drawn-out effort.