Verification of OCSP Responses signed with RSASSA-PSS fails with Java 11 LTS

Sean Mullan sean.mullan at oracle.com
Wed Sep 29 19:43:43 UTC 2021


Thank you for reporting this issue. As far as I can tell, it looks like 
the JDK OCSP implementation has not yet been enhanced to support 
RSASSA-PSS signatures.

We will keep an eye out for the bug report you filed but I think it is 
still making its way through our system as I have not seen it yet.

--Sean

On 9/28/21 11:17 AM, can comert wrote:
> Hello everyone,
> 
> I am trying to verify Certificate Revocation Status by using JDK and the 
> preferred way is the OCSP request. I came across certificates provided 
> by a certain Certificate Authority (Procilion) which I can not verify 
> the Revocation Status by using the JDK (I tried with the latest 11 LTS 
> and 16). Openssl on the other hand can verify the OCSP responses.
> 
> Here is the call for the openssl library:
> openssl ocsp -CAfile ROOT.cer -issuer INTERMEDIATE.cer -cert 
> APPLICATION.cer -text -url http://ocsp.spi-cloud.com/status/ 
> <http://ocsp.spi-cloud.com/status/>
> 
> which gives results such as:
> APPLICATION.cer: good
>   This Update: Sep 21 15:31:32 2021 GMT
>   Next Update: Sep 21 16:31:32 2021 GMT
> Response verify OK
> 
> With the Wireshark I can also read the OCSP Request and Response and 
> Response contains status SUCCESSFUL.
> 
> Java runtime throws an exception with message "Parameters required for 
> RSASSA-PSS signatures" during trying to verify the signature of the OCSP 
> Response.
> 
> CA is using a separate certificate with Subject "OCSP Signer" to sign 
> the OCSP Response. This certificate is delivered in the OCSP response 
> and the signer certificate is signed by the same root as the issuer 
> certificate of the certificate under test. Java seems to accept the 
> signer certificate but fails to verify the signature.
> Here is the debug output snaps from the Java Program I wrote to test the 
> revocation check and executed with flag 
> -Djava.security.auth.debug=certpath,ocsp:
> 
> start program
> ...
> certpath: KeySizeConstraints.permits(): RSA
> certpath: Responder's certificate includes the extension 
> id-pkix-ocsp-nocheck.
> certpath: OCSP response is signed by an Authorized Responder
> ...
> certpath: RevocationChecker.check() java.security.SignatureException: 
> Parameters required for RSASSA-PSS signatures
> certpath: RevocationChecker.check() preparing to failover
> ...CRL check also fails due to some other reasons.....
> Parameters required for RSASSA-PSS signatures
> end program
> 
> I have also created a Bug Report for the Open JDK with internal review 
> id:9071579 since I could not find any related issues on the Bug database.
> 
> Root certificate is: procilonGROUPCustomerRootCA02.cer
> Intermediate certificate is: procilonGROUPCustomerCAEDIFACT02.cer
> Both available under https://pki.spi-cloud.com/issuer 
> <https://pki.spi-cloud.com/issuer> (packed as p7b)
> 
> I can provide the example certificates and the Java program which is 
> basically calling CertPathValidator.validate method to validate the 
> revocation status if you need to reproduce the issue.
> 
> Kind Regards,
> Can Cömert
> 



More information about the security-dev mailing list