Подтвердить что ты не робот

Как защитить мультимедийный контент (видео, аудио) на Android от сохранения/перераспределения?

Какие возможности существуют для обычных разработчиков приложений (с этим я имею в виду, что вы не являетесь производителем контента или поставщиком каналов распространения в миллион долларов, а также обычной, небольшой компанией по разработке приложений) для обеспечения видео/аудиоконтента для приложения от сохранения/распределения. Я упоминаю "обычного разработчика", потому что я видел в коде ядра Android, что Sony добавила некоторые части кода в него, в пакеты DRM. Предположим, что мы не настолько могущественны, чтобы говорить с Google, чтобы включить их в свой основной код.

Существуют ли какие-либо реальные защищенные способы защиты видео/аудио (как часть приложения) на Android.

Предположения (исправьте меня, если я ошибаюсь):

  • устройства могут быть внедрены пользователями, должны знать об этом.
  • обнаружение того, коренится ли устройство или нет (в приложении) на Android, на самом деле невозможно, поскольку суперпользователь может в основном подделывать любое состояние устройства.
  • мы не можем модифицировать какое-либо оборудование или пользовательскую систему (что означает: мы не связываем наш продукт приложения с устройством, приложение должно быть доступно как "обычное" приложение на App Market для загрузки).
  • медиафайлы/поток могут быть локально на устройстве или удаленно с сервера, оба в порядке

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

Я рассматривал DRM как один из подходов, но "безопасность по-неизвестности", похоже, не очень хорошая. Кроме того, я не нашел никакой информации или реальных решений /API для обычных разработчиков.

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

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

Update:

В контексте моего вопроса я нашел этот вопрос, и он интересен: Потоковая передача на Android MediaPlayer

4b9b3361

Ответ 1

Существуют ли какие-либо реальные защищенные способы защиты видео/аудио (как часть приложения) на Android.

Если "безопасно", вы имеете в виду "полнофункциональный", то нет. См. Аналоговое отверстие.

обнаружение того, коренится ли устройство или нет (в приложении), на Android не реально

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

Шифрование с открытым ключом было другой идеей, но где безопасно хранить секретный ключ?

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

Самое большее, что вы можете сделать, это зашифровать ваш поток, чтобы пользователь не мог просто перехватить его и использовать. Затем обфускайте код, который декодирует/воспроизводит поток. Хотя, реализуя это, вы рискуете ввести больше ошибок (и худшую производительность), что делает законный пользовательский опыт хуже. Если вы решите не сворачивать свою собственную запутывание и использовать какой-то автоматический продукт obfuscater, уже доступный какой-то крупной компании, он будет уже в основном взломан, и это будет очень легко для кого-то, кто вряд ли знает, что он делает, чтобы взломать ваш продукт в небольшом количество времени. Пока ваш продукт становится очень популярным, один человек собирается взломать его и загрузить все видео в торрент, тогда каждый сможет пиратствовать с вашим продуктом, не делая никакой работы.

Ответ 2

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