Azure IoT Edge 보안 관리자

적용 대상:IoT Edge 1.5 확인 표시 IoT Edge 1.5 IoT Edge 1.4 확인 표시 IoT Edge 1.4

Important

IoT Edge 1.5 LTS 및 IoT Edge 1.4 LTS는 지원되는 릴리스입니다. IoT Edge 1.4 LTS는 2024년 11월 12일에 종료됩니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.

Azure IoT Edge 보안 관리자는 보안 실리콘 하드웨어를 추상화하여 IoT Edge 디바이스 및 이 디바이스의 모든 구성 요소를 보호하기 위해 잘 정립된 보안 코어입니다. 보안 관리자는 보안 강화의 중심이며 OEM(original equipment manufacturers)에 기술 통합 지점을 제공합니다.

보안 관리자는 IoT Edge 디바이스에서 보안 실리콘 하드웨어를 추상화하고 추가 보안 서비스를 위한 확장성 프레임워크를 제공합니다.

IoT Edge 보안 관리자의 목표는 IoT Edge 디바이스 및 모든 고유 소프트웨어 작업의 무결성을 보호하는 것입니다. 보안 관리자는 신뢰할 수 있는 하드웨어(사용 가능한 경우)의 기본 하드웨어 루트에서 트러스트를 전환하여 IoT Edge 런타임을 부트스트랩하고 진행 중인 작업을 모니터링합니다. IoT Edge 보안 관리자는 보안 실리콘 하드웨어(사용 가능한 경우)와 연동되어 가능한 최고 수준의 보안을 보장하는 소프트웨어입니다.

또한 IoT Edge 보안 관리자는 호스트 수준 모듈을 통해 보안 서비스 확장을 위한 안전한 프레임워크를 제공합니다. 이러한 서비스에는 디바이스의 일부 구성 요소에 대한 권한 있는 액세스 권한이 있는 디바이스 내부의 에이전트가 필요한 보안 모니터링 및 업데이트가 포함됩니다. 확장성 프레임워크는 이러한 통합이 전체 시스템 보안을 일관되게 유지하도록 합니다.

IoT Edge 보안 관리자의 책임에는 다음을 비롯한 여러 사항이 포함됩니다.

  • Azure IoT Edge 디바이스를 부트스트랩합니다.
  • 공증 서비스를 통해 디바이스 하드웨어 신뢰할 수 있는 루트에 대한 액세스를 제어합니다.
  • 런타임 시 IoT Edge 작업의 무결성 모니터링.
  • 해당하는 경우 디바이스 ID를 프로비전하고 신뢰 전환을 관리합니다.
  • Device Update for IoT Hub 및 Microsoft Defender for IoT를 비롯한 서비스용 클라이언트 에이전트의 안전한 작동을 보장합니다.

IoT Edge 보안 관리자는 세 가지 구성 요소로 구성됩니다.

  • IoT Edge 모듈 런타임
  • PKCS#11 및 TPM(신뢰할 수 있는 플랫폼 모듈)과 같은 표준 구현을 통한 HSM(하드웨어 보안 모듈) 추상화
  • 하드웨어 실리콘 신뢰할 수 있는 루트 또는 HSM(선택 사항이지만 적극 권장됨)

버전 1.2 이상의 변경 내용

IoT Edge 버전 1.0 및 1.1에서는 보안 디먼이라는 구성 요소가 보안 관리자의 논리적 보안 작업을 담당했습니다. 버전 1.2 업데이트에서 Azure IoT Identity Service 보안 하위 시스템에 몇 가지 주요 책임이 위임되었습니다. 이러한 보안 기반 작업이 보안 디먼에서 제거되면 해당 이름이 더 이상 의미가 없습니다. 버전 1.2 이상에서 이 구성 요소가 수행하는 작업을 더 잘 반영하기 위해 이름을 모듈 런타임으로 변경했습니다.

IoT Edge 모듈 런타임

IoT Edge 모듈 런타임은 Azure IoT ID 서비스 보안 하위 시스템에서 신뢰를 위임하여 IoT Edge 컨테이너 런타임 환경을 보호합니다. 이제 Azure IoT Identity Service에 위임된 서비스 중 하나는 EST 서버를 통한 자동화된 인증서 등록 및 갱신 서비스입니다. 작동 방식을 확인하고 IoT Edge 디바이스용 샘플 EST 서버를 만들려면 Azure IoT Edge용 보안 전송 서버를 통한 등록 구성 자습서를 사용해 보세요.

모듈 런타임은 보안 관리자의 논리적 보안 작업을 담당합니다. 이는 IoT Edge 디바이스의 Trusted Computing Base에서 상당한 부분을 차지합니다. 모듈 런타임은 IoT ID 서비스의 보안 서비스를 사용하며, 이는 디바이스 제조업체가 선택한 HSM(하드웨어 보안 모듈)에 의해 강화됩니다. 디바이스 강화를 위해 HSM을 사용하는 것이 좋습니다.

설계 원칙

