验证显示器是否符合HDCP标准(强制输出HDCP,如果HDCP不可用则禁用输出)。

8
我正在使用C# Windows Forms工作,并希望确保我的表单内容通过系统硬件仅通过HDCP兼容流输出。这将需要一个多步骤的过程,高级块图描述如下:
  1. 确定显示器是否支持HDCP
  2. 确定显卡是否支持HDCP
  3. 最后将HDCP加密应用于输出
如果任何一个阶段报告失败,则可以轻松地使表单变黑。
我已经进行了少量研究,但似乎找不到任何详细示例、线索或指令来完成此任务。我已经尝试使用DirectX和Windows OPM,但没有找到足够的帮助。Windows PlayReady许可证似乎也触及了这个问题,但似乎是预加密内容(而且非常昂贵)。也许有一种方法我没注意或没想到?
如需其他信息,请告诉我。
谢谢你的帮助。

HDCP是一项专有技术,旨在为英特尔赚取利润。你为什么期望它会便宜易实现呢?他们将其许可给内容提供商(即你),而不是播放器。当进行模拟时,该协议还需要非常高的硬件密集度,因此你真正想要通过DirectX和OPM来实现。有一个兼容HDCP的开源实现协议http://www.cs.sunysb.edu/~rob/hdcp.html,但它对于你想要的基本无用,太过昂贵,且可能需要你编写驱动程序。 - Luaan
...而且你基本上只是在进行混淆,实际上很容易绕过你的检查。你只需要在可执行文件中改变几个字节,保护就消失了。或者有人可能会截取你的输入等。或者你正在实现自己的视频播放器,需要符合HDCP协议吗? - Luaan
1个回答

1
HDCP很好,但非常难实现。即使您在市场上拥有完全符合您要求的产品,也不会被HDCP认证,因为它很容易被黑客攻击。大多数情况下,与HDCP相关的内容(例如存储HDCP密钥的ROM)都受到硬件保护,当您的产品上市时,这些内容永远无法读取。有时,您甚至需要隐藏从一个组件到另一个组件的硬件路径,以保护嗅探您的HDCP解密数据,例如从显卡芯片到HDMI连接器之间。
回答您的问题,如果您能够以某种方式读取显示器的EDID,则只能检测显示器是否支持HDCP。我不认为您可以使用Windows中的现有工具来完成此操作。不过我可能是错的。

我应该在哪里查看EDID以获取HDCP信息? - Dilip Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接