Re[3]: Безопасное проигрывание зашифрованных видеофайлов
От: Michael7 Россия  
Дата: 24.09.15 23:32
Оценка: 4 (2) +1
Здравствуйте, Michaels1, Вы писали:

M>Вот как бы сделать это правильно с usb dongle?


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

Как я уже сказал, защищать сами файлы в оригинальном виде смысл есть. Защищать видео — таким образом не очень, поэтому если задача защитить видео — годится практически любое решение, которое придумается, лишь бы оно не позволило просто так что-то скопировать. Но надо понимать, что при желании записать видео цена вопроса тут максимум $200 за качественную запись. Это если устройство не возьмут у кого-то на пару дней попользоваться.

Кстати, если что-то контролируется сервером, может есть смысл видео с него транслировать по защищенному rtp-протоколу.
Отредактировано 24.09.2015 23:36 Michael7 . Предыдущая версия . Еще …
Отредактировано 24.09.2015 23:34 Michael7 . Предыдущая версия .
Re: Безопасное проигрывание зашифрованных видеофайлов
От: Michael7 Россия  
Дата: 24.09.15 22:43
Оценка: 9 (1) +1
Здравствуйте, Michaels1, Вы писали:

M>Как бы вы подобное реализовали?

M>Подскажите существующие решения?

Для начала надо ознакомиться с существующими решениями по записи видео. Например, такими: http://www.epiphan.ru/

Epiphan Systems – мировой лидер в производстве устройств захвата, кодирования, записи и трансляции аудио и видео (VGA, DVI и прочих) сигналов в высоком разрешении. Наша продукция позволяет захватывать, кодировать, записывать и транслировать практически любой видеосигнал высокого раз­ре­ше­ния и обеспечивается надежной технической поддержкой.


В принципе это околопрофессиональные и довольно дорогие устройства, но есть и существенно подешевле, к примеру, об одном из таких здесь http://pctuner.ru/page-al-alias3544.html — где-то за примерно $160 можно найти.

Факт установки такой штуки между монитором и видеокартой вы отследить не сумеете. Также как и просто видеокамеру в монитор.

Можно, конечно, взять деньги за разработку, но ничего не говорить об этих вещах заказчику

В принципе, можно попробовать использовать шифрование HDCP у hdmi-выхода, хотя вообще-то оно давно взломано, но тем не менее, не очень доступно. Однако, может что-то изменилось, но мне показалось, что задействовать hdcp обычному разработчику сложно по организационным причинам.

В принципе, мне кажется, максимум что разумно гарантируется — это большая сложность копирования оригинальных файлов и некоторая возня при попытке скопировать видео с экрана или по кабелю: приобретать устройства видеозахвата (если их еще нет) и прочее. Если же заказчик хочет, чтобы его видео совсем никто не смог скопировать, то вариант только один: давать его смотреть исключительно у себя в офисе, предварительно отобрав смартфоны с видеокамерами.
Отредактировано 24.09.2015 22:55 Michael7 . Предыдущая версия . Еще …
Отредактировано 24.09.2015 22:55 Michael7 . Предыдущая версия .
Re[3]: Безопасное проигрывание зашифрованных видеофайлов
От: VTT http://vtt.to
Дата: 25.09.15 08:32
Оценка: +2
Здравствуйте, Michaels1, Вы писали:

M>Здравствуйте, VTT, Вы писали:


VTT>>В комплекте с USB-донглом будет идти пара амбалов, не дающих снимать с экрана?


M>Здесь такая идея — сообщать о подобных действиях на сервер и блокирование этого пользователя с сервера — тогда он больше не будет получать вторую половину ключа и не посмотрит новых видео файлов.


M>С этим бороться тоже придется, но это ОС-зависимо, поэтому пока хочется найти ответы на изначальные вопросы.


M>Съемку экрана видеокамерой не рассматриваю, тут уже ничего не поделаешь


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

M>Вот какое оптимальное решение?


Предложить им первыми выкладывать видео в свободный доступ...
А если уж хочется затягивать гайки, то имхо единственный вариант — это некоторый персонифицированный watermark, вклеиваемый в видео на стороне сервера.

M>И вообще насколько бредовы с точки зрения безопасности эти мои решения?


