Identidade e segurança do dispositivo

Você pode implantar e gerenciar vários dispositivos por vez. O gerenciamento de dispositivos baseia-se na capacidade de identificar e acessar cada dispositivo individualmente quando necessário. Para permitir que você faça isso, cada dispositivo do Azure Sphere recebe uma ID de dispositivo interna exclusiva que persiste por meio de quaisquer atualizações para o dispositivo, incluindo operações de recuperação.

No entanto, em sistemas digitais, a ID de um dispositivo pode ser facilmente falsificada, forjada ou mal utilizada. Como resultado, você só deve permitir dispositivos cujas identidades podem ser verificadas e validadas para acessar seus dados altamente valiosos e se conectar aos seus serviços.

O Azure Sphere fornece um processo para permitir que um dispositivo se identifique (autenticação) e para a confirmação da identidade do dispositivo (atestado). O processo de autenticação e atestado empregado pelo Serviço de Segurança do Azure Sphere usa chaves pré-conhecidas, comunicações seguras e hardware especializado para confirmar a identidade de um dispositivo. Se a autenticação e o atestado do dispositivo forem bem-sucedidos, um certificado será emitido para o dispositivo. Um certificado válido indica que:

  • A identidade do dispositivo foi verificada.
  • O dispositivo pode ser confiável.

Com o Azure Sphere, os certificados de dispositivo são encadeados primeiro a um certificado no nível do catálogo (facilitando a confiança de uma organização somente em dispositivos de seus próprios catálogos) e depois em um certificado da Microsoft, o que reflete que a Microsoft validou que esse hardware é uma instância verificada de um chip certificado do Azure Sphere que está executando um sistema operacional Microsoft protegido.

Os seguintes conceitos podem ajudar a usar a identidade do dispositivo das maneiras mais seguras e eficazes:

  • A confiança é transitória
    A confiança em um sistema pode ser perdida e pode ser recuperada. Um princípio de implementação da arquitetura Confiança Zero em um sistema IoT é verificar explicitamente. Isso significa que cada vez que você tem uma interação com um dispositivo, determine explicitamente a autenticidade do dispositivo e prove que a transação de dados é confiável. Os dispositivos do Azure Sphere executam automaticamente um processo de autenticação e atestado a cada 24 horas com os serviços de segurança na nuvem do Azure Sphere. Uma indicação de que a identidade de um dispositivo foi verificada com êxito é a presença de um certificado assinado criptograficamente, enraizado no Serviço de Segurança na Nuvem do Microsoft Azure Sphere.

  • Identidade = identificadores + atestado
    Os identificadores podem ser copiados e duplicados. Como resultado, um dispositivo não pode simplesmente ser conhecido por seu identificador. A identidade de um dispositivo (ou a identidade de um usuário) deve ser considerada como uma combinação de um identificador e atestado de que esse identificador é válido em um contexto específico. Você não deve atribuir identificadores a dispositivos e usá-los independentemente do processo de atestado. Sempre que possível, combine identificadores com evidências de atestado em cada camada de interação em seus sistemas.

  • Identificadores + certificados de confiança
    Um identificador não deve ser considerado mais do que uma referência. Por si só, não deve ser assumido indicar nada sobre a confiabilidade do objeto que ele faz referência. Por exemplo, use um identificador para assinar mensagens MQTT, use um identificador para agrupar dados confiáveis em um portal e use identificadores para rotear tráfego e dados em um sistema. No entanto, quando se trata de confiança, em vez de confiar no identificador, confie em um certificado assinado e encadeado criptograficamente. Os certificados são particularmente benéficos para o fluxo de dados sem senha entre componentes do sistema e são evidências de identificação que foram testadas e comprovadamente confiáveis em um contexto específico.

Ao usar Hub IoT do Azure, se configurados de acordo com as recomendações documentadas, esses conceitos já serão incorporados, simplificando a implantação de um sistema protegido e resiliente.

Você também deve aplicar esses conceitos ao se conectar a pontos de extremidade ou serviços não Azure que você controla diretamente. Por exemplo, se usar o MQTT, um dispositivo poderá incluir sua própria identidade como parte do tópico MQTT ao qual ele publica. No entanto, antes de aceitar uma atualização de tópico do dispositivo, o servidor MQTT deve verificar se o certificado que o dispositivo fornece o autentica para publicar neste tópico específico.

Certificado de dispositivo do Azure Sphere e acesso à ID do dispositivo

  • Para acessar um certificado de dispositivo em seu aplicativo, use a função DeviceAuth_GetCertificatePath .

  • Para acessar a ID de Dispositivo exclusiva do dispositivo, analise o assunto do certificado fornecido pela função DeviceAuth_GetCertificatePath() usando a função wolfSSL_X509_get_subject_name .

O snippet de código Get Azure Sphere Device ID demonstra como obter a ID do dispositivo do Azure Sphere em um aplicativo de alto nível. Ele retorna a ID do dispositivo como um buffer de caracteres de 128 caracteres. Este snippet comanda wolfSSL para abrir uma sessão com o certificado, puxar o contexto e o certificado, analisar a ID do assunto do certificado que é a ID do dispositivo para dispositivos do Azure Sphere e devolvê-lo como um char ponteiro.