🍎Apple MusicのDRMについて
2014年から長らく音楽管理にはiTunes Matchを使っていたが、2020年6月になって流行りのApple Musicに移行した。Apple Musicは定額で多くの曲が聴き放題になる。
さらに、Apple Musicでは聴き放題の楽曲をダウンロードもできる。しかし、聴き放題サービスでダウンロードさせると、無限にコピーされてしまうのでは…?という点が気になった。実際は大丈夫である、DRMというガードがかかってて、そのままコピーしても別の場所では再生できない仕組みになっている。
Apple Musicでダウンロードした曲は「保護されたMPEG-4オーディオ」として拡張子 .m4p になっていた
DRMなしのファイルが欲しかったら、iTunes Storeで個別に曲を購入すれば手に入る。こうすることでiTunes Match時代とほぼ同じような運用もできる。
Apple製DRMの素晴らしき仕組み
ここまで、DRMがあるからコピーされないんだ、すごいねぇ〜で終われば済む話なのだが、**ファイルを直接再生できないのにiTunesでは再生できるって一体どういう仕組みなのか?**ここが気になった。
知りたいことがあればインターネットを活用すればいい、そう思ってたとえばGoogle検索で「Apple Music DRM」と入れるとこれを使うだけでDRM解除できる!といった怪しげなツールの宣伝サイトが次々と出てくる。知りたいのはそこではない…。
しかし、こういう時こそインターネット力(ぢから)が試される。怪しいツールの宣伝や違法行為を助長するような記事を避けてAppleのDRMの仕組みそのものを調べたい場合どうすればいいだろうか?それは…専門的な用語を混ぜていくこと。
Apple Music DRMだけで検索してまず概要を見ていくと、Apple Musicには FairPlay という名前のDRM技術が使われているらしい。このFairPlayをキーワードにしてさらに調べていくと、論文?みたいなのが出てきた。
http://www.cs.sjsu.edu/faculty/stamp/students/RamyaVenkataramu_CS298Report.pdf
全部英語で頭がおかしくなりそうになったけど、図を見ていくだけでも内容が想像できる部分もあるし、Google翻訳に頼るという手も使えるのでなんとなく概要はわかってきた。
m4pファイルの中身には次の図のようなDRM認証情報が入っている。
この認証情報と、ユーザー固有の鍵をあわせて暗号の鍵にする。その鍵を使って、m4pファイルのデータ部分を復号化するともとの音楽データが出てくる、という仕組み。
ユーザー固有の鍵は、次の図が示すようにiTunes Server側に保管されているらしい。サーバー側ということはApple Music登録済のアカウントからのアクセスが来た時のみ渡すようにすれば本人以外はアクセスできないようにできる。なるほど!
さらには曲のダウンロードのサーバー負荷を分散するためにP2Pの仕組みも取り入れられてるみたいだけど、自分は知りたかったのは「直接再生できないファイルがどうやってiTunesで再生できているのか」という部分だったので一旦これでよしとする。
もう少し実例に近いものを見る
論文でだいたい仕組みはわかったけど、本当にこの仕組みで動いてるのか?実際にApple Musicでダウンロードしたm4pファイルの中身を覗いて確かめた。m4pはMPEG-4のファイル構造をそのまま使っているらしい(論文に書いてた)ので、mp4の構造を可視化するツールを使えばいい。
Bento4というツール群に含まれているmp4dumpを使った。
$ mp4dump "02 キミのラプソディー.m4p"
\[ftyp\] size=8+24
major\_brand = M4A
...
\[moov\] size=8+75216
\[mvhd\] size=12+96
...
\[trak\] size=8+72196
\[tkhd\] size=12+80, flags=1
...
\[mdia\] size=8+72044
...
\[minf\] size=8+71970
\[smhd\] size=12+4
balance = 0
\[dinf\] size=8+28
\[dref\] size=12+16
\[url \] size=12+0, flags=1
location = \[local to file\]
\[stbl\] size=8+71910
\[stsd\] size=12+32874
entry\_count = 1
\[drms\] size=8+32862
...
\[esds\] size=12+39
...
\[sbtd\] size=8+7
\[sinf\] size=8+888
\[frma\] size=8+4
...
\[schm\] size=12+8
scheme\_type = itun
scheme\_version = 0
\[schi\] size=8+848
\[user\] size=8+4
\[key \] size=8+4
\[iviv\] size=8+16
\[righ\] size=8+80
\[name\] size=8+256
\[priv\] size=8+440
本当に論文に書いてあるとおり、user, key , iviv などの情報が入っていた!すごい!
さらに、ユーザー固有の鍵情報らしきものも確認できた。これはFairPlayについていろいろ調べてたら次の本「Securing Digital Video: Techniques for DRM and Content Protection」のGoogle booksによる無料プレビュー部分がヒットした。
Securing Digital Video
_Content protection and digital rights management (DRM) are fields that receive a lot of attention: content owners…_books.google.co.jp
The iTunes server securely delivers the user key to a protected directory ( /Users/Shared/SC Info) inside the customer’s device. The protected directory contains a file, SC Info.sidb, that holds the user key of each piece of content purchased by the customer.
ユーザー固有の認証情報を毎回ネット越しに取りに行くとオフラインで再生できなくなったりと不便なので、ローカルにキャッシュを持っているみたいだ。それの場所は /Users/Shared/SC Info らしい。確かに手元のMacで見てみるとそのディレクトリが存在した。しかし、中身は空だった。あれ…?Apple Musicで認証してるPCのはずなのにな…。最近のMacではiTunesが消えて代わりに「ミュージック」アプリになったので、保存場所も変わったのかもしれない。
Windowsであれば、今でもiTunesが現役だ。SC Infoは %APPDATA%\Apple Computer\iTunes\SC Info にあるらしい。確認してみるとWindowsではちゃんと SC Info.sidb というファイルが存在した!
iTunesには「このコンピューターを認証」というメニューがあってこれって一体なんの認証なんだ?って思ったけどどうやらこのユーザー固有の認証情報を取得可能にする処理だったみたい。長年の疑問がひとつ解けた、なるほど!
さらに、このSC Info.sidbファイル、中身を見ても意味不明でこのファイル自体もデバイス固有の情報を鍵にして暗号化されているらしい。これ以上はちょっとややこしそうだったので一旦読むのをやめた。
感想
DRMってコピーを防止するよくわからん技術みたいなイメージだったのが、具体的にこうやってるのかってとこがわかって大変おもしろかった。AppleのDRMについては少ないながらも論文や本による解説まであるとは最初思いもしなかったので久しぶりに健康的に頭を使った気がしてとても楽しい自由研究だった。
そのすごいDRM技術が使われているApple Musicで初めに聴いた曲はアニメ「SHOW BY ROCK!! ましゅまいれっしゅ!!」の「キミのラプソディー」です。とてもいい曲なのでぜひチェックしてね。
Mashumairesh!!(CV:遠野ひかる、夏吉ゆうこ、和多田美咲、山根 綺)の”キミのラプソディー”
_曲・3:36・2020 · Apple Musicのサブスクリプションに登録すると利用できます。無料で体験する。_music.apple.com