다음을 통해 공유


디바이스 ID 및 보안

여러 디바이스를 한 번에 배포하고 관리할 수 있습니다. 디바이스 관리는 필요한 경우 각 디바이스를 개별적으로 식별하고 액세스하는 기능을 기반으로 합니다. 이 작업을 수행할 수 있도록 각 Azure Sphere 디바이스에는 복구 작업을 포함하여 디바이스에 대한 업데이트를 통해 유지되는 고유한 내부 디바이스 ID가 제공됩니다.

그러나 디지털 시스템에서는 디바이스의 ID를 쉽게 스푸핑, 위조 또는 오용할 수 있습니다. 따라서 ID를 확인하고 유효성을 검사할 수 있는 디바이스만 매우 중요한 데이터에 액세스하고 서비스에 연결할 수 있도록 허용해야 합니다.

Azure Sphere는 디바이스가 자체(인증)를 식별하고 디바이스의 ID(증명)를 확인할 수 있도록 하는 프로세스를 제공합니다. Azure Sphere Security Service에서 사용하는 인증 및 증명 프로세스는 미리 알려진 키, 보안 통신 및 특수 하드웨어를 사용하여 디바이스의 ID를 확인합니다. 디바이스 인증 및 증명에 성공하면 인증서가 디바이스에 발급됩니다. 유효한 인증서는 다음을 나타냅니다.

  • 디바이스의 ID가 확인되었습니다.
  • 디바이스를 신뢰할 수 있습니다.

Azure Sphere를 사용하면 디바이스 인증서가 먼저 카탈로그 수준 인증서에 연결되고(organization 자체 카탈로그에서 디바이스만 쉽게 신뢰할 수 있도록 함) Microsoft 인증서에 연결됩니다. 이 인증서는 Microsoft가 이 하드웨어가 보안 Microsoft OS를 실행하는 인증된 Azure Sphere 칩의 확인된 instance 확인되었음을 반영합니다.

다음 개념은 가장 안전하고 효과적인 방법으로 디바이스 ID를 사용하는 데 도움이 될 수 있습니다.

  • 신뢰가 일시적입니다.
    시스템에 대한 신뢰는 손실될 수 있으며 다시 얻을 수 있습니다. IoT 시스템에서 제로 트러스트 아키텍처를 구현하는 원칙은 명시적으로 확인하는 것입니다. 즉, 디바이스와 상호 작용할 때마다 디바이스의 신뢰성을 명시적으로 확인하고 데이터 트랜잭션이 신뢰할 수 있음을 증명합니다. Azure Sphere 디바이스는 Azure Sphere 클라우드 보안 서비스를 사용하여 24시간마다 인증 및 증명 프로세스를 자동으로 수행합니다. 디바이스의 ID가 성공적으로 확인되었음을 나타내는 것은 Microsoft Azure Sphere Cloud Security Service에 뿌리를 둔 암호화 서명된 인증서가 있다는 것입니다.

  • ID = 식별자 + 증명
    식별자를 복사하고 복제할 수 있습니다. 따라서 디바이스를 식별자로 간단하게 알 수 없습니다. 디바이스의 ID(또는 사용자의 ID)는 특정 컨텍스트 내에서 해당 식별자가 유효하다는 식별자와 증명의 조합으로 간주되어야 합니다. 디바이스에 식별자를 할당하고 증명 프로세스와 독립적으로 사용하지 않아야 합니다. 가능한 경우 시스템 내의 모든 상호 작용 계층에서 증명의 증거와 식별자를 결합합니다.

  • 식별자 + 트러스트 인증서
    식별자는 참조에 지나지 않는 것으로 간주되어야 합니다. 단독으로 참조하는 개체의 신뢰성에 대해 아무 것도 나타내지 않아야 합니다. 예를 들어 식별자를 사용하여 MQTT 메시지를 구독하고, 식별자를 사용하여 포털 내에서 신뢰할 수 있는 데이터를 그룹화하고, 식별자를 사용하여 시스템에서 트래픽 및 데이터를 라우팅합니다. 그러나 식별자를 신뢰하지 않고 신뢰하는 경우 암호화로 서명되고 연결된 인증서를 신뢰합니다. 인증서는 시스템 구성 요소 간의 암호 없는 데이터 흐름에 특히 유용하며 특정 컨텍스트 내에서 테스트되고 신뢰할 수 있는 것으로 입증된 식별의 증거입니다.

Azure IoT Hub 사용하는 경우 문서화된 권장 사항에 따라 구성된 경우 이러한 개념은 이미 통합되어 보안 및 복원력 있는 시스템의 배포를 간소화합니다.

직접 제어하는 비 Azure 엔드포인트 또는 서비스에 연결할 때도 이러한 개념을 적용해야 합니다. 예를 들어 MQTT를 사용하는 경우 디바이스는 게시하는 MQTT 토픽의 일부로 자체 ID를 포함할 수 있습니다. 그러나 디바이스에서 토픽 업데이트를 수락하기 전에 MQTT 서버는 디바이스에서 제공하는 인증서가 이 특정 항목에 게시하도록 인증하는지 확인해야 합니다.

Azure Sphere 디바이스 인증서 및 디바이스 ID 액세스

  • 애플리케이션에서 디바이스 인증서에 액세스하려면 DeviceAuth_GetCertificatePath 함수를 사용합니다.

  • 디바이스의 고유한 디바이스 ID에 액세스하려면 wolfSSL_X509_get_subject_name 함수를 사용하여 DeviceAuth_GetCertificatePath() 함수에서 제공하는 인증서에서 주체를 구문 분석합니다.

코드 조각 Azure Sphere 디바이스 ID 가져오기 는 상위 수준 애플리케이션에서 Azure Sphere 디바이스 ID를 가져오는 방법을 보여 줍니다. 디바이스 ID를 128자의 문자 버퍼로 반환합니다. 이 코드 조각은 wolfSSL을 명령하여 인증서로 세션을 열고, 컨텍스트 및 인증서를 끌어오고, Azure Sphere 디바이스의 디바이스 ID인 인증서의 주체 ID를 구문 분석한 다음 포인터로 char 반환합니다.