Ну можно вспомнить как консорциум многомиллиардных корпораций пилил многомиллионный защищенный тракт для воспроизведения BluRay и чем это закончилось.
Так что единственной защитой вашей системы в любом случае будет ее малая распространенность.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: Безопасное проигрывание зашифрованных видеофайлов
От: wildwind Россия  
Дата: 26.09.15 06:55
Оценка: 2 (1)
Здравствуйте, Michaels1, Вы писали:

M> Третья идея — вторая идея, но каждый зашифрованный видеофайл содержит в заголовке "соль", какой-то уникальный идентификатор, который объединяется с ключем из донгла и ключем полученным с сервера, и получается полный ключ, которым можно расшифровать видео. Здесь даже имея полный ключ, удастся расшифровать только одно видео, потому что каждое видео шифруется своим личным ключем, а не общим, как в предыдущих двух пунктах.


Немного доработать и сгодится. Каждому клиенту генерируется ключ, его копия файла симметрично шифруется этим ключем. Сам ключ шифруется асимметрично и добавляется в видеофайл. Ключ для расшифровки ключа хранится в USB токене и расшифровывается им же. Далее плеер расшифровывает видеопоток.

Уязвимости: отладчик, софт-грабберы, аппаратные грабберы, шаринг USB токена по сети. От первых двух можно попытатья защититься, но лучше плюнуть.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[3]: Безопасное проигрывание зашифрованных видеофайлов
От: wildwind Россия  
Дата: 26.09.15 10:46
Оценка: 2 (1)
Здравствуйте, Michaels1, Вы писали:

M> W>Здравствуйте, Michaels1, Вы писали:


M> M>> Третья идея — вторая идея, но каждый зашифрованный видеофайл содержит в заголовке "соль", какой-то уникальный идентификатор, который объединяется с ключем из донгла и ключем полученным с сервера, и получается полный ключ, которым можно расшифровать видео. Здесь даже имея полный ключ, удастся расшифровать только одно видео, потому что каждое видео шифруется своим личным ключем, а не общим, как в предыдущих двух пунктах.


M> W>Немного доработать и сгодится. Каждому клиенту генерируется ключ, его копия файла симметрично шифруется этим ключем. Сам ключ шифруется асимметрично и добавляется в видеофайл. Ключ для расшифровки ключа хранится в USB токене и расшифровывается им же. Далее плеер расшифровывает видеопоток.


M> W>Уязвимости: отладчик, софт-грабберы, аппаратные грабберы, шаринг USB токена по сети. От первых двух можно попытатья защититься, но лучше плюнуть.


M> Спасибо за ответ!

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

Противоречие же, нет?

M> объединенная пара (ключ пользователя на сервере+ключ пользователя на usb) одна и та же для всех, хотя сами ключи пользователя и ключ на usb разные для разных пользователей).


Это как?

Если ключ одинаковый для всех пользователей, то несколько [потенциальных] пользователей могут скинуться, заплатить хакеру, получить ключ и выложить его для всех.

M> А что за шаринг usb по сети?


Трафик, которым приложение общается с токеном, перенаправляется на другой комп, где и находится токен. Так уже давно поступают с кодированными спутниковыми телеканалами, Google('cardsharing').
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re: Безопасное проигрывание зашифрованных видеофайлов
От: vsb Казахстан  
Дата: 25.09.15 07:29
Оценка: 1 (1)
Самопальное шифрование — usb-устройство, на котором надо вводить пин-код (на самом устройстве). После ввода пинкода оно принимает в себя поток и расшифровывает его. Примитивно обходится записью видеосигнала.

Нормальное решение — DRM. Сигнал дешифруется в сертифицированном мониторе. Сертифицированный видеодрайвер в сертифицированной ОС не позволяет программно записывать участок экрана с видеопотоком. Вроде тоже сломано, правда. Но в теории это единственный хороший вариант. Конечно обходится видеокамерой, но качество будет уже не то.

Как вариант — для каждого клиента свой ключ. Дешифратор оставляет незаметные метки в видеопотоке. Если потом этот поток кто-нибудь сдампит и выложит, можно узнать, какой клиент это сделал для дальнейшего юридического преследования.
Отредактировано 25.09.2015 7:31 vsb . Предыдущая версия .
Re: Безопасное проигрывание зашифрованных видеофайлов
От: VTT http://vtt.to
Дата: 24.09.15 21:15
Оценка: :)
В комплекте с USB-донглом будет идти пара амбалов, не дающих снимать с экрана?
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: Безопасное проигрывание
От: Stanislaw K СССР  
Дата: 25.09.15 09:24
Оценка: +1
Здравствуйте, Michaels1, Вы писали:

