Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not updating init-data for In-band key rotation signalling is inefficient/wasteful #17

Open
prasadkhambete opened this issue Jun 19, 2024 · 0 comments

Comments

@prasadkhambete
Copy link

prasadkhambete commented Jun 19, 2024

https://dashif.org/docs/IOP-Guidelines/DASH-IF-IOP-Part6-v5.0.0.pdf Section 9.3 does not mention that init-data needs to be updated at each key-rotation. Some content packaging providers interpret this to mean that they do not need to update the init-data for each key-rotation.

As per section 9.3 - "The initialisation segment has one PSSH box per DRM allowing to access content and a default_KID value
in the tenc box" - this means that a) content packager cannot omit the PSSH in the moov and default_KID in tenc and b) that it is for "allowing to access content" which means it always needs to fetch a valid license.

If the content packaging providers do not update the init-data, it will have a PSSH for a key that has long since rotated. One particular packaging provider is adding PSSH to every moof, and their expectation was that since the default_KID/PSSH in moof overrides the one in the init-data/moov, the stream should play fine.

For the players/parsers - they have no way of knowing after downloading the init-data that they can or should ignore the PSSH in the init-data. Players will send out the license request as soon as they see the PSSH. A player cannot distinguish easily if the key resulting from the PSSH in the init-data may still be required (for example it may be required to decrypt content until the first in-band key rotation) or not (when the init-data is not updated by the packaging provider). Due to this, it will always issue a license request.

If packaging providers do not update the init-data for each key-rotation this will result in a request for a license that will never be used (which is inefficent and wasteful) and there is also burden on the license provider to provide a valid license response for a key that has already been rotated and no longer active, otherwise playback might fail.

DASH-IOP spec should provide some clarifications that the init-data needs to be updated at key-rotation, and that the same PSSH could be added to the moof segments that follow (until the next key rotation)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant