Information Security
December 2011 13

«Защита» mp3 файлов на amazon.com

From Sandbox
Всем привет.
Не так давно дали на работе задачку по изучению факта наличия какой-либо скрытой информации в требуемых mp3-файлах. Т.к. точно не было известно, есть ли что-то в них или нет, задача представлялась почти неразрешимой. В свое время писал диплом на тему скрытия информации в аудиофайлах (аудиостеганография) и представлял, что если захотеть что-то спрятать, то обнаружить это будет почти невозможно. Первым делом начал поиски с чтения полей ID3 тэгов, вспомнил, что есть, в частности, тэг Lyrics (служащий для сохранения текста песни), содержимое которого в том же winamp-е не отображается.

На поверку данное поле оказалось пустым.
После некоторого времени общения с гуглом наткнулся вначале на статью про Amazon MP3 (http://en.wikipedia.org/wiki/Amazon_MP3), а затем уже и на песни на amazon.com, которые содержат в себе некий «unique purchase identifier». Изучению этого идентификатора и будет посвящена статья.

Давайте по порядку.
25 сентября 2007 года года amazon.com запускает публичную бэта-версию интернет-магазина музыки, который в начале 2008г. стал первым музыкальным магазином по продаже музыки без цифровой защиты авторских прав (DRM). Из той же статьи в вики узнаем, что изначально амазон не подписывал продаваемые им mp3-файлы цифровым водяным знаком, некоторые файлы были подписаны лейблами, чтобы идентифицировать продавца, но не покупателя.

С 2011 года политика компании изменилась и для некоторых композиций стали явно писать, что они содержат уникальный идентификатор покупки.

Пару таких мелодий:
http://www.amazon.com/Silent-Night/dp/B0047E6AR2/ref=pd_sim_dmusic_t_5?tag=acleint-20
http://www.amazon.com/gp/product/B005I0DKPO/ref=dm_dp_trk1

Официальная информация на сайте амазона:
http://www.amazon.com/gp/help/customer/display.html/ref=dm_adp_uits?ie=UTF8&nodeId=200422000

Если по-русски: скачанный файл будет содержать уникальный идентификатор покупки, дату/время покупки и др. информацию о которой ниже.

Скачать в лоб данные композиции не получилось (амазон ругается и говорит, что может их продать только на территории США). Пришлось попросить американских знакомых и через некоторое время у меня на руках была одна и та же песня, но скачанная независимо двумя разными людьми с разных аккаунтов в амазоне. По виду файлы были абсолютно одинаковы, размер совпадал до байта.

Но т.к. амазон писал, что включает в каждый мп3 идентификатор загрузки и еще кое-какие данные решил проверить два имеющихся файла побитово и сразу нашел различия.

В начале каждого зашифрованного файла есть приватный фрейм, начинающийся с PRIV и далее идет xml.

Вот пример:

image

Отдельно xml:

image

(Часть данных была сознательно изменена)
И что же мы видим:
C2br1vaR — случайные числа Amazon, присвоенные заказу
Amazon.com — название магазина Amazon.com
2011-12-08T03:10:50Z — Дата и время покупки песни
00011805301110 — судя по всему это идентификатор альбома (Universal Product Code)
USAG21130102Международный стандартный номер аудио/видео записи
KRXaw+vu1wr8bB2cCNxJScKWcFKk7fDg — номер транзакции продажи, которые в базе данных Амазона привязаны к номеру кредитки, адресу и пр. данным покупателя
user-name — идентификатор покупателя (начальная часть емейла покупателя)
Далее идут еще несколько параметров. Скорее всего это цифровая подпись, по которой можно будет определить модифицировался файл или нет.

Имея данную информацию на руках можно однозначно определить кто, у кого и когда купил данную композицию. И если эта запись в дальнейшем будет где-то выложена… то ясно будет откуда ноги растут.

По собственным наблюдениям данная секция PRIV вместе с xml занимает порядка 8кб mp3-файла (точнее непосредственно нужная информация занимает менее 1кб, остальное дополняется нулями)
image

image

image

В данном случае скрытия информации имеет место неразрушающая аудиоданные стеганография, т.е. внедряемые данные никак не влияют на сами аудиоданные, а прячутся в служебных полях, которые в наиболее распространенных ID3-Tag сканерах не отображаются.
В одном забугорном блоге некий умелец уже выложил программу, которая удаляет «амазоновского рода информацию» — http://invertedsky.net/desiccate/.
Может работать пакетно, может вначале проанализировать файлы и указать пользователю есть ли данные поля в файле или нет.

Погуглив, наткнулся на еще один импортный блог, владелец которого сделал ID3-Tag viewer, способный читать все фреймы в mp3 файле согласно стандартам — http://glassocean.net/perrys-id3-tag-viewer/.
Таким образом самая обычная на первый взгляд (и слух) mp3-шка может содержать в себе очень много полезной и даже конфиденциальной информации.

Слушайте хорошую музыку и будьте внимательнее при выкладывании музыки в общий доступ!
+98
9.4k 102
Comments 74