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