Scénario : création d'une instance de jumeau numérique qui utilise un certificat mTLS

Si vous recevez des données d'un appareil, vous devez utiliser l'authentification avec votre instance de jumeau numérique. Ce scénario explique comment utiliser un certificat pour l'authentification lorsque vous créez une instance de jumeau numérique pour un appareil.

Le protocole mutuel TLS (mTLS) est un protocole de sécurité qui garantit que le client et le serveur s'authentifient mutuellement lors de la communication. Contrairement à TLS standard, qui authentifie uniquement le serveur, mTLS ajoute une couche de confiance en exigeant que le client et le serveur présentent des certificats valides.
  1. Créer une autorité de certification
  2. Générer une nouvelle clé privée
  3. Créer un certificat géré en externe
  4. Créer une instance de jumeau numérique qui utilise un certificat
  5. Obtenir les détails de l'instance d'un jumeau numérique
  6. S'abonner à un sujet en utilisant MQTTx
  7. Afficher les données d'appareil dans APEX

Bonnes pratiques
  • Faites souvent pivoter les certificats.
  • Limiter les périodes de validité des certificats.
  • Stockez les clés privées à l'aide de Vaults.
  • Surveiller et auditer les tentatives de connexion.

Avant de commencer

Assurez-vous de disposer des droits d'accès requis. Un administrateur accorde l'accès en créant les stratégies requises. Pour plus d'informations, reportez-vous à Prérequis et à Détails de stratégie pour la plate-forme Internet of Things (IoT).

Etape 1 : création d'une autorité de certification

Utilisez le service Certificates pour créer une autorité ou subordonnée de certification racine. Pour plus d'informations, reportez-vous à Création d'une autorité de certification.

Pour créer une Autorité de certification, vous devez avoir accès à une clé de cryptage asymétrique existante protégée du matériel à partir du service Oracle Cloud Infrastructure (OCI) Vault. Pour plus d'informations, reportez-vous à Présentation de Vault.

Cet exemple de tâche explique comment émettre un certificat avec une clé privée que vous gérez en externe à l'aide d'une autorité de certification subordonnée.

Vous devez déjà avoir une autorité de certification racine pour créer une autorité de certification subordonnée.

  1. Connectez-vous en tant qu'administrateur, avec les stratégies appropriées pour effectuer ces actions. Vous devez disposer du niveau d'accès de sécurité approprié pour créer une autorité de certification. Pour plus d'informations, reportez-vous à Stratégie IAM requise.
  2. Sur la page de liste Autorités de certification, sélectionnez Créer une autorité de certification. Si vous avez besoin d'aide pour trouver la page de liste, reportez-vous à Liste des autorités de certification.
  3. Sélectionnez Compartiment, puis sélectionnez le compartiment dans lequel créer l'autorité de certification.
  4. Sous Type d'autorité de certification, sélectionnez le type Autorité de certification subordonnée : toute autorité de certification qui n'est pas l'autorité de certification racine dans une hiérarchie contenant d'autres autorités de certification.
  5. (Facultatif) Entrez un nom d'affichage unique pour l'autorité de certification. Ce nom vous aide à identifier l'autorité de certifications à des fins d'administration, mais il n'apparaît pas dans un certificat de l'autorité de certifications. Evitez de saisir des informations confidentielles.
    Remarque

    Deux autorités de certification d'une location ne peuvent pas partager le même nom, y compris les autorités de certification en attente de suppression.
  6. (Facultatif) Pour appliquer des balises, sélectionnez Afficher les options de balisage. Pour plus d'informations sur les balises, reportez-vous à Balises de ressource.
  7. Sélectionnez Suivant.
  8. Entrez les informations sur le sujet. Les informations sur l'objet comprennent au moins un nom commun permettant d'identificateur le propriétaire du certificat de l'autorité de certificat. Selon l'utilisation prévue du certificat, le sujet peut identifier une personne, une organisation, une adresse d'ordinateur ou un périphérique. Le format des informations sur le sujet doit être conforme aux normes RFC 5280. Vous pouvez utiliser des caractères génériques pour émettre un certificat correspondant à plusieurs noms de domaine ou de sous-domaine.
  9. Sélectionnez Suivant.
  10. Sous Configuration de l'autorité, confirmez ou sélectionnez le coffre qui contient la clé de cryptage à utiliser pour le certificat d'autorité de certificat. Vous pouvez également sélectionner Modifier le compartiment pour indiquer un autre compartiment. Pour plus d'informations sur la création et la gestion des coffres, reportez-vous à Gestion des coffres.
  11. Sous Key, sélectionnez la clé du coffre à utiliser. La liste comprend uniquement les clés asymétriques du coffre car ces dernières sont les seules clés prises en charge par Certificates. Vous pouvez sélectionner parmi les clés RSA (Rivest-Shamir-Adleman) 2 048 bits ou 4 096 bits. You can also select elliptic curve cryptography digital signature algorithm (ECDSA) keys that have an elliptic curve ID of NIST_P384. Plus précisément, la liste inclut uniquement les types de clé asymétrique protégée par un module de sécurité HSM. Les certificats ne prennent pas en charge l'utilisation de clés protégées par logiciel. Pour plus d'informations sur la création et la gestion des clés, reportez-vous à Gestion des clés.
  12. Sous Algorithme de signature, en fonction de la famille d'algorithmes de clé, sélectionnez l'une des options suivantes :
    • SHA256_WITH_RSA : clé RSA avec une fonction SHA-256 de hachage
    • SHA384_WITH_RSA : clé RSA avec une fonction SHA-384 de hachage
    • SHA512_WITH_RSA : clé RSA avec une fonction SHA-512 de hachage
    • SHA256_WITH_ECDSA : clé ECDSA avec une fonction SHA-256 de hachage
    • SHA384_WITH_ECDSA : clé ECDSA avec une fonction SHA-384 de hachage
    • SHA512_WITH_ECDSA : clé ECDSA avec une fonction SHA-512 de hachage
  13. Sélectionnez Suivant.
  14. Configuration de la règle d'expiration Sous Durée de validité maximum des certificats (jours), indiquez le nombre maximal de jours pendant lequel un certificat émis par l'autorité de certification peut être valide. Nous vous recommandons vivement de ne pas définir de période de validité de plus 90 jours.
  15. Sur la page Configuration de révocations, si vous ne voulez pas configurer de liste de certificats révoqués, cochez la caseIgnorer les révocations.
  16. Sélectionnez Suivant.
  17. Vérifiez que les informations sont correctes, puis cliquez sur Créer une autorité de certification. La création de ressources liées aux certificats peut prendre quelques minutes.
  18. Si l'autorité de certification a été créée, les détails récapitulatifs sont affichés.

