[9] RFR: 8076117: EndEntityChecker should not process custom extensions after PKIX validation

Jason Uh jason.uh at oracle.com
Mon Apr 13 23:52:46 UTC 2015


Hi Thomas,

I am not actually turning off the check for unknown critical extensions. 
When validating with TYPE_PKIX, CertPathValidator will already have 
verified all extensions (and an exception would already have been thrown 
for any violations). This fix is merely to take out what would be a 
redundant check in EndEntityChecker that would result in wrong behavior.

With that said, as Sean pointed out in his review, it would make more 
sense to disable the checks when validating with a TYPE_PKIX validator 
rather than enabling for TYPE_SIMPLE, so I've made that change in my 
latest revision. I've sent that out in a separate email.

Also, all of the APIs I've touched in this fix are internal APIs and are 
not to be used externally, so there is not a security concern in the way 
you've suggested.

Thanks, and I appreciate the feedback.

Jason

On 04/11/2015 01:43 PM, Thomas Lußnig wrote:
> Hi,
>
> even if i am new in this list i looked at the solution and have an question.
> Why there is an switch to turn off check for unknown critical extensions ?
>  From my point of view as an developer i would say an more secure solution
> would be instead of an boolean switch, make an Set<String> checkedOids as
> new parameter, so it is possible to tell what is already been checked.
> That mean if the "non SimpleValidator" checks only part of the critical
> extensions
> the EndEntityChecker  would still throw an Exception.
>
> Gruß Thomas
>
> On 10.04.2015 21:39, Jason Uh wrote:
>> Please review this fix, which prevents redundant extension checking in
>> EndEntityChecker.
>>
>> When checking extensions in an end entity certificate, if
>> sun.security.validator.EndEntityChecker comes across any extensions
>> that are critical and unknown, it throws an exception, even if those
>> extensions had already been checked by custom PKIXCertPathCheckers
>> (specified in the PKIXParameters) earlier in the validation by
>> PKIXValidator. This checking is not necessary when path validation is
>> performed by a PKIXValidator.
>>
>> However, if the validation is performed by a SimpleValidator,
>> EndEntityChecker should continue to check extensions.
>>
>> webrev: http://cr.openjdk.java.net/~juh/8076117/00/
>> bug: https://bugs.openjdk.java.net/browse/JDK-8076117
>>
>> Thanks,
>> Jason
>



More information about the security-dev mailing list