[security-dev 00879]: Re: CR 6847459 Created, P3 java/classes_secu Allow trust anchor self-issued intermediate version 1 and version 2 certificate
Xuelei Fan
Xuelei.Fan at Sun.COM
Wed Jun 3 08:47:12 UTC 2009
Weijun Wang wrote:
> Maybe you can be even more strict: If the trust anchor (cert[0]) is
> already v3, cert[1] must also be v3. Is this reasonable?
>
>
Currently, the checker know nothing about the trust anchor. If we
support above checking, we need to update the checker and let it know
the trust anchor's certificate, it is a little bit complex. Trust anchor
is not in the certification path, cert[0] is the cert directly issued by
the trust anchor. So, maybe, it is reasonable, I don't think it worthy
of too many changes.
Thanks,
Andrew
> Max
>
> Xuelei Fan wrote:
>
>> Weijun Wang wrote:
>>
>>> Xuelei Fan wrote:
>>>
>>>
>>>> Weijun Wang wrote:
>>>>
>>>>
>>>>> + // We choose to reject all version 1 and version 2 intermediate
>>>>> + // certificates except that it is self issued by the trust
>>>>> + // anchor in order to support key rollover or changes in
>>>>> + // certificate policies.
>>>>> + int pathLenConstraint = -1;
>>>>> + if (currCert.getVersion() < 3) { // version 1 or version 2
>>>>> + if (i == 1) { // issued by a trust anchor
>>>>>
>>>>> So, self-issued cert can be only issued by trust anchor, but not an
>>>>> intermediate CA?
>>>>>
>>>>>
>>>> No, self-issued cert can be issued by any entity, but I choose to reject
>>>> those self-issued version 1 and version 2 certificates here, because I
>>>> have no way to understand whether it is a CA or not.
>>>>
>>>>
>>> One question: what's the version of the trust anchor in the failed test?
>>> Is it v1?
>>>
>>>
>>>
>> It is V1, and issue a self-issued V1 certificate for renew the private
>> key, so there is a intermediate V1 CA cert.
>>
>>> If so, I think the reason the test fails is because it's written in the
>>> v1 age. So my suggestion is that if the trust anchor is v1, then we
>>> wouldn't expect the other certs to obey any new rules. Otherwise, if the
>>> trust anchor is already v3, the validation should be conformed to the
>>> latest RFC.
>>>
>>>
>> RFC5280 allows V1/V2 certificates, and specified how to handle version 1
>> and version 2 intermediate CA cert. We can just reject them simply as
>> the spec required. I just think we need to support the special case: key
>> rollover.
>>
>>> In practical cases, is there a CA whose self-signed cert is v3, but it
>>> issues a self-issued cert of v1?
>>>
>>>
>>>
>> Many, many Verisign root certs are V1, and the intermediate cert are V3.
>>
>> Thanks,
>> Andrew
>>
>>> Thanks
>>> Max
>>>
>>>
>>>
More information about the security-dev
mailing list