шифрование ресурсов (видеофайлов) в Adobe AIR - PullRequest
3 голосов
/ 14 апреля 2010

Я пытаюсь создать видеоплеер в Adobe AIR. Я хочу зашифровать видеофайлы, чтобы их нельзя было использовать вне проигрывателя. Я не хочу прыгать через обручи, чтобы создать надежную систему, но что-то простое, что просто мешает 90-95% пользователей делиться контентом.

У меня был связанный вопрос по SO на Защита файлов в Adobe AIR (Flex)

Однако, поскольку размер видеофайла определенно превысил бы 10 МБ, вышеизложенное не является решением.

Существует несколько решений для шифрования текстовых строк, но я не нашел ни одного, который шифровал бы файлы. Любая помощь или указатели будут оценены.

Большое спасибо.

Обновление: Мы пытаемся добиться этого следующим образом:

  1. зашифровать / перемешать первые 50 двоичных символов видеофайла и сохранить на жестком диске. это делает файл недоступным для воспроизведения.
  2. во время выполнения расшифровывает первые 50 символов, чтобы получить исходный файл и скопировать его во временную папку на жестком диске.
  3. при выходе удалить дешифрованный файл и очистить временную папку.

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

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

Ответы [ 4 ]

2 голосов
/ 20 ноября 2010

Я решил это для приложения DVD, зашифровавшего все ресурсы на DVD и запустив HTTP-сервер внутри приложения AIR, которое расшифровывает его.

Работает следующим образом:

1 - изображения, видео или ресурсы зашифрованы и сохранены где угодно, в нашем случае папка ресурсов DVD с главным ключом.

2 - Приложение Air содержит внутри очень простой HTTP-сервер, который читает файл, расшифровывает его и отправляет только в то же приложение Air с помощью простого Flash Video Player или с помощью тега типа <img src="localhost:5050/assetcode.jpg">

.

Код, используемый внутри приложения air для передачи файла, выглядит следующим образом:

import com.hurlant.crypto.prng.ARC4;
            import com.hurlant.util.Hex;
            import com.hurlant.crypto.Crypto;
            import com.hurlant.crypto.symmetric.ICipher;

            var key:ByteArray = Hex.toArray(Hex.fromString("masterkey"));
            var rc4:ARC4 = new ARC4(key);

            var fs:FileStream = new FileStream();
            fs.open( content, FileMode.READ );
            var ba:ByteArray = new ByteArray();


            fs.readBytes( ba, 0, fs.bytesAvailable );
            ba.position = 0;
            fs.close();



            rc4.decrypt(ba);
            //cipher.decrypt(ba);

            innerSendHTML(s, ext2mime[content.extension], ba );

            ba.length = 0;

Мы используем алгоритм RC4, потому что он быстрее в наших тестах.

Для HTTP-сервера мы использовали пример http-приложения из Flash Camp 2010, его можно найти в google.

Привет

-

www.imaginacolombia.com

1 голос
/ 19 апреля 2010

То, что вы описываете, - «Управление цифровыми правами», и AIR поддерживает такие вещи, о которых вы можете прочитать подробнее здесь:

http://help.adobe.com/en_US/AIR/1.5/devappsflex/WS5b3ccc516d4fbf351e63e3d118676a5be7-8000.html

DRM в наши дни является сложной проблемой, поэтому стоит подумать, действительно ли вам нужен DRM или вы можете обойтись без него.

0 голосов
/ 15 июля 2010

Что вы можете сделать, это:

(1) Считать первые 1000 байтов файла.
(2) Сохраните эти 1000 байтов в зашифрованной базе данных sqlite или в зашифрованном LocalStore.
(3) записать 1000 пустых байтов в начало файла.

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

Когда вам нужен файл:

(4) Извлечение сохраненных 1000 байтов и
(5) Запишите их обратно в начало файла.

Когда закончите, повторите шаги 1-3.

0 голосов
/ 16 апреля 2010

Можете ли вы аутентифицировать файлы, когда файлы загружаются на PHP или другом языке сценариев? Вы можете заставить SWF требовать, чтобы параметр передавался по почте или что-то еще (не проверено), чего большинство других игроков не сделали бы .....

Затем можно уменьшить нагрузку на сервер, передавая файл, используя http-заголовок X-sendfile или аналогичный эквивалент ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...