Signature Exclusion Attack and Certificate Faking: Difference between pages

From Single Sign-On Attacks
(Difference between pages)
Jump to navigation Jump to search
No edit summary
 
(Created page with "=Attack description= The cryptographic verification of the digital signature guarantees the integrity of the token. Additionally, it is essential to verify the token’s authe...")
 
Line 1: Line 1:
=Attack description=
=Attack description=
The integrity of all authentication tokens should be protected. In case of ''Security Assertion Markup Language (SAML)'', this is realized by a digital signature ''s = SIGIdP(t)''. ''Signature Exclusion'' (0Sig) exploits a vulnerability in the verification logic allowing the usage of unsigned tokens. If ''SAML'' token does not contain any signature, no protection of integrity or authenticity is provided. Since no digital signature for the token is required, an attacker can generate tokens containing arbitrary identities ''(I)'' of other users.
The cryptographic verification of the digital signature guarantees the integrity of the token. Additionally, it is essential to verify the token’s authenticity, too. In other words, the ''Software-as-a-Service Cloud Provider (SaaS-CP)'' should check whether the token was signed by a trusted ''Identity Provider (IdP)''. The ''Certificate Faking (CF)'' attack utilizes possible flaws in the selection logic of the key used for the verification of tokens, by providing an attacker generated token signed by an attacker generated key.
 
The attack targets the ''Single Sign-On (SSO)'' Verificator, which should verify that the authentication token is signed by a trusted third party instead of accepting any key provided with the token (although the XML Signature standard allows to include certificates, it is essential to verify whether it is a trusted certificate).




Line 8: Line 10:


=Prerequisites for attack=
=Prerequisites for attack=
In order for this attack to work the attacker has to have knowledge about the following things:
In order to run the attack, the attacker must be able to create ''Security Assertion Markup Language (SAML)'' tokens and sign them with his own self-created key.
#'''Attacker knows endpoint of web service.''' otherwise, he is not able to reach the web service.
#'''Attacker knows that the web service processes the security header and the ''"signature"'' element.''' If the web service does not '''"expect"''' an signed part, it just discards the signature and the attack does not work.




=Graphical representation of attack=
=Graphical representation of attack=
 
The ''SAML'' token is signed with an untrusted key. If the key stored in the token is used for the verification without validating the trust relationship to it, ''CF'' is applicable.
[[File:Signature_Exclusion_Attack.svg]]
 


=Attack example=
=Attack example=
The attacker creates authentication tokens containing statements about other users ''t = (..., IAlice/IBob/IAdmin,...)''. He then sends the token to an ''Software-as-a-Service Cloud Provider (SaaS-CP)'' (Starget) and is logged in with the corresponding identity. Finally, the attacker gains access to arbitrary accounts and their resources. The attack is targeted at the ''Single Sign-On (SSO)'' Verificator, which should require that the authentication token is signed and verify the applied signature. By this means, the integrity of the authentication token is guaranteed.
The attacker creates a token ''t = (I, N, D)'' (''I - Identity, N - Freshness, D - Destination''). Then, he creates a secret key ''evilKey'' and a corresponding public key. The secret key is used to compute the digital signature ''"sigma" = SIGevilKey(t)''. The attacker then uses his key pair to create a certificate ''evilCert'' containing the corresponding public key to verify ''"sigma"''. ''SAML'' uses the XML Signature standard that allows to store ''evilCert'' directly within the XML Signature. If the target ''SaaS-CP'' uses ''evilCert'' to verify the signature ''"sigma"'' (without prior check of the trust relationship for the corresponding key), the token will be accepted as valid.




=Attack mitigation / countermeasures=
=Attack mitigation / countermeasures=
SAML messages without signature must not be accepted.
This attack can be mitigated by manually deploying the trusted certificates to the corresponding ''SaaS-CP'' and not using any certificates provided with the token.




