TL;DR — 산업용 게이트웨이는 현장에 물리적으로 놓여 있어 공격자가 파일을 읽고 고칠 수 있다. 초기 설계는 기기 비밀값(device_secret)을 서버 DB에 평문으로 두었는데, 이러면 DB 유출 한 번으로 전 기기 위조가 가능하다. 비밀값을 저장하지 않고 요청마다 재계산하는 구조로 바꿔, DB가 통째로 새도 위조 재료가 남지 않게 했다.

배경

문제 (증상)

원인 분석

해결

비밀값을 어디에도 저장하지 않는다. 대신 서버만 아는 마스터 키와 기기 식별자로 요청마다 재계산한다.

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