2

갱신이 공격 경로가 된다

위협과 방어

학습 목표
  • 펌웨어 갱신에 필요한 세 가지 방어를 든다
  • 갱신을 안 하는 것도 위험임을 안다

남의 펌웨어를 심는 통로

코스 2 에서 판이 계속 올라가니 갱신 경로가 필요하다고 했습니다. 그런데 그 경로는 남이 만든 펌웨어를 기기에 심는 통로이기도 합니다. 그래서 갱신에는 방어가 셋 붙습니다.

첫째, 서명 확인입니다. 우리가 서명한 것만 받아들여야 합니다. 이것이 없으면 누구나 자기 펌웨어를 올릴 수 있습니다. 둘째, 롤백 방지(anti-rollback)입니다. 옛 판에 있던 구멍을 아는 공격자가 일부러 옛 판을 심는 것을 막습니다 — 서명 확인만으로는 못 막습니다. 옛 판도 우리가 서명한 것이니까요. 셋째, 중간에 끊겨도 살아남기입니다. 코스 4 에서 저장 공간이 두 벌 필요하다고 한 이유가 여기 있습니다.

펌웨어 갱신에 붙는 방어 셋

갱신을 안 하는 것도 위험이다

방어가 이만큼 붙으니 갱신 기능을 아예 빼는 선택을 하기도 합니다. 그것도 위험입니다. 고칠 방법이 없는 기기가 몇 해 동안 집에 남습니다.

코스 2 에서 본 대로 Matter 는 갱신을 규격 안에 두어 나눠 주는 쪽과 받아 가는 쪽의 역할을 정했고, 배포할 판 정보는 공개 대장에 등재됩니다. 다만 규격이 정한 것은 주고받는 방식이고, 무엇을 서명하고 어떻게 확인할지는 만드는 쪽 몫입니다.

⚠️ 허브라면 코스 4 에서 본 대로 갱신 파이프라인이 입니다. 허브 자체와, 허브가 배포자 역할을 하는 주변기기입니다. 양쪽 다 이 세 방어가 필요합니다.

갱신 경로는 위험이면서 동시에 위험을 줄이는 수단입니다. 그래서 넣되 제대로 넣어야 합니다.

용어