Using RSASSA-PSS with IdPv4

Simeon Maxein simeon.maxein at chamaeleon.de
Tue Jan 31 12:44:56 UTC 2023


The German cybersecurity agency (BSI) demands the use of either ECDSA or 
RSASSA-PSS for signing SAML messages in federal applications. We have 
been successfully using ECDSA for a while now, but now we want to 
connect an SP to our federation which can only offer us RSASSA-PSS 
(specifically, http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1 or 
http://www.w3.org/2007/05/xmldsig-more#sha512-rsa-MGF1).

We would like to accommodate them, but Shibboleth IdP v4 does not seem 
to support RSASSA-PSS out of the box. Validating AuthnRequest messages 
signed with this algorithm actually appears to work fine, but the IdP 
will not use this algorithm for signing its own outbound messages even 
when it is requested through an alg:SigningMethod-element in the SPs 
metadata.

I looked around in the IdPs implementation and found that this is due to 
a check in the global AlgorithmRegistry, where sha256-rsa-MGF1 is not 
present by default. Since this registry is populated through a 
ServiceLoader looking for AlgorithmDescriptor service providers, I added 
my own AlgorithmDescriptor implementation derived from 
SignatureAlgorithm into the classpath, as well as an appropriate 
META-INF/services/org.opensaml.xmlsec.algorithm.AlgorithmDescriptor file.

This has resolved the issue - the IdP now creates Response messages 
signed with the desired algorithm. Also, I have seen that SwedenConnect 
follows the same strategy for extending OpenSAMLs support to include 
this family of algorithms [2].

However, I'm a bit concerned whether this is safe in Shibboleth IdP 
(apart from not being officially tested) - in particular because 
AlgorithmRegistry keeps a map of signature algorithms by key type and 
digest, and sha256-rsa-MGF1 clashes with rsa-sha256 in that regard, and 
which algorithm ends up in this map depends on the order in which the 
provider-configuration files are discovered (which is at best 
complicated and at worst unspecified).

So to reduce my chance of making a blunder, I'd appreciate feedback on 
whether this is a sensible approach and e.g. which other potential 
problems I should look for when testing. Also, I couldn't find 
information about plans for official / out of the box support for 
RSASSA-PSS - is there just not enough interest in this yet?

[1] 
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.pdf?__blob=publicationFile&v=4

[2] https://github.com/swedenconnect/opensaml-security-ext/pull/9

-- 
Simeon Maxein
Software Developer, Dipl. Informatiker

Chamaeleon Aktiengesellschaft
für innovative Netzlösungen
Robert-Bosch-Straße 12
56410 Montabaur

Handelsregister: HRB 6685
Amtsgericht Montabaur
UST-ID: DE189988337

T: +49 (2602) 101 69-316
E: simeon.maxein at chamaeleon.de
I: https://www.chamaeleon.de/

Vorstand: Stefan Kux, Olaf Pohling
Aufsichtsratsvorsitzender: Reimer Steenbock

Pflichtinformationen gemäß Artikel 13 DSGVO
Im Falle des Erstkontakts sind wir gemäß Art. 12, 13 DSGVO verpflichtet, Ihnen folgende datenschutzrechtliche Pflichtinformationen zur Verfügung zu stellen: Wenn Sie uns per E-Mail kontaktieren, verarbeiten wir Ihre personenbezogenen Daten nur, soweit an der Verarbeitung ein berechtigtes Interesse besteht (Art. 6 Abs. 1 lit. f DSGVO), Sie in die Datenverarbeitung eingewilligt haben (Art. 6 Abs. 1 lit. a DSGVO), die Verarbeitung für die Anbahnung, Begründung, inhaltliche Ausgestaltung oder Änderung eines Rechtsverhältnisses zwischen Ihnen und uns erforderlich sind (Art. 6 Abs. 1 lit. b DSGVO) oder eine sonstige Rechtsnorm die Verarbeitung gestattet. Ihre personenbezogenen Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere steuer- und handelsrechtliche Aufbewahrungsfristen – bleiben unberührt. Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Ihnen steht außerdem ein Recht auf Widerspruch, auf Datenübertragbarkeit und ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Ferner können Sie die Berichtigung, die Löschung und unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten verlangen. Details entnehmen Sie unserer Datenschutzerklärung (https://chamaeleon.de/datenschutzerklaerung). Unseren Datenschutzbeauftragten erreichen Sie unter datenschutzbeauftragter at chamaeleon.de.



More information about the users mailing list