제3자 사이트에 업로드하지 않고 PDF를 안전하게 공유하기: 법무팀을 위한 단계별 가이드
2026. 2. 6.

제3자 사이트에 업로드하지 않고 PDF를 안전하게 공유하기: 법무팀을 위한 단계별 가이드

법무팀이 제3자 사이트 대신 자체 .NET 포털에서 PDF를 미리 볼 수 있는 방법으로, 암호화, 토큰 및 감사 로그를 해당 위치인 애플리케이션에 보관합니다.

법무 부서는 계약서, 증거 파일 및 기타 고도로 기밀인 문서를 다룹니다. PDF를 클라우드 기반 공유 서비스에 업로드하는 일반적인 워크플로는 즉시 보안 위험을 초래합니다. 파일이 기업 경계 밖에 존재하게 되고, 누가 언제까지 볼 수 있는지에 대한 세밀한 제어를 잃게 됩니다.

제3자 서버에 문서가 한 번도 닿지 않도록, .NET 웹 포털에 보안 및 암호화된 PDF 뷰어를 직접 삽입할 수 있다면 어떨까요?

이 가이드에서는 Doconut Viewer 를 중심으로 한 실용적인 아키텍처를 살펴봅니다. 이 .NET 문서 뷰어 SDK는 여러분의 애플리케이션에 설치되며 Doconut 서버에 전혀 호출을 하지 않으므로, 문서는 절대 인프라를 벗어나지 않습니다.

첫 번째 단계에 들어가기 전에 명확히 해야 할 두 가지가 있습니다. Doconut.app 은 무료 웹 뷰어이며—컴포넌트가 아니라 웹사이트이고, 여기서 설치하는 것이 아닙니다. 또한 아래에 나오는 암호화, 토큰 및 감사 로그는 여러분이 직접 구축해야 하는 부분입니다: SDK는 문서를 렌더링할 뿐이며, 컴플라이언스 프로그램을 제공하지 않습니다. Doconut 은 ISO 27001 인증, SOC 2 보고서, HIPAA 인증을 보유하고 있지 않으므로, 규제 기관에 제시할 수 있는 컴플라이언스 주장은 아키텍처 수준—파일이 이미 여러분이 제어하는 경계 안에 머물렀다는 점입니다.


전통적인 클라우드 공유가 부족한 이유

위험일반적인 클라우드 서비스이 아키텍처가 대신 수행하는 일
데이터 유출 - 외부 서버에 파일이 저장됨파일이 제공업체의 스토리지에 보관되며, 제어할 수 없는 지역에 위치할 수 있음PDF가 자체 인프라에 남아 있습니다. SDK가 그곳에서 렌더링하고, 외부에 호출하지 않습니다.
접근 기간에 대한 통제 상실공유 링크가 무기한 전달될 수 있음짧은 수명·단일 사용 토큰을 발행합니다. 이는 여러분이 작성하는 코드이며, 스위치를 켜는 것이 아닙니다.
컴플라이언스 격차감사 로그가 종종 “다운로드” 이벤트에만 제한됨모든 미리 보기 요청을 기록합니다. 요청이 여러분의 엔드포인트로 가기 때문입니다.
플러그인 의존성많은 뷰어가 Flash, ActiveX, 브라우저 확장 등을 필요로 함독자의 머신에 아무것도 설치되지 않습니다; 브라우저가 렌더링된 페이지를 받습니다.

솔루션 개요

  1. Doconut Viewer 를 .NET 프로젝트에 설치합니다.
  2. 서버 측 키 로 PDF를 휴식 상태에서 암호화합니다(.NET 자체 암호화 기능 사용).
  3. 뷰어를 삽입 하여, 애플리케이션이 발행한 토큰을 통해 Razor 페이지 또는 MVC 뷰에서 보호합니다.
  4. 모든 미리 보기 요청을 기록 하여 감사 추적 및 이상 탐지를 가능하게 합니다.

2·3·4 단계는 여러분 애플리케이션의 작업이며, SDK가 담당하는 부분은 1단계와 렌더링입니다. 이 설계에서 보호되는 모든 요소는 여러분이 소유한 코드이기 때문에 자체 팀이 감시하고 감사할 수 있습니다.

