You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Ross Johnson (Jira)" <ji...@apache.org> on 2023/12/20 23:23:00 UTC
[jira] [Created] (TIKA-4175) Additional IRM-protected PDFs should throw EncryptedDocumentException
Ross Johnson created TIKA-4175:
----------------------------------
Summary: Additional IRM-protected PDFs should throw EncryptedDocumentException
Key: TIKA-4175
URL: https://issues.apache.org/jira/browse/TIKA-4175
Project: Tika
Issue Type: Bug
Reporter: Ross Johnson
Attachments: image-2023-12-20-17-06-29-791.png, image-2023-12-20-17-12-09-946.png
I've come across some PDFs that use an Adobe IRM scheme, similar to TIKA-4082, where a wrapper PDF contains an IRM-protected embedded PDF. These wrapper PDFs do not currently throw because the structure is a bit different than what is currently being looked for in PDFParser#checkEncryptedPayload().
As best I can tell, this form of IRM was implemented by Adobe, but is licensed to 3rd parties who then can market it as their own form of PDF protection. The documents I've seen are from an IRM product from Interlinks, but there are likely very similarly protected PDFs from other products.
Opening the wrapper PDF in Adobe Reader / Acrobat prompts for a server authentication (shown below). Opening in other viewers shows the wrapper splash page, which indicates that the viewer is not secure and to use Adobe Reader. !image-2023-12-20-17-06-29-791.png!
The wrapper PDFs I've seen use PDF version 1.4 and have a somewhat generic /EmbeddedFiles dictionary: !image-2023-12-20-17-12-09-946.png!
The encrypted PDF payloads I've seen have a somewhat interesting /Encrypt dictionary with a Filter value of "Adobe.APS".
{code:java}
<<
/EDCData (...base64 string...)
/CF <<
/DefaultCryptFilter<</CFM/AESV3/Length 256>>
>>
/PDRLLic (...base64 string...)
/R 65537
/StmF /DefaultCryptFilter
/Filter /Adobe.APS
/EncryptMetadata true
/V 5
/StrF /DefaultCryptFilter
/PDRLPol (...base64 string...)
/SubFilter /adobe.pdrl.v0
>>
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)