Développer des applications avec Always Encrypted avec enclaves sécurisées

S’applique à : SQL Server 2019 (15.x) et versions ultérieures - Windows uniquement Azure SQL Database

Always Encrypted avec enclaves sécurisées étend Always Encrypted pour permettre des fonctionnalités plus riches dans les requêtes des applications sur des colonnes de base de données sensibles chiffrées. Elle tire parti des technologies d’enclave sécurisées pour permettre à l’exécuteur d’une requête dans le Moteur de base de données de déléguer des calculs sur des colonnes chiffrées à une enclave sécurisée à l’intérieur du processus du Moteur de base de données.

Prérequis

Votre environnement doit répondre aux exigences suivantes pour prendre en charge Always Encrypted avec des enclaves sécurisées.

  • Votre instance SQL Server ou votre serveur de base de données dans Azure SQL Database doit être correctement configuré pour prendre en charge les enclaves et l'attestation, si applicable/exigé. Pour plus d’informations, consultez Configurer l’enclave sécurisée et l’attestation.
  • Vérifiez que votre application :
    • utilise une version du pilote client qui prend en charge Always Encrypted avec enclaves sécurisées.

    • active Always Encrypted lors de la connexion à votre base de données.

    • définit un protocole d'attestation, qui détermine si le pilote client doit attester l'enclave avant d'envoyer des requêtes d'enclave, et le cas échéant, le service d'attestation qu'il doit utiliser. Les versions de pilotes les plus récentes prennent en charge les protocoles d'attestation suivants :

      • Microsoft Azure Attestation – met en œuvre l'attestation en utilisant Microsoft Azure Attestation.
      • Service Guardian hôte – met en œuvre l'attestation en utilisant Service Guardian hôte.
      • Aucun – autorise l'utilisation d'enclaves sans attestation.

      La table ci-dessous indique les protocoles d'attestation valides pour des produits SQL et des technologies d'enclave particuliers :

      Produit Technologie d'enclave Protocoles d'attestation pris en charge
      SQL Server 2019 (15.x) et versions ultérieures Enclaves de sécurité basée sur la virtualisation Service Guardian hôte, aucun
      Azure SQL Database Enclaves SGX (dans les bases de données de série DC) Microsoft Azure Attestation
      Azure SQL Database Enclaves de sécurité basée sur la virtualisation Aucune
    • Définit une URL d'attestation valide pour votre environnement, si vous utilisez l'attestation.

Pilotes clients pour Always Encrypted avec enclaves sécurisées

Pour développer des applications en utilisant Always Encrypted avec enclaves sécurisées, vous avez besoin d’une version du pilote client SQL qui prend en charge les enclaves sécurisées. Le pilote client joue le rôle clé suivant :

  • Avant de soumettre une requête utilisant une enclave sécurisée à SQL Server ou Azure SQL Database pour exécution, le pilote initie l'attestation de l'enclave (si elle est configurée) pour vérifier que l'enclave sécurisée est fiable et peut être utilisée en toute sécurité pour traiter des données sensibles. Pour plus d’informations sur l’attestation, consultez Attestation des enclaves sécurisées.
  • Le pilote client établit une session sécurisée avec l'enclave en négociant un secret partagé.
  • Le pilote utilise le secret partagé pour chiffrer les clés de chiffrement de colonne dont l’enclave aura besoin pour traiter la requête, puis envoie les clés à SQL Server, qui les transfère à l’enclave sécurisée qui déchiffre les clés.
  • Enfin, le pilote envoie la requête pour exécution, ce qui déclenche les calculs à l’intérieur de l’enclave sécurisée.

Les pilotes clients suivants prennent en charge Always Encrypted avec enclaves sécurisées :

Voir aussi