2026-09-11
PDF에서 일부를 검게 칠해 가리기 전에 — 가리는 것과 지우는 것은 다릅니다
2019년 1월, 폴 매너포트의 변호인단은 일부 내용을 검게 칠해 가린 법원 문서를 제출했습니다. 그 검은 막대는 작동하지 않았습니다. 누구든 가려진 텍스트를 선택해 복사한 뒤 빈 문서에 붙여넣으면 전체를 읽을 수 있었습니다. 그렇게 드러난 내용은 매너포트가 러시아 정보기관과 연결된 콘스탄틴 킬림닉에게 선거운동 여론조사 데이터를 넘기고 우크라이나 평화안을 논의했다는 것이었고, BuzzFeed News와 Motherboard가 몇 시간 만에 이를 보도했습니다. 이 실수는 특별한 게 아닙니다. 가장 흔한 형태의 편집(가림) 실패이고, 7년이 지난 지금도 공개 문서에서 계속 반복됩니다. 검은 상자와 삭제 키는 같은 도구가 아니기 때문입니다. 이 글은 그 차이를 다룹니다 — 검은 상자가 파일에 실제로 하는 일, 같은 파일을 암호화하는 것이 구조적으로 왜 다른 일인지, 그리고 어떤 문제를 가지고 있는지 알고 난 뒤 NearSeal이 어디에 맞는지 설명합니다.
같은 실패가 그 뒤로도 두 번 더
2024년 10월, Kentucky Public Radio와 NPR은 14개 주 검찰총장이 제기한 TikTok 소송의 가려진 문서 약 30페이지가 검게 칠해진 부분을 다른 문서에 복사해 붙이면 그대로 읽힌다는 사실을 발견했습니다. 그렇게 드러난 내용 중에는 TikTok 자체 내부 조사가 찾아낸 청소년 습관 형성의 구체적인 기준값도 있었습니다 — 영상 260개 시청이라는 수치로, NPR이 비가림 원문 보도에서 확인했습니다. 발췌본이 공개되자 주 법원 판사는 소장 전체를 봉인 처리했습니다.
2026년 2월에는 제프리 엡스타인 피해자 200명 이상을 대리하는 변호인단이 연방판사에게, 법무부의 문서 공개 — 2025년 11월 19일 하원 427대1, 상원 만장일치로 통과되어 서명된 엡스타인 파일 투명성법 (공법 119-38호)에 따른 공개 — 에 "수천 건의 가림 실패"가 있었고 그로 인해 거의 100명의 생존자가 영향을 받았다고 전했습니다. CNN이 보도한 구체적인 사례 하나는, 미성년 피해자 32명의 이름이 담긴 이메일에서 단 한 명의 이름만 가려지고 나머지 31명은 그대로 노출된 경우였습니다. NPR은 이 문제가 법정에서 제기된 뒤 법무부가 수천 건의 문서를 공개 목록에서 회수했다고 보도했습니다. 변호인 측 제출 문서, 주 소송, 연방 문서 공개까지 이 세 사례 어디에도 새로운 공격 기법은 없었습니다. 매번 누군가가 여전히 그 아래에 남아 있는 텍스트 위에 검은 사각형을 그렸을 뿐입니다.
검은 상자가 실제로 하는 일
"가려진" PDF는 대개 원본 문서 그대로에, 보이지 않게 하려는 부분 위에 불투명한 도형을 그리거나 칠해 얹은 것입니다. 텍스트 레이어나 스캔 이미지의 픽셀 자체는 그대로 남아 있고, 검은 상자는 그 위에 별도로 얹힌 객체일 뿐입니다. 텍스트를 복사하면 상자가 아니라 그 아래 레이어에서 그대로 끌려 나오기 때문에, 일반 텍스트 파일에 붙여넣기만 해도 흔히 다시 드러납니다 — 해킹도, 소프트웨어 취약점도 필요 없이 전체 선택과 붙여넣기만으로 충분합니다. 미국 국가안보국(NSA)이 직접 낸 지침 Redacting with Confidence(2005년, 2008년 Word 2007용으로 갱신)는 이 원리를 분명히 말합니다. "컴퓨터 문서 안에서 숨겨지거나 가려진 정보는 거의 항상 복구될 수 있다." 이 지침이 꼽은 가장 흔한 실수 목록은 위 사례들의 체크리스트나 다름없습니다 — 텍스트·표·이미지를 검은 사각형이나 검은 강조 표시로 덮는 것, 그리고 이미지를 읽을 수 없어 보일 정도로만 축소해 실제로는 세부 정보를 지우지 않는 것.
이 지침이 제시하는 해법도 마찬가지로 분명하며, "더 진한 검정을 쓰라"거나 "상자를 하나 더 그리라"가 아닙니다. "노출을 피하는 방법은 민감한 정보를 시각적으로 가리거나 읽을 수 없게 만드는 데 그치지 않고, 원본 문서에서 실제로 제거하는 것이다." 민감한 텍스트를 아예 삭제한 다음 문서를 평면화해(숨겨진 텍스트 레이어나 변경 이력이 그 아래에 남지 않도록) 두는 것이지, 위에 덧칠하고 그것이 버텨 주기를 바라는 것이 아닙니다. 최근의 AI 챗봇은 이 오래된 실패 방식을 더 새롭게 만든 게 아니라 더 빠르게 만들었을 뿐입니다. 제대로 가려지지 않은 PDF를 범용 챗봇에 넣고 검은 막대 아래 텍스트를 읽어 달라고 하면 2019년의 복사-붙여넣기와 똑같이 작동합니다. 둘 다 손대지 않은 채 그대로 남아 있는 텍스트 레이어를 읽는 것이기 때문입니다.
암호화는 다른 일을 한다
암호화는 검은 상자처럼 실패하지 않지만, 애초에 같은 일을 하려는 게 아니기 때문입니다. NearSeal은 다른 파일 암호화 도구와 마찬가지로 문서의 내용에는 전혀 손대지 않습니다 — 파일 전체를 하나의 바이트 나열로 취급하고, 기본 형식에서는 패스프레이즈로 PBKDF2-SHA256(2^20회 반복, OWASP 2023 최소 권장치인 60만 회보다 많음)을 거쳐 유도한 키로 AES-256-GCM을 적용합니다. 모든 바이트가 암호문으로 바뀝니다. "이 부분만 빼고 대부분 읽을 수 있게" 같은 모드는 없습니다. 파일 전체가 하나의 불투명한 덩어리가 되고 나면 "이 부분"이라는 개념 자체가 없기 때문입니다 — 패스프레이즈가 있으면 원본 파일 전체를 그대로 돌려받고, 없으면 아무것도 쓸 수 없습니다. "이 문서는 공개하되 이름 12개는 가리고 싶다"에는 잘 맞지 않습니다. 그건 정확히 그 이름들만, 그리고 그것만 영구히 삭제하는 작업이 필요합니다. 반면 "이 문서 전체를 특정 한 사람에게 보내되, 전송 중에 가로채거나 공유 드라이브에서 발견한 사람은 아무것도 열 수 없어야 한다"에는 잘 맞습니다 — 회계사에게 보내는 이메일 첨부, 변호사에게 보내는 전체 사건 파일, 한 사람에게 한 목적으로만 전달되는 아카이브 같은 경우입니다. 이 모든 과정은 브라우저 안에서 로컬로 이루어지며, 어느 단계에서도 어디로도 업로드되지 않습니다.
암호화가 정직하게 해 주지 않는 것
암호화는 가림(레댁션) 도구가 아닙니다. 실제로 필요한 작업이 "문서 대부분은 공개하되 특정 일부만은 안 되게"라면, 암호가 아무리 강력해도 파일 전체를 암호화하는 것은 애초에 형태가 맞지 않는 해법입니다. NSA 지침이 설명하는 방식대로 민감한 부분을 삭제하고 나머지를 평면화하는 도구가 필요하지, 전체에 패스프레이즈를 씌우는 것으로는 안 됩니다.
파일명을 가려 주지도 않습니다. NearSeal의 기본 컨테이너는 원본 파일명을 자체 헤더 안에 평문 그대로 담아 둡니다 — 현재 포맷 버전부터는 위변조는 감지되지만, 파일을 가진 사람이라면 누구나 읽을 수 있고, 가려지지는 않습니다. 그래야 패스프레이즈 없이도 컨테이너를 식별하고 이름을 알아볼 수 있기 때문입니다. "합의금_제안서_홍길동.pdf.nearseal"이라는 이름은 안을 못 보는 사람에게도 비암호화 이름만큼이나 뚜렷하게 무엇이 들었는지 알려 줍니다. 파일명 자체가 보호해야 할 정보의 일부라면, 암호화하기 전에 무난한 이름으로 바꿔 두세요. (NearSeal의 옵트인 age-encryption.org 출력 형식에는 파일명 필드 자체가 없습니다 — 대신 복호화할 때 원래 이름을 되돌려받지 못합니다.)
패스프레이즈 복구는 어떤 경우에도 없습니다. 암호화한 파일의 패스프레이즈를 잊어버리면 NearSeal에는 재설정 링크도, 지원 티켓도, 대신 확인해 줄 서버에 저장된 무언가도 없습니다. 애초에 암호화나 복호화 어느 과정에도 서버가 관여하지 않기 때문입니다. 이는 당신의 파일이 결코 기기 밖으로 나가지 않게 해 주는 것과 같은 설계이고, 그 대가는 양쪽 모두에게 돌아갑니다.
그리고 올바른 패스프레이즈로 누군가 파일을 여는 순간, 그 보호는 거기서 끝납니다. 상대편 기기가 이미 침해된 상태이거나, 수신자가 복호화된 내용을 다시 전달하거나, 열린 문서의 스크린샷이 퍼지는 것 — 암호 알고리즘이 막아 줄 수 있는 일이 하나도 없습니다. 애초에 암호문 자체는 노출된 적이 없었기 때문입니다.
정직한 결론
검은 상자는 문서 대부분을 공개 상태로 유지하면서 그중 한 부분만 영구히 없애기 위한 것이고, 그 제거가 진짜일 때만 — 장식이 아니라 삭제일 때만 — 작동합니다. 패스프레이즈는 파일 전체를 목적한 한 사람 외에는 아무도 읽을 수 없게 만들기 위한 것이고, 부분 설정 같은 건 없이 정확히 그 일을 해냅니다. 매너포트 변호인단도, 켄터키의 TikTok 소송 문서도, 엡스타인 파일 공개도 모두 첫 번째 과제에서 실패했습니다. 삭제가 필요한 자리에 장식을 썼기 때문입니다. 두 번째 도구를 대신 썼어도 문제는 해결되지 않았을 겁니다 — 소송 문서 전체를 암호화했다면, 공개되어야 했던 부분까지 가려지지 않아야 했던 부분과 함께 전부 가려졌을 테니까요. 각 도구는 그것이 실제로 풀도록 만들어진 문제에만 쓰십시오.