← 목록으로
보안·개인정보
#데이터마스킹#토큰화#FPE#PCI-DSS#가명처리
최종 업데이트 · 2026-10-11

데이터 마스킹과 토큰화(Data Masking & Tokenization)

1. 개요

데이터 마스킹(Data Masking)은 원본 데이터의 형식과 참조 무결성은 유지하되 실제 값을 비식별 가짜 값으로 변형·은닉하여 민감정보 노출 없이 데이터를 활용하게 하는 기법이며, 토큰화(Tokenization)는 민감값을 수학적 연관성이 없는 대체값(토큰)으로 치환하고 원본과 토큰의 대응관계는 별도의 안전한 저장소(토큰 볼트) 또는 알고리즘으로만 복원하도록 분리하는 기법이다.

민감 데이터는 운영 데이터베이스 안에만 머물지 않는다. 개발·테스트·교육·분석 환경에 운영 데이터를 복제해 쓰는 관행, 외주 개발자·데이터 분석가·마케팅 조직에 데이터를 공유하는 업무, 클라우드로의 데이터 이관처럼 "데이터가 통제된 운영 경계를 벗어나는" 상황이 끊임없이 발생한다. 이때 주민등록번호·카드번호·계좌·연락처 같은 값을 원형 그대로 복제하면, 유출 사고 한 번으로 수백만 건의 실데이터가 외부로 흘러나간다. 실제 국내외 대형 유출 사고의 상당수가 운영계가 아니라 보안이 느슨한 개발·백업·분석 환경에서 발생했다는 점이 이 문제의 핵심을 보여준다.

데이터 마스킹과 토큰화는 바로 이 간극, 즉 "데이터는 활용해야 하는데 원본을 노출할 수는 없다"는 모순을 푸는 보호 기법으로 등장했다. 전통적 통제인 접근제어는 "볼 수 있는 사람"을 제한하지만 일단 데이터가 복제·추출되면 무력하고, 암호화는 저장·전송 중에는 강력하지만 애플리케이션이 연산·표시하려면 결국 평문으로 복호화해야 하므로 "사용 중(in use)" 보호에는 한계가 있다. 마스킹과 토큰화는 데이터 자체의 값을 비가역적(마스킹) 또는 분리 복원 가능(토큰화) 형태로 바꿔, 데이터가 어디로 흘러가든 그 자체로는 의미를 갖지 못하게 만든다는 점에서 접근제어·암호화를 보완한다.

제도적 압력도 이 기술의 확산을 견인했다. 카드산업의 PCI-DSS는 카드번호(PAN)를 저장·처리·전송하는 시스템 범위(scope)를 최소화하도록 요구하는데, PAN을 토큰으로 치환하면 토큰을 다루는 시스템은 심사 범위에서 제외되어 규제 부담과 비용이 크게 줄어든다. 국내 개인정보보호법과 안전성 확보조치 기준은 고유식별정보의 암호화·접근통제를 요구하며, 가명처리·마스킹을 활용한 처리를 허용·권장한다. 이처럼 마스킹·토큰화는 단순한 보안 기술이 아니라 규제 준수 비용과 사고 시 피해를 동시에 낮추는 위험·비용 절감(de-risking) 수단으로 자리 잡았다.

2. 데이터 보호 기법의 스펙트럼과 분류

마스킹·토큰화를 정확히 이해하려면 데이터 보호 기법 전체의 스펙트럼 안에서 이들이 차지하는 위치를 먼저 파악해야 한다. 보호 기법은 "원본 복원이 필요한가", "값의 분석적 유용성을 얼마나 보존하는가", "보호가 데이터에 내재되는가 접근 시점에 적용되는가"라는 축으로 나뉜다. 아래 개념도는 주요 기법의 관계를 보여준다.