M>Случилось так, что пришлось писать приложение для безопасного проигрывания видеофайлов.

M>Заказчик очень сильно переживает что его драгоценные видео выложат в свободный доступ.

То что клиент увидел у себя на дисплее уже тобой не контролируется.

usb устройства видеозахвата для сигнала VGA или HDMI стоят $20.

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

Единственная защита от выкладывания такого видео в паблик — персонализированная watremark.
Все проблемы от жадности и глупости
Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 24.09.15 20:59
Оценка:
Привет!

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

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

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

Вторая идея — разбить приватный ключ на 2 части. Часть ключа хранится на донгле, а часть — отдается сервером по https, когда клиент вводит правильные логин и пароль. Таким образом, имея юсб-ключ, но не зная логина-пароля, видео не расшифруешь. Уже лучше. Но если кто-нибудь как-нибудь узнает полный приватный ключ, то сможет расшифровать все видео. А узнать ключ можно, запустив мой безопасный видеоплеер в отладчике.

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

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

Как бы вы подобное реализовали?
Подскажите существующие решения?

Очень хотелось бы услышать мнение Владимира Кочеткова, и других людей работающих с безопасностью .
Спасибо
Re[2]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 24.09.15 21:37
Оценка:
Здравствуйте, VTT, Вы писали:

VTT>В комплекте с USB-донглом будет идти пара амбалов, не дающих снимать с экрана?


Здесь такая идея — сообщать о подобных действиях на сервер и блокирование этого пользователя с сервера — тогда он больше не будет получать вторую половину ключа и не посмотрит новых видео файлов.

С этим бороться тоже придется, но это ОС-зависимо, поэтому пока хочется найти ответы на изначальные вопросы.

Съемку экрана видеокамерой не рассматриваю, тут уже ничего не поделаешь

Вот какое оптимальное решение?

И вообще насколько бредовы с точки зрения безопасности эти мои решения?
Re[2]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 24.09.15 23:11
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Для начала надо ознакомиться с существующими решениями по записи видео. Например, такими: http://www.epiphan.ru/


M>

M>Epiphan Systems – мировой лидер в производстве устройств захвата, кодирования, записи и трансляции аудио и видео (VGA, DVI и прочих) сигналов в высоком разрешении. Наша продукция позволяет захватывать, кодировать, записывать и транслировать практически любой видеосигнал высокого раз­ре­ше­ния и обеспечивается надежной технической поддержкой.


M>В принципе это околопрофессиональные и довольно дорогие устройства, но есть и существенно подешевле, к примеру, об одном из таких здесь http://pctuner.ru/page-al-alias3544.html — где-то за примерно $160 можно найти.


M>Факт установки такой штуки между монитором и видеокартой вы отследить не сумеете. Также как и просто видеокамеру в монитор.


M>Можно, конечно, взять деньги за разработку, но ничего не говорить об этих вещах заказчику


M>В принципе, можно попробовать использовать шифрование HDCP у hdmi-выхода, хотя вообще-то оно давно взломано, но тем не менее, не очень доступно. Однако, может что-то изменилось, но мне показалось, что задействовать hdcp обычному разработчику сложно по организационным причинам.


M>В принципе, мне кажется, максимум что разумно гарантируется — это большая сложность копирования оригинальных файлов и некоторая возня при попытке скопировать видео с экрана или по кабелю: приобретать устройства видеозахвата (если их еще нет) и прочее. Если же заказчик хочет, чтобы его видео совсем никто не смог скопировать, то вариант только один: давать его смотреть исключительно у себя в офисе, предварительно отобрав смартфоны с видеокамерами.


Спасибо за ответ. Да, я в курсе, если захотеть, то все можно сломать, вопрос времени, желания и настойчивости Самое простое решение — камера перед монитором. Такие аппаратные вещи обойти я не смогу. Поэтому ищу оптимальное программное решение, чтоб не городить лишних бессмысленных защит, но и дать копировать и распространять видео любопытным. Захотят сломать аппаратно — сломают (и заказчик в курсе ).

