기업 인증 연동 · DRM 과 문서보안 · 이론
DRM 이 걸린 문서가 서버에서 안 열리는 이유
한 줄 요약
DRM 이 걸린 문서는 확장자만 평범할 뿐 실제로는 암호문이라, 에이전트가 없는 서버에서는 절대 열리지 않는다 — 이건 버그가 아니라 설계다.
현장 첫 장면
운영 중인 결재 시스템에서 문의가 들어온다.
> "첨부파일이 안 열려요. '파일 형식 또는 파일 확장명이 잘못되었습니다'라고 나옵니다."
개발자가 서버에 들어가 파일을 확인한다. 크기도 정상이고 확장자도 .xlsx 다.
로컬로 내려받아 열어 보니 열린다. 그런데 사용자는 안 열린다고 한다.
반대 상황도 있다. 서버에서 배치가 그 엑셀을 파싱하려는데 계속 실패한다.
이 시점에 알아야 할 것: 그 파일은 암호화돼 있다. DRM 때문이다.
DRM 은 무엇을 하는가
국내 기업 문서보안(DRM, Digital Rights Management)의 동작은 대략 이렇다.
1. PC 에 DRM 에이전트가 설치돼 있다.
2. 사용자가 문서를 저장하면 에이전트가 자동으로 암호화한다.
확장자는 그대로다. 겉보기엔 평범한 .xlsx 다.
3. 사용자가 문서를 열면 에이전트가 정책 서버에 권한을 물어보고,
허용되면 메모리에서 복호화해 오피스 프로그램에 넘긴다.
4. 권한은 사람·부서·기간·행위(열람/편집/인쇄/화면캡처) 단위로 걸린다.
즉 파일 자체가 암호화된 상태로 돌아다니고, 복호화는 에이전트가 한다.
이 구조가 사고를 만드는 지점이 여럿이다.
왜 서버에서는 안 열리는가
서버에는 DRM 에이전트가 없다. 그래서 서버 입장에서 그 파일은
확장자만 xlsx 인 알 수 없는 바이너리다.
- 자바 라이브러리(POI 등)로 파싱 →
Invalid header signature류 오류 file명령 →data로 나온다 (정상 xlsx 면Microsoft Excel또는Zip archive)- 미리보기/썸네일 생성 실패
- 전문 검색 색인 실패 (내용을 읽을 수 없으니)
진단 한 줄이 있다.
file 첨부파일.xlsxhead -c 4 첨부파일.xlsx | xxd정상 .xlsx 는 ZIP 이라 50 4B 03 04(PK..) 로 시작한다.
DRM 암호화 파일은 벤더 고유의 헤더로 시작하거나 무작위 바이트다.
이 두 줄이면 "파일이 깨졌다"와 "DRM 이 걸렸다"를 구분할 수 있고,
그것만으로도 문제 절반이 해결된다. 나머지 절반은 우리가 못 푼다 — 벤더 영역이다.
그래서 SI 프로젝트에서 무엇을 해야 하는가
DRM 은 우리가 만들 수도, 고칠 수도 없다. 우리가 할 수 있는 것은 설계와 협의다.
1. 서버가 문서 내용을 읽어야 하는 요구사항이 있는가?
- 첨부파일 전문 검색
- 서버 사이드 미리보기(PDF 변환)
- 엑셀 업로드 → 데이터 일괄 등록
- 문서 내용 기반 결재 자동 분류
이런 요구사항이 있으면 분석 단계에서 반드시 DRM 담당 부서와 협의해야 한다.
설계가 끝난 뒤에 발견하면 요구사항 자체를 접거나 별도 예산이 필요하다.
2. 협의 결과는 보통 셋 중 하나다
| 방식 | 설명 | 주의점 |
| --- | --- | --- |
| 서버용 복호화 모듈(SDK) | 벤더가 제공하는 서버 라이브러리로 복호화 | 별도 라이선스·비용. 서버 등록 필요 |
| 예외 정책 | 특정 업로드 경로/계정은 평문 저장 허용 | 보안팀 승인 필수. 범위를 최소화 |
| 업로드 시 사용자 PC 에서 복호화 | 에이전트가 있는 PC 에서 평문으로 올림 | 웹 업로드는 대개 자동 복호화가 안 된다 |
세 번째가 특히 함정이다. "사용자 PC 에 에이전트가 있으니 알아서 풀려서 올라가겠지"는
대부분 틀린다. 오피스 프로그램이 열 때는 복호화되지만,
브라우저가 파일을 읽어 업로드할 때는 정책에 따라 암호문 그대로 올라간다.
그래서 검증계에서 반드시 실제 DRM 이 적용된 PC 로 업로드 테스트를 해야 한다.
개발자 PC 는 대개 예외로 빠져 있어서 테스트가 통과한다. 그리고 오픈 후에 터진다.
3. 반출(복호화) 절차를 요구사항에 포함시켜라
DRM 이 걸린 문서를 외부(협력사, 고객)에 보내야 하는 업무가 있으면
반출 결재 절차가 필요하다. 대기업에서는 한 달에 수천 건씩 일어나는 일이다.
우리 시스템이 그 흐름의 일부라면(예: 협력사 포털에 파일 게시)
결재 연동이나 반출 API 연동이 요구사항에 들어가야 한다.
인접 개념 정리
DRM 과 자주 섞여 쓰이는 용어들을 구분해 두면 회의에서 헤매지 않는다.
| 용어 | 무엇을 하는가 | 통제 지점 |
| --- | --- | --- |
| DRM | 문서 자체를 암호화하고 열람 권한을 통제 | 파일 |
| DLP | 정보 유출 경로(메일·USB·웹)를 감시·차단 | 경로 |
| 문서중앙화 | 문서를 PC 가 아닌 중앙 서버에만 저장 | 저장 위치 |
| VDI / 망분리 | 작업 환경 자체를 분리 | 환경 |
| 워터마킹 | 출력·화면에 식별 정보 표시 (유출 시 추적) | 사후 추적 |
이 다섯이 동시에 걸려 있는 현장이 흔하다. 그래서 "파일이 안 올라간다"는
증상 하나에 원인 후보가 다섯 개다. 문제를 좁히는 순서는 이렇다.
1. 같은 파일이 로컬에서는 열리는가 → 열리면 파일은 정상, 환경 문제
2. 파일 시그니처가 정상인가 → 아니면 DRM 암호화
3. 다른 경로(메일/USB)로도 막히는가 → 막히면 DLP
4. 특정 사용자만 그러한가 → 그러면 권한/정책
5. 특정 망에서만 그러한가 → 그러면 망분리/방화벽
마지막으로 — 로그에 남길 것
DRM 관련 장애는 재현이 어렵다. 사용자 PC 환경에 달려 있기 때문이다.
그래서 업로드 처리 지점에 다음을 로그로 남기면 분석 시간이 크게 준다.
- 파일명, 크기, 선두 8바이트의 16진수
- 업로더 계정, 부서, 접속 IP, 브라우저
- 파싱 시도 결과와 예외 메시지 전문
선두 바이트 로그 하나만 있어도 "DRM 인가 아닌가"를 사후에 판정할 수 있다.
이걸 안 남기면 매번 사용자에게 파일을 다시 받아야 한다.