PDF 비밀번호 제거가 실패하는 이유 — 오류 메시지가 알려주지 않는 것
PDF 비밀번호를 분명 정확히 입력했는데도 "비밀번호가 틀리거나 지원하지 않는 형식입니다"라는 오류만 반복해서 뜬다면, 그건 도구가 대충 만들어져서가 아닙니다. 브라우저에서 동작하는 PDF 라이브러리 구조상 애초에 "틀린 비밀번호"와 "지원하지 않는 암호화 방식"을 구분할 방법이 없는 경우가 많습니다. 이 가이드는 그 이유를 PDF 암호화 표준의 역사와 함께 설명하고, 실제로 무엇을 확인해봐야 하는지 정리합니다.
1. PDF 암호화는 한 가지 방식이 아니다
PDF 표준은 1990년대부터 지금까지 여러 차례 개정되면서 암호화 방식도 함께 진화했습니다. 초기 PDF는 RC4 40비트 암호화를 썼고, 이후 RC4 128비트가 추가됐으며, PDF 1.6/1.7 세대에서는 AES-128이, 최신 PDF 2.0 표준에서는 AES-256이 표준이 됐습니다. PDF 파일 내부의 암호화 딕셔너리에는 이 방식을 구분하는 /R(리비전) 값이 들어 있는데, 어떤 라이브러리가 낮은 리비전만 지원하도록 만들어졌다면 최신 AES-256으로 암호화된 PDF는 비밀번호가 정확해도 열지 못합니다.
2. 왜 오류 메시지가 원인을 구분해주지 않을까
브라우저에서 동작하는 JS PDF 라이브러리(pdf-lib, PDF.js 등)의 관점에서 "비밀번호가 틀렸다"와 "비밀번호는 맞을지 몰라도 이 암호화 방식 자체를 처리할 줄 모른다"는 두 상황 모두 결과적으로 "복호화 실패"라는 같은 지점에서 예외가 발생합니다. 라이브러리 내부에서 그 실패가 정확히 어느 단계(키 유도 실패인지, 알고리즘 자체를 모르는 것인지)에서 났는지 항상 구분해서 알려주는 게 아니라서, 그 위에 올라간 도구도 "비밀번호 오류 또는 미지원 형식"이라는 뭉뚱그린 메시지밖에 보여줄 수 없는 구조적 한계가 있습니다.
PDFDocument.load(파일, {password, ignoreEncryption:false})를 호출하는데, 비밀번호 오류와 미지원 암호화 방식이 코드상 동일한 catch 블록에서 처리되어 똑같은 메시지가 뜹니다. 이는 이 도구만의 문제가 아니라 비슷한 구조의 브라우저 기반 PDF 도구 전반에서 흔히 나타나는 패턴입니다.
3. 그래서 실제로 뭘 확인해야 하나
- 비밀번호를 한 글자씩 다시 확인: 영문 대소문자, 자동완성이 엉뚱한 값을 채워넣지 않았는지, 키보드 입력 시 IME(한/영 전환)가 잘못 걸려있지 않은지부터 의심하세요. 브라우저 자동완성이 이전에 저장된 다른 비밀번호를 채워넣는 경우도 흔합니다.
- 정말 정확한데 계속 실패한다면 암호화 방식 자체를 의심: 최근에 Acrobat 최신 버전이나 다른 도구로 AES-256(PDF 2.0)으로 새로 암호화된 파일이라면, 가벼운 브라우저 라이브러리가 그 방식을 아직 지원하지 않을 가능성이 있습니다.
- 대안 도구 시도: 브라우저 도구로 계속 실패하면 데스크톱 Acrobat, 또는 오픈소스
qpdf같은 더 폭넓은 암호화 방식을 지원하는 도구로 시도해보는 게 빠른 해결책입니다.
4. 사용자 비밀번호 vs 소유자 비밀번호
PDF 암호화에는 성격이 다른 두 가지 비밀번호가 있습니다. 사용자 비밀번호(user password)는 파일을 여는 데 필요한 비밀번호이고, 소유자 비밀번호(owner password)는 인쇄·복사·편집 같은 권한을 제한하는 데 쓰이는 별개의 비밀번호입니다. "인쇄가 막혀있다", "텍스트 복사가 안 된다" 같은 증상은 대개 소유자 비밀번호 쪽 제한이고, 이런 파일은 사용자 비밀번호(=열람 비밀번호) 자체는 비어 있는 경우가 많습니다. 열람은 되는데 권한 제한만 있는 파일을 "비밀번호 제거" 도구에 넣을 때는, 비밀번호 입력칸을 비운 채로 시도하는 게 맞는 접근입니다. 반대로 어떤 비밀번호를 입력해도 파일 자체가 안 열린다면 그건 사용자 비밀번호 문제입니다.
자주 묻는 질문
Q. 비밀번호를 여러 번 확인했는데도 계속 실패해요.
A. 자동완성/IME 문제를 배제했다면, 그 PDF가 최신 AES-256(PDF 2.0) 방식으로 암호화됐을 가능성을 의심해보세요. 브라우저 기반의 가벼운 PDF 라이브러리는 이 최신 방식을 아직 지원하지 않는 경우가 있고, 이때도 "비밀번호 오류"와 똑같은 메시지가 뜹니다.
Q. 인쇄만 막혀있고 열람 비밀번호는 없는 것 같은데도 오류가 나요.
A. 이런 경우 대부분 소유자 비밀번호(권한 제한용)만 걸려 있고 사용자 비밀번호(열람용)는 빈 값입니다. 비밀번호 입력칸을 비운 채로 다시 시도해보세요.
Q. 결국 안 되면 어떻게 하나요?
A. 브라우저 기반 도구가 지원하지 않는 암호화 방식일 가능성이 높습니다. 데스크톱 Acrobat이나 오픈소스 qpdf처럼 더 넓은 범위의 PDF 암호화 표준을 지원하는 도구로 시도해보세요.
Q. 비밀번호를 아예 모르는 파일도 강제로 열 수 있나요?
A. 이런 종류의 도구는 정확한 비밀번호를 입력받아 복호화를 "시도"하는 구조라, 비밀번호를 전혀 모르는 상태에서 크래킹해서 여는 기능은 제공하지 않는 경우가 일반적입니다. 정당하게 소유한 파일이라면 원 발급처에 비밀번호를 다시 확인하는 것이 정석입니다.