graph TD
    ROOT["민감 데이터 보호 기법"]
    ROOT --> ENC["암호화(Encryption)<br/>가역, 키 의존"]
    ROOT --> TOK["토큰화(Tokenization)<br/>가역, 볼트/알고리즘 의존"]
    ROOT --> MASK["마스킹(Masking)<br/>원칙적 비가역"]
    ROOT --> DEID["비식별/가명처리<br/>통계적 익명성"]
    MASK --> SDM["정적 마스킹(SDM)<br/>사본 생성 시점"]
    MASK --> DDM["동적 마스킹(DDM)<br/>조회 시점 실시간"]
    TOK --> VLT["볼트형(Vaulted)"]
    TOK --> VLS["볼트리스(Vaultless, FPE)"]

암호화는 키를 가진 주체가 언제든 원본을 복원할 수 있는 가역 기법으로, 보호 강도가 키 관리에 전적으로 의존한다. 키가 유출되면 전체가 노출되고, 암호문은 형식이 바뀌어 길이·타입이 원본과 달라지므로 기존 스키마·검증 로직과 충돌하기 쉽다. 토큰화도 가역이지만 토큰 자체에는 원본을 유도할 수학적 정보가 없어, 토큰 저장소를 탈취하지 않는 한 복원이 불가능하다는 점에서 암호화와 결정적으로 다르다. 즉 암호화의 안전성이 "키의 비밀성"에 있다면 토큰화의 안전성은 "대응관계의 물리적 분리"에 있다.

마스킹은 원칙적으로 복원을 전제하지 않는 비가역 변형이다. 개발자가 운영 데이터와 통계적으로 유사한 데이터로 테스트하면 충분할 뿐 원본을 되돌릴 필요가 없는 경우에 적합하다. 비식별·가명처리는 개인을 특정하지 못하게 하는 통계적 보호로 k-익명성·차등 프라이버시 등과 연결되며, 마스킹은 그 구현 수단의 하나로 쓰인다. 네 기법은 배타적이 아니라 계층적으로 결합된다 — 예컨대 운영 DB의 카드번호는 토큰화로 보호하고, 그 DB를 복제한 개발 환경에는 정적 마스킹을 적용하며, 전송 구간은 암호화로 감싸는 식이다.

구분 암호화 토큰화 마스킹(비가역)
가역성 가역(키) 가역(볼트/FPE) 원칙적 비가역
형식 보존 보통 불가 가능(FPE) 가능
안전성 근거 키 비밀성 대응관계 분리 원본 소실
주 용도 저장·전송 보호 운영계 PAN·식별자 개발·테스트·분석
규제 효과 통제 입증 PCI 범위 축소 환경 분리

3. 데이터 마스킹의 유형과 기법

마스킹은 "언제 값을 바꾸는가"에 따라 크게 정적 마스킹과 동적 마스킹으로 나뉘며, 적용 시점이 곧 아키텍처와 위험 모델을 결정한다. 아래 세부 흐름도는 두 방식의 처리 경로 차이를 보여준다.

flowchart LR
    subgraph SDM["정적 마스킹(Static)"]
        P1["운영 DB"] --> P2["추출·변형(ETL)"]
        P2 --> P3["마스킹된 사본"]
        P3 --> P4["개발·테스트 환경"]
    end
    subgraph DDM["동적 마스킹(Dynamic)"]
        Q1["원본 DB(불변)"] --> Q2{"요청자 권한 판정"}
        Q2 -->|"비인가"| Q3["마스킹 값 반환"]
        Q2 -->|"인가"| Q4["원본 값 반환"]
    end

A. 정적 데이터 마스킹(SDM, Static Data Masking)

정적 마스킹은 운영 데이터를 추출해 영구적으로 변형된 사본을 만들어 비운영 환경에 공급하는 방식이다. 핵심 가치는 개발·테스트·분석 환경에 "원본이 아예 존재하지 않게" 만든다는 데 있다. 사본에는 실데이터가 한 건도 없으므로, 그 환경이 통째로 유출되어도 개인정보 침해가 성립하지 않는다. 따라서 보안이 상대적으로 느슨할 수밖에 없는 다수의 비운영 환경을 근본적으로 안전지대로 바꾸는 효과가 있다.

