GH GambleHub

주요 관리 및 교체

열쇠는 플랫폼의 "신뢰 뿌리" 입니다. "신뢰할 수있는 키 관리 시스템 (KMS/HSM + 프로세스 + 원격 측정) 은 일회성 통합에서 암호화를 일상적인 작업으로 전환합니다. 키가 정기적으로 업데이트되고 사용이 투명하며 타협이 현지화되며 클라이언트는 다운 타임없이 주요.

1) 목표와 원칙

암호화 민첩성: 큰 마이그레이션없이 알고리즘/키 길이를 변경하는 기능.
최소 노출: 개인 키는 KMS/HSM을 떠나지 않습니다. 서명/암호 해독 작업 - 삭제됨.
수명이 짧은 인공물: 토큰/세션 키는 몇 주가 아닌 몇 시간 동안 산다.
듀얼 키/듀얼 인증 창: 실패 안전 회전.
지역 및 테넌트 격리: 키는 지역 및 테넌트로 나뉩니다.
전체 감사: 불변의 거래 로그, HSM 자격, 액세스 제어.

2) 키 분류

루트 CA/마스터 키: HSM에 보관 된 매우 드문 사용으로 중간 키 또는 데이터 키 래퍼를 해제하는 데 사용됩니다.
운영: JWT/이벤트 서명, TLS, 웹 후크 서명, 구성 암호화/PII.
세션/시간: 채널/대화를위한 DPoP, mTLS 바인딩, ECDH 출력.
통합: 파트너 키 (공개) 및 HMAC 비밀.
데이터 키 (DEK): KEK에서 엔벨로프 암호화를 사용하면 명시 적으로 저장되지 않습니다.

3) 주요 식별 및 사용 정책

각 키에는 'kid' 가 있습니다 (키는 토큰/헤더에서 식별 됨)

yaml key:
kid: "eu-core-es256-2025-10"
alg: "ES256"         # или EdDSA, RSA-PSS, AES-GCM, XChaCha20-Poly1305 purpose: ["jwt-sign","webhook-sign"]
scope: ["tenant:brand_eu","region:EE"]
status: "active"       # active      next      retiring      revoked created_at: "2025-10-15T08:00:00Z"
valid_to:  "2026-01-15T08:00:00Z"

규칙: "하나의 목표-하나의 키" (최소 공유), 명시 적 적용 영역 및 타이밍.

4) 키 라이프 사이클 (KMS/HSM)

1. 생성: HSM/KMS에서 수출 정책 = 거부 됨.
2. 게시: 비대칭 용-' kid '가있는 JWKS/인증서.
3. 사용: 제어된 IAM의 원격 작업 (사인/암호 해독).
4. 회전: '다음' 키를 실행하고 이중 수락을 가능하게합니다.
5. 은퇴: 오래된 것을 '퇴직' 으로 번역 한 다음 '취소' 합니다.
6. 파괴: 분쟁 창 후 자료 (퍼지 프로토콜 사용) 를 파괴합니다.

5) 회전: 전략

예약: 캘린더 (예: JWT 서명의 경우 1-3 개월마다, TLS의 경우 6-12 개월).
롤링: 점차 소비자를 전환 (JWKS에는 이미 새로운 키가 포함되어 있습니다. 캐시를 예열 한 후 이미 터가 새로운 서명을 시작합니다).
강제 (보안): 타협시 즉시 회전; 짧은 이중 수락 창, 아티팩트의 공격적인 만료.
전 세계를 동시에 "박수" 하지 않기 위해 지역/테넌트별로 정리되었습니다.

황금 규칙: 먼저 출판물을 출판 한 다음 서명은 새로운 것이며 만료 후에 만 오래된 규칙을 회상합니다.

6) 듀얼 키 창

우리는 오래되고 새로운 '어린이' 와 함께 JWKS를 출판합니다.
검증 자는 둘 다 허용합니다.
N 분/시간의 이미터가 새 서명을 시작합니다.
우리는 오래된/새로운 '아이' 에 대한 수표 점유율을 모니터링합니다.
목표 점유율에 도달하면 리티 림이 오래되었습니다.

