[글=오재준 매니저 | IAR Systems]
jaejoon.oh@iar.com
IoT 보안을 위해 지켜야 할 규약(code of practice)
IoT 보안을 위한 규약의 목표는 제품 전체 라이프 사이클의 개발, 생산 그리고 유지 보수 프로세스 동안 보안을 달성하기 위한 지침을 제공하는 것이다. 이 규약은 IoT 보안에서 가장 잘 정의되어 있다고 널리 평가받는 규약을 포함한다.
이 지침과 규약은 보안 장치 부팅(secure device boot), 암호 장치 인식(cryptographic device identity), 신뢰점(Root of Trust, RoT), 운영체제(operating system, OS), 자격 관리 및 암호화(credential management and encryption)부터 보안 소프트웨어와 소프트웨어 업데이트 정책에 이르기까지 모든 것을 포함한다. 이러한 보안 규정들은 의무 준수 확인란에 체크하기 위한 용도로만 사용할 것이 아니라, 사용자가 자신을 위해 자발적으로 사용할 수 있어야 한다.
많은 단체들과 정부 당국에서는 그대로 따라주기만 한다면 최종 사용자에게 이익이 되고 IoT 제품을 개발하는 기업의 책임도 덜어줄 수 있는 지침을 마련하기 위해 시간과 노력을 쏟고 있다. 이러한 보안 규정은 멀웨어(malware) 방지, 보안 아이덴티티(secure identity), IP 보호, 생산 제어 및 표준 준수를 통해 가치 있는 이득을 제공하므로, IoT 제품을 개발하는 기업과 소비자 모두에게 윈윈(win-win)으로 작용한다.
13가지 가이드라인
IoT 제품의 설계와 소스 코드에서 직접적으로 다룰 수 있는 보안 관행은 다음과 같다.
1. 기본(default) 암호를 사용하지 말 것
당연하게 들리겠지만, 기본 암호를 제대로 갖추려면 훨씬 더 많은 것이 필요하다. 기본 암호는 장치 자체에서 파생되거나 장치에 주입되는 것이 이상적이다. 장치에 고유한 해싱을 기반으로 하는 다양화 알고리즘(diversification algorithm)을 사용하여 암호를 생성하는 것이 바람직한데, 여기서 일련번호는 충분한 엔트로피(entropy)를 갖지 못하고 SHA-256과 같은 해시 기반 알고리즘을 사용한다.
2. 취약점 공개 정책(vulnerability disclosure policy) 구현
요컨대, 이는 고객 연락 활동 및 취약점 커뮤니케이션 이외의 책임 있는 임원이 관여하는 기업 공개 정책과 관련이 있다.
3. 소프트웨어 업데이트 유지