아래에서는 각 단계를 상세히 살펴보며, 키 관리, 토큰 보안 및 컴플라이언스 로깅에 대한 모범 사례를 제시합니다.


1단계 – .NET 환경 준비

  1. Visual Studio(2022 이상 권장)에서 솔루션을 엽니다.

  2. 대상 프레임워크 선택 – Doconut Viewer는 ASP.NET, MVC, .NET Core, .NET 6+ 및 Blazor를 지원합니다. 선택한 버전을 기록해 두세요. 통합 세부 사항은 버전마다 다릅니다.

  3. SDK 설치 – Doconut 다운로드 페이지에서 여러분이 선택한 버전에 맞는 패키지와 문서를 사용합니다. 문서에 명시된 패키지 이름과 설정 단계를 따르세요; 기사에 있는 내용은 버전마다 변경될 수 있습니다.

    라이선스 설정은 소스 제어에 포함되지 않도록 주의하세요. 작업 프로토타입에서 가장 흔히 유출되는 요소입니다.

추가 팁

  • 패키지 참조를 Directory.Packages.props 파일에 저장하여 여러 서비스에 걸친 중앙 집중식 버전 관리를 수행합니다.

2단계 – 강력한 암호화로 PDF 저장

2.1 암호화 알고리즘 선택

이는 여러분의 결정이며 여러분이 작성하는 코드입니다. .NET의 System.Security.Cryptography는 AES-256-GCM을 제공하며, 이는 인증된 암호화(기밀성과 무결성을 동시에 제공)이며, 저장된 문서에 대한 방어 가능한 기본값입니다.

어떤 암호화 알고리즘도 시스템을 GDPR, HIPAA 또는 ISO 27001에 자동으로 준수하게 만들지는 못합니다. 이러한 프레임워크는 프로세스, 접근 제어, 보존 및 증거에 대해 묻습니다. 암호화는 많은 제어 중 하나일 뿐이며, 뷰어 라이브러리는 나머지를 제공할 수 없습니다.

2.2 안전한 키 관리 구현

  • 키를 절대 하드코딩하지 마세요. Azure Key Vault, AWS KMS 또는 HashiCorp Vault를 사용하여 런타임에 암호화 키를 가져옵니다.
  • 키를 정기적으로 교체하세요 — 일반적으로 90일마다 교체하는 것이 일반적인 관행입니다. 재암호화 작업을 필요하기 전에 계획하십시오; 사고 발생 시 키를 교체할 방법이 없다는 것을 알게 되는 것은 매우 안 좋은 일입니다.

3단계 – 시간 제한 일회용 토큰 생성

프리뷰 토큰은 자동으로 만료되는 일회용 배지와 같습니다. 토큰에는 다음이 포함됩니다:

  • User ID – 문서를 볼 수 있는 사용자.
  • PDF ID – 스트리밍할 암호화된 파일.
  • Expiration – 일반적으로 5~10분이며 정책에 따라 구성할 수 있습니다.
  • Signature – 변조 방지를 위해 HMAC 또는 RSA 서명.

3.1 보안 고려 사항

  • 전역 TLS 적용 – 항상 HTTPS를 통해 토큰을 제공하십시오.
  • 최소 권한 원칙 – 프리뷰에 필요한 데이터만 인코딩하고, 추가 클레임을 포함하지 마세요.
  • 토큰 폐기 – Redis의 간단한 “블랙리스트”를 사용하면 사용자의 접근 권한이 변경될 경우 즉시 토큰을 폐기할 수 있습니다.

4단계 – DoconutApp 뷰어 삽입

4.1 서버 측 스트리밍 엔드포인트

  • 메모리 내에서 복호화하십시오. 위협 모델이 요구한다면 평문이 디스크에 기록되지 않도록 합니다. 이는 여러분의 엔드포인트이며, 여러분이 선택하고 코드를 검토해야 합니다.
  • 렌더링은 서버에서 수행됩니다. 독자의 브라우저가 아니라 서버에서 렌더링되므로 브라우저가 원본 파일을 받지 않고도 문서를 표시할 수 있습니다. 또한 SDK가 임시 렌더링 출력을 어디에 쓰는지, 그리고 이를 어떻게 삭제하는지 확인해야 하는 이유이기도 합니다.