IoT Edge는 운영 무결성 최대화, 블로트 및 변동 최소화라는 두 가지 핵심 원칙을 따릅니다.

작동 무결성 극대화

IoT Edge 모듈 런타임은 지정된 신뢰할 수 있는 루트 하드웨어의 방어 기능 내에서 가능한 최고의 무결성으로 작동합니다. 적절한 통합을 통해 트러스트 하드웨어의 루트는 변조를 방지하기 위해 보안 디먼을 런타임 시 정적으로 측정하고 모니터링합니다.

디바이스에 대한 악의적인 실제 액세스는 항상 IoT의 위협입니다. 하드웨어 신뢰할 수 있는 루트는 IoT Edge 디바이스의 무결성을 보호하는 데 중요한 역할을 합니다. 신뢰할 수 있는 하드웨어 루트는 두 가지로 제공됩니다.

  • 비밀 및 암호화 키와 같은 중요한 정보를 보호하기 위한 요소를 보호합니다.
  • 키와 같은 비밀 보호를 위한 보안 Enclave 및 기밀 기계 학습 모델 및 측정 작업과 같은 민감한 워크로드입니다.

신뢰할 수 있는 하드웨어 루트는 두 종류의 실행 환경에서 사용할 수 있습니다.

  • 보안 요소를 사용하여 중요한 정보를 보호하는 표준 환경 또는 REE(rich execution environment)
  • 보안 enclave 기술을 사용하여 중요한 정보를 보호하고 소프트웨어 실행에 대한 보호를 제공하는 TEE(신뢰 실행 환경)

보안 Enclave를 하드웨어 신뢰할 수 있는 루트로 사용하는 디바이스의 경우 IoT Edge 모듈 런타임 내의 중요한 논리가 Enclave 내부에 있어야 합니다. 모듈 런타임의 중요하지 않은 부분은 TEE 외부에 있을 수 있습니다. 모든 경우에 ODM(Original Design Manufacturer) 및 OEM(Original Equipment Manufacturer)은 HSM에서 신뢰를 확장하여 부팅 및 런타임 시 IoT Edge 모듈 런타임의 무결성을 측정하고 방어할 것을 강력히 권장합니다.

블로트 및 변동 최소화

IoT Edge 모듈 런타임의 또 다른 핵심 원칙은 변동을 최소화하는 것입니다. 최고 수준의 신뢰를 위해 IoT Edge 모듈 런타임은 디바이스 하드웨어 신뢰할 수 있는 루트와 긴밀하게 결합되어 네이티브 코드로 작동할 수 있습니다. 이러한 경우에는 운영 체제의 업데이트 메커니즘이 아닌 하드웨어 신뢰할 수 있는 루트의 보안 업데이트 경로를 통해 IoT Edge 소프트웨어를 업데이트하는 것이 일반적이며 이는 까다로울 수 있습니다. IoT 디바이스에 대한 보안 갱신이 권장되지만, 과도한 업데이트 요구 사항이나 대규모 업데이트 페이로드로 인해 여러 가지 면에서 위협 표면이 확장될 수 있습니다. 예를 들어, 디바이스 가용성을 최대화하기 위해 일부 업데이트를 건너뛰고 싶을 수 있습니다. 따라서 IoT Edge 모듈 런타임의 설계는 잘 격리된 신뢰할 수 있는 컴퓨팅 기반을 작게 유지하여 빈번히 업데이트할 수 있도록 간결합니다.

아키텍처

IoT Edge 모듈 런타임은 보안 강화를 위해 사용 가능한 모든 하드웨어 신뢰할 수 있는 루트 기술을 활용합니다. 또한 하드웨어 기술에서 신뢰할 수 있는 실행 환경을 제공할 때는 표준 REE(Rich Execution Environment)와 TEE(Trusted Executive Environment) 간의 분할 작업도 가능합니다. 역할별 인터페이스를 통해 IoT Edge의 주요 구성 요소가 IoT Edge 디바이스와 해당 디바이스 작동의 무결성을 보장할 수 있습니다.

Azure IoT Edge 모듈 런타임 아키텍처

클라우드 인터페이스

클라우드 인터페이스를 통해 디바이스 보안을 보완하는 클라우드 서비스에 액세스할 수 있습니다. 예를 들어, 이 인터페이스를 사용하면 디바이스 ID 수명 주기 관리를 위해 Device Provisioning Service에 액세스할 수 있습니다.

관리 API

관리 API는 IoT Edge 모듈을 만들기/시작/중지/제거할 때 IoT Edge 에이전트에 의해 호출됩니다. 모듈 런타임은 모든 활성 모듈에 대한 "등록"을 저장합니다. 이러한 등록은 모듈의 ID를 모듈의 일부 속성과 매핑합니다. 예를 들어 해당 모듈 속성으로 컨테이너에서 실행 중인 프로세스의 pid(프로세스 식별자) 또는 Docker 컨테이너 콘텐츠의 해시 등이 있습니다.

해당 속성은 워크로드 API(아래 설명 참조)에서 호출자가 작업을 수행할 수 있는 권한이 있는지 확인하는 데 사용됩니다.