Вот как бы сделать это правильно с usb dongle?
Re[4]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 24.09.15 23:40
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, Michaels1, Вы писали:


M>>Вот как бы сделать это правильно с usb dongle?


M>Сначала надо максимально уточнить что именно (файлы, видео) и от кого защищаться планируется и какая цена вопроса. Потому что например устройства видеозахвата — это не очень уже даже экзотика и есть недорогие модели, игроки, например, их вполне покупают записывать свои прохождения. Довольно странно при этом защищаться от матерых хакеров, не давая им дешифровать файлы, отслеживая действия пользователя на сервере и т.д.


Защита в основном от тех, у кого нету usb ключа. У кого он есть — те, по характеру видео, не настолько квалифицированы чтоб устанавливать еще какое то оборудование, пусть и недорогое (ну а установят — можно узнать кто, есть некоторые идеи насчет этого ). Нужна защита видеофайлов, — чтоб их непросто было на ютуб выложить.
Re: Безопасное проигрывание зашифрованных видеофайлов
От: pva  
Дата: 25.09.15 07:19
Оценка:
Здравствуйте, Michaels1, Вы писали:

M>Подскажите существующие решения?

Гугли "системы условного доступа" и рядом с ними.
Стоит понимать что в этой теме нужно бежать все время чтобы оставаться на месте.

M>Как бы вы подобное реализовали?

Если бы меня таки принудили вот это разрабатывать, то определил бы наиболее вероятные атаки и работал бы в этом направлении.
Насколько я вижу по текущей ситуации, то не столько страшны атаки на софт, сколько всякие HDMI-грабберы.
newbie
Re: Безопасное проигрывание зашифрованных видеофайлов
От: Qulac Россия  
Дата: 25.09.15 10:45
Оценка:
Здравствуйте, Michaels1, Вы писали:

M>Привет!


M>Случилось так, что пришлось писать приложение для безопасного проигрывания видеофайлов.

M>Заказчик очень сильно переживает что его драгоценные видео выложат в свободный доступ.
M>И вот у меня такая задача — придумать как зашифровать эти файлы, да так, чтоб зритель, даже если захочет, то не сможет расшифровать, а только просмотреть,
M>с помощью специального плеера-расшифровщика. Еще заказчик настаивает на использовании USB-dongle, чтоб без него нельзя было посмотреть видео. Потоковое воспроизведение не нужно (может в перспективе), пока достаточно простого обмена шифрованными видеофайлами.

M>И вот думаю сейчас как такое реализовать, причем с безопасностью знаком в теории (вот появилась возможность попрактиковаться ).

M>Нижеописанные идеи основаны на том, что USB-донгл — просто хранилище для ключа (типа флешки), которое имеет API для доступа к этому ключу. Знаю, что это топорное представление — пока все еще разбираюсь с этой темой .

M>Идея которая возникла сразу — зашифровать видеофайл каким-то ключем, а плеер расшифрует его, используя ключ, хранящийся на dongle. Слишком просто. Нет. Кто-то из зрителей потеряет юсб-ключ, и любой, кто найдет этот девайс, сможет расшифровать все остальные видео.


M>Вторая идея — разбить приватный ключ на 2 части. Часть ключа хранится на донгле, а часть — отдается сервером по https, когда клиент вводит правильные логин и пароль. Таким образом, имея юсб-ключ, но не зная логина-пароля, видео не расшифруешь. Уже лучше. Но если кто-нибудь как-нибудь узнает полный приватный ключ, то сможет расшифровать все видео. А узнать ключ можно, запустив мой безопасный видеоплеер в отладчике.


M>Третья идея — вторая идея, но каждый зашифрованный видеофайл содержит в заголовке "соль", какой-то уникальный идентификатор, который объединяется с ключем из донгла и ключем полученным с сервера, и получается полный ключ, которым можно расшифровать видео. Здесь даже имея полный ключ, удастся расшифровать только одно видео, потому что каждое видео шифруется своим личным ключем, а не общим, как в предыдущих двух пунктах.


M>А еще можно зашифровать открытым ключем, а расшифровать закрытым. Только вряд-ли здесь это поможет сделать систему более безопасной.