=Attack categorisation=
=Attack categorisation=
==Categorisation by violated security objective==
==Categorisation by violated security objective==
The attack allows an attacker to generate assertions for arbitrary identities and gain access to resources linked to this identity. Hence, it violates the security objective of access control.
The attacker gains access to arbitrary accounts, since he can generate and sign valid tokens containing the identities of other users, for example, 
''t =(Iadmin=Ibob,N,D)'' with ''"sigma" =SIGevilKey(t)''. Hence, it violates the security objective of '''access control'''.
[[Category:Attack_Categorisation_By_Violated_Security_Objective_Access_Control]]
[[Category:Attack_Categorisation_By_Violated_Security_Objective_Access_Control]]
[[Category:Attack_Categorisation_By_Violated_Security_Objective]]
[[Category:Attack_Categorisation_By_Violated_Security_Objective]]
Line 54: Line 53:
*[[:Category:Attack_Categorisation_By_Attack_Spreading]]
*[[:Category:Attack_Categorisation_By_Attack_Spreading]]
*[[:Category:Attack_Categorisation_By_Attack_Spreading:Conceptual_Flaws]]
*[[:Category:Attack_Categorisation_By_Attack_Spreading:Conceptual_Flaws]]




=References=
=References=
C. Mainka, V. Mladenov, F. Feldmann, J. Krautwald, J. Schwenk (2014): Your Software at my Service: Security Analysis of SaaS Single Sign-On Solutions in the Cloud. In The ACM Cloud Computing Security Workshop (CCSW).
C. Mainka, V. Mladenov, F. Feldmann, J. Krautwald, J. Schwenk
(2014): Your Software at my Service: Security Analysis of SaaS Single
Sign-On Solutions in the Cloud. In The ACM Cloud Computing Security
Workshop (CCSW).

Revision as of 17:45, 22 November 2015

Attack description

The cryptographic verification of the digital signature guarantees the integrity of the token. Additionally, it is essential to verify the token’s authenticity, too. In other words, the Software-as-a-Service Cloud Provider (SaaS-CP) should check whether the token was signed by a trusted Identity Provider (IdP). The Certificate Faking (CF) attack utilizes possible flaws in the selection logic of the key used for the verification of tokens, by providing an attacker generated token signed by an attacker generated key.

The attack targets the Single Sign-On (SSO) Verificator, which should verify that the authentication token is signed by a trusted third party instead of accepting any key provided with the token (although the XML Signature standard allows to include certificates, it is essential to verify whether it is a trusted certificate).


Attack subtypes

There are no attack subtypes for this attack.


Prerequisites for attack

In order to run the attack, the attacker must be able to create Security Assertion Markup Language (SAML) tokens and sign them with his own self-created key.


Graphical representation of attack

The SAML token is signed with an untrusted key. If the key stored in the token is used for the verification without validating the trust relationship to it, CF is applicable.

Attack example

The attacker creates a token t = (I, N, D) (I - Identity, N - Freshness, D - Destination). Then, he creates a secret key evilKey and a corresponding public key. The secret key is used to compute the digital signature "sigma" = SIGevilKey(t). The attacker then uses his key pair to create a certificate evilCert containing the corresponding public key to verify "sigma". SAML uses the XML Signature standard that allows to store evilCert directly within the XML Signature. If the target SaaS-CP uses evilCert to verify the signature "sigma" (without prior check of the trust relationship for the corresponding key), the token will be accepted as valid.


Attack mitigation / countermeasures

This attack can be mitigated by manually deploying the trusted certificates to the corresponding SaaS-CP and not using any certificates provided with the token.


Attack categorisation

Categorisation by violated security objective

The attacker gains access to arbitrary accounts, since he can generate and sign valid tokens containing the identities of other users, for example, t =(Iadmin=Ibob,N,D) with "sigma" =SIGevilKey(t). Hence, it violates the security objective of access control.

Categorisation by number of involved parties

Categorisation by attacked component in web service architecture

Categorisation by attack spreading


References

C. Mainka, V. Mladenov, F. Feldmann, J. Krautwald, J. Schwenk (2014): Your Software at my Service: Security Analysis of SaaS Single Sign-On Solutions in the Cloud. In The ACM Cloud Computing Security Workshop (CCSW).