Как реализовать защиту от копирования с помощью OpenGL render

Я хочу реализовать защиту от копирования для рендера opengl, вот некоторые идеи, никто из них не убежден. Не могли бы вы дать мне несколько советов, как это сделать?

ChangeDisplaySettingsEx API позволяет изменять конфигурацию устройства отображения. Он использует структуру VIDEOPARAMETERS, содержащую детали защиты от копирования. Этот API был представлен в Windows 2000. Он устанавливает глобальные параметры защиты от копирования для каждого вывода, тогда как COPP или OPM устанавливает параметры защиты от копирования для каждого окна приложения.

COPP API доступен только в фильтрах DirectShow VRM-7 или VMR-9 и доступен, начиная с WinXP. Его использование подразумевает, что нам нужно визуализировать контент с помощью DirectShow. Что произойдет, если мы полностью отрендерим наше приложение без Directshow, но создадим фиктивный VRM-9 для установки защиты от копирования?

OPM API доступен только в Vista, но файлы заголовков являются лишь частью Windows 7 SDK. Этот API кажется явно лучше, чем COPP, в частности, он позволяет приложению устанавливать параметры защиты от копирования с дескрипторов монитора окна, поэтому его можно использовать без использования Direct 3D, DirectShow или PMP.


person Frank    schedule 01.12.2010    source источник


Ответы (1)


Защита от копирования не работает. Период. Всегда есть способы добраться до содержимого, отображаемого на экране. Если вы не можете получить его с помощью программы, работающей в системе, вы подключаете выход графической карты. Существуют боксы для видеозахвата HDMI, доступные менее чем за 250 долларов, а также просочились главные ключи HDCP, защищающие HDMI.

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

ИЗМЕНИТЬ из-за комментариев: Включение защиты от копирования не является функцией OpenGL. Это связано с графической подсистемой операционной системы. В случае Windows защита от копирования HDCP реализована как часть графа фильтров DirectX для видеопотоков. OpenGL отделен от DirectX, поэтому маловероятно, что вы сможете «защитить» то, что было отрисовано с помощью OpenGL.

person datenwolf    schedule 01.12.2010
comment
-1 Независимо от ваших личных ощущений, иногда требуется HDCP / DPCP (либо вашим заказчиком, либо ожидаемыми конфигурациями оборудования). Может быть, легко отказаться от вопроса, но это определенно не та планка, которую следует устанавливать для ответов. - person Ron Warholic; 01.12.2010
comment
HDCP не работает. Когда какой-то заказчик просит меня внедрить его, я говорю им это. Просто потому, что, если я не сообщу им об этом и не внедрил DPCP, любой клиент может подать на меня в суд за возможное нарушение защиты от копирования. Это не личное ощущение, а просто технический факт. И чем раньше все в отрасли поймут это, тем скорее мы сможем двигаться вперед, сосредоточивая внимание на важных вещах. Теперь к исходному вопросу: это не имеет ничего общего с OpenGL, это чисто особенность базовой графической системы. И AFAIK включение HDCP возможно только для наложений видео. - person datenwolf; 01.12.2010
comment
@datenworlf Даже если я полностью с вами согласен, в реальном мире требования заказчика должны соблюдаться. Фрэнк, вероятно, был обязан реализовать это, даже если это могло привести к получению продукта более низкого качества из-за имеющегося времени. Более того, система защиты не гарантирует авторских прав, но усложняет взлом системы. - person Luca; 02.12.2010
comment
Если у вас есть чувство этики, вы даже не станете пытаться реализовать схему защиты от копирования. Нарушение авторских прав - это социальная проблема, которую невозможно решить с помощью технических средств. - person ; 02.12.2010