News for hackers. Stuff that matters.
Re:Breaking Spotify DRM with PANDA by moyix on Friday July 04, 2014 @03:51PM (#7990039)
Post author here! I wanted to make it clear that the original technique for breaking Spotify DRM is not mine - it was developed by Wang et al. in their excellent paper, Steal This Movie: Automatically Bypassing DRM Protection in Streaming Media Services. I just thought it would be a nice showcase of PANDA's capabilities. In particular, we can avoid the crazy optimizations in that paper because we can operate on a replayed execution rather than doing it live.
Re:Breaking Spotify DRM with PANDA by msane on Friday July 04, 2014 @09:15PM (#7990743)
On the subject of cracking streaming music DRMs, a realization I have been sitting on for a while about what people can do with it... Considering the common wisdom that:

- storage will get exponentially cheaper

- data transfer speeds will get higher

It makes me think that eventually there will be illicit torrents of all the worlds music, plus the index, plus the metadata, and plus the interface/app for browsing it. In other words, people would not only pirate individual songs or movies, they would download their own complete copies of Spotify / Netflix. It isn't feasible now but it could be sometime in the next 5-15 years, depending bandwidth speeds.

I'm not sure how many people see this coming or take it seriously but I wonder what the effect could be and what the remedy attempts would be.

Re:Breaking Spotify DRM with PANDA by null_ptr on Friday July 04, 2014 @09:47PM (#7990780)
You can see the remedy attempts already

* push for cloud storage over local storage

* push for locked down devices over general purpose computers

* push for DRM on the open web

* big ISP companies fighting against net neutrality

Re:Breaking Spotify DRM with PANDA by msane on Friday July 04, 2014 @10:08PM (#7990812)
I very much agree. I hope that, capitalism, ironically enough for DRM, is the probably always the solution to overstepped DRM remedies. Regardless of the issue of piracy, which I am not advocating.

For instance there will always be a market for custom computing and "PCs", and so non-locked PCs will (hopefully) always exist in a capitalist environment. That market I think ultimately circumvents any attempt at ubiquitous control of hardware. The same thing is at play with software. And hypothetical new methods of connectivity may be able to circumvent many attempts at central control of the net.

Re:Breaking Spotify DRM with PANDA by userbinator on Saturday July 05, 2014 @09:13AM (#7991779)
For instance there will always be a market for custom computing and "PCs", and so non-locked PCs will (hopefully) always exist in a capitalist environment.

Unfortunately, that market is slowly becoming the minority, and because those "more free" devices may have limitations that make them incompatible with a lot of proprietary content (which is the majority) and circumventing those limitations could be illegal and difficult, there will be fewer users of them.

Reminds me of this https://www.gnu.org/philosophy/right-to-read.html and the old saying "If you outlaw freedom, only outlaws will have freedom."

Re:Breaking Spotify DRM with PANDA by w1ntermute on Friday July 04, 2014 @10:45PM (#7990865)
Given the move away from the carrier-subsidized model for mobile devices, I am optimistic about the technical future of general purpose mobile computing. What I am not optimistic about is the ability to seamlessly access content across devices from data that is privately stored in the cloud, mainly because not enough people would be willing to pay for/fund the development of such a service/piece of software to make it worth developing.
Re:Breaking Spotify DRM with PANDA by rolux on Saturday July 05, 2014 @07:32AM (#7991602)
> It makes me think that eventually there will be illicit torrents of all the worlds music, plus the index, plus the metadata, and plus the interface/app for browsing it.

It seems to me that the a-grade private torrent trackers are exactly that. Larger catalogue, more comprehensive metadata, and better interface than any commercial service.

> In other words, people would not only pirate individual songs or movies, they would download their own complete copies of Spotify / Netflix. It isn't feasible now but it could be sometime in the next 5-15 years, depending bandwidth speeds.

If you have the infrastructure, and are really dedicated, you can definitely do it today.

Re:Breaking Spotify DRM with PANDA by msane on Saturday July 05, 2014 @03:21PM (#7992728)
I don't think you see what I'm saying. Imagine a single torrent called "music", 15 terabytes large. Opening the application inside brings up a local copy of Spotify.

>It seems to me that the a-grade private torrent trackers are exactly that. Larger catalogue, more comprehensive metadata, and better interface than any commercial service.

Regardless of metadata quality and collection size which I think is debatable although having not seen one... they are a la carte, so much different.

> If you have the infrastructure, and are really dedicated, you can definitely do it today.

No infrastructure is required, just multiple terabytes of storage (which most households do not have... yet), and bandwidth that makes downloading terabytes an attainable feat. Needless to say the later is not viable today either. But eventually both those things will become commonplace.

15 is a high number too. The set of music one would be possibly be interesting in hearing (of the set of all music which has already been produced) may be closer to 3-5 terabytes. Movies of course, are different larger set of numbers.

Re:Breaking Spotify DRM with PANDA by thrownaway2424 on Friday July 04, 2014 @05:11PM (#7990224)
Hello, author. I read your whole post and still didn't know what PANDA might be. Please add a description or a link.
Re:Breaking Spotify DRM with PANDA by rememberlenny on Friday July 04, 2014 @05:35PM (#7990282)
Re:Breaking Spotify DRM with PANDA by test_account_1 on Friday July 04, 2014 @07:03PM (#7990502)
Thanks, saved me time for searching.
Re:Breaking Spotify DRM with PANDA by AlyssaRowan on Saturday July 05, 2014 @05:03AM (#7991403)
That's a lovely piece of work. Congratulations.

It's always fascinating to me how far the tools of the trade have come on since my heyday. They surpassed my own custom tools of yore a little while back, and things like this were things I could obviously never do at the time - nowhere near enough storage, for a start, but I also didn't know about the compressed/encrypted distinction (that would have saved me a lot of time!).

That you can do it in such an automated fashion now, where I just paged through the disassembly and hexdumps until I saw something that leaped out at me, is stunning. I'd coded a few helper routines, and my debugger was completely stealth and I could rewind a couple thousand instructions (the secret of my success! <g>), but never anything like that back then.

Perhaps I should look into this PANDA.

Re:Breaking Spotify DRM with PANDA by rational-future on Friday July 04, 2014 @04:56PM (#7990183)
Hello OP! Can you give a short not so technical description of this attack please?
Re:Breaking Spotify DRM with PANDA by gcv on Friday July 04, 2014 @05:30PM (#7990270)
Not the OP here, but briefly, the technique uses a little statistical cleverness and the ability to examine a running program to help identify which part of the Spotify program produces the unencrypted bytes of the track it is playing. It then taps into that part of the program, and copies these bytes to a file. That file then contains playable audio. (This data must be unencrypted in order to meaningfully feed the digital-to-analog converter of the playback computer.)
Re:Breaking Spotify DRM with PANDA by AlyssaRowan on Saturday July 05, 2014 @05:25AM (#7991437)
- Runs it in a virtual machine/emulator (QEMU).

- Records (with PANDA) every instruction run and every piece of data read or written by that virtual machine for half a minute while it's playing audio. (!)

- Analyses that recording and uses some very clever statistics to identify functions that read chunks of data that looks encrypted, and write chunks of data that looks compressed (yes, you can tell the difference, compression is imperfect).

- Out pops one likely candidate, which sure enough is the decrypter.

Re:Breaking Spotify DRM with PANDA by moyix on Saturday July 05, 2014 @06:49AM (#7991539)
Small correction: the magic of record-replay is that you don't have to record every piece of data read/written, only the non-deterministic events (interrupts, accesses to devices, and a couple instructions like `rdtsc`). This lets the overhead during recording stay low, while still getting all the benefits of a full execution trace. This is why we're able to store the Spotify trace [1] in only 263.1 MB.

[1] http://www.rrshare.org/detail/28/