PII 데이터 토큰 화
PII 데이터의 토큰 화
1) 왜 토큰 화와 정확히 우리가 토큰 화 하는가
목표는 운영 회로 및 분석에서 "원시" 개인 데이터에 대한 액세스를 제외하고 누출 위험을 줄이고 요구 사항 준수를 단순화하는 것입니다.
PII 예: 전체 이름, 전화 번호, 이메일, 주소, 여권/ID, TIN, IP 주소, 쿠키 ID, 지불 식별자, 생년월일 등
아이디어: 원래 값 대신 다음과 같은 안전한 대체품 인 토큰을 사용합니다
원래 값을 공개하지 않습니다.
안전한 해독 서비스를 통해 가역적이거나 되돌릴 수 없습니다.
결정 론적 (가입/검색) 또는 비 결정적 (최대 개인 정보 보호) 일 수 있습니다.
2) 위협 모델 및 제어 목표
위험: 데이터베이스/로그/백업 누출, 내부자 판독 값, 반복 값, 무단 해독, 사전/형식 공격 (이메일/전화), 비밀 재사용.
목표:1. 별도의 신탁 영역: 응용 프로그램은 토큰 서비스에서만 토큰, 소스와 함께 작동합니다.
2. 토큰의 암호화 강도를 보장하고 해독을 관리합니다.
3. KMS/HSM, 회전 및 암호화 멸균으로 폭발 반경을 줄입니다.
4. 통제 된 위험에서 검색/조인/분석에 대한 적합성을 보장하십시오.
3) 토큰의 타이폴로지
권장 프로필:- 검색/조인에 대한 PII: 가역적 결정 론적, 영역 바운드 (테넌트/스코프), KMS에 걸렸습니다.
- 운영 마스킹 용 PII (UI): 재사용 위험을 줄이기 위해 평생 가역적 비 결정적.
- 회색 영역 분석의 경우 돌이킬 수없는 (키 NMAC/소금 해시) 또는 DP 집계.
4) 토큰 화 아키텍처
4. 1 가지 구성 요소
토큰 화 서비스 (TS): "토큰 화/해독/검색" API, 높은 신뢰 영역.
토큰 금고 (TV): 보호 된 맵 '토큰 → 원본 (+ 메타 데이터)'.
KMS/HSM: 루트 키 스토리지 (KEK), 포장/서명 작업.
정책 엔진: 해독 할 수있는 사람, 장소 및 이유; 스코프/TTL/속도 제한; mSL/mSL + mTLS.
감사 및 면역: 모든 토큰 화/데토 케 니화 작업의 변경 불가능한 로그.
4. 2 주요 계층 구조
KMS/HSM의 루트/KEK (조직/지역/테넌트 당).
데이터 도메인 당 DEK-PII (이메일/전화/주소) 및/또는 데이터 세트.
회전: 전체 볼트를 다시 암호화하지 않고 DEK를 다시 포장합니다. "핵심 타협" 계획.
4. 3 흐름
1. Tokenize: TS → 클라이언트 (mSL + A&A) → 정규화 → 토큰 계산 → TV → 토큰 응답에 쓰기.
2. Detokenize-TS → 클라이언트 → 정책/이유 확인 → 소스 확인 (또는 거부).
3. 검색/일치: 결정 론적 토큰 화를 통해 토큰으로 검색 할 수 있습니다. 이메일/전화의 경우-토큰 화 전에 형식을 정규화하십시오.
5) 토큰 디자인 (암호화 디자인)
5. 1 가역적 (작동 회로에 권장)
AES-SIV/AEAD 엔벨로프: '암호 = AEAD _ 암호화 (DEK, PII, AAD = 스코프' 테넌트 '필드)'; 토큰 = '접두사' nonce '암호' 태그 '.
형식 (예: FPE (FF1/FF3-1)) 국가 코드가없는 10 자리 전화). 주의해서 올바른 도메인 (알파벳/길이) 으로 적용하십시오.
5. 2 돌이킬 수없는 (분석/얼굴 익명화)
Keyed HMAC/계수: '토큰 = HMAC (PII _ normalized, key = K _ scope)'; 소금/후추-분리; 세입자 또는 데이터 세트 당.
함수 (Ś-256/512) 와 도메인을 선택하여 충돌 위험을 최소화하십시오.
5. 3 결정론과 범위
가입하려면 AAD = '{테넌트' 목적 'field}' → 동일한 값의 다른 토큰이 다른 대상에 해당하는 결정 론적 스키마를 사용하십시오.
서로 다른 서비스의 상관 방지 (키/영역).
5. 4 사전 공격 최소화
정규화 (이메일/전화의 표준화), KMS의 후추, 도메인 크기 제한 (사이드 채널로 "기록 발견" 오류를 제공하지 않음), 공개 제한에 대한 요금 제한 및 SARTSNA/프록시.
6) API 디자인 및 회로도
6. 1 REST/gRPC (옵션)
'POST/v1/tokenize {field, 값, 범위, 테넌트 _ id, 목적} -> {토큰, 메타}'
'POST/v1/detokenize {토큰, 목적} -> {값}' (mSL + OIDC + ABAC; "최소화" 발행)
'POST/v1/match {field, 값} -> {토큰}' (결정 론적 검색 경로)
6. 2 스토리지 다이어그램 (TV)
계정 (필드, 스코프, 테넌트 _ id, 토큰, 생성 된 _ at, 버전, 랩 _ key _ id, 해시 _ 인덱스) '
인덱스: 중복 해제/검색을 위해 '토큰', '(테넌트 _ id, 필드, 해시 _ 인덱스)'
해시 인덱스 (정규화 된 PII의 HMAC) 를 사용하면 해독없이 검색 할 수 있습니다.
6. 3 정규화 파이프 라인
이메일: 소문자 케이스, 트림, 표준 지역 부분 (모든 도메인에 대해 공격적인 "식사" 없이).
전화: E.164 (국가 코드 포함), 형식 문자 제거
주소/이름: 규칙, 트림, 붕괴 공간별 음역.
7) 다중 임대 및 격리
세입자 당 키 및 네임 스페이스: 세입자 당 KEK/DEK.
Detokenization 정책: 역할 + 목표 + 원인 + 이벤트 감사.
테넌트 데이터의 암호화 삭제-KEK 취소 및 DEK 파괴 → 볼트는 (기록상) 쓸모 없게됩니다.
8) 통합
8. 데이터베이스 및 캐시 1 개
작동 테이블에 토큰 만 저장합니다.
희귀 한 경우에는 프록시/에이전트를 통한 즉석 디토 케니 제이션이 필요합니다.
토큰 캐시-디스크에 기록하지 않고 짧은 TTL이있는 메모리에서만 가능합니다.
8. 2 분석/BI/ML
DWH/lake에서 토큰 또는 해시. 조인은 해당 범위의 결정 론적 토큰에서 수행됩니다.
ML의 경우 가명 및 집계가 선호됩니다. 사람을 복원하지 마십시오.
8. 3 개의 지원 서비스 및 사기 방지
합리적인 이유 (이유 코드) + 두 번째 요소에 대한 마스크 ('+ 380') 및 에피소드 해독이있는 UI.
9) 회전, 버전 및 수명주기
토큰 ID 및 암호화 버전 (v1/v2) 을 분리하십시오.
재 포장: 데이터를 건드리지 않고 KEK를 변경하십시오.
사건 계획: 주요 타협 → 즉각적인 리콜, 해독 금지, "읽기 전용" 으로의 롤백, 재 포장 시작.
TTL 토큰: 정책 별-영구 (식별자) 또는 짧음 (일회성 링크/임시 통합).
10) 성능과 신뢰성
하드웨어 가속 (AES-NI/ARMv8), KMS와의 연결 풀, 랩핑 된 DEK 캐시.
수평 스케일링 TS; 읽기/쓰기 경로를 나눕니다.
네트워크 플래그에 대한 토큰 화 반복을위한 이데올로기 키.
DR/HA: 다중 영역, 비동기 볼트 복제본, 정기적 인 복구 테스트.
SLO: p99 대기 시간 '토큰 화' '데토 켄 라이즈' 소 50 ms; 가용성은 99 이상입니다. 9%.
11) 관찰 가능성, 감사, 규정 준수
메트릭: 메소드 별 QPS, A&A 오류, 해독 공유 (역할/목표 별), 캐시 적중률, KMS 작동 시간.
감사 (불변의): '누가/무엇을/왜/어디에', 쿼리 해시, 결과를 가진 각 해독.
통나무에 대한 보존 및 작업 정책 (감사 및 불변의 통나무 참조).
준수: GDPR (최소화, 암호화 삭제를 통해 삭제할 권리), PCI DSS (PAN - FPE/가명), ISO/SOC보고.
12) 테스트 및 안전
Crypto 장치 테스트: 결정 론적 토큰의 안정성, AAD 검증 및 고장이 일치하지 않는 경우 실패.
부정적인 테스트: 사전 공격, 형식 반전, 속도 제한, CSRF (웹 패널 용), 백엔드 용 SSRF.
혼돈: KMS/Volt를 사용할 수 없음, 레거시 키, 부분 복제.
정기적 인 레드 팀은 이유없이 그리고 사이드 채널을 통해 해체를 시도합니다.
13) 미니 레시피
결정 론적 가역적 토큰 (AEAD SIV, 의사 코드):
pii_norm = normalize(value)
aad = scope tenant field dek = kms. unwrap(kek_id, wrapped_dek_for_field)
token = aead_siv_encrypt (dek, pii_norm, aad) # deterministically store_vault (token, pii_norm, meta)
return token
돌이킬 수없는 분석 토큰 (HMAC):
pii_norm = normalize(value)
pepper = kms. get_secret("pepper/"+tenant+"/"+field)
token = HMAC_SHA256 (pepper, pii_norm) # deterministically within scope return base64url (token)
Detokenization 정책 (아이디어):
allow if role in {SupportL2, Risk, DPO} and purpose in {KYC, Chargeback, DSAR}
and mTLS and OIDC_claims match tenant and reason_code provided and ticket_id linked rate_limit per actor <= N/min
임차인 암호화 제거:
kms. disable_key(kek_tenant)
access to unwrap is blocked → detoxification is not possible schedule_destroy (kek_tenant, hold_days=7)
14) 빈번한 실수와 피하는 방법
로그에 토큰. 토큰 자체 (특히 가역적 인 토큰) 를 마스크하십시오. 이들은 민감한 데이터입니다.
모든 것을위한 단일 키 ". "임차인/필드/목표로 나누기; AAD 사용.
무작위로 정규화 ". "조정되지 않은 정식화는 검색/조인을 분해합니다.
원인/제한없이 데토 케니 화. 항상 코드, 감사 및 요율 제한을 추론하십시오.
만병 통치약으로서의 FPE. 형식이 실제로 필요하고 올바른 도메인/키로 만 사용하십시오.
디스크에서 오래 지속되는 캐시. TTL을 사용하여 메모리에만 캐시하십시오.
재 포장 프로세스가 없습니다. 다운 타임없이 외환위기는 필수다.
15) 점검표
판매하기 전에
- 필드/대상 당 선택된 토큰 프로파일 (가역성/결정론/범위).
- 키 계층 (KEK/DEK), KMS 정책, 주요 운영 감사가 구성됩니다.
- 입력 정규화, 형식 검증 파이프 라인 구현.
- 속도 제한, 이성 코드, 불변의 감사가 가능합니다.
- 사전 공격/형식/역할 기반 액세스 테스트가 통과되었습니다.
- DR/레플리카 볼트 및 주요 타협 계획.
작동
- 월간 해독 보고서 (누가/왜/얼마나).
- KEK/pepper의 정기 회전, DEK 재 포장.
- 무단 해독/측면 채널을위한 적색 팀.
- 새로운 형식/영역이 나타날 때 정규화를 수정하십시오.
16) FAQ
Q: Tokenization = 익명화?
아뇨 토큰 화 - 가명. 키/볼트가있는 경우 소스가 복원 (또는 비교 가능) 됩니다. GDPR 영역을 빠져 나가려면 신뢰할 수있는 익명화가 필요합니
Q: 해독없이 이메일/전화로 검색하는 방법?
A: 정식으로 토큰 화를 제거했습니다. 주소/전체 이름-해시 인덱스/검색 키 및 보조 테이블.
Q: FPE는 언제 필요합니까?
A: 외부 계약/스키마에 형식 (길이/알파벳) 이 필요한 경우. 다른 경우에는 일반 AEAD 토큰이 더 간단하고 안전합니다.
Q: 모든 목적을 위해 하나의 토큰을 가질 수 있습니까?
A: 더 나은 다른 범위 (범위/목적): 동일한 PII는 다른 작업에 대해 다른 토큰을 제공합니다. → 상관 위험을 줄입니다.
Q: "제거 할 권리" 를 어떻게 행사합니까?
A: Crypto 삭제: 해당 세트에 대해 KEK/DEK를 취소 및/또는 볼트 + 의 항목을 삭제하면 필드/파티 키가 파괴됩니다. 분석 - TTL/집계/개인화.
- "비밀 관리"
- "휴식 암호화 중"
- "대중 교통 암호화"
- "디자인 별 개인 정보 보호 (GDPR)"
- "감사 및 불변의 통나무"
- "키 관리 및 회전"