yaml jwks:
keys:
- kid: "eu-core-es256-2025-10" # new alg: "ES256"
use: "sig"
crv: "P-256"
x: "<...>"; y: "<...>"
- kid: "eu-core-es256-2025-07" # old alg: "ES256"
use: "sig"
...

7) 서명 및 검증 정책

기본 알고리즘: 서명 ES256/EdDSA; 필요한 경우 RT-PSS.
'없음 '/약한 알고리즘의 금지; 검증 측면에서 미백.
시계 왜곡: 우리는 λ300 c, 로그 편차를 허용합니다.
키 피닝 (내부 서비스) 및 짧은 TTL JWKS 캐시 (30-60 초).

8) 봉투 암호화 및 KDF

다음과 같은 데이터 저장:

ciphertext = AEAD_Encrypt(DEK, plaintext, AAD=tenant    region    table    row_id)
DEK = KMS. Decrypt (KEK, EncryptedDEK )//on access
EncryptedDEK = KMS. Encrypt (KEK, DEK )//on write

KEK (Key Encryption Key) 는 KMS/HSM에 저장되며 정기적으로 회전합니다.
DEK는 객체/배치 당 생성됩니다. KEK를 회전 할 때 재 랩을 수행합니다 (데이터 재 암호화없이 빠르게).
스트림의 경우-ECDH + HKDF가 수명이 짧은 채널 키를 출력합니다.

9) 지역 및 다중 임차인

키와 JWKS는 지역화되어 있습니다. 'eu-core', 'latam-core' 는 다른 키 세트입니다.
임차인/지역별 IAM/감사 분리; 열쇠는 거주지 사이에서 "흐름" 하지 않습니다.
트러스트 도메인 접두사가있는 '키드 코드:' eu-core-es256-2025-10 '.

10) 통합 비밀 (HMAC, API 키)

KMS 지원 Secret Store에 저장하십시오. 단기 클라이언트 비밀을 통해 발행됩니다 (회전 정책

회전 중에 두 개의 활성 비밀 (이중 비밀) 을 지원합니다.
웹 후크 용 - 타임 스탬프 + HMAC 본문 서명; 시간 창은 5 분입니다.

11) 액세스 제어 및 프로세스

IAM 행렬: '생성', '부호', '해독', '회전', '파괴' (최소 역할) 할 수있는 사람.
4 눈 원리: 민감한 작업에는 두 가지 확인이 필요합니다.
창 변경: 새로운 키 및 테스트 카나리아 영역을 활성화하기위한 창.
런북: 예약 및 강제 회전을위한 프로 시저 템플릿.

12) 관찰 및 감사

메트릭:
  • 'sign _ p95 _ ms', 'recended _ p95 _ ms', 'jwks _ skew _ ms',
  • 'kid', 'old _ kid _ usage _ ratio',
  • (PHP 3 = 3.0.6, PHP 4)
통나무/감사:
  • 각 서명/암호 해독 작업은 '누가/언제/언제/어디서/어린이/목적' 입니다.
  • 주요 상태 및 회전/취소 요청 기록.
  • HSM 자격, 주요 자료 액세스 로그.

13) 플레이 북 (사건)

1. 서명 키 타협

오래된 '어린이' 의 즉각적인 철회 (또는 최소한의 창으로 '퇴직' 으로 번역), 새로운 JWKS 게시, TTL 토큰 단축, 로그아웃/RT 장애, 통합 소유자와의 통신, 복고풍 감사.

2. 회전 후 Mass 'INVALID _ SIGNATURE

JWKS/클럭 스큐 캐시를 확인하고 이중 수락을 반환하며 창을 확장하고 클라이언트에 배포하십시오.

3. KMS/HSM 대기 시간 증가

로컬 서명 캐시를 활성화하는 것은 허용되지 않습니다. 대신-이미 터에서 배치/대기열, HSM 프록시 자동 검사, 임계 스트림 우선 순위 지정.

