콘텐츠로 건너뛰기
100% 로컬 · 업로드 0 KBPDF 압축

PDF 암호화 설명: RC4 vs AES-128 vs AES-256

PDF 암호화는 비밀번호 없이 파일을 읽을 수 없도록 PDF 콘텐츠 스트림에 적용되는 암호화 보호입니다. PDF 사양은 역사적으로 여러 알고리즘을 지원해 왔으며, 그중 일부는 더 이상 안전하지 않습니다. 이 페이지는 각 알고리즘이 하는 일, 어느 PDF 버전이 이를 도입했는지, 그리고 오늘날 파일을 보호할 때 어느 것을 선택해야 하는지 설명합니다.

메커니즘

PDF 암호화 작동 방식

PDF writer가 파일을 암호화할 때, 무작위 파일 암호화 키를 생성하고 이 키로 콘텐츠 스트림(및 파일의 일부 다른 문자열)을 암호화한 다음, 파일 암호화 키를 사용자 비밀번호로 보호되는 암호화 사전에 저장합니다. 파일을 열려면 뷰어가 비밀번호를 요청하고, 비밀번호에서 키를 파생시키고, 이 키로 파일 암호화 키를 해독한 다음, 파일 암호화 키로 콘텐츠를 해독합니다.

중요한 결과: 비밀번호는 파일에 저장되지 않습니다. 저장되는 것은 비밀번호로 암호화된 값입니다. 비밀번호를 확인하려면 뷰어가 이 값을 해독하고 결과를 알려진 평문 마커와 비교합니다. 그래서 비밀번호 복구가 불가능합니다 — 파일에는 비밀번호가 없고, 비밀번호로 잠긴 무언가만 있습니다.

알고리즘

RC4 — 사용 중단 및 깨짐

RC4는 1987년에 설계된 스트림 암호로 90년대에 널리 사용되었습니다(PDF, SSL, WEP). PDF 1.2가 RC4 40비트를 도입했고 이후 버전이 RC4 128비트로 확장했습니다. RC4는 이제 PDF에서 사용 중단되었으며 현대 보안 용도로는 깨진 것으로 간주됩니다. 구체적으로:

  • RC4 40비트는 현대 하드웨어에서 무차별 대입으로 쉽게 깨집니다.
  • RC4 128비트는 무차별 대입으로 깨지지 않지만, RC4는 평문 정보를 누출하는 통계적 편향이 있으며 RC4로 암호화된 PDF에 대한 여러 실용적 공격이 발표되었습니다.
  • 최신 뷰어는 일부 구성에서 RC4로 암호화된 파일을 열 때 경고하거나 거부합니다.

RC4로 암호화된 새 PDF를 만들지 마세요. 하나를 만나면 (비밀번호로) 해독하고 AES-128 또는 AES-256으로 다시 암호화하세요.

알고리즘

AES-128 — 강력하고 널리 지원됨

AES-128은 PDF 1.5(2003, Acrobat 6/7)에 도입되었습니다. AES는 블록 암호이며 AES-128은 128비트 키를 사용합니다. PDF의 AES 모드는 문자열당 16바이트 무작위 초기화 벡터와 함께 CBC를 사용합니다. AES-128에 대한 실용적 공격은 없으며 모든 최신 PDF 뷰어에서 널리 지원됩니다. AES-256을 사용할 수 없을 때 합리적인 기본값입니다.

알고리즘

AES-256 — 현재 표준

AES-256은 PDF 1.6 Extension Level 3(2008, Acrobat 9)에 도입되었습니다. 256비트 키를 사용하며, 원래 PDF 1.6 Ext Level 3 설계에서는 SHA-256으로 비밀번호에서 키를 파생시킵니다. 이후 수정(PDF 2.0 / Extension Level 8)이 수많은 반복으로 PBKDF2를 사용하는 더 강력한 키 파생을 추가하여 무차별 대입을 훨씬 어렵게 만들었습니다. 이를 "AES-256 R6" 또는 "Acrobat X 호환성"이라 부르기도 합니다.

도구가 제공할 때마다 AES-256을 선호하세요. 이전 키 파생과 새 키 파생 중 선택할 수 있다면 새 것(PBKDF2 기반)을 선택하세요.

역사

어느 PDF 버전이 어느 알고리즘을 도입했는지

  • PDF 1.2 (1996) — RC4 40비트.
  • PDF 1.3 (1999) — RC4 128비트.
  • PDF 1.5 (2003) — AES-128 (V4, R4).
  • PDF 1.6 Ext Level 3 (2008) — AES-256 (V5, R5).
  • PDF 2.0 / Ext Level 8 (2017) — PBKDF2 키 파생을 사용한 AES-256 (V5, R6).

실전

어느 알고리즘을 선택할지

새 파일의 경우: 서명자와 수신 뷰어가 지원하면PBKDF2 키 파생을 사용한 AES-256(R6); 그렇지 않으면 AES-128. 새 파일에 RC4를 선택하지 마세요. 비밀번호가 알고리즘보다 더 중요합니다: AES-256의 6자 비밀번호는 AES-128의 20자 무작위 비밀번호보다 약합니다. 공격 표면이 암호화가 아니라 비밀번호이기 때문입니다.

이전 파일을 열 때: 모든 최신 뷰어가 세 가지 모두 처리합니다. 파일을 제어할 수 있다면 해독하고 AES-256으로 다시 암호화하세요.

유용한 검증: PDF를 보호한 후 암호화에 사용한 것과 다른 뷰어에서 열어 보세요. 두 번째 뷰어가 경고 없이 열 수 있으면 암호화는 널리 호환됩니다. 원래 도구만 열 수 있다면 비표준 모드를 사용했을 수 있습니다.

IXPDF

오늘날 IXPDF의 암호화 능력

IXPDF의 현재 PDF 엔진(pdf-lib)은 암호화된 PDF 읽기 또는 쓰기를 지원하지 않습니다.PDF 보호 및PDF 잠금 해제 페이지는 제한을 정직하게 설명하며 연구 필요으로 표시되어 있습니다. 우리는 업로드 없이 브라우저에서 완전히 AES-256 보호를 제공할 수 있게 해주는 브라우저 호환 암호화 라이브러리를 평가 중입니다. 그때까지 신뢰할 수 있는 로컬 도구는비밀번호 보호 가이드를 참조하세요.

더 읽기

관련 리소스