Etape 2 : génération d'une nouvelle clé privée

Créez une clé privée et une demande de signature de certificat à l'aide de OpenSSL.

Remarque

Pour des raisons de sécurité, envisagez d'effectuer cette étape sur l'appareil afin de préserver la confidentialité de la clé et de ne jamais la partager en externe.
  1. Utilisez cette commande pour générer une nouvelle clé privée private.pem et une demande de signature de certificat csr.pem avec cryptage RSA 2048 bits. Cet exemple montre comment utiliser le paramètre -nodes qui spécifie sans protection par mot de passe et utilise les extensions v3_req.
    openssl req -nodes -newkey rsa:2048 -keyout private.pem -out csr.pem -extensions v3_req
  2. Cet exemple montre les champs d'entrée de demande de certificat et des exemples de valeurs. Entrez les informations qui seront incorporées dans votre rapport de certificat, en tant que nom distinctif (DN).

    Entrez le nom commun. Vous pouvez trouver le nom courant dans l'onglet Informations sur le sujet de la page de détails Certificat. Reportez-vous à l'étape 8 Création d'une autorité de certification ou pour obtenir de l'aide sur la page de détails du certificat, reportez-vous à Liste des certificats :
    Country Name (2 letter code) []: US
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) []:
    Organizational Unit Name (eg, section) []:
    Common Name (Enter common name from the certificate details.) []:common-name
    Email Address [your@email.com]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

Etape 3 : création d'un certificat géré en externe

Vous pouvez générer une requête de signature de certificat (CSR, Certificate Signing Request) et un clé privée sur le serveur sur lequel vous prévenez d'installer le certificat, puis soumettre ce CSR à une Autorité de certification pour émettre un certificat tout en gérant la clé privée en interne.

