NearSeal

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 소송 문서도, 엡스타인 파일 공개도 모두 첫 번째 과제에서 실패했습니다. 삭제가 필요한 자리에 장식을 썼기 때문입니다. 두 번째 도구를 대신 썼어도 문제는 해결되지 않았을 겁니다 — 소송 문서 전체를 암호화했다면, 공개되어야 했던 부분까지 가려지지 않아야 했던 부분과 함께 전부 가려졌을 테니까요. 각 도구는 그것이 실제로 풀도록 만들어진 문제에만 쓰십시오.

광고
← NearSeal

이 페이지는 동의하신 경우에만 광고를 표시합니다.