我正在尝试使用 Clear Key 加密来理解 EME。我正在使用 MP4Box。从此处的文档中,您可以在用于加密/解密 mp4 文件的 XML 文件中指定解密密钥。 https://gpac.wp.mines-telecom.fr/mp4box/encryption/common-encryption/
基本上,具有明确密钥加密的 EME 是否有任何意义,是否可以使用它来保护内容?
据我了解,您在此 XML 中指定的加密密钥是客户端需要在前端用于解密 HTML5 音频/视频流的密钥。这意味着,用户可以随时使用浏览器的开发工具来获取密钥。
我想我可以以某种方式混淆密钥,但任何有决心的人仍然可以得到密钥。
我可能做的另一件事是将其与过期的流链接结合起来,但这也不会投射密钥。
我认为您也可以定期重新加密媒体,或者使用不同的密钥多次加密文件,但这似乎不能很好地扩展。每次播放都有一个 1 次使用密钥会很好,但同样,效率可能非常低。
以下是特定加密密钥的 XML 配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<GPACDRM type="CENC AES-CTR">
<!-- example for GPAC 'clear' DRM System - keys are listed after the content and UL follows -->
<DRMInfo type="pssh" version="1" cypherOffset="9" cypherKey="0x6770616363656E6364726D746F6F6C31" cypherIV="0x00000000000000000000000000000001">
<BS ID128="6770616363656E6364726D746F6F6C31"/>
<BS value="2" bits="32"/>
<BS ID128="0x279926496a7f5d25da69f2b3b2799a7f"/>
<BS ID128="0x676cb88f302d10227992649885984045"/>
<BS bits="8" string="CID=Toto"/>
<BS ID128="0xccc0f2b3b279926496a7f5d25da692f6"/>
<BS ID128="0xccc0f2b3b279926496a7f5d25da692d6"/>
</DRMInfo>
<CrypTrack trackID="1" IsEncrypted="1" IV_size="16" first_IV="0x0a610676cb88f302d10ac8bc66e039ed" saiSavedBox="senc">
<key KID="0x279926496a7f5d25da69f2b3b2799a7f" value="0xccc0f2b3b279926496a7f5d25da692f6"/>
<key KID="0x676cb88f302d10227992649885984045" value="0xccc0f2b3b279926496a7f5d25da692d6"/>
</CrypTrack>
</GPACDRM>