[security-dev 00784]: Re: CRL Distribution Points and Issuing DistributionPoint Extension
Xuelei Fan
Xuelei.Fan at Sun.COM
Wed Apr 22 01:52:25 UTC 2009
Sean Mullan wrote:
> Xuelei Fan wrote:
>
>> In line 318, if "idpExt == null" is true, "false" will return. I
>> don't find any spec support such logic, it might be a bug here. I
>> think the codes should looks like:
>> 318 if (idpExt != null &&
>> 319 ((Boolean) idpExt.get
>> 320
>> (IssuingDistributionPointExtension.INDIRECT_CRL)).equals
>> 321 (Boolean.FALSE)) {
>> 322 return false;
>>
>> Any comments?
>
> RFC 5280 (Section 6.3.3 (b) (1)) says:
>
> If the DP includes cRLIssuer, then verify that the issuer
> field in the complete CRL matches cRLIssuer in the DP and
> that the complete CRL contains an issuing distribution
> point extension with the indirectCRL boolean asserted.
> Otherwise, verify that the CRL issuer matches the
> certificate issuer.
>
> I think the original code is correct. In this case, the DP includes
> cRLIssuer, but the complete CRL doesn't contain an issuing
> distribution extension, thus it should fail, right?
>
Yes, the spec do require the complete CRL *contains" an issuing DP, I
agree that the original code is correct. That means that if the DP
includes cRLIssuer, the conforming implementation must support issuing
distribution point and every CRL must contains an issuing distribution
point. Which seems conflict with the description of issuing distribution
point:
The issuing distribution point is a critical CRL extension that
identifies the CRL distribution point and scope for a particular CRL,
and it indicates whether the CRL covers revocation for end entity
certificates only, CA certificates only, attribute certificates only,
or a limited set of reason codes. Although the extension is
critical, conforming implementations are not required to support this
extension. However, implementations that do not support
this <<<
extension MUST either treat the status of any certificate not
listed <<<
on this CRL as unknown or locate another CRL that does not
contain <<<
any unrecognized critical extensions.
So could I understand the section 6.3.3 above as: If the DP includes
cRLIssuer, then verify that the issuer field in the complete CRL matches
cRLIssuer in the DP and if the complete CRL contains an issuing
distribution point extension, it should be with the indirectCRL boolean
asserted? Is there any potential security issue?
Thanks,
Xuelei
> --Sean
>
More information about the security-dev
mailing list