M>Не хочется перемудрить и нагородить лишнего. И усложнять без необходимости не хочется. Чем проще — тем надежней.

M>Как бы вы подобное реализовали?

M>Подскажите существующие решения?

M>Очень хотелось бы услышать мнение Владимира Кочеткова, и других людей работающих с безопасностью .

M>Спасибо

Вы хотите не много странного: зашифровать файл так, что бы в случае потери ключа шифрования, им нельзя было расшифровать файл. Тут можно только улучшить защиту создав несколько "перегородок": разбить ключ на несколько частей и хранить в разных местах, использовать привязку к конкретному пк, задействовать сервер через логин и парооль и т.д. Компромисом по простоте и надежности, мне кажется будет способ привязки к пк и ключу шифрования на флешке, т.к. в случае потери флешки на другом пк файл невозможно будет посмотреть.
Программа – это мысли спрессованные в код
Отредактировано 25.09.2015 10:48 Qulac . Предыдущая версия .
Re: Безопасное проигрывание зашифрованных видеофайлов
От: Слава  
Дата: 25.09.15 18:42
Оценка:
Здравствуйте, Michaels1, Вы писали:

M>Привет!


M>Случилось так, что пришлось писать приложение для безопасного проигрывания видеофайлов.

M>Заказчик очень сильно переживает что его драгоценные видео выложат в свободный доступ.

Мне очень интересно, а что ж это за видео такое будет? Не ЦП ли?
Re[2]: Безопасное проигрывание зашифрованных видеофайлов
От: wildwind Россия  
Дата: 26.09.15 06:55
Оценка:
Здравствуйте, Слава, Вы писали:

С> Мне очень интересно, а что ж это за видео такое будет? Не ЦП ли?


Наверняка какие-нибудь г...курсы с аудиторией в несколько тысяч человек.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[2]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 26.09.15 08:41
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, Michaels1, Вы писали:


M>> Третья идея — вторая идея, но каждый зашифрованный видеофайл содержит в заголовке "соль", какой-то уникальный идентификатор, который объединяется с ключем из донгла и ключем полученным с сервера, и получается полный ключ, которым можно расшифровать видео. Здесь даже имея полный ключ, удастся расшифровать только одно видео, потому что каждое видео шифруется своим личным ключем, а не общим, как в предыдущих двух пунктах.


W>Немного доработать и сгодится. Каждому клиенту генерируется ключ, его копия файла симметрично шифруется этим ключем. Сам ключ шифруется асимметрично и добавляется в видеофайл. Ключ для расшифровки ключа хранится в USB токене и расшифровывается им же. Далее плеер расшифровывает видеопоток.


W>Уязвимости: отладчик, софт-грабберы, аппаратные грабберы, шаринг USB токена по сети. От первых двух можно попытатья защититься, но лучше плюнуть.


Спасибо за ответ!
Но шифровать отдельно под каждого пользователя у сервера нет возможности, я собирался заранее зашифровать каждый видеофайл своим разным ключом, который складывается из 3-х: ключ пользователя на сервере+ключ польз. usb + соль видеофайла (этот ключ разный потому что разная соль у каждого видеофайла, а объединенная пара (ключ пользователя на сервере+ключ пользователя на usb) одна и та же для всех, хотя сами ключи пользователя и ключ на usb разные для разных пользователей). Может есть решение получше для такого случая?

А что за шаринг usb по сети?
Отредактировано 26.09.2015 8:42 Михaил . Предыдущая версия .
Re[4]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 26.09.15 12:38
Оценка:
Здравствуйте, wildwind, Вы писали:

M>> Спасибо за ответ!

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

W>Противоречие же, нет?


M>> объединенная пара (ключ пользователя на сервере+ключ пользователя на usb) одна и та же для всех, хотя сами ключи пользователя и ключ на usb разные для разных пользователей).


W>Это как?


