Les services de chiffrement de GCP : Cloud KMS, Cloud HSM et Cloud EKM
Que valent les services de chiffrement de Google Cloud Platform ? Cet article tente de brosser le portrait de trois produits du géant du cloud. Attention aux subtilités.
Après avoir déchiffré les services de chiffrement d’AWS, nous nous intéressons aux équivalents chez Google Cloud Platform.
Dans les grands principes, Google propose trois méthodes de chiffrement, présentées comme « différents niveaux de protection ». Il y a d’abord un chiffrement logiciel (clés SOFTWARE), opéré depuis le service Cloud KMS, un chiffrement matériel assuré à l’aide de Cloud HSM (clés HARDWARE), et un chiffrement externalisé (clés EXTERNAL), permis par le service Cloud EKM. En conséquence, Google bénéficie de la certification FIPS 140-2 de niveau 1 pour les clés générées par logiciel, de la certification FIPS 140-2 de niveau 3 pour les clés créées avec Cloud HSM et des niveaux 2 ou 3 suivant le fournisseur gestionnaire des clés externes.
Qu’est-ce que Cloud KMS ?
Cloud KMS peut tout de même faire office d’interface pour l’ensemble des services.
Google Cloud Platform présente son service KMS comme un outil de gestion de clés de chiffrement qui reprend les fonctionnalités d’un Key Management Service sur site. Il offre la possibilité de créer, d’utiliser, d’importer et de détruire des clés cryptographiques AES 256 symétriques et des clés asymétriques RSA 2048, 3072, 4096, ECP256 et EC P384, selon la documentation du géant du cloud. Ce service peut aussi être utilisé pour gérer les clés de chiffrement gérées et importées par le client (CMEK) quand le produit cloud utilisé prend en charge cette option.
Une API REST assure le chiffrement et le déchiffrement. Cette interface de programmation peut également être appelée pour la signature numérique de données. Les commandes sont réalisées depuis la Cloud Console et les clés sont générées grâce à un « générateur de nombres aléatoires (GNA) élaboré par Google », dixit la documentation.
Les algorithmes de chiffrement sont appelés via BoringSSL (une variante Google d’OpenSSL). Là encore, le service permet de définir une rotation automatique des clés et de restreindre les accès via le service Cloud IAM. L’audit des logs peut être réalisé grâce au service Cloud Audit Logging. À noter que GCP impose un délai de 24 heures avant la destruction des clés. Ici, il n’y a pas de limite concernant les types de clés asymétriques ou symétriques. Les textes bruts et chiffrés ont une taille de bloc de 64 kibioctets.
Par ailleurs, Cloud Key Management Service est pourvue d’une option de haute disponibilité.
Les tarifs de Google Cloud KMS
Avec Cloud KMS, le client est facturé 0,03 dollar toutes les 10 000 opérations, et chaque version de clés coûte 0,06 dollar par mois. Le service permet de protéger les données dans plus d’une trentaine de services, dont AI Platform Training, BigQuery (risque de suppression de tables au bout de 60 jours), Compute Engine, GKE, Dataflow, Dataproc, Cloud Logging, Pub/Sub, Cloud SQL et Cloud Storage (ne fonctionne pas avec le transfert de données) avec des clés de chiffrement gérées par le client (CMEK).
L’ensemble des données d’applications contenues dans les services Google Cloud Platform peuvent être chiffrées par le client. Par défaut, Google propose par ailleurs un chiffrement automatique des informations en transit et en repos pour ces services. Le SLA est de 99,5 %. Si la chose est moins documentée par Google, des éditeurs tiers peuvent s’intégrer avec l’instance d’un client, comme le fait Haschicorp avec son produit de gestion de secrets Vault.
Google Cloud HSM, un service à l’accessibilité pour le moins spéciale
Depuis août 2018, GCP propose également l’accès à un module matériel que le fournisseur gère pour le client avec le service Cloud HSM. Le module matériel est certifié FIPS 140-2 de niveau 3 ; il s’agit tout comme AWS des HSM Marvell LiquidSecurity. La taille de bloc passe alors à 8 kibioctets. Google Cloud HSM repose sur l’interface de Cloud KMS. Il est également possible d’importer des clés issues d’un HSM via une API. Que ce soit pour les clés SOFTWARE, HSM ou EXTERNAL, il faut créer une clé cible rattachée à un trousseau dans Cloud HSM ou KMS avant d’importer une version de clé. Il est possible d’encapsuler manuellement ou automatiquement les clés à importer avec OpenSSL.
Les tarifs de Google Cloud HSM
Par défaut, Google Cloud HSM dépend d’une infrastructure mutualisée. Pour obtenir un module HSM dédié, la documentation indique qu’il faut contacter son responsable de compte. Cela permet à Google de proposer des tarifs relativement bas : les opérations de clés AES-256 et RSA 2048 sont facturées 0,03 dollar pour 10 000 requêtes. Ce tarif passe à 0,15 dollar pour 10 000 opérations pour les clés RSA 3072, 4096, EC P256, et EC P384.
Les versions de clés AES 256 et RSA 2048 coûtent 1 dollar par mois, les versions de clés RSA 3072, 4 096 EC P256 et P384 sont facturées 3 dollars pour 2 000 versions et 1 euro au-delà.
N.B. : le fournisseur semble avoir pris en compte la remarque concernant la complexité d’accès au tarif de ses services de chiffrement. Ils sont désormais affichés en dollars dans la documentation générale.
Les contrats de niveau de service couvrent 99,95 % des opérations de chiffrement, déchiffrement et signature numérique. Le nombre de requêtes HSM par seconde (RPS) est de 500 pour les opérations de chiffrement symétriques et de 50 RPS pour le chiffrement asymétrique. Cloud KMS est notamment disponible dans les onze régions cloud européennes, dont Paris. Cloud HSM n’est pas disponible à Turin, tandis que Cloud EKM n’est accessible que par Internet (et non via un VPC, comme dans les autres régions).
Autre solution pour profiter de Cloud HSM : choisir la région globale Europe, mais « il n’est pas possible de prédire ni de contrôler exactement quels centres de données sont sélectionnés, ni le lieu où ils se trouvent dans la zone multirégionale », indique la documentation.
« Actuellement, les opérations de clé portant sur des clés stockées dans Cloud HSM peuvent entraîner une latence nettement supérieure à celle obtenue avec les clés logicielles Cloud KMS », prévient par ailleurs le document.
Cloud EKM : Un chiffrement externalisé des clés
La gestion des clés par un prestataire tiers est ici dépendante d’un service supplémentaire : Cloud EKM (External Key Manager). Avec ce service, « les clés ne sont jamais stockées sur GCP » et la gestion est centralisée depuis un système externe.
Les services GCP peuvent se connecter aux HSM distants via Internet ou par le truchement d’un VPC.
En 2020, les limitations étaient encore importantes. Depuis, GCP a considérablement fait évoluer son service pour qu’il puisse être utilisé afin de chiffrer les données au repos dans une vingtaine de services différents.
En dehors de GCP, ce chiffrement externe peut être utilisé pour assurer le chiffrement au repos des documents dans Google Workspace via la fonctionnalité « client-side encryption ».
En 2023, les prestataires se comptent (encore) sur les doigts de la main : Fortanix, Futurex, Thales et Virtru permettent de gérer et d’appeler les clés CMEK estampillées Cloud EKM dans Google Cloud.
Si GCP assure que cette approche permet d’assurer la souveraineté du chiffrement, il note quelques limitations. Par exemple, le fournisseur déconseille le recours à des clés de chiffrement externes pour « protéger » des informations dans une application sensible à la latence.
Avec Cloud EKM, les 10 000 opérations coûtent 0,03 dollar et 3 dollars par mois par version de clé. Le SLA apporte une garantie 99,5 % du temps.