-
Notifications
You must be signed in to change notification settings - Fork 23
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
Identify proprietary DRM schemes #68
Comments
This sounds like a better user experience for sure. That would also solve our dilemma about when to resolve the |
I think attempting to support everything is always challenging and each DRM seems to be very specific. To implement ACS support I had to write a custom On the contrary, I was going to suggest to remove Actually, there is another way to return clever errors to users. Readium allows only one I may have drifted away from the initial topic because I cannot completely figure out what the issue is. |
I'm convinced from the start that having schema and profile at the level of each encrypted resource is non useful, and this information should be held at the level of the global manifest metadata. If we go the route of having a "drm" / "protectedBy" property with values like "lcp" "acs" ..., the value currently in "scheme" would go there, along with a sub-property "profile" for dealing with the lcp case today, maybe other types of drm tomorrow.
Now, apart from lcp and acs, we won't find in the wild different types of drm protected ebooks, will we? Kobo, Apple, Google, Amazon protected ebooks are not exported easily from their walled gardens. |
We have zero plan for supporting these DRMs on the decryption side, but IMO there's a real use case in being able to identify them and provide better error handling.
That's incorrrect,
That's not the same level of information. Your average LCP protected file will have:
We need to have that information at a resource level, which is consistent with how this information is expressed in EPUB as well (albeit poorly expressed in the case of EPUB). While I'm certainly in favor of a helper method at a publication level that will process resource-level information and return a value for the publication, this is quite different from adopting a lossy information model like the one you're suggesting. |
I think the proposal is not meant to replace any custom parsing from the DRMs (we still need to parse the LCPL for example with LCP). It's more to give an information about which DRM is used, for the well-known ones. |
Correct. I see this as a DRM counter-part to the work that has been done to better identify formats in our SDK. |
Although I think this is doable for the |
You're talking about the If I'd like to see a more concrete specification of better error handling provided by an information about DRM right inside RWPM. It seems to me that the ContentProtection API already fits the need. |
Isn't the algorithm property giving this information?
Just a precision: it is not an encryption scheme, the algorithm says all about the encryption of the resource. It is a drm scheme, i.e. the way to find the decryption key. |
It only provides partial information and answers two specific questions:
You need to know the scheme and the profile as well to have the whole picture and answer the final question:
In most cases that's correct. But one could imagine use cases that are not DRM related. For example a stronger approach to protect fonts, without going full DRM on it. |
Let me remind the existence of the ContentProtectionService, designed to be exposed both as a native API and served over HTTP. |
While we're already capable of identifying LCP using the EPUB profile and its
scheme
element, there are other DRM schemes out there which we're currently not capable of identifying.A user could import an EPUB file that's protected by other schemes such as:
IMO we should be able to identify all these schemes in RWPM since they could prohibit users from accessing their files. Without this info, Readium Mobile and Desktop could return an unknown error (or worse) which is never ideal.
For each of these DRM schemes we should document:
This information should be added to an appendix of the EPUB Profile.
Any thoughts on this @llemeurfr @danielweck @qnga @mickael-menu ?
The text was updated successfully, but these errors were encountered: