web-dev-qa-db-fra.com

Chiffrement d'assertion SAML et utilisation de la même clé pour le chiffrement que la signature

Je travaille avec une entreprise dont le produit prend en charge l'authentification basée sur SAML. Nous ne facilitons pas la fédération juste à temps et acceptons uniquement l'identifiant utilisateur dans les réponses d'assertion (l'utilisateur doit déjà exister dans le système).

Si nous signons la réponse, quelle serait ma justification pour vouloir crypter ces données non confidentielles?

L'argument du client est tout simplement bon à faire et que tous ses autres fournisseurs facilitent cela en utilisant simplement la même clé pour chiffrer et signer (et que tous leurs autres fournisseurs de services le permettent). Cela déclenche des drapeaux rouges massifs pour tout ce que j'ai appris sur les bases de la cryptographie.

Premièrement, l'intérêt de fournir une clé publique pour la signature est que n'importe qui peut posséder la clé pour la vérifier, cela ne signifie-t-il pas qu'un fournisseur d'identité utiliserait la même clé privée pour chaque fournisseur de services pour la signature? Par conséquent, l'utilisation de la même clé pour le chiffrement annulerait la frontière de confiance entre chaque fournisseur de services utilisant ce fournisseur d'identité? Suis-je mal compris cela?

Deuxièmement, si le fournisseur d'identité fournit les métadonnées avec la clé de chiffrement, ne serait-ce pas une clé publique qu'il fournit au fournisseur de services. La partie destinataire du message chiffré (alias le fournisseur de services) ne devrait-elle pas avoir la clé privée, pas la clé publique? Qu'est-ce que je rate?

Merci,

3
Cyassin

Le chiffrement de l'assertion SAML est facultatif. Qu'il soit chiffré ou non, vous avez toujours la confidentialité grâce à la sécurité de la couche de transport.

Les scénarios dans lesquels le chiffrement de l'assertion SAML doit être envisagé sont les suivants: l'assertion SAML contient des informations utilisateur particulièrement sensibles; SAML SSO se produit dans un environnement sensible.

Votre compréhension des clés publiques et privées est correcte. Le fournisseur de services fournit sa clé publique de chiffrement au fournisseur d'identité.

Le fournisseur d'identité crypte l'assertion SAML avec la clé publique du fournisseur de services.

Seul le dépositaire de la clé privée correspondante (c'est-à-dire le fournisseur de services) peut décrypter l'assertion SAML.

Que l'assertion SAML soit chiffrée ou non, le fournisseur d'identité doit signer soit l'assertion SAML, soit la réponse SAML qui enveloppe l'assertion SAML.

Le fournisseur d'identité signe l'assertion ou la réponse SAML à l'aide de sa propre clé privée.

Le fournisseur de services vérifie la signature à l'aide de la clé publique correspondante du fournisseur d'identité.

La seule autre considération est avec l'authentification unique initiée par SP, la demande d'authentification SAML est souvent signée.

Dans ce cas, le fournisseur de services signe la demande d'authentification avec sa clé privée et le fournisseur d'identité vérifie la signature à l'aide de la clé publique correspondante.

Le fournisseur de services a la possibilité d'utiliser des clés identiques ou différentes pour la génération de signatures et le déchiffrement d'assertion SAML.

Un avantage de l'utilisation de la même clé pour la génération et le déchiffrement des signatures est qu'il y a un certificat de moins à distribuer et à gérer.

La règle d'or dans tout cela est qu'aucune partie ne devrait jamais divulguer sa clé privée à une autre partie.

5
ComponentSpace