Cette tâche explique comment émettre un certificat avec une clé privée que vous gérez en externe. Pour plus d'informations sur les autres méthodes d'utilisation d'un certificat, reportez-vous aux sections Creating a Certificate to Manage Externally et Managing Certificates.
  1. Dans la console, ouvrez le menu de navigation, puis sélectionnez Identité et sécurité.
  2. Sur la page de liste Certificats, la liste de l'autorité de certification d'un compartiment spécifique est affichée.
  3. Recherchez le certificat à utiliser, puis sélectionnez le menu Actions à la fin de la ligne.
  4. Sélectionnez Problème de certificat.
  5. Sous Type de chèque-cadeau, pour émettre un certificat à partir d'une Autorité de certification de service Certificates gérée par une Autorité de certification tierce externe, sélectionnez Emis par l'autorité de certification interne, gérée en externe.
  6. Entrez un nom d'affichage unique pour le certificat. Evitez de saisir des informations confidentielles.
    Remarque

    Deux certificats de la location ne peuvent pas partager le même nom, y compris les certificats en attente de suppression.
  7. (Facultatif) Saisissez une description pour permettre d'identifier plus facilement le certificat. Evitez de saisir des informations confidentielles.
  8. Pour les certificats gérés par une autorité de certification tierce, vous n'avez pas besoin de fournir des informations sur le sujet. A la place, sélectionnez Suivant.
  9. Sous Demande de signature de certificat, indiquez le contenu du certificat en sélectionnant Télécharger le fichier, puis sélectionnez Sélectionner un élément pour charger le certificat en tant que fichier au format PEM.
  10. Vous pouvez également sélectionner Coller le contenu, puis sélectionner la zone de texte pour coller directement le contenu du certificat.
  11. Sélectionnez Suivant.
  12. Vous ne pouvez pas configurer le renouvellement automatique pour les certificats que le service Certificates ne gère pas. Sélectionnez Next pour continuer.
  13. Vérifiez que les informations récapitulatives sont correctes, puis sélectionnez Créer un certificat.
  14. La page Détails du certificat s'ouvre. Sous Versions, recherchez le nom du certificat à afficher, accédez au menu Actions à la fin de la ligne, puis sélectionnez Afficher le contenu. Pour plus d'informations, reportez-vous à Affichage des détails d'un certificat.
  15. Pour le Certificate PEM et le Certificate Chain PEM, sélectionnez Download et Save pour enregistrer les fichiers.
  16. Sur la page Détails du certificat, accédez à l'onglet Informations sur l'objet, copiez le nom commun du certificat à utiliser à l'étape suivante.

Etape 4 : création d'une instance de jumeau numérique qui utilise un certificat

Pour authentifier un dispositif afin d'envoyer des données, vous pouvez créer une instance de jumeau numérique à l'aide du paramètre --auth-id et du paramètre <certificate-OCID> créés à l'étape précédente.

Utilisez cette commande et ces paramètres pour créer une instance de jumeau numérique. Remplacez <common-name-for-the-certificate>. Remplacez <certificate-OCID> par l'OCID de certificat de votre environnement. Recherchez ces valeurs dans les détails du certificat. Pour plus d'informations, reportez-vous à Affichage des détails d'un certificat :

iot digital-twin-instance create --iot-domain-id <iot-domain-OCID> --auth-id <certificate-OCID> --external-key <common-name-from-certificate-details>

Pour obtenir la liste complète des paramètres d'interface de ligne de commande, reportez-vous à oci iot digital-twin-instance create et à Création d'une instance de jumeau numérique pour plus d'informations.

Etape facultative 5 : Obtenir les détails de l'instance d'un jumeau numérique

Utilisez cette commande pour visualiser les détails d'une instance de jumeau numérique. La réponse contient l'OCID d'instance du jumeau numérique.
oci iot digital-twin-instance get --digital-twin-instance-id <digital-twin-instance-OCID>
Pour plus d'informations, reportez-vous à Obtention des détails d'instance d'un jumeau numérique.

Etape 6 : S'abonner à un thème à l'aide de MQTTx

Selon votre scénario, vous pouvez vous connecter à l'instance de jumeau numérique à l'aide de MQTT, HTTP ou à l'aide de WebSocket. Cet exemple montre comment se connecter à l'aide de MQTTX. Pour plus d'exemples de scénario, reportez-vous à Connexion d'un appareil.

Pour tester la connexion, procédez comme suit :

  1. Entrez l'hôte du périphérique en tant qu'hôte, par exemple :
    mqtts://<domain-short-id>.device.iot.<region>.oci.oraclecloud.com
  2. Entrez le port : 8883
  3. ID client : votre-client-ID
  4. Clean Start : Vrai
  5. Activez la bascule pour activer TLS.
  6. Sélectionnez l'option : CA ou certificats auto-signés
  7. Entrez l'emplacement du fichier de certificat client, à partir de l'étape 15 dans Création d'un certificat géré en externe : your-certificate.pem
  8. Entrez l'emplacement du fichier de clés client, à partir de l'étape 1 dans Générer une nouvelle clé privée : your-private-key.pem
  9. Sélectionnez Connexion.

    MQTTx

    Connectez-vous à l'aide de MQTTx.

  10. Sélectionnez Nouvel abonnement pour recevoir les données d'un appareil.
  11. Entrez l'adresse en tant que sujet.
  12. Cet exemple montre les messages publiés sur la rubrique /endpoints/4321, au niveau 1 de la qualité de service (QoS).
    {
      "pulse": 300,
      "s02": 400
    }
    {
      "test": 100
    }

    Abonnez-vous à un thème dans MQTTx.

Etape facultative 7 : surveillance des données IoT dans APEX

Si vous avez configuré l'accès pour visualiser vos données dans APEX et que l'appareil a envoyé des données brutes, vous pouvez utiliser cette instruction SQL pour afficher la réponse de données brutes d'instance de jumeau numérique dans APEX.
select * from <domain-short-id-from-device-host>__IOT.RAW_DATA
where digital_twin_instance_id = '<digital-twin-instance-ocid>'