4. 한 지역의 실패

지역 격리 절차 활성화; 다른 지역에서 키를 "풀" 하지 마십시오. 타락한 지역의 서명과 연결된 기능을 저하시킵니다.

14) 테스트

계약: JWKS 정확성, 올바른 'kid '/alg/use, 클라이언트 호환성.
네거티브: 가짜 서명, 쓸모없는 '키드', 잘못된 알그, 시계 왜곡.
혼돈: 즉석 회전, KMS 사용 불가, 시간 드리프트.
로드: 피크 시그니처 (JWT/webhooks), 피크 암호 해독 (PII/지불).
E2E: 듀얼 키 창: 릴리스-검증-트래픽 전송-이전 키 거부.

15) 설정 예 (YAML)

yaml crypto:
regions:
- id: "eu-core"
jwks_url: "https://sts. eu/.well-known/jwks. json"
rotation:
jwt_sign: { interval_days: 30, window_dual: "48h" }
webhook: { interval_days: 60, window_dual: "72h" }
kek:   { interval_days: 90, action: "rewrap" }
alg_policy:
sign: ["ES256","EdDSA"]
tls: ["TLS1. 2+","ECDSA_P256"]
publish:
jwks_cache_ttl: "60s"
audit:
hsm_attestation_required: true two_person_rule: true

16) 아티팩트에서 JWKS 및 마커의 예

JWT 헤더 조각:
json
{ "alg":"ES256", "kid":"eu-core-es256-2025-10", "typ":"JWT" }
JWKS (공개 부분):
json
{ "keys":[
{"kty":"EC","use":"sig","crv":"P-256","kid":"eu-core-es256-2025-10","x":"...","y":"..."},
{"kty":"EC","use":"sig","crv":"P-256","kid":"eu-core-es256-2025-07","x":"...","y":"..."}
]}

17) 반 패턴

오래 지속되는 열쇠는 "수년 동안" 모든 지역에서 공통적입니다.
이중 수락없이 "한 순간에" 회전.
KMS/HSM에서 "속도를 위해" 개인 키를 내보냅니다.
혼합 작업: JWT에 서명하고 하나의 키로 데이터를 암호화하십시오.
HSM 로그/자격 부족 및 IAM 제한.
KEK 회전에서 DEK에 대한 재 포장 메커니즘은 없습니다.
Secret Store 대신 env에서 "비밀" 을 수동으로 사용하십시오.

18) 사전 판매 점검표

  • KMS/HSM의 모든 개인 키; IAM 매트릭스와 4 눈 원리가 조정됩니다.
  • 알고리즘 정책, 주요 길이 및 수명이 승인되었습니다.
  • 'kid' 공유 모니터링으로 듀얼 키 프로세스 활성화
  • JWKS는 짧은 TTL 및 캐시 온난화로 출판됩니다. 클라이언트는 키 이하 2를 허용합니다.
  • 봉투 암호화: KEK 회전, DEK 다운 타임없이 재 포장.
  • 세입자별로 지역 격리 및 별도의 키 세트.
  • 타협/롤링/힘 회전 플레이 북; 훈련이 실행됩니다.
  • 메트릭 ('old _ kid _ usage _ ratio', 'unless _ sign _ rate') 및 경고가 활성화됩니다.
  • 계약/음성/혼돈/로드/E2E 테스트 제품군이 통과되었습니다.
  • 통합 문서: 창 및 오류 코드의 '키드' 시프트를 처리하는 방법.

결론

주요 관리는 운영 분야입니다. KMS/HSM은 진실의 원천으로서 이중 키, 지역 및 세입자 격리, 봉투 암호화 및 관찰 성을 통해 규칙적이고 안전한 회전입니다. 이러한 규칙을 따르면 규모가 확대되고, 내성이 있고, 감사자에게 설명하기 쉬운 암호화 윤곽을 얻을 수 있으며, 개발자와 통합 자는 고통없이 변화를 경험합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.