4.2 플러그인 불필요

독자는 표준 웹 기술을 통해 렌더링된 페이지를 받으며, 따라서 뷰어는 Chrome, Edge, Firefox, Safari에서 플러그인, ActiveX 컨트롤 또는 Flash 없이 작동합니다. 변호사 노트북에 아무것도 설치되지 않으며, 이는 보안 검토가 완료되는지 여부를 가르는 중요한 차이점입니다.


5단계 – 컴플라이언스를 위한 감사 및 접근 로그

법무팀은 누가 언제 어떤 계약을 열람했는지에 대한 변조 방지 감사 로그가 필요합니다. 구조화된 로깅 파이프라인을 구현하십시오:

필드설명
UserId요청한 법률 전문가의 식별자
PdfId암호화된 문서에 대한 내부 참조
Timestamp프리뷰 요청의 UTC 시간
IpAddress출발지 IP (지리 위치 확인에 유용)
UserAgent포렌식 분석을 위한 브라우저 문자열
Result성공 / 실패 (예: 토큰 무효, 복호화 오류)

모범 사례

  • 로그를 추가 전용, 불변 데이터스토어에 저장합니다 (예: Azure Log Analytics, Splunk, 혹은 한 번만 쓰는 S3 버킷).
  • 알림을 활성화하여 비정상적인 패턴을 감지합니다 — 예를 들어 동일 토큰이 몇 초 안에 두 개의 서로 다른 IP에서 사용된 경우.
  • 보존 정책: 관할 구역에서 요구하는 기간 동안 로그를 보관합니다 (보통 법적 기록은 7년).

빠른 요약

  1. Doconut Viewer 설치를 .NET 프로젝트에 수행하고, 해당 버전의 문서를 참고하십시오.
  2. PDF를 기록 시 암호화를 .NET 자체 암호화 라이브러리의 AES-256-GCM으로 수행하고, 키는 금고 서비스로 관리합니다.
  3. 사용자가 보기 요청을 하면 짧은 수명 일회용 프리뷰 토큰을 발급합니다.
  4. 서버에서 렌더링하고 뷰어를 삽입을 Razor 페이지에 적용합니다. 문서는 제3자에게 전달되지 않으며, 독자의 기기에 아무것도 설치되지 않습니다.
  5. 모든 프리뷰를 로그에 기록하여 감사 가능성을 확보하고, 의심스러운 패턴에 대한 알림을 설정합니다.

2, 3, 5 항목은 여러분이 구현하는 코드입니다. 이는 공정한 역할 분담이며, 보안 문서에 명확히 명시해 두어야 합니다. 검토자는 결국 누가 어떤 부분을 담당하는지 물어볼 것이기 때문입니다.

결론

보안 PDF 공유는 제3자 서비스를 이용할 필요가 없습니다. 자신의 .NET 포털에 Doconut Viewer를 통합하면, 법무 부서는 파일이 인프라를 떠나지 않은 채로 기밀 계약서, 소송 전시물 및 내부 정책을 제시할 수 있습니다.

SDK가 제공하는 마지막 부분은 바로 그 것입니다: 환경 내에서 렌더링을 수행하고 외부에 데이터를 전송하지 않습니다. 엔드투엔드 암호화, 접근 제어 및 감사 로그는 모두 귀하에게 속합니다—이것이 핵심이며, 이러한 기능을 제공한다고 주장하는 뷰어는 귀하가 자체 컴플라이언스가 아닌 공급업체의 컴플라이언스를 신뢰하도록 요구하는 것입니다.

시도해 보고 싶으신가요? doconut.com 를 방문하세요 — 체험 라이선스는 무료이며, 실시간 데모는 코드를 작성하기 전에 가장 까다로운 전시물에서도 렌더링이 제대로 작동하는지 확인할 수 있는 가장 빠른 방법입니다.

이러한 단계를 구현하면 컴플라이언스 담당자는 안심할 수 있고, 공격 표면을 줄이며, PDF를 기업 방화벽 내부에 확고히 유지할 수 있습니다—이는 모든 법무 팀이 필요로 하는 보안 자세와 정확히 일치합니다.

보안을 유지하고, 규정을 준수하며, 봉인된 문서는 제자리에 두세요: 바로 여러분의 금고 안에.