DAT
문서

인증서 ​

DAT 인증서는 토큰을 발급하고 검증하는 데 필요한 시간 범위, 알고리즘과 키를 하나의 문자열로 표현합니다.

cid
uint64
.
start
uint64
.
duration
uint64
.
ttl
uint64
.
sig-alg
name
.
crypto-alg
name
.
sig-key
Base64Url
.
crypto-key
Base64Url
인증서도 점으로 구분된 고정 순서의 ASCII 필드입니다.
text
cid.start.duration.ttl.sig-alg.crypto-alg.sig-key.crypto-key

시간 범위 ​

  • 인증서는 start부터 start + duration까지 DAT를 발급할 수 있습니다. 양 끝 시각을 포함합니다.
  • 발급된 DAT는 발급 시각부터 ttl 동안 유효합니다.
  • 인증서는 start + duration + ttl까지 검증에 필요합니다. 정확히 그 시각에도 인증서는 검증 가능합니다.

발급 기간이 끝났다고 인증서를 즉시 삭제하면 이미 발급한 DAT를 검증할 수 없습니다. 매니저와 CMS는 발급 가능 여부와 검증 가능 여부를 따로 취급합니다.

인증서 ID와 키 교체 ​

cid는 키와 시간 범위를 식별하는 공개 계약입니다. 기존 cid에 다른 키를 덮어쓰지 않습니다. 키를 교체할 때는 새 인증서를 만들고 새 cid를 사용합니다. 서비스는 새 인증서를 미리 동기화하고, 이전 인증서는 그 인증서로 발급한 DAT가 모두 만료된 뒤 제거합니다.

서명 알고리즘 ​

이름용도검증 전용 인증서
HMAC-SHA256-MFSHMAC SHA-256지원하지 않음
HMAC-SHA384-MFSHMAC SHA-384지원하지 않음
HMAC-SHA512-MFSHMAC SHA-512지원하지 않음
ECDSA-P256ECDSA P-256지원
ECDSA-P384ECDSA P-384지원
ECDSA-P521ECDSA P-521지원

HMAC은 같은 키로 서명과 검증을 하므로 검증 서버에 키를 주면 발급도 가능합니다. 발급 권한을 분리해야 하는 환경에서는 ECDSA와 검증 전용 인증서를 사용합니다.

암호 알고리즘 ​

이름키
IV-AES128-GCMAES-128
IV-AES256-GCMAES-256

알고리즘 이름은 와이어 계약입니다. JWT에서 사용하는 별칭으로 바꾸지 않습니다.

전체 인증서와 검증 전용 인증서 ​

전체 ECDSA 인증서에는 서명에 필요한 개인 키가 포함됩니다. 검증 전용 인증서는 ECDSA 공개 키만 남기지만 secure 복호화에 필요한 AES 키는 유지합니다. 따라서 검증 전용 서비스는 DAT를 확인하고 복호화할 수 있지만 새 DAT를 발급할 수 없습니다.