관리 API는 권한이 있는 API로 IoT Edge 에이전트에서만 호출할 수 있습니다. IoT Edge 모듈 런타임은 IoT Edge 에이전트를 부트스트랩하고 시작하기 때문에 IoT Edge 에이전트가 변조되지 않았음을 확인한 후에, IoT Edge 에이전트에 대한 암시적인 등록을 만들 수 있습니다. 또한 워크로드 API가 사용하는 동일한 증명 프로세스는 관리 API에 대한 액세스를 IoT Edge 에이전트에만 제한합니다.

컨테이너 API

컨테이너 API는 Moby 또는 Docker와 같이 모듈 관리에 사용되는 컨테이너 시스템과 상호 작용합니다.

워크로드 API

워크로드 API는 모든 모듈에 액세스할 수 있습니다. 이 API는 ID 증명(HSM 루트 서명된 토큰 또는 X509 인증서) 및 관련 트러스트 번들을 모듈에 제공합니다. 트러스트 번들에는 모듈이 신뢰해야 하는 다른 모든 서버용 CA 인증서가 포함됩니다.

IoT Edge 모듈 런타임은 증명 프로세스를 사용하여 이 API를 보호합니다. 모듈이 이 API를 호출하면 모듈 런타임은 ID에 대한 등록을 찾으려고 시도합니다. 성공하면 등록의 속성을 사용하여 모듈을 측정합니다. 측정 프로세스의 결과가 등록과 일치하면 새로운 ID 증명이 생성됩니다. 그리고 해당 CA 인증서(트러스트 번들)가 모듈에 반환됩니다. 모듈은 이 인증서를 사용하여 IoT Hub나 다른 모듈에 연결하거나 서버를 시작합니다. 서명된 토큰 또는 인증서가 곧 만료되는 경우, 모듈이 새로운 인증서를 요청하는 역할을 담당합니다.

통합 및 유지 관리

Microsoft는 GitHub에서 IoT Edge 모듈 런타임Azure IoT ID 서비스의 기본 코드 기반을 유지합니다.

IoT Edge 코드베이스를 읽을 때 모듈 런타임보안 디먼에서 발전했음을 기억합니다. 코드베이스에는 여전히 보안 디먼에 대한 참조가 포함될 수 있습니다.

설치 및 업데이트

IoT Edge 모듈 런타임의 설치 및 업데이트는 운영 체제의 패키지 관리 시스템을 통해 관리됩니다. 하드웨어 신뢰할 수 있는 루트가 있는 IoT Edge 디바이스는 보안 부트 및 업데이트 관리 시스템을 통해 수명 주기를 관리하여 모듈 런타임의 무결성을 추가로 강화해야 합니다. 디바이스 제조업체는 자사의 각 디바이스 기능에 따라 해당 방안을 살펴봐야 합니다.

버전 관리

IoT Edge 런타임은 IoT Edge 모듈 런타임의 버전을 추적하고 보고합니다. 버전은 IoT Edge 에이전트 모듈이 보고한 속성의 runtime.platform.version 특성으로 보고됩니다.

하드웨어 보안 모듈

IoT Edge 보안 관리자는 HSM(하드웨어 보안 모듈) 통합을 위한 신뢰할 수 있는 플랫폼 모듈 및 PKCS#11 인터페이스 표준을 구현합니다. 이러한 표준을 사용하면 독점 인터페이스가 있는 HSM을 포함하여 거의 모든 HSM을 통합할 수 있습니다. 보안 강화를 위해 HSM을 사용하는 것이 좋습니다.

트러스트 하드웨어의 보안 실리콘 루트

보안 실리콘은 IoT Edge 디바이스 하드웨어 내부에 신뢰를 확보하는 데 필요합니다. 보안 실리콘은 신뢰할 수 있는 플랫폼 모듈(TPM), eSE(Embedded Secure Element), Arm TrustZone, Intel SGX 및 사용자 지정 보안 실리콘 기술을 포함하도록 다양합니다. IoT 디바이스의 물리적 접근성에 관련된 위협을 고려하면 디바이스에 신뢰할 수 있는 보안 실리콘 루트를 사용하는 것이 좋습니다.

IoT Edge 보안 관리자의 목표는 사용자 지정 강화를 위해 Azure IoT Edge 플랫폼의 보안 및 무결성을 방어하는 구성 요소를 식별하고 격리하는 것입니다. 디바이스 제조업체 등의 타사는 디바이스 하드웨어에서 제공되는 사용자 지정 보안 기능을 사용해야 합니다.

소프트웨어 또는 가상 TPM을 사용하여 TPM(신뢰할 수 있는 플랫폼 모듈)으로 Azure IoT 보안 관리자를 강화하는 방법을 알아봅니다.

Linux 또는 Windows의 Linux에서 가상 TPM으로 IoT Edge 디바이스를 만들고 프로비전합니다.

다음 단계

IoT Edge 디바이스 보안에 대해 자세히 알아보려면 다음 블로그 게시물을 참조하세요.