¿Cómo proteger el contenido multimedia (vídeo, audio) en Android de ser guardado / redistribuido?

¿Qué oportunidades hay para los desarrolladores de aplicaciones regulares (con lo que quiero decir, no eres una compañía productora de contenido de millones de dólares o proveedor de canal de distribución, sino una pequeña y regular empresa de desarrollo de aplicaciones) para proteger el contenido de video / audio para que la aplicación se guarde /repartido. Menciono el "desarrollador regular", porque había visto en el código básico de Android que Sony había añadido algunas porciones de código en él, en los paquetes de DRM. Supongamos que no somos tan poderosos para hablar con Google para incluirlo en su código principal.

¿Existen formas reales seguras de proteger vídeo / audio (como parte de una aplicación) en Android?

Suposiciones (corregirme si estoy equivocado):

  • Dispositivos podrían arraigarse por los usuarios, deben ser conscientes de
  • La detección de si un dispositivo está enraizado o no (dentro de una aplicación) no es realmente posible en Android, ya que un superusuario puede básicamente falsificar cualquier estado del dispositivo.
  • No podemos modificar ningún hardware ni el sistema del usuario (lo que significa que no incluimos nuestro producto de aplicación con un dispositivo, la aplicación debería estar disponible como una aplicación "normal" en el Mercado de aplicaciones para descarga)
  • Los archivos de medios / secuencia podría estar localmente en el dispositivo o venir de forma remota desde un servidor, ambos está bien

He investigado este tema un poco, googled mucho, pasó (espero) todas las preguntas relacionadas aquí en SO, he hablado con un proveedor de DRM (que es muy difícil ponerse en contacto con una pequeña empresa o desarrollador independiente, O al menos para obtener alguna información relevante real, documentos técnicos y detalles).

Miré en DRM como un acercamiento, pero la "seguridad-por-obscuridad" no parece ser una manera muy buena. Además, no he encontrado ninguna información o soluciones / API reales para desarrolladores habituales.

El cifrado de clave pública era otra idea, pero ¿dónde almacenar la clave privada con seguridad? Además, supongo que en tal caso, todo el marco de los medios de comunicación y el jugador tendría que ser reescrito, a fin de pasar un flujo de vídeo seguro para el jugador. ¿O estoy equivocado?

Me gustaría obtener algunas opiniones de otros desarrolladores con experiencia en el campo, ya que es realmente difícil encontrar información sobre la protección de contenido multimedia para Android en cualquier lugar.

Actualizar:

En el contexto de mi pregunta, encontré esta pregunta y su actualización es interesante: Streaming al MediaPlayer de Android

¿Existen formas reales seguras de proteger vídeo / audio (como parte de una aplicación) en Android?

Si por "seguro", quiere decir "fullproof", entonces no. Ver Orificio analógico .

La detección de si un dispositivo está enraizado o no (dentro de una aplicación) no es realmente posible en Android

Tampoco es posible en ninguna parte. Las leyes del universo hacen que sea imposible detectar tal cosa (bueno, tal vez podrías explotar la física cuántica para esto, pero aún así no estoy seguro) sólo puedes añadir código para detectar técnicas conocidas, todas las cuales son triviales evitar.

El cifrado de clave pública era otra idea, pero ¿dónde almacenar la clave privada con seguridad?

No hay ningún lugar para guardarlo con seguridad. Piense en ello, desea cifrar el contenido y dar al usuario la clave para descifrarlo (para que pueda verlo), pero no quiere que él pueda descifrarlo (por lo que no puede copiarlo). Esto es una contradicción.

Lo máximo que puede hacer es cifrar su flujo para evitar que el usuario pueda interceptarlo y usarlo. A continuación, ofuscar el código que decodifica / reproduce la secuencia. Aunque mediante la implementación de que se corre el riesgo de introducir más errores (y peor rendimiento), lo que empeora la experiencia del usuario legítimo. Si decides no tirar tu propia ofuscación y usar algún producto obfuscater automático ya disponible por alguna gran empresa, ya estará genéricamente agrietado, y será extremadamente fácil para alguien que apenas sabe lo que está haciendo para romper su producto en un pequeño cantidad de tiempo. Siempre y cuando su producto se vuelve popular remotamente, una persona va a crack y cargar todos los videos a torrent, entonces todo el mundo será capaz de pirata de su producto sin hacer ningún trabajo.

No creo que haya una solución para proteger el contenido de los medios de comunicación de las aplicaciones. Por supuesto, DRM no es adecuado para desarrolladores habituales. No veo también por qué la clave pública puede ayudar.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.