PDF 분할 시 암호화 및 보안 설정 유지하기 - 완벽 가이드
PDF 분할 시 암호화 및 보안 설정 유지하기 - 완벽 가이드
암호화된 PDF를 분할할 때 보안 설정이 손실되면 민감한 정보가 노출될 수 있습니다. 분할 전 암호 해제, 분할 후 재암호화, 또는 보안을 유지한 채 분할하는 방법을 완벽히 이해해야 합니다.
암호화 PDF 분할 시 문제점
- 암호화 해제 없이 분할 불가: 대부분의 도구는 비밀번호 입력 필요
- 분할 후 보안 손실: 재암호화하지 않으면 모든 파일 노출
- 메타데이터 유출: 분할 과정에서 작성자·수정일 노출 가능
- 규정 준수 위반: GDPR·HIPAA에서 암호화 의무
암호화 방식 이해
| 암호화 타입 | 설명 | 분할 영향 | 해결 방법 |
|---|---|---|---|
| 사용자 암호 | PDF 열기 필요 (비밀번호 입력) | 분할 불가 | 비밀번호 입력 후 분할 |
| 소유자 암호 | 인쇄·복사·편집 제한 | 분할 가능 | 분할 후 재적용 |
| AES 128비트 | 표준 암호화 | 분할 시 해제됨 | 분할 후 재암호화 |
| AES 256비트 | 강력 암호화 | 분할 시 해제됨 | 분할 후 재암호화 |
단계별 보안 유지 프로세스
1단계: 원본 PDF 암호 확인
# 암호화 여부 확인 pdfinfo encrypted.pdf암호화 방식 상세 확인
pdftk encrypted.pdf output test.pdf 2>&1 | grep -i encrypt
2단계: 비밀번호로 암호 해제
# PDFtk로 암호 해제 pdftk encrypted.pdf input_pw password output decrypted.pdfGhostscript로 암호 해제
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH
-sOutputFile=decrypted.pdf encrypted.pdf
3단계: 암호 해제된 파일 분할
# 분할 수행
pdftk decrypted.pdf burst output page_%d.pdf
4단계: 분할된 파일 재암호화
#!/bin/bash # 모든 분할 파일 재암호화for pdf in page_*.pdf; do # AES 128비트로 암호화 pdftk "pdf" output "encrypted_pdf"
owner_pw "owner_password" user_pw "user_password"
encrypt_128bitecho "✓ 암호화 완료: encrypted_$pdf"
done
온라인 도구 (PDFKit)
암호화 PDF 분할 방법
- PDFKit 접속: https://pdfkit.wooahouse.com
- 'PDF 분할' 선택
- 암호화된 파일 업로드
- 비밀번호 입력창에서 사용자 비밀번호 입력
- 분할 범위 지정 후 '분할' 클릭
- 분할 완료 후 '보안 설정' 옵션에서 재암호화
- 새 비밀번호 설정 후 다운로드
Adobe Acrobat Pro 보안 유지 분할
- 암호화 PDF 열기 → 비밀번호 입력
- '도구' → '페이지 구성' → '분할'
- 분할 범위 지정 → '분할' 클릭
- 분할된 각 파일 열기 → '도구' → '보호' → '암호화'
- AES 256비트 선택, 새 비밀번호 설정
- 각 파일 저장
Python 자동화: 보안 유지 분할
from PyPDF2 import PdfReader, PdfWriter import osdef split_encrypted_pdf(input_pdf, password, output_dir, new_password): """ 암호화된 PDF를 분할하고 각 파일 재암호화 """ if not os.path.exists(output_dir): os.makedirs(output_dir)
# 1단계: 암호 해제된 리더 생성 reader = PdfReader(input_pdf) reader.decrypt(password) total_pages = len(reader.pages) # 2단계: 페이지별 분할 및 재암호화 for page_num in range(total_pages): writer = PdfWriter() writer.add_page(reader.pages[page_num]) # 3단계: 새 비밀번호로 암호화 writer.encrypt( user_password=new_password, owner_password="owner_password", permissions_flag=-44 ) output_file = os.path.join(output_dir, f'page_{page_num + 1}.pdf') with open(output_file, 'wb') as f: writer.write(f) print(f'✓ 생성 및 암호화: page_{page_num + 1}.pdf')사용 예
split_encrypted_pdf( 'encrypted.pdf', password='original_password', output_dir='./encrypted_pages', new_password='new_password' )
Bash 배치 자동화
#!/bin/bash # 암호화 유지 분할 배치 처리INPUT_PDF="encrypted.pdf" INPUT_PASSWORD="original_password" OUTPUT_DIR="./split_encrypted" NEW_PASSWORD="new_password"
mkdir -p "$OUTPUT_DIR"
1단계: 임시 폴더에서 암호 해제 후 분할
TEMP_DIR="./temp_split" mkdir -p "$TEMP_DIR"
echo "암호 해제 중..." pdftk "INPUT_PASSWORD" output "$TEMP_DIR/temp.pdf"
echo "분할 중..." cd "$TEMP_DIR" pdftk temp.pdf burst output page_%d.pdf cd ..
2단계: 각 파일 재암호화
echo "재암호화 중..." for pdf in "$TEMP_DIR"/page_*.pdf; do filename=pdf") pdftk "OUTPUT_DIR/$filename"
owner_pw "NEW_PASSWORD"
encrypt_128bit echo "✓ 암호화 완료: $filename" done3단계: 임시 폴더 삭제
rm -rf "$TEMP_DIR"
echo "✓ 완료: 모든 파일 암호화 유지 분할"
보안 설정 비교
| 설정 | 설명 | 유지 여부 | 재적용 필요 |
|---|---|---|---|
| 인쇄 제한 | PDF 인쇄 불가 | 손실됨 | 예 |
| 복사 제한 | 텍스트·이미지 복사 불가 | 손실됨 | 예 |
| 편집 제한 | 주석·폼 작성 외 수정 불가 | 손실됨 | 예 |
| 사용자 암호 | PDF 열기 비밀번호 | 손실됨 | 예 |
| 메타데이터 | 작성자, 제목 등 | 손실 가능 | 확인 필요 |
검증: 재암호화 확인
# 분할 후 암호화 여부 확인 pdfinfo encrypted_page_1.pdf비밀번호 테스트 (정상이면 성공)
pdftk encrypted_page_1.pdf input_pw "new_password" output test.pdf
암호화 방식 상세 확인
exiftool encrypted_page_1.pdf | grep -i encrypt
FAQ
- Q: 분할 후 원본 암호 사용 가능? A: 아니오, 새 비밀번호로 재암호화 필수.
- Q: 여러 개 보안 설정 유지? A: 각 파일마다 동일하게 재적용 필요.
- Q: 배치 처리 중 비밀번호 보안? A: 스크립트에 평문으로 저장하지 말고, 환경변수 사용.
- Q: AES 128 vs 256? A: 256 권장, 하지만 구형 리더 미지원 가능.
- Q: 암호 손실 시 복구? A: 불가능, 별도로 기록 필요.
보안 체크리스트
- ✓ 원본 비밀번호 안전 저장
- ✓ 분할 후 각 파일 재암호화
- ✓ 새 비밀번호 별도 채널로 전달
- ✓ 암호화 완료 후 임시 파일 삭제
- ✓ 메타데이터 제거 여부 확인
- ✓ 접근 권한 설정 (인쇄·복사·편집 제한)
- ✓ 최종 파일 암호화 검증
댓글
댓글 쓰기