이는 호주 정부가 최근 '2020년 사이버 보안 전략'의 일환으로 IoT(사물 인터넷)의 보안을 해결하기 위한 계획을 검토하면서 'IoT 보안 코드' 초안을 발표한 것을 보면 분명합니다. 원칙은 IoT 보안 재단(IoT Security Foundation)이 IoT 보안 우수 관행 지침(IoT Security Best Practice Guides)에 게시한 것과 근본적으로 유사합니다. 자유롭게 사용할 수 있는 이러한 지침은 IoT 제품 및 서비스 개발자가 안전하고 신뢰할 수 있으며 완성도 높은 최종 제품을 제공하기 위해 다루어야 하는 다양한 보안 문제를 해결하는 데 도움이 됩니다.
IoT 보안 재단은 진정으로 규정을 준수하고 고객이 신뢰할 수 있는 제품과 서비스를 제공해야 한다는 압력이 IoT 제품 및 서비스의 제작자에게 가중되고 있다고 말합니다.
이 지침은 안전한 장치 부팅, 운영 체제, 자격 증명 관리, 암호화에서 안전한 소프트웨어와 소프트웨어 업데이트 정책에 이르기까지 모든 것을 다룹니다. 지침의 최신 릴리스 2에는 기존의 11개 지침에 대한 검토와 업데이트 외에도 다음 세 가지 주제가 추가되었습니다:
- 보안 부팅 프로세스 평가
- 소프트웨어 이미지 및 업데이트 서명
- 사이드 채널 공격
보안 부팅 프로세스 지침
새로운 보안 부팅 평가 지침은 부팅 프로세스가 보안 개발 기술이 적용되어 만들어진 소프트웨어로 보완되어 안전하고 정상 작동과 디버그, 개발 또는 분석 모두에 대해 악의적인 공격에 저항하도록 설계되었는지 확인하는 데 도움이 됩니다. ROM에서 직접 실행되지 않는 한 부팅 프로세스의 일부로 로드된 모든 코드는 핵심 요건에 따라 다음을 확인하는 것이 좋습니다:
- 코드가 예상되고 승인된 출처에서 생성되었음
- 코드가 생성된 이후 수정되지 않았음
- 코드는 실행될 장치 유형을 위해 의도된 것임
그런 다음 이 코드는 RAM에 로드된 후 확인해야 하며, 부팅 시퀀스는 로드할 첫 번째 코드를 확인하기 위해 불변 루트 키를 사용하여 ROM에서 실행되기 시작합니다. 여러 부팅 단계를 확인하거나 파생 키를 생성하거나 나중의 손상에 대비한 이중화를 위해 여러 불변 루트 키를 고려할 수 있습니다.
코드 모듈은 점진적으로 로드되지만 각각의 이전 단계가 성공적으로 확인되고 부팅된 후에만 로드됩니다. 장치에 현재 설치되어 있는 기존 데이터는 부팅 구성의 일부로 사용될 것으로서 부팅 프로세스 내에서 사용하기 전에 길이, 유형, 범위 등을 확인합니다. 부팅 프로세스의 각 단계에서 가능한 경우 부팅 소프트웨어는 하드웨어 구성이 해당 단계의 예상 구성 매개변수와 일치하는지 확인합니다.
부팅 프로세스는 프로세스의 어떤 단계에서 오류가 발생하는 경우 장치가 RAM에서 잔여 코드가 지워지는 안전한 상태로 "정상적으로 실패"하도록 합니다. 또한 정상적인 실패의 경우에도 장치가 멈추지 않고 (예를 들어 U-Boot 프롬프트를 통해) 기본 시스템, 코드 또는 데이터에 대한 무단 액세스가 이루어지지 않아야 합니다.
제조사는 키와 인증서 생성을 위한 보안 프로세스를 구현합니다. 장치에서 키와 인증서의 프로비저닝, 저장, 사용은 안전합니다. 장치 사용 종료 관리를 통해 키와 인증서의 보안이 유지됩니다.
이러한 보안 부팅 프로세스 지침은 지침의 한 요소일 뿐이지만 모든 섹션이 그렇듯이 IoT용 보안 연결 장치의 개발을 보장하는 중요한 부분입니다. IAR 시스템즈(IAR Systems)는 Security from Inception Suite 제품군을 통해 개발자에게 개발, 제조 및 제품 관리 프로세스 전반에 걸쳐 보안 지침에 따라 요구 사항에 맞는 적절한 수준의 보안을 구축할 수 있는 직접적인 방법을 제공합니다.
임베디드 애플리케이션에서 보안을 구현하고 맞춤화하기 위한 고유한 도구와 서비스 세트는 임베디드 트러스트(Embedded Trust) 형태의 보안 개발 환경과 보안 개발 도구인 C-Trust와 정적 분석 도구인 C-STAT가 포함된 IAR 임베디드 워크벤치(IAR Embedded Workbench)를 사용하는 완전한 개발 도구 체인을 제공합니다.