정적 마스킹에서 가장 어려운 과제는 참조 무결성 보존이다. 고객 테이블의 고객ID를 마스킹하면 주문 테이블의 외래키도 동일 규칙으로 변형되어야 조인이 유지된다. 또한 동일 입력에 항상 동일 출력을 내는 결정적(deterministic) 마스킹이어야 여러 테이블·여러 배치에 걸쳐 일관성이 유지된다. 예컨대 주민번호의 성별·생년 자리의 통계 분포를 보존해야 테스트의 현실성이 유지되므로, 단순 치환이 아니라 형식·분포·제약조건까지 고려한 변형이 요구된다. 이 때문에 성숙한 SDM 도구는 스키마를 분석해 민감 컬럼을 자동 탐지(discovery)하고 관계를 추적하는 기능을 제공한다.

실무 사례로, 한 금융사가 운영 데이터를 월 1회 개발계로 복제할 때 약 2,000만 건의 고객 레코드에 결정적 마스킹을 적용해 외래키 수십 개의 정합성을 유지한 사례가 전형적이다. 이 경우 마스킹 배치의 성능(수억 셀 변형)과 재현성이 품질의 관건이 된다.

B. 동적 데이터 마스킹(DDM, Dynamic Data Masking)

동적 마스킹은 원본 데이터는 그대로 두고, 조회 요청이 들어오는 순간 요청자의 권한에 따라 실시간으로 결과값을 가린다. 콜센터 상담원 화면에 카드번호가 **** **** **** 1234로만 보이는 것이 대표적 장면이다. 동일한 원본 컬럼이라도 권한에 따라 어떤 사용자에겐 원본, 다른 사용자에겐 마스킹된 값으로 응답된다.

동적 마스킹은 구현 위치에 따라 ① DB 엔진 내장형(예: 특정 상용 DB의 Dynamic Data Masking, 클라우드 DBaaS 정책), ② 애플리케이션·프록시(게이트웨이)형으로 나뉜다. DB 내장형은 적용이 간편하나 우회 쿼리(예: WHERE 절 추론 공격)로 마스킹된 값을 역추정당할 위험이 있어, 민감 환경에서는 접근제어·행수준 보안과 병행해야 한다. 프록시형은 SQL을 가로채 재작성하므로 다양한 DB에 일관 정책을 적용할 수 있으나, 성능 오버헤드와 단일 장애점 위험을 관리해야 한다. 동적 마스킹은 원본을 보존하므로 "운영 중 노출 최소화"에는 강하지만, 환경 전체를 안전지대로 만드는 정적 마스킹과 달리 원본이 그대로 남아 있다는 근본적 위험은 유지된다는 점을 혼동하지 않아야 한다.

C. 마스킹 변형 기법

구체적 변형 기법으로는 치환(substitution)(실제 같은 가짜 사전값으로 교체, 예: 이름→무작위 성명), 셔플링(shuffling)(같은 컬럼 내 값을 뒤섞어 통계 분포는 보존하되 행 연결을 끊음), 널링/삭제(nulling), 가변(variance)(급여·날짜에 ±오차 적용), 형식보존 치환(카드번호 앞 6·뒤 4자리는 두고 중간만 변형) 등이 있다. 기법 선택은 데이터의 활용 목적에 좌우된다 — 통계 분석용이라면 분포 보존형(셔플·가변)이, 기능 테스트용이라면 형식·제약 보존형이 적합하다.

D. 민감 데이터 탐색(Discovery)과 정책

마스킹의 첫 단계는 "무엇이 민감한가"를 찾는 데이터 탐색이다. 정규식·사전·머신러닝으로 컬럼·비정형 데이터에서 주민번호·카드번호 패턴을 식별하고, 데이터 분류 등급에 따라 마스킹 규칙을 매핑한다. 탐색 없이 수작업으로 지정하면 스키마 변경 때마다 누락이 생기므로, 자동 탐색과 정책 중앙화가 대규모 환경의 성패를 가른다.

