요약 — KC License Server에서 기기별 device_secret을 DB에 직접 저장하는 대신 검증 시 재계산하도록 구성했다. 확인된 원본의 유도식은 SHA256(license_key ‖ mac_hash ‖ RV)이며 마스터키를 사용하지 않는다. 세 입력이 같은 DB에 있으므로 비저장만으로 DB 유출 시 위조를 막지는 못한다. 핵심 경험은 검증 절차와 직렬화 규칙을 고정하고, 수용한 잔여 위험을 구분한 것이다.

배경

문제 (증상)

원인 분석

해결

device_secret 자체를 DB에 저장하지 않고 검증 시 SHA256(license_key ‖ mac_hash ‖ RV)로 재계산한다. 확인한 revision에서는 서버만 아는 마스터키를 도입하지 않았으며, license_key·mac_hash·RV는 DB에 저장된다. 기존 글의 마스터키 설명은 확인한 원본과 충돌하므로 철회한다.

검증 자산도 함께 만들었다.