Еще раз попробую описать что имелось ввиду.
Вот есть глобальный ключ masterkey. Он один и очень секретный .
У каждого пользователя есть 2 ключа serverkey_user и usbkey_user. Вместе они секретные, и дают masterkey для этого пользователя (Например masterkey=(serverkey_user xor usbkey_user), где server_key — слкчайная строка, генерируется когда пользователь регистрируется; зная только один комопонент (serverkey_user ИЛИ userkey_user) невозможно узнать masterkey.

Когда надо зашифровать видео, гененируется случайное число video_salt, и шифруется ключем (masterkey xor video_salt). Тогда получается что каждое видео зашифровано своим ключем, а не одним и тем же, хотя эта video_salt возвращается клиенту сервером вместе с самим видеофайлом (может глупо?, но хотя бы видео не одним и тем же ключем зашифрованы).

Пользователю после авторизации возвращается его serverkey_user, а на флешке у него usbkey_user, так что он может расшифровать любое видео, получив video_salt этого конкретного видеофайла.

Вот чего я нагородил .
Да, заполучив master_key, хакер вскроет все видео...
Что в такой схеме избыточное?

W>Если ключ одинаковый для всех пользователей, то несколько [потенциальных] пользователей могут скинуться, заплатить хакеру, получить ключ и выложить его для всех.


Да, могут, но защита в основном от тех, кто не клиент компании. Для тех, кто легальный пользователь, попробую watermark какой-нибудь дополнительно встроить в видео.

M>> А что за шаринг usb по сети?


W>Трафик, которым приложение общается с токеном, перенаправляется на другой комп, где и находится токен. Так уже давно поступают с кодированными спутниковыми телеканалами, Google('cardsharing').


Понятно. спасибо.
Отредактировано 26.09.2015 12:42 Михaил . Предыдущая версия . Еще …
Отредактировано 26.09.2015 12:41 Михaил . Предыдущая версия .
Отредактировано 26.09.2015 12:40 Михaил . Предыдущая версия .
Re[5]: Безопасное проигрывание зашифрованных видеофайлов
От: wildwind Россия  
Дата: 26.09.15 13:15
Оценка:
Здравствуйте, Michaels1, Вы писали:


M> Вот есть глобальный ключ masterkey. Он один и очень секретный .

M> У каждого пользователя есть 2 ключа serverkey_user и usbkey_user. Вместе они секретные, и дают masterkey для этого пользователя (Например masterkey=(serverkey_user xor usbkey_user), где server_key — слкчайная строка, генерируется когда пользователь регистрируется;

В смысле просто masterkey, а не "для этого пользователя", верно?

M> Пользователю после авторизации возвращается его serverkey_user, а на флешке у него usbkey_user, так что он может расшифровать любое видео, получив video_salt этого конкретного видеофайла.


Еще раз уточни, под "флешкой" ты все же подразумеваешь криптотокен, а не обычную флешку? И usbkey_user с него отдается приложению, а masterkey получается уже в приложении?

M> Вот чего я нагородил .

M> Да, заполучив master_key, хакер вскроет все видео...
M> Что в такой схеме избыточное?

Если я все понял правильно, разделение masterkey на части избыточно. Оно ничего не добавляет к стойкости, раз masterkey все равно оказывается у пользователя. video_salt тоже избыточна, непонятно какую функцию выполняет.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[6]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 26.09.15 13:43
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, Michaels1, Вы писали:



M>> Вот есть глобальный ключ masterkey. Он один и очень секретный .

M>> У каждого пользователя есть 2 ключа serverkey_user и usbkey_user. Вместе они секретные, и дают masterkey для этого пользователя (Например masterkey=(serverkey_user xor usbkey_user), где server_key — слкчайная строка, генерируется когда пользователь регистрируется;

W>В смысле просто masterkey, а не "для этого пользователя", верно?


Да

M>> Пользователю после авторизации возвращается его serverkey_user, а на флешке у него usbkey_user, так что он может расшифровать любое видео, получив video_salt этого конкретного видеофайла.


W>Еще раз уточни, под "флешкой" ты все же подразумеваешь криптотокен, а не обычную флешку? И usbkey_user с него отдается приложению, а masterkey получается уже в приложении?


Да, хочу использовать какой-нибудь Guardant Code или аналог, пока думаю как это все правильно организовать.

M>> Вот чего я нагородил .

M>> Да, заполучив master_key, хакер вскроет все видео...
M>> Что в такой схеме избыточное?

W>Если я все понял правильно, разделение masterkey на части избыточно. Оно ничего не добавляет к стойкости, раз masterkey все равно оказывается у пользователя. video_salt тоже избыточна, непонятно какую функцию выполняет.


Разделение для того, чтоб если usb-ключ кто то взял, он бесполезен без логина на сервере.
Ну да, согласен, вообще эта защита избыточна, ведь теоретически можно посмотреть master_key в отладчике. Но и делать очень просто наверное глупо, это повышает шансы даже непрофессионалам взломать?

Хотя, если вынести часть алгоритма на usb-ключ, это могло бы помочь? например ключ для дешифровки видео (masterkey+videosalt) считается внутри usb-донгла, а как именно — взломщик не узнает, он только может узнать videosalt и user_server_key поотдельности, и результирующий ключ для этого конкретного видео (назовем его video_key) может узнать посмотрев в отладчике или просниффив USB (хотя передачу usb ведь можно зашифровать). Таким образом, если раньше можно было получить masterkey и расшифровывать любые видео без usb донгла, то теперь без донгла он никак не расшифрует другие видеофайлы.

Хотя опять возможно слишком все усложнил
Re[7]: Безопасное проигрывание зашифрованных видеофайлов
От: wildwind Россия  
Дата: 26.09.15 14:03
Оценка:
Здравствуйте, Michaels1, Вы писали:

M> Разделение для того, чтоб если usb-ключ кто то взял, он бесполезен без логина на сервере.


То есть защита от кражи usb-ключа? Такую цель ты не озвучивал.

M> Ну да, согласен, вообще эта защита избыточна, ведь теоретически можно посмотреть master_key в отладчике. Но и делать очень просто наверное глупо, это повышает шансы даже непрофессионалам взломать?


Повышает, конечно, чем проще, тем выше. Весь вопрос в том, какого уровня защита будет для вас достаточна. Нужно составить уравнение с тремя переменными: стоимость контента, стоимость защиты и стоимости взлома. Да, еще время взлома, если оно имеет значение (например, контент устаревает).

M> Хотя, если вынести часть алгоритма на usb-ключ, это могло бы помочь?

M> [...]
Собственно это я и предложил.
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re[8]: Безопасное проигрывание зашифрованных видеофайлов
От: Michaels1  
Дата: 26.09.15 16:03
Оценка:
Здравствуйте, wildwind, Вы писали:

M>> Разделение для того, чтоб если usb-ключ кто то взял, он бесполезен без логина на сервере.


W>То есть защита от кражи usb-ключа? Такую цель ты не озвучивал.


Нет, скорее нужна защита от использования usb-ключа разными пользователями, а разделение masterkey на 2 части помогает привязать пользователя к его usb-донглу(сервер может не отдавать user_server_key ключ, если S/N компьютера поменялся, к примеру). Как считаете?
Отредактировано 26.09.2015 16:13 Михaил . Предыдущая версия . Еще …
Отредактировано 26.09.2015 16:11 Михaил . Предыдущая версия .
Отредактировано 26.09.2015 16:11 Михaил . Предыдущая версия .
Re[9]: Безопасное проигрывание зашифрованных видеофайлов
От: pva  
Дата: 27.09.15 15:31
Оценка:
Здравствуйте, Michaels1, Вы писали:

M>Как считаете?

Офлайн версия контента будет? Если нет, то возьмите образец у существующих CAS типа IRDETO и реализуйте свое.
Там вам и токен и уже отработанная метода. Хотя, как уже упомянули выше, кардшаринг рулит.
newbie
Re[9]: Безопасное проигрывание зашифрованных видеофайлов
От: wildwind Россия  
Дата: 30.09.15 19:05
Оценка:
Здравствуйте, Michaels1, Вы писали:

M>>> Разделение для того, чтоб если usb-ключ кто то взял, он бесполезен без логина на сервере.

W>>То есть защита от кражи usb-ключа? Такую цель ты не озвучивал.
M>Нет, скорее нужна защита от использования usb-ключа разными пользователями,

Если это использование добровольное, то разделение ключа ничего не дает. Обе части будут переданы добровольно.

M>а разделение masterkey на 2 части помогает привязать пользователя к его usb-донглу(сервер может не отдавать user_server_key ключ, если S/N компьютера поменялся, к примеру). Как считаете?


Так все-таки к usb-донглу или к компьютеру? Ты сам-то свою схему хорошо представляешь или на ходу выдумываешь? Если привязать к компьютеру, то пользователи пошлют вас подальше, я считаю.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.