데이터 탐색은 단발성 작업이 아니라 지속적 거버넌스 활동으로 운영되어야 한다. 신규 테이블·컬럼이 추가되거나 비정형 로그·문서에 민감정보가 유입되는 상황을 주기적으로 스캔하고, 발견된 민감 자산을 데이터 카탈로그·데이터 분류 체계와 연동해 마스킹 정책이 자동 적용되도록 파이프라인을 구성하는 것이 바람직하다. 예컨대 수천 개 테이블을 가진 금융·통신사에서는 분기별 전수 스캔으로 신규 민감 컬럼을 평균 수백 개씩 발견하는 경우가 흔하며, 이를 수작업으로 관리하면 반드시 누락이 발생한다. 따라서 탐색 → 분류 → 정책 매핑 → 적용 → 검증의 순환을 자동화하는 것이 대규모 환경에서 마스킹의 실효성을 좌우한다.

4. 토큰화의 유형과 아키텍처

토큰화는 민감값을 토큰으로 바꾸되, 승인된 프로세스만 원본을 복원할 수 있게 한다. 핵심 설계 변수는 "대응관계를 어디에 두는가"이며 이에 따라 볼트형과 볼트리스로 갈린다.

sequenceDiagram
    participant A as "애플리케이션"
    participant T as "토큰화 서비스"
    participant V as "토큰 볼트(격리 저장소)"
    A->>T: "원본 PAN 전달(토큰화 요청)"
    T->>V: "토큰-원본 매핑 생성·저장"
    V-->>T: "토큰 반환"
    T-->>A: "토큰 반환(운영 DB에는 토큰만 저장)"
    A->>T: "복원 요청(승인된 경우만)"
    T->>V: "토큰으로 원본 조회"
    V-->>T: "원본 반환"
    T-->>A: "원본 반환"

A. 볼트형 토큰화(Vaulted)

볼트형은 토큰과 원본의 대응표를 격리된 보안 저장소(볼트)에 보관한다. 토큰 자체는 난수에 가까워 어떤 분석으로도 원본을 유도할 수 없고, 복원은 볼트 접근 권한이 있는 경로로만 가능하다. 안전성이 매우 높지만, 볼트가 단일 지점이 되어 가용성·확장성·동기화가 병목이 된다. 대규모 트랜잭션 환경에서는 볼트 조회 지연과 복제·백업 일관성이 설계의 핵심 난제가 된다.

볼트형의 또 다른 설계 쟁점은 토큰 생성의 충돌 회피와 결정성이다. 동일 원본에 항상 동일 토큰을 부여할지(결정적), 매번 다른 토큰을 부여할지(무작위)에 따라 분석 활용성과 안전성이 달라진다. 결정적 토큰은 서로 다른 시스템 간 조인·중복 제거가 가능해 분석에 유리하나 빈도 분석 공격에 상대적으로 노출되고, 무작위 토큰은 안전하나 동일인 식별이 불가능해진다. 초당 수만 건의 결제를 처리하는 환경이라면 볼트 조회가 트랜잭션 지연의 주요 원인이 되므로, 자주 쓰이는 토큰을 캐싱하거나 다중 리전에 볼트를 복제하되 강한 일관성을 유지하는 설계가 요구된다.

B. 볼트리스 토큰화와 형식보존 암호화(Vaultless/FPE)

볼트리스 방식은 대응표 없이 암호학적 알고리즘으로 토큰을 생성·복원한다. 대표적으로 형식보존 암호화(FPE, Format-Preserving Encryption)가 쓰이는데, 이는 16자리 카드번호를 암호화해도 여전히 16자리 숫자로 출력되게 하는 암호화 모드다. 미국 NIST는 SP 800-38G에서 FPE 모드로 FF1·FF3-1을 표준화했다(단, FF3는 초기 취약점이 보고되어 FF3-1로 개정되었으므로 구현 시 최신 규격 확인이 필요하다). FPE는 볼트라는 병목을 제거해 확장성이 뛰어나고 기존 스키마를 바꾸지 않아도 되지만, 본질이 암호화이므로 키 관리가 다시 중요해지고 "토큰이지만 가역 암호문"이라는 성격상 규제상 토큰화로 인정되는 범위를 사전에 확인해야 한다.

