qpdf 암호화에 사용자 비밀번호만 설정하는 방법을 아는 사람이 있나요?
저는 데비안 10(buster)과 qpdf
불안정한 버전의 버스터용 백포트를 사용하고 있습니다.8.4.2-1
사용자 비밀번호(예: userpasswd
)만 설정하고 소유자 비밀번호를 공백으로 남겨두면(예: 빈 문자열 "") 일부 파일의 경우 foo.pdf
암호화 명령은 다음과 같습니다.
qpdf --encrypt userpasswd "" 256 -- foo.pdf foo.enc.pdf
그러나 비밀번호를 묻지 않고 모두 열어 보세요 okular
. 두 가지 모두에 비밀번호를 사용하는 경우 비밀번호를 묻는 메시지가 표시됩니다. 즉evince
xpdf
foo.enc.pdf
qpdf --encrypt userpasswd userpasswd 256 -- foo.pdf foo.enc.pdf
하지만 사용자 비밀번호만 암호화하고 싶습니다.
또한 pdfinfo
파일이 암호화된 것으로 보고되었습니다.
pdfinfo foo.pdf
[...]
Encrypted: yes (print:yes copy:yes change:yes addNotes:yes algorithm:AES-256)
너무 간단한 일에는 문제가 있을 것 같지 않지만 여기서는 내가 뭘 잘못하고 있는지 이해하지 못합니다.
Github의 QPDF 이슈 트래커에 이슈가 추가되었습니다: 사용자 비밀번호만 사용하여 암호화
답변1
핵심: 실제로 하고 싶은 일은 사용자 비밀번호에 빈 문자열을 사용하고 소유자 비밀번호에 비어 있지 않은 문자열을 사용하는 것입니다. 그 반대는 아닙니다. 이렇게 하면 사람들은 비밀번호를 제공하지 않고도 파일을 열 수 있지만 규정을 준수하는 뷰어는 여전히 향상된 문서 보안을 갖게 됩니다. 소유자 비밀번호로 열면 Adobe Acrobat과 같은 도구에서 보안을 수정할 수 있습니다. qpdf는 모든 경우에 파일 보안을 무시하고 사용자 및 소유자 비밀번호를 동일하게 취급합니다.
무슨 일이 일어났는지 설명하려고 노력하겠습니다.
규격 PDF 뷰어는 사용자 비밀번호로 파일을 열 때 파일의 보안을 존중해야 하며 소유자 비밀번호로 파일을 열 때 파일에 대한 전체 "관리자" 액세스를 허용해야 합니다. 따라서 사용자 비밀번호는 제공하고 소유자 비밀번호는 제공하지 않는 것은 의미가 없습니다. 이는 비밀번호를 제공하는 것이 비밀번호를 제공하지 않는 것보다 더 제한적임을 의미하기 때문입니다.
이전 PDF 암호화 형식에서는 사용자 비밀번호에서 파생된 암호화 키로 파일이 암호화되었으며, 실제로 사용자 비밀번호는 소유자 비밀번호로 암호화된 파일에 저장되었습니다. PDF 뷰어는 먼저 제공된 비밀번호가 사용자의 비밀번호인지 확인하려고 시도합니다. 그렇다면 키를 검색하고 파일의 암호를 해독할 수 있습니다. 그렇지 않은 경우 소유자 비밀번호인지 확인합니다. 그렇다면 그곳에서 사용자의 비밀번호와 키를 검색할 수 있습니다. 최신 암호화 형식은 사용자 비밀번호와 소유자 비밀번호를 사용하여 실제 키를 독립적으로 암호화하므로 소유자 비밀번호를 사용하여 사용자 비밀번호를 검색할 수 없습니다.
이러한 동작으로 인해 일부 응용 프로그램은 암호화된 비밀번호를 활성화하고 빈 문자열을 사용자 비밀번호로 사용하려고 시도하며, 실패할 경우 비밀번호를 묻는 메시지를 표시합니다. 일부 패키지(qpdf 포함)는 사용자 비밀번호가 비어 있더라도 소유자 비밀번호가 비어 있는지 확인하려고 시도하지만 실제로는 말이 되지 않습니다. 이는 현재 보고 있는 동작을 설명할 수 있습니다. 이전 버전의 Adobe Acrobat에서는 사용자 및 소유자 비밀번호가 일치하거나 사용자 비밀번호가 설정되어 있고 소유자 비밀번호가 비어 있는 경우 관리자가 파일에 액세스하는 것을 전혀 허용하지 않을 것이라고 생각합니다. 소유자 비밀번호 확인 비밀번호가 제공된 경우에만 시도하기 때문입니다. 사용자 비밀번호로 사용할 수 없습니다.
이것이 당신이 보고 있는 행동을 설명하기를 바랍니다.