C. 적용 범위와 PCI-DSS 범위 축소

토큰화의 가장 큰 실무 가치는 규제 범위(scope) 축소다. 카드번호를 수납 직후 토큰화하면, 이후 주문·정산·CRM 시스템은 토큰만 다루므로 PCI-DSS 심사 대상에서 제외된다. 예를 들어 수십 개 내부 시스템 중 카드번호 원본을 다루는 구간을 결제 게이트웨이와 토큰 볼트 2곳으로 압축하면, 보안 통제·감사·비용을 그 2곳에 집중할 수 있다. 이는 보안 강화와 동시에 TCO를 낮추는 전형적 사례로, 토큰화가 단순 치환 기술을 넘어 아키텍처 전략인 이유다.

5. 비교: 암호화 vs 토큰화 vs 마스킹

세 기법은 종종 혼용되지만 선택 기준이 명확히 다르며, 차이가 생기는 근본 이유를 이해해야 올바로 설계할 수 있다. 암호화는 "원본을 자주 복원해야 하고 저장·전송 전 구간을 보호"해야 할 때, 토큰화는 "원본 복원은 드물지만 형식 호환성과 규제 범위 축소가 중요"할 때, 마스킹은 "원본 복원이 불필요하고 활용성만 있으면 될 때" 유리하다.

차이의 뿌리는 안전성의 근거가 어디에 있는가이다. 암호화는 키가 유출되면 전량 노출되는 "전부 아니면 전무"의 위험 구조를, 토큰화는 볼트를 추가로 탈취해야 하는 "이중 장벽" 구조를 가진다. 따라서 공격자가 운영 DB를 덤프해도 암호화는 키 관리에 따라 노출 위험이 남지만, 토큰화는 토큰만 얻어 쓸모가 없다. 실무적 함의로, 운영 중 지속 사용되며 유출 표적이 되는 카드·식별자는 토큰화가, 통째로 외부 환경에 넘어가는 개발·분석 사본은 정적 마스킹이, 통신·백업처럼 저장·전송 보호가 목적인 구간은 암호화가 각각 최적이라는 결론이 나온다. 요컨대 세 기법은 경쟁 관계가 아니라 데이터 생애주기의 서로 다른 지점을 담당하는 보완 관계다.

구체적 수치로 효과를 가늠하면, PCI-DSS 적용 대상 시스템이 30개인 전자상거래 기업이 수납 직후 토큰화를 도입해 카드번호 원본 보유 시스템을 결제 게이트웨이·토큰 볼트 2개로 줄이면, 연간 심사·취약점 점검·침투 테스트 대상이 93% 가량 축소되어 규제 준수 비용과 사고 노출 면적이 동시에 급감한다. 반면 동일 데이터를 개발 환경 10여 곳에 복제해야 한다면, 각 환경에 토큰 복원 경로를 열어 두기보다 정적 마스킹으로 원본 자체를 제거하는 편이 위험 대비 비용이 훨씬 낮다. 이처럼 "복원이 필요한가, 환경이 통제되는가, 규제 범위에 드는가"라는 세 질문의 답이 기법 선택을 결정한다.

6. 심화: 클라우드·가명처리·출제 동향

최근 흐름은 마스킹·토큰화가 클라우드 데이터 플랫폼의 기본 기능으로 내재화되는 것이다. 클라우드 DBaaS와 데이터 웨어하우스는 동적 데이터 마스킹, 컬럼/행 수준 보안, 정책 태그 기반 거버넌스를 선언형으로 제공하여, 데이터 공유가 폭증하는 환경에서 "데이터는 한 곳에 두되 보는 사람에 따라 다르게 보이게" 하는 방식을 보편화하고 있다. 이는 데이터를 복제하지 않고 공유(zero-copy)하려는 데이터 메시·레이크하우스 흐름과 맞물린다.

규제·거버넌스 측면에서 토큰화·마스킹은 국내 가명처리와 밀접하다. 가명처리는 추가 정보 없이는 개인을 식별할 수 없게 하는 처리로, 마스킹·토큰화는 그 구체적 수단이 된다. 다만 가명처리는 "재식별 위험의 통계적 평가"가 수반되어야 하므로, 단순히 마스킹했다고 자동으로 가명정보가 되는 것은 아니며 처리 목적·결합 가능성을 함께 판단해야 한다. 이 지점이 기술사 답안에서 자주 요구되는 심화 논점으로, 마스킹을 "기술"로만 보지 말고 "법적 처리 요건"과 연결해 서술하는 것이 고득점 포인트다.

예상 출제 방향으로는 ① 암호화·토큰화·마스킹의 비교와 선택 기준, ② PCI-DSS 범위 축소 메커니즘, ③ 정적·동적 마스킹의 아키텍처와 위험, ④ 개인정보보호법 가명처리와의 연계가 반복적으로 다뤄진다. 답안 구성 전략은 "데이터 생애주기(수집-저장-활용-공유-폐기)에 기법을 매핑"하는 틀을 제시하고, 각 단계에서 왜 특정 기법이 적합한지를 근거와 함께 전개하는 것이 효과적이다.

7. 고려사항 및 시사점

데이터 마스킹·토큰화를 기술사 관점에서 설계·도입할 때는 다음을 균형 있게 고려해야 한다.

  • 적용 전략과 데이터 생애주기 매핑: 단일 기법이 모든 문제를 풀지 못한다. 수집 직후 토큰화로 원본 저장을 최소화하고, 비운영 복제에는 정적 마스킹, 운영 조회에는 동적 마스킹, 저장·전송에는 암호화를 조합하는 다층 전략을 데이터 분류 등급과 연계해 수립해야 한다.
  • 참조 무결성·활용성 트레이드오프: 보호 강도를 높일수록 데이터의 분석적·기능적 유용성은 낮아진다. 결정적 마스킹·형식보존 기법으로 조인·검증·통계 분포를 보존하되, 과도한 보존이 재식별 위험을 키우지 않는지 역검증해야 한다.
  • 성능·가용성 설계: 볼트형 토큰화의 볼트, 프록시형 동적 마스킹의 게이트웨이는 병목·단일 장애점이 된다. 볼트 복제·캐싱·볼트리스(FPE) 전환, 수억 셀 규모 배치 마스킹의 성능 등 비기능 요건을 초기부터 설계에 반영해야 한다.
  • 키·볼트 관리와 우회 공격 방어: FPE·암호화 토큰은 키 관리가 다시 급소가 되고, DB 내장 동적 마스킹은 추론·우회 쿼리로 역추정될 수 있다. HSM 기반 키 관리, 최소권한·행수준 보안·감사로그와의 결합이 필수다.
  • 규제 정합성과 가명처리 연계: PCI-DSS 범위 축소 효과, 개인정보보호법상 가명처리·안전성 확보조치와의 적합성을 사전에 법·규제 관점에서 확인하고, 단순 마스킹과 법적 가명정보를 구분해 재식별 위험 평가를 병행해야 한다.
  • 전망과 연계 기술: 클라우드 DBaaS의 선언형 마스킹, 데이터 메시의 zero-copy 공유, 차등 프라이버시·동형암호·기밀컴퓨팅 같은 "사용 중 보호(in-use)" 기술과의 결합이 향후 방향이다. 마스킹·토큰화를 이들과 계층적으로 조합하는 설계 역량이 요구된다.

참고자료


한 줄 요약: 데이터 마스킹은 원본을 비가역 가짜값으로 변형(정적·동적)해 비운영 환경과 조회 노출을 보호하고, 토큰화는 민감값을 볼트/FPE 기반 토큰으로 치환해 원본을 분리·복원 가능하게 하면서 PCI 범위를 축소하는 기법으로, 암호화와 함께 데이터 생애주기별로 계층 조합해야 한다.