Subject: Re: registration authorities

From: Peter Sylvester <[email-masked]>
Date: Thu, 16 Dec 2004 14:14:34 +0100 (MET)

> No, just the CA name.
> Steve

Who stop you to do the same thing?

---

From: "Gonzalez Cadenas,Carlos Netfocus" <[email-masked]>
Date: Fri, 31 Dec 2004 00:50:45 +0100

Hi all,

Although clarifications have been provided in 3739 regarding the profile is not restricted to QCs, it will be very difficult to explain to the end entities that a cert containing so-called "QC" extensions is not issued as a QC.

In my opinion, as the QC extensions can include specifical properties of the certs regarding the issuance as a QC, but can contain another ones that have no relationship with the QCs (i.e. RA, retention period, usable with an SSCD, ...), maybe the name for the extension can lead to misinterpretations and confusions.

Thank you very much for your attention,

Kind regards and happy new year,

Carlos

>>> Stephen Kent <[email-masked]> 30/12/04 20:36 >>>

At 6:45 PM +0100 12/30/04, Peter Sylvester wrote:
>  > >Doesn't 3739 say:
>>  >
>>  >    The profile is however not limited to Qualified
>>  >    Certificates and further profiling may facilitate specific local
>>  >    needs.
>>
>>  yes, but what i said was that syntactically, inclusion of the
>>  extension defined for QC's will generally be interpreted as
>>  indicating a QC. In the U.S. we have a saying:
>>     "If it looks like a duck and quacks like a duck, then it's
>>probably a duck."
>>
>No, it is a video game. :-)

yes, it probably is!

>
>
>       *  Some editorial clarifications have been made to introductory
>          sections to clarify that this profile is generally applicable
>          to a broad type of certificates, even if its prime purpose is
>          to facilitate issuance of Qualified Certificates.
>
>
>>  I think this saying will apply here, whether the cert was issued
>>  under QC guidelines or not.
>
>I tend to interprete the phrases as a warning to indicate exactly the
>contrary.

I agree that the text says one can use the extension more broadly,
and I agree that, therefore, IF one feels a need to name an RA in a
cert, this is the standard way we have defined to do that, but I
would still bet that folks who see an extension named qc-Statement
will infer that its a qualified cert ...

Steve

Advertencia legal:
Este mensaje y, en su caso, los ficheros anexos son confidenciales,
especialmente en lo que respecta a los datos personales, y se dirigen
exclusivamente al destinatario referenciado. Si usted no lo es y lo ha
recibido por error o tiene conocimiento del mismo por cualquier motivo, le
rogamos que nos lo comunique por este medio y proceda a destruirlo o borrarlo,
y que en todo caso se abstenga de utilizar, reproducir, alterar, archivar o
comunicar a terceros el presente mensaje y ficheros anexos, todo ello bajo pena
de incurrir en responsabilidades legales. El emisor no garantiza la integridad,
rapidez o seguridad del presente correo, ni se responsabiliza de posibles
perjuicios derivados de la captura, incorporaciones de virus o cualesquiera
otras manipulaciones efectuadas por terceros.

Advertiment legal:
Aquest missatge i, si escau, els fitxers annexos tenen caire confidencial,
especialment pel que fa a les dades personals, i s'adrecen exclusivament al
destinatari referenciat. Si no es tracta d'aquest i l'ha rebut per error o se li
ha fet arribar per qualsevol motiu, li preguem que ens ho comuniqui per aquesta
mateixa via i el destrueixi o l'esborri, i que en tot cas s'abstingui d'utilitzar,
reproduir, alterar, arxivar o comunicar a tercers aquest missatge i fitxers
annexos, tot sota pena d'entrar en responsabilitats legals. L'emissor no garanteix
la integritat, la rapidesa o la seguretat d'aquest correu, ni es responsabilitza
de possibles perjudicis derivats de la captura, incorporacions de virus o
qualssevol altres manipulacions que facin tercers.

Disclaimer:
This message and any attached files transmitted with it, is confidential,
especially as regards personal data. It is intended solely for the use of the
individual or entity to whom it is addressed. If you are not the intended recipient
and have received this information in error or have accessed it for any reason,
please notify us of this fact by email reply and then destroy or delete the message,
refraining from any reproduction, use, alteration, filing or communication to third
parties of this message and attached files on penalty of incurring legal
responsibilities. The sender does not guarantee the integrity, the accuracy, the
swift delivery or the security of this email transmission, and assumes no
responsibility for any possible damage incurred through data capture, virus
incorporation or any manipulation carried out by third parties.

Date: Fri, 31 Dec 2004 00:50:45 +0100
From: "Gonzalez Cadenas,Carlos Netfocus" <[email-masked]>
To: <[email-masked]>, <[email-masked]>, <Sylvester@[edelweb.fr]>, <chadwick@[salford.ac.uk]>
Subject: Re: registration authorities
Sender: [email-masked]

Hi all,

Although clarifications have been provided in 3739 regarding the profile is not restricted to QCs, it will be very difficult to explain to the end entities that a cert containing so-called "QC" extensions is not issued as a QC.

In my opinion, as the QC extensions can include specifical properties of the certs regarding the issuance as a QC, but can contain another ones that have no relationship with the QCs (i.e. RA, retention period, usable with an SSCD, ...), maybe the name for the extension can lead to misinterpretations and confusions.

Thank you very much for your attention,

Kind regards and happy new year,

Carlos

>>> Stephen Kent <[email-masked]> 30/12/04 20:36 >>>

At 6:45 PM +0100 12/30/04, Peter Sylvester wrote:
>  > >Doesn't 3739 say:
>>  >
>>  >    The profile is however not limited to Qualified
>>  >    Certificates and further profiling may facilitate specific local
>>  >    needs.
>>
>>  yes, but what i said was that syntactically, inclusion of the
>>  extension defined for QC's will generally be interpreted as
>>  indicating a QC. In the U.S. we have a saying:
>>     "If it looks like a duck and quacks like a duck, then it's
>>probably a duck."
>>
>No, it is a video game. :-)

yes, it probably is!

>
>
>       *  Some editorial clarifications have been made to introductory
>          sections to clarify that this profile is generally applicable
>          to a broad type of certificates, even if its prime purpose is
>          to facilitate issuance of Qualified Certificates.
>
>
>>  I think this saying will apply here, whether the cert was issued
>>  under QC guidelines or not.
>
>I tend to interprete the phrases as a warning to indicate exactly the
>contrary.

I agree that the text says one can use the extension more broadly,
and I agree that, therefore, IF one feels a need to name an RA in a
cert, this is the standard way we have defined to do that, but I
would still bet that folks who see an extension named qc-Statement
will infer that its a qualified cert ...

Steve

Advertencia legal:
Este mensaje y, en su caso, los ficheros anexos son confidenciales,
especialmente en lo que respecta a los datos personales, y se dirigen
exclusivamente al destinatario referenciado. Si usted no lo es y lo ha
recibido por error o tiene conocimiento del mismo por cualquier motivo, le
rogamos que nos lo comunique por este medio y proceda a destruirlo o borrarlo,
y que en todo caso se abstenga de utilizar, reproducir, alterar, archivar o
comunicar a terceros el presente mensaje y ficheros anexos, todo ello bajo pena
de incurrir en responsabilidades legales. El emisor no garantiza la integridad,
rapidez o seguridad del presente correo, ni se responsabiliza de posibles
perjuicios derivados de la captura, incorporaciones de virus o cualesquiera
otras manipulaciones efectuadas por terceros.

Advertiment legal:
Aquest missatge i, si escau, els fitxers annexos tenen caire confidencial,
especialment pel que fa a les dades personals, i s'adrecen exclusivament al
destinatari referenciat. Si no es tracta d'aquest i l'ha rebut per error o se li
ha fet arribar per qualsevol motiu, li preguem que ens ho comuniqui per aquesta
mateixa via i el destrueixi o l'esborri, i que en tot cas s'abstingui d'utilitzar,
reproduir, alterar, arxivar o comunicar a tercers aquest missatge i fitxers
annexos, tot sota pena d'entrar en responsabilitats legals. L'emissor no garanteix
la integritat, la rapidesa o la seguretat d'aquest correu, ni es responsabilitza
de possibles perjudicis derivats de la captura, incorporacions de virus o
qualssevol altres manipulacions que facin tercers.

Disclaimer:
This message and any attached files transmitted with it, is confidential,
especially as regards personal data. It is intended solely for the use of the
individual or entity to whom it is addressed. If you are not the intended recipient
and have received this information in error or have accessed it for any reason,
please notify us of this fact by email reply and then destroy or delete the message,
refraining from any reproduction, use, alteration, filing or communication to third
parties of this message and attached files on penalty of incurring legal
responsibilities. The sender does not guarantee the integrity, the accuracy, the
swift delivery or the security of this email transmission, and assumes no
responsibility for any possible damage incurred through data capture, virus
incorporation or any manipulation carried out by third parties.

From: "Hannes Tschofenig" <[email-masked]>
To: [email-masked]
Subject: cms implementation
Date: Fri, 31 Dec 2004 00:48:57 +0100
Sender: [email-masked]

hi all,

can someone point me to an open source cms implementation?

ciao
hannes

Date: Thu, 30 Dec 2004 13:23:38 -0500
To: Peter Sylvester <[email-masked]>
From: Stephen Kent <[email-masked]>
Subject: Re: registration authorities
Cc: [email-masked], [email-masked], [email-masked], [email-masked]
Sender: [email-masked]

At 6:45 PM +0100 12/30/04, Peter Sylvester wrote:
>  > >Doesn't 3739 say:
>>  >
>>  >    The profile is however not limited to Qualified
>>  >    Certificates and further profiling may facilitate specific local
>>  >    needs.
>>
>>  yes, but what i said was that syntactically, inclusion of the
>>  extension defined for QC's will generally be interpreted as
>>  indicating a QC. In the U.S. we have a saying:
>>     "If it looks like a duck and quacks like a duck, then it's 
>>probably a duck."
>>
>No, it is a video game. :-)

yes, it probably is!

>
>
>       *  Some editorial clarifications have been made to introductory
>          sections to clarify that this profile is generally applicable
>          to a broad type of certificates, even if its prime purpose is
>          to facilitate issuance of Qualified Certificates.
>
>
>>  I think this saying will apply here, whether the cert was issued
>>  under QC guidelines or not.
>
>I tend to interprete the phrases as a warning to indicate exactly the
>contrary.

I agree that the text says one can use the extension more broadly, 
and I agree that, therefore, IF one feels a need to name an RA in a 
cert, this is the standard way we have defined to do that, but I 
would still bet that folks who see an extension named qc-Statement 
will infer that its a qualified cert ...

Steve

Date: Thu, 30 Dec 2004 18:45:48 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: registration authorities
Cc: [email-masked], [email-masked], [email-masked]
Sender: [email-masked]

> >Doesn't 3739 say:
> >
> >    The profile is however not limited to Qualified
> >    Certificates and further profiling may facilitate specific local
> >    needs.
> 
> yes, but what i said was that syntactically, inclusion of the 
> extension defined for QC's will generally be interpreted as 
> indicating a QC. In the U.S. we have a saying:
>    "If it looks like a duck and quacks like a duck, then it's probably a duck."
> 
No, it is a video game. :-) 

      *  Some editorial clarifications have been made to introductory
         sections to clarify that this profile is generally applicable
         to a broad type of certificates, even if its prime purpose is
         to facilitate issuance of Qualified Certificates.

> I think this saying will apply here, whether the cert was issued 
> under QC guidelines or not.

I tend to interprete the phrases as a warning to indicate exactly the
contrary. 

Date: Thu, 30 Dec 2004 12:13:03 -0500
To: Peter Sylvester <[email-masked]>
From: Stephen Kent <[email-masked]>
Subject: Re: registration authorities
Cc: [email-masked], [email-masked], [email-masked]
Sender: [email-masked]

At 6:00 PM +0100 12/30/04, Peter Sylvester wrote:
>Doesn't 3739 say:
>
>    The profile is however not limited to Qualified
>    Certificates and further profiling may facilitate specific local
>    needs.

yes, but what i said was that syntactically, inclusion of the 
extension defined for QC's will generally be interpreted as 
indicating a QC. In the U.S. we have a saying:
   "If it looks like a duck and quacks like a duck, then it's probably a duck."

I think this saying will apply here, whether the cert was issued 
under QC guidelines or not.

Steve

Date: Thu, 30 Dec 2004 18:00:47 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: registration authorities
Cc: [email-masked], [email-masked]
Sender: [email-masked]

Doesn't 3739 say:

   The profile is however not limited to Qualified
   Certificates and further profiling may facilitate specific local
   needs.

Date: Thu, 30 Dec 2004 09:53:57 -0500
To: David Chadwick <[email-masked]>
From: Stephen Kent <[email-masked]>
Subject: Re: registration authorities
Cc: [email-masked], [email-masked]
Sender: [email-masked]

At 2:24 PM +0000 12/30/04, David Chadwick wrote:
>Steve
>
>a CA is a Certification Authority, and not necessarily a 
>Registration Authority. Conceptually and operationally they are 
>different and therefore there should always be an allowance for this.
>
>regards
>
>David
>

David,

I certainly agree with the distinction, but other than in the context 
of qualified certs, X.509 does not make explicit provision for 
inclusion of RA info, probably since it is not used in the cert 
validation process.

Peter Sylvester noted shortly after my message, a CA is certainly 
free to out an RA name in a cert, bnut I assumed he meant that one 
could include the qc extension and put the RA name in it. In that 
case the cert looks like a QC cert, syntactically, hence my comment.

Steve

Date: Thu, 30 Dec 2004 14:24:20 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: Stephen Kent <[email-masked]>
CC: [email-masked], [email-masked]
Subject: Re: registration authorities
Sender: [email-masked]

Steve

a CA is a Certification Authority, and not necessarily a Registration 
Authority. Conceptually and operationally they are different and 
therefore there should always be an allowance for this.

regards

David

Stephen Kent wrote:
> At 11:45 AM +0100 12/16/04, Carlos González-Cadenas wrote:
> 
>> Hi all,
> 
>>  
> 
>> In RFC 3739 (Qualified Certificates Profile), we do have a place to 
>> state the name of the registration authorities that registered the 
>> names and attributes present in the certificate.
> 
>>  
> 
>> Is there any standard way to do it in non-qualified certificates?
> 
>>  
> 
>> Thanks in advance
> 
>>
>> Carlos
> 
>>  
> 
> *
> *
> *No, just the CA name.*
> *
> *
> *Steve*

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 23 Dec 2004 14:09:39 -0500
To: Tom Gindin <[email-masked]>
From: Stephen Kent <[email-masked]>
Subject: Re: RFC 3280 and multiple Organization (O) fields in DN
Cc: [email-masked], Jostein Tveit <[email-masked]>
Sender: [email-masked]

At 11:46 AM -0500 12/23/04, Tom Gindin wrote:
>         IMHO, this rule originated with X.400.  The name form containing
>C, O, OU, and CN is largely derived from the "Mnemonic O/R address" of
>CCITT (now ITU) X.400, although in that standard there was also a
>mandatory administrative domain name.  In that standard, C, O, and CN had
>to be single-valued, while OU could have up to four values (see the
>MTSUpperBounds ASN.1 module).
>         I don't see anything in the directory standards proper (especially
>X.520 and X.521, where it would be expected) which is as clear as X.400 in
>forbidding multiple values of C and O while permitting them for OU.
>
>                 Tom Gindin
>

I think the semantics of the attributes support the notion of one 
instance for C and O, but multiple instances of OU.

Steve

To: Stephen Kent <[email-masked]>
Cc: [email-masked], Jostein Tveit <[email-masked]>
Subject: Re: RFC 3280 and multiple Organization (O) fields in DN
From: Tom Gindin <[email-masked]>
Date: Thu, 23 Dec 2004 11:46:41 -0500
Sender: [email-masked]

        IMHO, this rule originated with X.400.  The name form containing 
C, O, OU, and CN is largely derived from the "Mnemonic O/R address" of 
CCITT (now ITU) X.400, although in that standard there was also a 
mandatory administrative domain name.  In that standard, C, O, and CN had 
to be single-valued, while OU could have up to four values (see the 
MTSUpperBounds ASN.1 module).
        I don't see anything in the directory standards proper (especially 
X.520 and X.521, where it would be expected) which is as clear as X.400 in 
forbidding multiple values of C and O while permitting them for OU.

                Tom Gindin

Stephen Kent <[email-masked]>
Sent by: [email-masked]
12/22/2004 08:00 AM
 
        To:     Jostein Tveit <[email-masked]>
        cc:     [email-masked]
        Subject:        Re: RFC 3280 and multiple Organization (O) fields 
in DN

At 12:47 PM +0100 12/22/04, Jostein Tveit wrote:
>Hello pkix list!
>
>I have a question regarding RFC 3280 and support for multiple
>Organization (O) fields in the DN field in a certificate.
>
>A can not see that the standard says anything explicit about
>this.
>Can someone please guide me to where I can find some information
>about this issue, or point out the section I missed in the RFC.
>
>Basically, is multiple Organization (O) fields allowed?
>And where is it stated/not stated?
>
>Thanks in advance for all answers.
>
>Regards,
>--
>Jostein Tveit <[email-masked]>

This is an X.500/X.520 question, more than an X.509/PKIX question.

However, my answer in that one would not expect to see multiple 
organization attributes in a DN, although multiple organizational 
unit attributes are fine.  It's a matter of the semantics of DNs and 
the interpretation of attributes.  Similarly, one would not expect to 
see multiple country attributes in a DN, in the usual interpretation 
of the DIT.

Steve

From: [email-masked] (Peter Gutmann)
To: [email-masked], [email-masked], [email-masked]
Subject: Re: RFC 3280 and multiple Organization (O) fields in DN
Date: Thu, 23 Dec 2004 23:40:08 +1300
Sender: [email-masked]

Russ Housley <[email-masked]> writes:

>Early versions of the CCITT (wkich is now called ITU-T) included an
>informative state machine about name construction.

"Informative"?  I've always used that state machine as an example of the fact
that even the standards authors had no idea how a DN should be arranged.  So I
guess it is informative, but it's conveying an entirely different message than
was originally intended.

Peter.

Date: Wed, 22 Dec 2004 09:13:04 -0500
To: Jostein Tveit <[email-masked]>, [email-masked]
From: Russ Housley <[email-masked]>
Subject: Re: RFC 3280 and multiple Organization (O) fields in DN
Sender: [email-masked]

This is part of the X.500 distinguished name.  It does not prohibit any of 
the attributes from appearing more than once.  Early versions of the CCITT 
(wkich is now called ITU-T) included an informative state machine about 
name construction.  So many people took the state machine as normative that 
it was dropped from the later versions of the document to avoid confusion.

Russ

At 06:47 AM 12/22/2004, Jostein Tveit wrote:

>Hello pkix list!
>
>I have a question regarding RFC 3280 and support for multiple
>Organization (O) fields in the DN field in a certificate.
>
>A can not see that the standard says anything explicit about
>this.
>Can someone please guide me to where I can find some information
>about this issue, or point out the section I missed in the RFC.
>
>Basically, is multiple Organization (O) fields allowed?
>And where is it stated/not stated?
>
>Thanks in advance for all answers.
>
>Regards,
>--
>Jostein Tveit <[email-masked]>

Date: Wed, 22 Dec 2004 08:00:05 -0500
To: Jostein Tveit <[email-masked]>
From: Stephen Kent <[email-masked]>
Subject: Re: RFC 3280 and multiple Organization (O) fields in DN
Cc: [email-masked]
Sender: [email-masked]

At 12:47 PM +0100 12/22/04, Jostein Tveit wrote:
>Hello pkix list!
>
>I have a question regarding RFC 3280 and support for multiple
>Organization (O) fields in the DN field in a certificate.
>
>A can not see that the standard says anything explicit about
>this.
>Can someone please guide me to where I can find some information
>about this issue, or point out the section I missed in the RFC.
>
>Basically, is multiple Organization (O) fields allowed?
>And where is it stated/not stated?
>
>Thanks in advance for all answers.
>
>Regards,
>--
>Jostein Tveit <[email-masked]>

This is an X.500/X.520 question, more than an X.509/PKIX question.

However, my answer in that one would not expect to see multiple 
organization attributes in a DN, although multiple organizational 
unit attributes are fine.  It's a matter of the semantics of DNs and 
the interpretation of attributes.  Similarly, one would not expect to 
see multiple country attributes in a DN, in the usual interpretation 
of the DIT.

Steve

To: [email-masked]
Subject: RFC 3280 and multiple Organization (O) fields in DN
From: Jostein Tveit <[email-masked]>
Organization: Norwegian University of Science and Technology
Date: Wed, 22 Dec 2004 12:47:58 +0100
Sender: [email-masked]

Hello pkix list!

I have a question regarding RFC 3280 and support for multiple
Organization (O) fields in the DN field in a certificate.

A can not see that the standard says anything explicit about
this.
Can someone please guide me to where I can find some information
about this issue, or point out the section I missed in the RFC.

Basically, is multiple Organization (O) fields allowed?
And where is it stated/not stated?

Thanks in advance for all answers.

Regards,
-- 
Jostein Tveit <[email-masked]>

Date: Sat, 18 Dec 2004 20:36:50 +0100 (CET)
To: [email-masked]
CC: [email-masked], [email-masked]
Subject: Re: SSL/TLS client-auth - Not the way forward?
From: Richard Levitte - VMS Whacker <[email-masked]>
Sender: [email-masked]

In message <[email-masked]> on Sat, 18 Dec 2004 15:37:22 +0100, Michael Ströder <[email-masked]> said:

michael> 
michael> Anders Rundgren wrote:
[...]
michael> > Comments?
michael> 
michael> What exactly is your question?

I'm going to boldly assume his question means "Do you have any
comments on this practice, and what are they?".  What motives Anders
has, except taking the risk of getting his head bitten off (:-)),
that's an entirely different question.

-----
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte     | http://richard.levitte.org/ | Tunnlandsv. 52
Levitte Programming | http://www.lp.se/           | S-168 36 Bromma
T: +46-708-26 53 44 |                             | SWEDEN
     "Price, performance, quality...  choose the two you like"

From: "Anders Rundgren" <[email-masked]>
To: =?iso-8859-1?Q?Michael_Str=F6der?= <[email-masked]>
Cc: <[email-masked]>
Subject: Re: SSL/TLS client-auth - Not the way forward?
Date: Sat, 18 Dec 2004 20:05:45 +0100
Sender: [email-masked]

>What exactly is your question?

Michael,
One question was actually in the subject line.

Another question could be if this should in some way be addressed
by future standardization efforts.

I forgot a major reason for why SSL/TLS client-auth is likely to be
of limited use and that is the absence of a "WebSign" standard.
If certificate selection when authenticating and signing are different,
users get confused.  That's why all these Java-things normalize
this part by not using the native support.

That is, w.r.t. PKI practically every aspect of browser usage is
currently non-standard, including:

- certreq/keygen
- websign
- client-auth

This is a bit surprising as client-side PKI in conjunction with browsers
is at least a magnitude bigger than in conjunction with secure e-mail,
and the gap is widening.

rgds
Anders R

----- Original Message ----- 
From: "Michael Ströder" <[email-masked]>
To: "Anders Rundgren" <[email-masked]>
Cc: <[email-masked]>
Sent: Saturday, December 18, 2004 15:37
Subject: Re: SSL/TLS client-auth - Not the way forward?

Anders Rundgren wrote:
>
> ==================
> It is not using 2way SSL, if it were, there was really no need for it.
>
> fact is, 2way SSL only works in very simple scenarios, accessing only
> one host with no need to handle "logoff". In more often (larger scale)
> solutions, 2way SSL in reality works bad (because browsers will
> renegotiate SSL connections with host changes - also when changing
> subdomains within a domain). 2way SSL breaks SSO when switching
> between different subdomains within the same domain.
>
> because of the problems with 2way SSL, openlogon is designed to use
> 1way ssl, doing the "client side auth" as part of the applet.
>
> Also, 2way SSL is end-to-end between the browser and the server that
> terminates the SSL session. But in most larger setups, this tends to
> be SSL accelerators which sends on (only) the client public
> certificate to the application server. End-to-end is then only over
> the internet, where OpenLogon really is end-to-end since the SSL
> accelerators only takes care of the resource consuming keyexchange.
> Auth is handled by the logon service in the application server.
> ====================
>
> Comments?

What exactly is your question?

Ciao, Michael.

Date: Sat, 18 Dec 2004 15:37:22 +0100
From: =?ISO-8859-1?Q?Michael_Str=F6der?= <[email-masked]>
To: Anders Rundgren <[email-masked]>
Cc: [email-masked]
Subject: Re: SSL/TLS client-auth - Not the way forward?
Sender: [email-masked]

Anders Rundgren wrote:
> 
> ==================
> It is not using 2way SSL, if it were, there was really no need for it.
> 
> fact is, 2way SSL only works in very simple scenarios, accessing only
> one host with no need to handle "logoff". In more often (larger scale)
> solutions, 2way SSL in reality works bad (because browsers will
> renegotiate SSL connections with host changes - also when changing
> subdomains within a domain). 2way SSL breaks SSO when switching
> between different subdomains within the same domain.
> 
> because of the problems with 2way SSL, openlogon is designed to use
> 1way ssl, doing the "client side auth" as part of the applet.
> 
> Also, 2way SSL is end-to-end between the browser and the server that
> terminates the SSL session. But in most larger setups, this tends to
> be SSL accelerators which sends on (only) the client public
> certificate to the application server. End-to-end is then only over
> the internet, where OpenLogon really is end-to-end since the SSL
> accelerators only takes care of the resource consuming keyexchange.
> Auth is handled by the logon service in the application server.
> ====================
> 
> Comments?

What exactly is your question?

Ciao, Michael.

From: "Anders Rundgren" <[email-masked]>
To: <[email-masked]>
Subject: SSL/TLS client-auth - Not the way forward?
Date: Sat, 18 Dec 2004 11:40:30 +0100
Sender: [email-masked]

Dear List;

Quite a few large-scale PKI implementations rely on Java applets
for digital signatures.  Due to the limited integration between pure Java
and browser crypto/keystores, specific applets are used also for authentication,
rather than using the browser´s SSL/TLS client-authentication capability.  By
using a challenge-response mechanism on top of an SSL/TLS channel, secure
client authentication is achieved using a non-browser-based key.

Usually the server's public key is also a part of the response to thwart
possible man-in-the-middle attacks during the initial SSL/TLS setup.
That is, the auth server must check that the response contains its own key.

>From another mailing list I took the following lines that indicate that
there may be other reasons than Java/browser limitations to not
use SSL/TLS client-authentication.

==================
It is not using 2way SSL, if it were, there was really no need for it.

fact is, 2way SSL only works in very simple scenarios, accessing only
one host with no need to handle "logoff". In more often (larger scale)
solutions, 2way SSL in reality works bad (because browsers will
renegotiate SSL connections with host changes - also when changing
subdomains within a domain). 2way SSL breaks SSO when switching
between different subdomains within the same domain.

because of the problems with 2way SSL, openlogon is designed to use
1way ssl, doing the "client side auth" as part of the applet.

Also, 2way SSL is end-to-end between the browser and the server that
terminates the SSL session. But in most larger setups, this tends to
be SSL accelerators which sends on (only) the client public
certificate to the application server. End-to-end is then only over
the internet, where OpenLogon really is end-to-end since the SSL
accelerators only takes care of the resource consuming keyexchange.
Auth is handled by the logon service in the application server.
====================

Comments?

Anders Rundgren
PKI Architect etc.

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Thu, 16 Dec 2004 12:48:35 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Here is 23-45
Trevor

* -----Original Message-----
* From: Trevor Freeman
* Sent: Wednesday, December 15, 2004 4:02 PM
* To: 'Denis Pinkas'
* Cc: [email-masked]'
* Subject: RE: SCVP 16 comments deadline
* 
* Here is 17-22
* Trevor
* 
* * -----Original Message-----
* * From: Trevor Freeman
* * Sent: Tuesday, December 07, 2004 12:47 PM
* * To: 'Denis Pinkas'
* * Cc: [email-masked]
* * Subject: RE: SCVP 16 comments deadline
* *
* * Hi Denis,
* * Below are responses to 1-16. Others will follow later.
* * Trevor
* *
* * * -----Original Message-----
* * * From: Denis Pinkas [mailto:[email-masked]]
* * * Sent: Monday, December 06, 2004 2:25 AM
* * * To: Trevor Freeman
* * * Cc: [email-masked]
* * * Subject: Re: SCVP 16 comments deadline
* * *
* * * Trevor,
* * *
* * * > The deadline communicated at the DC meeting for making comments
on
* * SCVP
* * * > 16 was Nov 30th which has now passed. I have had only three
people
* * send
* * * > me comments to date. SCVP 17 will be closing very shortly so
this is
* * the
* * * > last reminder.
* * *
* * * Thank for the remainder. I missed the initial announcement.
* * * My comments are below.
* * *
* * *
* * * 1. Typo. There are two IPR statements related to RFC 3668 on the
first
* * * page. Delete one.
* * *
* * * " By submitting this Internet-Draft, I certify that any applicable
* * *    patent or other IPR claims of which I am aware have been
disclosed,
* * *    or will be disclosed, and any of which I become aware will be
* * *    disclosed, in accordance with RFC 3668".
* * [TF] Fixed
* * *
* * *
* * * 2. Page 11. Typos. First paragraph on top of the page.
* * * Replace "signers" by "signer's".
* * [TF] Fixed
* * *
* * *
* * * 3. Page 11. Typo. First paragraph on top of the page. Last
sentence.
* * * Replace "certificate" by "certificates".
* * [TF] Fixed
* * *
* * *
* * * 4. Page 13. Typo. Section 3.1.2 "checks"
* * * The two following lines are in fact one line:
* * *
* * * Change:
* * *
* * *      - Build a validated certification path to a trust anchor; and
* * *
* * *      - Do revocation status checks on the certification path.
* * *
* * * into:
* * *
* * *      - Build a validated certification path to a trust anchor and
* * *        do revocation status checks on the certification path.
* * *
* * [TF] Since this paragraph is listing the possible checks and
building a
* * path is a separate check to revocation checking, I think the current
* text
* * is more accurate.
* * *
* * * 5. Page 15. Typo. Section 3.1.4 validationPolicy
* * *
* * * This is the error left intentionally by the editor to know who
read
* the
* * * document. The following sentence is duplicated: " The
* validationPolicy
* * * item, defines the validation policy". Please delete one sentence.
* * [TF] Just checking <g> Fixed
* * *
* * *
* * * 6. Page 24. Typo. Section 3.1.5.9 keyUsages
* * *
* * * Change "keyUasge" into "keyUsage".
* * [TF] Fixed
* * *
* * *
* * * 7. Page 27. Typo. Section 3.1.8 valididationTime
* * * Last line of the first paragraph. Change "servers" into "server's"
* * [TF] Fixed
* * *
* * *
* * * 8. Page 32. Typo. Section 3.5 dhPublicKey
* * * Change: Diffie-Hellamn into Diffie-Hellman.
* * [TF] Fixed
* * *
* * *
* * * 9. Page 32. Typo. Section 3.5 dhPublicKey
* * * Fifth line. Change "an does" into "and does"
* * [TF] Fixed
* * *
* * *
* * * 10. Page 32. Typo. Section 3.5 dhPublicKey
* * * Delete: (see section Error! Reference source not found.)
* * *
* * *
* * * 11. Page 33. Typo. Section 4. Validation Response
* * *
* * * After the eight items. The following sentence has a grammar
problem:
* * *   "Successful responses are be made when the server has fully
* complied
* * *    with the request".
* * [TF] Deleted the "be"
* * *
* * *
* * * 12. Page 52. Typo. Section 6 Validation Policy Response
* * *
* * * The second sentence is incorrect. It is:
* * * The valPolResponse MAY not unique to any valPolRequest, ..."
* * *
* * * Change into:
* * * "The valPolResponse MAY not be unique to any valPolRequest, ..."
* * [TF] Fixed
* * *
* * *
* * * 13. The abstract does not reflect accurately the content of the
* * * document.
* * * "certificate handling" is too vague.
* * *
* * * Proposed abstract:
* * *
* * *    SCVP allows a client to delegate certificate path construction
and
* * *    certificate path validation to a server. The path construction
or
* * *    validation (i.e. making sure that none of the certificates of
the
* * *    path is revoked) is made according to a validation policy which
* * *    contains one or more trust anchors. It allows to simplify
client
* * *    implementations and to use a set of predefined validation
policies.
* * [TF] Suggested text substituted
* * *
* * *
* * * 14. Section 1.3
* * *
* * * The text on validation policy is new. There is no concept of
* "mutually
* * * agreed" validation policy between the client on the server. The
* server
* * * supports a set of validation policies which may or may not fit the
* need
* * * of the client.
* * *
* * * Change the second sentence of section 1.3 which is:
* * *
* * * " In SCVP, a validation policy can be either mutually
* * *    agreed between client and server, and subsequently referenced
in
* * *    request, or explicitly expressed in the request by passing all
of
* * *    the necessary parameters."
* * *
* * * into:
* * *
* * * " In SCVP, the validation policy to be used by the server can be
* either
* * * fully referenced in the request by the client (and thus no
additional
* * * parameter is necessary), referenced in the request by the client
with
* * * additional parameters or supported by default by the server if the
* * * client does not reference it."
* * [TF] Suggested text substituted
* * *
* * *
* * * 15. Section 1.3. The second paragraph needs to be reworded.
Currently,
* * * it is the following:
* * *
* * * " Policy definitions can be quite long and complex, and some
policies
* * *    may allow for the setting of a few parameters such as a set of
* * *    trust anchors.  The request can therefore be simplified if
these
* * *    previously agreed policy dependent parameters are referenced in
the
* * *    request by a mutually agreed OBJECT IDENTIFIER (OID) or URL
value.
* * *    The referenced value indicates either a partial or full set of
* * *    parameters. The client can therefore omit these agreed
parameters
* * *    from the request, only passing any parameters which are not
* * *    specified by the previously agreed policy.  Therefore in the
* * *    simplest form, with validation polices which define every
parameter
* * *    necessary, a SCVP request need only contain the certificate to
be
* * *    validated, the validation policy and any run-time parameters
for
* * *    the request".
* * *
* * * Proposed rewording:
* * *
* * * " Policy definitions can be quite long and complex, and some
policies
* * *    may allow for the setting of a few parameters.  The request can
* * *    therefore be very simple if OBJECT IDENTIFIERS (OIDs) are used
to
* * *    specify both the algorithm to be used and all the associated
* * *    parameters of the validation policy. The request can be more
* complex
* * *    if the validation policy fixes many of the parameters but
allows
* the
* * *    client to specify some of them. When the validation policy
defines
* * *    every parameter necessary, a SCVP request needs only to contain
the
* * *    certificate to be validated, the referenced validation policy
and
* any
* * *    run-time parameters for the request. In its simplest form, a
SCVP
* * *    request contains the certificate to be validated and any
run-time
* * *    parameters for the request. In that case the server uses a
default
* * *    validation policy".
* * [TF] Suggested text substituted
* * *
* * *
* * * 16. Section 1.3. Paragraph 3.
* * *
* * * The text is missing the fact that at least one validation policy
must
* * * be supported by the server. This is the default policy which is
used
* * * when the client omits to specify it.
* * *
* * * The current text is the following:
* * *
* * *   "SCVP server also publishes its default validation policy
settings.
* * *    The default policy can be requested for validation and the
client
* * *    can override any default value in the request if required.  The
* * *    default values are also used when processing requests which
* * *    reference a validation policy other than the default one that
does
* * *    not contain the full set of parameters necessary for validation
and
* * *    the client has also omitted the missing values in the request.
* * *
* * *    Therefore a client can also simplify the request by omitting a
* * *    parameter from a request if the default value published by the
* * *    server is acceptable".
* * *
* * * Replace it with:
* * *
* * * " A SCVP server must support a default validation policy which
will
* * *    be used if the client does not specify any in its request. A
server
* * *    publishes the references of the validation policies it
supports.
* * *    When these policies have parameters that may be overridden, the
* * *    default value for these parameters are communicated by the
server
* as
* * *    well. The client can simplify the request by omitting a
parameter
* * *    from a request if the default value published by the server for
a
* * *    given validation policy reference is acceptable. However if
there
* is
* * *    a desire to demonstrate to someone else that a specific
validation
* * *    policy with all its parameters has been used, it will need to
ask
* the
* * *    server for the inclusion of the full validation policy with all
the
* * *    parameters in the response".
* * [TF] Suggested text substituted
* * *
* * *
* * * 17. On top of page 7, the relationship between the validation
policy
* * * and the basic certification path algorithm is not explained. Then
in
* * * section 1.4 The concept of validation algorithm is introduced but
its
* * * relationship with the validation policy is not explained. This is
* * * confusing.
* * *
* * * Later on when observing the ASN.1 syntax it may be discovered that
two
* * * OIDs are being used:
* * *
* * *   - one for the validation policy (ValidationPolRef) and
* * *   - one for the validation algorithm (ValidationAlg).
* * *
* * * This is overcomplicated and unnecessary.
* [TF] Is there a specific issue with the current draft such as a
scenario
* which is not addressed?
* * *
* * * An important simplification is obtained if, as the previous text
* * * states, there is an OID to defined the validation policy and there
may
* * * be or may not be additional parameters.
* * *
* * * We could then have:
* * *
* * * valPolByOID::= SEQUENCE {
* * *        valPolId              OBJECT IDENTIFIER,
* * *        parameters            ANY DEFINED BY ValPolId OPTIONAL }
* * *
* * * Specifying a path processing compliant with section 6.1 of RFC
3280
* * * would be possible (notice however that the text from RFC 3280 is
too
* * * vague to support the case where a CRL is not signed by the CA).
* * *
* * * It would be desirable to be able to communicate easily and in a
* * * standard way the parameters that may be set in section 6.1 from
RFC
* * * 3280. In addition, key usage should be added to that list.
* * *
* * * The document should then define a bundle of all these previous
useful
* * * parameters and allow for the addition of other parameters.
* * *
* * * It is thus proposed to define an OID for a validation policy
compliant
* * * with section 6.1 of RFC 3280 (some differences with section 6 from
* * * 3280bis, i.e. adding precision, may be expected)
* * *
* * * It is thus proposed to modify the text starting from :
* * *
* * * " The inputs to the basic certification path processing algorithm
* * *    used by SCVP are defined by [PKIX-1] in section 6.1.1 and
* comprise"
* * *    up to the end of section 1.3 with the following:
* * *
* * * "For clients able to specify the parameters of a validation
policy,
* it
* * * may be useful to define a standard data structure (using a bundle)
* able
* * * to support the parameters of the basic certification path
processing
* * * algorithm defined by in section 6.1.1 from [PKIX-1] :
* * *
* * *   - a set of Trust Anchors (by value or by reference),
* * *   - the initial Certificate Policy set,
* * *   - initial Certificate Policy mapping setting,
* * *   - initial any-Policy setting,
* * *   - initial explicit Certificate Policy setting.
* * *
* * * as well as :
* * *
* * *    - the usage of the key contained in the certificate (e.g., key
* * *      encipherment, key agreement, signature)
* * *
* * * This will be done using a bundle which encapsulates all these
* * * parameters.
* * *
* * * Other application-specific purposes parameters may be added".
* * *
* * *
* * * 18. Section 1.4 is about a "Validation Algorithm". Given what was
* said
* * * before, the header of this section should be changed. If we make a
* * * subsection 1.3.1 called "1.3.1. General" for encapsulating the
* * previous
* * * text, then we can introduce a new section 1.3.2 called:
* * *
* * * "1.3.2. Validation policy according to section 6.1 of RFC 3280"
* [TF] See comment to 17
* * *
* * * Some of the text present in the current section 1.4 has been used
to
* * * build the new text that is proposed below:
* * *
* * * "1.3.2. Validation policy according to section 6.1 of RFC 3280
* * *
* * *    SCVP defines a specific validation policy which implements the
* * *    certification path validation algorithm as defined in section
6.1
* of
* * *    [PKIX-1]. This specific validation policy, called "rfc-3280
basic
* * *    validation policy" uses the parameters defined in the bundle
* * *    mentioned above.
* * *
* * *    Note that this algorithm does not support in its full
generality
* the
* * *    algorithm described in section 6.2 of [PKIX-1] since, when more
* than
* * *    one trust anchor is being defined, all the conditions that are
* * *    specified apply to all trust anchors, whereas section 6.2
allows to
* * *    have different conditions for every trust anchor.
* * *
* * *    The rfc-3280 basic validation policy may be the default
validation
* * *    policy supported by the server, but does not need to".
* * *
* * *
* * * 19. Section 2 "Protocol Overview"
* * *
* * * In order to allow for interoperability and testing a common
protocol
* * * needs to be supported. It should be defined.
* [TF] There is plenty of precedence for this to be in a separate
document.
* CMS itself just defines the syntax.
* * *
* * *
* * * 20. Section 3 "Validation Request"
* * *
* * * The unsigned request form is not explained and there is a
confusion
* for
* * * the signed request which indeed authenticates the client and is
thus
* * * not anonymous. The current text is :
* * *
* * *    "A signed
* * *    request is used to authenticate the client to the server or to
* * *    provide an anonymous client integrity over the request-response
* * *    pair."
* * *
* * * It should be rephrased as:
* * *
* * *    "An unsigned request provides an anonymous client integrity
over
* * *     the request since the hash of the request or the full request
is
* * *     incorporated in the response. A signed request is used to
* * *     authenticate the client to the server".
* [TF] Since by definition the anonymous client has to sign the request
as
* well this does not make sense. A server can also return a cached
response
* in which case there is no hash of the request in the response. How
about
* 
* An anonymous client signs the request to provide integrity over
* the request. A identifiable signs the request to authenticate itself
to
* the server.
* 
* 
* 
* 
* * *
* * *
* * * 21. Page 13. Section 3.1.2 "checks"
* * *
* * * The following sentence adds nothing and should be removed:
* * *
* * *    "A server may still choose to
* * *    perform revocation status checks when performing path
construction,
* * *    although this information cannot be returned to the client."
* [TF] I think it reinforces that with some checks, don't require
revocation
* status checking but a server may still elect to do so.
* * *
* * *
* * * 22. Page 15. Section 3.1.3 "wantBack"
* * *
* * * The text states:
* * *
* * *      - Proof of revocation status for each certificate in the AC
* * *         issuer certification path;
* * *
* * * It would be important to refer the section of the RFC which
explains
* * * how to
* * * check the "revocation status for each certificate in the AC issuer
* * * certification path".
* [TF] OK, I will add a reference to 3281 section 5.
* * *
* * *
* * * 23. Page 15. Section 3.1.3 "wantBack"
* * *
* * * The text states:
* * *
* * *    The client can also request a non-cached response to the
request by
* * *    including wantback id-swb-non-cached-resp in the request.
* * *
* * * The default behavior should be the reverse: fresh information is
* * * provided, unless the client accept cached information. The item
should
* * * be changed into:
* * * id-swb-cached-resp
[TF] This has been moved to response flags and the default is
non-cached.
* * *
* * *
* * * 24. Page 15. Section 3.1.3 "wantBack"
* * *
* * * The text states:
* * *
* * * id-swb-pkc-all-valid-cert-paths OBJECT IDENTIFIER ::= { id-swb 13}
* * *
* * * It should be mentioned that this item is only possible for DPD.
[TF] Why is this only possible with DPD?
* * *
* * *
* * * 25. Page 16. Section 3.1.4 validationPolicy
* * *
* * * The following sentence is talking of an agreement whereas such
* * * agreement does not exist. Delete the sentence:
* * *
* * *   "The client and server can optionally agree on a set of
parameters
* * *    which may fully or partially define a validation policy".
[TF] OK
* * *
* * *
* * * 26. Page 16. Section 3.1.4 validationPolicy
* * * The text states:
* * *
* * *    "If a partial set of parameters has been agreed upon,
* * *    then the client supplies a reference to the policy plus
whatever
* * *    parameters are necessary to complete the request in this item.
* * *
* * * This should be replaced with:
* * *
* * *    "If the validation policy does not define all parameters
necessary
* * *    for processing an SCVP request, then the client need to supply
* these
* * *    parameters".
[TF] Thats is not true. The client can omit whatever parameters match
the server default value.
* * *
* * * 27. Page 16. Section 3.1.4 validationPolicy
* * *
* * *    The syntax of the validationPolicy item is defined as:
* * *
* * *    ValidationPolicy ::= SEQUENCE {
* * *      validationPolRef          ValidationPolRef,
* * *      validationAlg         [0] ValidationAlg OPTIONAL,
* * *      userPolicySet         [1] SEQUENCE SIZE (1..MAX) OF OBJECT
* * *                                  IDENTIFIER OPTIONAL,
* * *      inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
* * *      requireExplicitPolicy [3] BOOLEAN OPTIONAL,
* * *      inhibitAnyPolicy      [4] BOOLEAN OPTIONAL,
* * *      isCA                  [5] BOOLEAN OPTIONAL,
* * *      trustAnchors          [6] TrustAnchors OPTIONAL,
* * *      keyUsages             [7] SEQUENCE SIZE (1..MAX) OF KeyUsage
* * *                                   OPTIONAL,
* * *      extendedKeyUsages     [8] ExtKeyUsageSyntax OPTIONAL}
* * *
* * *
* * * This structure is quite odd, because it only allows to pass
additional
* * * parameters as parameters of the validationAlg. Suppressing the
* * * validationAlg item add adding validationParamExtensions would be a
* * * simpler and cleaner way.
[TF] The only way to include other parameters is because the algorithm
needs them. You cannot introduce new parameters without at the same time
defining there use. Therefore mandating additional parameters be passed
which the corresponding identifier for their is the right thing to do.
* * *
* * * Each validation policies uses its own parameters.
* * * We should have something like :
* * *
* * * ValPolByOID  ::= SEQUENCE {
* * *        valPolgId             OBJECT IDENTIFIER,
* * *        parameters            ANY DEFINED BY valPolId OPTIONAL }
* * *
* * * More details follow.
* * *
* * *
* * * 28. It is highly debatable if URIs should be supported or not to
* * * reference a validation policy. URIs are not stable over time and
thus
* * * unless there are dereferenced and a hash value is computed over
them,
* * * it is insecure to use them. There is a discussion in the security
* * * consideration section, but no warning and no pointer here. If we
keep
* * * them, we should warn the user.
[TF] The argument over the stability of URIs is discussed in the
security section - which is the appropriate place. The reality is in
many organizations are stable enough and much more manageable. The issue
over dereferencing and hashing is bogus. Both OID and URI are both
opaque stings for this purpose and rely on you trusting the management
doing the right thing. 
* * *
* * * If the WG should decides that they should be supported (and if the
* IESG
* * * agrees) on page 17, the ASN.1 description should then be:
* * *
* * * ValidationPolicy ::= CHOICE {
* * *      valPolByOID         [0] ValPolByOID,
* * *      valPolByURI         [1] ValPolByURI }
* * *
* * * ValPolByOID  ::= SEQUENCE {
* * *        valPolgId             OBJECT IDENTIFIER,
* * *        parameters            ANY DEFINED BY valPolId OPTIONAL }
* * *
* * * ValPolByURI ::= SEQUENCE {
* * *      uri            IA5String,
* * *      hashAlgo       OBJECT IDENTIFIER,
* * *      hashValue      OCTET STRING}
* * *
* * *
* * * 29. It is proposed to define the following bundle:
* * *
* * * ValidationParamBundle ::= SEQUENCE {
* * *      certificatePolicySet      [0] SEQUENCE SIZE (1..MAX) OF
OBJECT
* * *                                    IDENTIFIER OPTIONAL,
* * *      inhibitPolicyMapping      [1] BOOLEAN OPTIONAL,
* * *      requireExplicitPolicy     [2] BOOLEAN OPTIONAL,
* * *      inhibitAnyPolicy          [3] BOOLEAN OPTIONAL,
* * *      isCA                      [4] BOOLEAN OPTIONAL,
* * *      trustAnchors              [5] TrustAnchors OPTIONAL,
* * *      keyUsages                 [6] SEQUENCE SIZE (1..MAX) OF
KeyUsage
* * *                                    OPTIONAL,
* * *      extendedKeyUsages         [7] ExtKeyUsageSyntax OPTIONAL
* * *      extensions                [8] EXPLICIT Extensions OPTIONAL }
* * *
* * * Note that userPolicySet" is unclear and has been changed into
* * * "certificatePolicySet".
[TF] The use of userPolicySet aligns with 3280. I don't think the name
to the existing structure is ambiguous or misleading.
* * *
* * * The text would need to be aligned with the new structure and, of
* course
* * * the parameters of the rfc-3280 basic validation policy will simply
* * * include the bundle above as its parameters.
* * *
* * * It should also be mentioned somewhere in the document that the
support
* * * of the rfc-3280 basic validation policy is not mandatory for
* * * conformance but, if supported then the bundle needs to be
supported.
* * *
* * *
* * * 30. Page 17. Section 3.1.5 validationAlg should be deleted.
[TF] Already done
* * *
* * *
* * * 31. Page 17. Section 3.1.5.1 Default Validation Algorithm should
be
* * * deleted and replaced by a section later on the "rfc-3280 basic
* * * validation policy", which should have its OID defined under the
scvp
* * * tree for OIDs.
[TF] the basic validation algorithm references the 3280 section 6. 
* * *
* * *
* * * 32. Page 17. Section 3.1.5.1. Some text of this section might be
re-
* * * sued to build a new section on the rfc-3280 basic validation
policy.
* * * Note that the last sentence at the bottom of page 17, should be
* * * removed. This sentence is: "The default validation policy MUST use
* the
* * * basic validation algorithm". Any default validation policy can be
* used.
* * *
[TF] See answer to 31
* * *
* * * 33. Page 17. Section 3.1.5.2 validationAlg (same title as 3.1.5 !)
* * * should be as well deleted.
[TF] The duplicate has been deleted
* * *
* * *
* * * 34. Page 20. Section 3.1.5.2.3 Name Validation Algorithm
* * *
* * * This goal of this section seems to introduce an additional test to
the
* * * basic "rfc-3280 basic validation policy". It would come naturally
as
* * an
* * * extension of ValidationParamBundle, rather than as a parameter of
the
* * * validationAlgo which has been proposed to be removed. The text
should
* * * be modified accordingly.
[TF] See answer 27 
* * *
* * *
* * * 35. Page 21. Section 3.1.5.2.3 Name Validation Algorithm
* * *
* * *      NameValidationAlgParms ::= SEQUENCE {
* * *        keyPurposeId      KeyPurposeId,
* * *        validationNames   GeneralNames }
* * *
* * * This construct is artificial since KeyPurposeId is about the
Extended
* * * Key Usage and has nothing to do with name validation.
[TF] Its simple reuses and existing practice.
* * *
* * * It could indeed be interesting to test the Extended Key Usage
* extension
* * * of a certificate, but this should be supported as an extension of
* * * ValidationParamBundle. The text should be modified accordingly.
* * *
* * *
* * * 36. Page 22. Section 3.1.5.3 userPolicySet
* * *
* * * userPolicySet should be changed everywhere into
certificatePolicySet.
[TF] userPolicySet aligs with 3280 sectuin 6.
* * *
* * *
* * * 37. Page 22. Section 3.1.5.3 userPolicySet
* * *
* * * The text has many sentences like:
* * *
* * *    SCVP clients SHOULD support userPolicySet item in requests, and
* * *    SCVP servers MUST support userPolicySet item in requests.
* * *
* * * These requirements only apply for the rfc-3280 basic validation
* policy,
* * * and this should be clearly mentioned.
[TF] Since all validation polices contain userPolicySet, it can be in
any policy.
* * *
* * *
* * * 38. Page 22. Section 3.1.5.4 inhibitPolicyMapping
* * *
* * * The text states:
* * *
* * *    By default the server allows policy mapping as
* * *    part of certification path validation.
* * *
* * * For simplicity, this should be the reverse. Replace with:
* * *
* * *   "By default the server does not perform policy mapping as
* * *    part of certification path validation. If the client wants the
* * *    server to support policy mapping, allowPolicyMapping must be
set
* * *    to TRUE in the request".
[TF] This conflicts with 3280 section 6.
* * *
* * *
* * * 39. Page 24. Section 3.1.5.8 trustAnchors
* * *
* * * The text states:
* * *
* * *   "A certificate reference can be used to identify the
* * *    trust anchor by certificate hash and optionally a distinguished
* * *    name with serial number".
* * *
* * * This is not consistent with the ASN.1 definition of PKCReference
which
* * * is:
* * *
* * *    PKCReference ::= CHOICE {
* * *      cert                   [0] Certificate,
* * *      pkcRef                 [1] ESSCertID }
* * *
* * * Please correct.
* * *
* * *
* * * 40. Page 25. Section 3.1.6 responseRefHash
* * *
* * * The text states:
* * *
* * *    "By default, the server includes a hash
* * *    of the request in the response.  If the client wants the server
to
* * *    include the full request in the response, responseRefHash is
set to
* * *    FALSE."
* * *
* * * The server shall always include a hash of the request in the
response.
[TF] A server cannot include a hash of the request in a cached response.
* * * This is an easy way to allow to test the integrity of the request.
* * * Since the full description of the validation policy may be much
longer
* * * a flag should be used to say that the full validation policy is
not
* * * returned unless requested. 
[TF] There is one, it is responseValidationPolByRef. The reponce flags
now has a FullRequestInResponse in place of the requestRefHash

It is thus proposed to have instead the
* * * following:
* * *
* * * "3.1.6.1 fullRequestInResponse
* * *
* * *    The fullRequestInResponse controls if the client wants the
server
* * *    to include the full request in the response. By default,
* * *    fullRequestInResponse is set to FALSE. If the client wants back
* * *    the full request then it must set this parameter to TRUE. The
main
* * *    reason a client would request the server to include the full
* request
* * *    in the response is to archive the request-response exchange in
a
* * *    single object.  That is, the client wants to archive a single
* object
* * *    which includes both request and response".
* * *
* * *
* * * 41. Page 26. Section 3.1.6.2 responseValidationPolByRef
* * *
* * * This item should be renamed: fullValPolInResponse
* * *
* * * The text should be changed into:
* * *
* * * "The fullValPolInResponse controls whether the response includes
the
* * * identifier of the validation policy with all the parameters that
have
* * * been used by the server, i.e. all the variable parameters
independent
* * * from the fact that there were specified by the client or defaulted
if
* * * not specified. By default, fullValPolInResponse is set to FALSE.
If
* the
* * * client wants the full validation policy to be included, then
* * * fullValPolInResponse is set to TRUE. The main reason a client
would
* * * request the server to include validation policy to be included by
* value
* * * is to archive the request-response exchange in a single object.
That
* * * is, the client wants to archive the CVResponse and have it include
* * * every aspect of the validation policy."
[TF] I have not chages the name, but the section now reads

The responseValidationPolByRef controls whether the response includes
just a reference to the policy or the reference to the policy plus all
the parameters by value of the policy used to process the request.  
the response MUST contain references to the validation policy.  If the
client wants the validation policy parameters to be also included by
value, then the responseValidationPolByRef is set to FALSE.  The main
reason a client would request the server to include validation policy to
be included by value is to archive the request-response exchange in a
single object.  That is, the client wants to archive the CVResponse and
have it include every aspect of the validation policy.

* * *
* * * The ResponseFlags should be changed as follows:
* * *
* * *    ResponseFlags ::= SEQUENCE {
* * *      fullRequestInResponse      BOOLEAN DEFAULT FALSE,
* * *      fullValPolInResponse       BOOLEAN DEFAULT FALSE,
* * *      signResponse               BOOLEAN DEFAULT TRUE }
* * *
* * *
* * * 42. Page 28. Section 3.1.9 intermediateCerts. Minor.
* * *
* * * Change:
* * *
* * *    The optional intermediateCerts item helps the SCVP server
create
* * *    valid certification paths.
* * *
* * * into:
* * *
* * *    The optional intermediateCerts item may help the SCVP server to
* * * create
* * *    valid certification paths.
[TF] Fixed
* * *
* * * 43. Page 29. Section 3.1.11. producedAt
* * *
* * * Last sentence. Change:
* * *
* * *    SCVP server SHOULD support the producedAt values in the
request.
* * *
* * * into:
* * *
* * *    SCVP server MAY support the producedAt values in the request.
* * *
* * * Reason: cached responses should not need to be implemented in
order to
* * * be compliant with the specification.
[TF] Fixed
* * *
* * *
* * * 44. Page 32. Section 3.5 dhPublicKey
* * *
* * * The text states:
* * *
* * *   "For the server to compute the shared
* * *    secret, it must lean the public values the client generates,
* * *    therefore the client MUST include this in the request if it
uses
* * *    this mechanism to integrity protect the request-response pair."
* * *
* * * Replace:
* * *
* * * "to integrity protect the request-response pair"
* * *
* * * with :
* * *
* * * "to authenticate and integrity protect the first response and
* * * authenticate and integrity protect subsequent request-response
* pairs".
[TF] draft now read " integrity protect the request and the subsequent
response." The use of DH does not necessarily authenticate the request.
* * *
* * * 45. Page 32. Section 3.6 SCVP Request Authentication
* * *
* * * The text states:
* * *
* * *   "It is a matter of local policy what validation policy is used
by
* * *    the server when validating requests".
* * *
* * * This sentence could be misinterpreted because the word
"validating"
* is
* * * being used. Change into:
* * *
* * *    It is a matter of local policy what validation policy is used
by
* * *    the server when authentication requests".
* * *
[TF] Fixed
* * *
* * * 46. Page 35. Section 4. Validation Response
* * *
* * *    The CVResponse is defined as follows:
* * *
* * *      CVResponse ::= SEQUENCE {
* * *        cvResponseVersion         cvResponseVersion        INTEGER,
* * *        policyID                  INTEGER,
* * *        producedAt                GeneralizedTime,
* * *        ....
* * *
* * * On the next page the test states:
* * *
* * *   "The policy ID used by the SCVP server when it processed the
* request.
* * *    See section 6.4 for details."
* * *
* * * In section 6.4 the text states:
* * *
* * * "6.4 defaultPolicyID
* * *
* * *    An integer that uniquely represents the version of the default
* * *    validation policy as represented by the trustAnchors, ..."
* * *
* * * This is not understandable, over-engineering and very complicated.
* * * Please delete this item.
* * *
* * *
* * * 47. Page 35. Section 4. Validation Response
* * *
* * *    The CVResponse contains:
* * *
* * *        requestRef            [1] RequestReference OPTIONAL,
* * *
* * * Remove "OPTIONAL" since it is very beneficial to mandate this item
* * * since it allows to make sure that the request has not be modified
if
* * * the response is integrity protected. The computation is fast and
easy
* * * and the hash value does not overload the response.
* * *
* * *
* * * 48. Page 38. Section 4.5 respValidationPolicy
* * *
* * * The definition of this item is overcomplicated and not tailored to
* * * support any kind of validation policy.
* * *
* * * If the client does not specify the validation policy or if the
client
* * * specifies a validation policy which has default parameters, then
the
* * * full description of the validation policy shall be given back.
* * *
* * * If the client specifies a validation policy which has no default
* * * parameters, then the reference and parameters, if any, of the
* * * validation policy are in the request.
* * *
* * * The full description of the validation policy shall be given back
in
* * * any case, if the fullValPolInResponse Boolean in ResponseFlags is
set.
* * *
* * * respValidationPolicy :: = ValidationPolicy
* * *
* * *
* * *
* * * 49. Page 41. Section 4.6 requestRef
* * *
* * * As stated earlier, requestRef should be mandatory and always be a
hash
* * * of the request.
* * *
* * * In addition a fullRequest OPTIONAL parameter should be added as an
* * * optional item for CVResponse.
* * *
* * * The full description of the validation policy shall be given back
in
* * * any case, if the fullRequestInResponse Boolean in ResponseFlags is
* set.
* * *
* * * Change the text and the syntax accordingly.
* * *
* * *
* * * 50. Page 41. Section 4.6 requestRef
* * *
* * * The text states:
* * *
* * *    "The requestRef item allows the client to associate a response
* with
* * *    a request"
* * *
* * * This is wrong. This does not protect against a replay.
* * *
* * * Change with:
* * *
* * * "When the response is authenticated, the requestRef item allows
the
* * * client to make sure that the request was not modified in transit".
* * *
* * *
* * * 51. Page 41. Section 4.6 requestRef
* * *
* * * The text states:
* * *
* * * " The requestNonce provides an alternative mechanism for
* * *    matching requests and responses if the client has selected to
* * *    include a full response."
* * *
* * * This is wrong. This is not an alternative for matching requests
and
* * * responses.
* * *
* * * Replace with:
* * *
* * *   "The requestNonce allows to protect against replay, even if time
* * * synchronization is not good between the client and the server".
* * *
* * *
* * * 52. Page 42. Section 4.6.1 requestHash
* * *
* * * The text states:
* * *
* * * " The requestNonce provides an alternative mechanism for matching
* * * requests and responses".
* * *
* * * This is wrong. See above. Delete.
* * *
* * *
* * * 53. Page 45. Section 4.10.4 replyChecks
* * *
* * * ReplyCheck is defined as:
* * *
* * *      ReplyCheck ::= SEQUENCE {
* * *        check                      OBJECT IDENTIFIER,
* * *        status                     INTEGER }
* * *
* * * It should be defined as:
* * *
* * *      ReplyCheck ::= SEQUENCE {
* * *        check                      OBJECT IDENTIFIER,
* * *        status                     INTEGER DEFAULT 0}
* * *
* * *
* * * 54. Page 46. Section 4.10.4 replyChecks
* * *
* * * The text states
* * *
* * *    "The status value for public key certification path building to
a
* * *    trusted root along with complete status checking, { id-stc 3 },
can
* * *    be one of the following:
* * *
* * *        0: Good
* * *        1: Revoked
* * *        2: Revocation Offline
* * *        3: Revocation Unavailable
* * *
* * * It is unclear to understand the benefits that a client can have
from
* * * the difference between "Revocation Offline" and "Revocation
* * * Unavailable". In addition, these wordings do not match the
* explanations
* * * of what there are.
* * *
* * * A much more important response is missing: suspended. Suspended is
a
* * * variation of revoked, but the client then knows it may attempt
another
* * * try later on.
* * *
* * * It is thus suggested to change it into:
* * *
* * *        0: Good
* * *        1: Revoked
* * *        2: Suspended
* * *        3: Revocation info unavailable"
* * *
* * *
* * * 55. Page 46. Section 4.10.4 replyChecks
* * *
* * *
* * * The same comment applies for the status value for AC issuer
* * * certification path.
* * *
* * *
* * * 56. Page 48. Section 4.10.6 validationAlg
* * * For reasons given before, delete validationAlg.
* * *
* * *
* * * 57. Page 48. Section 4.10.8 nextUpdate
* * *
* * * If CRLs are used, should this field contain the value of the next
* * * update field for the smallest value of all the CRLs ? What is the
real
* * * benefit of supporting this element besides added complexity ? It
is
* * * suggested to delete that item.
* * *
* * *
* * * 58. Page 49. Section 4.11 responseNonce
* * *
* * * The text states:
* * *
* * * "The responseNonce item contains an identifier to binds the
request
* * * to the response."
* * *
* * * This is incorrect. The nonce is to detect replay.
* * *
* * * Change into:
* * *
* * * "The responseNonce item contains a unique number which allows to
* detect
* * * replay".
* * *
* * *
* * * 59. Page 51. Section 5 Server Policy Request
* * *
* * * The text states:
* * *
* * *   "A SCVP client uses the valPolRequest item to request the list
of
* * *    validation policies supported by the SCVP server."
* * *
* * * This is not a correct description of what this request is doing.
When
* * * looking at the ASN.1 it is doing much more. So the question is
whether
* * * two requests should be provided or one. In the later case, it is
* * * important to advertise correctly what the request is doing.
* * *
* * *
* * * 60. Page 52. Section 6 Validation Policy Response
* * *
* * * The ASN.1 of the VPResponse is over-complicated.
* * *
* * * The first three items are overengineering:
* * *
* * *        vpResponseVersion          INTEGER,
* * *        maxCVResponseVersion       INTEGER,
* * *        maxVPResponseVersion       INTEGER,
* * *
* * * Further more they are mandatory. Please delete.
* * *
* * *
* * * 61. Page 52. Section 6 Validation Policy Response
* * *
* * * The ASN.1 of the VPResponse is over-complicated.
* * *
* * *         defaultPolicyID            INTEGER,
* * *
* * * This item does not make sense. When an OID references a validation
* * * policy, there is no concept of versioning. Another version will
simply
* * * get another OID (hopefully in the same branch). Please delete.
* * *
* * *
* * * 62. Page 52. Section 6 Validation Policy Response
* * *
* * * The ASN.1 of the VPResponse is over-complicated.
* * *
* * *        validationPolices          SEQUENCE OF ValidationPolRef,
* * *        validationAlgs             SEQUENCE OF OBJECT IDENTIFIER,
* * *
* * * validationAlgs is unnecessary. Please delete.
* * *
* * * validationPolicies (not validationPolices) is the main component.
See
* * * below for a full proposal for restructuring VPResponse.
* * *
* * *
* * * 63. Page 52. Section 6 Validation Policy Response
* * *
* * *        authPolicies               SEQUENCE OF AuthPolicy,
* * *        responseTypes              ResponseTypes,
* * *        dhPublicKeyInfo            SEQUENCE OF DHPublicKeyInfo,
* * *
* * * are elements which have nothing to do with the list of validation
* * * policies, and they are mandatory ! Either group them in one
OPTIONAL
* * * item or define another command to get them.
* * *
* * *
* * * 64. Page 52. Section 6 Validation Policy Response
* * *
* * *       defaultPolicyValues        ValidationPolValues,
* * *
* * * This is simply the set of parameters which are related to the
rfc-3280
* * * basic validation policy. This set could be used by other
validation
* * * policies. Please delete.
* * *
* * *
* * * 65. Page 52. Section 6 Validation Policy Response
* * *
* * * What follows is a sketch for a proposal for VPResponse.
* * *
* * *     VPResponse ::= SEQUENCE {
* * *        requestNonce               OCTET STRING      OPTIONAL
* * *        thisUpdate                 GeneralizedTime,
* * *        nextUpdate                 GeneralizedTime   OPTIONAL,
* * *        validationPolicies         SEQUENCE OF ValidationPolicy,
* * *        serverParams               ServerParams      OPTIONAL }
* * *
* * *
* * *     ServerParams ::= SEQUENCE {
* * *        responseTypes              ResponseTypes,
* * *        authPolicies           [0] SEQUENCE OF AuthPolicy
* OPTIONAL,
* * *        dhPublicKeyInfo        [1] SEQUENCE OF DHPublicKeyInfo
* OPTIONAL,
* * *        clockSkew              [2] INTEGER OPTIONAL }
* * *
* * * Note: it is re-called that ValidationPolicy should be redefined
as:
* * *
* * * ValidationPolicy ::= CHOICE {
* * *      valPolByOID         [0] ValPolByOID,
* * *      valPolByURI         [1] ValPolByURI }
* * *
* * * ValPolByOID  ::= SEQUENCE {
* * *        valPolgId             OBJECT IDENTIFIER,
* * *        parameters            ANY DEFINED BY valPolId OPTIONAL }
* * *
* * * ValPolByURI ::= SEQUENCE {
* * *      uri            IA5String,
* * *      hashAlgo       OBJECT IDENTIFIER,
* * *      hashValue      OCTET STRING}
* * *
* * *
* * *
* * * 66. Page 56. Section 7 SCVP Server Relay
* * *
* * * This section is incomplete and lacking explanations. Please
explain
* how
* * * relaying is achieved.
* * *
* * *
* * * 67. Page 65. Section 9 Security Considerations
* * *
* * * In the second paragraph, there is a discussion about the use of
URIs
* to
* * * reference validation policies.
* * *
* * * Firstly, if URIs are going to stay, a pointer to the security
* * * consideration section should be present in the main body of the
* * * document.
* * *
* * * Secondly, the text should mention the need for the ability to
* * * dereference the URI and the need to compute a hash, while the main
* body
* * * of the document should explain the computation of a hash on the
* content
* * * of the URI.
* * *
* * *
* * * 68. Page 65. Section 9 Security Considerations
* * *
* * * The text states:
* * *
* * *   "It can also do this by using the Diffie-hellman keys to sign
the
* * * request".
* * *
* * * Replace "sign" by "authenticate".
* * *
* * * END OF COMMENTS
* * *
* * *

Date: Thu, 16 Dec 2004 14:14:34 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: registration authorities
Cc: [email-masked]
Sender: [email-masked]

Date: Thu, 16 Dec 2004 07:20:23 -0500
To: [email-masked]
From: Stephen Kent <[email-masked]>
Subject: Re: Proposed Changes to RFC 3280
Cc: [email-masked]
Sender: [email-masked]

At 4:50 PM +0100 12/10/04, Massimiliano Pala wrote:
>Hello all,
>
>going through rfc3280 and reading the sections 5, 5.1, 5.1.2.5 about
>CRLs and nextUpdate field one idea came into my mind.
>The rfc enforces the use of the nextUpdate field which envisages the
>idea that new revocation information will be available within the
>retained time value.
>
>This could lead to some problems because all clients will query the
>CRL repository upon CRL expiration.
>Moreover, in practical environment, there is the common thought that
>the nextUpdate filed carries the time when new revocation data will
>be available, which (correct me if I am wrong) is not.
>
>So my idea is very simple, indeed. I would suggest to leave the field
>OPTIONAL (as in ASN.1).
>
>If the field is not present, then compliant applications should check
>for new CRL when validating a certificate. This is pretty the same way
>OCSP handles the nextUpdate field within responses, isn't it?
>
>Indeed the default behaviour for today CAs is to issue new CRLs as
>soon as a certificate is revoked - why being forced to issue a new
>CRL if no new data is indeed available ?
>
>Let me know your comments, if there are no major objection I will
>post a possible patch for the document to the list.
>
>--
>
>C'you,
>
>	Massimiliano Pala

The presence of the nextUpdate field allows clients to perform 
background retrieval of CRLs, in anticipation of later use of these 
CRLs in verifying certs. That strategy, if properly implemented, 
reduces the delay seen by the client for cert validation, in a 
CRL-based system.

I agree that it might be the case that a CRL repository might see 
increased traffic if every client tried to retrieve a given CRL at 
the time specified by this field, but whether this proves to be an 
operational problem is another matter.  From what Paul suggested in 
in message, I gather this has not proven to be the case so far. 
Also, I am sensitive to Paul's observation that we not adversely 
affect existing clients who may behave as I noted above.  Finally, 
there is no suggestion in the standard that a CA needs to publish a 
CRL immediately upon determining that a cert needs to be revoked, so 
I do not agree with your suggestion that this is normal behavior for 
CAs today. I know of several very large CAs that definitely do not 
behave in this fashion; they have set intervals for CRL issuance and 
they do not issue CRLs in between those times.

Stefan,

The nextUpdate is NOT an expiration time for a CRL.  CRLs do not 
expire; they are superceded by more recent CRLs that provided info 
that is more current, relevant to a future point in time. This field 
specifies a time and date by which a CA promises that it will make 
available a new CRL, even if there have been no new revocation 
events. As David noted, the field is essential because of the 
untrusted means by which we distribute CRLs. The field is optional in 
X.509 because it was not present in v1 CRLs.  PKIX mandates its use 
because lack of the field creates a serious vulnerability.

Steve

Date: Thu, 16 Dec 2004 07:20:23 -0500
To: [email-masked]
From: Stephen Kent <[email-masked]>
Subject: Re: Proposed Changes to RFC 3280
Cc: [email-masked]
Sender: [email-masked]

At 4:50 PM +0100 12/10/04, Massimiliano Pala wrote:
>Hello all,
>
>going through rfc3280 and reading the sections 5, 5.1, 5.1.2.5 about
>CRLs and nextUpdate field one idea came into my mind.
>The rfc enforces the use of the nextUpdate field which envisages the
>idea that new revocation information will be available within the
>retained time value.
>
>This could lead to some problems because all clients will query the
>CRL repository upon CRL expiration.
>Moreover, in practical environment, there is the common thought that
>the nextUpdate filed carries the time when new revocation data will
>be available, which (correct me if I am wrong) is not.
>
>So my idea is very simple, indeed. I would suggest to leave the field
>OPTIONAL (as in ASN.1).
>
>If the field is not present, then compliant applications should check
>for new CRL when validating a certificate. This is pretty the same way
>OCSP handles the nextUpdate field within responses, isn't it?
>
>Indeed the default behaviour for today CAs is to issue new CRLs as
>soon as a certificate is revoked - why being forced to issue a new
>CRL if no new data is indeed available ?
>
>Let me know your comments, if there are no major objection I will
>post a possible patch for the document to the list.
>
>--
>
>C'you,
>
>	Massimiliano Pala

The presence of the nextUpdate field allows clients to perform 
background retrieval of CRLs, in anticipation of later use of these 
CRLs in verifying certs. That strategy, if properly implemented, 
reduces the delay seen by the client for cert validation, in a 
CRL-based system.

I agree that it might be the case that a CRL repository might see 
increased traffic if every client tried to retrieve a given CRL at 
the time specified by this field, but whether this proves to be an 
operational problem is another matter.  From what Paul suggested in 
in message, I gather this has not proven to be the case so far. 
Also, I am sensitive to Paul's observation that we not adversely 
affect existing clients who may behave as I noted above.  Finally, 
there is no suggestion in the standard that a CA needs to publish a 
CRL immediately upon determining that a cert needs to be revoked, so 
I do not agree with your suggestion that this is normal behavior for 
CAs today. I know of several very large CAs that definitely do not 
behave in this fashion; they have set intervals for CRL issuance and 
they do not issue CRLs in between those times.

Stefan,

The nextUpdate is NOT an expiration time for a CRL.  CRLs do not 
expire; they are superceded by more recent CRLs that provided info 
that is more current, relevant to a future point in time. This field 
specifies a time and date by which a CA promises that it will make 
available a new CRL, even if there have been no new revocation 
events. As David noted, the field is essential because of the 
untrusted means by which we distribute CRLs. The field is optional in 
X.509 because it was not present in v1 CRLs.  PKIX mandates its use 
because lack of the field creates a serious vulnerability.

Steve

Date: Thu, 16 Dec 2004 06:53:52 -0500
To: <[email-masked]>
From: Stephen Kent <[email-masked]>
Subject: Re: registration authorities
Cc: <[email-masked]>
Sender: [email-masked]

--============_-1108922870==_ma============
Content-Type: text/plain; charset="iso-8859-1" ; format="flowed"
Content-Transfer-Encoding: quoted-printable

At 11:45 AM +0100 12/16/04, Carlos Gonz=E1lez-Cadenas wrote:
>Hi all,
>
>In RFC 3739 (Qualified Certificates Profile), we=20
>do have a place to state the name of the=20
>registration authorities that registered the=20
>names and attributes present in the certificate.
>
>Is there any standard way to do it in non-qualified certificates?
>
>Thanks in advance
>
>Carlos
>

No, just the CA name.

Steve
--============_-1108922870==_ma============
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type=3D"text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Re: registration authorities</title></head><body>
<div>At 11:45 AM +0100 12/16/04, Carlos Gonz=E1lez-Cadenas
wrote:</div>
<blockquote type=3D"cite" cite><font face=3D"Arial" size=3D"-1">Hi
all,</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial"
size=3D"-1">&nbsp;</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial" size=3D"-1">In RFC 3739
(Qualified Certificates Profile), we do have a place to state the name
of the registration authorities that registered the names and
attributes present in the certificate.</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial"
size=3D"-1">&nbsp;</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial" size=3D"-1">Is there any
standard way to do it in non-qualified
certificates?</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial"
size=3D"-1">&nbsp;</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial" size=3D"-1">Thanks in
advance</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial"
size=3D"-1"><br></font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial"
size=3D"-1">Carlos</font></blockquote>
<blockquote type=3D"cite" cite><font face=3D"Arial"
size=3D"-1">&nbsp;</font></blockquote>
<div><font size=3D"-1"><b><br></b></font></div>
<div><font size=3D"-1"><b>No, just the CA name.</b></font></div>
<div><font size=3D"-1"><b><br></b></font></div>
<div><font size=3D"-1"><b>Steve</b></font></div>
</body>
</html>
--============_-1108922870==_ma============--

Reply-To: <[email-masked]>
From: =?iso-8859-1?Q?Carlos_Gonz=E1lez-Cadenas?= <[email-masked]>
To: <[email-masked]>
Subject: registration authorities
Date: Thu, 16 Dec 2004 11:45:40 +0100
Organization: NetFocus
Importance: Normal
Sender: [email-masked]

This is a multi-part message in MIME format.

------=_NextPart_000_0015_01C4E364.C4AA5AF0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi all,

=0D

In RFC 3739 (Qualified Certificates Profile), we do have a place to state
the name of the registration authorities that registered the names and
attributes present in the certificate.

=0D

Is there any standard way to do it in non-qualified certificates?

=0D

Thanks in advance

Carlos

=0D

Carlos Gonz=E1lez-Cadenas

Jefe de Departamento de Arquitectura Software=0D

Software Architecture Department Manager

Responsable de Seguridad de la Informaci=F3n=0D

Information Security Responsible

netfocus
by Siemens-BancSabadell

=0D

=0D

C/Sena, 12 nucli C planta 2
Edifici Landscape
08190 Sant Cugat del Vall=E8s

phone:  +34933556139
fax:      +34933556142
mailto:  [email-masked]
web:     www.netfocus.es <http://www.netfocus.es/>=0D

=0D

=0D
Advertencia legal:
Este mensaje y, en su caso, los ficheros anexos son confidenciales,
especialmente en lo que respecta a los datos personales, y se dirigen
exclusivamente al destinatario referenciado. Si usted no lo es y lo ha
recibido por error o tiene conocimiento del mismo por cualquier motivo, le
rogamos que nos lo comunique por este medio y proceda a destruirlo o=
 borrarlo,
y que en todo caso se abstenga de utilizar, reproducir, alterar, archivar o
comunicar a terceros el presente mensaje y ficheros anexos, todo ello bajo=
 pena
de incurrir en responsabilidades legales. El emisor no garantiza la=
 integridad,
rapidez o seguridad del presente correo, ni se responsabiliza de posibles
perjuicios derivados de la captura, incorporaciones de virus o cualesquiera
otras manipulaciones efectuadas por terceros.

=0D
Advertiment legal:
Aquest missatge i, si escau, els fitxers annexos tenen caire confidencial,
especialment pel que fa a les dades personals, i s'adrecen exclusivament al
destinatari referenciat. Si no es tracta d'aquest i l'ha rebut per error o=
 se li
ha fet arribar per qualsevol motiu, li preguem que ens ho comuniqui per=
 aquesta
mateixa via i el destrueixi o l'esborri, i que en tot cas s'abstingui=
 d'utilitzar,
reproduir, alterar, arxivar o comunicar a tercers aquest missatge i fitxers
annexos, tot sota pena d'entrar en responsabilitats legals. L'emissor no=
 garanteix
la integritat, la rapidesa o la seguretat d'aquest correu, ni es=
 responsabilitza
de possibles perjudicis derivats de la captura, incorporacions de virus o
qualssevol altres manipulacions que facin tercers.

=0D
Disclaimer:
This message and any attached files transmitted with it, is confidential,
especially as regards personal data. It is intended solely for the use of=
 the
individual or entity to whom it is addressed. If you are not the intended=
 recipient
and have received this information in error or have accessed it for any=
 reason,
please notify us of this fact by email reply and then destroy or delete the=
 message,
refraining from any reproduction, use, alteration, filing or communication=
 to third
parties of this message and attached files on penalty of incurring legal
responsibilities. The sender does not guarantee the integrity, the=
 accuracy, the
swift delivery or the security of this email transmission, and assumes no
responsibility for any possible damage incurred through data capture, virus
incorporation or any manipulation carried out by third parties.
------=_NextPart_000_0015_01C4E364.C4AA5AF0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=
=3Diso-8859-1">

<meta name=3DGenerator content=3D"Microsoft Word 10 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:Arial;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EstiloCorreo17
	{font-family:Arial;
	color:windowtext;}
@page Section1
	{size:595.3pt 841.9pt;
	margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DES link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>Hi
all,</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>In
RFC 3739 (Qualified Certificates Profile), we do have a place to state the=
 name
of the registration authorities that registered the names and attributes
present in the certificate.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>Is
there any standard way to do it in non-qualified=
 certificates?</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>Thanks
in advance</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'><br>
Carlos</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>&nbsp;</span></font></p>

<p class=3DMsoNormal><b><font size=3D2 face=3DVerdana><span lang=3DEN-GB
style=3D'font-size:10.0pt;font-family:Verdana;font-weight:bold'>Carlos
Gonz=E1lez-Cadenas</span></font></b></st1:PersonName></p>

<p class=3DMsoNormal><st1:PersonName ProductID=3D"Carles Abarca" u1:st=
=3D"on"><font
size=3D1 face=3DVerdana><span lang=3DEN-GB style=
=3D'font-size:9.0pt;font-family:Verdana'></st1:PersonName>Jefe
de Departamento de Arquitectura Software&nbsp;</span></font></p>

<p class=3DMsoNormal><em><i><font size=3D1 face=3DVerdana><span lang=
=3DEN-GB
style=3D'font-size:9.0pt;font-family:Verdana'>Software Architecture=
 Department
Manager</span></font></i></em></p>

<p class=3DMsoNormal><font size=3D1 face=3DVerdana><span lang=3DEN-GB style=
=3D'font-size:
9.0pt;font-family:Verdana'>Responsable de Seguridad de la Informaci=
=F3n&nbsp;</span></font></p>

<p class=3DMsoNormal><em><i><font size=3D1 face=3DVerdana><span lang=
=3DEN-GB
style=3D'font-size:9.0pt;font-family:Verdana'>Information Security=
 Responsible</span></font></i></em><i><font
size=3D1 face=3DVerdana><span lang=3DEN-GB style=
=3D'font-size:9.0pt;font-family:Verdana;
font-style:italic'><br>
</span></font></i><font size=3D1 face=3DVerdana><span lang=3DEN-GB style=
=3D'font-size:
9.0pt;font-family:Verdana'><br>
</span></font><b><font size=3D5 color=3D"#b6ce52"><span lang=3DEN-US
style=
=3D'font-size:20.0pt;color:#B6CE52;font-weight:bold'>netfocus</span></font>=
</b><b><font
size=3D4 color=3D"#0099cc" face=3DVerdana><span lang=3DEN-US style=
=3D'font-size:14.0pt;
font-family:Verdana;color:#0099CC;font-weight:bold'><br>
</span></font></b><font size=3D1 color=3D"#969696"><span lang=3DEN-US
style=
=3D'font-size:7.0pt;color:#969696'>by&nbsp;Siemens-BancSabadell</span></fon=
t></p>

<p class=3DMsoNormal><font size=3D1 color=3D"#969696" face=3DArial><span=
 lang=3DEN-US
style=3D'font-size:8.0pt;color:#969696'>&nbsp;</span></font></p>

<p class=3DMsoNormal style=3D'line-height:50%'><font size=3D1 face=
=3DVerdana><span
lang=3DEN-US style=
=3D'font-size:9.0pt;line-height:50%;font-family:Verdana'>&nbsp;</span></fon=
t></p>

<p class=3DMsoNormal><font size=3D1 color=3D"#080808" face=3DVerdana><span=
 lang=3DEN-US
style=3D'font-size:7.5pt;font-family:Verdana;color:#080808'>C/Sena, 12=
 nucli C
planta 2<br>
Edifici Landscape<br>
08190 Sant Cugat del Vall=E8s<br>
<br>
</span></font><u><font size=3D1 color=3D"#080808" face=3DVerdana><span lang=
=3DEN-US
style=
=3D'font-size:8.0pt;font-family:Verdana;color:#080808'>phone:</span></font>=
</u><font
size=3D1 color=3D"#080808" face=3DVerdana><span lang=3DEN-US style=
=3D'font-size:8.0pt;
font-family:Verdana;color:#080808'>&nbsp; +34933556139<br>
<u>fax:</u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +34933556142<br>
<u>mailto:</u>&nbsp; </span></font><font size=3D1 color=3D"#333399" face=
=3DVerdana><span
lang=3DEN-US style=3D'font-size:8.0pt;font-family:Verdana;color:#333399'><a
href=
=3D"mailto:[email-masked]">[email-masked]</a></span=
></font><font
size=3D1 color=3D"#080808" face=3DVerdana><span lang=3DEN-US style=
=3D'font-size:8.0pt;
font-family:Verdana;color:#080808'><br>
<u>web:</u>&nbsp;&nbsp;&nbsp;&nbsp; </span></font><font size=3D1 color=
=3D"#333399"
face=3DVerdana><span lang=3DEN-US style=
=3D'font-size:8.0pt;font-family:Verdana;
color:#333399'><a href=
=3D"http://www.netfocus.es/">www.netfocus.es</a></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span style=
=3D'font-size:10.0pt'>&nbsp;</span></font></p>

</div>

</body>

</html>

<table><tr><td bgcolor=3D#ffffff><font color=3D#000000> <br>Advertencia=
 legal:<br>Este mensaje y, en su caso, los ficheros anexos son=
 confidenciales,<br>especialmente en lo que respecta a los datos=
 personales, y se dirigen<br>exclusivamente al destinatario referenciado.=
 Si usted no lo es y lo ha<br>recibido por error o tiene conocimiento del=
 mismo por cualquier motivo, le<br>rogamos que nos lo comunique por este=
 medio y proceda a destruirlo o borrarlo,<br>y que en todo caso se abstenga=
 de utilizar, reproducir, alterar, archivar o<br>comunicar a terceros el=
 presente mensaje y ficheros anexos, todo ello bajo pena<br>de incurrir en=
 responsabilidades legales. El emisor no garantiza la=
 integridad,<br>rapidez o seguridad del presente correo, ni se=
 responsabiliza de posibles<br>perjuicios derivados de la captura,=
 incorporaciones de virus o cualesquiera<br>otras manipulaciones efectuadas=
 por terceros.<br></font></td></tr></table>
<table><tr><td bgcolor=3D#ffffff><font color=3D#000000> <br>Advertiment=
 legal:<br>Aquest missatge i, si escau, els fitxers annexos tenen caire=
 confidencial,<br>especialment pel que fa a les dades personals, i=
 s'adrecen exclusivament al<br>destinatari referenciat. Si no es tracta=
 d'aquest i l'ha rebut per error o se li<br>ha fet arribar per qualsevol=
 motiu, li preguem que ens ho comuniqui per aquesta<br>mateixa via i el=
 destrueixi o l'esborri, i que en tot cas s'abstingui=
 d'utilitzar,<br>reproduir, alterar, arxivar o comunicar a tercers aquest=
 missatge i fitxers<br>annexos, tot sota pena d'entrar en responsabilitats=
 legals. L'emissor no garanteix<br>la integritat, la rapidesa o la=
 seguretat d'aquest correu, ni es responsabilitza<br>de possibles=
 perjudicis derivats de la captura, incorporacions de virus o<br>qualssevol=
 altres manipulacions que facin tercers.<br></font></td></tr></table>
<table><tr><td bgcolor=3D#ffffff><font color=3D#000000>=
 <br>Disclaimer:<br>This message and any attached files transmitted with=
 it, is confidential,<br>especially as regards personal data. It is=
 intended solely for the use of the<br>individual or entity to whom it is=
 addressed. If you are not the intended recipient<br>and have received this=
 information in error or have accessed it for any reason,<br>please notify=
 us of this fact by email reply and then destroy or delete the=
 message,<br>refraining from any reproduction, use, alteration, filing or=
 communication to third<br>parties of this message and attached files on=
 penalty of incurring legal<br>responsibilities. The sender does not=
 guarantee the integrity, the accuracy, the<br>swift delivery or the=
 security of this email transmission, and assumes no<br>responsibility for=
 any possible damage incurred through data capture, virus<br>incorporation=
 or any manipulation carried out by third=
 parties.<br></font></td></tr></table>
------=_NextPart_000_0015_01C4E364.C4AA5AF0--

From: "Administrator" <[email-masked]>
To: [email-masked]
Subject: ADV:      Staff Announcement
Date: Thu, 16 Dec 04 05:12:23 GMT

This is a multi-part message in MIME format.

--3BAEE_9F__9_38__7.45FA_
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Attention All Nonprofit Organizations: Members and Staff

You Must Respond By 5 P.M. Friday, December 17, 2004.

Through a special arrangement, Avtech Direct is offering a limited
allotment of BRAND NEW, top of-the-line, name-brand desktop computers
at more than 50% off MSRP to all Nonprofit Members and Staff 
who respond to this message before 5 P.M., Friday, December 17, 2004.

All desktop computers are brand-new packed in their original boxes,
and come with a full manufacturer's warranty plus
a 100% satisfaction guarantee.

These professional grade Desktops are fully equipped with 2005
next generation technology, making these the best performing
computers money can buy.

Avtech Direct is offering these feature rich, top performing
Desktops with the latest technology at an amazing price
to all who call:

    1-800-795-8466 by 5 P.M. Friday, December 17, 2004

The fast and powerful AT-2800 series Desktop features: 

      * Intel 2.0Ghz Processor for amazing speed and performance
      * 128MB DDR RAM,  -- Upgradeable to 1024
      * 20 GB UDMA Hard Drive, -- Upgradeable to 80 GB
      * 52X CD-Rom Drive, -- Upgradeable to DVD/CDRW
      * Next Generation 2005 Technology
      * Premium video and sound -- For enhanced colors and graphics
      * Full Connectivity with Fax modem/Lan/USB 2.0
      * Soft Touch Keyboard and scroll mouse
      * Internet Ready
      * Network Ready
      * 1 Year parts and labor warranty
      * Priority customer service and tech support

MSRP $499 ........................................ Your Cost $257

How to qualify:

  1. You must be a Member, Staff or Associate of a Nonprofit.
  2. All desktop computers will be available on a
     first come first serve basis.
  3. You must call 1-800-795-8466 by 5 P.M. Friday, December 17, 2004.
     and we will hold the desktops you request on will call. 
  4. You are not obligated in any way.
  5. 100% Satisfaction Guaranteed.
  6. Ask for Department C.

Call Avtech Direct
1-800-795-8466 before 5 P.M. Friday, December 17, 2004

Visit our website at http://www.avtechcomputers.com

If you wish to unsubscribe from this list, please go to
http://www.avtechcomputers.com/announcements.asp

Avtech Direct
22647 Ventura Blvd. Suite 374
Woodland Hills, CA 91364
--3BAEE_9F__9_38__7.45FA_--

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Wed, 15 Dec 2004 16:02:02 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Here is 17-22
Trevor

* -----Original Message-----
* From: Trevor Freeman
* Sent: Tuesday, December 07, 2004 12:47 PM
* To: 'Denis Pinkas'
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* Hi Denis,
* Below are responses to 1-16. Others will follow later.
* Trevor
* 
* * -----Original Message-----
* * From: Denis Pinkas [mailto:[email-masked]]
* * Sent: Monday, December 06, 2004 2:25 AM
* * To: Trevor Freeman
* * Cc: [email-masked]
* * Subject: Re: SCVP 16 comments deadline
* *
* * Trevor,
* *
* * > The deadline communicated at the DC meeting for making comments on
* SCVP
* * > 16 was Nov 30th which has now passed. I have had only three people
* send
* * > me comments to date. SCVP 17 will be closing very shortly so this
is
* the
* * > last reminder.
* *
* * Thank for the remainder. I missed the initial announcement.
* * My comments are below.
* *
* *
* * 1. Typo. There are two IPR statements related to RFC 3668 on the
first
* * page. Delete one.
* *
* * " By submitting this Internet-Draft, I certify that any applicable
* *    patent or other IPR claims of which I am aware have been
disclosed,
* *    or will be disclosed, and any of which I become aware will be
* *    disclosed, in accordance with RFC 3668".
* [TF] Fixed
* *
* *
* * 2. Page 11. Typos. First paragraph on top of the page.
* * Replace "signers" by "signer's".
* [TF] Fixed
* *
* *
* * 3. Page 11. Typo. First paragraph on top of the page. Last sentence.
* * Replace "certificate" by "certificates".
* [TF] Fixed
* *
* *
* * 4. Page 13. Typo. Section 3.1.2 "checks"
* * The two following lines are in fact one line:
* *
* * Change:
* *
* *      - Build a validated certification path to a trust anchor; and
* *
* *      - Do revocation status checks on the certification path.
* *
* * into:
* *
* *      - Build a validated certification path to a trust anchor and
* *        do revocation status checks on the certification path.
* *
* [TF] Since this paragraph is listing the possible checks and building
a
* path is a separate check to revocation checking, I think the current
text
* is more accurate.
* *
* * 5. Page 15. Typo. Section 3.1.4 validationPolicy
* *
* * This is the error left intentionally by the editor to know who read
the
* * document. The following sentence is duplicated: " The
validationPolicy
* * item, defines the validation policy". Please delete one sentence.
* [TF] Just checking <g> Fixed
* *
* *
* * 6. Page 24. Typo. Section 3.1.5.9 keyUsages
* *
* * Change "keyUasge" into "keyUsage".
* [TF] Fixed
* *
* *
* * 7. Page 27. Typo. Section 3.1.8 valididationTime
* * Last line of the first paragraph. Change "servers" into "server's"
* [TF] Fixed
* *
* *
* * 8. Page 32. Typo. Section 3.5 dhPublicKey
* * Change: Diffie-Hellamn into Diffie-Hellman.
* [TF] Fixed
* *
* *
* * 9. Page 32. Typo. Section 3.5 dhPublicKey
* * Fifth line. Change "an does" into "and does"
* [TF] Fixed
* *
* *
* * 10. Page 32. Typo. Section 3.5 dhPublicKey
* * Delete: (see section Error! Reference source not found.)
* *
* *
* * 11. Page 33. Typo. Section 4. Validation Response
* *
* * After the eight items. The following sentence has a grammar problem:
* *   "Successful responses are be made when the server has fully
complied
* *    with the request".
* [TF] Deleted the "be"
* *
* *
* * 12. Page 52. Typo. Section 6 Validation Policy Response
* *
* * The second sentence is incorrect. It is:
* * The valPolResponse MAY not unique to any valPolRequest, ..."
* *
* * Change into:
* * "The valPolResponse MAY not be unique to any valPolRequest, ..."
* [TF] Fixed
* *
* *
* * 13. The abstract does not reflect accurately the content of the
* * document.
* * "certificate handling" is too vague.
* *
* * Proposed abstract:
* *
* *    SCVP allows a client to delegate certificate path construction
and
* *    certificate path validation to a server. The path construction or
* *    validation (i.e. making sure that none of the certificates of the
* *    path is revoked) is made according to a validation policy which
* *    contains one or more trust anchors. It allows to simplify client
* *    implementations and to use a set of predefined validation
policies.
* [TF] Suggested text substituted
* *
* *
* * 14. Section 1.3
* *
* * The text on validation policy is new. There is no concept of
"mutually
* * agreed" validation policy between the client on the server. The
server
* * supports a set of validation policies which may or may not fit the
need
* * of the client.
* *
* * Change the second sentence of section 1.3 which is:
* *
* * " In SCVP, a validation policy can be either mutually
* *    agreed between client and server, and subsequently referenced in
* *    request, or explicitly expressed in the request by passing all of
* *    the necessary parameters."
* *
* * into:
* *
* * " In SCVP, the validation policy to be used by the server can be
either
* * fully referenced in the request by the client (and thus no
additional
* * parameter is necessary), referenced in the request by the client
with
* * additional parameters or supported by default by the server if the
* * client does not reference it."
* [TF] Suggested text substituted
* *
* *
* * 15. Section 1.3. The second paragraph needs to be reworded.
Currently,
* * it is the following:
* *
* * " Policy definitions can be quite long and complex, and some
policies
* *    may allow for the setting of a few parameters such as a set of
* *    trust anchors.  The request can therefore be simplified if these
* *    previously agreed policy dependent parameters are referenced in
the
* *    request by a mutually agreed OBJECT IDENTIFIER (OID) or URL
value.
* *    The referenced value indicates either a partial or full set of
* *    parameters. The client can therefore omit these agreed parameters
* *    from the request, only passing any parameters which are not
* *    specified by the previously agreed policy.  Therefore in the
* *    simplest form, with validation polices which define every
parameter
* *    necessary, a SCVP request need only contain the certificate to be
* *    validated, the validation policy and any run-time parameters for
* *    the request".
* *
* * Proposed rewording:
* *
* * " Policy definitions can be quite long and complex, and some
policies
* *    may allow for the setting of a few parameters.  The request can
* *    therefore be very simple if OBJECT IDENTIFIERS (OIDs) are used to
* *    specify both the algorithm to be used and all the associated
* *    parameters of the validation policy. The request can be more
complex
* *    if the validation policy fixes many of the parameters but allows
the
* *    client to specify some of them. When the validation policy
defines
* *    every parameter necessary, a SCVP request needs only to contain
the
* *    certificate to be validated, the referenced validation policy and
any
* *    run-time parameters for the request. In its simplest form, a SCVP
* *    request contains the certificate to be validated and any run-time
* *    parameters for the request. In that case the server uses a
default
* *    validation policy".
* [TF] Suggested text substituted
* *
* *
* * 16. Section 1.3. Paragraph 3.
* *
* * The text is missing the fact that at least one validation policy
must
* * be supported by the server. This is the default policy which is used
* * when the client omits to specify it.
* *
* * The current text is the following:
* *
* *   "SCVP server also publishes its default validation policy
settings.
* *    The default policy can be requested for validation and the client
* *    can override any default value in the request if required.  The
* *    default values are also used when processing requests which
* *    reference a validation policy other than the default one that
does
* *    not contain the full set of parameters necessary for validation
and
* *    the client has also omitted the missing values in the request.
* *
* *    Therefore a client can also simplify the request by omitting a
* *    parameter from a request if the default value published by the
* *    server is acceptable".
* *
* * Replace it with:
* *
* * " A SCVP server must support a default validation policy which will
* *    be used if the client does not specify any in its request. A
server
* *    publishes the references of the validation policies it supports.
* *    When these policies have parameters that may be overridden, the
* *    default value for these parameters are communicated by the server
as
* *    well. The client can simplify the request by omitting a parameter
* *    from a request if the default value published by the server for a
* *    given validation policy reference is acceptable. However if there
is
* *    a desire to demonstrate to someone else that a specific
validation
* *    policy with all its parameters has been used, it will need to ask
the
* *    server for the inclusion of the full validation policy with all
the
* *    parameters in the response".
* [TF] Suggested text substituted
* *
* *
* * 17. On top of page 7, the relationship between the validation policy
* * and the basic certification path algorithm is not explained. Then in
* * section 1.4 The concept of validation algorithm is introduced but
its
* * relationship with the validation policy is not explained. This is
* * confusing.
* *
* * Later on when observing the ASN.1 syntax it may be discovered that
two
* * OIDs are being used:
* *
* *   - one for the validation policy (ValidationPolRef) and
* *   - one for the validation algorithm (ValidationAlg).
* *
* * This is overcomplicated and unnecessary.
[TF] Is there a specific issue with the current draft such as a scenario
which is not addressed?
* *
* * An important simplification is obtained if, as the previous text
* * states, there is an OID to defined the validation policy and there
may
* * be or may not be additional parameters.
* *
* * We could then have:
* *
* * valPolByOID::= SEQUENCE {
* *        valPolId              OBJECT IDENTIFIER,
* *        parameters            ANY DEFINED BY ValPolId OPTIONAL }
* *
* * Specifying a path processing compliant with section 6.1 of RFC 3280
* * would be possible (notice however that the text from RFC 3280 is too
* * vague to support the case where a CRL is not signed by the CA).
* *
* * It would be desirable to be able to communicate easily and in a
* * standard way the parameters that may be set in section 6.1 from RFC
* * 3280. In addition, key usage should be added to that list.
* *
* * The document should then define a bundle of all these previous
useful
* * parameters and allow for the addition of other parameters.
* *
* * It is thus proposed to define an OID for a validation policy
compliant
* * with section 6.1 of RFC 3280 (some differences with section 6 from
* * 3280bis, i.e. adding precision, may be expected)
* *
* * It is thus proposed to modify the text starting from :
* *
* * " The inputs to the basic certification path processing algorithm
* *    used by SCVP are defined by [PKIX-1] in section 6.1.1 and
comprise"
* *    up to the end of section 1.3 with the following:
* *
* * "For clients able to specify the parameters of a validation policy,
it
* * may be useful to define a standard data structure (using a bundle)
able
* * to support the parameters of the basic certification path processing
* * algorithm defined by in section 6.1.1 from [PKIX-1] :
* *
* *   - a set of Trust Anchors (by value or by reference),
* *   - the initial Certificate Policy set,
* *   - initial Certificate Policy mapping setting,
* *   - initial any-Policy setting,
* *   - initial explicit Certificate Policy setting.
* *
* * as well as :
* *
* *    - the usage of the key contained in the certificate (e.g., key
* *      encipherment, key agreement, signature)
* *
* * This will be done using a bundle which encapsulates all these
* * parameters.
* *
* * Other application-specific purposes parameters may be added".
* *
* *
* * 18. Section 1.4 is about a "Validation Algorithm". Given what was
said
* * before, the header of this section should be changed. If we make a
* * subsection 1.3.1 called "1.3.1. General" for encapsulating the
* previous
* * text, then we can introduce a new section 1.3.2 called:
* *
* * "1.3.2. Validation policy according to section 6.1 of RFC 3280"
[TF] See comment to 17
* *
* * Some of the text present in the current section 1.4 has been used to
* * build the new text that is proposed below:
* *
* * "1.3.2. Validation policy according to section 6.1 of RFC 3280
* *
* *    SCVP defines a specific validation policy which implements the
* *    certification path validation algorithm as defined in section 6.1
of
* *    [PKIX-1]. This specific validation policy, called "rfc-3280 basic
* *    validation policy" uses the parameters defined in the bundle
* *    mentioned above.
* *
* *    Note that this algorithm does not support in its full generality
the
* *    algorithm described in section 6.2 of [PKIX-1] since, when more
than
* *    one trust anchor is being defined, all the conditions that are
* *    specified apply to all trust anchors, whereas section 6.2 allows
to
* *    have different conditions for every trust anchor.
* *
* *    The rfc-3280 basic validation policy may be the default
validation
* *    policy supported by the server, but does not need to".
* *
* *
* * 19. Section 2 "Protocol Overview"
* *
* * In order to allow for interoperability and testing a common protocol
* * needs to be supported. It should be defined.
[TF] There is plenty of precedence for this to be in a separate
document. CMS itself just defines the syntax.
* *
* *
* * 20. Section 3 "Validation Request"
* *
* * The unsigned request form is not explained and there is a confusion
for
* * the signed request which indeed authenticates the client and is thus
* * not anonymous. The current text is :
* *
* *    "A signed
* *    request is used to authenticate the client to the server or to
* *    provide an anonymous client integrity over the request-response
* *    pair."
* *
* * It should be rephrased as:
* *
* *    "An unsigned request provides an anonymous client integrity over
* *     the request since the hash of the request or the full request is
* *     incorporated in the response. A signed request is used to
* *     authenticate the client to the server".
[TF] Since by definition the anonymous client has to sign the request as
well this does not make sense. A server can also return a cached
response in which case there is no hash of the request in the response.
How about

An anonymous client signs the request to provide integrity over
the request. A identifiable signs the request to authenticate itself to
the server.

* *
* *
* * 21. Page 13. Section 3.1.2 "checks"
* *
* * The following sentence adds nothing and should be removed:
* *
* *    "A server may still choose to
* *    perform revocation status checks when performing path
construction,
* *    although this information cannot be returned to the client."
[TF] I think it reinforces that with some checks, don't require
revocation status checking but a server may still elect to do so.
* *
* *
* * 22. Page 15. Section 3.1.3 "wantBack"
* *
* * The text states:
* *
* *      - Proof of revocation status for each certificate in the AC
* *         issuer certification path;
* *
* * It would be important to refer the section of the RFC which explains
* * how to
* * check the "revocation status for each certificate in the AC issuer
* * certification path".
[TF] OK, I will add a reference to 3281 section 5.
* *
* *
* * 23. Page 15. Section 3.1.3 "wantBack"
* *
* * The text states:
* *
* *    The client can also request a non-cached response to the request
by
* *    including wantback id-swb-non-cached-resp in the request.
* *
* * The default behavior should be the reverse: fresh information is
* * provided, unless the client accept cached information. The item
should
* * be changed into:
* * id-swb-cached-resp
* *
* *
* * 24. Page 15. Section 3.1.3 "wantBack"
* *
* * The text states:
* *
* * id-swb-pkc-all-valid-cert-paths OBJECT IDENTIFIER ::= { id-swb 13}
* *
* * It should be mentioned that this item is only possible for DPD.
* *
* *
* * 25. Page 16. Section 3.1.4 validationPolicy
* *
* * The following sentence is talking of an agreement whereas such
* * agreement does not exist. Delete the sentence:
* *
* *   "The client and server can optionally agree on a set of parameters
* *    which may fully or partially define a validation policy".
* *
* *
* * 26. Page 16. Section 3.1.4 validationPolicy
* * The text states:
* *
* *    "If a partial set of parameters has been agreed upon,
* *    then the client supplies a reference to the policy plus whatever
* *    parameters are necessary to complete the request in this item.
* *
* * This should be replaced with:
* *
* *    "If the validation policy does not define all parameters
necessary
* *    for processing an SCVP request, then the client need to supply
these
* *    parameters".
* *
* * 27. Page 16. Section 3.1.4 validationPolicy
* *
* *    The syntax of the validationPolicy item is defined as:
* *
* *    ValidationPolicy ::= SEQUENCE {
* *      validationPolRef          ValidationPolRef,
* *      validationAlg         [0] ValidationAlg OPTIONAL,
* *      userPolicySet         [1] SEQUENCE SIZE (1..MAX) OF OBJECT
* *                                  IDENTIFIER OPTIONAL,
* *      inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
* *      requireExplicitPolicy [3] BOOLEAN OPTIONAL,
* *      inhibitAnyPolicy      [4] BOOLEAN OPTIONAL,
* *      isCA                  [5] BOOLEAN OPTIONAL,
* *      trustAnchors          [6] TrustAnchors OPTIONAL,
* *      keyUsages             [7] SEQUENCE SIZE (1..MAX) OF KeyUsage
* *                                   OPTIONAL,
* *      extendedKeyUsages     [8] ExtKeyUsageSyntax OPTIONAL}
* *
* *
* * This structure is quite odd, because it only allows to pass
additional
* * parameters as parameters of the validationAlg. Suppressing the
* * validationAlg item add adding validationParamExtensions would be a
* * simpler and cleaner way.
* *
* * Each validation policies uses its own parameters.
* * We should have something like :
* *
* * ValPolByOID  ::= SEQUENCE {
* *        valPolgId             OBJECT IDENTIFIER,
* *        parameters            ANY DEFINED BY valPolId OPTIONAL }
* *
* * More details follow.
* *
* *
* * 28. It is highly debatable if URIs should be supported or not to
* * reference a validation policy. URIs are not stable over time and
thus
* * unless there are dereferenced and a hash value is computed over
them,
* * it is insecure to use them. There is a discussion in the security
* * consideration section, but no warning and no pointer here. If we
keep
* * them, we should warn the user.
* *
* * If the WG should decides that they should be supported (and if the
IESG
* * agrees) on page 17, the ASN.1 description should then be:
* *
* * ValidationPolicy ::= CHOICE {
* *      valPolByOID         [0] ValPolByOID,
* *      valPolByURI         [1] ValPolByURI }
* *
* * ValPolByOID  ::= SEQUENCE {
* *        valPolgId             OBJECT IDENTIFIER,
* *        parameters            ANY DEFINED BY valPolId OPTIONAL }
* *
* * ValPolByURI ::= SEQUENCE {
* *      uri            IA5String,
* *      hashAlgo       OBJECT IDENTIFIER,
* *      hashValue      OCTET STRING}
* *
* *
* * 29. It is proposed to define the following bundle:
* *
* * ValidationParamBundle ::= SEQUENCE {
* *      certificatePolicySet      [0] SEQUENCE SIZE (1..MAX) OF OBJECT
* *                                    IDENTIFIER OPTIONAL,
* *      inhibitPolicyMapping      [1] BOOLEAN OPTIONAL,
* *      requireExplicitPolicy     [2] BOOLEAN OPTIONAL,
* *      inhibitAnyPolicy          [3] BOOLEAN OPTIONAL,
* *      isCA                      [4] BOOLEAN OPTIONAL,
* *      trustAnchors              [5] TrustAnchors OPTIONAL,
* *      keyUsages                 [6] SEQUENCE SIZE (1..MAX) OF
KeyUsage
* *                                    OPTIONAL,
* *      extendedKeyUsages         [7] ExtKeyUsageSyntax OPTIONAL
* *      extensions                [8] EXPLICIT Extensions OPTIONAL }
* *
* * Note that userPolicySet" is unclear and has been changed into
* * "certificatePolicySet".
* *
* * The text would need to be aligned with the new structure and, of
course
* * the parameters of the rfc-3280 basic validation policy will simply
* * include the bundle above as its parameters.
* *
* * It should also be mentioned somewhere in the document that the
support
* * of the rfc-3280 basic validation policy is not mandatory for
* * conformance but, if supported then the bundle needs to be supported.
* *
* *
* * 30. Page 17. Section 3.1.5 validationAlg should be deleted.
* *
* *
* * 31. Page 17. Section 3.1.5.1 Default Validation Algorithm should be
* * deleted and replaced by a section later on the "rfc-3280 basic
* * validation policy", which should have its OID defined under the scvp
* * tree for OIDs.
* *
* *
* * 32. Page 17. Section 3.1.5.1. Some text of this section might be re-
* * sued to build a new section on the rfc-3280 basic validation policy.
* * Note that the last sentence at the bottom of page 17, should be
* * removed. This sentence is: "The default validation policy MUST use
the
* * basic validation algorithm". Any default validation policy can be
used.
* *
* *
* * 33. Page 17. Section 3.1.5.2 validationAlg (same title as 3.1.5 !)
* * should be as well deleted.
* *
* *
* * 34. Page 20. Section 3.1.5.2.3 Name Validation Algorithm
* *
* * This goal of this section seems to introduce an additional test to
the
* * basic "rfc-3280 basic validation policy". It would come naturally as
* an
* * extension of ValidationParamBundle, rather than as a parameter of
the
* * validationAlgo which has been proposed to be removed. The text
should
* * be modified accordingly.
* *
* *
* * 35. Page 21. Section 3.1.5.2.3 Name Validation Algorithm
* *
* *      NameValidationAlgParms ::= SEQUENCE {
* *        keyPurposeId      KeyPurposeId,
* *        validationNames   GeneralNames }
* *
* * This construct is artificial since KeyPurposeId is about the
Extended
* * Key Usage and has nothing to do with name validation.
* *
* * It could indeed be interesting to test the Extended Key Usage
extension
* * of a certificate, but this should be supported as an extension of
* * ValidationParamBundle. The text should be modified accordingly.
* *
* *
* * 36. Page 22. Section 3.1.5.3 userPolicySet
* *
* * userPolicySet should be changed everywhere into
certificatePolicySet.
* *
* *
* * 37. Page 22. Section 3.1.5.3 userPolicySet
* *
* * The text has many sentences like:
* *
* *    SCVP clients SHOULD support userPolicySet item in requests, and
* *    SCVP servers MUST support userPolicySet item in requests.
* *
* * These requirements only apply for the rfc-3280 basic validation
policy,
* * and this should be clearly mentioned.
* *
* *
* * 38. Page 22. Section 3.1.5.4 inhibitPolicyMapping
* *
* * The text states:
* *
* *    By default the server allows policy mapping as
* *    part of certification path validation.
* *
* * For simplicity, this should be the reverse. Replace with:
* *
* *   "By default the server does not perform policy mapping as
* *    part of certification path validation. If the client wants the
* *    server to support policy mapping, allowPolicyMapping must be set
* *    to TRUE in the request".
* *
* *
* * 39. Page 24. Section 3.1.5.8 trustAnchors
* *
* * The text states:
* *
* *   "A certificate reference can be used to identify the
* *    trust anchor by certificate hash and optionally a distinguished
* *    name with serial number".
* *
* * This is not consistent with the ASN.1 definition of PKCReference
which
* * is:
* *
* *    PKCReference ::= CHOICE {
* *      cert                   [0] Certificate,
* *      pkcRef                 [1] ESSCertID }
* *
* * Please correct.
* *
* *
* * 40. Page 25. Section 3.1.6 responseRefHash
* *
* * The text states:
* *
* *    "By default, the server includes a hash
* *    of the request in the response.  If the client wants the server
to
* *    include the full request in the response, responseRefHash is set
to
* *    FALSE."
* *
* * The server shall always include a hash of the request in the
response.
* * This is an easy way to allow to test the integrity of the request.
* * Since the full description of the validation policy may be much
longer
* * a flag should be used to say that the full validation policy is not
* * returned unless requested. It is thus proposed to have instead the
* * following:
* *
* * "3.1.6.1 fullRequestInResponse
* *
* *    The fullRequestInResponse controls if the client wants the server
* *    to include the full request in the response. By default,
* *    fullRequestInResponse is set to FALSE. If the client wants back
* *    the full request then it must set this parameter to TRUE. The
main
* *    reason a client would request the server to include the full
request
* *    in the response is to archive the request-response exchange in a
* *    single object.  That is, the client wants to archive a single
object
* *    which includes both request and response".
* *
* *
* * 41. Page 26. Section 3.1.6.2 responseValidationPolByRef
* *
* * This item should be renamed: fullValPolInResponse
* *
* * The text should be changed into:
* *
* * "The fullValPolInResponse controls whether the response includes the
* * identifier of the validation policy with all the parameters that
have
* * been used by the server, i.e. all the variable parameters
independent
* * from the fact that there were specified by the client or defaulted
if
* * not specified. By default, fullValPolInResponse is set to FALSE. If
the
* * client wants the full validation policy to be included, then
* * fullValPolInResponse is set to TRUE. The main reason a client would
* * request the server to include validation policy to be included by
value
* * is to archive the request-response exchange in a single object. That
* * is, the client wants to archive the CVResponse and have it include
* * every aspect of the validation policy."
* *
* * The ResponseFlags should be changed as follows:
* *
* *    ResponseFlags ::= SEQUENCE {
* *      fullRequestInResponse      BOOLEAN DEFAULT FALSE,
* *      fullValPolInResponse       BOOLEAN DEFAULT FALSE,
* *      signResponse               BOOLEAN DEFAULT TRUE }
* *
* *
* * 42. Page 28. Section 3.1.9 intermediateCerts. Minor.
* *
* * Change:
* *
* *    The optional intermediateCerts item helps the SCVP server create
* *    valid certification paths.
* *
* * into:
* *
* *    The optional intermediateCerts item may help the SCVP server to
* * create
* *    valid certification paths.
* *
* * 43. Page 29. Section 3.1.11. producedAt
* *
* * Last sentence. Change:
* *
* *    SCVP server SHOULD support the producedAt values in the request.
* *
* * into:
* *
* *    SCVP server MAY support the producedAt values in the request.
* *
* * Reason: cached responses should not need to be implemented in order
to
* * be compliant with the specification.
* *
* *
* * 44. Page 32. Section 3.5 dhPublicKey
* *
* * The text states:
* *
* *   "For the server to compute the shared
* *    secret, it must lean the public values the client generates,
* *    therefore the client MUST include this in the request if it uses
* *    this mechanism to integrity protect the request-response pair."
* *
* * Replace:
* *
* * "to integrity protect the request-response pair"
* *
* * with :
* *
* * "to authenticate and integrity protect the first response and
* * authenticate and integrity protect subsequent request-response
pairs".
* *
* * 45. Page 32. Section 3.6 SCVP Request Authentication
* *
* * The text states:
* *
* *   "It is a matter of local policy what validation policy is used by
* *    the server when validating requests".
* *
* * This sentence could be misinterpreted because the word "validating"
is
* * being used. Change into:
* *
* *    It is a matter of local policy what validation policy is used by
* *    the server when authentication requests".
* *
* *
* * 46. Page 35. Section 4. Validation Response
* *
* *    The CVResponse is defined as follows:
* *
* *      CVResponse ::= SEQUENCE {
* *        cvResponseVersion         cvResponseVersion        INTEGER,
* *        policyID                  INTEGER,
* *        producedAt                GeneralizedTime,
* *        ....
* *
* * On the next page the test states:
* *
* *   "The policy ID used by the SCVP server when it processed the
request.
* *    See section 6.4 for details."
* *
* * In section 6.4 the text states:
* *
* * "6.4 defaultPolicyID
* *
* *    An integer that uniquely represents the version of the default
* *    validation policy as represented by the trustAnchors, ..."
* *
* * This is not understandable, over-engineering and very complicated.
* * Please delete this item.
* *
* *
* * 47. Page 35. Section 4. Validation Response
* *
* *    The CVResponse contains:
* *
* *        requestRef            [1] RequestReference OPTIONAL,
* *
* * Remove "OPTIONAL" since it is very beneficial to mandate this item
* * since it allows to make sure that the request has not be modified if
* * the response is integrity protected. The computation is fast and
easy
* * and the hash value does not overload the response.
* *
* *
* * 48. Page 38. Section 4.5 respValidationPolicy
* *
* * The definition of this item is overcomplicated and not tailored to
* * support any kind of validation policy.
* *
* * If the client does not specify the validation policy or if the
client
* * specifies a validation policy which has default parameters, then the
* * full description of the validation policy shall be given back.
* *
* * If the client specifies a validation policy which has no default
* * parameters, then the reference and parameters, if any, of the
* * validation policy are in the request.
* *
* * The full description of the validation policy shall be given back in
* * any case, if the fullValPolInResponse Boolean in ResponseFlags is
set.
* *
* * respValidationPolicy :: = ValidationPolicy
* *
* *
* *
* * 49. Page 41. Section 4.6 requestRef
* *
* * As stated earlier, requestRef should be mandatory and always be a
hash
* * of the request.
* *
* * In addition a fullRequest OPTIONAL parameter should be added as an
* * optional item for CVResponse.
* *
* * The full description of the validation policy shall be given back in
* * any case, if the fullRequestInResponse Boolean in ResponseFlags is
set.
* *
* * Change the text and the syntax accordingly.
* *
* *
* * 50. Page 41. Section 4.6 requestRef
* *
* * The text states:
* *
* *    "The requestRef item allows the client to associate a response
with
* *    a request"
* *
* * This is wrong. This does not protect against a replay.
* *
* * Change with:
* *
* * "When the response is authenticated, the requestRef item allows the
* * client to make sure that the request was not modified in transit".
* *
* *
* * 51. Page 41. Section 4.6 requestRef
* *
* * The text states:
* *
* * " The requestNonce provides an alternative mechanism for
* *    matching requests and responses if the client has selected to
* *    include a full response."
* *
* * This is wrong. This is not an alternative for matching requests and
* * responses.
* *
* * Replace with:
* *
* *   "The requestNonce allows to protect against replay, even if time
* * synchronization is not good between the client and the server".
* *
* *
* * 52. Page 42. Section 4.6.1 requestHash
* *
* * The text states:
* *
* * " The requestNonce provides an alternative mechanism for matching
* * requests and responses".
* *
* * This is wrong. See above. Delete.
* *
* *
* * 53. Page 45. Section 4.10.4 replyChecks
* *
* * ReplyCheck is defined as:
* *
* *      ReplyCheck ::= SEQUENCE {
* *        check                      OBJECT IDENTIFIER,
* *        status                     INTEGER }
* *
* * It should be defined as:
* *
* *      ReplyCheck ::= SEQUENCE {
* *        check                      OBJECT IDENTIFIER,
* *        status                     INTEGER DEFAULT 0}
* *
* *
* * 54. Page 46. Section 4.10.4 replyChecks
* *
* * The text states
* *
* *    "The status value for public key certification path building to a
* *    trusted root along with complete status checking, { id-stc 3 },
can
* *    be one of the following:
* *
* *        0: Good
* *        1: Revoked
* *        2: Revocation Offline
* *        3: Revocation Unavailable
* *
* * It is unclear to understand the benefits that a client can have from
* * the difference between "Revocation Offline" and "Revocation
* * Unavailable". In addition, these wordings do not match the
explanations
* * of what there are.
* *
* * A much more important response is missing: suspended. Suspended is a
* * variation of revoked, but the client then knows it may attempt
another
* * try later on.
* *
* * It is thus suggested to change it into:
* *
* *        0: Good
* *        1: Revoked
* *        2: Suspended
* *        3: Revocation info unavailable"
* *
* *
* * 55. Page 46. Section 4.10.4 replyChecks
* *
* *
* * The same comment applies for the status value for AC issuer
* * certification path.
* *
* *
* * 56. Page 48. Section 4.10.6 validationAlg
* * For reasons given before, delete validationAlg.
* *
* *
* * 57. Page 48. Section 4.10.8 nextUpdate
* *
* * If CRLs are used, should this field contain the value of the next
* * update field for the smallest value of all the CRLs ? What is the
real
* * benefit of supporting this element besides added complexity ? It is
* * suggested to delete that item.
* *
* *
* * 58. Page 49. Section 4.11 responseNonce
* *
* * The text states:
* *
* * "The responseNonce item contains an identifier to binds the request
* * to the response."
* *
* * This is incorrect. The nonce is to detect replay.
* *
* * Change into:
* *
* * "The responseNonce item contains a unique number which allows to
detect
* * replay".
* *
* *
* * 59. Page 51. Section 5 Server Policy Request
* *
* * The text states:
* *
* *   "A SCVP client uses the valPolRequest item to request the list of
* *    validation policies supported by the SCVP server."
* *
* * This is not a correct description of what this request is doing.
When
* * looking at the ASN.1 it is doing much more. So the question is
whether
* * two requests should be provided or one. In the later case, it is
* * important to advertise correctly what the request is doing.
* *
* *
* * 60. Page 52. Section 6 Validation Policy Response
* *
* * The ASN.1 of the VPResponse is over-complicated.
* *
* * The first three items are overengineering:
* *
* *        vpResponseVersion          INTEGER,
* *        maxCVResponseVersion       INTEGER,
* *        maxVPResponseVersion       INTEGER,
* *
* * Further more they are mandatory. Please delete.
* *
* *
* * 61. Page 52. Section 6 Validation Policy Response
* *
* * The ASN.1 of the VPResponse is over-complicated.
* *
* *         defaultPolicyID            INTEGER,
* *
* * This item does not make sense. When an OID references a validation
* * policy, there is no concept of versioning. Another version will
simply
* * get another OID (hopefully in the same branch). Please delete.
* *
* *
* * 62. Page 52. Section 6 Validation Policy Response
* *
* * The ASN.1 of the VPResponse is over-complicated.
* *
* *        validationPolices          SEQUENCE OF ValidationPolRef,
* *        validationAlgs             SEQUENCE OF OBJECT IDENTIFIER,
* *
* * validationAlgs is unnecessary. Please delete.
* *
* * validationPolicies (not validationPolices) is the main component.
See
* * below for a full proposal for restructuring VPResponse.
* *
* *
* * 63. Page 52. Section 6 Validation Policy Response
* *
* *        authPolicies               SEQUENCE OF AuthPolicy,
* *        responseTypes              ResponseTypes,
* *        dhPublicKeyInfo            SEQUENCE OF DHPublicKeyInfo,
* *
* * are elements which have nothing to do with the list of validation
* * policies, and they are mandatory ! Either group them in one OPTIONAL
* * item or define another command to get them.
* *
* *
* * 64. Page 52. Section 6 Validation Policy Response
* *
* *       defaultPolicyValues        ValidationPolValues,
* *
* * This is simply the set of parameters which are related to the
rfc-3280
* * basic validation policy. This set could be used by other validation
* * policies. Please delete.
* *
* *
* * 65. Page 52. Section 6 Validation Policy Response
* *
* * What follows is a sketch for a proposal for VPResponse.
* *
* *     VPResponse ::= SEQUENCE {
* *        requestNonce               OCTET STRING      OPTIONAL
* *        thisUpdate                 GeneralizedTime,
* *        nextUpdate                 GeneralizedTime   OPTIONAL,
* *        validationPolicies         SEQUENCE OF ValidationPolicy,
* *        serverParams               ServerParams      OPTIONAL }
* *
* *
* *     ServerParams ::= SEQUENCE {
* *        responseTypes              ResponseTypes,
* *        authPolicies           [0] SEQUENCE OF AuthPolicy
OPTIONAL,
* *        dhPublicKeyInfo        [1] SEQUENCE OF DHPublicKeyInfo
OPTIONAL,
* *        clockSkew              [2] INTEGER OPTIONAL }
* *
* * Note: it is re-called that ValidationPolicy should be redefined as:
* *
* * ValidationPolicy ::= CHOICE {
* *      valPolByOID         [0] ValPolByOID,
* *      valPolByURI         [1] ValPolByURI }
* *
* * ValPolByOID  ::= SEQUENCE {
* *        valPolgId             OBJECT IDENTIFIER,
* *        parameters            ANY DEFINED BY valPolId OPTIONAL }
* *
* * ValPolByURI ::= SEQUENCE {
* *      uri            IA5String,
* *      hashAlgo       OBJECT IDENTIFIER,
* *      hashValue      OCTET STRING}
* *
* *
* *
* * 66. Page 56. Section 7 SCVP Server Relay
* *
* * This section is incomplete and lacking explanations. Please explain
how
* * relaying is achieved.
* *
* *
* * 67. Page 65. Section 9 Security Considerations
* *
* * In the second paragraph, there is a discussion about the use of URIs
to
* * reference validation policies.
* *
* * Firstly, if URIs are going to stay, a pointer to the security
* * consideration section should be present in the main body of the
* * document.
* *
* * Secondly, the text should mention the need for the ability to
* * dereference the URI and the need to compute a hash, while the main
body
* * of the document should explain the computation of a hash on the
content
* * of the URI.
* *
* *
* * 68. Page 65. Section 9 Security Considerations
* *
* * The text states:
* *
* *   "It can also do this by using the Diffie-hellman keys to sign the
* * request".
* *
* * Replace "sign" by "authenticate".
* *
* * END OF COMMENTS
* *
* *

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Wed, 15 Dec 2004 15:36:57 -0800
From: "Trevor Freeman" <[email-masked]>
To: "David A. Cooper" <[email-masked]>
Cc: "Denis Pinkas" <[email-masked]>, <[email-masked]>
Sender: [email-masked]

This is a multi-part message in MIME format.

------_=_NextPart_001_01C4E2FE.FD0BD737
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi David,

First off I think that the current draft has an omission with respect
the fact that there is no explicit do revocation check. Therefore if you
want path construction with revocation, that is two checks to request.
If the client then subsequently passes in the revocation check on is
own, does that mandate a path build on the client certificate - no. A
server may elect to do that voluntarily, but I don't want to require the
server to do any more than is absolutely necessary. If a client had
previously requested the certificate validity form the server, it may
just be interested in refreshing the revocation status. It can simply do
that by passing in the set of certificates from the previous validation
and request revocation checking. You have the name CAs name and CDP or
AIA - so you have everything you need. I would expect the server to
check the status of signer of the revocation information but otherwise
where is the problem. I would agree that a client should not request
this without having first checked the status of the certificate, but
then there are 1000 ways the client can screw this up and the server is
powerless.

Trevor

=20

________________________________

From: David A. Cooper [mailto:[email-masked]]=20
Sent: Tuesday, December 14, 2004 8:37 AM
To: Trevor Freeman
Cc: Denis Pinkas; [email-masked]
Subject: Re: SCVP 16 comments deadline

=20

Trevor,

There seems to be a misunderstanding here.  The check in question is:

Do revocation status checks on the certification path

In your response to Denis below, you say:

If the client has asked for revocation information, I don't see a full
path build for the client certificate is required. You may build a path
for the CA certificate which signed the CRL, but that is different.

There is a disconnect between these two statements.  The check requires
the server to perform status checks on the path.  In your response, you
refer to the CRL.  If the check only required to server to perform a
status check on the end certificate (i.e., the certificate presented in
the request), then your comment would make sense.  However, the check
requires the server to perform status checks on the path.  Since SCVP
does not allow the client to present a path to the server, the server
MUST build a certification path in order to perform the
id-stc-build-status-checked-pkc-path check, otherwise the server would
not have a certification path for which to perform status checks.

You suggest that the id-stc-build-status-checked-pkc-path check might be
used by itself in a case in which a DPD client has already been able to
build a path.  But this does not work, since the server may not provide
status checks on the same certification path as the one constructed by
the client (or the one that the client had previously obtained from the
SCVP server).  The client could increase the chances that the server
would use the path that it was interested in by providing the
certificates in the path through the intermediateCerts field, but this
would not guarantee that the server would provide status checks for this
path.

As I said in my previous message, if the client wants to server to
provide status checks for the certificates in a particular certification
path, then the client should use OCSP.  OCSP allows the client to ask
for status information for a specific set of certificates, SCVP does
not.  With SCVP, the client can only specify the trust anchor and the
end certificate; the server MUST build the remainder of the
certification path.  So, even if the client only includes the
id-stc-build-status-checked-pkc-path check, there is an implicit
requirement for the server to build a certification path.  I believe
that it makes no sense for the server to perform the
id-stc-build-status-checked-pkc-path check on an unvalidated
certification path.  That is, I believe that the only sensible use of
this feature is for the server to build a validated certification path
and then perform status checks on that path; there is no benefit to
performing status checks on an unvalidated certification path.  Given
this, it makes sense to explicitly indicate that the
id-stc-build-status-checked-pkc-path check requires the server to build
a validated certification path and do revocation status checks on that
certification path.

Dave

Trevor Freeman wrote:

=20
* -----Original Message-----
* From: Denis Pinkas [mailto:[email-masked]]
* Sent: Monday, December 13, 2004 12:35 AM
* To: Trevor Freeman
* Cc: David A. Cooper; [email-masked]
* Subject: Re: SCVP 16 comments deadline
*=20
* Trevor,
*=20
* > David,
* > No wanting to rathole on this sine time is short, the section of the
* > document in question which Denis referred to is dealing with the set
of
* > request that the client can make to the server. We agree that the
client
* > can ask for path construction without revocation checking.
*=20
* Up to here we agree.
[TF] Good
*=20
* > I think it
* > legitimate a DPD client could ask for revocation checking because it
has
* > already be able to build a path. Conceivably a DPV client could do
the
* > same because it pervious asked for the path to be constructed and
just
* > wants the revocation data refreshed.
*=20
* Here we do not agree. If a client has already been able to build a
path,
* then he provides that path as "useful certificates" and the DPV server
will
* necessarily build the path (using or not using these "useful
certificates")
* and verify it.
*=20
* So if revocation checking is asked for by the client, this necessarily
* mandates path construction.
[TF] what there server does to process the request is orthogonal to the
section in question.  If the client has asked for revocation
information, I don't see a full path build for the client certificate is
required. You may build a path for the CA certificate which signed the
CRL, but that is different.
*=20
* Denis
*=20
*=20
* > However to get to the bottom line, is there a specific problem with
the
* > text in section 3.1.2
* > Trevor
* >
* > * -----Original Message-----
* > * From: David A. Cooper [mailto:[email-masked]]
* > * Sent: Thursday, December 09, 2004 2:22 PM
* > * To: Trevor Freeman
* > * Cc: [email-masked]
* > * Subject: Re: SCVP 16 comments deadline
* > *
* > * Trevor,
* > *
* > * I must say that I agree with Seth and Denis.  I was under the
impression
* > * that "Do revocation status checking on the certification path"
really
* > * meant "build and validated certification path to a trust anchor
and do
* > * revocation status checking on the certification path".  While I
can see
* > * that there may be circumstances in which one would request a
validated
* > * certification path without requiring revocation status checking, I
can't
* > * see requesting revocation status checking without requesting that
the
* > * path be validated.
* > *
* > * It is certainly the case that one can not "do revocation status
checking
* > * on the certification path" without also building a certification
path.
* > * Since the client can not provide a certification path, revocation
status
* > * checking must be performed on a path that is built by the server.
I
* > * suppose you could argue that this simply means that a well formed
query
* > * can not include the id-stc-build-status-checked-pkc-path without
also
* > * including either the id-stc-build-pkc-path or
* > * id-stc-build-valid-pkc-path check.  But, I see see the need for
this.
* > *
* > * A DPD client would include the id-stc-build-pkc-path along with
the
* > * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info
wantBacks.
* > * If the DPD client included the id-swb-pkc-revocation-info
wantBack, it
* > * wouldn't need to also include the
id-stc-build-status-checked-pkc-path
* > * check.  If the DPD client did not include the
id-swb-pkc-revocation-info
* > * wantBack, then would not include the
id-stc-build-status-checked-pkc-path check.
* > *
* > * So, I would argue that the id-swb-pkc-revocation-info wantBack
would
* > * only be used in the case that the client was requesting a
validated
* > * certification path.  The way that I had interpreted the currently
* > * defined checks items, an SCVP query would only include one check
since
* > * each successive check included the requirements of the previous
one:
* > * id-stc-build-valid-pkc-path included the requirement to build a
path
* > * (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path
* > * included the requirement to build a validated path
* > * (id-stc-build-valid-pkc-path).
* > *
* > * Under what circumstances can you envision a client wanting the
server to
* > * do revocation status checking on a certification path (that is
* > * constructed by the server) without also including a requirement
that the
* > * certification path be validated?   If there are no reasonable
* > * circumstances in which a client would make such a query, why is it
* > * necessary for clients to be able to construct such a query?
* > *
* > * Dave
* > *
* > * Trevor Freeman wrote:
* > *
* > * >Hi Seth,
* > * >A server can always go beyond what the client asked for. I don't
see
* > * >that as strictly necessary in all cases such as if the client
just asks
* > * >for revocation. Untimely is a matter of local server policy. What
the
* > * >server cannot do is return status or errors relating to the other
* > * >activities which  were beyond the request scope.
* > * >Trevor
* > * >
* > * While it might make sense for a client to only ask for revocation
* > * checking if the client could specify the certification path, it
does not
* > * seem to make sense given that the server chooses the certification
path
* > * for which revocation status checking will be performed.  If the
client
* > * wants to specify a set of certificates for which it only wants to
know
* > * the revocation status, that is what OCSP is for.
* > *
* > * >
* > * >* -----Original Message-----
* > * >* From: Seth Hitchings [mailto:[email-masked]]
* > * >* Sent: Wednesday, December 08, 2004 11:34 AM
* > * >* To: Trevor Freeman
* > * >* Cc: [email-masked]
* > * >* Subject: RE: SCVP 16 comments deadline
* > * >*
* > * >* Trevor,
* > * >*
* > * >* For clarification, I assume that doing revocation status checks
on a path
* > * >* implies building a validated path?
* > * >*
* > * >* If I am correct, in what case would a client ever send more
than one check?
* > * >*
* > * >* Seth
* > * >*
* > * >* -----Original Message-----
* > * >* From: [email-masked]
* > * >[mailto:[email-masked]]
* > * >* On Behalf Of
* > * >* Trevor Freeman
* > * >* Sent: Wednesday, December 08, 2004 1:42 PM
* > * >* To: Denis Pinkas
* > * >* Cc: [email-masked]
* > * >* Subject: RE: SCVP 16 comments deadline
* > * >*
* > * >*
* > * >* Denis,
* > * >* I know of several systems who's policy is never to revoke the
identity certificate because
* > * >* they have other mechanisms to address the issue.
* > * >* They are using authorization bound to the identity and they
either rely on short lived
* > * >* authorization assertions or revoke the authorization privilege
assonated with the
* > * >* identity. Therefore in those cases not checking the revocation
status of the certificate
* > * >* makes perfect sense.
* > * >* Trevor
* > * >*
* > * >* * -----Original Message-----
* > * >* * From: [email-masked]
* > * >* [mailto:[email-masked]]
* > * >* * On Behalf Of Denis Pinkas
* > * >* * Sent: Wednesday, December 08, 2004 8:01 AM
* > * >* * To: Trevor Freeman
* > * >* * Cc: [email-masked]
* > * >* * Subject: Re: SCVP 16 comments deadline
* > * >* *
* > * >* *
* > * >* * Trevor,
* > * >* *
* > * >* * > Hi Denis,
* > * >* * > Below are responses to 1-16. Others will follow later.
* > * >* *
* > * >* * I am pleased that you accepted comments 13, 14, 15 and 16.
* > * >* * Among this list, I have a further remark on comment 4.
* > * >* *
* > * >* * > * 4. Page 13. Typo. Section 3.1.2 "checks"
* > * >* * > * The two following lines are in fact one line:
* > * >* * > *
* > * >* * > * Change:
* > * >* * > *
* > * >* * > *      - Build a validated certification path to a trust
anchor; and
* > * >* * > *
* > * >* * > *      - Do revocation status checks on the certification
path.
* > * >* * > *
* > * >* * > * into:
* > * >* * > *
* > * >* * > *      - Build a validated certification path to a trust
anchor and
* > * >* * > *        do revocation status checks on the certification
path.
* > * >* * > *
* > * >* * > [TF] Since this paragraph is listing the possible checks
and building a
* > * >* * > path is a separate check to revocation checking, I think
the current
* > * >* * > text is more accurate.
* > * >* *
* > * >* * I agree that "building a path is a separate check to
revocation checking",
* > * >* * but revocation checking without building a validated path
does not make sense.
* > * >* *
* > * >* * The full text currently is:
* > * >* *
* > * >* *      - Build a certification path to a trust anchor;
* > * >* *
* > * >* *      - Build a validated certification path to a trust
anchor; and
* > * >* *
* > * >* *      - Do revocation status checks on the certification path.
* > * >* *
* > * >* * The full text should be:
* > * >* *
* > * >* *      - Build a certification path to a trust anchor;
* > * >* *
* > * >* *      - Build a validated certification path to a trust
anchor; and
* > * >* *        do revocation status checks on the certification path.
* > * >* *
* > * >* * Denis

=20

------_=_NextPart_001_01C4E2FE.FD0BD737
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";
	color:black;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:blue;
	text-decoration:underline;}
pre
	{margin:0pt;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
span.EmailStyle18
	{font-family:Arial;
	color:navy;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:0pt 201.0pt 0pt 0pt;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body bgcolor=3Dwhite lang=3DEN-US link=3Dblue vlink=3Dblue>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Hi David,</span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>First off I think that the current =
draft
has an omission with respect the fact that there is no explicit do =
revocation
check. Therefore if you want path construction with revocation, that is =
two checks
to request. If the client then subsequently passes in the revocation =
check on
is own, does that mandate a path build on the client certificate &#8211; =
no. A
server may elect to do that voluntarily, but I don&#8217;t want to =
require the
server to do any more than is absolutely necessary. If a client had =
previously
requested the certificate validity form the server, it may just be =
interested
in refreshing the revocation status. It can simply do that by passing in =
the
set of certificates from the previous validation and request revocation
checking. You have the name CAs name and CDP or AIA &#8211; so you have
everything you need. I would expect the server to check the status of =
signer of
the revocation information but otherwise where is the problem. I would =
agree
that a client should not request this without having first checked the =
status
of the certificate, but then there are 1000 ways the client can screw =
this up
and the server is powerless.</span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Trevor</span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>&nbsp;</span></font></p>

<div style=3D'border:none;border-left:solid blue 1.5pt;padding:0pt 0pt =
0pt 4.0pt'>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
color=3Dblack face=3D"Times New Roman"><span =
style=3D'font-size:12.0pt;color:windowtext'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 color=3Dblack face=3DTahoma><span
style=3D'font-size:10.0pt;font-family:Tahoma;color:windowtext;font-weight=
:bold'>From:</span></font></b><font
size=3D2 color=3Dblack face=3DTahoma><span =
style=3D'font-size:10.0pt;font-family:Tahoma;
color:windowtext'> David A. Cooper [mailto:[email-masked]] <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Tuesday, December =
14, 2004
8:37 AM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> Trevor Freeman<br>
<b><span style=3D'font-weight:bold'>Cc:</span></b> Denis Pinkas; =
[email-masked]<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> Re: SCVP 16 =
comments
deadline</span></font></p>

</div>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>Trevor,<br>
<br>
There seems to be a misunderstanding here.&nbsp; The check in question =
is:</span></font></p>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>Do revocation status checks on the =
certification path</span></font></p>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>In your response to Denis below, you =
say:</span></font></p>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>If the client has asked for revocation =
information, I
don't see a full path build for the client certificate is required. You =
may
build a path for the CA certificate which signed the CRL, but that is
different.</span></font></p>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>There is a disconnect between these two =
statements.&nbsp;
The check requires the server to perform status checks on <u>the =
path</u>.&nbsp;
In your response, you refer to <u>the CRL</u>.&nbsp; If the check only =
required
to server to perform a status check on the end certificate (i.e., the
certificate presented in the request), then your comment would make
sense.&nbsp; However, the check requires the server to perform status =
checks on
the <u>path</u>.&nbsp; Since SCVP does not allow the client to present a =
path
to the server, the server <u>MUST</u> build a certification path in =
order to
perform the id-stc-build-status-checked-pkc-path check, otherwise the =
server
would not have a certification path for which to perform status =
checks.<br>
<br>
You suggest that the id-stc-build-status-checked-pkc-path check might be =
used
by itself in a case in which a DPD client has already been able to build =
a
path.&nbsp; But this does not work, since the server may not provide =
status
checks on the same certification path as the one constructed by the =
client (or
the one that the client had previously obtained from the SCVP =
server).&nbsp;
The client could increase the chances that the server would use the path =
that
it was interested in by providing the certificates in the path through =
the
intermediateCerts field, but this would not guarantee that the server =
would
provide status checks for this path.<br>
<br>
As I said in my previous message, if the client wants to server to =
provide
status checks for the certificates in a particular certification path, =
then the
client should use OCSP.&nbsp; OCSP allows the client to ask for status
information for a specific set of certificates, SCVP does not.&nbsp; =
With SCVP,
the client can only specify the trust anchor and the end certificate; =
the
server MUST build the remainder of the certification path.&nbsp; So, =
even if
the client only includes the id-stc-build-status-checked-pkc-path check, =
there
is an implicit requirement for the server to build a certification =
path.&nbsp;
I believe that it makes no sense for the server to perform the
id-stc-build-status-checked-pkc-path check on an unvalidated =
certification
path.&nbsp; That is, I believe that the only sensible use of this =
feature is
for the server to build a validated certification path and then perform =
status
checks on that path; there is no benefit to performing status checks on =
an
unvalidated certification path.&nbsp; Given this, it makes sense to =
explicitly
indicate that the id-stc-build-status-checked-pkc-path check requires =
the
server to build a validated certification path and do revocation status =
checks
on that certification path.<br>
<br>
Dave<br>
<br>
<br>
Trevor Freeman wrote:<br>
<br>
</span></font></p>

<pre wrap=3D""><font size=3D2 color=3Dblack face=3D"Courier New"><span
style=3D'font-size:10.0pt'>&nbsp;</span></font></pre><pre><font size=3D2
color=3Dblack face=3D"Courier New"><span style=3D'font-size:10.0pt'>* =
-----Original Message-----</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* From: Denis Pinkas [<a
href=3D"mailto:[email-masked]">mailto:[email-masked]</a>]</=
span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Sent: Monday, December 13, 2004 12:35 =
AM</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* To: Trevor =
Freeman</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Cc: David A. Cooper; <a
href=3D"mailto:[email-masked]">[email-masked]</a></span></font></pr=
e><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Subject: Re: SCVP 16 comments =
deadline</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Trevor,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; David,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; No wanting to rathole on this sine =
time is short, the section of the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; document in question which Denis =
referred to is dealing with the set of</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; request that the client can make to =
the server. We agree that the client</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; can ask for path construction without =
revocation checking.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Up to here we =
agree.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>[TF] Good</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; I think =
it</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; legitimate a DPD client could ask for =
revocation checking because it has</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; already be able to build a path. =
Conceivably a DPV client could do the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; same because it pervious asked for the =
path to be constructed and just</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; wants the revocation data =
refreshed.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Here we do not agree. If a client has =
already been able to build a path,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* then he provides that path as &quot;useful =
certificates&quot; and the DPV server will</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* necessarily build the path (using or not =
using these &quot;useful =
certificates&quot;)</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* and verify =
it.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* So if revocation checking is asked for by =
the client, this necessarily</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* mandates path =
construction.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>[TF] what there server does to process the =
request is orthogonal to the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>section in question.&nbsp; If the client has =
asked for revocation</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>information, I don't see a full path build =
for the client certificate is</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>required. You may build a path for the CA =
certificate which signed the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>CRL, but that is =
different.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* Denis</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* </span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; However to get to the bottom line, is =
there a specific problem with the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; text in section =
3.1.2</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; Trevor</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt;</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * -----Original =
Message-----</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * From: David A. Cooper [<a
href=3D"mailto:[email-masked]">mailto:[email-masked]</a>]</=
span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Sent: Thursday, December 09, 2004 =
2:22 PM</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * To: Trevor =
Freeman</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Cc: <a
href=3D"mailto:[email-masked]">[email-masked]</a></span></font></pr=
e><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Subject: Re: SCVP 16 comments =
deadline</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * =
Trevor,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * I must say that I agree with Seth =
and Denis.&nbsp; I was under the =
impression</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * that &quot;Do revocation status =
checking on the certification path&quot; =
really</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * meant &quot;build and validated =
certification path to a trust anchor and =
do</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * revocation status checking on the =
certification path&quot;.&nbsp; While I can =
see</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * that there may be circumstances in =
which one would request a validated</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * certification path without requiring =
revocation status checking, I can't</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * see requesting revocation status =
checking without requesting that the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * path be =
validated.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * It is certainly the case that one =
can not &quot;do revocation status =
checking</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * on the certification path&quot; =
without also building a certification =
path.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Since the client can not provide a =
certification path, revocation status</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * checking must be performed on a path =
that is built by the server. I</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * suppose you could argue that this =
simply means that a well formed query</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * can not include the =
id-stc-build-status-checked-pkc-path without =
also</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * including either the =
id-stc-build-pkc-path or</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * id-stc-build-valid-pkc-path =
check.&nbsp; But, I see see the need for =
this.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * A DPD client would include the =
id-stc-build-pkc-path along with the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * id-swb-pkc-best-cert-path and/or =
id-swb-pkc-revocation-info wantBacks.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * If the DPD client included the =
id-swb-pkc-revocation-info wantBack, it</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * wouldn't need to also include the =
id-stc-build-status-checked-pkc-path</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * check.&nbsp; If the DPD client did =
not include the id-swb-pkc-revocation-info</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * wantBack, then would not include the =
id-stc-build-status-checked-pkc-path =
check.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * So, I would argue that the =
id-swb-pkc-revocation-info wantBack would</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * only be used in the case that the =
client was requesting a validated</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * certification path.&nbsp; The way =
that I had interpreted the currently</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * defined checks items, an SCVP query =
would only include one check since</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * each successive check included the =
requirements of the previous one:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * id-stc-build-valid-pkc-path included =
the requirement to build a path</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * (id-stc-build-pkc-path) and =
id-stc-build-status-checked-pkc-path</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * included the requirement to build a =
validated path</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * =
(id-stc-build-valid-pkc-path).</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Under what circumstances can you =
envision a client wanting the server to</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * do revocation status checking on a =
certification path (that is</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * constructed by the server) without =
also including a requirement that the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * certification path be =
validated?&nbsp;&nbsp; If there are no =
reasonable</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * circumstances in which a client =
would make such a query, why is it</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * necessary for clients to be able to =
construct such a query?</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Dave</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * Trevor Freeman =
wrote:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;Hi =
Seth,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;A server can always go beyond =
what the client asked for. I don't see</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;that as strictly necessary in =
all cases such as if the client just asks</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;for revocation. Untimely is a =
matter of local server policy. What the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;server cannot do is return =
status or errors relating to the other</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;activities which&nbsp; were =
beyond the request scope.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * =
&gt;Trevor</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * While it might make sense for a =
client to only ask for revocation</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * checking if the client could specify =
the certification path, it does not</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * seem to make sense given that the =
server chooses the certification path</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * for which revocation status checking =
will be performed.&nbsp; If the client</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * wants to specify a set of =
certificates for which it only wants to =
know</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * the revocation status, that is what =
OCSP is for.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; *</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* -----Original =
Message-----</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* From: Seth Hitchings [<a
href=3D"mailto:[email-masked]">mailto:[email-masked]=
m</a>]</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Sent: Wednesday, December 08, =
2004 11:34 AM</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* To: Trevor =
Freeman</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Cc: <a
href=3D"mailto:[email-masked]">[email-masked]</a></span></font></pr=
e><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Subject: RE: SCVP 16 comments =
deadline</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
Trevor,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* For clarification, I assume =
that doing revocation status checks on a =
path</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* implies building a validated =
path?</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* If I am correct, in what case =
would a client ever send more than one =
check?</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
Seth</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* -----Original =
Message-----</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* From: <a
href=3D"mailto:[email-masked]">[email-masked]=
</a></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;[<a
href=3D"mailto:[email-masked]">mailto:owner-ietf-pkix@mail.=
imc.org</a>]</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* On Behalf =
Of</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Trevor =
Freeman</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Sent: Wednesday, December 08, =
2004 1:42 PM</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* To: Denis =
Pinkas</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Cc: <a
href=3D"mailto:[email-masked]">[email-masked]</a></span></font></pr=
e><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* Subject: RE: SCVP 16 comments =
deadline</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
Denis,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* I know of several systems =
who's policy is never to revoke the identity certificate =
because</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* they have other mechanisms to =
address the issue.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* They are using authorization =
bound to the identity and they either rely on short =
lived</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* authorization assertions or =
revoke the authorization privilege assonated with =
the</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* identity. Therefore in those =
cases not checking the revocation status of the =
certificate</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* makes perfect =
sense.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
Trevor</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * -----Original =
Message-----</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * From: <a
href=3D"mailto:[email-masked]">[email-masked]=
</a></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* [<a
href=3D"mailto:[email-masked]">mailto:owner-ietf-pkix@mail.=
imc.org</a>]</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * On Behalf Of Denis =
Pinkas</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * Sent: Wednesday, December =
08, 2004 8:01 AM</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * To: Trevor =
Freeman</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * Cc: <a
href=3D"mailto:[email-masked]">[email-masked]</a></span></font></pr=
e><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * Subject: Re: SCVP 16 =
comments deadline</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * =
Trevor,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; Hi =
Denis,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; Below are responses to =
1-16. Others will follow later.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * I am pleased that you =
accepted comments 13, 14, 15 and 16.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * Among this list, I have a =
further remark on comment 4.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; * 4. Page 13. Typo. =
Section 3.1.2 &quot;checks&quot;</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; * The two following =
lines are in fact one line:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; * =
Change:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Build a validated certification path =
to a trust anchor; and</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Do revocation status checks on the =
certification path.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; * =
into:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Build a validated certification path =
to a trust anchor and</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do revocation status checks =
on the certification path.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; [TF] Since this =
paragraph is listing the possible checks and building =
a</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; path is a separate =
check to revocation checking, I think the =
current</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * &gt; text is more =
accurate.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * I agree that &quot;building =
a path is a separate check to revocation =
checking&quot;,</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * but revocation checking =
without building a validated path does not make =
sense.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * The full text currently =
is:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Build a certification path to a trust =
anchor;</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Build a validated certification path =
to a trust anchor; and</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Do revocation status checks on the =
certification path.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * The full text should =
be:</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Build a certification path to a trust =
anchor;</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Build a validated certification path =
to a trust anchor; and</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do revocation status checks =
on the certification path.</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* =
*</span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>* &gt; * &gt;* * Denis</span></font></pre>

<p class=3DMsoNormal><font size=3D3 color=3Dblack face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt'>&nbsp;</span></font></p>

</div>

</div>

</body>

</html>

------_=_NextPart_001_01C4E2FE.FD0BD737--

From: "Wen-Cheng Wang" <[email-masked]>
Reply-To: [email-masked]
Subject: SCVP 16 comments
To: [email-masked]
Date: Thu, 16 Dec 2004 01:13:15 +0800 (CST)
Sender: [email-masked]

Here are my comments on SCVP ID 16.

1. Page 11:

The responseRefHash, responseValidationPolByRef, and
signResponse items are now grouped into the the
responseFlags item. 

Therefore, the sentence:

" A query 
  MUST contain a sequence of one or more queriedCerts items as well 
  as one checks, one wantBack and one validationPolicy item; and a 
  query MAY also contain responseRefHash, responseValidationPolByRef, 
  signResponse, serverContextInfo, validationTime, intermediateCerts, 
  revInfos, producedAt, and queryExtensions items."

should be changed to:

" A query 
  MUST contain a sequence of one or more queriedCerts items as well 
  as one checks, one wantBack and one validationPolicy item; and a 
  query MAY also contain responseFlags, serverContextInfo,
  validationTime, intermediateCerts, revInfos, producedAt, and
  queryExtensions items."

2. Page 12:

For the same reason, the sentence:

" The requestRefHash, responseValidationPolByRef 
  and signResponse items allow the client to request optional 
  features for the response."

should be changed to:

" The responseFlags item allows the client to request optional 
  features for the response."

3. Page 13:

When a client want to build/validate/do revocation check on the
certification path for the AC issuer, it is not clear that whether
the reference to the AC itself or the AC issuer's PKC need to be
send to the server?

Also, there are no OIDs defined for

  - Build a certification path to a trust anchor;
  - Build a certification path to a trust anchor for the AC 
    issuer

And I think the following statement is not correct.

  "Also, building a validated certification path does 
   not imply revocation status checks."

If the server does not perform revocation status checks,
how does it know the certification path is valid or not?

4. Page 17:
The following paragraph should not appear in section 3.1.4.1:

" SCVP servers SHOULD support serverContextInfo.  SCVP clients MAY 
  support serverContextInfo"

5. Page 18:

The following paragraph should be moved to section 3.1.4.1:

" Neither the clients nor server MUST dereference the URI during SCVP 
  request processing.  The URI is simply used as a reference for the 
  validation policy.  Clients and server MAY dereference the URI as 
  part of configuration."

6. Page 19, 20, 21, 22:
OID names are not consistent. The following substutions are
recommended:

id-bvae-notYetValid -> id-bvae-not-yet-valid

id-bvae-wrong-Anchor -> id-bvae-wrong-anchor

id-bvae-invalid-Key-Usage -> id-bvae-invalid-key-usage

id-bvae-invalid-Purpose -> id-bvae-invalid-purpose

id-bvae-invalid-Policy -> id-bvae-invalid-cert-policy

id-bvae-invalid-Name -> id-bvae-invalid-name

id-bvae-invalid-Entity -> id-bvae-invalid-entity

id-bvae-invalid-Depth -> id-bvae-invalid-path-length

id-bvae-invalidPurpose -> id-bvae-invalid-purpose

id-bvae-invalidCertPolicy -> id-bvae-invalid-cert-policy

id-bvae-invalidName -> id-bvae-invalid-name

id-bvae-invalidEntity -> id-bvae-invalid-entity

id-bvae-invalidPathDepth -> id-bvae-invalid-path-length

id-nvae-unknown-pupose -> id-nvae-unknown-purpose

id-nvae-nameMismatch -> id-nvae-name-mismatch

id-nvae-noCertName -> id-nvae-no-name

id-nvae-unknownPupose -> id-nvae-unknown-purpose

id-nvae-badName -> id-nvae-bad-name

id-nvae-badNameType -> id-nvae-bad-name-type

id-nvae-mixedNames -> id-nvae-mixed-names

7. Page 22:

The following paragraph should not appear in section 3.1.5.2.4:

" The userPolicySet item specifies a list of policy identifiers that 
  the SCVP server MUST use when forming and validating a certificate 
  If certPolicies is not specified, then any-policy MUST be used."

8. Page 64:

In the last paragraph of page 64:

"serverContextInformation" should be "serverContextInfo".

Wen-Cheng Wang

From: "Miguel Rodriguez" <[email-masked]>
To: <[email-masked]>
Subject: RE: Question about CMP(RFC2510)
Date: Wed, 15 Dec 2004 09:05:48 -0600
Importance: Normal
Sender: [email-masked]

OK let's see, I just checked draft-ietf-pkix-rfc2510bis-09.txt where
pvno is defined as follows  (section 5.1.1, page 27) :

pvno    INTEGER  { cmp1999(1), cmp2000(2) }

Now this draft expired on August 12, 2004. My guess is that we'll hear
from the authors of  draft-ietf-pkix-rfc2510bis-09.txt anytime soon,
perhaps this issue will be cleared then. Draft bis07 for RFC2511 has
expired too, I still have to read what Jim Schaad wrote. 

Regards,

Miguel A Rodriguez
SeguriData
Mexico

>-----Original Message-----
>From: [email-masked] 
>[mailto:[email-masked]] On Behalf Of Lee Hyangjin
>Sent: Tuesday, December 14, 2004 8:43 PM
>To: [email-masked]
>Subject: Question about CMP(RFC2510)
>
>
>
>Hi, 
>
>I have a question on 'pvno' described in RFC2510, chapter 
>3.1.1 PKI Message Header.
>
>In this specfication, 'pvno' field is fixed at one(ietf-version2).
>
>So, I tried to find out the previous version(ietf-version1), I 
>couldn't  find out  in IETF web page.
>
>Why is the version2 ? Is there the previous spec?
>
>
>Regards,
>Lee
>
>******************************************
>Hyangjin Lee
> 
>Researcher
>E-Transaction Security Technology Team
>Korea Information Security Agency
>Tel.82-2-4055-446
>Fax.82-2-4055-499
>E-mail: [email-masked]
>******************************************
>

From: [email-masked] (Peter Gutmann)
To: [email-masked], [email-masked]
Subject: Re: Question about CMP(RFC2510)
Date: Wed, 15 Dec 2004 18:38:25 +1300
Sender: [email-masked]

>Hmm, that's a bit of a complex question.

Sorry, I forgot to add:

  Whirr, click, do not ask that question again, whoosh.

Peter.

From: [email-masked] (Peter Gutmann)
To: [email-masked], [email-masked]
Subject: Re: Question about CMP(RFC2510)
Date: Wed, 15 Dec 2004 18:37:32 +1300
Sender: [email-masked]

"Lee Hyangjin" <[email-masked]> writes:

>So, I tried to find out the previous version(ietf-version1), I couldn't  find
>out  in IETF web page.
>
>Why is the version2 ? Is there the previous spec?

Hmm, that's a bit of a complex question.  What was supposed to be CMP didn't
work but there was no way of fixing it, so the version number was changed to
ensure that the form that worked slightly better than the original would look
like something else to any implementation of the original form.  So there's
sort of a version 1 except that there isn't.

Peter.

From: "Lee Hyangjin" <[email-masked]>
To: <[email-masked]>
Subject: Question about CMP(RFC2510)
Date: Wed, 15 Dec 2004 11:42:46 +0900
Sender: [email-masked]

Hi, 

I have a question on 'pvno' described in RFC2510, chapter 3.1.1 PKI Message Header.

In this specfication, 'pvno' field is fixed at one(ietf-version2).

So, I tried to find out the previous version(ietf-version1), I couldn't  find out  in IETF web page.

Why is the version2 ? Is there the previous spec?

Regards,
Lee

******************************************
Hyangjin Lee
 
Researcher
E-Transaction Security Technology Team
Korea Information Security Agency
Tel.82-2-4055-446
Fax.82-2-4055-499
E-mail: [email-masked]
******************************************

Date: Tue, 14 Dec 2004 16:03:49 -0500
From: "David A. Cooper" <[email-masked]>
To: Seth Hitchings <[email-masked]>
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Seth,<br>
<br>
I think that CertChecks should remain a SEQUENCE.&nbsp; While I don't
believe that a query should include more than one of the currently
defined check OIDs, new checks may be defined in the future which could
be used in combination.<br>
<br>
Dave<br>
<br>
Seth Hitchings wrote:<br>
<blockquote type="cite"
 cite="[email-masked]">
  <meta http-equiv="Content-Type" content="text/html; ">
  <title></title>
  <meta content="MSHTML 6.00.2900.2523" name="GENERATOR">
  <div dir="ltr" align="left"><font face="Arial"><font color="#0000ff"><font
 size="2">I<span class="634173817-14122004">f the changes that David
recommends are accepted (which I believe they should be), then is there
any reason for CertChecks to be a sequence of check OIDs? Validation
implies path construction, and status checking implies validation. When
would a client send more than one check?</span></font></font></font></div>
  <div>&nbsp;</div>
  <div><font face="Arial"><font color="#0000ff"><font size="2"><span
 class="634173817-14122004">Seth</span></font></font></font></div>
  <div dir="ltr" align="left"><br>
  </div>
  <div class="OutlookMessageHeader" lang="en-us" dir="ltr" align="left">
  <hr tabindex="-1"><font face="Tahoma" size="2"><b>From:</b>
<a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a> [<a class="moz-txt-link-freetext" href="mailto:[email-masked]">mailto:[email-masked]</a>] <b>On
Behalf Of </b>David A. Cooper<br>
  <b>Sent:</b> Tuesday, December 14, 2004 11:37 AM<br>
  <b>To:</b> Trevor Freeman<br>
  <b>Cc:</b> Denis Pinkas; <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a><br>
  <b>Subject:</b> Re: SCVP 16 comments deadline<br>
  </font><br>
  </div>
Trevor,<br>
  <br>
There seems to be a misunderstanding here.&nbsp; The check in question is:<br>
  <blockquote>Do revocation status checks on the certification path<br>
  </blockquote>
In your response to Denis below, you say:<br>
  <blockquote>If the client has asked for revocation information, I
don't see a full path build for the client certificate is required. You
may build a path for the CA certificate which signed the CRL, but that
is different.<br>
  </blockquote>
There is a disconnect between these two statements.&nbsp; The check requires
the server to perform status checks on <u>the path</u>.&nbsp; In your
response, you refer to <u>the CRL</u>.&nbsp; If the check only required to
server to perform a status check on the end certificate (i.e., the
certificate presented in the request), then your comment would make
sense.&nbsp; However, the check requires the server to perform status checks
on the <u>path</u>.&nbsp; Since SCVP does not allow the client to present a
path to the server, the server <u>MUST</u> build a certification path
in order to perform the id-stc-build-status-checked-pkc-path check,
otherwise the server would not have a certification path for which to
perform status checks.<br>
  <br>
You suggest that the id-stc-build-status-checked-pkc-path check might
be used by itself in a case in which a DPD client has already been able
to build a path.&nbsp; But this does not work, since the server may not
provide status checks on the same certification path as the one
constructed by the client (or the one that the client had previously
obtained from the SCVP server).&nbsp; The client could increase the chances
that the server would use the path that it was interested in by
providing the certificates in the path through the intermediateCerts
field, but this would not guarantee that the server would provide
status checks for this path.<br>
  <br>
As I said in my previous message, if the client wants to server to
provide status checks for the certificates in a particular
certification path, then the client should use OCSP.&nbsp; OCSP allows the
client to ask for status information for a specific set of
certificates, SCVP does not.&nbsp; With SCVP, the client can only specify
the trust anchor and the end certificate; the server MUST build the
remainder of the certification path.&nbsp; So, even if the client only
includes the id-stc-build-status-checked-pkc-path check, there is an
implicit requirement for the server to build a certification path.&nbsp; I
believe that it makes no sense for the server to perform the
id-stc-build-status-checked-pkc-path check on an unvalidated
certification path.&nbsp; That is, I believe that the only sensible use of
this feature is for the server to build a validated certification path
and then perform status checks on that path; there is no benefit to
performing status checks on an unvalidated certification path.&nbsp; Given
this, it makes sense to explicitly indicate that the
id-stc-build-status-checked-pkc-path check requires the server to build
a validated certification path and do revocation status checks on that
certification path.<br>
  <br>
Dave<br>
  <br>
  <br>
Trevor Freeman wrote:<br>
  <blockquote
 cite="[email-masked]"
 type="cite">
    <pre wrap="">* -----Original Message-----
* From: Denis Pinkas [<a class="moz-txt-link-freetext"
 href="mailto:[email-masked]">mailto:[email-masked]</a>]
* Sent: Monday, December 13, 2004 12:35 AM
* To: Trevor Freeman
* Cc: David A. Cooper; <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* &gt; David,
* &gt; No wanting to rathole on this sine time is short, the section of the
* &gt; document in question which Denis referred to is dealing with the set of
* &gt; request that the client can make to the server. We agree that the client
* &gt; can ask for path construction without revocation checking.
* 
* Up to here we agree.
[TF] Good
* 
* &gt; I think it
* &gt; legitimate a DPD client could ask for revocation checking because it has
* &gt; already be able to build a path. Conceivably a DPV client could do the
* &gt; same because it pervious asked for the path to be constructed and just
* &gt; wants the revocation data refreshed.
* 
* Here we do not agree. If a client has already been able to build a path,
* then he provides that path as "useful certificates" and the DPV server will
* necessarily build the path (using or not using these "useful certificates")
* and verify it.
* 
* So if revocation checking is asked for by the client, this necessarily
* mandates path construction.
[TF] what there server does to process the request is orthogonal to the
section in question.  If the client has asked for revocation
information, I don't see a full path build for the client certificate is
required. You may build a path for the CA certificate which signed the
CRL, but that is different.
* 
* Denis
* 
* 
* &gt; However to get to the bottom line, is there a specific problem with the
* &gt; text in section 3.1.2
* &gt; Trevor
* &gt;
* &gt; * -----Original Message-----
* &gt; * From: David A. Cooper [<a class="moz-txt-link-freetext"
 href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * Sent: Thursday, December 09, 2004 2:22 PM
* &gt; * To: Trevor Freeman
* &gt; * Cc: <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* &gt; * Subject: Re: SCVP 16 comments deadline
* &gt; *
* &gt; * Trevor,
* &gt; *
* &gt; * I must say that I agree with Seth and Denis.  I was under the impression
* &gt; * that "Do revocation status checking on the certification path" really
* &gt; * meant "build and validated certification path to a trust anchor and do
* &gt; * revocation status checking on the certification path".  While I can see
* &gt; * that there may be circumstances in which one would request a validated
* &gt; * certification path without requiring revocation status checking, I can't
* &gt; * see requesting revocation status checking without requesting that the
* &gt; * path be validated.
* &gt; *
* &gt; * It is certainly the case that one can not "do revocation status checking
* &gt; * on the certification path" without also building a certification path.
* &gt; * Since the client can not provide a certification path, revocation status
* &gt; * checking must be performed on a path that is built by the server. I
* &gt; * suppose you could argue that this simply means that a well formed query
* &gt; * can not include the id-stc-build-status-checked-pkc-path without also
* &gt; * including either the id-stc-build-pkc-path or
* &gt; * id-stc-build-valid-pkc-path check.  But, I see see the need for this.
* &gt; *
* &gt; * A DPD client would include the id-stc-build-pkc-path along with the
* &gt; * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info wantBacks.
* &gt; * If the DPD client included the id-swb-pkc-revocation-info wantBack, it
* &gt; * wouldn't need to also include the id-stc-build-status-checked-pkc-path
* &gt; * check.  If the DPD client did not include the id-swb-pkc-revocation-info
* &gt; * wantBack, then would not include the id-stc-build-status-checked-pkc-path check.
* &gt; *
* &gt; * So, I would argue that the id-swb-pkc-revocation-info wantBack would
* &gt; * only be used in the case that the client was requesting a validated
* &gt; * certification path.  The way that I had interpreted the currently
* &gt; * defined checks items, an SCVP query would only include one check since
* &gt; * each successive check included the requirements of the previous one:
* &gt; * id-stc-build-valid-pkc-path included the requirement to build a path
* &gt; * (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path
* &gt; * included the requirement to build a validated path
* &gt; * (id-stc-build-valid-pkc-path).
* &gt; *
* &gt; * Under what circumstances can you envision a client wanting the server to
* &gt; * do revocation status checking on a certification path (that is
* &gt; * constructed by the server) without also including a requirement that the
* &gt; * certification path be validated?   If there are no reasonable
* &gt; * circumstances in which a client would make such a query, why is it
* &gt; * necessary for clients to be able to construct such a query?
* &gt; *
* &gt; * Dave
* &gt; *
* &gt; * Trevor Freeman wrote:
* &gt; *
* &gt; * &gt;Hi Seth,
* &gt; * &gt;A server can always go beyond what the client asked for. I don't see
* &gt; * &gt;that as strictly necessary in all cases such as if the client just asks
* &gt; * &gt;for revocation. Untimely is a matter of local server policy. What the
* &gt; * &gt;server cannot do is return status or errors relating to the other
* &gt; * &gt;activities which  were beyond the request scope.
* &gt; * &gt;Trevor
* &gt; * &gt;
* &gt; * While it might make sense for a client to only ask for revocation
* &gt; * checking if the client could specify the certification path, it does not
* &gt; * seem to make sense given that the server chooses the certification path
* &gt; * for which revocation status checking will be performed.  If the client
* &gt; * wants to specify a set of certificates for which it only wants to know
* &gt; * the revocation status, that is what OCSP is for.
* &gt; *
* &gt; * &gt;
* &gt; * &gt;* -----Original Message-----
* &gt; * &gt;* From: Seth Hitchings [<a class="moz-txt-link-freetext"
 href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * &gt;* Sent: Wednesday, December 08, 2004 11:34 AM
* &gt; * &gt;* To: Trevor Freeman
* &gt; * &gt;* Cc: <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* Subject: RE: SCVP 16 comments deadline
* &gt; * &gt;*
* &gt; * &gt;* Trevor,
* &gt; * &gt;*
* &gt; * &gt;* For clarification, I assume that doing revocation status checks on a path
* &gt; * &gt;* implies building a validated path?
* &gt; * &gt;*
* &gt; * &gt;* If I am correct, in what case would a client ever send more than one check?
* &gt; * &gt;*
* &gt; * &gt;* Seth
* &gt; * &gt;*
* &gt; * &gt;* -----Original Message-----
* &gt; * &gt;* From: <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;[<a class="moz-txt-link-freetext"
 href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * &gt;* On Behalf Of
* &gt; * &gt;* Trevor Freeman
* &gt; * &gt;* Sent: Wednesday, December 08, 2004 1:42 PM
* &gt; * &gt;* To: Denis Pinkas
* &gt; * &gt;* Cc: <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* Subject: RE: SCVP 16 comments deadline
* &gt; * &gt;*
* &gt; * &gt;*
* &gt; * &gt;* Denis,
* &gt; * &gt;* I know of several systems who's policy is never to revoke the identity certificate because
* &gt; * &gt;* they have other mechanisms to address the issue.
* &gt; * &gt;* They are using authorization bound to the identity and they either rely on short lived
* &gt; * &gt;* authorization assertions or revoke the authorization privilege assonated with the
* &gt; * &gt;* identity. Therefore in those cases not checking the revocation status of the certificate
* &gt; * &gt;* makes perfect sense.
* &gt; * &gt;* Trevor
* &gt; * &gt;*
* &gt; * &gt;* * -----Original Message-----
* &gt; * &gt;* * From: <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* [<a class="moz-txt-link-freetext"
 href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * &gt;* * On Behalf Of Denis Pinkas
* &gt; * &gt;* * Sent: Wednesday, December 08, 2004 8:01 AM
* &gt; * &gt;* * To: Trevor Freeman
* &gt; * &gt;* * Cc: <a class="moz-txt-link-abbreviated"
 href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* * Subject: Re: SCVP 16 comments deadline
* &gt; * &gt;* *
* &gt; * &gt;* *
* &gt; * &gt;* * Trevor,
* &gt; * &gt;* *
* &gt; * &gt;* * &gt; Hi Denis,
* &gt; * &gt;* * &gt; Below are responses to 1-16. Others will follow later.
* &gt; * &gt;* *
* &gt; * &gt;* * I am pleased that you accepted comments 13, 14, 15 and 16.
* &gt; * &gt;* * Among this list, I have a further remark on comment 4.
* &gt; * &gt;* *
* &gt; * &gt;* * &gt; * 4. Page 13. Typo. Section 3.1.2 "checks"
* &gt; * &gt;* * &gt; * The two following lines are in fact one line:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; * Change:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Build a validated certification path to a trust anchor; and
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Do revocation status checks on the certification path.
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; * into:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Build a validated certification path to a trust anchor and
* &gt; * &gt;* * &gt; *        do revocation status checks on the certification path.
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; [TF] Since this paragraph is listing the possible checks and building a
* &gt; * &gt;* * &gt; path is a separate check to revocation checking, I think the current
* &gt; * &gt;* * &gt; text is more accurate.
* &gt; * &gt;* *
* &gt; * &gt;* * I agree that "building a path is a separate check to revocation checking",
* &gt; * &gt;* * but revocation checking without building a validated path does not make sense.
* &gt; * &gt;* *
* &gt; * &gt;* * The full text currently is:
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a certification path to a trust anchor;
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a validated certification path to a trust anchor; and
* &gt; * &gt;* *
* &gt; * &gt;* *      - Do revocation status checks on the certification path.
* &gt; * &gt;* *
* &gt; * &gt;* * The full text should be:
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a certification path to a trust anchor;
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a validated certification path to a trust anchor; and
* &gt; * &gt;* *        do revocation status checks on the certification path.
* &gt; * &gt;* *
* &gt; * &gt;* * Denis</pre>
  </blockquote>
  <br>
</blockquote>
<br>
</body>
</html>

Date: Tue, 14 Dec 2004 19:19:49 +0100
From: Massimiliano Pala <[email-masked]>
Organization: Politecnico di Torino
To: "David A. Cooper" <[email-masked]>
CC: [email-masked]
Subject: Re: Proposed Changes to RFC 3280
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms010800040900040204050304
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

David A. Cooper wrote:
> Massimiliano,
> 
> The main reason that the nextUpdate field is needed is that CRLs are 
> distributed through untrusted mechanisms.
[...]
> Since a CRL issuer can publish a new CRL at any time, I can never be 
> certain that I have obtained the most recent CRL.  However, if the CRL 
> includes a nextUpdate time and the current time is after the specified 
> nextUpdate time, then I can be certain that I DO NOT have the most 
> recent CRL.  So, if a CRL issuer always included a nextUpdate time that 
> was 24 hours after the thisUpdate time, an attacker could never trick me 
> into using a CRL that is more than 24 hours out of date.
 >
> If a CRL did not include a nextUpdate time and the issuer only published 
> a new CRL when the revokedCertificates list changed, an attacker could 
> trick me into using an old CRL, no matter how much time had passed since 
> the CRL issuer had published a newer CRL.

You are right, the problem exists. But I think this is a repository-related
problem, not CRL-related. The problem raises from the lack of trust when
distributing CRLs.
To avoid the possibility for an attacker to provide old CRLs, some sort
of trusted channel should be used (e.g. an SSL/TLS channel - if I can
verify the CRL, then I should be able to establish such a channel) for
CRL retrieving.

Anyway, if I am worried about the attack you are envisaging above and
I do not want to use trusted distribution channels, then I still can use
the nextUpdate field - by making it optional it does not mean it is not
possible to use it, right?

> As to your other concern, technically the nextUpdate field is not an 
[...]
> that a newer CRL must be available, the relying party can continue to 
> use the older CRL.

This is something that I never understood, and I think everyone is trying
to avoid in its own PKIs (but this is a personal vision about CRLs).

> If you are worried about the the possibility that the repository will be 
> overloaded with requests from clients when the nextUpdate time in a CRL 
> is reached, there are tricks that you can use to avoid this problem.  In 
> "A Model of Certificate Revocation (see 
> http://csrc.nist.gov/pki/PKImodels/welcome.html), I describe a technique 
> that I call over-issued CRLs that helps to address this problem.

I will take a look at this, thanks for the pointer. Anyway, the fact you
have written the paper indicates that the possibility of an overload of the
repository does exist, right?

-- 

Best Regards,

	Massimiliano Pala

--o------------------------------------------------------------------------
Massimiliano Pala [OpenCA Project Manager]      [email-masked]
                                                 Tel.:   +39 (0)11  564 7081
http://security.polito.it                       Fax:    +39   178  270 2077
                                                 Mobile: +39 (0)347 7222 365

Politecnico di Torino (EuroPKI)
Certification Authority Informations:

Authority Access Point                                  http://ca.polito.it
Authority's Certificate:          http://ca.polito.it/ca_cert/en_index.html
Certificate Revocation List:              http://ca.polito.it/crl02/crl.crl
--o------------------------------------------------------------------------

--------------ms010800040900040204050304
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms010800040900040204050304--

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Tue, 14 Dec 2004 12:40:26 -0500
From: "Seth Hitchings" <[email-masked]>
To: "David A. Cooper" <[email-masked]>, "Trevor Freeman" <[email-masked]>
Cc: "Denis Pinkas" <[email-masked]>, <[email-masked]>
Sender: [email-masked]

This is a multi-part message in MIME format.

------_=_NextPart_001_01C4E203.FF60FACE
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

If the changes that David recommends are accepted (which I believe they
should be), then is there any reason for CertChecks to be a sequence of
check OIDs? Validation implies path construction, and status checking
implies validation. When would a client send more than one check?
=20
Seth

  _____ =20

From: [email-masked] [mailto:[email-masked]]
On Behalf Of David A. Cooper
Sent: Tuesday, December 14, 2004 11:37 AM
To: Trevor Freeman
Cc: Denis Pinkas; [email-masked]
Subject: Re: SCVP 16 comments deadline

Trevor,

There seems to be a misunderstanding here.  The check in question is:

Do revocation status checks on the certification path

In your response to Denis below, you say:

If the client has asked for revocation information, I don't see a full
path build for the client certificate is required. You may build a path
for the CA certificate which signed the CRL, but that is different.

There is a disconnect between these two statements.  The check requires
the server to perform status checks on the path.  In your response, you
refer to the CRL.  If the check only required to server to perform a
status check on the end certificate (i.e., the certificate presented in
the request), then your comment would make sense.  However, the check
requires the server to perform status checks on the path.  Since SCVP
does not allow the client to present a path to the server, the server
MUST build a certification path in order to perform the
id-stc-build-status-checked-pkc-path check, otherwise the server would
not have a certification path for which to perform status checks.

You suggest that the id-stc-build-status-checked-pkc-path check might be
used by itself in a case in which a DPD client has already been able to
build a path.  But this does not work, since the server may not provide
status checks on the same certification path as the one constructed by
the client (or the one that the client had previously obtained from the
SCVP server).  The client could increase the chances that the server
would use the path that it was interested in by providing the
certificates in the path through the intermediateCerts field, but this
would not guarantee that the server would provide status checks for this
path.

As I said in my previous message, if the client wants to server to
provide status checks for the certificates in a particular certification
path, then the client should use OCSP.  OCSP allows the client to ask
for status information for a specific set of certificates, SCVP does
not.  With SCVP, the client can only specify the trust anchor and the
end certificate; the server MUST build the remainder of the
certification path.  So, even if the client only includes the
id-stc-build-status-checked-pkc-path check, there is an implicit
requirement for the server to build a certification path.  I believe
that it makes no sense for the server to perform the
id-stc-build-status-checked-pkc-path check on an unvalidated
certification path.  That is, I believe that the only sensible use of
this feature is for the server to build a validated certification path
and then perform status checks on that path; there is no benefit to
performing status checks on an unvalidated certification path.  Given
this, it makes sense to explicitly indicate that the
id-stc-build-status-checked-pkc-path check requires the server to build
a validated certification path and do revocation status checks on that
certification path.

Dave

Trevor Freeman wrote:

* -----Original Message-----

* From: Denis Pinkas [mailto:[email-masked]]

* Sent: Monday, December 13, 2004 12:35 AM

* To: Trevor Freeman

* Cc: David A. Cooper; [email-masked]

* Subject: Re: SCVP 16 comments deadline

*=20

* Trevor,

*=20

* > David,

* > No wanting to rathole on this sine time is short, the section of the

* > document in question which Denis referred to is dealing with the set
of

* > request that the client can make to the server. We agree that the
client

* > can ask for path construction without revocation checking.

*=20

* Up to here we agree.

[TF] Good

*=20

* > I think it

* > legitimate a DPD client could ask for revocation checking because it
has

* > already be able to build a path. Conceivably a DPV client could do
the

* > same because it pervious asked for the path to be constructed and
just

* > wants the revocation data refreshed.

*=20

* Here we do not agree. If a client has already been able to build a
path,

* then he provides that path as "useful certificates" and the DPV server
will

* necessarily build the path (using or not using these "useful
certificates")

* and verify it.

*=20

* So if revocation checking is asked for by the client, this necessarily

* mandates path construction.

[TF] what there server does to process the request is orthogonal to the

section in question.  If the client has asked for revocation

information, I don't see a full path build for the client certificate is

required. You may build a path for the CA certificate which signed the

CRL, but that is different.

*=20

* Denis

*=20

*=20

* > However to get to the bottom line, is there a specific problem with
the

* > text in section 3.1.2

* > Trevor

* >

* > * -----Original Message-----

* > * From: David A. Cooper [mailto:[email-masked]]

* > * Sent: Thursday, December 09, 2004 2:22 PM

* > * To: Trevor Freeman

* > * Cc: [email-masked]

* > * Subject: Re: SCVP 16 comments deadline

* > *

* > * Trevor,

* > *

* > * I must say that I agree with Seth and Denis.  I was under the
impression

* > * that "Do revocation status checking on the certification path"
really

* > * meant "build and validated certification path to a trust anchor
and do

* > * revocation status checking on the certification path".  While I
can see

* > * that there may be circumstances in which one would request a
validated

* > * certification path without requiring revocation status checking, I
can't

* > * see requesting revocation status checking without requesting that
the

* > * path be validated.

* > *

* > * It is certainly the case that one can not "do revocation status
checking

* > * on the certification path" without also building a certification
path.

* > * Since the client can not provide a certification path, revocation
status

* > * checking must be performed on a path that is built by the server.
I

* > * suppose you could argue that this simply means that a well formed
query

* > * can not include the id-stc-build-status-checked-pkc-path without
also

* > * including either the id-stc-build-pkc-path or

* > * id-stc-build-valid-pkc-path check.  But, I see see the need for
this.

* > *

* > * A DPD client would include the id-stc-build-pkc-path along with
the

* > * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info
wantBacks.

* > * If the DPD client included the id-swb-pkc-revocation-info
wantBack, it

* > * wouldn't need to also include the
id-stc-build-status-checked-pkc-path

* > * check.  If the DPD client did not include the
id-swb-pkc-revocation-info

* > * wantBack, then would not include the
id-stc-build-status-checked-pkc-path check.

* > *

* > * So, I would argue that the id-swb-pkc-revocation-info wantBack
would

* > * only be used in the case that the client was requesting a
validated

* > * certification path.  The way that I had interpreted the currently

* > * defined checks items, an SCVP query would only include one check
since

* > * each successive check included the requirements of the previous
one:

* > * id-stc-build-valid-pkc-path included the requirement to build a
path

* > * (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path

* > * included the requirement to build a validated path

* > * (id-stc-build-valid-pkc-path).

* > *

* > * Under what circumstances can you envision a client wanting the
server to

* > * do revocation status checking on a certification path (that is

* > * constructed by the server) without also including a requirement
that the

* > * certification path be validated?   If there are no reasonable

* > * circumstances in which a client would make such a query, why is it

* > * necessary for clients to be able to construct such a query?

* > *

* > * Dave

* > *

* > * Trevor Freeman wrote:

* > *

* > * >Hi Seth,

* > * >A server can always go beyond what the client asked for. I don't
see

* > * >that as strictly necessary in all cases such as if the client
just asks

* > * >for revocation. Untimely is a matter of local server policy. What
the

* > * >server cannot do is return status or errors relating to the other

* > * >activities which  were beyond the request scope.

* > * >Trevor

* > * >

* > * While it might make sense for a client to only ask for revocation

* > * checking if the client could specify the certification path, it
does not

* > * seem to make sense given that the server chooses the certification
path

* > * for which revocation status checking will be performed.  If the
client

* > * wants to specify a set of certificates for which it only wants to
know

* > * the revocation status, that is what OCSP is for.

* > *

* > * >

* > * >* -----Original Message-----

* > * >* From: Seth Hitchings [mailto:[email-masked]]

* > * >* Sent: Wednesday, December 08, 2004 11:34 AM

* > * >* To: Trevor Freeman

* > * >* Cc: [email-masked]

* > * >* Subject: RE: SCVP 16 comments deadline

* > * >*

* > * >* Trevor,

* > * >*

* > * >* For clarification, I assume that doing revocation status checks
on a path

* > * >* implies building a validated path?

* > * >*

* > * >* If I am correct, in what case would a client ever send more
than one check?

* > * >*

* > * >* Seth

* > * >*

* > * >* -----Original Message-----

* > * >* From: [email-masked]

* > * >[mailto:[email-masked]]

* > * >* On Behalf Of

* > * >* Trevor Freeman

* > * >* Sent: Wednesday, December 08, 2004 1:42 PM

* > * >* To: Denis Pinkas

* > * >* Cc: [email-masked]

* > * >* Subject: RE: SCVP 16 comments deadline

* > * >*

* > * >*

* > * >* Denis,

* > * >* I know of several systems who's policy is never to revoke the
identity certificate because

* > * >* they have other mechanisms to address the issue.

* > * >* They are using authorization bound to the identity and they
either rely on short lived

* > * >* authorization assertions or revoke the authorization privilege
assonated with the

* > * >* identity. Therefore in those cases not checking the revocation
status of the certificate

* > * >* makes perfect sense.

* > * >* Trevor

* > * >*

* > * >* * -----Original Message-----

* > * >* * From: [email-masked]

* > * >* [mailto:[email-masked]]

* > * >* * On Behalf Of Denis Pinkas

* > * >* * Sent: Wednesday, December 08, 2004 8:01 AM

* > * >* * To: Trevor Freeman

* > * >* * Cc: [email-masked]

* > * >* * Subject: Re: SCVP 16 comments deadline

* > * >* *

* > * >* *

* > * >* * Trevor,

* > * >* *

* > * >* * > Hi Denis,

* > * >* * > Below are responses to 1-16. Others will follow later.

* > * >* *

* > * >* * I am pleased that you accepted comments 13, 14, 15 and 16.

* > * >* * Among this list, I have a further remark on comment 4.

* > * >* *

* > * >* * > * 4. Page 13. Typo. Section 3.1.2 "checks"

* > * >* * > * The two following lines are in fact one line:

* > * >* * > *

* > * >* * > * Change:

* > * >* * > *

* > * >* * > *      - Build a validated certification path to a trust
anchor; and

* > * >* * > *

* > * >* * > *      - Do revocation status checks on the certification
path.

* > * >* * > *

* > * >* * > * into:

* > * >* * > *

* > * >* * > *      - Build a validated certification path to a trust
anchor and

* > * >* * > *        do revocation status checks on the certification
path.

* > * >* * > *

* > * >* * > [TF] Since this paragraph is listing the possible checks
and building a

* > * >* * > path is a separate check to revocation checking, I think
the current

* > * >* * > text is more accurate.

* > * >* *

* > * >* * I agree that "building a path is a separate check to
revocation checking",

* > * >* * but revocation checking without building a validated path
does not make sense.

* > * >* *

* > * >* * The full text currently is:

* > * >* *

* > * >* *      - Build a certification path to a trust anchor;

* > * >* *

* > * >* *      - Build a validated certification path to a trust
anchor; and

* > * >* *

* > * >* *      - Do revocation status checks on the certification path.

* > * >* *

* > * >* * The full text should be:

* > * >* *

* > * >* *      - Build a certification path to a trust anchor;

* > * >* *

* > * >* *      - Build a validated certification path to a trust
anchor; and

* > * >* *        do revocation status checks on the certification path.

* > * >* *

* > * >* * Denis

------_=_NextPart_001_01C4E203.FF60FACE
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<TITLE></TITLE>

<META content=3D"MSHTML 6.00.2900.2523" name=3DGENERATOR></HEAD>
<BODY text=3D#000000 bgColor=3D#ffffff>
<DIV dir=3Dltr align=3Dleft><SPAN =
class=3D634173817-14122004></SPAN><FONT=20
face=3DArial><FONT color=3D#0000ff><FONT size=3D2>I<SPAN =
class=3D634173817-14122004>f=20
the changes that David recommends are accepted (which I believe they =
should be),=20
then is there any reason for CertChecks to be a sequence of check OIDs?=20
Validation implies path construction, and status checking implies =
validation.=20
When would a client send more than one =
check?</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial><FONT color=3D#0000ff><FONT size=3D2><SPAN=20
class=3D634173817-14122004></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial><FONT color=3D#0000ff><FONT size=3D2><SPAN=20
class=3D634173817-14122004>Seth</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=3Dltr align=3Dleft><BR></DIV>
<DIV class=3DOutlookMessageHeader lang=3Den-us dir=3Dltr align=3Dleft>
<HR tabIndex=3D-1>
<FONT face=3DTahoma size=3D2><B>From:</B> [email-masked]=20
[mailto:[email-masked]] <B>On Behalf Of </B>David A.=20
Cooper<BR><B>Sent:</B> Tuesday, December 14, 2004 11:37 AM<BR><B>To:</B> =
Trevor=20
Freeman<BR><B>Cc:</B> Denis Pinkas; [email-masked]<BR><B>Subject:</B> =
Re:=20
SCVP 16 comments deadline<BR></FONT><BR></DIV>
<DIV></DIV>Trevor,<BR><BR>There seems to be a misunderstanding =
here.&nbsp; The=20
check in question is:<BR>
<BLOCKQUOTE>Do revocation status checks on the certification=20
path<BR></BLOCKQUOTE>In your response to Denis below, you say:<BR>
<BLOCKQUOTE>If the client has asked for revocation information, I don't =
see a=20
  full path build for the client certificate is required. You may build =
a path=20
  for the CA certificate which signed the CRL, but that is=20
different.<BR></BLOCKQUOTE>There is a disconnect between these two=20
statements.&nbsp; The check requires the server to perform status checks =
on=20
<U>the path</U>.&nbsp; In your response, you refer to <U>the =
CRL</U>.&nbsp; If=20
the check only required to server to perform a status check on the end=20
certificate (i.e., the certificate presented in the request), then your =
comment=20
would make sense.&nbsp; However, the check requires the server to =
perform status=20
checks on the <U>path</U>.&nbsp; Since SCVP does not allow the client to =
present=20
a path to the server, the server <U>MUST</U> build a certification path =
in order=20
to perform the id-stc-build-status-checked-pkc-path check, otherwise the =
server=20
would not have a certification path for which to perform status=20
checks.<BR><BR>You suggest that the id-stc-build-status-checked-pkc-path =
check=20
might be used by itself in a case in which a DPD client has already been =
able to=20
build a path.&nbsp; But this does not work, since the server may not =
provide=20
status checks on the same certification path as the one constructed by =
the=20
client (or the one that the client had previously obtained from the SCVP =

server).&nbsp; The client could increase the chances that the server =
would use=20
the path that it was interested in by providing the certificates in the =
path=20
through the intermediateCerts field, but this would not guarantee that =
the=20
server would provide status checks for this path.<BR><BR>As I said in my =

previous message, if the client wants to server to provide status checks =
for the=20
certificates in a particular certification path, then the client should =
use=20
OCSP.&nbsp; OCSP allows the client to ask for status information for a =
specific=20
set of certificates, SCVP does not.&nbsp; With SCVP, the client can only =
specify=20
the trust anchor and the end certificate; the server MUST build the =
remainder of=20
the certification path.&nbsp; So, even if the client only includes the=20
id-stc-build-status-checked-pkc-path check, there is an implicit =
requirement for=20
the server to build a certification path.&nbsp; I believe that it makes =
no sense=20
for the server to perform the id-stc-build-status-checked-pkc-path check =
on an=20
unvalidated certification path.&nbsp; That is, I believe that the only =
sensible=20
use of this feature is for the server to build a validated certification =
path=20
and then perform status checks on that path; there is no benefit to =
performing=20
status checks on an unvalidated certification path.&nbsp; Given this, it =
makes=20
sense to explicitly indicate that the =
id-stc-build-status-checked-pkc-path check=20
requires the server to build a validated certification path and do =
revocation=20
status checks on that certification path.<BR><BR>Dave<BR><BR><BR>Trevor =
Freeman=20
wrote:<BR>
<BLOCKQUOTE=20
cite=[email-masked]=
orp.microsoft.com=20
type=3D"cite"><PRE wrap=3D"">* -----Original Message-----
* From: Denis Pinkas [<A class=3Dmoz-txt-link-freetext =
href=3D"mailto:[email-masked]">mailto:[email-masked]</A>]
* Sent: Monday, December 13, 2004 12:35 AM
* To: Trevor Freeman
* Cc: David A. Cooper; <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]</A>
* Subject: Re: SCVP 16 comments deadline
*=20
* Trevor,
*=20
* &gt; David,
* &gt; No wanting to rathole on this sine time is short, the section of =
the
* &gt; document in question which Denis referred to is dealing with the =
set of
* &gt; request that the client can make to the server. We agree that the =
client
* &gt; can ask for path construction without revocation checking.
*=20
* Up to here we agree.
[TF] Good
*=20
* &gt; I think it
* &gt; legitimate a DPD client could ask for revocation checking because =
it has
* &gt; already be able to build a path. Conceivably a DPV client could =
do the
* &gt; same because it pervious asked for the path to be constructed and =
just
* &gt; wants the revocation data refreshed.
*=20
* Here we do not agree. If a client has already been able to build a =
path,
* then he provides that path as "useful certificates" and the DPV server =
will
* necessarily build the path (using or not using these "useful =
certificates")
* and verify it.
*=20
* So if revocation checking is asked for by the client, this necessarily
* mandates path construction.
[TF] what there server does to process the request is orthogonal to the
section in question.  If the client has asked for revocation
information, I don't see a full path build for the client certificate is
required. You may build a path for the CA certificate which signed the
CRL, but that is different.
*=20
* Denis
*=20
*=20
* &gt; However to get to the bottom line, is there a specific problem =
with the
* &gt; text in section 3.1.2
* &gt; Trevor
* &gt;
* &gt; * -----Original Message-----
* &gt; * From: David A. Cooper [<A class=3Dmoz-txt-link-freetext =
href=3D"mailto:[email-masked]">mailto:[email-masked]</A>]
* &gt; * Sent: Thursday, December 09, 2004 2:22 PM
* &gt; * To: Trevor Freeman
* &gt; * Cc: <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]</A>
* &gt; * Subject: Re: SCVP 16 comments deadline
* &gt; *
* &gt; * Trevor,
* &gt; *
* &gt; * I must say that I agree with Seth and Denis.  I was under the =
impression
* &gt; * that "Do revocation status checking on the certification path" =
really
* &gt; * meant "build and validated certification path to a trust anchor =
and do
* &gt; * revocation status checking on the certification path".  While I =
can see
* &gt; * that there may be circumstances in which one would request a =
validated
* &gt; * certification path without requiring revocation status =
checking, I can't
* &gt; * see requesting revocation status checking without requesting =
that the
* &gt; * path be validated.
* &gt; *
* &gt; * It is certainly the case that one can not "do revocation status =
checking
* &gt; * on the certification path" without also building a =
certification path.
* &gt; * Since the client can not provide a certification path, =
revocation status
* &gt; * checking must be performed on a path that is built by the =
server. I
* &gt; * suppose you could argue that this simply means that a well =
formed query
* &gt; * can not include the id-stc-build-status-checked-pkc-path =
without also
* &gt; * including either the id-stc-build-pkc-path or
* &gt; * id-stc-build-valid-pkc-path check.  But, I see see the need for =
this.
* &gt; *
* &gt; * A DPD client would include the id-stc-build-pkc-path along with =
the
* &gt; * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info =
wantBacks.
* &gt; * If the DPD client included the id-swb-pkc-revocation-info =
wantBack, it
* &gt; * wouldn't need to also include the =
id-stc-build-status-checked-pkc-path
* &gt; * check.  If the DPD client did not include the =
id-swb-pkc-revocation-info
* &gt; * wantBack, then would not include the =
id-stc-build-status-checked-pkc-path check.
* &gt; *
* &gt; * So, I would argue that the id-swb-pkc-revocation-info wantBack =
would
* &gt; * only be used in the case that the client was requesting a =
validated
* &gt; * certification path.  The way that I had interpreted the =
currently
* &gt; * defined checks items, an SCVP query would only include one =
check since
* &gt; * each successive check included the requirements of the previous =
one:
* &gt; * id-stc-build-valid-pkc-path included the requirement to build a =
path
* &gt; * (id-stc-build-pkc-path) and =
id-stc-build-status-checked-pkc-path
* &gt; * included the requirement to build a validated path
* &gt; * (id-stc-build-valid-pkc-path).
* &gt; *
* &gt; * Under what circumstances can you envision a client wanting the =
server to
* &gt; * do revocation status checking on a certification path (that is
* &gt; * constructed by the server) without also including a requirement =
that the
* &gt; * certification path be validated?   If there are no reasonable
* &gt; * circumstances in which a client would make such a query, why is =
it
* &gt; * necessary for clients to be able to construct such a query?
* &gt; *
* &gt; * Dave
* &gt; *
* &gt; * Trevor Freeman wrote:
* &gt; *
* &gt; * &gt;Hi Seth,
* &gt; * &gt;A server can always go beyond what the client asked for. I =
don't see
* &gt; * &gt;that as strictly necessary in all cases such as if the =
client just asks
* &gt; * &gt;for revocation. Untimely is a matter of local server =
policy. What the
* &gt; * &gt;server cannot do is return status or errors relating to the =
other
* &gt; * &gt;activities which  were beyond the request scope.
* &gt; * &gt;Trevor
* &gt; * &gt;
* &gt; * While it might make sense for a client to only ask for =
revocation
* &gt; * checking if the client could specify the certification path, it =
does not
* &gt; * seem to make sense given that the server chooses the =
certification path
* &gt; * for which revocation status checking will be performed.  If the =
client
* &gt; * wants to specify a set of certificates for which it only wants =
to know
* &gt; * the revocation status, that is what OCSP is for.
* &gt; *
* &gt; * &gt;
* &gt; * &gt;* -----Original Message-----
* &gt; * &gt;* From: Seth Hitchings [<A class=3Dmoz-txt-link-freetext =
href=3D"mailto:[email-masked]">mailto:[email-masked]=
m</A>]
* &gt; * &gt;* Sent: Wednesday, December 08, 2004 11:34 AM
* &gt; * &gt;* To: Trevor Freeman
* &gt; * &gt;* Cc: <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]</A>
* &gt; * &gt;* Subject: RE: SCVP 16 comments deadline
* &gt; * &gt;*
* &gt; * &gt;* Trevor,
* &gt; * &gt;*
* &gt; * &gt;* For clarification, I assume that doing revocation status =
checks on a path
* &gt; * &gt;* implies building a validated path?
* &gt; * &gt;*
* &gt; * &gt;* If I am correct, in what case would a client ever send =
more than one check?
* &gt; * &gt;*
* &gt; * &gt;* Seth
* &gt; * &gt;*
* &gt; * &gt;* -----Original Message-----
* &gt; * &gt;* From: <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]=
</A>
* &gt; * &gt;[<A class=3Dmoz-txt-link-freetext =
href=3D"mailto:[email-masked]">mailto:owner-ietf-pkix@mail.=
imc.org</A>]
* &gt; * &gt;* On Behalf Of
* &gt; * &gt;* Trevor Freeman
* &gt; * &gt;* Sent: Wednesday, December 08, 2004 1:42 PM
* &gt; * &gt;* To: Denis Pinkas
* &gt; * &gt;* Cc: <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]</A>
* &gt; * &gt;* Subject: RE: SCVP 16 comments deadline
* &gt; * &gt;*
* &gt; * &gt;*
* &gt; * &gt;* Denis,
* &gt; * &gt;* I know of several systems who's policy is never to revoke =
the identity certificate because
* &gt; * &gt;* they have other mechanisms to address the issue.
* &gt; * &gt;* They are using authorization bound to the identity and =
they either rely on short lived
* &gt; * &gt;* authorization assertions or revoke the authorization =
privilege assonated with the
* &gt; * &gt;* identity. Therefore in those cases not checking the =
revocation status of the certificate
* &gt; * &gt;* makes perfect sense.
* &gt; * &gt;* Trevor
* &gt; * &gt;*
* &gt; * &gt;* * -----Original Message-----
* &gt; * &gt;* * From: <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]=
</A>
* &gt; * &gt;* [<A class=3Dmoz-txt-link-freetext =
href=3D"mailto:[email-masked]">mailto:owner-ietf-pkix@mail.=
imc.org</A>]
* &gt; * &gt;* * On Behalf Of Denis Pinkas
* &gt; * &gt;* * Sent: Wednesday, December 08, 2004 8:01 AM
* &gt; * &gt;* * To: Trevor Freeman
* &gt; * &gt;* * Cc: <A class=3Dmoz-txt-link-abbreviated =
href=3D"mailto:[email-masked]">[email-masked]</A>
* &gt; * &gt;* * Subject: Re: SCVP 16 comments deadline
* &gt; * &gt;* *
* &gt; * &gt;* *
* &gt; * &gt;* * Trevor,
* &gt; * &gt;* *
* &gt; * &gt;* * &gt; Hi Denis,
* &gt; * &gt;* * &gt; Below are responses to 1-16. Others will follow =
later.
* &gt; * &gt;* *
* &gt; * &gt;* * I am pleased that you accepted comments 13, 14, 15 and =
16.
* &gt; * &gt;* * Among this list, I have a further remark on comment 4.
* &gt; * &gt;* *
* &gt; * &gt;* * &gt; * 4. Page 13. Typo. Section 3.1.2 "checks"
* &gt; * &gt;* * &gt; * The two following lines are in fact one line:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; * Change:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Build a validated certification path to a =
trust anchor; and
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Do revocation status checks on the =
certification path.
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; * into:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Build a validated certification path to a =
trust anchor and
* &gt; * &gt;* * &gt; *        do revocation status checks on the =
certification path.
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; [TF] Since this paragraph is listing the possible =
checks and building a
* &gt; * &gt;* * &gt; path is a separate check to revocation checking, I =
think the current
* &gt; * &gt;* * &gt; text is more accurate.
* &gt; * &gt;* *
* &gt; * &gt;* * I agree that "building a path is a separate check to =
revocation checking",
* &gt; * &gt;* * but revocation checking without building a validated =
path does not make sense.
* &gt; * &gt;* *
* &gt; * &gt;* * The full text currently is:
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a certification path to a trust anchor;
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a validated certification path to a trust =
anchor; and
* &gt; * &gt;* *
* &gt; * &gt;* *      - Do revocation status checks on the certification =
path.
* &gt; * &gt;* *
* &gt; * &gt;* * The full text should be:
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a certification path to a trust anchor;
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a validated certification path to a trust =
anchor; and
* &gt; * &gt;* *        do revocation status checks on the certification =
path.
* &gt; * &gt;* *
* &gt; * &gt;* * Denis</PRE></BLOCKQUOTE><BR></BODY></HTML>

------_=_NextPart_001_01C4E203.FF60FACE--

Date: Tue, 14 Dec 2004 12:08:44 -0500
From: "David A. Cooper" <[email-masked]>
To: Massimiliano Pala <[email-masked]>
CC: [email-masked]
Subject: Re: Proposed Changes to RFC 3280
Sender: [email-masked]

Massimiliano,

The main reason that the nextUpdate field is needed is that CRLs are 
distributed through untrusted mechanisms.

If I get a CRL from a directory, Web server, or whatever, I can verify 
the signature on the CRL to ensure that the CRL was really issued by the 
proper authority, but there are still two possibilities:

(1) I have obtained the most recently issued CRL; or

(2) The CRL that I have obtained is not the most recent one (an 
attacker, by some means, has caused me to get an older CRL).

Since a CRL issuer can publish a new CRL at any time, I can never be 
certain that I have obtained the most recent CRL.  However, if the CRL 
includes a nextUpdate time and the current time is after the specified 
nextUpdate time, then I can be certain that I DO NOT have the most 
recent CRL.  So, if a CRL issuer always included a nextUpdate time that 
was 24 hours after the thisUpdate time, an attacker could never trick me 
into using a CRL that is more than 24 hours out of date.

If a CRL did not include a nextUpdate time and the issuer only published 
a new CRL when the revokedCertificates list changed, an attacker could 
trick me into using an old CRL, no matter how much time had passed since 
the CRL issuer had published a newer CRL.

As to your other concern, technically the nextUpdate field is not an 
expiration time.  The nextUpdate field indicates that a new CRL will be 
published no later than the specified time.  A CRL issuer may publish a 
new CRL before the nextUpdate time.  However, the CRL issuer promises 
that if the nextUpdate time has passed, then a newer CRL will have been 
published.  Even if the relying party knows, from the nextUpdate time, 
that a newer CRL must be available, the relying party can continue to 
use the older CRL.

If you are worried about the the possibility that the repository will be 
overloaded with requests from clients when the nextUpdate time in a CRL 
is reached, there are tricks that you can use to avoid this problem.  In 
"A Model of Certificate Revocation (see 
http://csrc.nist.gov/pki/PKImodels/welcome.html), I describe a technique 
that I call over-issued CRLs that helps to address this problem.

Dave

Stefan Santesson wrote:

>Massimiliano,
>
>There seem to be some confusion with your proposal.
>
>The NextUpdate field certainly don't force clients to get a new CRL when
>they expire. It is perfectly compliant already to wait to get a new CRL
>when you have a certificate to validate.
>
>Effective revocation need the NextUpdate field to know if a cashed CRL
>is still valid and CAs must make sure that there is a valid CRL
>available.
>
>However there is another problem for those systems that wants to
>pre-fetch CRLs. Because the NextUpdate field is actually used as the
>expiry date there is no real possibility within the standard to express
>when a new CRL is available if there is an overlap between CRL expiry
>and CRL update.
>
>This is why Microsoft has added support for a private optional extension
>(CRL Next publish with OID 1.3.6.1.4.1.311.21.4) which indicates when a
>new CRL is scheduled to be published (prior to expiry of old CRL).
>
>Stefan Santesson
>Microsoft Security Center of Excellence (SCOE)
> 
>
>  
>
>>-----Original Message-----
>>From: [email-masked]
>>    
>>
>>On Behalf Of Massimiliano Pala
>>Sent: den 10 december 2004 19:32
>>To: [email-masked]
>>Subject: Proposed Changes to RFC 3280
>>
>>Hello all,
>>
>>going through rfc3280 and reading the sections 5, 5.1, 5.1.2.5 about
>>CRLs and nextUpdate field one idea came into my mind.
>>The rfc enforces the use of the nextUpdate field which envisages the
>>idea that new revocation information will be available within the
>>retained time value.
>>
>>This could lead to some problems because all clients will query the
>>CRL repository upon CRL expiration.
>>Moreover, in practical environment, there is the common thought that
>>the nextUpdate filed carries the time when new revocation data will
>>be available, which (correct me if I am wrong) is not.
>>
>>So my idea is very simple, indeed. I would suggest to leave the field
>>OPTIONAL (as in ASN.1).
>>
>>If the field is not present, then compliant applications should check
>>for new CRL when validating a certificate. This is pretty the same way
>>OCSP handles the nextUpdate field within responses, isn't it?
>>
>>Indeed the default behaviour for today CAs is to issue new CRLs as
>>soon as a certificate is revoked - why being forced to issue a new
>>CRL if no new data is indeed available ?
>>
>>Let me know your comments, if there are no major objection I will
>>post a possible patch for the document to the list.
>>
>>--
>>
>>C'you,
>>
>>	Massimiliano Pala
>>

Date: Tue, 14 Dec 2004 17:40:42 +0100
From: Massimiliano Pala <[email-masked]>
Organization: Politecnico di Torino
To: [email-masked]
Subject: Re: Proposed Changes to RFC 3280
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms040305030108090200020302
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Stefan Santesson wrote:
> Massimiliano,
> 
> There seem to be some confusion with your proposal.
> 
> The NextUpdate field certainly don't force clients to get a new CRL when
> they expire. It is perfectly compliant already to wait to get a new CRL
> when you have a certificate to validate.
> 
> Effective revocation need the NextUpdate field to know if a cashed CRL
> is still valid and CAs must make sure that there is a valid CRL
> available.

Are you sure about this ? The nextUpdate field states that a new
CRL will be made available within that date, but it does not state
that a new CRL will not be made available BEFORE that date.
This means, you should check the repository to be sure the cached
CRL is the most updated one.

Unfortunately there is no way to be sure about the time a new CRL
is issued. But this is another issue, i guess.

> However there is another problem for those systems that wants to
> pre-fetch CRLs. Because the NextUpdate field is actually used as the
> expiry date there is no real possibility within the standard to express
> when a new CRL is available if there is an overlap between CRL expiry
> and CRL update.

This is true, but please notice that in many PKIs new CRLs are issued as
soon as a certificate is revoked. I guess a new field should be added to
address this problem and it should carry the minimum time required for
a new CRL to be publish. This could solve the problem - online CAs could
use a very small timeframe (e.g. 5mins) - while offline CAs could use
a wider timeframe (e.g. 1 day or 1 week).

But this is a bigger change and will break compatibility with existing
applications.

> This is why Microsoft has added support for a private optional extension
> (CRL Next publish with OID 1.3.6.1.4.1.311.21.4) which indicates when a
> new CRL is scheduled to be published (prior to expiry of old CRL).

As I just written, this is another problem not covered by the proposal.

Anyway I don't think the use of a *private* extension is the solution.
I would prefer the usage of a non-private extension or (but would
require more work) the definition of a new CRL format (v3?) with the
additional field in the TBSCertList to address this issue.

-- 

Best Regards,

	Massimiliano Pala

--o------------------------------------------------------------------------
Massimiliano Pala [OpenCA Project Manager]      [email-masked]
                                                  Tel.:   +39 (0)11  564 7081
http://security.polito.it                       Fax:    +39   178  270 2077
                                                  Mobile: +39 (0)347 7222 365

Politecnico di Torino (EuroPKI)
Certification Authority Informations:

Authority Access Point                                  http://ca.polito.it
Authority's Certificate:          http://ca.polito.it/ca_cert/en_index.html
Certificate Revocation List:              http://ca.polito.it/crl02/crl.crl
--o------------------------------------------------------------------------

--------------ms040305030108090200020302
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms040305030108090200020302--

Date: Tue, 14 Dec 2004 11:36:34 -0500
From: "David A. Cooper" <[email-masked]>
To: Trevor Freeman <[email-masked]>
CC: Denis Pinkas <[email-masked]>, [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Trevor,<br>
<br>
There seems to be a misunderstanding here.&nbsp; The check in question is:<br>
<blockquote>Do revocation status checks on the certification path<br>
</blockquote>
In your response to Denis below, you say:<br>
<blockquote> If the client has asked for revocation information, I
don't see a full path build for the client certificate is required. You
may build a path for the CA certificate which signed the CRL, but that
is different.<br>
</blockquote>
There is a disconnect between these two statements.&nbsp; The check requires
the server to perform status checks on <u>the path</u>.&nbsp; In your
response, you refer to <u>the CRL</u>.&nbsp; If the check only required to
server to perform a status check on the end certificate (i.e., the
certificate presented in the request), then your comment would make
sense.&nbsp; However, the check requires the server to perform status checks
on the <u>path</u>.&nbsp; Since SCVP does not allow the client to present a
path to the server, the server <u>MUST</u> build a certification path
in order to perform the id-stc-build-status-checked-pkc-path check,
otherwise the server would not have a certification path for which to
perform status checks.<br>
<br>
You suggest that the id-stc-build-status-checked-pkc-path check might
be used by itself in a case in which a DPD client has already been able
to build a path.&nbsp; But this does not work, since the server may not
provide status checks on the same certification path as the one
constructed by the client (or the one that the client had previously
obtained from the SCVP server).&nbsp; The client could increase the chances
that the server would use the path that it was interested in by
providing the certificates in the path through the intermediateCerts
field, but this would not guarantee that the server would provide
status checks for this path.<br>
<br>
As I said in my previous message, if the client wants to server to
provide status checks for the certificates in a particular
certification path, then the client should use OCSP.&nbsp; OCSP allows the
client to ask for status information for a specific set of
certificates, SCVP does not.&nbsp; With SCVP, the client can only specify
the trust anchor and the end certificate; the server MUST build the
remainder of the certification path.&nbsp; So, even if the client only
includes the id-stc-build-status-checked-pkc-path check, there is an
implicit requirement for the server to build a certification path.&nbsp; I
believe that it makes no sense for the server to perform the
id-stc-build-status-checked-pkc-path check on an unvalidated
certification path.&nbsp; That is, I believe that the only sensible use of
this feature is for the server to build a validated certification path
and then perform status checks on that path; there is no benefit to
performing status checks on an unvalidated certification path.&nbsp; Given
this, it makes sense to explicitly indicate that the
id-stc-build-status-checked-pkc-path check requires the server to build
a validated certification path and do revocation status checks on that
certification path.<br>
<br>
Dave<br>
<br>
<br>
Trevor Freeman wrote:<br>
<blockquote type="cite"
 cite="[email-masked]">
  <pre wrap="">
* -----Original Message-----
* From: Denis Pinkas [<a class="moz-txt-link-freetext" href="mailto:[email-masked]">mailto:[email-masked]</a>]
* Sent: Monday, December 13, 2004 12:35 AM
* To: Trevor Freeman
* Cc: David A. Cooper; <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* &gt; David,
* &gt; No wanting to rathole on this sine time is short, the section of the
* &gt; document in question which Denis referred to is dealing with the set of
* &gt; request that the client can make to the server. We agree that the client
* &gt; can ask for path construction without revocation checking.
* 
* Up to here we agree.
[TF] Good
* 
* &gt; I think it
* &gt; legitimate a DPD client could ask for revocation checking because it has
* &gt; already be able to build a path. Conceivably a DPV client could do the
* &gt; same because it pervious asked for the path to be constructed and just
* &gt; wants the revocation data refreshed.
* 
* Here we do not agree. If a client has already been able to build a path,
* then he provides that path as "useful certificates" and the DPV server will
* necessarily build the path (using or not using these "useful certificates")
* and verify it.
* 
* So if revocation checking is asked for by the client, this necessarily
* mandates path construction.
[TF] what there server does to process the request is orthogonal to the
section in question.  If the client has asked for revocation
information, I don't see a full path build for the client certificate is
required. You may build a path for the CA certificate which signed the
CRL, but that is different.
* 
* Denis
* 
* 
* &gt; However to get to the bottom line, is there a specific problem with the
* &gt; text in section 3.1.2
* &gt; Trevor
* &gt;
* &gt; * -----Original Message-----
* &gt; * From: David A. Cooper [<a class="moz-txt-link-freetext" href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * Sent: Thursday, December 09, 2004 2:22 PM
* &gt; * To: Trevor Freeman
* &gt; * Cc: <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* &gt; * Subject: Re: SCVP 16 comments deadline
* &gt; *
* &gt; * Trevor,
* &gt; *
* &gt; * I must say that I agree with Seth and Denis.  I was under the impression
* &gt; * that "Do revocation status checking on the certification path" really
* &gt; * meant "build and validated certification path to a trust anchor and do
* &gt; * revocation status checking on the certification path".  While I can see
* &gt; * that there may be circumstances in which one would request a validated
* &gt; * certification path without requiring revocation status checking, I can't
* &gt; * see requesting revocation status checking without requesting that the
* &gt; * path be validated.
* &gt; *
* &gt; * It is certainly the case that one can not "do revocation status checking
* &gt; * on the certification path" without also building a certification path.
* &gt; * Since the client can not provide a certification path, revocation status
* &gt; * checking must be performed on a path that is built by the server. I
* &gt; * suppose you could argue that this simply means that a well formed query
* &gt; * can not include the id-stc-build-status-checked-pkc-path without also
* &gt; * including either the id-stc-build-pkc-path or
* &gt; * id-stc-build-valid-pkc-path check.  But, I see see the need for this.
* &gt; *
* &gt; * A DPD client would include the id-stc-build-pkc-path along with the
* &gt; * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info wantBacks.
* &gt; * If the DPD client included the id-swb-pkc-revocation-info wantBack, it
* &gt; * wouldn't need to also include the id-stc-build-status-checked-pkc-path
* &gt; * check.  If the DPD client did not include the id-swb-pkc-revocation-info
* &gt; * wantBack, then would not include the id-stc-build-status-checked-pkc-path check.
* &gt; *
* &gt; * So, I would argue that the id-swb-pkc-revocation-info wantBack would
* &gt; * only be used in the case that the client was requesting a validated
* &gt; * certification path.  The way that I had interpreted the currently
* &gt; * defined checks items, an SCVP query would only include one check since
* &gt; * each successive check included the requirements of the previous one:
* &gt; * id-stc-build-valid-pkc-path included the requirement to build a path
* &gt; * (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path
* &gt; * included the requirement to build a validated path
* &gt; * (id-stc-build-valid-pkc-path).
* &gt; *
* &gt; * Under what circumstances can you envision a client wanting the server to
* &gt; * do revocation status checking on a certification path (that is
* &gt; * constructed by the server) without also including a requirement that the
* &gt; * certification path be validated?   If there are no reasonable
* &gt; * circumstances in which a client would make such a query, why is it
* &gt; * necessary for clients to be able to construct such a query?
* &gt; *
* &gt; * Dave
* &gt; *
* &gt; * Trevor Freeman wrote:
* &gt; *
* &gt; * &gt;Hi Seth,
* &gt; * &gt;A server can always go beyond what the client asked for. I don't see
* &gt; * &gt;that as strictly necessary in all cases such as if the client just asks
* &gt; * &gt;for revocation. Untimely is a matter of local server policy. What the
* &gt; * &gt;server cannot do is return status or errors relating to the other
* &gt; * &gt;activities which  were beyond the request scope.
* &gt; * &gt;Trevor
* &gt; * &gt;
* &gt; * While it might make sense for a client to only ask for revocation
* &gt; * checking if the client could specify the certification path, it does not
* &gt; * seem to make sense given that the server chooses the certification path
* &gt; * for which revocation status checking will be performed.  If the client
* &gt; * wants to specify a set of certificates for which it only wants to know
* &gt; * the revocation status, that is what OCSP is for.
* &gt; *
* &gt; * &gt;
* &gt; * &gt;* -----Original Message-----
* &gt; * &gt;* From: Seth Hitchings [<a class="moz-txt-link-freetext" href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * &gt;* Sent: Wednesday, December 08, 2004 11:34 AM
* &gt; * &gt;* To: Trevor Freeman
* &gt; * &gt;* Cc: <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* Subject: RE: SCVP 16 comments deadline
* &gt; * &gt;*
* &gt; * &gt;* Trevor,
* &gt; * &gt;*
* &gt; * &gt;* For clarification, I assume that doing revocation status checks on a path
* &gt; * &gt;* implies building a validated path?
* &gt; * &gt;*
* &gt; * &gt;* If I am correct, in what case would a client ever send more than one check?
* &gt; * &gt;*
* &gt; * &gt;* Seth
* &gt; * &gt;*
* &gt; * &gt;* -----Original Message-----
* &gt; * &gt;* From: <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;[<a class="moz-txt-link-freetext" href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * &gt;* On Behalf Of
* &gt; * &gt;* Trevor Freeman
* &gt; * &gt;* Sent: Wednesday, December 08, 2004 1:42 PM
* &gt; * &gt;* To: Denis Pinkas
* &gt; * &gt;* Cc: <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* Subject: RE: SCVP 16 comments deadline
* &gt; * &gt;*
* &gt; * &gt;*
* &gt; * &gt;* Denis,
* &gt; * &gt;* I know of several systems who's policy is never to revoke the identity certificate because
* &gt; * &gt;* they have other mechanisms to address the issue.
* &gt; * &gt;* They are using authorization bound to the identity and they either rely on short lived
* &gt; * &gt;* authorization assertions or revoke the authorization privilege assonated with the
* &gt; * &gt;* identity. Therefore in those cases not checking the revocation status of the certificate
* &gt; * &gt;* makes perfect sense.
* &gt; * &gt;* Trevor
* &gt; * &gt;*
* &gt; * &gt;* * -----Original Message-----
* &gt; * &gt;* * From: <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* [<a class="moz-txt-link-freetext" href="mailto:[email-masked]">mailto:[email-masked]</a>]
* &gt; * &gt;* * On Behalf Of Denis Pinkas
* &gt; * &gt;* * Sent: Wednesday, December 08, 2004 8:01 AM
* &gt; * &gt;* * To: Trevor Freeman
* &gt; * &gt;* * Cc: <a class="moz-txt-link-abbreviated" href="mailto:[email-masked]">[email-masked]</a>
* &gt; * &gt;* * Subject: Re: SCVP 16 comments deadline
* &gt; * &gt;* *
* &gt; * &gt;* *
* &gt; * &gt;* * Trevor,
* &gt; * &gt;* *
* &gt; * &gt;* * &gt; Hi Denis,
* &gt; * &gt;* * &gt; Below are responses to 1-16. Others will follow later.
* &gt; * &gt;* *
* &gt; * &gt;* * I am pleased that you accepted comments 13, 14, 15 and 16.
* &gt; * &gt;* * Among this list, I have a further remark on comment 4.
* &gt; * &gt;* *
* &gt; * &gt;* * &gt; * 4. Page 13. Typo. Section 3.1.2 "checks"
* &gt; * &gt;* * &gt; * The two following lines are in fact one line:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; * Change:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Build a validated certification path to a trust anchor; and
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Do revocation status checks on the certification path.
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; * into:
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; *      - Build a validated certification path to a trust anchor and
* &gt; * &gt;* * &gt; *        do revocation status checks on the certification path.
* &gt; * &gt;* * &gt; *
* &gt; * &gt;* * &gt; [TF] Since this paragraph is listing the possible checks and building a
* &gt; * &gt;* * &gt; path is a separate check to revocation checking, I think the current
* &gt; * &gt;* * &gt; text is more accurate.
* &gt; * &gt;* *
* &gt; * &gt;* * I agree that "building a path is a separate check to revocation checking",
* &gt; * &gt;* * but revocation checking without building a validated path does not make sense.
* &gt; * &gt;* *
* &gt; * &gt;* * The full text currently is:
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a certification path to a trust anchor;
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a validated certification path to a trust anchor; and
* &gt; * &gt;* *
* &gt; * &gt;* *      - Do revocation status checks on the certification path.
* &gt; * &gt;* *
* &gt; * &gt;* * The full text should be:
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a certification path to a trust anchor;
* &gt; * &gt;* *
* &gt; * &gt;* *      - Build a validated certification path to a trust anchor; and
* &gt; * &gt;* *        do revocation status checks on the certification path.
* &gt; * &gt;* *
* &gt; * &gt;* * Denis</pre>
</blockquote>
<br>
</body>
</html>

Date: Tue, 14 Dec 2004 12:18:21 +0100
From: Massimiliano Pala <[email-masked]>
Organization: Politecnico di Torino
To: Paul Hoffman / VPNC <[email-masked]>
CC: [email-masked]
Subject: Re: Proposed Changes to RFC 3280
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms080809030309070105060304
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Paul Hoffman / VPNC wrote:
[...]
> "Could", yes, but so far, we have not heard that this is a problem in 
> current deployments.

This is true, anyway also you said it "Could" lead to problems, therefore
we should change this, I guess.

[...]
> Maybe I'm misunderstanding the proposal, but it seems like this would 
> cause *massive* problems for currently-deployed systems that expect and 
> rely on the nextUpdate field.

I don't see these *massive* problems for applications here, indeed as
the ASN.1 states it is an OPTIONAL parameter, an application should
already check the existence of the field before relying on its value...
... I guess these are the basis for good code writing.

Moreover the nextUpdate field (as it is described) carries information
on the date by which the next CRL will be issued, anyway new revocation
data could be made available any time sooner... this means that if I want to
be sure about updated revocation data, I should look at the repository for
new CRLs, nevertheless what the nextUpdate filed value is.

I guess this is not a big change in current software. Indeed there are
examples of software which lets the user to decide when to check for new
CRLs (e.g. once per day).

>> Indeed the default behaviour for today CAs is to issue new CRLs as
>> soon as a certificate is revoked
> 
> 
> That may be true for some systems, but it certainly isn't true for others.
> 
>>  - why being forced to issue a new
>> CRL if no new data is indeed available ?
> 
> 
> Because it is cheap for the CA to do.

This is true. My proposal wants to let CAs establish whether or not to put
the nextUpdate field into CRLs. This will obviously not touch currently
deployed policies (and applications) if the chosen behaviour is to put the
nextUpdate field into CRLs.

By stating the nextUpdate field as optional, I don't want to force CAs not
to use the field.

Please let me know if you have any new comments or objections to the
proposal.

-- 

Best Regards,

	Massimiliano Pala

--o------------------------------------------------------------------------
Massimiliano Pala [OpenCA Project Manager]      [email-masked]
                                                 Tel.:   +39 (0)11  564 7081
http://security.polito.it                       Fax:    +39   178  270 2077
                                                 Mobile: +39 (0)347 7222 365

Politecnico di Torino (EuroPKI)
Certification Authority Informations:

Authority Access Point                                  http://ca.polito.it
Authority's Certificate:          http://ca.polito.it/ca_cert/en_index.html
Certificate Revocation List:              http://ca.polito.it/crl02/crl.crl
--o------------------------------------------------------------------------

--------------ms080809030309070105060304
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms080809030309070105060304--

Reply-To: <[email-masked]>
From: "Jim Schaad" <[email-masked]>
To: "IETF-PKIX" <[email-masked]>
Subject: Draft-ietf-pkix-rfc2511bis-07
Date: Mon, 13 Dec 2004 13:30:56 -0800
Sender: [email-masked]

As advertized this draft is now under new editorship.  As the new editor
there are a number of issues that I fill still need to be resolved before
this draft can go to last call.  If there is no help forth coming then I
will be making arbitrary decions on these issue.

Additionally, if anyone has kept any of the final reports from the interop
trials for CMP, I would like to see the sections that relate to CRMF.

You can easily find the open issues and questions by searching for [[[ in
the document.

1.  Section 4.1 - I have a partial answer for this question dealing with non
DN style names that are authenticated, but are not actually either subject
names (DNs) or subject alt names (General Names).  The only real question at
this point is should this rational be documented.

2.  Section 4.2 - I am worried about the possiblity of somebody copying an
encrypted private key being sent to the CA/RA and then copying it into their
own certificate request.  They could then later request a key recovery from
the CA/RA and get back somebody elses private key.  This is the reason that
I am worried about how a POP proof is done here.  One potential answer is to
include the authenticated identity along with the private key in the
encrypted block.

3.  Section 4.2 - We MUST solve the question of what the contents of the
encrypted blob look like.  One potential answer is to obsolete thisMessage
and reaplace it with an EnvelopedData then all that needs to be covered is
the format of the encrypted key plus any POP info required.

4.  Section 4.3 - Does the DH section need to be expanded so that any key
agreement key pair can be used?  This can be done by adding a MAC alg and
value pair to the end of the POPOPrivKey choice (and potentially obsoleting
the dhMAC element).

5.  Section 4.4 - Two questions regarding guidence for the number of
iterations and the amount of salt to be used.  We need a cryptographer to
give us some guidelines for these details, or atleast need to set some
minimums.

6.  Section 6.1 & 6.2 - The content of these controls is not well defined
and a couple of questions regarding this are asked.  This may have been
addressed in the interop by adding some undocumented restrictions.

7.  Section 6.4 - There are a couple of archive questions here.  At this
point my inclination is to kill the entire section unless somebody wants to
make it acutally work.

8.  Section 6.8 - Ditto here.

9.  Section 7.1 - Consider the string "Tokens?%30%FA%F3?9%"   The parsing is
difficult (but not impossible) due to the overload of the % token.

Jim

To: [email-masked]
Cc: [email-masked]
From: [email-masked]
Subject: I-D ACTION:draft-ietf-pkix-rfc2511bis-07.txt
Date: Mon, 13 Dec 2004 15:34:11 -0500
Sender: [email-masked]

--NextPart

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Public-Key Infrastructure (X.509) Working Group of the IETF.

	Title		: Internet X.509 Public Key Infrastructure Certificate 
			  Request Message Format (CRMF)
	Author(s)	: J. Schaad 
	Filename	: draft-ietf-pkix-rfc2511bis-07.txt
	Pages		: 33
	Date		: 2004-12-13
	
This document describes the Certificate Request Message Format (CRMF) 
   syntax and semantics.  This syntax is used to convey a request for a 
   certificate to a Certification Authority (CA), possibly via a 
   Registration Authority (RA), for the purposes of X.509 certificate 
   production.  The request will typically include a public key and 
   associated registration information.  This document does not define a 
   certificate request protocol

A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-pkix-rfc2511bis-07.txt

To remove yourself from the I-D Announcement list, send a message to 
[email-masked] with the word unsubscribe in the body of the message.  
You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce 
to change your subscription settings.

Internet-Drafts are also available by anonymous FTP. Login with the username
"anonymous" and a password of your e-mail address. After logging in,
type "cd internet-drafts" and then
	"get draft-ietf-pkix-rfc2511bis-07.txt".

A list of Internet-Drafts directories can be found in
http://www.ietf.org/shadow.html 
or ftp://ftp.ietf.org/ietf/1shadow-sites.txt

Internet-Drafts can also be obtained by e-mail.

Send a message to:
	[email-masked].
In the body type:
	"FILE /internet-drafts/draft-ietf-pkix-rfc2511bis-07.txt".
	
NOTE:	The mail server at ietf.org can return the document in
	MIME-encoded form by using the "mpack" utility.  To use this
	feature, insert the command "ENCODING mime" before the "FILE"
	command.  To decode the response(s), you will need "munpack" or
	a MIME-compliant mail reader.  Different MIME-compliant mail readers
	exhibit different behavior, especially when dealing with
	"multipart" MIME messages (i.e. documents which have been split
	up into multiple messages), so check your local documentation on
	how to manipulate these messages.

Below is the data which will enable a MIME compliant mail reader
implementation to automatically retrieve the ASCII version of the
Internet-Draft.

--NextPart
Content-Type: Multipart/Alternative; Boundary="OtherAccess"

--OtherAccess
Content-Type: Message/External-body;
	access-type="mail-server";
	server="[email-masked]"

Content-Type: text/plain
Content-ID:	<[email-masked]>

ENCODING mime
FILE /internet-drafts/draft-ietf-pkix-rfc2511bis-07.txt

--OtherAccess
Content-Type: Message/External-body;
	name="draft-ietf-pkix-rfc2511bis-07.txt";
	site="ftp.ietf.org";
	access-type="anon-ftp";
	directory="internet-drafts"

Content-Type: text/plain
Content-ID:	<[email-masked]>

--OtherAccess--

--NextPart--

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Mon, 13 Dec 2004 11:06:39 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: "David A. Cooper" <[email-masked]>, <[email-masked]>
Sender: [email-masked]

* -----Original Message-----
* From: Denis Pinkas [mailto:[email-masked]]
* Sent: Monday, December 13, 2004 12:35 AM
* To: Trevor Freeman
* Cc: David A. Cooper; [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* > David,
* > No wanting to rathole on this sine time is short, the section of the
* > document in question which Denis referred to is dealing with the set
of
* > request that the client can make to the server. We agree that the
client
* > can ask for path construction without revocation checking.
* 
* Up to here we agree.
[TF] Good
* 
* > I think it
* > legitimate a DPD client could ask for revocation checking because it
has
* > already be able to build a path. Conceivably a DPV client could do
the
* > same because it pervious asked for the path to be constructed and
just
* > wants the revocation data refreshed.
* 
* Here we do not agree. If a client has already been able to build a
path,
* then he provides that path as "useful certificates" and the DPV server
* will
* necessarily build the path (using or not using these "useful
* certificates")
* and verify it.
* 
* So if revocation checking is asked for by the client, this necessarily
* mandates path construction.
[TF] what there server does to process the request is orthogonal to the
section in question.  If the client has asked for revocation
information, I don't see a full path build for the client certificate is
required. You may build a path for the CA certificate which signed the
CRL, but that is different.
* 
* Denis
* 
* 
* > However to get to the bottom line, is there a specific problem with
the
* > text in section 3.1.2
* > Trevor
* >
* > * -----Original Message-----
* > * From: David A. Cooper [mailto:[email-masked]]
* > * Sent: Thursday, December 09, 2004 2:22 PM
* > * To: Trevor Freeman
* > * Cc: [email-masked]
* > * Subject: Re: SCVP 16 comments deadline
* > *
* > * Trevor,
* > *
* > * I must say that I agree with Seth and Denis.  I was under the
* > impression
* > * that "Do revocation status checking on the certification path"
really
* > * meant "build and validated certification path to a trust anchor
and do
* > * revocation status checking on the certification path".  While I
can
* > see
* > * that there may be circumstances in which one would request a
validated
* > * certification path without requiring revocation status checking, I
* > can't
* > * see requesting revocation status checking without requesting that
the
* > * path be validated.
* > *
* > * It is certainly the case that one can not "do revocation status
* > checking
* > * on the certification path" without also building a certification
path.
* > * Since the client can not provide a certification path, revocation
* > status
* > * checking must be performed on a path that is built by the server.
I
* > * suppose you could argue that this simply means that a well formed
* > query
* > * can not include the id-stc-build-status-checked-pkc-path without
also
* > * including either the id-stc-build-pkc-path or
* > * id-stc-build-valid-pkc-path check.  But, I see see the need for
this.
* > *
* > * A DPD client would include the id-stc-build-pkc-path along with
the
* > * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info
wantBacks.
* > * If the DPD client included the id-swb-pkc-revocation-info
wantBack, it
* > * wouldn't need to also include the
id-stc-build-status-checked-pkc-path
* > * check.  If the DPD client did not include the
* > id-swb-pkc-revocation-info
* > * wantBack, then would not include the
* > * id-stc-build-status-checked-pkc-path check.
* > *
* > * So, I would argue that the id-swb-pkc-revocation-info wantBack
would
* > * only be used in the case that the client was requesting a
validated
* > * certification path.  The way that I had interpreted the currently
* > * defined checks items, an SCVP query would only include one check
since
* > * each successive check included the requirements of the previous
one:
* > * id-stc-build-valid-pkc-path included the requirement to build a
path
* > * (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path
* > * included the requirement to build a validated path
* > * (id-stc-build-valid-pkc-path).
* > *
* > * Under what circumstances can you envision a client wanting the
server
* > to
* > * do revocation status checking on a certification path (that is
* > * constructed by the server) without also including a requirement
that
* > the
* > * certification path be validated?   If there are no reasonable
* > * circumstances in which a client would make such a query, why is it
* > * necessary for clients to be able to construct such a query?
* > *
* > * Dave
* > *
* > * Trevor Freeman wrote:
* > *
* > * >Hi Seth,
* > * >A server can always go beyond what the client asked for. I don't
see
* > * >that as strictly necessary in all cases such as if the client
just
* > asks
* > * >for revocation. Untimely is a matter of local server policy. What
the
* > * >server cannot do is return status or errors relating to the other
* > * >activities which  were beyond the request scope.
* > * >Trevor
* > * >
* > * While it might make sense for a client to only ask for revocation
* > * checking if the client could specify the certification path, it
does
* > not
* > * seem to make sense given that the server chooses the certification
* > path
* > * for which revocation status checking will be performed.  If the
client
* > * wants to specify a set of certificates for which it only wants to
know
* > * the revocation status, that is what OCSP is for.
* > *
* > * >
* > * >* -----Original Message-----
* > * >* From: Seth Hitchings [mailto:[email-masked]]
* > * >* Sent: Wednesday, December 08, 2004 11:34 AM
* > * >* To: Trevor Freeman
* > * >* Cc: [email-masked]
* > * >* Subject: RE: SCVP 16 comments deadline
* > * >*
* > * >* Trevor,
* > * >*
* > * >* For clarification, I assume that doing revocation status checks
on
* > a
* > * path
* > * >* implies building
* > * >* a validated path?
* > * >*
* > * >* If I am correct, in what case would a client ever send more
than
* > one
* > * >* check?
* > * >*
* > * >* Seth
* > * >*
* > * >* -----Original Message-----
* > * >* From: [email-masked]
* > * >[mailto:[email-masked]]
* > * >* On Behalf Of
* > * >* Trevor Freeman
* > * >* Sent: Wednesday, December 08, 2004 1:42 PM
* > * >* To: Denis Pinkas
* > * >* Cc: [email-masked]
* > * >* Subject: RE: SCVP 16 comments deadline
* > * >*
* > * >*
* > * >* Denis,
* > * >* I know of several systems who's policy is never to revoke the
* > identity
* > * >* certificate because
* > * >* they have other mechanisms to address the issue.
* > * >* They are using authorization bound to the identity and they
either
* > rely
* > * on
* > * >* short lived
* > * >* authorization assertions or revoke the authorization privilege
* > * assonated
* > * >* with the
* > * >* identity. Therefore in those cases not checking the revocation
* > status
* > * of
* > * >* the certificate
* > * >* makes perfect sense.
* > * >* Trevor
* > * >*
* > * >* * -----Original Message-----
* > * >* * From: [email-masked]
* > * >* [mailto:[email-masked]]
* > * >* * On Behalf Of Denis Pinkas
* > * >* * Sent: Wednesday, December 08, 2004 8:01 AM
* > * >* * To: Trevor Freeman
* > * >* * Cc: [email-masked]
* > * >* * Subject: Re: SCVP 16 comments deadline
* > * >* *
* > * >* *
* > * >* * Trevor,
* > * >* *
* > * >* * > Hi Denis,
* > * >* * > Below are responses to 1-16. Others will follow later.
* > * >* *
* > * >* * I am pleased that you accepted comments 13, 14, 15 and 16.
* > * >* * Among this list, I have a further remark on comment 4.
* > * >* *
* > * >* * > * 4. Page 13. Typo. Section 3.1.2 "checks"
* > * >* * > * The two following lines are in fact one line:
* > * >* * > *
* > * >* * > * Change:
* > * >* * > *
* > * >* * > *      - Build a validated certification path to a trust
* > anchor;
* > * and
* > * >* * > *
* > * >* * > *      - Do revocation status checks on the certification
path.
* > * >* * > *
* > * >* * > * into:
* > * >* * > *
* > * >* * > *      - Build a validated certification path to a trust
anchor
* > and
* > * >* * > *        do revocation status checks on the certification
path.
* > * >* * > *
* > * >* * > [TF] Since this paragraph is listing the possible checks
and
* > * building
* > * >* a
* > * >* * > path is a separate check to revocation checking, I think
the
* > * current
* > * >* * > text is more accurate.
* > * >* *
* > * >* * I agree that "building a path is a separate check to
revocation
* > * >* checking",
* > * >* * but revocation checking without building a validated path
does
* > not
* > * make
* > * >* * sense.
* > * >* *
* > * >* * The full text currently is:
* > * >* *
* > * >* *      - Build a certification path to a trust anchor;
* > * >* *
* > * >* *      - Build a validated certification path to a trust
anchor;
* > and
* > * >* *
* > * >* *      - Do revocation status checks on the certification path.
* > * >* *
* > * >* * The full text should be:
* > * >* *
* > * >* *      - Build a certification path to a trust anchor;
* > * >* *
* > * >* *      - Build a validated certification path to a trust
anchor;
* > and
* > * >* *        do revocation status checks on the certification path.
* > * >* *
* > * >* * Denis
* > * >*
* > * >
* > * >
* > * >
* > *
* >
* >
* 

Content-class: urn:content-classes:message
Subject: RE: Proposed Changes to RFC 3280
Date: Mon, 13 Dec 2004 18:53:34 -0000
From: "Stefan Santesson" <[email-masked]>
To: <[email-masked]>, <[email-masked]>
Sender: [email-masked]

Massimiliano,

There seem to be some confusion with your proposal.

The NextUpdate field certainly don't force clients to get a new CRL when
they expire. It is perfectly compliant already to wait to get a new CRL
when you have a certificate to validate.

Effective revocation need the NextUpdate field to know if a cashed CRL
is still valid and CAs must make sure that there is a valid CRL
available.

However there is another problem for those systems that wants to
pre-fetch CRLs. Because the NextUpdate field is actually used as the
expiry date there is no real possibility within the standard to express
when a new CRL is available if there is an overlap between CRL expiry
and CRL update.

This is why Microsoft has added support for a private optional extension
(CRL Next publish with OID 1.3.6.1.4.1.311.21.4) which indicates when a
new CRL is scheduled to be published (prior to expiry of old CRL).

Stefan Santesson
Microsoft Security Center of Excellence (SCOE)

> -----Original Message-----
> From: [email-masked]
[mailto:[email-masked]]
> On Behalf Of Massimiliano Pala
> Sent: den 10 december 2004 19:32
> To: [email-masked]
> Subject: Proposed Changes to RFC 3280
> 
> Hello all,
> 
> going through rfc3280 and reading the sections 5, 5.1, 5.1.2.5 about
> CRLs and nextUpdate field one idea came into my mind.
> The rfc enforces the use of the nextUpdate field which envisages the
> idea that new revocation information will be available within the
> retained time value.
> 
> This could lead to some problems because all clients will query the
> CRL repository upon CRL expiration.
> Moreover, in practical environment, there is the common thought that
> the nextUpdate filed carries the time when new revocation data will
> be available, which (correct me if I am wrong) is not.
> 
> So my idea is very simple, indeed. I would suggest to leave the field
> OPTIONAL (as in ASN.1).
> 
> If the field is not present, then compliant applications should check
> for new CRL when validating a certificate. This is pretty the same way
> OCSP handles the nextUpdate field within responses, isn't it?
> 
> Indeed the default behaviour for today CAs is to issue new CRLs as
> soon as a certificate is revoked - why being forced to issue a new
> CRL if no new data is indeed available ?
> 
> Let me know your comments, if there are no major objection I will
> post a possible patch for the document to the list.
> 
> --
> 
> C'you,
> 
> 	Massimiliano Pala
> 
>
--o---------------------------------------------------------------------
--
> -
> Massimiliano Pala [OpenCA Project Manager]
> [email-masked]
>                                                   Tel.:   +39 (0)59
270
> 094
> http://www.openca.org                           Fax:    +39   178  270
> 2077
> http://openca.sourceforge.net                   Mobile: +39 (0)347
7222
> 365
> 
> University of Modena and Reggio Emilia
> Certification Authority Informations:
> 
> Authority Access Point
> http://pki.unimo.it
> Authority's Certificate:
> http://pki.unimo.it/ca/issuers.html
> Certificate Revocation List:
> http://pki.unimo.it/crl/cacrl.crl
>
--o---------------------------------------------------------------------
--
> -

From: Francis Dupont <[email-masked]>
To: Tim Polk <[email-masked]>
Cc: [email-masked]
Subject: Re: Mea Culpa and NEW SCVP 16 comments deadline 
Date: Sun, 12 Dec 2004 18:02:07 +0100
Sender: [email-masked]

Some comments:
 - the requestorRef definition doesn't match its description in 3.2.
   IMHO we should keep the description, i.e., the requestorRef should be
   an octet string which is a local reference to the client. More, I'd like
   the rationale of 4.7 be reflected in 3.2...
 - please change wantBack (item name) and WantBack (type) into wantBacks
   and WantBacks (like [cC]ecks and [rR]eplyWantBacks: homogeneous use
   of the plural!)
 - I'd like to use other cert references than ESSCertIDs, IKE has and URL
   for instance. Please add an OID+Value choice in PKCReference/ACReference?
 - checks OIDs (id-stc-build-*) are different between 3.1.2 and the annex.
   IMHO the text which defines 7 cases is right.
 - 3.1.5.1 needs to be merged into 3.1.4.1. My understanding is there are
   a default validation policy and a basic validation algorithm.
 - spelling of basic valAlg errors (id-bvae-*) should be uniformized
 - same for name valAlg errors between definitions and descriptions
 - id-nvae-unknown-pupose -> id-nvae-unknown-purpose
 - there is nothing about the case where the extended key usage extension
   is absent. IMHO this is like key usage, i.e., the certificate MUST be
   considered goof for all extended usages...
 - responseFlags items *need* tags!
 - 4 uses id-ct-scvp-psResponse in place of id-ct-scvp-certValResponse (typo)
 - what are the differences between responseStatus 50 and 61, or 51 and 62?
 - in ValidationPolValues isCA and trustAnchors should be optional as they
   have no default values.
 - validationPolicyAttr is spuriously described again in 4.5.6
 - in 4.10 change valdationPolicy into validationErrors (typo) which is
   OPTIONAL (i.e., in the MAYs)
 - replyWantBacks for id-swb 10, 11 and 13 are missing
 - delete 4.10.6 validationAlg (moved to ValidationPolValues)
 - just a question "en passant": what OID to used in validationErrors for
   a failed "isCA" check? id-bvae-invalidEntity? id-bvae-invalidPurpose?
 - please change valPolRequest into VPRequest for the name of the type
 - same for valPolResponse and VPResponse
 - same in 6.4 for PolResponse
 - same in 6.6 for polResponse
 - delete 6.7 trustAnchors
 - IMHO dhPublicKeyInfo should be optional in VPResponse because DH is
   not the only protection way.
 - 6.14 VaidationPolValues (typo)
 - in ASN.1 annex:
    * nameValidationAlg -> NameValidationAlgParms
    * ValidationPolValues differs
    * some missing id-stc-build-*
    * id-svp-defaultValAlg -> id-svp-defaultValPolicy
    * missing id-svp-dnValAlg, incorrect id-nvae definition
 - in HTTP B.1 appendix:
   application/cv-policy-request -> application/cv-request
   (IMHO the Sample should be removed as the length header is missing too)

Regards

[email-masked]

PS: I have an implementation of draft 16 in OpenSSL 0.9.7d with a responder
and some test clients including racoon (IKE) and EAP-TLS. Of course as
only the beta version of OpenSSL really supports policies it is a very
partial implementation, BTW not worse than what already exists for
my applications (:-).

Date: Sat, 11 Dec 2004 09:13:52 -0800
To: [email-masked], [email-masked]
From: Paul Hoffman / VPNC <[email-masked]>
Subject: Re: Proposed Changes to RFC 3280
Sender: [email-masked]

At 4:32 AM +0100 12/11/04, Massimiliano Pala wrote:
>This could lead to some problems because all clients will query the
>CRL repository upon CRL expiration.

"Could", yes, but so far, we have not heard that this is a problem in 
current deployments.

>So my idea is very simple, indeed. I would suggest to leave the field
>OPTIONAL (as in ASN.1).

Maybe I'm misunderstanding the proposal, but it seems like this would 
cause *massive* problems for currently-deployed systems that expect 
and rely on the nextUpdate field.

>Indeed the default behaviour for today CAs is to issue new CRLs as
>soon as a certificate is revoked

That may be true for some systems, but it certainly isn't true for others.

>  - why being forced to issue a new
>CRL if no new data is indeed available ?

Because it is cheap for the CA to do.

>Let me know your comments, if there are no major objection I will
>post a possible patch for the document to the list.

Please consider my worry above about currently-deployed software. If 
I'm wrong, no problem, but if I'm right, then I can't imagine that 
the benefits of this kind of change would outweigh the difficulties 
for current systems.

--Paul Hoffman, Director
--VPN Consortium

Date: Mon, 13 Dec 2004 16:52:59 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> [TF] 
> Reputedly copying the same section from 3379 has the same effect. I
> believe the current draft of SCVP complies with the text. The name must
> be in the certificate. I don't see value in repeating the value twice in
> the request.

And I don't "believe" this.in fact,I don't have to believe anything here,
since I know why I had asked for the text in 3379.

If one gets married, I don't necessarily want to change the identity 
indicated in a drivers licence just because of this. I want to be able 
to pretend to have a certain identity, i.e. a statement to be made for
it, and then, in whatever way, provide the means to authenticate this
identity, and not the other way around, to derive a potentially unwanted
identity.

If a certificate would be sufficient, then I don't see what can be
the meaning of the sentence  

"Mechanisms for matching this identifier with the
   authenticated identity depends on local DPV server conditions and/or
   the validation policy."

a sentence which is grammatically incorrect, but anyway: There are
clearly TWO identifiers, one is the authenticated identity, and one
is another. 

If all declarations are done via a certificate that is also used
for authentication, what would be "mechanism for matching" of TWO
things can occur?  

But well, maybe the authors of 3379 may comment.  

Peter

Date: Mon, 13 Dec 2004 16:52:54 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

For the statement

     If the extended key usage extension is present, it MUST contain 
     either the client authentication OID, the SCVP client OID, or 
     some other OID by agreement with the SCVP server.

where are the two OID defined? 

Date: Mon, 13 Dec 2004 16:14:35 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> Hi Peter,
> You are assuming that there is only one possible matching algorithm for
> a name type - which seems a fragile assertion. The be more  robust then
> you supply a name and a matching rule identifier - which is what the
> name validation algorithm does.
I am not assuming a single possible matching algorithm. 
I'd am saying that there should be at least
one matching algorithm that can compare any name (probably at least
binary comparison). 

> I have seen examples of cases where a name has been inserted into an asn
> structure which does not cause an ASN decode error but the name is still
> bad because the name semantics are wrong - so I don't subscribe to the
> notion that all bad names cause asn decode errors.

Do you mean 'additional syntactical constraints' or really 'semantics'?

Syntactical errors include dection like 'an rfc822 has an @ sign etc'.
Semantical sounds to me like you want validate whether the email exists, whether
domain exists, etc.?

Syntactical errors can provokde asn1 decoding errors, it depends also
to a certain degree on what version of ASN1 you use in order to
directly specify constraints... ooups, I think is currently
forbidden to talk at all about ASN1 version in PKIX. So I break the
rule. make a ASN1 syntax which is valid under a CURRENT version, please.  

Anyway, having a special error code doesn't hurt too much.

> 
> * -----Original Message-----
> * From: Peter Sylvester [mailto:[email-masked]]
> * Sent: Thursday, December 09, 2004 4:58 AM
> * To: [email-masked]; Trevor Freeman
> * Cc: [email-masked]
> * Subject: RE: SCVP 16 comments deadline
> * 
> * 3.1.5.2.3 Name Validation Algorithm
> * 
> * I find the possibilities for the Name Validation Algorithm
> * rather unsafisfying.
> * 
> * It should be possible IMO to have a matching simply by
> * presenting whatever form of Generalname and this should
> * be compared with the corresponding value in the cert.
> * 
> * In fact, the id-svp-dnValAlg sounds rather restrictive to
> * me, it seems to imply that only the subject field is
> * compared (or does this also compare with the Dirname in
> * a subjectAltname).
> * 
> * This restriction about a DN doesn't seem necssary to me,
> * Any generalName can be compared with any in the subjectAltname.
> * 
> * E.g. an IP address.
> * 
> * 'id-nvae-unknown-pupose'   ==> 'id-nvae-unknown-purpose'
> * 
> *   id-nvae-name-mismatch vs   The id-nvae-nameMismatch value
> [TF] Fixed
> * 
> * please align the spellings of all the errors types.
> * 
> *   The id-nvae-badName value means the client supplied either and
> *   empty or malformed name in the request.
> * 
> * what is a bad or malformed name? How can this happen without raising
> * a general asn1 decoding error
> * 
> * since it comes right next?
> * 
> * ---
> * cleanup the following text, please
> * 
> *   The userPolicySet item specifies a list of policy identifiers that
> *   the SCVP server MUST use when forming and validating a certificate
> *   If certPolicies is not specified, then any-policy MUST be used.
> * 
> * 3.1.5.3 userPolicySet
> * 
> *   The userPolicySet item specifies a list of certificate policy
> *   identifiers that the SCVP server MUST use when constructing and
> *   validating a certification path.  If userPolicySet is not specified,
> *   then any-policy MUST be used.
> * 
> * 
> [TF] I will change the userPolicy set to the following
> The userPolicySet item specifies a list of certificate policy
> identifiers that the SCVP server MUST use when constructing and
> validating a certification path.
> 
> The requirement for use of the userPolicySet falling back to any-policy
> is being dropped because the referenced policy or the default policy
> will cover this.
> * 
>  
> Trevor
> 
> 

Date: Mon, 13 Dec 2004 16:05:24 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> * 
> * None of these is a "declaration" of an identity. It is a means to
> * authenticate
> * the request at least in my opinion.
> [TF] When I sign email, I don't include an additional attribute, I just
> include my certificate. How is that not a declaration of identity.

You have a From: field in your e-mail, which is how a signer claims
his identity in general.

Date: Mon, 13 Dec 2004 09:36:44 +0100
From: Denis Pinkas <[email-masked]>
Organization: Bull SA.
To: Trevor Freeman <[email-masked]>
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

(text deleted)

> [TF] You are advocating making the default policy selection implicit by
> omitting the policy form the request, we have chosen to make it explicit
> be defining a OID to represent the default policy. Functionally they are
> the same.

RFC 3379 states:

    A validation policy is a set of rules against which the validation of
    the certificate is performed.

RFC 3379 states:

    If the DPV request does not specify a validation policy, the server
    response MUST indicate the validation policy that was used.

SCVP MUST be compliant with RFC 3379.

> If the client specifies a policy it is one supported by the server
> which may or may not have parameters.
> [TF] Agreed

> Some parameters may be built-in in the policy and cannot be changed
> while some others may be allowed to be changed by the client.
> [TF] Agreed

> * 
> *  > The default
> * > values are also used when processing requests which reference a
> * > validation policy other than the default one that does not contain
> the
> * > full set of parameters necessary for validation and the client has
> also
> * > omitted the missing values in the request.
> * 
> * This sentence is rather long and complicated. I read it three times
> and
> * could not understand the exception for the default policy. If the
> default
> * policy is addressed above, we can simplify the sentence and only
> mention:

> [TF] All models contain the concept of default and non-default policy.
> If you specify a non-default policy, any parameter defined in the policy
> cannot be overridden by the client. Any parameter not defined by policy
> may be supplied by the client or the client can defer to the server
> default. If you specify the default policy, every parameter can be
> overridden.

You do not provide arguments against my proposal. However I noticed that 
your explanations are incorrect. If the default policy is being used (no OID 
specified in the request) then no paramter for that policy can be 
communicated by the client.

If a validation poilcy is specified by the client, then :

(1) some parameters for that policy are built-in in the policy and cannot be 
modified by the client (there are no policy parameters for doing this in the 
request), or

(2) some parameters for that policy may be specified by the client (there 
are policy parameters for doing this in the request). If they are not 
filed-in by the client, then either default values are used by the server or 
an error is returned.

> * "The default values are also used when processing requests which
> * reference a  validation policy that does not contain the full set of 
 > * parameters necessary for validation and the client has also omitted
 > * the missing values in the request."

> * > Therefore a client can also
> * > simplify the request by omitting a parameter from a request if the
> * > default value published by the server is acceptable.

> * This last sentence is correct.

(text deleted)

> * There should be non such concept of a "non-default policy".
> * Suppress "non-default" in the sentence.
> [TF] since we have the concept of default policy - we by definition get
> the non-default policy.

See above the argumentation against this.

Denis

> * > Therefore if you use the non-default policy, the policy value take
> * > precedence over the request value and cannot be overridden by the
> * > request. For the default policy the client can override any value.
> * 
> * No. See above.
> * 
> * Denis

Date: Mon, 13 Dec 2004 09:35:00 +0100
From: Denis Pinkas <[email-masked]>
Organization: Bull SA.
To: Trevor Freeman <[email-masked]>
CC: "David A. Cooper" <[email-masked]>, [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

> David,
> No wanting to rathole on this sine time is short, the section of the
> document in question which Denis referred to is dealing with the set of
> request that the client can make to the server. We agree that the client
> can ask for path construction without revocation checking. 

Up to here we agree.

> I think it
> legitimate a DPD client could ask for revocation checking because it has
> already be able to build a path. Conceivably a DPV client could do the
> same because it pervious asked for the path to be constructed and just
> wants the revocation data refreshed. 

Here we do not agree. If a client has already been able to build a path, 
then he provides that path as "useful certificates" and the DPV server will 
necessarily build the path (using or not using these "useful certificates") 
and verify it.

So if revocation checking is asked for by the client, this necessarily 
mandates path construction.

Denis

> However to get to the bottom line, is there a specific problem with the
> text in section 3.1.2
> Trevor
> 
> * -----Original Message-----
> * From: David A. Cooper [mailto:[email-masked]]
> * Sent: Thursday, December 09, 2004 2:22 PM
> * To: Trevor Freeman
> * Cc: [email-masked]
> * Subject: Re: SCVP 16 comments deadline
> * 
> * Trevor,
> * 
> * I must say that I agree with Seth and Denis.  I was under the
> impression
> * that "Do revocation status checking on the certification path" really
> * meant "build and validated certification path to a trust anchor and do
> * revocation status checking on the certification path".  While I can
> see
> * that there may be circumstances in which one would request a validated
> * certification path without requiring revocation status checking, I
> can't
> * see requesting revocation status checking without requesting that the
> * path be validated.
> * 
> * It is certainly the case that one can not "do revocation status
> checking
> * on the certification path" without also building a certification path.
> * Since the client can not provide a certification path, revocation
> status
> * checking must be performed on a path that is built by the server.  I
> * suppose you could argue that this simply means that a well formed
> query
> * can not include the id-stc-build-status-checked-pkc-path without also
> * including either the id-stc-build-pkc-path or
> * id-stc-build-valid-pkc-path check.  But, I see see the need for this.
> * 
> * A DPD client would include the id-stc-build-pkc-path along with the
> * id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info wantBacks.
> * If the DPD client included the id-swb-pkc-revocation-info wantBack, it
> * wouldn't need to also include the id-stc-build-status-checked-pkc-path
> * check.  If the DPD client did not include the
> id-swb-pkc-revocation-info
> * wantBack, then would not include the
> * id-stc-build-status-checked-pkc-path check.
> * 
> * So, I would argue that the id-swb-pkc-revocation-info wantBack would
> * only be used in the case that the client was requesting a validated
> * certification path.  The way that I had interpreted the currently
> * defined checks items, an SCVP query would only include one check since
> * each successive check included the requirements of the previous one:
> * id-stc-build-valid-pkc-path included the requirement to build a path
> * (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path
> * included the requirement to build a validated path
> * (id-stc-build-valid-pkc-path).
> * 
> * Under what circumstances can you envision a client wanting the server
> to
> * do revocation status checking on a certification path (that is
> * constructed by the server) without also including a requirement that
> the
> * certification path be validated?   If there are no reasonable
> * circumstances in which a client would make such a query, why is it
> * necessary for clients to be able to construct such a query?
> * 
> * Dave
> * 
> * Trevor Freeman wrote:
> * 
> * >Hi Seth,
> * >A server can always go beyond what the client asked for. I don't see
> * >that as strictly necessary in all cases such as if the client just
> asks
> * >for revocation. Untimely is a matter of local server policy. What the
> * >server cannot do is return status or errors relating to the other
> * >activities which  were beyond the request scope.
> * >Trevor
> * >
> * While it might make sense for a client to only ask for revocation
> * checking if the client could specify the certification path, it does
> not
> * seem to make sense given that the server chooses the certification
> path
> * for which revocation status checking will be performed.  If the client
> * wants to specify a set of certificates for which it only wants to know
> * the revocation status, that is what OCSP is for.
> * 
> * >
> * >* -----Original Message-----
> * >* From: Seth Hitchings [mailto:[email-masked]]
> * >* Sent: Wednesday, December 08, 2004 11:34 AM
> * >* To: Trevor Freeman
> * >* Cc: [email-masked]
> * >* Subject: RE: SCVP 16 comments deadline
> * >*
> * >* Trevor,
> * >*
> * >* For clarification, I assume that doing revocation status checks on
> a
> * path
> * >* implies building
> * >* a validated path?
> * >*
> * >* If I am correct, in what case would a client ever send more than
> one
> * >* check?
> * >*
> * >* Seth
> * >*
> * >* -----Original Message-----
> * >* From: [email-masked]
> * >[mailto:[email-masked]]
> * >* On Behalf Of
> * >* Trevor Freeman
> * >* Sent: Wednesday, December 08, 2004 1:42 PM
> * >* To: Denis Pinkas
> * >* Cc: [email-masked]
> * >* Subject: RE: SCVP 16 comments deadline
> * >*
> * >*
> * >* Denis,
> * >* I know of several systems who's policy is never to revoke the
> identity
> * >* certificate because
> * >* they have other mechanisms to address the issue.
> * >* They are using authorization bound to the identity and they either
> rely
> * on
> * >* short lived
> * >* authorization assertions or revoke the authorization privilege
> * assonated
> * >* with the
> * >* identity. Therefore in those cases not checking the revocation
> status
> * of
> * >* the certificate
> * >* makes perfect sense.
> * >* Trevor
> * >*
> * >* * -----Original Message-----
> * >* * From: [email-masked]
> * >* [mailto:[email-masked]]
> * >* * On Behalf Of Denis Pinkas
> * >* * Sent: Wednesday, December 08, 2004 8:01 AM
> * >* * To: Trevor Freeman
> * >* * Cc: [email-masked]
> * >* * Subject: Re: SCVP 16 comments deadline
> * >* *
> * >* *
> * >* * Trevor,
> * >* *
> * >* * > Hi Denis,
> * >* * > Below are responses to 1-16. Others will follow later.
> * >* *
> * >* * I am pleased that you accepted comments 13, 14, 15 and 16.
> * >* * Among this list, I have a further remark on comment 4.
> * >* *
> * >* * > * 4. Page 13. Typo. Section 3.1.2 "checks"
> * >* * > * The two following lines are in fact one line:
> * >* * > *
> * >* * > * Change:
> * >* * > *
> * >* * > *      - Build a validated certification path to a trust
> anchor;
> * and
> * >* * > *
> * >* * > *      - Do revocation status checks on the certification path.
> * >* * > *
> * >* * > * into:
> * >* * > *
> * >* * > *      - Build a validated certification path to a trust anchor
> and
> * >* * > *        do revocation status checks on the certification path.
> * >* * > *
> * >* * > [TF] Since this paragraph is listing the possible checks and
> * building
> * >* a
> * >* * > path is a separate check to revocation checking, I think the
> * current
> * >* * > text is more accurate.
> * >* *
> * >* * I agree that "building a path is a separate check to revocation
> * >* checking",
> * >* * but revocation checking without building a validated path does
> not
> * make
> * >* * sense.
> * >* *
> * >* * The full text currently is:
> * >* *
> * >* *      - Build a certification path to a trust anchor;
> * >* *
> * >* *      - Build a validated certification path to a trust anchor;
> and
> * >* *
> * >* *      - Do revocation status checks on the certification path.
> * >* *
> * >* * The full text should be:
> * >* *
> * >* *      - Build a certification path to a trust anchor;
> * >* *
> * >* *      - Build a validated certification path to a trust anchor;
> and
> * >* *        do revocation status checks on the certification path.
> * >* *
> * >* * Denis
> * >*
> * >
> * >
> * >
> * 
> 
> 

From: Francis Dupont <[email-masked]>
To: Tim Polk <[email-masked]>
cc: [email-masked]
Subject: Re: Mea Culpa and NEW SCVP 16 comments deadline 
Date: Sun, 12 Dec 2004 18:02:07 +0100
Sender: [email-masked]

Some comments:
 - the requestorRef definition doesn't match its description in 3.2.
   IMHO we should keep the description, i.e., the requestorRef should be
   an octet string which is a local reference to the client. More, I'd like
   the rationale of 4.7 be reflected in 3.2...
 - please change wantBack (item name) and WantBack (type) into wantBacks
   and WantBacks (like [cC]ecks and [rR]eplyWantBacks: homogeneous use
   of the plural!)
 - I'd like to use other cert references than ESSCertIDs, IKE has and URL
   for instance. Please add an OID+Value choice in PKCReference/ACReference?
 - checks OIDs (id-stc-build-*) are different between 3.1.2 and the annex.
   IMHO the text which defines 7 cases is right.
 - 3.1.5.1 needs to be merged into 3.1.4.1. My understanding is there are
   a default validation policy and a basic validation algorithm.
 - spelling of basic valAlg errors (id-bvae-*) should be uniformized
 - same for name valAlg errors between definitions and descriptions
 - id-nvae-unknown-pupose -> id-nvae-unknown-purpose
 - there is nothing about the case where the extended key usage extension
   is absent. IMHO this is like key usage, i.e., the certificate MUST be
   considered goof for all extended usages...
 - responseFlags items *need* tags!
 - 4 uses id-ct-scvp-psResponse in place of id-ct-scvp-certValResponse (typo)
 - what are the differences between responseStatus 50 and 61, or 51 and 62?
 - in ValidationPolValues isCA and trustAnchors should be optional as they
   have no default values.
 - validationPolicyAttr is spuriously described again in 4.5.6
 - in 4.10 change valdationPolicy into validationErrors (typo) which is
   OPTIONAL (i.e., in the MAYs)
 - replyWantBacks for id-swb 10, 11 and 13 are missing
 - delete 4.10.6 validationAlg (moved to ValidationPolValues)
 - just a question "en passant": what OID to used in validationErrors for
   a failed "isCA" check? id-bvae-invalidEntity? id-bvae-invalidPurpose?
 - please change valPolRequest into VPRequest for the name of the type
 - same for valPolResponse and VPResponse
 - same in 6.4 for PolResponse
 - same in 6.6 for polResponse
 - delete 6.7 trustAnchors
 - IMHO dhPublicKeyInfo should be optional in VPResponse because DH is
   not the only protection way.
 - 6.14 VaidationPolValues (typo)
 - in ASN.1 annex:
    * nameValidationAlg -> NameValidationAlgParms
    * ValidationPolValues differs
    * some missing id-stc-build-*
    * id-svp-defaultValAlg -> id-svp-defaultValPolicy
    * missing id-svp-dnValAlg, incorrect id-nvae definition
 - in HTTP B.1 appendix:
   application/cv-policy-request -> application/cv-request
   (IMHO the Sample should be removed as the length header is missing too)

Regards

[email-masked]

PS: I have an implementation of draft 16 in OpenSSL 0.9.7d with a responder
and some test clients including racoon (IKE) and EAP-TLS. Of course as
only the beta version of OpenSSL really supports policies it is a very
partial implementation, BTW not worse than what already exists for
my applications (:-).

Date: Sat, 11 Dec 2004 09:13:52 -0800
To: [email-masked], [email-masked]
From: Paul Hoffman / VPNC <[email-masked]>
Subject: Re: Proposed Changes to RFC 3280
Sender: [email-masked]

At 4:32 AM +0100 12/11/04, Massimiliano Pala wrote:
>This could lead to some problems because all clients will query the
>CRL repository upon CRL expiration.

"Could", yes, but so far, we have not heard that this is a problem in 
current deployments.

>So my idea is very simple, indeed. I would suggest to leave the field
>OPTIONAL (as in ASN.1).

Maybe I'm misunderstanding the proposal, but it seems like this would 
cause *massive* problems for currently-deployed systems that expect 
and rely on the nextUpdate field.

>Indeed the default behaviour for today CAs is to issue new CRLs as
>soon as a certificate is revoked

That may be true for some systems, but it certainly isn't true for others.

>  - why being forced to issue a new
>CRL if no new data is indeed available ?

Because it is cheap for the CA to do.

>Let me know your comments, if there are no major objection I will
>post a possible patch for the document to the list.

Please consider my worry above about currently-deployed software. If 
I'm wrong, no problem, but if I'm right, then I can't imagine that 
the benefits of this kind of change would outweigh the difficulties 
for current systems.

--Paul Hoffman, Director
--VPN Consortium

Date: Fri, 10 Dec 2004 16:50:20 +0100
From: Massimiliano Pala <[email-masked]>
Reply-To: [email-masked]
Organization: Hackmasters.net
To: [email-masked]
Subject: Proposed Changes to RFC 3280
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms040003070100080006090908
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello all,

going through rfc3280 and reading the sections 5, 5.1, 5.1.2.5 about
CRLs and nextUpdate field one idea came into my mind.
The rfc enforces the use of the nextUpdate field which envisages the
idea that new revocation information will be available within the
retained time value.

This could lead to some problems because all clients will query the
CRL repository upon CRL expiration.
Moreover, in practical environment, there is the common thought that
the nextUpdate filed carries the time when new revocation data will
be available, which (correct me if I am wrong) is not.

So my idea is very simple, indeed. I would suggest to leave the field
OPTIONAL (as in ASN.1).

If the field is not present, then compliant applications should check
for new CRL when validating a certificate. This is pretty the same way
OCSP handles the nextUpdate field within responses, isn't it?

Indeed the default behaviour for today CAs is to issue new CRLs as
soon as a certificate is revoked - why being forced to issue a new
CRL if no new data is indeed available ?

Let me know your comments, if there are no major objection I will
post a possible patch for the document to the list.

-- 

C'you,

	Massimiliano Pala

--o------------------------------------------------------------------------
Massimiliano Pala [OpenCA Project Manager]               [email-masked]
                                                 Tel.:   +39 (0)59  270  094
http://www.openca.org                           Fax:    +39   178  270 2077
http://openca.sourceforge.net                   Mobile: +39 (0)347 7222 365

University of Modena and Reggio Emilia
Certification Authority Informations:

Authority Access Point                                  http://pki.unimo.it
Authority's Certificate:                http://pki.unimo.it/ca/issuers.html
Certificate Revocation List:              http://pki.unimo.it/crl/cacrl.crl
--o------------------------------------------------------------------------

--------------ms040003070100080006090908
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms040003070100080006090908--

Date: Sat, 11 Dec 2004 04:32:23 +0100
From: Massimiliano Pala <[email-masked]>
Reply-To: [email-masked]
Organization: Hackmasters.net
To: [email-masked]
Subject: Proposed Changes to RFC 3280
Sender: [email-masked]

This is a cryptographically signed message in MIME format.

--------------ms040606040401000100030202
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello all,

going through rfc3280 and reading the sections 5, 5.1, 5.1.2.5 about
CRLs and nextUpdate field one idea came into my mind.
The rfc enforces the use of the nextUpdate field which envisages the
idea that new revocation information will be available within the
retained time value.

This could lead to some problems because all clients will query the
CRL repository upon CRL expiration.
Moreover, in practical environment, there is the common thought that
the nextUpdate filed carries the time when new revocation data will
be available, which (correct me if I am wrong) is not.

So my idea is very simple, indeed. I would suggest to leave the field
OPTIONAL (as in ASN.1).

If the field is not present, then compliant applications should check
for new CRL when validating a certificate. This is pretty the same way
OCSP handles the nextUpdate field within responses, isn't it?

Indeed the default behaviour for today CAs is to issue new CRLs as
soon as a certificate is revoked - why being forced to issue a new
CRL if no new data is indeed available ?

Let me know your comments, if there are no major objection I will
post a possible patch for the document to the list.

-- 

C'you,

	Massimiliano Pala

--o------------------------------------------------------------------------
Massimiliano Pala [OpenCA Project Manager]               [email-masked]
                                                  Tel.:   +39 (0)59  270  094
http://www.openca.org                           Fax:    +39   178  270 2077
http://openca.sourceforge.net                   Mobile: +39 (0)347 7222 365

University of Modena and Reggio Emilia
Certification Authority Informations:

Authority Access Point                                  http://pki.unimo.it
Authority's Certificate:                http://pki.unimo.it/ca/issuers.html
Certificate Revocation List:              http://pki.unimo.it/crl/cacrl.crl
--o------------------------------------------------------------------------

--------------ms040606040401000100030202
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

--------------ms040606040401000100030202--

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Fri, 10 Dec 2004 15:19:17 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Denis,

* -----Original Message-----
* From: Denis Pinkas [mailto:[email-masked]]
* Sent: Friday, December 10, 2004 9:14 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* > Hi Peter,
* >
* > Ho they are combined is defined in section 1.3
* >
* > " The referenced (policy) value indicates either a partial or full
set
* > of parameters. The client can therefore omit these agreed parameters
* > from the request, only passing any parameters which are not
specified by
* > the previously agreed policy.  Therefore in the simplest form, with
* > validation polices which define every parameter necessary, a SCVP
* > request need only contain the certificate to be validated, the
* > validation policy and any run-time parameters for the request.
* >
* > SCVP server also publishes its default validation policy settings.
The
* > default policy can be requested for validation
* 
* Up to here this is fine.
* 
* > and the client can  override any default value in the request if
* required.
* 
* I do not agree here. The default policy is used when the client does
not
* specify anything and thus there are no parameters for the default
* validation
* policy.
[TF] You are advocating making the default policy selection implicit by
omitting the policy form the request, we have chosen to make it explicit
be defining a OID to represent the default policy. Functionally they are
the same.
* 
* If the client specifies a policy it is one supported by the server
which
* may
* or may not have parameters.
[TF] Agreed
* 
* Some parameters may be built-in in the policy and cannot be changed
while
* some others may be allowed to be changed by the client.
[TF] Agreed
* 
*  > The default
* > values are also used when processing requests which reference a
* > validation policy other than the default one that does not contain
the
* > full set of parameters necessary for validation and the client has
also
* > omitted the missing values in the request.
* 
* This sentence is rather long and complicated. I read it three times
and
* could not understand the exception for the default policy. If the
default
* policy is addressed above, we can simplify the sentence and only
mention:
[TF] All models contain the concept of default and non-default policy.
If you specify a non-default policy, any parameter defined in the policy
cannot be overridden by the client. Any parameter not defined by policy
may be supplied by the client or the client can defer to the server
default. If you specify the default policy, every parameter can be
overridden.
* 
* "The default values are also used when processing requests which
reference
* a
* validation policy that does not contain the full set of parameters
* necessary
* for validation and the client has also omitted the missing values in
the
* request."
* 
* > Therefore a client can also
* > simplify the request by omitting a parameter from a request if the
* > default value published by the server is acceptable.
* 
* This last sentence is correct.
* 
* > Further 3.1.5.1 also requires
* > " If there are any conflicts between the non-default policy
referenced
* > in the request and any supplied parameter values in the request,
then
* > the server MUST return an error response."
* 
* There should be non such concept of a "non-default policy".
* Suppress "non-default" in the sentence.
[TF] since we have the concept of default policy - we by definition get
the non-default policy.
* 
* > Therefore if you use the non-default policy, the policy value take
* > precedence over the request value and cannot be overridden by the
* > request. For the default policy the client can override any value.
* 
* No. See above.
* 
* Denis
* 
* > If the policy and client both omit a parameter, then the server
default
* > value is used.
* >
* > Trevor
* >
* > * -----Original Message-----
* > * From: Peter Sylvester [mailto:[email-masked]]
* > * Sent: Thursday, December 09, 2004 3:49 AM
* > * To: [email-masked]; Trevor Freeman
* > * Cc: [email-masked]
* > * Subject: RE: SCVP 16 comments deadline
* > *
* > * Either I was unclear in my question or you have totally
misunderstood
* > it,
* > * or I don't understand what your are responding.
* > *
* > * > Hi Peter,
* > * > All parameter assonated with policy mapping are names the same.
If
* > you
* > * > want guidance on their use in combination with the policy
reference
* > see
* > * > section 1.3.
* > * It is obviously not difficult to guess which names corresponds,
that
* > * is not the problem.
* > *
* > *
* > * > SCVP only supports one policy per request therefore if you want
to
* > * > process different polices for different certificates - send
* > different
* > * > requests.
* > * Where do I talk about different policies and different
certificates,
* > * are you confusing this with another message?
* > *
* > * I am just asking how parameters from the client and the server are
* > * combined in a request for one signed cert with one policy. And, to
* > * be sure, I can also assume that a client sets all the input flags
* > * or none, if you want.
* > *
* > * The current syntax allows all kind of combinations of settings and
* > * by the client and the server, it is not specified:
* > *
* > * - how they are combined
* > * - whether there this only a subset of useful meanings.
* > *
* > * > Trevor
* > * >
* > * > * -----Original Message-----
* > * > * From: Peter Sylvester [mailto:[email-masked]]
* > * > * Sent: Tuesday, December 07, 2004 4:15 AM
* > * > * To: Trevor Freeman
* > * > * Cc: [email-masked]
* > * > * Subject: Re: SCVP 16 comments deadline
* > * > *
* > * > * There are several boolean values like
* > * > *
* > * > *   ValidationPolicy ::= SEQUENCE {
* > * > *     ...
* > * > *     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
* > * > *
* > * > * and a policy definition.
* > * > *
* > * > *   ValidationPolValues ::=SEQUENCE  {
* > * > *     ...
* > * > *     inhibitPolMap            BOOLEAN,
* > * > *
* > * > *
* > * > * - It would be nice to use the same field names.
* > * > *
* > * > * - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap
together
* > * > *   with some apppropriate tagging, it doesn't make much sense
to
* > * > *   me to code useless values.
* > * > *
* > * > * Would it be possible to add some statement about the intended
* > * > * meaning of the 6 possible combination:
* > * > *
* > * > *
* > * > * inhibitPolMap = FALSE
* > * > *
* > * > * inhibitPolicyMapping absent  1
* > * > *                      FALSE   2
* > * > *                      TRUE    3
* > * > *
* > * > * inhibitPolMap = TRUE
* > * > *
* > * > * inhibitPolicyMapping absent  4
* > * > *                      FALSE   5
* > * > *                      TRUE    6
* > * > *
* > * > *
* > * > * Does it mean that when the client value takes preceedence over
the
* > * > * server value?
* > * > *
* > * > * 1 = FALSE
* > * > * 2 = FALSE
* > * > * 3 = TRUE
* > * > * 4 = TRUE
* > * > * 5 = FALSE
* > * > * 6 = TRUE
* > * > *
* > * > *
* > * > * It had been said some time ago (as far as I remember) that
these
* > * > * inputs are not global ones but in principle for each of the
* > * > * certs to be asked for. what was the conclusion why they stay
* > global
* > * > * for all certs?
* > * >
* > * >
* > * >
* >
* 

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Fri, 10 Dec 2004 13:09:43 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Friday, December 10, 2004 5:02 AM
* To: [email-masked]; Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* > *
* > *
* > * Does this means that the validate Algorithm is cert specific and
not
* > * request specific?
* > [TF] The request specifies a policy, which in tern references an
* > algorithm. The policy applies globally to the request. There is no
* > relationship between the certificate and the algorithm.
* > Trevor
* >
* 
* I agree that it seems sufficient for one request to have the same
* *algorithm(s)* performed for all the certs, but the only examples
defined
* contain a *parameter* which is specific to each cert, i.e. an
* identity/name
* that has to be matched with the content of a cert, thus currently the
* usage of this 'extension' features limits the requests to one cert
only.
* 
* For requests concerning SSL servers, IPsec auths, *one signature*, one
* cert will be present in the request, a case for multiple requests
*may*
* be certs for encryption. It may be sufficient to allow multiple names
* for e-mail protection certs in the existing parameter, and a rule
saying
* that names must be present.
[TF] If you just want to check all the certs to be email protection, you
can do that via the basic policy. If you want ot check specific certs
with specific names, yes you have to submit multiple requests.

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Fri, 10 Dec 2004 13:02:16 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Friday, December 10, 2004 5:02 AM
* To: [email-masked]; Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* > [TF] How the server identifies the client is a mater of local server
* > policy.
* See my other message and a text proposal.
* 
* > *
* > * The 3379 text says:
* > *
* > *    When the DPV request is authenticated, the client SHOULD be
able to
* > *    include a client identifier in the request for the DPV server
to
* > copy
* > *    into the response.  Mechanisms for matching this identifier
with
* > the
* > *    authenticated identity depends on local DPV server conditions
* > and/or
* > *    the validation policy.
* > *
* > * The client has no way to declare its identity in the protocol,
* > * and there no provision of what this could be from what it would
* > * be derived from (IP address, DNS name of the host, ...), ...
* > [TF] The client can declare its identity in the request in a number
of
* > ways.
* >  	1. by including its signing certificate in the request
* > 	2. by including its DH certificate used to compute the hmac
* > 	3. By HMACing the request using a shared secret or password
* 
* None of these is a "declaration" of an identity. It is a means to
* authenticate
* the request at least in my opinion.
[TF] When I sign email, I don't include an additional attribute, I just
include my certificate. How is that not a declaration of identity.
* 
* Note the remark about 'may respond with an error' in
* the requirements. This is intended to mean that a server may reject
* a request when the declared entity is not one that can be
authenticated.
* (I don't think that it was meant that an error can be 'not
authorized')
* 
* >
* > What identity the server knows or uses for the client based on this
data
* > is a matter of local server policy
* >
* > *
* > * Why is this restricted to signed requests, and not to
'authenticated'?
* > [TF] Its not. Section 3 defies signed requests as being either
* > signedData or authenticatedData.
* 
* Ok.
* 
* > *
* > * As already said in another may, this text could make sense if
there
* > * would be a corresponding requestorName in the request.
* 
* you seem to agree?

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Fri, 10 Dec 2004 11:05:03 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Peter

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Friday, December 10, 2004 5:01 AM
* To: [email-masked]; Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* > [TF] I am saying how the server identifies the client for the
supplied
* > information is a matter of local policy to the server.
* 
* Repeating this three time doesn't make the statement true. It is
* totally contrary to what is described in the requirements document.
* 
*    When the DPV request is authenticated, the client SHOULD be able to
*    include a client identifier in the request for the DPV server to
copy
*    into the response.  Mechanisms for matching this identifier with
the
*    authenticated identity depends on local DPV server conditions
and/or
*    the validation policy.  The DPV server MAY choose to blindly copy
the
*    identifier, omit the identifier, or return an error response.
[TF] 
Reputedly copying the same section from 3379 has the same effect. I
believe the current draft of SCVP complies with the text. The name must
be in the certificate. I don't see value in repeating the value twice in
the request.

* 
* If you don't agree about the meaning of 'client identifier' in the
* following excerpt, then we will not be able to get anywhere further.
* 
* If the intention of the excerpt above would be that the client does
not
* explicitely do provide an identifier, then the text would be like:
* 
*    When the DPV requets is authenticated, then server MAY return to
the
*    client an identifier derived from the authentication.
* 
* if you want to derive *one* identifier from the authentication, what
will
* you set for a certificate with one or more instances of
subjectAltname.
* The best you can do is to return all identities.
* 
* The client has to have a means to explicitely present his identity.
* 
* This is an identifier where the client declares its identity,
furthermore
* this identifier being an octet string without any structure is not
* something that is common in PKI environments, in particular you
already
* return a GeneralNames structure in the requesterName.
* 
* I simply repeat my request to add requesterName and a responderName
* structure
* in both the request and the response.
* 
* here a text proposal:
* 
* x.x.x Entity identification.
* 
* Since an SCVP response MAY be used by a client to demonstrate to
another
* relying party that certificate validation has been duly performed, the
* protocol allows to add identities of requesting clients and responding
* server to the response.
* 
* An identity is encoded as GeneralName. (cf. syntax)
* 
* Servers may have more than one identity, for example, a URI
* to access to the service, or a DN related or not to CAs.
* In particular, an SCVP server may have the same identity as a CA
* for which the server can provide answers in a similar way as an
* OCSP server.
* 
* The protocol is as follows:
* 
* x.x.x.1 requesterName
* 
* This field in the request indicates one or more identities
participating
* in the creation of the request. A client MAY add this field to a
request.
* If the request is authenticated, one of the presented identities
SHOULD
* match with at least one identity that can be derived from
authentication.
* A server MAY accept a request even if the presented identities do not
* correspond to one derived from authentication. If the request cannot
be
* authenticated, a server SHOULD reject the request if it contains this
* field.
* 
* On relaying, a relay MAY choose not to copy the presented identity to
* the relayed request, e.g., to anonymize the requester.
* 
* This field SHOULD be returned as is in the response. A server MAY
choose
* to add additional identities. This may be done when a relay is
involved,
* when an authenticated identity is different.
* 
* (merge some stuff from the existing requesterName if necessary).
* 
* x.x.x.1 responderName
* 
* This field in the request indicated identities of one or more servers
that
* are intending to participate in the construction of the response. This
* may be used for example to indicate to a relaying proxy the identity
of
* another scvp server.
* 
* This field in the response indicate the identities of the servers that
* have participated in creating the response. There is no particular
* relationship with the field with the same name in the input.
* 
* ------
* 
* Now we can treat the usefulness of the requester/responder for,loop
* control independantly.
* 
* > *
* > * Since two years or so I am asking that you just make two elements
* > *
* > * requestor GeneralNames
* > * responder GeneralNames
* > *
* > * in both the request and the response. (and to get rid of the octet
* > string
* > * stuff)
* > *
* > * I may have not understod your intention of "responder", if this is
a
* > pure
* > * local reference of the RESPONSE vs the repspoinder, then I think a
* > * sequence number would be more appropriate.
* > *
* 
* what is the current definition of responder good for? You menton
something
* below, see later.
* 
* 
* > * > *
* > * > * The new text replacing "requestor" in chapter 7 by
"requestorRef".
* > * > *
* > * > * > however,
* > * > * >  all of the octets MUST have values other than zero.
* > * > * Why? I would find it quite useful to add a
* > * > * hash of something local, if at all, the hash of its IP address
for
* > * > example
* > * > * (for which I can use the Nonce as well).
* > * > [TF] If you want me to remove the clause about values being
other
* > than
* > * > zero - I am happy to do so. Since this is of local significance
* > only, if
* > * > an implementation puts garbage in here it does not effect
* > * > interoperability.
* > * How do relate 'local significance only' and the usage of such
fields
* > * for 'loop control'. The significance not just local.
* > * If relays just put "relay" as a local reference you will have
* > problems.
* > *
* > * LOOONG time ago, I told you that an encoding of identifiers in an
* > octet
* > * string
* > * sounds strange, given that we have lots of ways and that you don't
* > provide
* > * any guideline on how identifiers can be encoded.
* > *
* > * Although you violantly rejected all proprosals to change this, you
* > * silently starting doing this in this version:
* > *
* > * - replacing an octet string by a sequence  (good, but omitted the
only
* > * reason
* > *   for not allowing zeros).
* > * - adding a requesterName item with is a generalnames
* > *
* > *
* 
* I probably expected some [TF] here, but well, you seem to agree.
* 
* > * > *
* > * > *   The requestRef item allows the client to associate a
response
* > with
* > * > *   a request.  The requestNonce provides an alternative
mechanism
* > ..
* > * > *
* > * > *   and you have also the requestorRef.
* > * > *
* > * > * The concept of trying to make loop control with values which
are
* > * > * explicitely
* > * > * defined as not globally unique sounds strange to me.
* > * > [TF] I have a big problem which the concept of global
uniqueness. I
* > * > class it the same bucket as non-repudiation.
* > *
* > * You are operating in a PKI where ID's of
* > * entities are unique within the PKI. If you don't trust the
* > * naming rule in your PKI, i.e. in some associated SCVP network
* > * which is much smaller, i.e. in the magnitude of the size of
* > * the CA name space.
* > [TF] Names give by an instance of a PKI are by definition not
global.
* 
* Can you point me to the definition?
* You may have a problem of ensuring uniqueness of name inside the PKI
* this but that's a similar proble as for the domain name system,
* it is organisational and not technical.
* Names inside a PKI are non-ambiguously associated to the
* entities as far as I remember.
* 
* I really don't see what you are arguing about?
* 
* > *
* > * Well, domain names work as far as I know. And telephone numbers
also.
* > * I don't say that non-repudiation doesn't work. I don't say that
* > * I agree or disagree with your comparision since I do not see why
this
* > * is relevant here.
* > *
* > * You are not even answering the question: You make loop control,
and
* > * you explicitely says that the identifiers that are used do only
have
* > * local significance. You could have said: An example for
identifiers
* > * that could be used for loop control are uuids generated on each
server
* > * startup using the server address and a time value.
* > [TF] Are you asking a question or suggesting text for the draft? If
you
* > want an example of how one might generate a identifier of local
* > significance I can do that.
* 
* An identifier of 'local' significance is simple: 'I'
* 
* It seems that we don't agree about the meaning of 'local
significance'.
* 
* You need that each potentially participating entity has at least one
* identifier which are distincet among the servers, but may or not
* have any global 'significance'.
* 
* If you want to keep the requester item for this, why not. it may be
* useful not to overload an 'identification', a nonce, a loop control
* tickmark
* in the same field.
* 
* > * > *  "The requestorRef item is also needed
* > * > *   to prevent looping in some configurations"
* > * > *
* > * > *  "No provisions are
* > * > *   made to ensure uniqueness of the requestorRef octet string"
* > * > *
* > * > * The usefulness of "requestorRef" as an identifier for the
request
* > * > * is pretty weak, since you can have a nonce if it is for each
* > * > * request. use GeneralName(s) in a requestorName sequence as for
the
* > * > * response.
* > * > *
* > * > * page 34:
* > * > *
* > * > *   The requestorRef and the responder items MUST be included if
the
* > * > request
* > * > * included a
* > * > *   requestor item.
* > * > *
* > * > * what does this mean? what is the relationship between a
* > requesterRef
* > * > and
* > * > * responder?
* > * > [TF] If requestorRef is populated, it means it's a relayed
request
* > in
* > * > which case the responder is of significance.
* > *
* > * No. any client can set a requestorRef, independant of whether the
* > request
* > * will be relayed. What is the significance of responder? In your
spec
* > * it is only of local signifance for the responding server? waht can
* > this
* > * be good for?
* 
* > [TF] It good for detecting loops. The server adds an identifier
which it
* > recognizes to the response. It is the only one rrequired to
recognize
* > the value so it can put whatever it wants in the field. There is no
need
* > to standardize the behavior of the SCVP server in this regard.
* 
* To be sure: The question was: "What is the significance of responder?"
* How does this value occur in the loop control algo? So far, the server
* just adds this, and noone is doing somthing with it, at least not in
* the current spec?
* 
* > *
* > * > *
* > * > * If I'd be interested in anything identifying the response,
then it
* > is
* > * > * a sequence of identifiers of the servers that have partipated,
and
* > * > some
* > * > * local ids or "serial number' like thing if I want to go to
that
* > server
* > * > and
* > * > * asks 'did you really tell this to my friend'.
* > * > *
* > * > *
* > * > * Chapter 7: Denis is right that the spec does not describe how
* > relaying
* > * > is
* > * > * performed, i.e. how a response is created from a response
received
* > * > from
* > * > * another
* > * > * server by a 'proxy'.
* > * > [TF] What specifically are you looking for?
* > *
* > * A working specification that includes:
* > *
* > * - how a request received is transformed into a new request by a
relay,
* > *   which fields are copied, or not, or may.
* > * - how the response is transformed into a response to the original
* > request
* > *   there are SEVERAL options, in particulat the one that addresses
* > *   the requirement of allowing a response as part of another one.
* > [TF] OK. I will add that.
* good.
* 
* Would it be possible to send a draft to the list before it get graved
into
* electronic marble.

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Fri, 10 Dec 2004 10:55:58 -0800
From: "Trevor Freeman" <[email-masked]>
To: "David A. Cooper" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

David,
No wanting to rathole on this sine time is short, the section of the
document in question which Denis referred to is dealing with the set of
request that the client can make to the server. We agree that the client
can ask for path construction without revocation checking. I think it
legitimate a DPD client could ask for revocation checking because it has
already be able to build a path. Conceivably a DPV client could do the
same because it pervious asked for the path to be constructed and just
wants the revocation data refreshed. 

However to get to the bottom line, is there a specific problem with the
text in section 3.1.2
Trevor

* -----Original Message-----
* From: David A. Cooper [mailto:[email-masked]]
* Sent: Thursday, December 09, 2004 2:22 PM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* I must say that I agree with Seth and Denis.  I was under the
impression
* that "Do revocation status checking on the certification path" really
* meant "build and validated certification path to a trust anchor and do
* revocation status checking on the certification path".  While I can
see
* that there may be circumstances in which one would request a validated
* certification path without requiring revocation status checking, I
can't
* see requesting revocation status checking without requesting that the
* path be validated.
* 
* It is certainly the case that one can not "do revocation status
checking
* on the certification path" without also building a certification path.
* Since the client can not provide a certification path, revocation
status
* checking must be performed on a path that is built by the server.  I
* suppose you could argue that this simply means that a well formed
query
* can not include the id-stc-build-status-checked-pkc-path without also
* including either the id-stc-build-pkc-path or
* id-stc-build-valid-pkc-path check.  But, I see see the need for this.
* 
* A DPD client would include the id-stc-build-pkc-path along with the
* id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info wantBacks.
* If the DPD client included the id-swb-pkc-revocation-info wantBack, it
* wouldn't need to also include the id-stc-build-status-checked-pkc-path
* check.  If the DPD client did not include the
id-swb-pkc-revocation-info
* wantBack, then would not include the
* id-stc-build-status-checked-pkc-path check.
* 
* So, I would argue that the id-swb-pkc-revocation-info wantBack would
* only be used in the case that the client was requesting a validated
* certification path.  The way that I had interpreted the currently
* defined checks items, an SCVP query would only include one check since
* each successive check included the requirements of the previous one:
* id-stc-build-valid-pkc-path included the requirement to build a path
* (id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path
* included the requirement to build a validated path
* (id-stc-build-valid-pkc-path).
* 
* Under what circumstances can you envision a client wanting the server
to
* do revocation status checking on a certification path (that is
* constructed by the server) without also including a requirement that
the
* certification path be validated?   If there are no reasonable
* circumstances in which a client would make such a query, why is it
* necessary for clients to be able to construct such a query?
* 
* Dave
* 
* Trevor Freeman wrote:
* 
* >Hi Seth,
* >A server can always go beyond what the client asked for. I don't see
* >that as strictly necessary in all cases such as if the client just
asks
* >for revocation. Untimely is a matter of local server policy. What the
* >server cannot do is return status or errors relating to the other
* >activities which  were beyond the request scope.
* >Trevor
* >
* While it might make sense for a client to only ask for revocation
* checking if the client could specify the certification path, it does
not
* seem to make sense given that the server chooses the certification
path
* for which revocation status checking will be performed.  If the client
* wants to specify a set of certificates for which it only wants to know
* the revocation status, that is what OCSP is for.
* 
* >
* >* -----Original Message-----
* >* From: Seth Hitchings [mailto:[email-masked]]
* >* Sent: Wednesday, December 08, 2004 11:34 AM
* >* To: Trevor Freeman
* >* Cc: [email-masked]
* >* Subject: RE: SCVP 16 comments deadline
* >*
* >* Trevor,
* >*
* >* For clarification, I assume that doing revocation status checks on
a
* path
* >* implies building
* >* a validated path?
* >*
* >* If I am correct, in what case would a client ever send more than
one
* >* check?
* >*
* >* Seth
* >*
* >* -----Original Message-----
* >* From: [email-masked]
* >[mailto:[email-masked]]
* >* On Behalf Of
* >* Trevor Freeman
* >* Sent: Wednesday, December 08, 2004 1:42 PM
* >* To: Denis Pinkas
* >* Cc: [email-masked]
* >* Subject: RE: SCVP 16 comments deadline
* >*
* >*
* >* Denis,
* >* I know of several systems who's policy is never to revoke the
identity
* >* certificate because
* >* they have other mechanisms to address the issue.
* >* They are using authorization bound to the identity and they either
rely
* on
* >* short lived
* >* authorization assertions or revoke the authorization privilege
* assonated
* >* with the
* >* identity. Therefore in those cases not checking the revocation
status
* of
* >* the certificate
* >* makes perfect sense.
* >* Trevor
* >*
* >* * -----Original Message-----
* >* * From: [email-masked]
* >* [mailto:[email-masked]]
* >* * On Behalf Of Denis Pinkas
* >* * Sent: Wednesday, December 08, 2004 8:01 AM
* >* * To: Trevor Freeman
* >* * Cc: [email-masked]
* >* * Subject: Re: SCVP 16 comments deadline
* >* *
* >* *
* >* * Trevor,
* >* *
* >* * > Hi Denis,
* >* * > Below are responses to 1-16. Others will follow later.
* >* *
* >* * I am pleased that you accepted comments 13, 14, 15 and 16.
* >* * Among this list, I have a further remark on comment 4.
* >* *
* >* * > * 4. Page 13. Typo. Section 3.1.2 "checks"
* >* * > * The two following lines are in fact one line:
* >* * > *
* >* * > * Change:
* >* * > *
* >* * > *      - Build a validated certification path to a trust
anchor;
* and
* >* * > *
* >* * > *      - Do revocation status checks on the certification path.
* >* * > *
* >* * > * into:
* >* * > *
* >* * > *      - Build a validated certification path to a trust anchor
and
* >* * > *        do revocation status checks on the certification path.
* >* * > *
* >* * > [TF] Since this paragraph is listing the possible checks and
* building
* >* a
* >* * > path is a separate check to revocation checking, I think the
* current
* >* * > text is more accurate.
* >* *
* >* * I agree that "building a path is a separate check to revocation
* >* checking",
* >* * but revocation checking without building a validated path does
not
* make
* >* * sense.
* >* *
* >* * The full text currently is:
* >* *
* >* *      - Build a certification path to a trust anchor;
* >* *
* >* *      - Build a validated certification path to a trust anchor;
and
* >* *
* >* *      - Do revocation status checks on the certification path.
* >* *
* >* * The full text should be:
* >* *
* >* *      - Build a certification path to a trust anchor;
* >* *
* >* *      - Build a validated certification path to a trust anchor;
and
* >* *        do revocation status checks on the certification path.
* >* *
* >* * Denis
* >*
* >
* >
* >
* 

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Fri, 10 Dec 2004 10:31:15 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,
You are assuming that there is only one possible matching algorithm for
a name type - which seems a fragile assertion. The be more  robust then
you supply a name and a matching rule identifier - which is what the
name validation algorithm does.
I have seen examples of cases where a name has been inserted into an asn
structure which does not cause an ASN decode error but the name is still
bad because the name semantics are wrong - so I don't subscribe to the
notion that all bad names cause asn decode errors.

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Thursday, December 09, 2004 4:58 AM
* To: [email-masked]; Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* 3.1.5.2.3 Name Validation Algorithm
* 
* I find the possibilities for the Name Validation Algorithm
* rather unsafisfying.
* 
* It should be possible IMO to have a matching simply by
* presenting whatever form of Generalname and this should
* be compared with the corresponding value in the cert.
* 
* In fact, the id-svp-dnValAlg sounds rather restrictive to
* me, it seems to imply that only the subject field is
* compared (or does this also compare with the Dirname in
* a subjectAltname).
* 
* This restriction about a DN doesn't seem necssary to me,
* Any generalName can be compared with any in the subjectAltname.
* 
* E.g. an IP address.
* 
* 'id-nvae-unknown-pupose'   ==> 'id-nvae-unknown-purpose'
* 
*   id-nvae-name-mismatch vs   The id-nvae-nameMismatch value
[TF] Fixed
* 
* please align the spellings of all the errors types.
* 
*   The id-nvae-badName value means the client supplied either and
*   empty or malformed name in the request.
* 
* what is a bad or malformed name? How can this happen without raising
* a general asn1 decoding error
* 
* since it comes right next?
* 
* ---
* cleanup the following text, please
* 
*   The userPolicySet item specifies a list of policy identifiers that
*   the SCVP server MUST use when forming and validating a certificate
*   If certPolicies is not specified, then any-policy MUST be used.
* 
* 3.1.5.3 userPolicySet
* 
*   The userPolicySet item specifies a list of certificate policy
*   identifiers that the SCVP server MUST use when constructing and
*   validating a certification path.  If userPolicySet is not specified,
*   then any-policy MUST be used.
* 
* 
[TF] I will change the userPolicy set to the following
The userPolicySet item specifies a list of certificate policy
identifiers that the SCVP server MUST use when constructing and
validating a certification path.

The requirement for use of the userPolicySet falling back to any-policy
is being dropped because the referenced policy or the default policy
will cover this.
* 
 
Trevor

Date: Fri, 10 Dec 2004 18:13:40 +0100
From: Denis Pinkas <[email-masked]>
Organization: Bull SA.
To: Trevor Freeman <[email-masked]>
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

> Hi Peter,
> 
> Ho they are combined is defined in section 1.3
> 
> " The referenced (policy) value indicates either a partial or full set
> of parameters. The client can therefore omit these agreed parameters
> from the request, only passing any parameters which are not specified by
> the previously agreed policy.  Therefore in the simplest form, with
> validation polices which define every parameter necessary, a SCVP
> request need only contain the certificate to be validated, the
> validation policy and any run-time parameters for the request.
> 
> SCVP server also publishes its default validation policy settings.  The
> default policy can be requested for validation 

Up to here this is fine.

> and the client can  override any default value in the request if required.

I do not agree here. The default policy is used when the client does not 
specify anything and thus there are no parameters for the default validation 
policy.

If the client specifies a policy it is one supported by the server which may 
or may not have parameters.

Some parameters may be built-in in the policy and cannot be changed while 
some others may be allowed to be changed by the client.

 > The default
> values are also used when processing requests which reference a
> validation policy other than the default one that does not contain the
> full set of parameters necessary for validation and the client has also
> omitted the missing values in the request. 

This sentence is rather long and complicated. I read it three times and 
could not understand the exception for the default policy. If the default 
policy is addressed above, we can simplify the sentence and only mention:

"The default values are also used when processing requests which reference a
validation policy that does not contain the full set of parameters necessary 
for validation and the client has also omitted the missing values in the 
request."

> Therefore a client can also
> simplify the request by omitting a parameter from a request if the
> default value published by the server is acceptable.

This last sentence is correct.

> Further 3.1.5.1 also requires
> " If there are any conflicts between the non-default policy referenced
> in the request and any supplied parameter values in the request, then
> the server MUST return an error response."

There should be non such concept of a "non-default policy".
Suppress "non-default" in the sentence.

> Therefore if you use the non-default policy, the policy value take
> precedence over the request value and cannot be overridden by the
> request. For the default policy the client can override any value.

No. See above.

Denis

> If the policy and client both omit a parameter, then the server default
> value is used.
> 
> Trevor
> 
> * -----Original Message-----
> * From: Peter Sylvester [mailto:[email-masked]]
> * Sent: Thursday, December 09, 2004 3:49 AM
> * To: [email-masked]; Trevor Freeman
> * Cc: [email-masked]
> * Subject: RE: SCVP 16 comments deadline
> * 
> * Either I was unclear in my question or you have totally misunderstood
> it,
> * or I don't understand what your are responding.
> * 
> * > Hi Peter,
> * > All parameter assonated with policy mapping are names the same. If
> you
> * > want guidance on their use in combination with the policy reference
> see
> * > section 1.3.
> * It is obviously not difficult to guess which names corresponds, that
> * is not the problem.
> * 
> * 
> * > SCVP only supports one policy per request therefore if you want to
> * > process different polices for different certificates - send
> different
> * > requests.
> * Where do I talk about different policies and different certificates,
> * are you confusing this with another message?
> * 
> * I am just asking how parameters from the client and the server are
> * combined in a request for one signed cert with one policy. And, to
> * be sure, I can also assume that a client sets all the input flags
> * or none, if you want.
> * 
> * The current syntax allows all kind of combinations of settings and
> * by the client and the server, it is not specified:
> * 
> * - how they are combined
> * - whether there this only a subset of useful meanings.
> * 
> * > Trevor
> * >
> * > * -----Original Message-----
> * > * From: Peter Sylvester [mailto:[email-masked]]
> * > * Sent: Tuesday, December 07, 2004 4:15 AM
> * > * To: Trevor Freeman
> * > * Cc: [email-masked]
> * > * Subject: Re: SCVP 16 comments deadline
> * > *
> * > * There are several boolean values like
> * > *
> * > *   ValidationPolicy ::= SEQUENCE {
> * > *     ...
> * > *     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
> * > *
> * > * and a policy definition.
> * > *
> * > *   ValidationPolValues ::=SEQUENCE  {
> * > *     ...
> * > *     inhibitPolMap            BOOLEAN,
> * > *
> * > *
> * > * - It would be nice to use the same field names.
> * > *
> * > * - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
> * > *   with some apppropriate tagging, it doesn't make much sense to
> * > *   me to code useless values.
> * > *
> * > * Would it be possible to add some statement about the intended
> * > * meaning of the 6 possible combination:
> * > *
> * > *
> * > * inhibitPolMap = FALSE
> * > *
> * > * inhibitPolicyMapping absent  1
> * > *                      FALSE   2
> * > *                      TRUE    3
> * > *
> * > * inhibitPolMap = TRUE
> * > *
> * > * inhibitPolicyMapping absent  4
> * > *                      FALSE   5
> * > *                      TRUE    6
> * > *
> * > *
> * > * Does it mean that when the client value takes preceedence over the
> * > * server value?
> * > *
> * > * 1 = FALSE
> * > * 2 = FALSE
> * > * 3 = TRUE
> * > * 4 = TRUE
> * > * 5 = FALSE
> * > * 6 = TRUE
> * > *
> * > *
> * > * It had been said some time ago (as far as I remember) that these
> * > * inputs are not global ones but in principle for each of the
> * > * certs to be asked for. what was the conclusion why they stay
> global
> * > * for all certs?
> * >
> * >
> * >
> 

Date: Fri, 10 Dec 2004 14:01:58 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> * 
> * 
> * Does this means that the validate Algorithm is cert specific and not
> * request specific?
> [TF] The request specifies a policy, which in tern references an
> algorithm. The policy applies globally to the request. There is no
> relationship between the certificate and the algorithm.
> Trevor
>

I agree that it seems sufficient for one request to have the same
*algorithm(s)* performed for all the certs, but the only examples defined
contain a *parameter* which is specific to each cert, i.e. an identity/name
that has to be matched with the content of a cert, thus currently the
usage of this 'extension' features limits the requests to one cert only.

For requests concerning SSL servers, IPsec auths, *one signature*, one
cert will be present in the request, a case for multiple requests *may* 
be certs for encryption. It may be sufficient to allow multiple names
for e-mail protection certs in the existing parameter, and a rule saying
that names must be present.  

Date: Fri, 10 Dec 2004 14:01:45 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> [TF] How the server identifies the client is a mater of local server
> policy.
See my other message and a text proposal. 

> * 
> * The 3379 text says:
> * 
> *    When the DPV request is authenticated, the client SHOULD be able to
> *    include a client identifier in the request for the DPV server to
> copy
> *    into the response.  Mechanisms for matching this identifier with
> the
> *    authenticated identity depends on local DPV server conditions
> and/or
> *    the validation policy.
> * 
> * The client has no way to declare its identity in the protocol,
> * and there no provision of what this could be from what it would
> * be derived from (IP address, DNS name of the host, ...), ...
> [TF] The client can declare its identity in the request in a number of
> ways.
>  	1. by including its signing certificate in the request
> 	2. by including its DH certificate used to compute the hmac
> 	3. By HMACing the request using a shared secret or password

None of these is a "declaration" of an identity. It is a means to authenticate
the request at least in my opinion. 

Note the remark about 'may respond with an error' in
the requirements. This is intended to mean that a server may reject
a request when the declared entity is not one that can be authenticated.
(I don't think that it was meant that an error can be 'not authorized')

> 
> What identity the server knows or uses for the client based on this data
> is a matter of local server policy
>  
> * 
> * Why is this restricted to signed requests, and not to 'authenticated'?
> [TF] Its not. Section 3 defies signed requests as being either
> signedData or authenticatedData.

Ok. 

> * 
> * As already said in another may, this text could make sense if there
> * would be a corresponding requestorName in the request.

you seem to agree?

Date: Fri, 10 Dec 2004 14:00:47 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> [TF] I am saying how the server identifies the client for the supplied
> information is a matter of local policy to the server.

Repeating this three time doesn't make the statement true. It is
totally contrary to what is described in the requirements document.

   When the DPV request is authenticated, the client SHOULD be able to
   include a client identifier in the request for the DPV server to copy
   into the response.  Mechanisms for matching this identifier with the
   authenticated identity depends on local DPV server conditions and/or
   the validation policy.  The DPV server MAY choose to blindly copy the
   identifier, omit the identifier, or return an error response.

If you don't agree about the meaning of 'client identifier' in the
following excerpt, then we will not be able to get anywhere further.

If the intention of the excerpt above would be that the client does not
explicitely do provide an identifier, then the text would be like:

   When the DPV requets is authenticated, then server MAY return to the
   client an identifier derived from the authentication.

if you want to derive *one* identifier from the authentication, what will
you set for a certificate with one or more instances of subjectAltname.
The best you can do is to return all identities. 

The client has to have a means to explicitely present his identity.

This is an identifier where the client declares its identity, furthermore 
this identifier being an octet string without any structure is not
something that is common in PKI environments, in particular you already
return a GeneralNames structure in the requesterName. 

I simply repeat my request to add requesterName and a responderName structure
in both the request and the response. 

here a text proposal:

x.x.x Entity identification.

Since an SCVP response MAY be used by a client to demonstrate to another
relying party that certificate validation has been duly performed, the
protocol allows to add identities of requesting clients and responding
server to the response.

An identity is encoded as GeneralName. (cf. syntax)

Servers may have more than one identity, for example, a URI 
to access to the service, or a DN related or not to CAs.
In particular, an SCVP server may have the same identity as a CA
for which the server can provide answers in a similar way as an
OCSP server. 

The protocol is as follows:

x.x.x.1 requesterName

This field in the request indicates one or more identities participating
in the creation of the request. A client MAY add this field to a request.
If the request is authenticated, one of the presented identities SHOULD 
match with at least one identity that can be derived from authentication. 
A server MAY accept a request even if the presented identities do not 
correspond to one derived from authentication. If the request cannot be
authenticated, a server SHOULD reject the request if it contains this field.

On relaying, a relay MAY choose not to copy the presented identity to
the relayed request, e.g., to anonymize the requester.

This field SHOULD be returned as is in the response. A server MAY choose
to add additional identities. This may be done when a relay is involved, 
when an authenticated identity is different.  

(merge some stuff from the existing requesterName if necessary).

x.x.x.1 responderName

This field in the request indicated identities of one or more servers that
are intending to participate in the construction of the response. This
may be used for example to indicate to a relaying proxy the identity of
another scvp server. 

This field in the response indicate the identities of the servers that
have participated in creating the response. There is no particular
relationship with the field with the same name in the input. 

------

Now we can treat the usefulness of the requester/responder for,loop
control independantly. 
 
> * 
> * Since two years or so I am asking that you just make two elements
> * 
> * requestor GeneralNames
> * responder GeneralNames
> * 
> * in both the request and the response. (and to get rid of the octet
> string
> * stuff)
> * 
> * I may have not understod your intention of "responder", if this is a
> pure
> * local reference of the RESPONSE vs the repspoinder, then I think a
> * sequence number would be more appropriate.
> * 

what is the current definition of responder good for? You menton something
below, see later. 

> * > *
> * > * The new text replacing "requestor" in chapter 7 by "requestorRef".
> * > *
> * > * > however,
> * > * >  all of the octets MUST have values other than zero.
> * > * Why? I would find it quite useful to add a
> * > * hash of something local, if at all, the hash of its IP address for
> * > example
> * > * (for which I can use the Nonce as well).
> * > [TF] If you want me to remove the clause about values being other
> than
> * > zero - I am happy to do so. Since this is of local significance
> only, if
> * > an implementation puts garbage in here it does not effect
> * > interoperability.
> * How do relate 'local significance only' and the usage of such fields
> * for 'loop control'. The significance not just local.
> * If relays just put "relay" as a local reference you will have
> problems.
> * 
> * LOOONG time ago, I told you that an encoding of identifiers in an
> octet
> * string
> * sounds strange, given that we have lots of ways and that you don't
> provide
> * any guideline on how identifiers can be encoded.
> * 
> * Although you violantly rejected all proprosals to change this, you
> * silently starting doing this in this version:
> * 
> * - replacing an octet string by a sequence  (good, but omitted the only
> * reason
> *   for not allowing zeros).
> * - adding a requesterName item with is a generalnames
> * 
> * 

I probably expected some [TF] here, but well, you seem to agree.  

> * > *
> * > *   The requestRef item allows the client to associate a response
> with
> * > *   a request.  The requestNonce provides an alternative mechanism
> ..
> * > *
> * > *   and you have also the requestorRef.
> * > *
> * > * The concept of trying to make loop control with values which are
> * > * explicitely
> * > * defined as not globally unique sounds strange to me.
> * > [TF] I have a big problem which the concept of global uniqueness. I
> * > class it the same bucket as non-repudiation.
> * 
> * You are operating in a PKI where ID's of
> * entities are unique within the PKI. If you don't trust the
> * naming rule in your PKI, i.e. in some associated SCVP network
> * which is much smaller, i.e. in the magnitude of the size of
> * the CA name space.
> [TF] Names give by an instance of a PKI are by definition not global.

Can you point me to the definition?
You may have a problem of ensuring uniqueness of name inside the PKI
this but that's a similar proble as for the domain name system, 
it is organisational and not technical.
Names inside a PKI are non-ambiguously associated to the
entities as far as I remember.

I really don't see what you are arguing about?

> * 
> * Well, domain names work as far as I know. And telephone numbers also.
> * I don't say that non-repudiation doesn't work. I don't say that
> * I agree or disagree with your comparision since I do not see why this
> * is relevant here.
> * 
> * You are not even answering the question: You make loop control, and
> * you explicitely says that the identifiers that are used do only have
> * local significance. You could have said: An example for identifiers
> * that could be used for loop control are uuids generated on each server
> * startup using the server address and a time value.
> [TF] Are you asking a question or suggesting text for the draft? If you
> want an example of how one might generate a identifier of local
> significance I can do that.

An identifier of 'local' significance is simple: 'I'

It seems that we don't agree about the meaning of 'local significance'.

You need that each potentially participating entity has at least one
identifier which are distincet among the servers, but may or not
have any global 'significance'. 

If you want to keep the requester item for this, why not. it may be
useful not to overload an 'identification', a nonce, a loop control tickmark
in the same field. 

> * > *  "The requestorRef item is also needed
> * > *   to prevent looping in some configurations"
> * > *
> * > *  "No provisions are
> * > *   made to ensure uniqueness of the requestorRef octet string"
> * > *
> * > * The usefulness of "requestorRef" as an identifier for the request
> * > * is pretty weak, since you can have a nonce if it is for each
> * > * request. use GeneralName(s) in a requestorName sequence as for the
> * > * response.
> * > *
> * > * page 34:
> * > *
> * > *   The requestorRef and the responder items MUST be included if the
> * > request
> * > * included a
> * > *   requestor item.
> * > *
> * > * what does this mean? what is the relationship between a
> requesterRef
> * > and
> * > * responder?
> * > [TF] If requestorRef is populated, it means it's a relayed request
> in
> * > which case the responder is of significance.
> * 
> * No. any client can set a requestorRef, independant of whether the
> request
> * will be relayed. What is the significance of responder? In your spec
> * it is only of local signifance for the responding server? waht can
> this
> * be good for?

> [TF] It good for detecting loops. The server adds an identifier which it
> recognizes to the response. It is the only one rrequired to recognize
> the value so it can put whatever it wants in the field. There is no need
> to standardize the behavior of the SCVP server in this regard.

To be sure: The question was: "What is the significance of responder?" 
How does this value occur in the loop control algo? So far, the server
just adds this, and noone is doing somthing with it, at least not in
the current spec?

> * 
> * > *
> * > * If I'd be interested in anything identifying the response, then it
> is
> * > * a sequence of identifiers of the servers that have partipated, and
> * > some
> * > * local ids or "serial number' like thing if I want to go to that
> server
> * > and
> * > * asks 'did you really tell this to my friend'.
> * > *
> * > *
> * > * Chapter 7: Denis is right that the spec does not describe how
> relaying
> * > is
> * > * performed, i.e. how a response is created from a response received
> * > from
> * > * another
> * > * server by a 'proxy'.
> * > [TF] What specifically are you looking for?
> * 
> * A working specification that includes:
> * 
> * - how a request received is transformed into a new request by a relay,
> *   which fields are copied, or not, or may.
> * - how the response is transformed into a response to the original
> request
> *   there are SEVERAL options, in particulat the one that addresses
> *   the requirement of allowing a response as part of another one.
> [TF] OK. I will add that.
good.

Would it be possible to send a draft to the list before it get graved into 
electronic marble. 

Date: Fri, 10 Dec 2004 13:59:43 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> * - It would be nice to use the same field names.
> [TF] Fixed

ok.
> * 
> * - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
> *   with some apppropriate tagging, it doesn't make much sense to
> *   me to code useless values.
> * 
> * Would it be possible to add some statement about the intended
> * meaning of the 6 possible combination:
> * 
> * 
> * inhibitPolMap = FALSE
> * 
> * inhibitPolicyMapping absent  1
> *                      FALSE   2
> *                      TRUE    3
> * 
> * inhibitPolMap = TRUE
> * 
> * inhibitPolicyMapping absent  4
> *                      FALSE   5
> *                      TRUE    6
> * 
> [TF] There is only one Boolean value for inhibitPolicyMapping. It can be
> defined in the policy, supplied in the request or defined in the servers
> default policy. Section 1.3 defines the precedence for each. Further
> 3.1.5.1 also requests the server to reject a request which summits a
> request which attempts to override the precedence.

Ok. 

> * 
> * Does it mean that when the client value takes preceedence over the
> * server value?
> * 
> * 1 = FALSE
> * 2 = FALSE
> * 3 = TRUE
> * 4 = TRUE
> * 5 = FALSE
> * 6 = TRUE
> * 
> * 
> * It had been said some time ago (as far as I remember) that these
> * inputs are not global ones but in principle for each of the
> * certs to be asked for. what was the conclusion why they stay global
> * for all certs?
> [TF] There is one validation policy per request therefore the same
> policy applies to all certs in the request.

Ok.

Date: Thu, 09 Dec 2004 23:21:08 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: "Kurt D. Zeilenga" <[email-masked]>
CC: [email-masked]
Subject: Re: draft-ietf-pkix-ldap-* review notes
Sender: [email-masked]

Kurt

thanks for these. They are very useful. I'll get back to you later on 
any individual comments that I have a question about (but it might be a 
week or three.

David

Kurt D. Zeilenga wrote:
> Due to the size of my raw review notes, I've placed them
> on the web for independent download:
>   http://www.openldap.org/ietf/pkix/comments-ietf-pkix-ldap-pkc-schema-01.txt
>   http://www.openldap.org/ietf/pkix/comments-ietf-pkix-ldap-ac-schema-02.txt
>   http://www.openldap.org/ietf/pkix/comments-ietf-pkix-ldap-crl-schema-03.txt
> 
> Regards, Kurt
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 09 Dec 2004 17:22:01 -0500
From: "David A. Cooper" <[email-masked]>
To: Trevor Freeman <[email-masked]>
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

I must say that I agree with Seth and Denis.  I was under the impression 
that "Do revocation status checking on the certification path" really 
meant "build and validated certification path to a trust anchor and do 
revocation status checking on the certification path".  While I can see 
that there may be circumstances in which one would request a validated 
certification path without requiring revocation status checking, I can't 
see requesting revocation status checking without requesting that the 
path be validated.

It is certainly the case that one can not "do revocation status checking 
on the certification path" without also building a certification path.  
Since the client can not provide a certification path, revocation status 
checking must be performed on a path that is built by the server.  I 
suppose you could argue that this simply means that a well formed query 
can not include the id-stc-build-status-checked-pkc-path without also 
including either the id-stc-build-pkc-path or 
id-stc-build-valid-pkc-path check.  But, I see see the need for this.

A DPD client would include the id-stc-build-pkc-path along with the 
id-swb-pkc-best-cert-path and/or id-swb-pkc-revocation-info wantBacks.  
If the DPD client included the id-swb-pkc-revocation-info wantBack, it 
wouldn't need to also include the id-stc-build-status-checked-pkc-path 
check.  If the DPD client did not include the id-swb-pkc-revocation-info 
wantBack, then would not include the 
id-stc-build-status-checked-pkc-path check. 

So, I would argue that the id-swb-pkc-revocation-info wantBack would 
only be used in the case that the client was requesting a validated 
certification path.  The way that I had interpreted the currently 
defined checks items, an SCVP query would only include one check since 
each successive check included the requirements of the previous one:  
id-stc-build-valid-pkc-path included the requirement to build a path 
(id-stc-build-pkc-path) and id-stc-build-status-checked-pkc-path 
included the requirement to build a validated path 
(id-stc-build-valid-pkc-path).

Under what circumstances can you envision a client wanting the server to 
do revocation status checking on a certification path (that is 
constructed by the server) without also including a requirement that the 
certification path be validated?   If there are no reasonable 
circumstances in which a client would make such a query, why is it 
necessary for clients to be able to construct such a query?

Dave

Trevor Freeman wrote:

>Hi Seth,
>A server can always go beyond what the client asked for. I don't see
>that as strictly necessary in all cases such as if the client just asks
>for revocation. Untimely is a matter of local server policy. What the
>server cannot do is return status or errors relating to the other
>activities which  were beyond the request scope.
>Trevor
>
While it might make sense for a client to only ask for revocation 
checking if the client could specify the certification path, it does not 
seem to make sense given that the server chooses the certification path 
for which revocation status checking will be performed.  If the client 
wants to specify a set of certificates for which it only wants to know 
the revocation status, that is what OCSP is for.

>
>* -----Original Message-----
>* From: Seth Hitchings [mailto:[email-masked]]
>* Sent: Wednesday, December 08, 2004 11:34 AM
>* To: Trevor Freeman
>* Cc: [email-masked]
>* Subject: RE: SCVP 16 comments deadline
>* 
>* Trevor,
>* 
>* For clarification, I assume that doing revocation status checks on a path
>* implies building
>* a validated path?
>* 
>* If I am correct, in what case would a client ever send more than one
>* check?
>* 
>* Seth
>* 
>* -----Original Message-----
>* From: [email-masked]
>[mailto:[email-masked]]
>* On Behalf Of
>* Trevor Freeman
>* Sent: Wednesday, December 08, 2004 1:42 PM
>* To: Denis Pinkas
>* Cc: [email-masked]
>* Subject: RE: SCVP 16 comments deadline
>* 
>* 
>* Denis,
>* I know of several systems who's policy is never to revoke the identity
>* certificate because
>* they have other mechanisms to address the issue.
>* They are using authorization bound to the identity and they either rely on
>* short lived
>* authorization assertions or revoke the authorization privilege assonated
>* with the
>* identity. Therefore in those cases not checking the revocation status of
>* the certificate
>* makes perfect sense.
>* Trevor
>* 
>* * -----Original Message-----
>* * From: [email-masked]
>* [mailto:[email-masked]]
>* * On Behalf Of Denis Pinkas
>* * Sent: Wednesday, December 08, 2004 8:01 AM
>* * To: Trevor Freeman
>* * Cc: [email-masked]
>* * Subject: Re: SCVP 16 comments deadline
>* *
>* *
>* * Trevor,
>* *
>* * > Hi Denis,
>* * > Below are responses to 1-16. Others will follow later.
>* *
>* * I am pleased that you accepted comments 13, 14, 15 and 16.
>* * Among this list, I have a further remark on comment 4.
>* *
>* * > * 4. Page 13. Typo. Section 3.1.2 "checks"
>* * > * The two following lines are in fact one line:
>* * > *
>* * > * Change:
>* * > *
>* * > *      - Build a validated certification path to a trust anchor; and
>* * > *
>* * > *      - Do revocation status checks on the certification path.
>* * > *
>* * > * into:
>* * > *
>* * > *      - Build a validated certification path to a trust anchor and
>* * > *        do revocation status checks on the certification path.
>* * > *
>* * > [TF] Since this paragraph is listing the possible checks and building
>* a
>* * > path is a separate check to revocation checking, I think the current
>* * > text is more accurate.
>* *
>* * I agree that "building a path is a separate check to revocation
>* checking",
>* * but revocation checking without building a validated path does not make
>* * sense.
>* *
>* * The full text currently is:
>* *
>* *      - Build a certification path to a trust anchor;
>* *
>* *      - Build a validated certification path to a trust anchor; and
>* *
>* *      - Do revocation status checks on the certification path.
>* *
>* * The full text should be:
>* *
>* *      - Build a certification path to a trust anchor;
>* *
>* *      - Build a validated certification path to a trust anchor; and
>* *        do revocation status checks on the certification path.
>* *
>* * Denis
>* 
>
>  
>

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Thu, 9 Dec 2004 11:07:51 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,

Ho they are combined is defined in section 1.3

" The referenced (policy) value indicates either a partial or full set
of parameters. The client can therefore omit these agreed parameters
from the request, only passing any parameters which are not specified by
the previously agreed policy.  Therefore in the simplest form, with
validation polices which define every parameter necessary, a SCVP
request need only contain the certificate to be validated, the
validation policy and any run-time parameters for the request.

SCVP server also publishes its default validation policy settings.  The
default policy can be requested for validation and the client can
override any default value in the request if required.  The default
values are also used when processing requests which reference a
validation policy other than the default one that does not contain the
full set of parameters necessary for validation and the client has also
omitted the missing values in the request.  Therefore a client can also
simplify the request by omitting a parameter from a request if the
default value published by the server is acceptable.

Further 3.1.5.1 also requires
" If there are any conflicts between the non-default policy referenced
in the request and any supplied parameter values in the request, then
the server MUST return an error response."

Therefore if you use the non-default policy, the policy value take
precedence over the request value and cannot be overridden by the
request. For the default policy the client can override any value.

If the policy and client both omit a parameter, then the server default
value is used.

Trevor

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Thursday, December 09, 2004 3:49 AM
* To: [email-masked]; Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* Either I was unclear in my question or you have totally misunderstood
it,
* or I don't understand what your are responding.
* 
* > Hi Peter,
* > All parameter assonated with policy mapping are names the same. If
you
* > want guidance on their use in combination with the policy reference
see
* > section 1.3.
* It is obviously not difficult to guess which names corresponds, that
* is not the problem.
* 
* 
* > SCVP only supports one policy per request therefore if you want to
* > process different polices for different certificates - send
different
* > requests.
* Where do I talk about different policies and different certificates,
* are you confusing this with another message?
* 
* I am just asking how parameters from the client and the server are
* combined in a request for one signed cert with one policy. And, to
* be sure, I can also assume that a client sets all the input flags
* or none, if you want.
* 
* The current syntax allows all kind of combinations of settings and
* by the client and the server, it is not specified:
* 
* - how they are combined
* - whether there this only a subset of useful meanings.
* 
* > Trevor
* >
* > * -----Original Message-----
* > * From: Peter Sylvester [mailto:[email-masked]]
* > * Sent: Tuesday, December 07, 2004 4:15 AM
* > * To: Trevor Freeman
* > * Cc: [email-masked]
* > * Subject: Re: SCVP 16 comments deadline
* > *
* > * There are several boolean values like
* > *
* > *   ValidationPolicy ::= SEQUENCE {
* > *     ...
* > *     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
* > *
* > * and a policy definition.
* > *
* > *   ValidationPolValues ::=SEQUENCE  {
* > *     ...
* > *     inhibitPolMap            BOOLEAN,
* > *
* > *
* > * - It would be nice to use the same field names.
* > *
* > * - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
* > *   with some apppropriate tagging, it doesn't make much sense to
* > *   me to code useless values.
* > *
* > * Would it be possible to add some statement about the intended
* > * meaning of the 6 possible combination:
* > *
* > *
* > * inhibitPolMap = FALSE
* > *
* > * inhibitPolicyMapping absent  1
* > *                      FALSE   2
* > *                      TRUE    3
* > *
* > * inhibitPolMap = TRUE
* > *
* > * inhibitPolicyMapping absent  4
* > *                      FALSE   5
* > *                      TRUE    6
* > *
* > *
* > * Does it mean that when the client value takes preceedence over the
* > * server value?
* > *
* > * 1 = FALSE
* > * 2 = FALSE
* > * 3 = TRUE
* > * 4 = TRUE
* > * 5 = FALSE
* > * 6 = TRUE
* > *
* > *
* > * It had been said some time ago (as far as I remember) that these
* > * inputs are not global ones but in principle for each of the
* > * certs to be asked for. what was the conclusion why they stay
global
* > * for all certs?
* >
* >
* >

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Thu, 9 Dec 2004 10:56:32 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Thursday, December 09, 2004 3:47 AM
* To: [email-masked]; Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* > *
* > * But:
* > *
* > * The syntax is GeneralNames. how many ids is the server intended
* > * to extract from a certificate? The subject + all alternate ids?
* > *
* > * Why not having this id declared by the client, and the
authentication
* > * methods matches against it. ==> Add a corresponding field in the
* > request.
* > * Which is required:
* > *
* > *    When the DPV request is authenticated, the client SHOULD be
able to
* > *    include a client identifier in the request for the DPV server
to
* > copy
* > *    into the response.  Mechanisms for matching this identifier
with
* > the
* > *    authenticated identity depends on local DPV server conditions
* > and/or
* > *    the validation policy.  The DPV server MAY choose to blindly
copy
* > the
* > *    identifier, omit the identifier, or return an error response.
* > *
* > * It is an identifer identifying the client and not the request.
* > [TF] If the client sends a signed request with certificate it has
* > included a client identifier in the request. Its matter of local
server
* > policy which name it chooses to return.
* 
* Are you saying that this client identifier is the "issuerSerial"?
[TF] I am saying how the server identifies the client for the supplied
information is a matter of local policy to the server.
* What field *IS* the "client identifier"? The certificate is not
* a client identifier? In a certificate, you may have several
identifiers
* concerning the entity.
[TF] I am saying how the server identifies the client for the supplied
information is a matter of local policy to the server.
* 
* The client has no way to set an "identifier for itself" in the
request, so
* that
* 
*    "the DPV server MAY choose to blindly copy the identifier".
* 
* The server that you propose ALWAYS MUST create some generalnames
* structure for which no guideline is given on how it could be
* derived from the requestorRef which is an item that has no relation
* at all to the returned requesterName.
[TF] I am saying how the server identifies the client for the supplied
information is a matter of local policy to the server.
* 
* Since two years or so I am asking that you just make two elements
* 
* requestor GeneralNames
* responder GeneralNames
* 
* in both the request and the response. (and to get rid of the octet
string
* stuff)
* 
* I may have not understod your intention of "responder", if this is a
pure
* local reference of the RESPONSE vs the repspoinder, then I think a
* sequence number would be more appropriate.
* 
* > *
* > * The new text replacing "requestor" in chapter 7 by "requestorRef".
* > *
* > * > however,
* > * >  all of the octets MUST have values other than zero.
* > * Why? I would find it quite useful to add a
* > * hash of something local, if at all, the hash of its IP address for
* > example
* > * (for which I can use the Nonce as well).
* > [TF] If you want me to remove the clause about values being other
than
* > zero - I am happy to do so. Since this is of local significance
only, if
* > an implementation puts garbage in here it does not effect
* > interoperability.
* How do relate 'local significance only' and the usage of such fields
* for 'loop control'. The significance not just local.
* If relays just put "relay" as a local reference you will have
problems.
* 
* LOOONG time ago, I told you that an encoding of identifiers in an
octet
* string
* sounds strange, given that we have lots of ways and that you don't
provide
* any guideline on how identifiers can be encoded.
* 
* Although you violantly rejected all proprosals to change this, you
* silently starting doing this in this version:
* 
* - replacing an octet string by a sequence  (good, but omitted the only
* reason
*   for not allowing zeros).
* - adding a requesterName item with is a generalnames
* 
* 
* > *
* > *   The requestRef item allows the client to associate a response
with
* > *   a request.  The requestNonce provides an alternative mechanism
..
* > *
* > *   and you have also the requestorRef.
* > *
* > * The concept of trying to make loop control with values which are
* > * explicitely
* > * defined as not globally unique sounds strange to me.
* > [TF] I have a big problem which the concept of global uniqueness. I
* > class it the same bucket as non-repudiation.
* 
* You are operating in a PKI where ID's of
* entities are unique within the PKI. If you don't trust the
* naming rule in your PKI, i.e. in some associated SCVP network
* which is much smaller, i.e. in the magnitude of the size of
* the CA name space.
[TF] Names give by an instance of a PKI are by definition not global.
* 
* Well, domain names work as far as I know. And telephone numbers also.
* I don't say that non-repudiation doesn't work. I don't say that
* I agree or disagree with your comparision since I do not see why this
* is relevant here.
* 
* You are not even answering the question: You make loop control, and
* you explicitely says that the identifiers that are used do only have
* local significance. You could have said: An example for identifiers
* that could be used for loop control are uuids generated on each server
* startup using the server address and a time value.
[TF] Are you asking a question or suggesting text for the draft? If you
want an example of how one might generate a identifier of local
significance I can do that.
* 
* 
* > *
* > *  "The requestorRef item is also needed
* > *   to prevent looping in some configurations"
* > *
* > *  "No provisions are
* > *   made to ensure uniqueness of the requestorRef octet string"
* > *
* > * The usefulness of "requestorRef" as an identifier for the request
* > * is pretty weak, since you can have a nonce if it is for each
* > * request. use GeneralName(s) in a requestorName sequence as for the
* > * response.
* > *
* > * page 34:
* > *
* > *   The requestorRef and the responder items MUST be included if the
* > request
* > * included a
* > *   requestor item.
* > *
* > * what does this mean? what is the relationship between a
requesterRef
* > and
* > * responder?
* > [TF] If requestorRef is populated, it means it's a relayed request
in
* > which case the responder is of significance.
* 
* No. any client can set a requestorRef, independant of whether the
request
* will be relayed. What is the significance of responder? In your spec
* it is only of local signifance for the responding server? waht can
this
* be good for?
[TF] It good for detecting loops. The server adds an identifier which it
recognizes to the response. It is the only one rrequired to recognize
the value so it can put whatever it wants in the field. There is no need
to standardize the behavior of the SCVP server in this regard.
* 
* > *
* > * If I'd be interested in anything identifying the response, then it
is
* > * a sequence of identifiers of the servers that have partipated, and
* > some
* > * local ids or "serial number' like thing if I want to go to that
server
* > and
* > * asks 'did you really tell this to my friend'.
* > *
* > *
* > * Chapter 7: Denis is right that the spec does not describe how
relaying
* > is
* > * performed, i.e. how a response is created from a response received
* > from
* > * another
* > * server by a 'proxy'.
* > [TF] What specifically are you looking for?
* 
* A working specification that includes:
* 
* - how a request received is transformed into a new request by a relay,
*   which fields are copied, or not, or may.
* - how the response is transformed into a response to the original
request
*   there are SEVERAL options, in particulat the one that addresses
*   the requirement of allowing a response as part of another one.
[TF] OK. I will add that.

Trevor
* 

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Thu, 9 Dec 2004 10:27:54 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

H Peter,

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Peter Sylvester
* Sent: Tuesday, December 07, 2004 4:15 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* 
* There are several boolean values like
* 
*   ValidationPolicy ::= SEQUENCE {
*     ...
*     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
* 
* and a policy definition.
* 
*   ValidationPolValues ::=SEQUENCE  {
*     ...
*     inhibitPolMap            BOOLEAN,
* 
* 
* - It would be nice to use the same field names.
[TF] Fixed
* 
* - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
*   with some apppropriate tagging, it doesn't make much sense to
*   me to code useless values.
* 
* Would it be possible to add some statement about the intended
* meaning of the 6 possible combination:
* 
* 
* inhibitPolMap = FALSE
* 
* inhibitPolicyMapping absent  1
*                      FALSE   2
*                      TRUE    3
* 
* inhibitPolMap = TRUE
* 
* inhibitPolicyMapping absent  4
*                      FALSE   5
*                      TRUE    6
* 
[TF] There is only one Boolean value for inhibitPolicyMapping. It can be
defined in the policy, supplied in the request or defined in the servers
default policy. Section 1.3 defines the precedence for each. Further
3.1.5.1 also requests the server to reject a request which summits a
request which attempts to override the precedence.
* 
* Does it mean that when the client value takes preceedence over the
* server value?
* 
* 1 = FALSE
* 2 = FALSE
* 3 = TRUE
* 4 = TRUE
* 5 = FALSE
* 6 = TRUE
* 
* 
* It had been said some time ago (as far as I remember) that these
* inputs are not global ones but in principle for each of the
* certs to be asked for. what was the conclusion why they stay global
* for all certs?
[TF] There is one validation policy per request therefore the same
policy applies to all certs in the request.

Trevor

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Thu, 9 Dec 2004 10:13:24 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Peter Sylvester
* Sent: Tuesday, December 07, 2004 4:15 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* 
* We have
* 
*   Query ::= SEQUENCE {
*    queriedCerts               SEQUENCE SIZE (1..MAX) OF CertReference,
* 
*    ...
*    validationPolicy           ValidationPolicy,
* 
* with
*   ValidationPolicy ::= SEQUENCE {
*     ...
*     validationAlg         [0] ValidationAlg OPTIONAL,
* 
* 
* 3.1.5 validationAlg
* 
*   The validationAlg item, defines the validation algorithm to be used
*   by the SCVP server during certificate validation.  The value of
*   this item can be determined by agreement between the client and the
*   server, and is represented as an object identifier.  The server
*   might want to assign additional object identifiers that indicate
*   that some settings are used in addition to others given in the
*   request.  In this way, the validation algorithm object identifier
*   can be a shorthand for some SCVP options, but not others.
* 
*   The validationAlg item uses the ValidationAlg type, which has the
*   following syntax:
* 
*     ValidationAlg ::= SEQUENCE {
*       valAlgId              OBJECT IDENTIFIER,
*       parameters            ANY DEFINED BY valAlgId OPTIONAL }
* 
* 
* and also
* 
* 
* 3.1.5.2 validationAlg
* 
*   The optional validationAlg item defines the validation algorithm to
*   be used by the SCVP server during certificate validation.  The
*   value of this item can be determined by agreement between the
*   client and the server, and the validation algorithm is represented
*   by an object identifier.
* 
*    The syntax of the validationAlg is:
* 
*     ValidationAlg ::= SEQUENCE {
*       valAlgId              OBJECT IDENTIFIER,
*       parameters            ANY DEFINED BY valAlgId OPTIONAL }
* 
*   The following section specifies the basic validation algorithm and
*   the name validation algorithm.  SCVP clients and servers MUST
*   support both validation algorithms defined in this section.  Other
*   validation algorithms can be specified in other documents for use
*   with specific applications.  SCVP clients and servers MAY support
*   any such validation algorithms.
* 
* ---------------
* 
* 3.1.5.2.3 Name Validation Algorithm
* 
*   The name validation algorithm allows the client to supply an
*   application identifier and a name to the server.  The application
*   identifier defines the name matching rules to use in comparing the
*   name supplied in the request with the names in the certificate.
* 
* There may be more than one certificate in the request.
* 
* 
*     NameValidationAlgParms ::= SEQUENCE {
*       keyPurposeId      KeyPurposeId,
*       validationNames   GeneralNames }
* 
* What is the relation between the KeyPurposeId and the
extendeddkeyusage
* 3.1.5.10 extendedKeyUsages
* 
*   If the keyPurposeID supplied in the request is id-kp-mailProtection
*   [PKIX-1], then GeneralNames supplied in the request MUST be a
*   rfc822Name, and the matching rules are defined in [SMIME-CERT].
* 
* 'an rfc822Name".
* 
* what is the meaning of this if I have more than one email certificate,
* i.e. I want to validate all encryption certs before using them.
* 
* 
* Does this means that the validate Algorithm is cert specific and not
* request specific?
[TF] The request specifies a policy, which in tern references an
algorithm. The policy applies globally to the request. There is no
relationship between the certificate and the algorithm.
Trevor

Trevor

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Thu, 9 Dec 2004 10:10:05 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,
* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Tuesday, December 07, 2004 4:15 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* To have an independant issue:
* 
* 
* 4.8 requestorName
* 
*   The optional requestorName item is used by the server with signed
*   requests to return the identity of the client in the response.
*   Mechanisms for matching this identifier with the authenticated
*   identity are a matter of local server policy.
* 
*   In the case of non-cached responses to signed requests, the SCVP
*   server MUST return a requestor name.  A server SHOULD copy the
*   selected identifier from a certificate or other credential used to
*   authenticate the request.  A SCVP server MAY use a client
*   identifier from an out-of-band mechanism or omit the identifier
*   from the response.
* 
*   In the case of cached responses to signed requests, the
*   RequestorName MAY be present in the response.
* 
*   SCVP server that supports signed requests MUST support this item.
* 
* This chapter is new and pretty uncomprehensible:
* 
* "matching" is IMO an action where you have two inputs, I don't see
* where the identifier comes from, or when it is extracted from
* some authenticated information, why there is a "matching" at all.
* "The identity" of the client is not defined anywhere in the document.
[TF] How the server identifies the client is a mater of local server
policy.
* 
* The 3379 text says:
* 
*    When the DPV request is authenticated, the client SHOULD be able to
*    include a client identifier in the request for the DPV server to
copy
*    into the response.  Mechanisms for matching this identifier with
the
*    authenticated identity depends on local DPV server conditions
and/or
*    the validation policy.
* 
* The client has no way to declare its identity in the protocol,
* and there no provision of what this could be from what it would
* be derived from (IP address, DNS name of the host, ...), ...
[TF] The client can declare its identity in the request in a number of
ways.
 	1. by including its signing certificate in the request
	2. by including its DH certificate used to compute the hmac
	3. By HMACing the request using a shared secret or password

What identity the server knows or uses for the client based on this data
is a matter of local server policy
 
* 
* Why is this restricted to signed requests, and not to 'authenticated'?
[TF] Its not. Section 3 defies signed requests as being either
signedData or authenticatedData.
* 
* As already said in another may, this text could make sense if there
* would be a corresponding requestorName in the request.
* 
* 
* 

Trevor

Date: Thu, 09 Dec 2004 11:43:30 -0500
To: [email-masked]
From: Tim Polk <[email-masked]>
Subject: Mea Culpa and NEW SCVP 16 comments deadline
Cc: Peter Sylvester <[email-masked]>, [email-masked], [email-masked]
Sender: [email-masked]

Folks,

As Trevor noted, I had established a deadline for comments on SCVP 16 
during the last meeting.  I think I promised to restate this on list, but 
apparently failed to do so.  Since it was not in the minutes, it was not 
communicated to the list and it doesn't count.  So, I am setting a new 
deadline:

Wednesday, December 15.

Yes, that is a very aggressive deadline, but everyone on the PKIX list 
should be aware by now that we need to finish SCVP.  If you were interested 
in commenting, I assume that you have read the drafts already, and should 
be able to easily prepare your comments.  (And if you didn't expect a 
deadline before, this thread should have clued you in!)  It should not take 
a week to complete your review and submit comments.

So, my apologies: to the list for the oversight; and to the editors for 
extending the comment period.

Tim Polk

At 12:38 PM 12/6/2004 +0100, Peter Sylvester wrote:

>Denis and Trevor, >
> > Trevor,
> >
> > > The deadline communicated at the DC meeting for making comments on SCVP
> > > 16 was Nov 30th which has now passed. I have had only three people send
> > > me comments to date. SCVP 17 will be closing very shortly so this is the
> > > last reminder.
> >
> > Thank for the remainder. I missed the initial announcement.
>What announcement?
>what I can read here is:
>
>The minutes say (17 nov)
>
> > SCVP (version 16) - Trevor Freeman (Microsoft)
>         Lots of changes have been made from v15; many were editorial
> > but also many substantive changes and some new features. Another rev
> > of the document will be needed. We need to ensure that the ASN.1 is
> > correct, once we agree on the functionality, and so we will compile
> > it to verify. Presentation reviewed changes and new features
> > (relative to v15). See slides for additional details.
>
>The minutes had not been challenged by Trevor.
>
>I cannot see any announcement on the list about that date. There
>are "no presentation files and no minutes' available in the IETF
>server.
>
>According to my understanding of how IETF working groups
>function, an announement during a meeting is non-existant
>if not reflected in the mailing list message.
>
>(It may be that someone filters the content of the imc server for me).
>
>Peter

Date: Thu, 09 Dec 2004 15:53:08 +0100
From: Denis Pinkas <[email-masked]>
Organization: Bull SA.
To: [email-masked]
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

> * b) Section 3.1.5.1 is titled "Default Validation Algorithm" but
> * discusses the default validation policy.
> 
> [TF] This should have read algorithm not policy and is now fixed.

I do not agree with that fix.
You will see it when reading my comments 17 and 18.

Denis

Date: Thu, 9 Dec 2004 14:12:38 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

second reply: 

by changing policy to algorithm in 3.1.5.1 my question may be answered;

  When using the default validation policy, the client can override 
  any of the default parameter values by supplying a specific value 
  in the request.  The SCVP server MUST make use of the provided 
  parameter values or return an error response. 

* 
* b) Section 3.1.5.1 is titled "Default Validation Algorithm" but
* discusses the default validation policy.

[TF] This should have read algorithm not policy and is now fixed.

What is the link to :

  Neither the clients nor server MUST dereference the URI during SCVP 
  request processing.  The URI is simply used as a reference for the 
  validation policy.  Clients and server MAY dereference the URI as 
  part of configuration. 
   
  The syntax of the validationPolRef is: 
   
    ValidationPolRef ::= CHOICE { 
      valPolRefByOID     [0] OBJECT IDENTIFIER, 
      valPolRefByURI     [1] IA5String } 
   
  If there are any conflicts between the non-default policy 
  referenced in the request and any supplied parameter values in the 
  request, then the server MUST return an error response. 

In what places policy has to be changed to algorithm in 3.1.5.1? 

> 
> Hi Peter,
> All parameter assonated with policy mapping are names the same. If you
> want guidance on their use in combination with the policy reference see
> section 1.3.
> SCVP only supports one policy per request therefore if you want to
> process different polices for different certificates - send different
> requests.
> Trevor
> 
> * -----Original Message-----
> * From: Peter Sylvester [mailto:[email-masked]]
> * Sent: Tuesday, December 07, 2004 4:15 AM
> * To: Trevor Freeman
> * Cc: [email-masked]
> * Subject: Re: SCVP 16 comments deadline
> * 
> * There are several boolean values like
> * 
> *   ValidationPolicy ::= SEQUENCE {
> *     ...
> *     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
> * 
> * and a policy definition.
> * 
> *   ValidationPolValues ::=SEQUENCE  {
> *     ...
> *     inhibitPolMap            BOOLEAN,
> * 
> * 
> * - It would be nice to use the same field names.
> * 
> * - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
> *   with some apppropriate tagging, it doesn't make much sense to
> *   me to code useless values.
> * 
> * Would it be possible to add some statement about the intended
> * meaning of the 6 possible combination:
> * 
> * 
> * inhibitPolMap = FALSE
> * 
> * inhibitPolicyMapping absent  1
> *                      FALSE   2
> *                      TRUE    3
> * 
> * inhibitPolMap = TRUE
> * 
> * inhibitPolicyMapping absent  4
> *                      FALSE   5
> *                      TRUE    6
> * 
> * 
> * Does it mean that when the client value takes preceedence over the
> * server value?
> * 
> * 1 = FALSE
> * 2 = FALSE
> * 3 = TRUE
> * 4 = TRUE
> * 5 = FALSE
> * 6 = TRUE
> * 
> * 
> * It had been said some time ago (as far as I remember) that these
> * inputs are not global ones but in principle for each of the
> * certs to be asked for. what was the conclusion why they stay global
> * for all certs?
> 
> 
> 

Date: Thu, 9 Dec 2004 13:58:10 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

3.1.5.2.3 Name Validation Algorithm 
   
I find the possibilities for the Name Validation Algorithm
rather unsafisfying. 

It should be possible IMO to have a matching simply by
presenting whatever form of Generalname and this should
be compared with the corresponding value in the cert.

In fact, the id-svp-dnValAlg sounds rather restrictive to
me, it seems to imply that only the subject field is
compared (or does this also compare with the Dirname in
a subjectAltname).

This restriction about a DN doesn't seem necssary to me,
Any generalName can be compared with any in the subjectAltname.

E.g. an IP address. 

'id-nvae-unknown-pupose'   ==> 'id-nvae-unknown-purpose'

  id-nvae-name-mismatch vs   The id-nvae-nameMismatch value

please align the spellings of all the errors types.

  The id-nvae-badName value means the client supplied either and 
  empty or malformed name in the request. 

what is a bad or malformed name? How can this happen without raising
a general asn1 decoding error

since it comes right next? 

--- 
cleanup the following text, please 

  The userPolicySet item specifies a list of policy identifiers that 
  the SCVP server MUST use when forming and validating a certificate 
  If certPolicies is not specified, then any-policy MUST be used. 
   
3.1.5.3 userPolicySet 
   
  The userPolicySet item specifies a list of certificate policy 
  identifiers that the SCVP server MUST use when constructing and 
  validating a certification path.  If userPolicySet is not specified, 
  then any-policy MUST be used. 

Date: Thu, 9 Dec 2004 12:48:49 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> * -----Original Message-----
> * From: Peter Sylvester [mailto:[email-masked]]
> * Sent: Tuesday, December 07, 2004 4:15 AM
> * To: Trevor Freeman
> * Cc: [email-masked]
> * Subject: Re: SCVP 16 comments deadline
> * 
> * We have
> * 
> *   Query ::= SEQUENCE {
> *    queriedCerts               SEQUENCE SIZE (1..MAX) OF CertReference,
> * 
> *    ...
> *    validationPolicy           ValidationPolicy,
> * 
> * with
> *   ValidationPolicy ::= SEQUENCE {
> *     ...
> *     validationAlg         [0] ValidationAlg OPTIONAL,
> * 
> * 
> * 3.1.5 validationAlg
> [TF] The duplicate Validation alg section has been removed.

good. But which one? 

> * ---------------
> * 
> * 3.1.5.2.3 Name Validation Algorithm
> * 
> *   The name validation algorithm allows the client to supply an
> *   application identifier and a name to the server.  The application
> *   identifier defines the name matching rules to use in comparing the
> *   name supplied in the request with the names in the certificate.
> * 
> * There may be more than one certificate in the request.
> [TF] The policy is global to the request.
> * 
> * 
> *     NameValidationAlgParms ::= SEQUENCE {
> *       keyPurposeId      KeyPurposeId,
> *       validationNames   GeneralNames }
> * 
> * What is the relation between the KeyPurposeId and the
> extendeddkeyusage
> * 3.1.5.10 extendedKeyUsages
> [TF] The OID with name validation defines the matching rules. In theory
> there could be multiple matching rules for an 822 name.
no comment. 

> * 
> *   If the keyPurposeID supplied in the request is id-kp-mailProtection
> *   [PKIX-1], then GeneralNames supplied in the request MUST be a
> *   rfc822Name, and the matching rules are defined in [SMIME-CERT].
> * 
> * 'an rfc822Name".
> * 
> * what is the meaning of this if I have more than one email certificate,
> * i.e. I want to validate all encryption certs before using them.
> [TF] If they are different names they have to be different requests.
> * Does this means that the validate Algorithm is cert specific and not
> * request specific?
> [TF] The validation policy for the request is global to the request.
> 

It is quite normal that the parameters assocaited to the single algorithm
may not be different for each cert, in particular for email.

It seems possible to allow a list of emails and require that for each
email, there must be at least one certificate in the certificate list.

Or you move the parameters to some information associated to the certificate,
or one says that the sequence of names must correspond to the sequence
of certs, ... 

Date: Thu, 9 Dec 2004 12:48:38 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

Either I was unclear in my question or you have totally misunderstood it,
or I don't understand what your are responding.

> Hi Peter,
> All parameter assonated with policy mapping are names the same. If you
> want guidance on their use in combination with the policy reference see
> section 1.3.
It is obviously not difficult to guess which names corresponds, that
is not the problem. 

> SCVP only supports one policy per request therefore if you want to
> process different polices for different certificates - send different
> requests.
Where do I talk about different policies and different certificates,
are you confusing this with another message? 

I am just asking how parameters from the client and the server are
combined in a request for one signed cert with one policy. And, to
be sure, I can also assume that a client sets all the input flags
or none, if you want. 

The current syntax allows all kind of combinations of settings and
by the client and the server, it is not specified:

- how they are combined
- whether there this only a subset of useful meanings. 

> Trevor
> 
> * -----Original Message-----
> * From: Peter Sylvester [mailto:[email-masked]]
> * Sent: Tuesday, December 07, 2004 4:15 AM
> * To: Trevor Freeman
> * Cc: [email-masked]
> * Subject: Re: SCVP 16 comments deadline
> * 
> * There are several boolean values like
> * 
> *   ValidationPolicy ::= SEQUENCE {
> *     ...
> *     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
> * 
> * and a policy definition.
> * 
> *   ValidationPolValues ::=SEQUENCE  {
> *     ...
> *     inhibitPolMap            BOOLEAN,
> * 
> * 
> * - It would be nice to use the same field names.
> * 
> * - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
> *   with some apppropriate tagging, it doesn't make much sense to
> *   me to code useless values.
> * 
> * Would it be possible to add some statement about the intended
> * meaning of the 6 possible combination:
> * 
> * 
> * inhibitPolMap = FALSE
> * 
> * inhibitPolicyMapping absent  1
> *                      FALSE   2
> *                      TRUE    3
> * 
> * inhibitPolMap = TRUE
> * 
> * inhibitPolicyMapping absent  4
> *                      FALSE   5
> *                      TRUE    6
> * 
> * 
> * Does it mean that when the client value takes preceedence over the
> * server value?
> * 
> * 1 = FALSE
> * 2 = FALSE
> * 3 = TRUE
> * 4 = TRUE
> * 5 = FALSE
> * 6 = TRUE
> * 
> * 
> * It had been said some time ago (as far as I remember) that these
> * inputs are not global ones but in principle for each of the
> * certs to be asked for. what was the conclusion why they stay global
> * for all certs?
> 
> 
> 

Date: Thu, 9 Dec 2004 12:46:38 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> * 
> * But:
> * 
> * The syntax is GeneralNames. how many ids is the server intended
> * to extract from a certificate? The subject + all alternate ids?
> * 
> * Why not having this id declared by the client, and the authentication
> * methods matches against it. ==> Add a corresponding field in the
> request.
> * Which is required:
> * 
> *    When the DPV request is authenticated, the client SHOULD be able to
> *    include a client identifier in the request for the DPV server to
> copy
> *    into the response.  Mechanisms for matching this identifier with
> the
> *    authenticated identity depends on local DPV server conditions
> and/or
> *    the validation policy.  The DPV server MAY choose to blindly copy
> the
> *    identifier, omit the identifier, or return an error response.
> * 
> * It is an identifer identifying the client and not the request.
> [TF] If the client sends a signed request with certificate it has
> included a client identifier in the request. Its matter of local server
> policy which name it chooses to return.

Are you saying that this client identifier is the "issuerSerial"?
What field *IS* the "client identifier"? The certificate is not
a client identifier? In a certificate, you may have several identifiers
concerning the entity. 

The client has no way to set an "identifier for itself" in the request, so that 

   "the DPV server MAY choose to blindly copy the identifier".

The server that you propose ALWAYS MUST create some generalnames
structure for which no guideline is given on how it could be
derived from the requestorRef which is an item that has no relation
at all to the returned requesterName. 

Since two years or so I am asking that you just make two elements

requestor GeneralNames
responder GeneralNames

in both the request and the response. (and to get rid of the octet string stuff)

I may have not understod your intention of "responder", if this is a pure
local reference of the RESPONSE vs the repspoinder, then I think a 
sequence number would be more appropriate. 

> * 
> * The new text replacing "requestor" in chapter 7 by "requestorRef".
> * 
> * > however,
> * >  all of the octets MUST have values other than zero.
> * Why? I would find it quite useful to add a
> * hash of something local, if at all, the hash of its IP address for
> example
> * (for which I can use the Nonce as well).
> [TF] If you want me to remove the clause about values being other than
> zero - I am happy to do so. Since this is of local significance only, if
> an implementation puts garbage in here it does not effect
> interoperability.
How do relate 'local significance only' and the usage of such fields
for 'loop control'. The significance not just local. 
If relays just put "relay" as a local reference you will have problems. 

LOOONG time ago, I told you that an encoding of identifiers in an octet string
sounds strange, given that we have lots of ways and that you don't provide
any guideline on how identifiers can be encoded.

Although you violantly rejected all proprosals to change this, you
silently starting doing this in this version:

- replacing an octet string by a sequence  (good, but omitted the only reason
  for not allowing zeros).
- adding a requesterName item with is a generalnames

> * 
> *   The requestRef item allows the client to associate a response with
> *   a request.  The requestNonce provides an alternative mechanism ..
> * 
> *   and you have also the requestorRef.
> * 
> * The concept of trying to make loop control with values which are
> * explicitely
> * defined as not globally unique sounds strange to me.
> [TF] I have a big problem which the concept of global uniqueness. I
> class it the same bucket as non-repudiation. 

You are operating in a PKI where ID's of
entities are unique within the PKI. If you don't trust the
naming rule in your PKI, i.e. in some associated SCVP network
which is much smaller, i.e. in the magnitude of the size of
the CA name space.

Well, domain names work as far as I know. And telephone numbers also.
I don't say that non-repudiation doesn't work. I don't say that
I agree or disagree with your comparision since I do not see why this
is relevant here. 

You are not even answering the question: You make loop control, and
you explicitely says that the identifiers that are used do only have
local significance. You could have said: An example for identifiers
that could be used for loop control are uuids generated on each server
startup using the server address and a time value. 

> * 
> *  "The requestorRef item is also needed
> *   to prevent looping in some configurations"
> * 
> *  "No provisions are
> *   made to ensure uniqueness of the requestorRef octet string"
> * 
> * The usefulness of "requestorRef" as an identifier for the request
> * is pretty weak, since you can have a nonce if it is for each
> * request. use GeneralName(s) in a requestorName sequence as for the
> * response.
> * 
> * page 34:
> * 
> *   The requestorRef and the responder items MUST be included if the
> request
> * included a
> *   requestor item.
> * 
> * what does this mean? what is the relationship between a requesterRef
> and
> * responder?
> [TF] If requestorRef is populated, it means it's a relayed request in
> which case the responder is of significance.

No. any client can set a requestorRef, independant of whether the request
will be relayed. What is the significance of responder? In your spec
it is only of local signifance for the responding server? waht can this
be good for? 

> * 
> * If I'd be interested in anything identifying the response, then it is
> * a sequence of identifiers of the servers that have partipated, and
> some
> * local ids or "serial number' like thing if I want to go to that server
> and
> * asks 'did you really tell this to my friend'.
> * 
> * 
> * Chapter 7: Denis is right that the spec does not describe how relaying
> is
> * performed, i.e. how a response is created from a response received
> from
> * another
> * server by a 'proxy'.
> [TF] What specifically are you looking for?

A working specification that includes:

- how a request received is transformed into a new request by a relay,
  which fields are copied, or not, or may.
- how the response is transformed into a response to the original request
  there are SEVERAL options, in particulat the one that addresses
  the requirement of allowing a response as part of another one.

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Wed, 8 Dec 2004 11:42:06 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Seth Hitchings" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Seth,
A server can always go beyond what the client asked for. I don't see
that as strictly necessary in all cases such as if the client just asks
for revocation. Untimely is a matter of local server policy. What the
server cannot do is return status or errors relating to the other
activities which  were beyond the request scope.
Trevor

* -----Original Message-----
* From: Seth Hitchings [mailto:[email-masked]]
* Sent: Wednesday, December 08, 2004 11:34 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* Trevor,
* 
* For clarification, I assume that doing revocation status checks on a
path
* implies building
* a validated path?
* 
* If I am correct, in what case would a client ever send more than one
* check?
* 
* Seth
* 
* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of
* Trevor Freeman
* Sent: Wednesday, December 08, 2004 1:42 PM
* To: Denis Pinkas
* Cc: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* 
* Denis,
* I know of several systems who's policy is never to revoke the identity
* certificate because
* they have other mechanisms to address the issue.
* They are using authorization bound to the identity and they either
rely on
* short lived
* authorization assertions or revoke the authorization privilege
assonated
* with the
* identity. Therefore in those cases not checking the revocation status
of
* the certificate
* makes perfect sense.
* Trevor
* 
* * -----Original Message-----
* * From: [email-masked]
* [mailto:[email-masked]]
* * On Behalf Of Denis Pinkas
* * Sent: Wednesday, December 08, 2004 8:01 AM
* * To: Trevor Freeman
* * Cc: [email-masked]
* * Subject: Re: SCVP 16 comments deadline
* *
* *
* * Trevor,
* *
* * > Hi Denis,
* * > Below are responses to 1-16. Others will follow later.
* *
* * I am pleased that you accepted comments 13, 14, 15 and 16.
* * Among this list, I have a further remark on comment 4.
* *
* * > * 4. Page 13. Typo. Section 3.1.2 "checks"
* * > * The two following lines are in fact one line:
* * > *
* * > * Change:
* * > *
* * > *      - Build a validated certification path to a trust anchor;
and
* * > *
* * > *      - Do revocation status checks on the certification path.
* * > *
* * > * into:
* * > *
* * > *      - Build a validated certification path to a trust anchor
and
* * > *        do revocation status checks on the certification path.
* * > *
* * > [TF] Since this paragraph is listing the possible checks and
building
* a
* * > path is a separate check to revocation checking, I think the
current
* * > text is more accurate.
* *
* * I agree that "building a path is a separate check to revocation
* checking",
* * but revocation checking without building a validated path does not
make
* * sense.
* *
* * The full text currently is:
* *
* *      - Build a certification path to a trust anchor;
* *
* *      - Build a validated certification path to a trust anchor; and
* *
* *      - Do revocation status checks on the certification path.
* *
* * The full text should be:
* *
* *      - Build a certification path to a trust anchor;
* *
* *      - Build a validated certification path to a trust anchor; and
* *        do revocation status checks on the certification path.
* *
* * Denis
* 

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Wed, 8 Dec 2004 14:33:57 -0500
From: "Seth Hitchings" <[email-masked]>
To: "Trevor Freeman" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

This is a multi-part message in MIME format.

------=_NextPart_000_01D2_01C4DD32.F3057160
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Trevor,

For clarification, I assume that doing revocation status checks on a path implies building
a validated path?

If I am correct, in what case would a client ever send more than one check?

Seth

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of
Trevor Freeman
Sent: Wednesday, December 08, 2004 1:42 PM
To: Denis Pinkas
Cc: [email-masked]
Subject: RE: SCVP 16 comments deadline

Denis,
I know of several systems who's policy is never to revoke the identity certificate because
they have other mechanisms to address the issue.
They are using authorization bound to the identity and they either rely on  short lived
authorization assertions or revoke the authorization privilege assonated with the
identity. Therefore in those cases not checking the revocation status of the certificate
makes perfect sense.
Trevor

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Denis Pinkas
* Sent: Wednesday, December 08, 2004 8:01 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
*
*
* Trevor,
*
* > Hi Denis,
* > Below are responses to 1-16. Others will follow later.
*
* I am pleased that you accepted comments 13, 14, 15 and 16.
* Among this list, I have a further remark on comment 4.
*
* > * 4. Page 13. Typo. Section 3.1.2 "checks"
* > * The two following lines are in fact one line:
* > *
* > * Change:
* > *
* > *      - Build a validated certification path to a trust anchor; and
* > *
* > *      - Do revocation status checks on the certification path.
* > *
* > * into:
* > *
* > *      - Build a validated certification path to a trust anchor and
* > *        do revocation status checks on the certification path.
* > *
* > [TF] Since this paragraph is listing the possible checks and building a
* > path is a separate check to revocation checking, I think the current
* > text is more accurate.
*
* I agree that "building a path is a separate check to revocation checking",
* but revocation checking without building a validated path does not make
* sense.
*
* The full text currently is:
* 
*      - Build a certification path to a trust anchor;
* 
*      - Build a validated certification path to a trust anchor; and
* 
*      - Do revocation status checks on the certification path.
*
* The full text should be:
* 
*      - Build a certification path to a trust anchor;
* 
*      - Build a validated certification path to a trust anchor; and
*        do revocation status checks on the certification path.
*
* Denis

------=_NextPart_000_01D2_01C4DD32.F3057160
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

------=_NextPart_000_01D2_01C4DD32.F3057160--

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Wed, 8 Dec 2004 10:42:02 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Denis,
I know of several systems who's policy is never to revoke the identity
certificate because they have other mechanisms to address the issue.
They are using authorization bound to the identity and they either rely
on  short lived authorization assertions or revoke the authorization
privilege assonated with the identity. Therefore in those cases not
checking the revocation status of the certificate makes perfect sense.
Trevor

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Denis Pinkas
* Sent: Wednesday, December 08, 2004 8:01 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* 
* Trevor,
* 
* > Hi Denis,
* > Below are responses to 1-16. Others will follow later.
* 
* I am pleased that you accepted comments 13, 14, 15 and 16.
* Among this list, I have a further remark on comment 4.
* 
* > * 4. Page 13. Typo. Section 3.1.2 "checks"
* > * The two following lines are in fact one line:
* > *
* > * Change:
* > *
* > *      - Build a validated certification path to a trust anchor; and
* > *
* > *      - Do revocation status checks on the certification path.
* > *
* > * into:
* > *
* > *      - Build a validated certification path to a trust anchor and
* > *        do revocation status checks on the certification path.
* > *
* > [TF] Since this paragraph is listing the possible checks and
building a
* > path is a separate check to revocation checking, I think the current
* > text is more accurate.
* 
* I agree that "building a path is a separate check to revocation
checking",
* but revocation checking without building a validated path does not
make
* sense.
* 
* The full text currently is:
* 
*      - Build a certification path to a trust anchor;
* 
*      - Build a validated certification path to a trust anchor; and
* 
*      - Do revocation status checks on the certification path.
* 
* The full text should be:
* 
*      - Build a certification path to a trust anchor;
* 
*      - Build a validated certification path to a trust anchor; and
*        do revocation status checks on the certification path.
* 
* Denis

Date: Wed, 8 Dec 2004 13:29:51 -0500
From: Dan Proietti <[email-masked]>
Reply-To: [email-masked]
To: Trevor Freeman <[email-masked]>
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

Trevor, I have one additional comment.

Section 4.9 responder: This item is not adequately described in this
section, nor is it mentioned anywhere else in the specification.  I
presume the value of this field is the value that the SCVP server
stuffs into the requestorRef to identify itself when relaying
requests.  But if the value is "only of local signifigance to the SCVP
server" then why is it returned to the client in the response?  What
could the client possibly do with information?

Dan

On Thu, 2 Dec 2004 12:22:31 -0800, Trevor Freeman
<[email-masked]> wrote:
>  
>  
> 
> The deadline communicated at the DC meeting for making comments on SCVP 16
> was Nov 30th which has now passed. I have had only three people send me
> comments to date. SCVP 17 will be closing very shortly so this is the last
> reminder.

Date: Wed, 08 Dec 2004 17:00:33 +0100
From: Denis Pinkas <[email-masked]>
Organization: Bull SA.
To: Trevor Freeman <[email-masked]>
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

> Hi Denis,
> Below are responses to 1-16. Others will follow later.

I am pleased that you accepted comments 13, 14, 15 and 16.
Among this list, I have a further remark on comment 4.

> * 4. Page 13. Typo. Section 3.1.2 "checks"
> * The two following lines are in fact one line:
> * 
> * Change:
> * 
> *      - Build a validated certification path to a trust anchor; and
> * 
> *      - Do revocation status checks on the certification path.
> * 
> * into:
> * 
> *      - Build a validated certification path to a trust anchor and
> *        do revocation status checks on the certification path.
> * 
> [TF] Since this paragraph is listing the possible checks and building a
> path is a separate check to revocation checking, I think the current
> text is more accurate.

I agree that "building a path is a separate check to revocation checking", 
but revocation checking without building a validated path does not make sense.

The full text currently is:

     - Build a certification path to a trust anchor;

     - Build a validated certification path to a trust anchor; and

     - Do revocation status checks on the certification path.

The full text should be:

     - Build a certification path to a trust anchor;

     - Build a validated certification path to a trust anchor; and
       do revocation status checks on the certification path.

Denis

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Tue, 7 Dec 2004 17:30:46 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,
See below for details.
Trevor
* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Tuesday, December 07, 2004 4:15 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* We have
* 
*   Query ::= SEQUENCE {
*    queriedCerts               SEQUENCE SIZE (1..MAX) OF CertReference,
* 
*    ...
*    validationPolicy           ValidationPolicy,
* 
* with
*   ValidationPolicy ::= SEQUENCE {
*     ...
*     validationAlg         [0] ValidationAlg OPTIONAL,
* 
* 
* 3.1.5 validationAlg
[TF] The duplicate Validation alg section has been removed.
* 
*   The validationAlg item, defines the validation algorithm to be used
*   by the SCVP server during certificate validation.  The value of
*   this item can be determined by agreement between the client and the
*   server, and is represented as an object identifier.  The server
*   might want to assign additional object identifiers that indicate
*   that some settings are used in addition to others given in the
*   request.  In this way, the validation algorithm object identifier
*   can be a shorthand for some SCVP options, but not others.
* 
*   The validationAlg item uses the ValidationAlg type, which has the
*   following syntax:
* 
*     ValidationAlg ::= SEQUENCE {
*       valAlgId              OBJECT IDENTIFIER,
*       parameters            ANY DEFINED BY valAlgId OPTIONAL }
* 
* 
* and also
* 
* 
* 3.1.5.2 validationAlg
* 
*   The optional validationAlg item defines the validation algorithm to
*   be used by the SCVP server during certificate validation.  The
*   value of this item can be determined by agreement between the
*   client and the server, and the validation algorithm is represented
*   by an object identifier.
* 
*    The syntax of the validationAlg is:
* 
*     ValidationAlg ::= SEQUENCE {
*       valAlgId              OBJECT IDENTIFIER,
*       parameters            ANY DEFINED BY valAlgId OPTIONAL }
* 
*   The following section specifies the basic validation algorithm and
*   the name validation algorithm.  SCVP clients and servers MUST
*   support both validation algorithms defined in this section.  Other
*   validation algorithms can be specified in other documents for use
*   with specific applications.  SCVP clients and servers MAY support
*   any such validation algorithms.
* 
* ---------------
* 
* 3.1.5.2.3 Name Validation Algorithm
* 
*   The name validation algorithm allows the client to supply an
*   application identifier and a name to the server.  The application
*   identifier defines the name matching rules to use in comparing the
*   name supplied in the request with the names in the certificate.
* 
* There may be more than one certificate in the request.
[TF] The policy is global to the request.
* 
* 
*     NameValidationAlgParms ::= SEQUENCE {
*       keyPurposeId      KeyPurposeId,
*       validationNames   GeneralNames }
* 
* What is the relation between the KeyPurposeId and the
extendeddkeyusage
* 3.1.5.10 extendedKeyUsages
[TF] The OID with name validation defines the matching rules. In theory
there could be multiple matching rules for an 822 name.
* 
*   If the keyPurposeID supplied in the request is id-kp-mailProtection
*   [PKIX-1], then GeneralNames supplied in the request MUST be a
*   rfc822Name, and the matching rules are defined in [SMIME-CERT].
* 
* 'an rfc822Name".
* 
* what is the meaning of this if I have more than one email certificate,
* i.e. I want to validate all encryption certs before using them.
[TF] If they are different names they have to be different requests.
* 
* 
* Does this means that the validate Algorithm is cert specific and not
* request specific?
[TF] The validation policy for the request is global to the request.

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Tue, 7 Dec 2004 17:20:01 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,
All parameter assonated with policy mapping are names the same. If you
want guidance on their use in combination with the policy reference see
section 1.3.
SCVP only supports one policy per request therefore if you want to
process different polices for different certificates - send different
requests.
Trevor

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Tuesday, December 07, 2004 4:15 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* There are several boolean values like
* 
*   ValidationPolicy ::= SEQUENCE {
*     ...
*     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
* 
* and a policy definition.
* 
*   ValidationPolValues ::=SEQUENCE  {
*     ...
*     inhibitPolMap            BOOLEAN,
* 
* 
* - It would be nice to use the same field names.
* 
* - I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
*   with some apppropriate tagging, it doesn't make much sense to
*   me to code useless values.
* 
* Would it be possible to add some statement about the intended
* meaning of the 6 possible combination:
* 
* 
* inhibitPolMap = FALSE
* 
* inhibitPolicyMapping absent  1
*                      FALSE   2
*                      TRUE    3
* 
* inhibitPolMap = TRUE
* 
* inhibitPolicyMapping absent  4
*                      FALSE   5
*                      TRUE    6
* 
* 
* Does it mean that when the client value takes preceedence over the
* server value?
* 
* 1 = FALSE
* 2 = FALSE
* 3 = TRUE
* 4 = TRUE
* 5 = FALSE
* 6 = TRUE
* 
* 
* It had been said some time ago (as far as I remember) that these
* inputs are not global ones but in principle for each of the
* certs to be asked for. what was the conclusion why they stay global
* for all certs?

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Tue, 7 Dec 2004 17:10:41 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,
See below for answers
Trevor
* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Monday, December 06, 2004 10:09 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* 
* I am quite pleased that about the addition
* of requestorName in the responsea and that
* the convention of  consecutive null terminated
* strings in a requestorRef have been replaced,
* 
* But:
* 
* The syntax is GeneralNames. how many ids is the server intended
* to extract from a certificate? The subject + all alternate ids?
* 
* Why not having this id declared by the client, and the authentication
* methods matches against it. ==> Add a corresponding field in the
request.
* Which is required:
* 
*    When the DPV request is authenticated, the client SHOULD be able to
*    include a client identifier in the request for the DPV server to
copy
*    into the response.  Mechanisms for matching this identifier with
the
*    authenticated identity depends on local DPV server conditions
and/or
*    the validation policy.  The DPV server MAY choose to blindly copy
the
*    identifier, omit the identifier, or return an error response.
* 
* It is an identifer identifying the client and not the request.
[TF] If the client sends a signed request with certificate it has
included a client identifier in the request. Its matter of local server
policy which name it chooses to return.
* 
* The new text replacing "requestor" in chapter 7 by "requestorRef".
* 
* > however,
* >  all of the octets MUST have values other than zero.
* Why? I would find it quite useful to add a
* hash of something local, if at all, the hash of its IP address for
example
* (for which I can use the Nonce as well).
[TF] If you want me to remove the clause about values being other than
zero - I am happy to do so. Since this is of local significance only, if
an implementation puts garbage in here it does not effect
interoperability.
* 
*   The requestRef item allows the client to associate a response with
*   a request.  The requestNonce provides an alternative mechanism ..
* 
*   and you have also the requestorRef.
* 
* The concept of trying to make loop control with values which are
* explicitely
* defined as not globally unique sounds strange to me.
[TF] I have a big problem which the concept of global uniqueness. I
class it the same bucket as non-repudiation. 
* 
*  "The requestorRef item is also needed
*   to prevent looping in some configurations"
* 
*  "No provisions are
*   made to ensure uniqueness of the requestorRef octet string"
* 
* The usefulness of "requestorRef" as an identifier for the request
* is pretty weak, since you can have a nonce if it is for each
* request. use GeneralName(s) in a requestorName sequence as for the
* response.
* 
* page 34:
* 
*   The requestorRef and the responder items MUST be included if the
request
* included a
*   requestor item.
* 
* what does this mean? what is the relationship between a requesterRef
and
* responder?
[TF] If requestorRef is populated, it means it's a relayed request in
which case the responder is of significance.
* 
* If I'd be interested in anything identifying the response, then it is
* a sequence of identifiers of the servers that have partipated, and
some
* local ids or "serial number' like thing if I want to go to that server
and
* asks 'did you really tell this to my friend'.
* 
* 
* Chapter 7: Denis is right that the spec does not describe how relaying
is
* performed, i.e. how a response is created from a response received
from
* another
* server by a 'proxy'.
[TF] What specifically are you looking for?
* 
* 
* 
* 
* 

Date: Tue, 7 Dec 2004 17:21:06 -0500
From: Dan Proietti <[email-masked]>
Reply-To: [email-masked]
To: Trevor Freeman <[email-masked]>
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

Thanks for the reply, Trevor.  I've included additional clarification,
comments, and questions inline below.

Dan

On Tue, 7 Dec 2004 12:06:18 -0800, Trevor Freeman
<[email-masked]> wrote:
> Hi Dan,
> Thanks for the feedback. Answers below.
> Thanks
> Trevor
> 
> * -----Original Message-----
> * From: [email-masked]
> [mailto:[email-masked]]
> * On Behalf Of Dan Proietti
> * Sent: Monday, December 06, 2004 11:08 AM
> * To: [email-masked]
> * Subject: RE: SCVP 16 comments deadline
> *
> *
> * Hi, Trevor.  I have a few comments re: default validation policy.
> 
> 
> *
> * a) Section 1.3 states, "The default policy can be requested for
> * validation and the client can override any default value in the
> * request if required.  The default values are also used when processing
> * requests which reference a validation policy other than the default
> * one that does not contain the full set of parameters necessary for
> * validation and the client has also omitted the missing values in the
> * request." Section 6.14 is also quite clear about this.  However, in
> * section 3.1.4, the field descriptions for the ValidationPolicy type
> * imply that a fixed default is used when an OPTIONAL item is not
> * included.  For instance the description for userPolicySet (section
> * 3.1.5.3) states, "If userPolicySet is not specified, then any-policy
> * MUST be used."  If section 1.3 still holds, the correct description
> * should be something like, "If userPolicySet is not specified, then the
> * value from the default validation policy will be used."  Same goes for
> * the other ValidationPolicy field descriptions: inhibitPolicyMapping,
> * requireExplicitPolicy, inhibitAnyPolicy, isCA, keyUsages,
> * extendedKeyUsages.  If this is indeed the intent.
> 
> [TF] The conflict with default policy and user policy set has been
> recognized and the requirement around any-policy in 3.1.5.3 has been
> removed. Are there any other specifics in the section you reference
> where you feel there is a conflict? I have reread those sections and
> don't see any other clauses which appear to contradict the default
> policy.
> 

The clauses that are in error are:

3.1.5.4 inhibitPolicyMapping: "By default the server allows policy
mapping as part of certification path validation."

3.1.5.5 requireExplicitPolicy: "By default the server accepts no
policies in the certificate policies extension of valid certificates."

3.1.5.6 inhibitAnyPolicy: "By default the server processes the any-policy OID."

3.1.5.7 isCA: "If the BOOLEAN value is omitted from the request and
the client submits a CA certificate as the subject of the validation
request, then a server MUST NOT treat this as an error."

For each section I think that the quoted text should just be deleted. 
Default values for all these properties are defined by the validation
policy.

> *
> * b) Section 3.1.5.1 is titled "Default Validation Algorithm" but
> * discusses the default validation policy.
> 
> [TF] This should have read algorithm not policy and is now fixed.
> 

Huh?  What will this section be titled in 17?  "Default Validation
Algorithm" or "Default Validation Policy"?  My vote is for "Default
Validation Policy".

> 
> 
>   This is very confusing.  I
> * presume this should be titled "Default Validation Policy" and be
> * re-located to a sub-section of the validationPolRef description
> * (3.1.4.1)?
> *
> * c) Section 3.1.5.2.1 (Basic Validation Algorithm) defines the "meaning
> * of the default validation algorithm".  This is extremely confusing as
> * this is the first time this term is mentioned.  I presume "algorithm"
> * should be changed to "policy" and the remainder of this sub-section
> * should be merged into the "Default Validation Policy" section?
> 
> [TF] The basic validation algorithm is an algorithm not a policy in that
> it defines how the parameters are compared not their values.

The issue that I intended to raise with b) and c) is with the term
"default validation algorithm".  What is the "default validation
algorithm"?  As I understand it, it is the validation algorithm that
must be used when requesting the "default validation policy".  And
this algorithm must be the "basic validation algorithm".  Is it indeed
necessary to include the specialized term "default validation
algorithm" when it is equivalent to the already established term
"basic validation algorithm"?

> 
> *
> * d) Related to c) above, the second bullet states, "The acceptable
> * policy set will come from the userPolicySet item.  If no certificate
> * policies are specified in the userPolicySet item, then the SCVP server
> * will use any-policy."  What if the server has defined the default
> 
> [TF] The clause in 3.1.5.3 around use of any-policy has been removed.

Fair enough.  If the fully resolved validation policy still does not
contain an explicit value for userPolicySet, the "basic validation
algorithm" dictates that {any-policy} will be used.  This is the
behavior defined in 3280 Section 6.

> 
> * validation policy with a userPolicySet of {1.2.3.4} and the client
> * requests the default validation policy and does not specify a
> * userPolicySet override?  Does the server use {1.2.3.4} or
> * {any-policy}?  Or is it invalid for a server to define a default
> * validation policy with a userPolicySet other than {any-policy}?
> *
> * Personally, I think the specification needs to be more concise re:
> * constructing the actual validation policy based on a) the referenced
> * policy, b) the explicit overrides, and c) the default policy
> fallbacks.
> * An
> * example with a hypothetical agreed upon validation policy would do it.
> 
> [TF] OK I will add an example of how this works to 17.

Much appreciated. 

> 
> *
> * Thanks for your time,
> 
> 
> * Dan Proietti
> *
> *
> *
> *
> * On Thu, 2 Dec 2004 12:22:31 -0800, Trevor Freeman
> * <[email-masked]> wrote:
> * >
> * >
> * >
> * > The deadline communicated at the DC meeting for making comments on
> SCVP
> * 16
> * > was Nov 30th which has now passed. I have had only three people send
> me
> * > comments to date. SCVP 17 will be closing very shortly so this is
> the
> * last
> * > reminder.
> 
>

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Tue, 7 Dec 2004 12:46:37 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Denis,
Below are responses to 1-16. Others will follow later.
Trevor

* -----Original Message-----
* From: Denis Pinkas [mailto:[email-masked]]
* Sent: Monday, December 06, 2004 2:25 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* > The deadline communicated at the DC meeting for making comments on
SCVP
* > 16 was Nov 30th which has now passed. I have had only three people
send
* > me comments to date. SCVP 17 will be closing very shortly so this is
the
* > last reminder.
* 
* Thank for the remainder. I missed the initial announcement.
* My comments are below.
* 
* 
* 1. Typo. There are two IPR statements related to RFC 3668 on the first
* page. Delete one.
* 
* " By submitting this Internet-Draft, I certify that any applicable
*    patent or other IPR claims of which I am aware have been disclosed,
*    or will be disclosed, and any of which I become aware will be
*    disclosed, in accordance with RFC 3668".
[TF] Fixed
* 
* 
* 2. Page 11. Typos. First paragraph on top of the page.
* Replace "signers" by "signer's".
[TF] Fixed
* 
* 
* 3. Page 11. Typo. First paragraph on top of the page. Last sentence.
* Replace "certificate" by "certificates".
[TF] Fixed
* 
* 
* 4. Page 13. Typo. Section 3.1.2 "checks"
* The two following lines are in fact one line:
* 
* Change:
* 
*      - Build a validated certification path to a trust anchor; and
* 
*      - Do revocation status checks on the certification path.
* 
* into:
* 
*      - Build a validated certification path to a trust anchor and
*        do revocation status checks on the certification path.
* 
[TF] Since this paragraph is listing the possible checks and building a
path is a separate check to revocation checking, I think the current
text is more accurate.
* 
* 5. Page 15. Typo. Section 3.1.4 validationPolicy
* 
* This is the error left intentionally by the editor to know who read
the
* document. The following sentence is duplicated: " The validationPolicy
* item, defines the validation policy". Please delete one sentence.
[TF] Just checking <g> Fixed
* 
* 
* 6. Page 24. Typo. Section 3.1.5.9 keyUsages
* 
* Change "keyUasge" into "keyUsage".
[TF] Fixed
* 
* 
* 7. Page 27. Typo. Section 3.1.8 valididationTime
* Last line of the first paragraph. Change "servers" into "server's"
[TF] Fixed
* 
* 
* 8. Page 32. Typo. Section 3.5 dhPublicKey
* Change: Diffie-Hellamn into Diffie-Hellman.
[TF] Fixed
* 
* 
* 9. Page 32. Typo. Section 3.5 dhPublicKey
* Fifth line. Change "an does" into "and does"
[TF] Fixed
* 
* 
* 10. Page 32. Typo. Section 3.5 dhPublicKey
* Delete: (see section Error! Reference source not found.)
* 
* 
* 11. Page 33. Typo. Section 4. Validation Response
* 
* After the eight items. The following sentence has a grammar problem:
*   "Successful responses are be made when the server has fully complied
*    with the request".
[TF] Deleted the "be"
* 
* 
* 12. Page 52. Typo. Section 6 Validation Policy Response
* 
* The second sentence is incorrect. It is:
* The valPolResponse MAY not unique to any valPolRequest, ..."
* 
* Change into:
* "The valPolResponse MAY not be unique to any valPolRequest, ..."
[TF] Fixed
* 
* 
* 13. The abstract does not reflect accurately the content of the
* document.
* "certificate handling" is too vague.
* 
* Proposed abstract:
* 
*    SCVP allows a client to delegate certificate path construction and
*    certificate path validation to a server. The path construction or
*    validation (i.e. making sure that none of the certificates of the
*    path is revoked) is made according to a validation policy which
*    contains one or more trust anchors. It allows to simplify client
*    implementations and to use a set of predefined validation policies.
[TF] Suggested text substituted
* 
* 
* 14. Section 1.3
* 
* The text on validation policy is new. There is no concept of "mutually
* agreed" validation policy between the client on the server. The server
* supports a set of validation policies which may or may not fit the
need
* of the client.
* 
* Change the second sentence of section 1.3 which is:
* 
* " In SCVP, a validation policy can be either mutually
*    agreed between client and server, and subsequently referenced in
*    request, or explicitly expressed in the request by passing all of
*    the necessary parameters."
* 
* into:
* 
* " In SCVP, the validation policy to be used by the server can be
either
* fully referenced in the request by the client (and thus no additional
* parameter is necessary), referenced in the request by the client with
* additional parameters or supported by default by the server if the
* client does not reference it."
[TF] Suggested text substituted
* 
* 
* 15. Section 1.3. The second paragraph needs to be reworded. Currently,
* it is the following:
* 
* " Policy definitions can be quite long and complex, and some policies
*    may allow for the setting of a few parameters such as a set of
*    trust anchors.  The request can therefore be simplified if these
*    previously agreed policy dependent parameters are referenced in the
*    request by a mutually agreed OBJECT IDENTIFIER (OID) or URL value.
*    The referenced value indicates either a partial or full set of
*    parameters. The client can therefore omit these agreed parameters
*    from the request, only passing any parameters which are not
*    specified by the previously agreed policy.  Therefore in the
*    simplest form, with validation polices which define every parameter
*    necessary, a SCVP request need only contain the certificate to be
*    validated, the validation policy and any run-time parameters for
*    the request".
* 
* Proposed rewording:
* 
* " Policy definitions can be quite long and complex, and some policies
*    may allow for the setting of a few parameters.  The request can
*    therefore be very simple if OBJECT IDENTIFIERS (OIDs) are used to
*    specify both the algorithm to be used and all the associated
*    parameters of the validation policy. The request can be more
complex
*    if the validation policy fixes many of the parameters but allows
the
*    client to specify some of them. When the validation policy defines
*    every parameter necessary, a SCVP request needs only to contain the
*    certificate to be validated, the referenced validation policy and
any
*    run-time parameters for the request. In its simplest form, a SCVP
*    request contains the certificate to be validated and any run-time
*    parameters for the request. In that case the server uses a default
*    validation policy".
[TF] Suggested text substituted
* 
* 
* 16. Section 1.3. Paragraph 3.
* 
* The text is missing the fact that at least one validation policy must
* be supported by the server. This is the default policy which is used
* when the client omits to specify it.
* 
* The current text is the following:
* 
*   "SCVP server also publishes its default validation policy settings.
*    The default policy can be requested for validation and the client
*    can override any default value in the request if required.  The
*    default values are also used when processing requests which
*    reference a validation policy other than the default one that does
*    not contain the full set of parameters necessary for validation and
*    the client has also omitted the missing values in the request.
* 
*    Therefore a client can also simplify the request by omitting a
*    parameter from a request if the default value published by the
*    server is acceptable".
* 
* Replace it with:
* 
* " A SCVP server must support a default validation policy which will
*    be used if the client does not specify any in its request. A server
*    publishes the references of the validation policies it supports.
*    When these policies have parameters that may be overridden, the
*    default value for these parameters are communicated by the server
as
*    well. The client can simplify the request by omitting a parameter
*    from a request if the default value published by the server for a
*    given validation policy reference is acceptable. However if there
is
*    a desire to demonstrate to someone else that a specific validation
*    policy with all its parameters has been used, it will need to ask
the
*    server for the inclusion of the full validation policy with all the
*    parameters in the response".
[TF] Suggested text substituted
* 
* 
* 17. On top of page 7, the relationship between the validation policy
* and the basic certification path algorithm is not explained. Then in
* section 1.4 The concept of validation algorithm is introduced but its
* relationship with the validation policy is not explained. This is
* confusing.
* 
* Later on when observing the ASN.1 syntax it may be discovered that two
* OIDs are being used:
* 
*   - one for the validation policy (ValidationPolRef) and
*   - one for the validation algorithm (ValidationAlg).
* 
* This is overcomplicated and unnecessary.
* 
* An important simplification is obtained if, as the previous text
* states, there is an OID to defined the validation policy and there may
* be or may not be additional parameters.
* 
* We could then have:
* 
* valPolByOID::= SEQUENCE {
*        valPolId              OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY ValPolId OPTIONAL }
* 
* Specifying a path processing compliant with section 6.1 of RFC 3280
* would be possible (notice however that the text from RFC 3280 is too
* vague to support the case where a CRL is not signed by the CA).
* 
* It would be desirable to be able to communicate easily and in a
* standard way the parameters that may be set in section 6.1 from RFC
* 3280. In addition, key usage should be added to that list.
* 
* The document should then define a bundle of all these previous useful
* parameters and allow for the addition of other parameters.
* 
* It is thus proposed to define an OID for a validation policy compliant
* with section 6.1 of RFC 3280 (some differences with section 6 from
* 3280bis, i.e. adding precision, may be expected)
* 
* It is thus proposed to modify the text starting from :
* 
* " The inputs to the basic certification path processing algorithm
*    used by SCVP are defined by [PKIX-1] in section 6.1.1 and comprise"
*    up to the end of section 1.3 with the following:
* 
* "For clients able to specify the parameters of a validation policy, it
* may be useful to define a standard data structure (using a bundle)
able
* to support the parameters of the basic certification path processing
* algorithm defined by in section 6.1.1 from [PKIX-1] :
* 
*   - a set of Trust Anchors (by value or by reference),
*   - the initial Certificate Policy set,
*   - initial Certificate Policy mapping setting,
*   - initial any-Policy setting,
*   - initial explicit Certificate Policy setting.
* 
* as well as :
* 
*    - the usage of the key contained in the certificate (e.g., key
*      encipherment, key agreement, signature)
* 
* This will be done using a bundle which encapsulates all these
* parameters.
* 
* Other application-specific purposes parameters may be added".
* 
* 
* 18. Section 1.4 is about a "Validation Algorithm". Given what was said
* before, the header of this section should be changed. If we make a
* subsection 1.3.1 called "1.3.1. General" for encapsulating the
previous
* text, then we can introduce a new section 1.3.2 called:
* 
* "1.3.2. Validation policy according to section 6.1 of RFC 3280"
* 
* Some of the text present in the current section 1.4 has been used to
* build the new text that is proposed below:
* 
* "1.3.2. Validation policy according to section 6.1 of RFC 3280
* 
*    SCVP defines a specific validation policy which implements the
*    certification path validation algorithm as defined in section 6.1
of
*    [PKIX-1]. This specific validation policy, called "rfc-3280 basic
*    validation policy" uses the parameters defined in the bundle
*    mentioned above.
* 
*    Note that this algorithm does not support in its full generality
the
*    algorithm described in section 6.2 of [PKIX-1] since, when more
than
*    one trust anchor is being defined, all the conditions that are
*    specified apply to all trust anchors, whereas section 6.2 allows to
*    have different conditions for every trust anchor.
* 
*    The rfc-3280 basic validation policy may be the default validation
*    policy supported by the server, but does not need to".
* 
* 
* 19. Section 2 "Protocol Overview"
* 
* In order to allow for interoperability and testing a common protocol
* needs to be supported. It should be defined.
* 
* 
* 20. Section 3 "Validation Request"
* 
* The unsigned request form is not explained and there is a confusion
for
* the signed request which indeed authenticates the client and is thus
* not anonymous. The current text is :
* 
*    "A signed
*    request is used to authenticate the client to the server or to
*    provide an anonymous client integrity over the request-response
*    pair."
* 
* It should be rephrased as:
* 
*    "An unsigned request provides an anonymous client integrity over
*     the request since the hash of the request or the full request is
*     incorporated in the response. A signed request is used to
*     authenticate the client to the server".
* 
* 
* 21. Page 13. Section 3.1.2 "checks"
* 
* The following sentence adds nothing and should be removed:
* 
*    "A server may still choose to
*    perform revocation status checks when performing path construction,
*    although this information cannot be returned to the client."
* 
* 
* 22. Page 15. Section 3.1.3 "wantBack"
* 
* The text states:
* 
*      - Proof of revocation status for each certificate in the AC
*         issuer certification path;
* 
* It would be important to refer the section of the RFC which explains
* how to
* check the "revocation status for each certificate in the AC issuer
* certification path".
* 
* 
* 23. Page 15. Section 3.1.3 "wantBack"
* 
* The text states:
* 
*    The client can also request a non-cached response to the request by
*    including wantback id-swb-non-cached-resp in the request.
* 
* The default behavior should be the reverse: fresh information is
* provided, unless the client accept cached information. The item should
* be changed into:
* id-swb-cached-resp
* 
* 
* 24. Page 15. Section 3.1.3 "wantBack"
* 
* The text states:
* 
* id-swb-pkc-all-valid-cert-paths OBJECT IDENTIFIER ::= { id-swb 13}
* 
* It should be mentioned that this item is only possible for DPD.
* 
* 
* 25. Page 16. Section 3.1.4 validationPolicy
* 
* The following sentence is talking of an agreement whereas such
* agreement does not exist. Delete the sentence:
* 
*   "The client and server can optionally agree on a set of parameters
*    which may fully or partially define a validation policy".
* 
* 
* 26. Page 16. Section 3.1.4 validationPolicy
* The text states:
* 
*    "If a partial set of parameters has been agreed upon,
*    then the client supplies a reference to the policy plus whatever
*    parameters are necessary to complete the request in this item.
* 
* This should be replaced with:
* 
*    "If the validation policy does not define all parameters necessary
*    for processing an SCVP request, then the client need to supply
these
*    parameters".
* 
* 27. Page 16. Section 3.1.4 validationPolicy
* 
*    The syntax of the validationPolicy item is defined as:
* 
*    ValidationPolicy ::= SEQUENCE {
*      validationPolRef          ValidationPolRef,
*      validationAlg         [0] ValidationAlg OPTIONAL,
*      userPolicySet         [1] SEQUENCE SIZE (1..MAX) OF OBJECT
*                                  IDENTIFIER OPTIONAL,
*      inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
*      requireExplicitPolicy [3] BOOLEAN OPTIONAL,
*      inhibitAnyPolicy      [4] BOOLEAN OPTIONAL,
*      isCA                  [5] BOOLEAN OPTIONAL,
*      trustAnchors          [6] TrustAnchors OPTIONAL,
*      keyUsages             [7] SEQUENCE SIZE (1..MAX) OF KeyUsage
*                                   OPTIONAL,
*      extendedKeyUsages     [8] ExtKeyUsageSyntax OPTIONAL}
* 
* 
* This structure is quite odd, because it only allows to pass additional
* parameters as parameters of the validationAlg. Suppressing the
* validationAlg item add adding validationParamExtensions would be a
* simpler and cleaner way.
* 
* Each validation policies uses its own parameters.
* We should have something like :
* 
* ValPolByOID  ::= SEQUENCE {
*        valPolgId             OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY valPolId OPTIONAL }
* 
* More details follow.
* 
* 
* 28. It is highly debatable if URIs should be supported or not to
* reference a validation policy. URIs are not stable over time and thus
* unless there are dereferenced and a hash value is computed over them,
* it is insecure to use them. There is a discussion in the security
* consideration section, but no warning and no pointer here. If we keep
* them, we should warn the user.
* 
* If the WG should decides that they should be supported (and if the
IESG
* agrees) on page 17, the ASN.1 description should then be:
* 
* ValidationPolicy ::= CHOICE {
*      valPolByOID         [0] ValPolByOID,
*      valPolByURI         [1] ValPolByURI }
* 
* ValPolByOID  ::= SEQUENCE {
*        valPolgId             OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY valPolId OPTIONAL }
* 
* ValPolByURI ::= SEQUENCE {
*      uri            IA5String,
*      hashAlgo       OBJECT IDENTIFIER,
*      hashValue      OCTET STRING}
* 
* 
* 29. It is proposed to define the following bundle:
* 
* ValidationParamBundle ::= SEQUENCE {
*      certificatePolicySet      [0] SEQUENCE SIZE (1..MAX) OF OBJECT
*                                    IDENTIFIER OPTIONAL,
*      inhibitPolicyMapping      [1] BOOLEAN OPTIONAL,
*      requireExplicitPolicy     [2] BOOLEAN OPTIONAL,
*      inhibitAnyPolicy          [3] BOOLEAN OPTIONAL,
*      isCA                      [4] BOOLEAN OPTIONAL,
*      trustAnchors              [5] TrustAnchors OPTIONAL,
*      keyUsages                 [6] SEQUENCE SIZE (1..MAX) OF KeyUsage
*                                    OPTIONAL,
*      extendedKeyUsages         [7] ExtKeyUsageSyntax OPTIONAL
*      extensions                [8] EXPLICIT Extensions OPTIONAL }
* 
* Note that userPolicySet" is unclear and has been changed into
* "certificatePolicySet".
* 
* The text would need to be aligned with the new structure and, of
course
* the parameters of the rfc-3280 basic validation policy will simply
* include the bundle above as its parameters.
* 
* It should also be mentioned somewhere in the document that the support
* of the rfc-3280 basic validation policy is not mandatory for
* conformance but, if supported then the bundle needs to be supported.
* 
* 
* 30. Page 17. Section 3.1.5 validationAlg should be deleted.
* 
* 
* 31. Page 17. Section 3.1.5.1 Default Validation Algorithm should be
* deleted and replaced by a section later on the "rfc-3280 basic
* validation policy", which should have its OID defined under the scvp
* tree for OIDs.
* 
* 
* 32. Page 17. Section 3.1.5.1. Some text of this section might be re-
* sued to build a new section on the rfc-3280 basic validation policy.
* Note that the last sentence at the bottom of page 17, should be
* removed. This sentence is: "The default validation policy MUST use the
* basic validation algorithm". Any default validation policy can be
used.
* 
* 
* 33. Page 17. Section 3.1.5.2 validationAlg (same title as 3.1.5 !)
* should be as well deleted.
* 
* 
* 34. Page 20. Section 3.1.5.2.3 Name Validation Algorithm
* 
* This goal of this section seems to introduce an additional test to the
* basic "rfc-3280 basic validation policy". It would come naturally as
an
* extension of ValidationParamBundle, rather than as a parameter of the
* validationAlgo which has been proposed to be removed. The text should
* be modified accordingly.
* 
* 
* 35. Page 21. Section 3.1.5.2.3 Name Validation Algorithm
* 
*      NameValidationAlgParms ::= SEQUENCE {
*        keyPurposeId      KeyPurposeId,
*        validationNames   GeneralNames }
* 
* This construct is artificial since KeyPurposeId is about the Extended
* Key Usage and has nothing to do with name validation.
* 
* It could indeed be interesting to test the Extended Key Usage
extension
* of a certificate, but this should be supported as an extension of
* ValidationParamBundle. The text should be modified accordingly.
* 
* 
* 36. Page 22. Section 3.1.5.3 userPolicySet
* 
* userPolicySet should be changed everywhere into certificatePolicySet.
* 
* 
* 37. Page 22. Section 3.1.5.3 userPolicySet
* 
* The text has many sentences like:
* 
*    SCVP clients SHOULD support userPolicySet item in requests, and
*    SCVP servers MUST support userPolicySet item in requests.
* 
* These requirements only apply for the rfc-3280 basic validation
policy,
* and this should be clearly mentioned.
* 
* 
* 38. Page 22. Section 3.1.5.4 inhibitPolicyMapping
* 
* The text states:
* 
*    By default the server allows policy mapping as
*    part of certification path validation.
* 
* For simplicity, this should be the reverse. Replace with:
* 
*   "By default the server does not perform policy mapping as
*    part of certification path validation. If the client wants the
*    server to support policy mapping, allowPolicyMapping must be set
*    to TRUE in the request".
* 
* 
* 39. Page 24. Section 3.1.5.8 trustAnchors
* 
* The text states:
* 
*   "A certificate reference can be used to identify the
*    trust anchor by certificate hash and optionally a distinguished
*    name with serial number".
* 
* This is not consistent with the ASN.1 definition of PKCReference which
* is:
* 
*    PKCReference ::= CHOICE {
*      cert                   [0] Certificate,
*      pkcRef                 [1] ESSCertID }
* 
* Please correct.
* 
* 
* 40. Page 25. Section 3.1.6 responseRefHash
* 
* The text states:
* 
*    "By default, the server includes a hash
*    of the request in the response.  If the client wants the server to
*    include the full request in the response, responseRefHash is set to
*    FALSE."
* 
* The server shall always include a hash of the request in the response.
* This is an easy way to allow to test the integrity of the request.
* Since the full description of the validation policy may be much longer
* a flag should be used to say that the full validation policy is not
* returned unless requested. It is thus proposed to have instead the
* following:
* 
* "3.1.6.1 fullRequestInResponse
* 
*    The fullRequestInResponse controls if the client wants the server
*    to include the full request in the response. By default,
*    fullRequestInResponse is set to FALSE. If the client wants back
*    the full request then it must set this parameter to TRUE. The main
*    reason a client would request the server to include the full
request
*    in the response is to archive the request-response exchange in a
*    single object.  That is, the client wants to archive a single
object
*    which includes both request and response".
* 
* 
* 41. Page 26. Section 3.1.6.2 responseValidationPolByRef
* 
* This item should be renamed: fullValPolInResponse
* 
* The text should be changed into:
* 
* "The fullValPolInResponse controls whether the response includes the
* identifier of the validation policy with all the parameters that have
* been used by the server, i.e. all the variable parameters independent
* from the fact that there were specified by the client or defaulted if
* not specified. By default, fullValPolInResponse is set to FALSE. If
the
* client wants the full validation policy to be included, then
* fullValPolInResponse is set to TRUE. The main reason a client would
* request the server to include validation policy to be included by
value
* is to archive the request-response exchange in a single object. That
* is, the client wants to archive the CVResponse and have it include
* every aspect of the validation policy."
* 
* The ResponseFlags should be changed as follows:
* 
*    ResponseFlags ::= SEQUENCE {
*      fullRequestInResponse      BOOLEAN DEFAULT FALSE,
*      fullValPolInResponse       BOOLEAN DEFAULT FALSE,
*      signResponse               BOOLEAN DEFAULT TRUE }
* 
* 
* 42. Page 28. Section 3.1.9 intermediateCerts. Minor.
* 
* Change:
* 
*    The optional intermediateCerts item helps the SCVP server create
*    valid certification paths.
* 
* into:
* 
*    The optional intermediateCerts item may help the SCVP server to
* create
*    valid certification paths.
* 
* 43. Page 29. Section 3.1.11. producedAt
* 
* Last sentence. Change:
* 
*    SCVP server SHOULD support the producedAt values in the request.
* 
* into:
* 
*    SCVP server MAY support the producedAt values in the request.
* 
* Reason: cached responses should not need to be implemented in order to
* be compliant with the specification.
* 
* 
* 44. Page 32. Section 3.5 dhPublicKey
* 
* The text states:
* 
*   "For the server to compute the shared
*    secret, it must lean the public values the client generates,
*    therefore the client MUST include this in the request if it uses
*    this mechanism to integrity protect the request-response pair."
* 
* Replace:
* 
* "to integrity protect the request-response pair"
* 
* with :
* 
* "to authenticate and integrity protect the first response and
* authenticate and integrity protect subsequent request-response pairs".
* 
* 45. Page 32. Section 3.6 SCVP Request Authentication
* 
* The text states:
* 
*   "It is a matter of local policy what validation policy is used by
*    the server when validating requests".
* 
* This sentence could be misinterpreted because the word "validating" is
* being used. Change into:
* 
*    It is a matter of local policy what validation policy is used by
*    the server when authentication requests".
* 
* 
* 46. Page 35. Section 4. Validation Response
* 
*    The CVResponse is defined as follows:
* 
*      CVResponse ::= SEQUENCE {
*        cvResponseVersion         cvResponseVersion        INTEGER,
*        policyID                  INTEGER,
*        producedAt                GeneralizedTime,
*        ....
* 
* On the next page the test states:
* 
*   "The policy ID used by the SCVP server when it processed the
request.
*    See section 6.4 for details."
* 
* In section 6.4 the text states:
* 
* "6.4 defaultPolicyID
* 
*    An integer that uniquely represents the version of the default
*    validation policy as represented by the trustAnchors, ..."
* 
* This is not understandable, over-engineering and very complicated.
* Please delete this item.
* 
* 
* 47. Page 35. Section 4. Validation Response
* 
*    The CVResponse contains:
* 
*        requestRef            [1] RequestReference OPTIONAL,
* 
* Remove "OPTIONAL" since it is very beneficial to mandate this item
* since it allows to make sure that the request has not be modified if
* the response is integrity protected. The computation is fast and easy
* and the hash value does not overload the response.
* 
* 
* 48. Page 38. Section 4.5 respValidationPolicy
* 
* The definition of this item is overcomplicated and not tailored to
* support any kind of validation policy.
* 
* If the client does not specify the validation policy or if the client
* specifies a validation policy which has default parameters, then the
* full description of the validation policy shall be given back.
* 
* If the client specifies a validation policy which has no default
* parameters, then the reference and parameters, if any, of the
* validation policy are in the request.
* 
* The full description of the validation policy shall be given back in
* any case, if the fullValPolInResponse Boolean in ResponseFlags is set.
* 
* respValidationPolicy :: = ValidationPolicy
* 
* 
* 
* 49. Page 41. Section 4.6 requestRef
* 
* As stated earlier, requestRef should be mandatory and always be a hash
* of the request.
* 
* In addition a fullRequest OPTIONAL parameter should be added as an
* optional item for CVResponse.
* 
* The full description of the validation policy shall be given back in
* any case, if the fullRequestInResponse Boolean in ResponseFlags is
set.
* 
* Change the text and the syntax accordingly.
* 
* 
* 50. Page 41. Section 4.6 requestRef
* 
* The text states:
* 
*    "The requestRef item allows the client to associate a response with
*    a request"
* 
* This is wrong. This does not protect against a replay.
* 
* Change with:
* 
* "When the response is authenticated, the requestRef item allows the
* client to make sure that the request was not modified in transit".
* 
* 
* 51. Page 41. Section 4.6 requestRef
* 
* The text states:
* 
* " The requestNonce provides an alternative mechanism for
*    matching requests and responses if the client has selected to
*    include a full response."
* 
* This is wrong. This is not an alternative for matching requests and
* responses.
* 
* Replace with:
* 
*   "The requestNonce allows to protect against replay, even if time
* synchronization is not good between the client and the server".
* 
* 
* 52. Page 42. Section 4.6.1 requestHash
* 
* The text states:
* 
* " The requestNonce provides an alternative mechanism for matching
* requests and responses".
* 
* This is wrong. See above. Delete.
* 
* 
* 53. Page 45. Section 4.10.4 replyChecks
* 
* ReplyCheck is defined as:
* 
*      ReplyCheck ::= SEQUENCE {
*        check                      OBJECT IDENTIFIER,
*        status                     INTEGER }
* 
* It should be defined as:
* 
*      ReplyCheck ::= SEQUENCE {
*        check                      OBJECT IDENTIFIER,
*        status                     INTEGER DEFAULT 0}
* 
* 
* 54. Page 46. Section 4.10.4 replyChecks
* 
* The text states
* 
*    "The status value for public key certification path building to a
*    trusted root along with complete status checking, { id-stc 3 }, can
*    be one of the following:
* 
*        0: Good
*        1: Revoked
*        2: Revocation Offline
*        3: Revocation Unavailable
* 
* It is unclear to understand the benefits that a client can have from
* the difference between "Revocation Offline" and "Revocation
* Unavailable". In addition, these wordings do not match the
explanations
* of what there are.
* 
* A much more important response is missing: suspended. Suspended is a
* variation of revoked, but the client then knows it may attempt another
* try later on.
* 
* It is thus suggested to change it into:
* 
*        0: Good
*        1: Revoked
*        2: Suspended
*        3: Revocation info unavailable"
* 
* 
* 55. Page 46. Section 4.10.4 replyChecks
* 
* 
* The same comment applies for the status value for AC issuer
* certification path.
* 
* 
* 56. Page 48. Section 4.10.6 validationAlg
* For reasons given before, delete validationAlg.
* 
* 
* 57. Page 48. Section 4.10.8 nextUpdate
* 
* If CRLs are used, should this field contain the value of the next
* update field for the smallest value of all the CRLs ? What is the real
* benefit of supporting this element besides added complexity ? It is
* suggested to delete that item.
* 
* 
* 58. Page 49. Section 4.11 responseNonce
* 
* The text states:
* 
* "The responseNonce item contains an identifier to binds the request
* to the response."
* 
* This is incorrect. The nonce is to detect replay.
* 
* Change into:
* 
* "The responseNonce item contains a unique number which allows to
detect
* replay".
* 
* 
* 59. Page 51. Section 5 Server Policy Request
* 
* The text states:
* 
*   "A SCVP client uses the valPolRequest item to request the list of
*    validation policies supported by the SCVP server."
* 
* This is not a correct description of what this request is doing. When
* looking at the ASN.1 it is doing much more. So the question is whether
* two requests should be provided or one. In the later case, it is
* important to advertise correctly what the request is doing.
* 
* 
* 60. Page 52. Section 6 Validation Policy Response
* 
* The ASN.1 of the VPResponse is over-complicated.
* 
* The first three items are overengineering:
* 
*        vpResponseVersion          INTEGER,
*        maxCVResponseVersion       INTEGER,
*        maxVPResponseVersion       INTEGER,
* 
* Further more they are mandatory. Please delete.
* 
* 
* 61. Page 52. Section 6 Validation Policy Response
* 
* The ASN.1 of the VPResponse is over-complicated.
* 
*         defaultPolicyID            INTEGER,
* 
* This item does not make sense. When an OID references a validation
* policy, there is no concept of versioning. Another version will simply
* get another OID (hopefully in the same branch). Please delete.
* 
* 
* 62. Page 52. Section 6 Validation Policy Response
* 
* The ASN.1 of the VPResponse is over-complicated.
* 
*        validationPolices          SEQUENCE OF ValidationPolRef,
*        validationAlgs             SEQUENCE OF OBJECT IDENTIFIER,
* 
* validationAlgs is unnecessary. Please delete.
* 
* validationPolicies (not validationPolices) is the main component. See
* below for a full proposal for restructuring VPResponse.
* 
* 
* 63. Page 52. Section 6 Validation Policy Response
* 
*        authPolicies               SEQUENCE OF AuthPolicy,
*        responseTypes              ResponseTypes,
*        dhPublicKeyInfo            SEQUENCE OF DHPublicKeyInfo,
* 
* are elements which have nothing to do with the list of validation
* policies, and they are mandatory ! Either group them in one OPTIONAL
* item or define another command to get them.
* 
* 
* 64. Page 52. Section 6 Validation Policy Response
* 
*       defaultPolicyValues        ValidationPolValues,
* 
* This is simply the set of parameters which are related to the rfc-3280
* basic validation policy. This set could be used by other validation
* policies. Please delete.
* 
* 
* 65. Page 52. Section 6 Validation Policy Response
* 
* What follows is a sketch for a proposal for VPResponse.
* 
*     VPResponse ::= SEQUENCE {
*        requestNonce               OCTET STRING      OPTIONAL
*        thisUpdate                 GeneralizedTime,
*        nextUpdate                 GeneralizedTime   OPTIONAL,
*        validationPolicies         SEQUENCE OF ValidationPolicy,
*        serverParams               ServerParams      OPTIONAL }
* 
* 
*     ServerParams ::= SEQUENCE {
*        responseTypes              ResponseTypes,
*        authPolicies           [0] SEQUENCE OF AuthPolicy
OPTIONAL,
*        dhPublicKeyInfo        [1] SEQUENCE OF DHPublicKeyInfo
OPTIONAL,
*        clockSkew              [2] INTEGER OPTIONAL }
* 
* Note: it is re-called that ValidationPolicy should be redefined as:
* 
* ValidationPolicy ::= CHOICE {
*      valPolByOID         [0] ValPolByOID,
*      valPolByURI         [1] ValPolByURI }
* 
* ValPolByOID  ::= SEQUENCE {
*        valPolgId             OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY valPolId OPTIONAL }
* 
* ValPolByURI ::= SEQUENCE {
*      uri            IA5String,
*      hashAlgo       OBJECT IDENTIFIER,
*      hashValue      OCTET STRING}
* 
* 
* 
* 66. Page 56. Section 7 SCVP Server Relay
* 
* This section is incomplete and lacking explanations. Please explain
how
* relaying is achieved.
* 
* 
* 67. Page 65. Section 9 Security Considerations
* 
* In the second paragraph, there is a discussion about the use of URIs
to
* reference validation policies.
* 
* Firstly, if URIs are going to stay, a pointer to the security
* consideration section should be present in the main body of the
* document.
* 
* Secondly, the text should mention the need for the ability to
* dereference the URI and the need to compute a hash, while the main
body
* of the document should explain the computation of a hash on the
content
* of the URI.
* 
* 
* 68. Page 65. Section 9 Security Considerations
* 
* The text states:
* 
*   "It can also do this by using the Diffie-hellman keys to sign the
* request".
* 
* Replace "sign" by "authenticate".
* 
* END OF COMMENTS
* 
* 

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Tue, 7 Dec 2004 12:06:18 -0800
From: "Trevor Freeman" <[email-masked]>
To: <[email-masked]>, <[email-masked]>
Sender: [email-masked]

Hi Dan,
Thanks for the feedback. Answers below.
Thanks
Trevor

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Dan Proietti
* Sent: Monday, December 06, 2004 11:08 AM
* To: [email-masked]
* Subject: RE: SCVP 16 comments deadline
* 
* 
* Hi, Trevor.  I have a few comments re: default validation policy.
* 
* a) Section 1.3 states, "The default policy can be requested for
* validation and the client can override any default value in the
* request if required.  The default values are also used when processing
* requests which reference a validation policy other than the default
* one that does not contain the full set of parameters necessary for
* validation and the client has also omitted the missing values in the
* request." Section 6.14 is also quite clear about this.  However, in
* section 3.1.4, the field descriptions for the ValidationPolicy type
* imply that a fixed default is used when an OPTIONAL item is not
* included.  For instance the description for userPolicySet (section
* 3.1.5.3) states, "If userPolicySet is not specified, then any-policy
* MUST be used."  If section 1.3 still holds, the correct description
* should be something like, "If userPolicySet is not specified, then the
* value from the default validation policy will be used."  Same goes for
* the other ValidationPolicy field descriptions: inhibitPolicyMapping,
* requireExplicitPolicy, inhibitAnyPolicy, isCA, keyUsages,
* extendedKeyUsages.  If this is indeed the intent.

[TF] The conflict with default policy and user policy set has been
recognized and the requirement around any-policy in 3.1.5.3 has been
removed. Are there any other specifics in the section you reference
where you feel there is a conflict? I have reread those sections and
don't see any other clauses which appear to contradict the default
policy.

* 
* b) Section 3.1.5.1 is titled "Default Validation Algorithm" but
* discusses the default validation policy.

[TF] This should have read algorithm not policy and is now fixed.

  This is very confusing.  I
* presume this should be titled "Default Validation Policy" and be
* re-located to a sub-section of the validationPolRef description
* (3.1.4.1)?
* 
* c) Section 3.1.5.2.1 (Basic Validation Algorithm) defines the "meaning
* of the default validation algorithm".  This is extremely confusing as
* this is the first time this term is mentioned.  I presume "algorithm"
* should be changed to "policy" and the remainder of this sub-section
* should be merged into the "Default Validation Policy" section?

[TF] The basic validation algorithm is an algorithm not a policy in that
it defines how the parameters are compared not their values. 

* 
* d) Related to c) above, the second bullet states, "The acceptable
* policy set will come from the userPolicySet item.  If no certificate
* policies are specified in the userPolicySet item, then the SCVP server
* will use any-policy."  What if the server has defined the default

[TF] The clause in 3.1.5.3 around use of any-policy has been removed.

* validation policy with a userPolicySet of {1.2.3.4} and the client
* requests the default validation policy and does not specify a
* userPolicySet override?  Does the server use {1.2.3.4} or
* {any-policy}?  Or is it invalid for a server to define a default
* validation policy with a userPolicySet other than {any-policy}?
* 
* Personally, I think the specification needs to be more concise re:
* constructing the actual validation policy based on a) the referenced
* policy, b) the explicit overrides, and c) the default policy
fallbacks.
* An
* example with a hypothetical agreed upon validation policy would do it.

[TF] OK I will add an example of how this works to 17.

* 
* Thanks for your time,
* Dan Proietti
* 
* 
* 
* 
* On Thu, 2 Dec 2004 12:22:31 -0800, Trevor Freeman
* <[email-masked]> wrote:
* >
* >
* >
* > The deadline communicated at the DC meeting for making comments on
SCVP
* 16
* > was Nov 30th which has now passed. I have had only three people send
me
* > comments to date. SCVP 17 will be closing very shortly so this is
the
* last
* > reminder.

Date: Tue, 07 Dec 2004 17:52:41 +0000
From: "David Chadwick" <[email-masked]>
Organization: University of Salford
To: PKIX <[email-masked]>
Subject: Attribute Certificate Tool
Sender: [email-masked]

Dear All

we have just released our latest X.509 PMI tool, the Attribute 
Certificate Manager. It can be downloaded from

http://sec.isi.salford.ac.uk/permis/private/wip.html#ACM

Note that you will have to register to get a un and pw first, but the 
tool is free to use for research and educational purposes.

This first version creates X.509 standard ACs, and will store them (add 
them) in your local filestore or an LDAP directory. It can also retrieve 
sample ACs from our publicly available LDAP server. Note that version 1 
does not support revocation of ACs. This will be added to version 2.

All comments about its usefulness, wrinkles or other bugs will be gladly 
received, as well as requests for other features that you might like to 
see added.

regards

David

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

From: Francis Dupont <[email-masked]>
To: Peter Sylvester <[email-masked]>
cc: [email-masked], [email-masked]
Subject: Re: SCVP 16 comments deadline 
Date: Tue, 07 Dec 2004 15:17:20 +0100
Sender: [email-masked]

I take benefit of this message of my friend Peter to apologize...
I have many comments but I haven't able to send them before the deadline
because of network problems and overloaded phased. I expect to send 
them before the next week.

Regards

[email-masked]

Date: Tue, 7 Dec 2004 13:14:46 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked]
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

To have an independant issue:

4.8 requestorName 
   
  The optional requestorName item is used by the server with signed 
  requests to return the identity of the client in the response.  
  Mechanisms for matching this identifier with the authenticated 
  identity are a matter of local server policy. 
   
  In the case of non-cached responses to signed requests, the SCVP 
  server MUST return a requestor name.  A server SHOULD copy the 
  selected identifier from a certificate or other credential used to 
  authenticate the request.  A SCVP server MAY use a client 
  identifier from an out-of-band mechanism or omit the identifier 
  from the response. 
   
  In the case of cached responses to signed requests, the 
  RequestorName MAY be present in the response. 
   
  SCVP server that supports signed requests MUST support this item.

This chapter is new and pretty uncomprehensible:

"matching" is IMO an action where you have two inputs, I don't see
where the identifier comes from, or when it is extracted from
some authenticated information, why there is a "matching" at all. 
"The identity" of the client is not defined anywhere in the document.

The 3379 text says:

   When the DPV request is authenticated, the client SHOULD be able to
   include a client identifier in the request for the DPV server to copy
   into the response.  Mechanisms for matching this identifier with the
   authenticated identity depends on local DPV server conditions and/or
   the validation policy.  

The client has no way to declare its identity in the protocol, 
and there no provision of what this could be from what it would
be derived from (IP address, DNS name of the host, ...), ...

Why is this restricted to signed requests, and not to 'authenticated'?

As already said in another may, this text could make sense if there
would be a corresponding requestorName in the request. 

Date: Tue, 7 Dec 2004 13:14:38 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked]
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

We have

  Query ::= SEQUENCE { 
   queriedCerts               SEQUENCE SIZE (1..MAX) OF CertReference, 

   ...
   validationPolicy           ValidationPolicy, 

with 
  ValidationPolicy ::= SEQUENCE { 
    ...
    validationAlg         [0] ValidationAlg OPTIONAL, 

3.1.5 validationAlg 
   
  The validationAlg item, defines the validation algorithm to be used 
  by the SCVP server during certificate validation.  The value of 
  this item can be determined by agreement between the client and the 
  server, and is represented as an object identifier.  The server 
  might want to assign additional object identifiers that indicate 
  that some settings are used in addition to others given in the 
  request.  In this way, the validation algorithm object identifier 
  can be a shorthand for some SCVP options, but not others. 
   
  The validationAlg item uses the ValidationAlg type, which has the 
  following syntax: 
   
    ValidationAlg ::= SEQUENCE { 
      valAlgId              OBJECT IDENTIFIER, 
      parameters            ANY DEFINED BY valAlgId OPTIONAL } 

and also

3.1.5.2 validationAlg 
   
  The optional validationAlg item defines the validation algorithm to 
  be used by the SCVP server during certificate validation.  The 
  value of this item can be determined by agreement between the 
  client and the server, and the validation algorithm is represented 
  by an object identifier. 
   
   The syntax of the validationAlg is: 
   
    ValidationAlg ::= SEQUENCE { 
      valAlgId              OBJECT IDENTIFIER, 
      parameters            ANY DEFINED BY valAlgId OPTIONAL } 
   
  The following section specifies the basic validation algorithm and 
  the name validation algorithm.  SCVP clients and servers MUST 
  support both validation algorithms defined in this section.  Other 
  validation algorithms can be specified in other documents for use 
  with specific applications.  SCVP clients and servers MAY support 
  any such validation algorithms.  

---------------

3.1.5.2.3 Name Validation Algorithm 
   
  The name validation algorithm allows the client to supply an 
  application identifier and a name to the server.  The application 
  identifier defines the name matching rules to use in comparing the 
  name supplied in the request with the names in the certificate. 

There may be more than one certificate in the request. 

    NameValidationAlgParms ::= SEQUENCE { 
      keyPurposeId      KeyPurposeId, 
      validationNames   GeneralNames } 

What is the relation between the KeyPurposeId and the extendeddkeyusage
3.1.5.10 extendedKeyUsages 

  If the keyPurposeID supplied in the request is id-kp-mailProtection 
  [PKIX-1], then GeneralNames supplied in the request MUST be a 
  rfc822Name, and the matching rules are defined in [SMIME-CERT]. 

'an rfc822Name".

what is the meaning of this if I have more than one email certificate,
i.e. I want to validate all encryption certs before using them. 

Does this means that the validate Algorithm is cert specific and not
request specific? 

Date: Tue, 7 Dec 2004 13:14:42 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked]
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

There are several boolean values like

  ValidationPolicy ::= SEQUENCE { 
    ...
    inhibitPolicyMapping  [2] BOOLEAN OPTIONAL, 

and a policy definition. 

  ValidationPolValues ::=SEQUENCE  { 
    ...
    inhibitPolMap            BOOLEAN, 

- It would be nice to use the same field names.

- I suggest BOOLEAN DEFAULT FALSE for the inhibitPolMap together
  with some apppropriate tagging, it doesn't make much sense to
  me to code useless values. 

Would it be possible to add some statement about the intended
meaning of the 6 possible combination:

inhibitPolMap = FALSE 

inhibitPolicyMapping absent  1
                     FALSE   2
                     TRUE    3

inhibitPolMap = TRUE 

inhibitPolicyMapping absent  4
                     FALSE   5
                     TRUE    6

Does it mean that when the client value takes preceedence over the
server value? 

1 = FALSE
2 = FALSE
3 = TRUE
4 = TRUE
5 = FALSE
6 = TRUE

It had been said some time ago (as far as I remember) that these
inputs are not global ones but in principle for each of the
certs to be asked for. what was the conclusion why they stay global
for all certs? 

Date: Mon, 06 Dec 2004 15:44:48 -0800
To: "Jong-Hyuk" <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Cc: "David Chadwick" <[email-masked]>, <[email-masked]>
Sender: [email-masked]

At 01:10 PM 12/6/2004, Jong-Hyuk wrote:
>> This is a neat idea. Are you using the schema we have defined for this
>> attribute aliasing, or have you defined your own? If you are using the
>> schema we have defined in the 3 PKIX IDs, then this would be another
>> good reason for publishing the IDs as Informational. If you have defined
>> your own schema, then it will need to be published widely so that
>> clients that dont support extensible matching (the majority of them)
>> will know which attribute types to use. But I dont think it would be
>> helpful to define a different set of attributes to refer to the same set
>> of X.509 attribute components.
>
>The aliasing feature of OpenLDAP is provided as a mechanism which can work
>out the compatibility issue for the legacy / inflexible clients. However, it
>should not be considered as a mechanism which may potentially encourage the
>use of non-standard schema and access method. We instead need to consider
>the definition of the standardized schema for attribute / matching rule
>aliases in Component Matching.

It should also be noted that as an value extraction compatibility
mechanism, it is not 100% compatible with the value extraction
approach.  For instance, when the client uses a complex value
extraction filter and the entity has multiple certificates.

Kurt 

Date: Mon, 06 Dec 2004 14:16:49 -0800
To: [email-masked]
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: draft-ietf-pkix-ldap-* review notes
Sender: [email-masked]

Due to the size of my raw review notes, I've placed them
on the web for independent download:
  http://www.openldap.org/ietf/pkix/comments-ietf-pkix-ldap-pkc-schema-01.txt
  http://www.openldap.org/ietf/pkix/comments-ietf-pkix-ldap-ac-schema-02.txt
  http://www.openldap.org/ietf/pkix/comments-ietf-pkix-ldap-crl-schema-03.txt

Regards, Kurt

From: "Jong-Hyuk" <[email-masked]>
To: "David Chadwick" <[email-masked]>
Cc: <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Date: Mon, 6 Dec 2004 16:10:53 -0500
Sender: [email-masked]

> This is a neat idea. Are you using the schema we have defined for this
> attribute aliasing, or have you defined your own? If you are using the
> schema we have defined in the 3 PKIX IDs, then this would be another
> good reason for publishing the IDs as Informational. If you have defined
> your own schema, then it will need to be published widely so that
> clients that dont support extensible matching (the majority of them)
> will know which attribute types to use. But I dont think it would be
> helpful to define a different set of attributes to refer to the same set
> of X.509 attribute components.

The aliasing feature of OpenLDAP is provided as a mechanism which can work
out the compatibility issue for the legacy / inflexible clients. However, it
should not be considered as a mechanism which may potentially encourage the
use of non-standard schema and access method. We instead need to consider
the definition of the standardized schema for attribute / matching rule
aliases in Component Matching.
- Jong-Hyuk

--------------
Jong Hyuk Choi
IBM Thomas J. Watson Research Center - Enterprise Linux Group
P.O. Box 218, Yorktown Heights, NY 10598
[email-masked]

Date: Mon, 6 Dec 2004 14:08:04 -0500
From: Dan Proietti <[email-masked]>
Reply-To: [email-masked]
To: [email-masked]
Subject: RE: SCVP 16 comments deadline
Sender: [email-masked]

Hi, Trevor.  I have a few comments re: default validation policy.

a) Section 1.3 states, "The default policy can be requested for
validation and the client can override any default value in the
request if required.  The default values are also used when processing
requests which reference a validation policy other than the default
one that does not contain the full set of parameters necessary for
validation and the client has also omitted the missing values in the
request." Section 6.14 is also quite clear about this.  However, in
section 3.1.4, the field descriptions for the ValidationPolicy type
imply that a fixed default is used when an OPTIONAL item is not
included.  For instance the description for userPolicySet (section
3.1.5.3) states, "If userPolicySet is not specified, then any-policy
MUST be used."  If section 1.3 still holds, the correct description
should be something like, "If userPolicySet is not specified, then the
value from the default validation policy will be used."  Same goes for
the other ValidationPolicy field descriptions: inhibitPolicyMapping,
requireExplicitPolicy, inhibitAnyPolicy, isCA, keyUsages,
extendedKeyUsages.  If this is indeed the intent.

b) Section 3.1.5.1 is titled "Default Validation Algorithm" but
discusses the default validation policy.  This is very confusing.  I
presume this should be titled "Default Validation Policy" and be
re-located to a sub-section of the validationPolRef description
(3.1.4.1)?

c) Section 3.1.5.2.1 (Basic Validation Algorithm) defines the "meaning
of the default validation algorithm".  This is extremely confusing as
this is the first time this term is mentioned.  I presume "algorithm"
should be changed to "policy" and the remainder of this sub-section
should be merged into the "Default Validation Policy" section?

d) Related to c) above, the second bullet states, "The acceptable
policy set will come from the userPolicySet item.  If no certificate
policies are specified in the userPolicySet item, then the SCVP server
will use any-policy."  What if the server has defined the default
validation policy with a userPolicySet of {1.2.3.4} and the client
requests the default validation policy and does not specify a
userPolicySet override?  Does the server use {1.2.3.4} or
{any-policy}?  Or is it invalid for a server to define a default
validation policy with a userPolicySet other than {any-policy}?

Personally, I think the specification needs to be more concise re:
constructing the actual validation policy based on a) the referenced
policy, b) the explicit overrides, and c) the default policy fallbacks.  An
example with a hypothetical agreed upon validation policy would do it.

Thanks for your time,
Dan Proietti

On Thu, 2 Dec 2004 12:22:31 -0800, Trevor Freeman
<[email-masked]> wrote:
>
>
>
> The deadline communicated at the DC meeting for making comments on SCVP 16
> was Nov 30th which has now passed. I have had only three people send me
> comments to date. SCVP 17 will be closing very shortly so this is the last
> reminder.

Date: Mon, 6 Dec 2004 19:27:18 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: RE: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

> 
> Hi Peter,
> The announcement was made and documented in the SCVP 16 slides. If you
> have any comments on the distribution of the minutes and slides, I
> suggest you take that up with the chairs.

No, there are no slides available. (see below XX) 

> * 
> * The minutes had not been challenged by Trevor.
> * 

You have made a statement about what you might or might not have
presented in the meeting, and you are discriminating people that
were present in the meeting from those who only read the mailing list.

I request you to present your excuses for ignoring mailing list participants
not having the microsoft travel budget possibilities. 

It is not up to other mailing list participants to guess, and you
were certainly able to detect whether the slides were made available
since, and furthermore, if you would really believe that this is
important, you could have announced the date by yourself (unless
you don't want to interfere with the chairmen's work, which you did
by announcing the end of the deadline.

XX: Besides that, I agree with you that not distributing the slides and
refering to them in minutes is not exactly professional work.

I have started some comments. 

Peter

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Mon, 6 Dec 2004 10:09:39 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Peter Sylvester" <[email-masked]>, <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Peter,
The announcement was made and documented in the SCVP 16 slides. If you
have any comments on the distribution of the minutes and slides, I
suggest you take that up with the chairs.
If you have comments on SCVP 16 can you please submit them ASAP as Denis
did.
Thanks
Trevor

* -----Original Message-----
* From: Peter Sylvester [mailto:[email-masked]]
* Sent: Monday, December 06, 2004 3:39 AM
* To: Trevor Freeman; [email-masked]
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* Denis and Trevor, >
* > Trevor,
* >
* > > The deadline communicated at the DC meeting for making comments on
* SCVP
* > > 16 was Nov 30th which has now passed. I have had only three people
* send
* > > me comments to date. SCVP 17 will be closing very shortly so this
is
* the
* > > last reminder.
* >
* > Thank for the remainder. I missed the initial announcement.
* What announcement?
* what I can read here is:
* 
* The minutes say (17 nov)
* 
* > SCVP (version 16) - Trevor Freeman (Microsoft)
* 	Lots of changes have been made from v15; many were editorial
* > but also many substantive changes and some new features. Another rev
* > of the document will be needed. We need to ensure that the ASN.1 is
* > correct, once we agree on the functionality, and so we will compile
* > it to verify. Presentation reviewed changes and new features
* > (relative to v15). See slides for additional details.
* 
* The minutes had not been challenged by Trevor.
* 
* I cannot see any announcement on the list about that date. There
* are "no presentation files and no minutes' available in the IETF
* server.
* 
* According to my understanding of how IETF working groups
* function, an announement during a meeting is non-existant
* if not reflected in the mailing list message.
* 
* (It may be that someone filters the content of the imc server for me).
* 
* Peter

Date: Mon, 6 Dec 2004 19:09:13 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked]
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

I am quite pleased that about the addition
of requestorName in the responsea and that 
the convention of  consecutive null terminated
strings in a requestorRef have been replaced,

But: 

The syntax is GeneralNames. how many ids is the server intended
to extract from a certificate? The subject + all alternate ids?

Why not having this id declared by the client, and the authentication
methods matches against it. ==> Add a corresponding field in the request.
Which is required: 

   When the DPV request is authenticated, the client SHOULD be able to
   include a client identifier in the request for the DPV server to copy
   into the response.  Mechanisms for matching this identifier with the
   authenticated identity depends on local DPV server conditions and/or
   the validation policy.  The DPV server MAY choose to blindly copy the
   identifier, omit the identifier, or return an error response.

It is an identifer identifying the client and not the request. 

The new text replacing "requestor" in chapter 7 by "requestorRef".

> however, 
>  all of the octets MUST have values other than zero. 
Why? I would find it quite useful to add a 
hash of something local, if at all, the hash of its IP address for example
(for which I can use the Nonce as well).  

  The requestRef item allows the client to associate a response with 
  a request.  The requestNonce provides an alternative mechanism ..

  and you have also the requestorRef. 

The concept of trying to make loop control with values which are explicitely 
defined as not globally unique sounds strange to me.

 "The requestorRef item is also needed 
  to prevent looping in some configurations" 

 "No provisions are 
  made to ensure uniqueness of the requestorRef octet string"

The usefulness of "requestorRef" as an identifier for the request
is pretty weak, since you can have a nonce if it is for each
request. use GeneralName(s) in a requestorName sequence as for the
response. 

page 34:

  The requestorRef and the responder items MUST be included if the request included a 
  requestor item. 

what does this mean? what is the relationship between a requesterRef and responder?  

If I'd be interested in anything identifying the response, then it is
a sequence of identifiers of the servers that have partipated, and some
local ids or "serial number' like thing if I want to go to that server and
asks 'did you really tell this to my friend'.  

Chapter 7: Denis is right that the spec does not describe how relaying is
performed, i.e. how a response is created from a response received from another
server by a 'proxy'. 

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 comments deadline
Date: Mon, 6 Dec 2004 10:06:12 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Denis Pinkas" <[email-masked]>
Cc: <[email-masked]>
Sender: [email-masked]

Hi Denis,
Thanks for these comments. I will replay in detail shortly.
Trevor

* -----Original Message-----
* From: Denis Pinkas [mailto:[email-masked]]
* Sent: Monday, December 06, 2004 2:25 AM
* To: Trevor Freeman
* Cc: [email-masked]
* Subject: Re: SCVP 16 comments deadline
* 
* Trevor,
* 
* > The deadline communicated at the DC meeting for making comments on
SCVP
* > 16 was Nov 30th which has now passed. I have had only three people
send
* > me comments to date. SCVP 17 will be closing very shortly so this is
the
* > last reminder.
* 
* Thank for the remainder. I missed the initial announcement.
* My comments are below.
* 
* 
* 1. Typo. There are two IPR statements related to RFC 3668 on the first
* page. Delete one.
* 
* " By submitting this Internet-Draft, I certify that any applicable
*    patent or other IPR claims of which I am aware have been disclosed,
*    or will be disclosed, and any of which I become aware will be
*    disclosed, in accordance with RFC 3668".
* 
* 
* 2. Page 11. Typos. First paragraph on top of the page.
* Replace "signers" by "signer's".
* 
* 
* 3. Page 11. Typo. First paragraph on top of the page. Last sentence.
* Replace "certificate" by "certificates".
* 
* 
* 4. Page 13. Typo. Section 3.1.2 "checks"
* The two following lines are in fact one line:
* 
* Change:
* 
*      - Build a validated certification path to a trust anchor; and
* 
*      - Do revocation status checks on the certification path.
* 
* into:
* 
*      - Build a validated certification path to a trust anchor and
*        do revocation status checks on the certification path.
* 
* 
* 5. Page 15. Typo. Section 3.1.4 validationPolicy
* 
* This is the error left intentionally by the editor to know who read
the
* document. The following sentence is duplicated: " The validationPolicy
* item, defines the validation policy". Please delete one sentence.
* 
* 
* 6. Page 24. Typo. Section 3.1.5.9 keyUsages
* 
* Change "keyUasge" into "keyUsage".
* 
* 
* 7. Page 27. Typo. Section 3.1.8 valididationTime
* Last line of the first paragraph. Change "servers" into "server's"
* 
* 
* 8. Page 32. Typo. Section 3.5 dhPublicKey
* Change: Diffie-Hellamn into Diffie-Hellman.
* 
* 
* 9. Page 32. Typo. Section 3.5 dhPublicKey
* Fifth line. Change "an does" into "and does"
* 
* 
* 10. Page 32. Typo. Section 3.5 dhPublicKey
* Delete: (see section Error! Reference source not found.)
* 
* 
* 11. Page 33. Typo. Section 4. Validation Response
* 
* After the eight items. The following sentence has a grammar problem:
*   "Successful responses are be made when the server has fully complied
*    with the request".
* 
* 
* 12. Page 52. Typo. Section 6 Validation Policy Response
* 
* The second sentence is incorrect. It is:
* The valPolResponse MAY not unique to any valPolRequest, ..."
* 
* Change into:
* "The valPolResponse MAY not be unique to any valPolRequest, ..."
* 
* 
* 13. The abstract does not reflect accurately the content of the
* document.
* "certificate handling" is too vague.
* 
* Proposed abstract:
* 
*    SCVP allows a client to delegate certificate path construction and
*    certificate path validation to a server. The path construction or
*    validation (i.e. making sure that none of the certificates of the
*    path is revoked) is made according to a validation policy which
*    contains one or more trust anchors. It allows to simplify client
*    implementations and to use a set of predefined validation policies.
* 
* 
* 14. Section 1.3
* 
* The text on validation policy is new. There is no concept of "mutually
* agreed" validation policy between the client on the server. The server
* supports a set of validation policies which may or may not fit the
need
* of the client.
* 
* Change the second sentence of section 1.3 which is:
* 
* " In SCVP, a validation policy can be either mutually
*    agreed between client and server, and subsequently referenced in
*    request, or explicitly expressed in the request by passing all of
*    the necessary parameters."
* 
* into:
* 
* " In SCVP, the validation policy to be used by the server can be
either
* fully referenced in the request by the client (and thus no additional
* parameter is necessary), referenced in the request by the client with
* additional parameters or supported by default by the server if the
* client does not reference it."
* 
* 
* 15. Section 1.3. The second paragraph needs to be reworded. Currently,
* it is the following:
* 
* " Policy definitions can be quite long and complex, and some policies
*    may allow for the setting of a few parameters such as a set of
*    trust anchors.  The request can therefore be simplified if these
*    previously agreed policy dependent parameters are referenced in the
*    request by a mutually agreed OBJECT IDENTIFIER (OID) or URL value.
*    The referenced value indicates either a partial or full set of
*    parameters. The client can therefore omit these agreed parameters
*    from the request, only passing any parameters which are not
*    specified by the previously agreed policy.  Therefore in the
*    simplest form, with validation polices which define every parameter
*    necessary, a SCVP request need only contain the certificate to be
*    validated, the validation policy and any run-time parameters for
*    the request".
* 
* Proposed rewording:
* 
* " Policy definitions can be quite long and complex, and some policies
*    may allow for the setting of a few parameters.  The request can
*    therefore be very simple if OBJECT IDENTIFIERS (OIDs) are used to
*    specify both the algorithm to be used and all the associated
*    parameters of the validation policy. The request can be more
complex
*    if the validation policy fixes many of the parameters but allows
the
*    client to specify some of them. When the validation policy defines
*    every parameter necessary, a SCVP request needs only to contain the
*    certificate to be validated, the referenced validation policy and
any
*    run-time parameters for the request. In its simplest form, a SCVP
*    request contains the certificate to be validated and any run-time
*    parameters for the request. In that case the server uses a default
*    validation policy".
* 
* 
* 16. Section 1.3. Paragraph 3.
* 
* The text is missing the fact that at least one validation policy must
* be supported by the server. This is the default policy which is used
* when the client omits to specify it.
* 
* The current text is the following:
* 
*   "SCVP server also publishes its default validation policy settings.
*    The default policy can be requested for validation and the client
*    can override any default value in the request if required.  The
*    default values are also used when processing requests which
*    reference a validation policy other than the default one that does
*    not contain the full set of parameters necessary for validation and
*    the client has also omitted the missing values in the request.
* 
*    Therefore a client can also simplify the request by omitting a
*    parameter from a request if the default value published by the
*    server is acceptable".
* 
* Replace it with:
* 
* " A SCVP server must support a default validation policy which will
*    be used if the client does not specify any in its request. A server
*    publishes the references of the validation policies it supports.
*    When these policies have parameters that may be overridden, the
*    default value for these parameters are communicated by the server
as
*    well. The client can simplify the request by omitting a parameter
*    from a request if the default value published by the server for a
*    given validation policy reference is acceptable. However if there
is
*    a desire to demonstrate to someone else that a specific validation
*    policy with all its parameters has been used, it will need to ask
the
*    server for the inclusion of the full validation policy with all the
*    parameters in the response".
* 
* 
* 17. On top of page 7, the relationship between the validation policy
* and the basic certification path algorithm is not explained. Then in
* section 1.4 The concept of validation algorithm is introduced but its
* relationship with the validation policy is not explained. This is
* confusing.
* 
* Later on when observing the ASN.1 syntax it may be discovered that two
* OIDs are being used:
* 
*   - one for the validation policy (ValidationPolRef) and
*   - one for the validation algorithm (ValidationAlg).
* 
* This is overcomplicated and unnecessary.
* 
* An important simplification is obtained if, as the previous text
* states, there is an OID to defined the validation policy and there may
* be or may not be additional parameters.
* 
* We could then have:
* 
* valPolByOID::= SEQUENCE {
*        valPolId              OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY ValPolId OPTIONAL }
* 
* Specifying a path processing compliant with section 6.1 of RFC 3280
* would be possible (notice however that the text from RFC 3280 is too
* vague to support the case where a CRL is not signed by the CA).
* 
* It would be desirable to be able to communicate easily and in a
* standard way the parameters that may be set in section 6.1 from RFC
* 3280. In addition, key usage should be added to that list.
* 
* The document should then define a bundle of all these previous useful
* parameters and allow for the addition of other parameters.
* 
* It is thus proposed to define an OID for a validation policy compliant
* with section 6.1 of RFC 3280 (some differences with section 6 from
* 3280bis, i.e. adding precision, may be expected)
* 
* It is thus proposed to modify the text starting from :
* 
* " The inputs to the basic certification path processing algorithm
*    used by SCVP are defined by [PKIX-1] in section 6.1.1 and comprise"
*    up to the end of section 1.3 with the following:
* 
* "For clients able to specify the parameters of a validation policy, it
* may be useful to define a standard data structure (using a bundle)
able
* to support the parameters of the basic certification path processing
* algorithm defined by in section 6.1.1 from [PKIX-1] :
* 
*   - a set of Trust Anchors (by value or by reference),
*   - the initial Certificate Policy set,
*   - initial Certificate Policy mapping setting,
*   - initial any-Policy setting,
*   - initial explicit Certificate Policy setting.
* 
* as well as :
* 
*    - the usage of the key contained in the certificate (e.g., key
*      encipherment, key agreement, signature)
* 
* This will be done using a bundle which encapsulates all these
* parameters.
* 
* Other application-specific purposes parameters may be added".
* 
* 
* 18. Section 1.4 is about a "Validation Algorithm". Given what was said
* before, the header of this section should be changed. If we make a
* subsection 1.3.1 called "1.3.1. General" for encapsulating the
previous
* text, then we can introduce a new section 1.3.2 called:
* 
* "1.3.2. Validation policy according to section 6.1 of RFC 3280"
* 
* Some of the text present in the current section 1.4 has been used to
* build the new text that is proposed below:
* 
* "1.3.2. Validation policy according to section 6.1 of RFC 3280
* 
*    SCVP defines a specific validation policy which implements the
*    certification path validation algorithm as defined in section 6.1
of
*    [PKIX-1]. This specific validation policy, called "rfc-3280 basic
*    validation policy" uses the parameters defined in the bundle
*    mentioned above.
* 
*    Note that this algorithm does not support in its full generality
the
*    algorithm described in section 6.2 of [PKIX-1] since, when more
than
*    one trust anchor is being defined, all the conditions that are
*    specified apply to all trust anchors, whereas section 6.2 allows to
*    have different conditions for every trust anchor.
* 
*    The rfc-3280 basic validation policy may be the default validation
*    policy supported by the server, but does not need to".
* 
* 
* 19. Section 2 "Protocol Overview"
* 
* In order to allow for interoperability and testing a common protocol
* needs to be supported. It should be defined.
* 
* 
* 20. Section 3 "Validation Request"
* 
* The unsigned request form is not explained and there is a confusion
for
* the signed request which indeed authenticates the client and is thus
* not anonymous. The current text is :
* 
*    "A signed
*    request is used to authenticate the client to the server or to
*    provide an anonymous client integrity over the request-response
*    pair."
* 
* It should be rephrased as:
* 
*    "An unsigned request provides an anonymous client integrity over
*     the request since the hash of the request or the full request is
*     incorporated in the response. A signed request is used to
*     authenticate the client to the server".
* 
* 
* 21. Page 13. Section 3.1.2 "checks"
* 
* The following sentence adds nothing and should be removed:
* 
*    "A server may still choose to
*    perform revocation status checks when performing path construction,
*    although this information cannot be returned to the client."
* 
* 
* 22. Page 15. Section 3.1.3 "wantBack"
* 
* The text states:
* 
*      - Proof of revocation status for each certificate in the AC
*         issuer certification path;
* 
* It would be important to refer the section of the RFC which explains
* how to
* check the "revocation status for each certificate in the AC issuer
* certification path".
* 
* 
* 23. Page 15. Section 3.1.3 "wantBack"
* 
* The text states:
* 
*    The client can also request a non-cached response to the request by
*    including wantback id-swb-non-cached-resp in the request.
* 
* The default behavior should be the reverse: fresh information is
* provided, unless the client accept cached information. The item should
* be changed into:
* id-swb-cached-resp
* 
* 
* 24. Page 15. Section 3.1.3 "wantBack"
* 
* The text states:
* 
* id-swb-pkc-all-valid-cert-paths OBJECT IDENTIFIER ::= { id-swb 13}
* 
* It should be mentioned that this item is only possible for DPD.
* 
* 
* 25. Page 16. Section 3.1.4 validationPolicy
* 
* The following sentence is talking of an agreement whereas such
* agreement does not exist. Delete the sentence:
* 
*   "The client and server can optionally agree on a set of parameters
*    which may fully or partially define a validation policy".
* 
* 
* 26. Page 16. Section 3.1.4 validationPolicy
* The text states:
* 
*    "If a partial set of parameters has been agreed upon,
*    then the client supplies a reference to the policy plus whatever
*    parameters are necessary to complete the request in this item.
* 
* This should be replaced with:
* 
*    "If the validation policy does not define all parameters necessary
*    for processing an SCVP request, then the client need to supply
these
*    parameters".
* 
* 27. Page 16. Section 3.1.4 validationPolicy
* 
*    The syntax of the validationPolicy item is defined as:
* 
*    ValidationPolicy ::= SEQUENCE {
*      validationPolRef          ValidationPolRef,
*      validationAlg         [0] ValidationAlg OPTIONAL,
*      userPolicySet         [1] SEQUENCE SIZE (1..MAX) OF OBJECT
*                                  IDENTIFIER OPTIONAL,
*      inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
*      requireExplicitPolicy [3] BOOLEAN OPTIONAL,
*      inhibitAnyPolicy      [4] BOOLEAN OPTIONAL,
*      isCA                  [5] BOOLEAN OPTIONAL,
*      trustAnchors          [6] TrustAnchors OPTIONAL,
*      keyUsages             [7] SEQUENCE SIZE (1..MAX) OF KeyUsage
*                                   OPTIONAL,
*      extendedKeyUsages     [8] ExtKeyUsageSyntax OPTIONAL}
* 
* 
* This structure is quite odd, because it only allows to pass additional
* parameters as parameters of the validationAlg. Suppressing the
* validationAlg item add adding validationParamExtensions would be a
* simpler and cleaner way.
* 
* Each validation policies uses its own parameters.
* We should have something like :
* 
* ValPolByOID  ::= SEQUENCE {
*        valPolgId             OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY valPolId OPTIONAL }
* 
* More details follow.
* 
* 
* 28. It is highly debatable if URIs should be supported or not to
* reference a validation policy. URIs are not stable over time and thus
* unless there are dereferenced and a hash value is computed over them,
* it is insecure to use them. There is a discussion in the security
* consideration section, but no warning and no pointer here. If we keep
* them, we should warn the user.
* 
* If the WG should decides that they should be supported (and if the
IESG
* agrees) on page 17, the ASN.1 description should then be:
* 
* ValidationPolicy ::= CHOICE {
*      valPolByOID         [0] ValPolByOID,
*      valPolByURI         [1] ValPolByURI }
* 
* ValPolByOID  ::= SEQUENCE {
*        valPolgId             OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY valPolId OPTIONAL }
* 
* ValPolByURI ::= SEQUENCE {
*      uri            IA5String,
*      hashAlgo       OBJECT IDENTIFIER,
*      hashValue      OCTET STRING}
* 
* 
* 29. It is proposed to define the following bundle:
* 
* ValidationParamBundle ::= SEQUENCE {
*      certificatePolicySet      [0] SEQUENCE SIZE (1..MAX) OF OBJECT
*                                    IDENTIFIER OPTIONAL,
*      inhibitPolicyMapping      [1] BOOLEAN OPTIONAL,
*      requireExplicitPolicy     [2] BOOLEAN OPTIONAL,
*      inhibitAnyPolicy          [3] BOOLEAN OPTIONAL,
*      isCA                      [4] BOOLEAN OPTIONAL,
*      trustAnchors              [5] TrustAnchors OPTIONAL,
*      keyUsages                 [6] SEQUENCE SIZE (1..MAX) OF KeyUsage
*                                    OPTIONAL,
*      extendedKeyUsages         [7] ExtKeyUsageSyntax OPTIONAL
*      extensions                [8] EXPLICIT Extensions OPTIONAL }
* 
* Note that userPolicySet" is unclear and has been changed into
* "certificatePolicySet".
* 
* The text would need to be aligned with the new structure and, of
course
* the parameters of the rfc-3280 basic validation policy will simply
* include the bundle above as its parameters.
* 
* It should also be mentioned somewhere in the document that the support
* of the rfc-3280 basic validation policy is not mandatory for
* conformance but, if supported then the bundle needs to be supported.
* 
* 
* 30. Page 17. Section 3.1.5 validationAlg should be deleted.
* 
* 
* 31. Page 17. Section 3.1.5.1 Default Validation Algorithm should be
* deleted and replaced by a section later on the "rfc-3280 basic
* validation policy", which should have its OID defined under the scvp
* tree for OIDs.
* 
* 
* 32. Page 17. Section 3.1.5.1. Some text of this section might be re-
* sued to build a new section on the rfc-3280 basic validation policy.
* Note that the last sentence at the bottom of page 17, should be
* removed. This sentence is: "The default validation policy MUST use the
* basic validation algorithm". Any default validation policy can be
used.
* 
* 
* 33. Page 17. Section 3.1.5.2 validationAlg (same title as 3.1.5 !)
* should be as well deleted.
* 
* 
* 34. Page 20. Section 3.1.5.2.3 Name Validation Algorithm
* 
* This goal of this section seems to introduce an additional test to the
* basic "rfc-3280 basic validation policy". It would come naturally as
an
* extension of ValidationParamBundle, rather than as a parameter of the
* validationAlgo which has been proposed to be removed. The text should
* be modified accordingly.
* 
* 
* 35. Page 21. Section 3.1.5.2.3 Name Validation Algorithm
* 
*      NameValidationAlgParms ::= SEQUENCE {
*        keyPurposeId      KeyPurposeId,
*        validationNames   GeneralNames }
* 
* This construct is artificial since KeyPurposeId is about the Extended
* Key Usage and has nothing to do with name validation.
* 
* It could indeed be interesting to test the Extended Key Usage
extension
* of a certificate, but this should be supported as an extension of
* ValidationParamBundle. The text should be modified accordingly.
* 
* 
* 36. Page 22. Section 3.1.5.3 userPolicySet
* 
* userPolicySet should be changed everywhere into certificatePolicySet.
* 
* 
* 37. Page 22. Section 3.1.5.3 userPolicySet
* 
* The text has many sentences like:
* 
*    SCVP clients SHOULD support userPolicySet item in requests, and
*    SCVP servers MUST support userPolicySet item in requests.
* 
* These requirements only apply for the rfc-3280 basic validation
policy,
* and this should be clearly mentioned.
* 
* 
* 38. Page 22. Section 3.1.5.4 inhibitPolicyMapping
* 
* The text states:
* 
*    By default the server allows policy mapping as
*    part of certification path validation.
* 
* For simplicity, this should be the reverse. Replace with:
* 
*   "By default the server does not perform policy mapping as
*    part of certification path validation. If the client wants the
*    server to support policy mapping, allowPolicyMapping must be set
*    to TRUE in the request".
* 
* 
* 39. Page 24. Section 3.1.5.8 trustAnchors
* 
* The text states:
* 
*   "A certificate reference can be used to identify the
*    trust anchor by certificate hash and optionally a distinguished
*    name with serial number".
* 
* This is not consistent with the ASN.1 definition of PKCReference which
* is:
* 
*    PKCReference ::= CHOICE {
*      cert                   [0] Certificate,
*      pkcRef                 [1] ESSCertID }
* 
* Please correct.
* 
* 
* 40. Page 25. Section 3.1.6 responseRefHash
* 
* The text states:
* 
*    "By default, the server includes a hash
*    of the request in the response.  If the client wants the server to
*    include the full request in the response, responseRefHash is set to
*    FALSE."
* 
* The server shall always include a hash of the request in the response.
* This is an easy way to allow to test the integrity of the request.
* Since the full description of the validation policy may be much longer
* a flag should be used to say that the full validation policy is not
* returned unless requested. It is thus proposed to have instead the
* following:
* 
* "3.1.6.1 fullRequestInResponse
* 
*    The fullRequestInResponse controls if the client wants the server
*    to include the full request in the response. By default,
*    fullRequestInResponse is set to FALSE. If the client wants back
*    the full request then it must set this parameter to TRUE. The main
*    reason a client would request the server to include the full
request
*    in the response is to archive the request-response exchange in a
*    single object.  That is, the client wants to archive a single
object
*    which includes both request and response".
* 
* 
* 41. Page 26. Section 3.1.6.2 responseValidationPolByRef
* 
* This item should be renamed: fullValPolInResponse
* 
* The text should be changed into:
* 
* "The fullValPolInResponse controls whether the response includes the
* identifier of the validation policy with all the parameters that have
* been used by the server, i.e. all the variable parameters independent
* from the fact that there were specified by the client or defaulted if
* not specified. By default, fullValPolInResponse is set to FALSE. If
the
* client wants the full validation policy to be included, then
* fullValPolInResponse is set to TRUE. The main reason a client would
* request the server to include validation policy to be included by
value
* is to archive the request-response exchange in a single object. That
* is, the client wants to archive the CVResponse and have it include
* every aspect of the validation policy."
* 
* The ResponseFlags should be changed as follows:
* 
*    ResponseFlags ::= SEQUENCE {
*      fullRequestInResponse      BOOLEAN DEFAULT FALSE,
*      fullValPolInResponse       BOOLEAN DEFAULT FALSE,
*      signResponse               BOOLEAN DEFAULT TRUE }
* 
* 
* 42. Page 28. Section 3.1.9 intermediateCerts. Minor.
* 
* Change:
* 
*    The optional intermediateCerts item helps the SCVP server create
*    valid certification paths.
* 
* into:
* 
*    The optional intermediateCerts item may help the SCVP server to
* create
*    valid certification paths.
* 
* 43. Page 29. Section 3.1.11. producedAt
* 
* Last sentence. Change:
* 
*    SCVP server SHOULD support the producedAt values in the request.
* 
* into:
* 
*    SCVP server MAY support the producedAt values in the request.
* 
* Reason: cached responses should not need to be implemented in order to
* be compliant with the specification.
* 
* 
* 44. Page 32. Section 3.5 dhPublicKey
* 
* The text states:
* 
*   "For the server to compute the shared
*    secret, it must lean the public values the client generates,
*    therefore the client MUST include this in the request if it uses
*    this mechanism to integrity protect the request-response pair."
* 
* Replace:
* 
* "to integrity protect the request-response pair"
* 
* with :
* 
* "to authenticate and integrity protect the first response and
* authenticate and integrity protect subsequent request-response pairs".
* 
* 45. Page 32. Section 3.6 SCVP Request Authentication
* 
* The text states:
* 
*   "It is a matter of local policy what validation policy is used by
*    the server when validating requests".
* 
* This sentence could be misinterpreted because the word "validating" is
* being used. Change into:
* 
*    It is a matter of local policy what validation policy is used by
*    the server when authentication requests".
* 
* 
* 46. Page 35. Section 4. Validation Response
* 
*    The CVResponse is defined as follows:
* 
*      CVResponse ::= SEQUENCE {
*        cvResponseVersion         cvResponseVersion        INTEGER,
*        policyID                  INTEGER,
*        producedAt                GeneralizedTime,
*        ....
* 
* On the next page the test states:
* 
*   "The policy ID used by the SCVP server when it processed the
request.
*    See section 6.4 for details."
* 
* In section 6.4 the text states:
* 
* "6.4 defaultPolicyID
* 
*    An integer that uniquely represents the version of the default
*    validation policy as represented by the trustAnchors, ..."
* 
* This is not understandable, over-engineering and very complicated.
* Please delete this item.
* 
* 
* 47. Page 35. Section 4. Validation Response
* 
*    The CVResponse contains:
* 
*        requestRef            [1] RequestReference OPTIONAL,
* 
* Remove "OPTIONAL" since it is very beneficial to mandate this item
* since it allows to make sure that the request has not be modified if
* the response is integrity protected. The computation is fast and easy
* and the hash value does not overload the response.
* 
* 
* 48. Page 38. Section 4.5 respValidationPolicy
* 
* The definition of this item is overcomplicated and not tailored to
* support any kind of validation policy.
* 
* If the client does not specify the validation policy or if the client
* specifies a validation policy which has default parameters, then the
* full description of the validation policy shall be given back.
* 
* If the client specifies a validation policy which has no default
* parameters, then the reference and parameters, if any, of the
* validation policy are in the request.
* 
* The full description of the validation policy shall be given back in
* any case, if the fullValPolInResponse Boolean in ResponseFlags is set.
* 
* respValidationPolicy :: = ValidationPolicy
* 
* 
* 
* 49. Page 41. Section 4.6 requestRef
* 
* As stated earlier, requestRef should be mandatory and always be a hash
* of the request.
* 
* In addition a fullRequest OPTIONAL parameter should be added as an
* optional item for CVResponse.
* 
* The full description of the validation policy shall be given back in
* any case, if the fullRequestInResponse Boolean in ResponseFlags is
set.
* 
* Change the text and the syntax accordingly.
* 
* 
* 50. Page 41. Section 4.6 requestRef
* 
* The text states:
* 
*    "The requestRef item allows the client to associate a response with
*    a request"
* 
* This is wrong. This does not protect against a replay.
* 
* Change with:
* 
* "When the response is authenticated, the requestRef item allows the
* client to make sure that the request was not modified in transit".
* 
* 
* 51. Page 41. Section 4.6 requestRef
* 
* The text states:
* 
* " The requestNonce provides an alternative mechanism for
*    matching requests and responses if the client has selected to
*    include a full response."
* 
* This is wrong. This is not an alternative for matching requests and
* responses.
* 
* Replace with:
* 
*   "The requestNonce allows to protect against replay, even if time
* synchronization is not good between the client and the server".
* 
* 
* 52. Page 42. Section 4.6.1 requestHash
* 
* The text states:
* 
* " The requestNonce provides an alternative mechanism for matching
* requests and responses".
* 
* This is wrong. See above. Delete.
* 
* 
* 53. Page 45. Section 4.10.4 replyChecks
* 
* ReplyCheck is defined as:
* 
*      ReplyCheck ::= SEQUENCE {
*        check                      OBJECT IDENTIFIER,
*        status                     INTEGER }
* 
* It should be defined as:
* 
*      ReplyCheck ::= SEQUENCE {
*        check                      OBJECT IDENTIFIER,
*        status                     INTEGER DEFAULT 0}
* 
* 
* 54. Page 46. Section 4.10.4 replyChecks
* 
* The text states
* 
*    "The status value for public key certification path building to a
*    trusted root along with complete status checking, { id-stc 3 }, can
*    be one of the following:
* 
*        0: Good
*        1: Revoked
*        2: Revocation Offline
*        3: Revocation Unavailable
* 
* It is unclear to understand the benefits that a client can have from
* the difference between "Revocation Offline" and "Revocation
* Unavailable". In addition, these wordings do not match the
explanations
* of what there are.
* 
* A much more important response is missing: suspended. Suspended is a
* variation of revoked, but the client then knows it may attempt another
* try later on.
* 
* It is thus suggested to change it into:
* 
*        0: Good
*        1: Revoked
*        2: Suspended
*        3: Revocation info unavailable"
* 
* 
* 55. Page 46. Section 4.10.4 replyChecks
* 
* 
* The same comment applies for the status value for AC issuer
* certification path.
* 
* 
* 56. Page 48. Section 4.10.6 validationAlg
* For reasons given before, delete validationAlg.
* 
* 
* 57. Page 48. Section 4.10.8 nextUpdate
* 
* If CRLs are used, should this field contain the value of the next
* update field for the smallest value of all the CRLs ? What is the real
* benefit of supporting this element besides added complexity ? It is
* suggested to delete that item.
* 
* 
* 58. Page 49. Section 4.11 responseNonce
* 
* The text states:
* 
* "The responseNonce item contains an identifier to binds the request
* to the response."
* 
* This is incorrect. The nonce is to detect replay.
* 
* Change into:
* 
* "The responseNonce item contains a unique number which allows to
detect
* replay".
* 
* 
* 59. Page 51. Section 5 Server Policy Request
* 
* The text states:
* 
*   "A SCVP client uses the valPolRequest item to request the list of
*    validation policies supported by the SCVP server."
* 
* This is not a correct description of what this request is doing. When
* looking at the ASN.1 it is doing much more. So the question is whether
* two requests should be provided or one. In the later case, it is
* important to advertise correctly what the request is doing.
* 
* 
* 60. Page 52. Section 6 Validation Policy Response
* 
* The ASN.1 of the VPResponse is over-complicated.
* 
* The first three items are overengineering:
* 
*        vpResponseVersion          INTEGER,
*        maxCVResponseVersion       INTEGER,
*        maxVPResponseVersion       INTEGER,
* 
* Further more they are mandatory. Please delete.
* 
* 
* 61. Page 52. Section 6 Validation Policy Response
* 
* The ASN.1 of the VPResponse is over-complicated.
* 
*         defaultPolicyID            INTEGER,
* 
* This item does not make sense. When an OID references a validation
* policy, there is no concept of versioning. Another version will simply
* get another OID (hopefully in the same branch). Please delete.
* 
* 
* 62. Page 52. Section 6 Validation Policy Response
* 
* The ASN.1 of the VPResponse is over-complicated.
* 
*        validationPolices          SEQUENCE OF ValidationPolRef,
*        validationAlgs             SEQUENCE OF OBJECT IDENTIFIER,
* 
* validationAlgs is unnecessary. Please delete.
* 
* validationPolicies (not validationPolices) is the main component. See
* below for a full proposal for restructuring VPResponse.
* 
* 
* 63. Page 52. Section 6 Validation Policy Response
* 
*        authPolicies               SEQUENCE OF AuthPolicy,
*        responseTypes              ResponseTypes,
*        dhPublicKeyInfo            SEQUENCE OF DHPublicKeyInfo,
* 
* are elements which have nothing to do with the list of validation
* policies, and they are mandatory ! Either group them in one OPTIONAL
* item or define another command to get them.
* 
* 
* 64. Page 52. Section 6 Validation Policy Response
* 
*       defaultPolicyValues        ValidationPolValues,
* 
* This is simply the set of parameters which are related to the rfc-3280
* basic validation policy. This set could be used by other validation
* policies. Please delete.
* 
* 
* 65. Page 52. Section 6 Validation Policy Response
* 
* What follows is a sketch for a proposal for VPResponse.
* 
*     VPResponse ::= SEQUENCE {
*        requestNonce               OCTET STRING      OPTIONAL
*        thisUpdate                 GeneralizedTime,
*        nextUpdate                 GeneralizedTime   OPTIONAL,
*        validationPolicies         SEQUENCE OF ValidationPolicy,
*        serverParams               ServerParams      OPTIONAL }
* 
* 
*     ServerParams ::= SEQUENCE {
*        responseTypes              ResponseTypes,
*        authPolicies           [0] SEQUENCE OF AuthPolicy
OPTIONAL,
*        dhPublicKeyInfo        [1] SEQUENCE OF DHPublicKeyInfo
OPTIONAL,
*        clockSkew              [2] INTEGER OPTIONAL }
* 
* Note: it is re-called that ValidationPolicy should be redefined as:
* 
* ValidationPolicy ::= CHOICE {
*      valPolByOID         [0] ValPolByOID,
*      valPolByURI         [1] ValPolByURI }
* 
* ValPolByOID  ::= SEQUENCE {
*        valPolgId             OBJECT IDENTIFIER,
*        parameters            ANY DEFINED BY valPolId OPTIONAL }
* 
* ValPolByURI ::= SEQUENCE {
*      uri            IA5String,
*      hashAlgo       OBJECT IDENTIFIER,
*      hashValue      OCTET STRING}
* 
* 
* 
* 66. Page 56. Section 7 SCVP Server Relay
* 
* This section is incomplete and lacking explanations. Please explain
how
* relaying is achieved.
* 
* 
* 67. Page 65. Section 9 Security Considerations
* 
* In the second paragraph, there is a discussion about the use of URIs
to
* reference validation policies.
* 
* Firstly, if URIs are going to stay, a pointer to the security
* consideration section should be present in the main body of the
* document.
* 
* Secondly, the text should mention the need for the ability to
* dereference the URI and the need to compute a hash, while the main
body
* of the document should explain the computation of a hash on the
content
* of the URI.
* 
* 
* 68. Page 65. Section 9 Security Considerations
* 
* The text states:
* 
*   "It can also do this by using the Diffie-hellman keys to sign the
* request".
* 
* Replace "sign" by "authenticate".
* 
* END OF COMMENTS
* 
* 

To: Andrew Sciberras <[email-masked]>
Cc: [email-masked], "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: Component Matching Performance
From: Sang s Lim <[email-masked]>
Date: Mon, 6 Dec 2004 12:17:41 -0500
Sender: [email-masked]

>I must apologize, I probably should have started a new thread.
>I wasn't questioning the accuracy of your performance testing, my 
>concerns were based around interoperability issues.

Regarding the interoperability issues, you are right. We will update our 
ASN.1 specification in OpenLDAP.

Sang Seok
Regards.

Date: Tue, 07 Dec 2004 03:31:11 +1100
From: Andrew Sciberras <[email-masked]>
Organization: eB2Bcom
To: Sang s Lim <[email-masked]>
CC: [email-masked], "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: Component Matching Performance
Sender: [email-masked]

Sang,

Sang s Lim wrote:

>Andrew,
>  
>
>The ASN.1 specification defined in RFC 3280 was used in our experiment. 
>During development, we initially had a separate componentCertificate 
>attribute with an experimental syntax for Component Matching. It was only 
>recently that it was merged to userCertificate. We have yet to reflect 
>this change to the ASN.1 specification in OpenLDAP. Nevertheless, the 
>search was performed without any problem and the experimental result 
>should be valid, because they are equivalent and the component reference 
>used the identifier defined in the ASN.1 specification. Although we need 
>update the ASN.1 specification in OpenLDAP Component Matching to use X.509 
>syntax, the performance results should not be affected by this change.
>
>  
>
I must apologize, I probably should have started a new thread.
I wasn't questioning the accuracy of your performance testing, my 
concerns were based around interoperability issues.

Regards,
Andrew Sciberras.

>Sang Seok
>
>Sang Seok Lim
>IBM T.J Watson Research Center
>Enterprise Linux Group
>[email-masked]
>  
>

To: Andrew Sciberras <[email-masked]>
Cc: [email-masked], "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: Component Matching Performance
From: Sang s Lim <[email-masked]>
Date: Mon, 6 Dec 2004 11:22:48 -0500
Sender: [email-masked]

Andrew,

>I haven't used OpenLDAP or explored its Component Matching capabilities 
>yet, so I'm going to take the content of the operation mentioned above 
>literally.
>The mention of 'tbsCertificate' is both surprising and confusing...  The 
>userCertificate attribute within LDAP and X.500 does not have a syntax 
>of Certificate as defined within RFC3280; it has a syntax of Certificate 
>as defined with X.509. This is stated in both RFC2252 and Kurt's 
>individual submission of "LDAP X.509 Certificate Schema" 
>(draft-zeilenga-ldap-x509-00.txt).
>Even though these definitions may be syntactically equivalent, an 
>LDAP/X.500 userCertificate does not have a tbsCertificate component.

The ASN.1 specification defined in RFC 3280 was used in our experiment. 
During development, we initially had a separate componentCertificate 
attribute with an experimental syntax for Component Matching. It was only 
recently that it was merged to userCertificate. We have yet to reflect 
this change to the ASN.1 specification in OpenLDAP. Nevertheless, the 
search was performed without any problem and the experimental result 
should be valid, because they are equivalent and the component reference 
used the identifier defined in the ASN.1 specification. Although we need 
update the ASN.1 specification in OpenLDAP Component Matching to use X.509 
syntax, the performance results should not be affected by this change.

Sang Seok

Sang Seok Lim
IBM T.J Watson Research Center
Enterprise Linux Group
[email-masked]

Date: Mon, 6 Dec 2004 12:38:50 +0100 (MET)
From: Peter Sylvester <[email-masked]>
To: [email-masked], [email-masked]
Subject: Re: SCVP 16 comments deadline
Cc: [email-masked]
Sender: [email-masked]

Denis and Trevor, > 
> Trevor,
> 
> > The deadline communicated at the DC meeting for making comments on SCVP 
> > 16 was Nov 30th which has now passed. I have had only three people send 
> > me comments to date. SCVP 17 will be closing very shortly so this is the 
> > last reminder.
> 
> Thank for the remainder. I missed the initial announcement.
What announcement?
what I can read here is: 

The minutes say (17 nov)

> SCVP (version 16) - Trevor Freeman (Microsoft)
	Lots of changes have been made from v15; many were editorial 
> but also many substantive changes and some new features. Another rev 
> of the document will be needed. We need to ensure that the ASN.1 is 
> correct, once we agree on the functionality, and so we will compile 
> it to verify. Presentation reviewed changes and new features 
> (relative to v15). See slides for additional details.

The minutes had not been challenged by Trevor.

I cannot see any announcement on the list about that date. There
are "no presentation files and no minutes' available in the IETF
server. 

According to my understanding of how IETF working groups
function, an announement during a meeting is non-existant 
if not reflected in the mailing list message. 

(It may be that someone filters the content of the imc server for me).

Peter

Date: Mon, 06 Dec 2004 11:24:50 +0100
From: Denis Pinkas <[email-masked]>
Organization: Bull SA.
To: Trevor Freeman <[email-masked]>
CC: [email-masked]
Subject: Re: SCVP 16 comments deadline
Sender: [email-masked]

Trevor,

> The deadline communicated at the DC meeting for making comments on SCVP 
> 16 was Nov 30th which has now passed. I have had only three people send 
> me comments to date. SCVP 17 will be closing very shortly so this is the 
> last reminder.

Thank for the remainder. I missed the initial announcement.
My comments are below.

1. Typo. There are two IPR statements related to RFC 3668 on the first
page. Delete one.

“ By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   or will be disclosed, and any of which I become aware will be
   disclosed, in accordance with RFC 3668”.

2. Page 11. Typos. First paragraph on top of the page.
Replace “signers” by “signer’s”.

3. Page 11. Typo. First paragraph on top of the page. Last sentence.
Replace “certificate” by “certificates”.

4. Page 13. Typo. Section 3.1.2 “checks”
The two following lines are in fact one line:

Change:

     - Build a validated certification path to a trust anchor; and

     - Do revocation status checks on the certification path.

into:

     - Build a validated certification path to a trust anchor and
       do revocation status checks on the certification path.

5. Page 15. Typo. Section 3.1.4 validationPolicy

This is the error left intentionally by the editor to know who read the
document. The following sentence is duplicated: “ The validationPolicy
item, defines the validation policy”. Please delete one sentence.

6. Page 24. Typo. Section 3.1.5.9 keyUsages

Change “keyUasge” into “keyUsage”.

7. Page 27. Typo. Section 3.1.8 valididationTime
Last line of the first paragraph. Change “servers” into “server’s”

8. Page 32. Typo. Section 3.5 dhPublicKey
Change: Diffie-Hellamn into Diffie-Hellman.

9. Page 32. Typo. Section 3.5 dhPublicKey
Fifth line. Change “an does” into “and does”

10. Page 32. Typo. Section 3.5 dhPublicKey
Delete: (see section Error! Reference source not found.)

11. Page 33. Typo. Section 4. Validation Response

After the eight items. The following sentence has a grammar problem:
  “Successful responses are be made when the server has fully complied
   with the request”.

12. Page 52. Typo. Section 6 Validation Policy Response

The second sentence is incorrect. It is:
The valPolResponse MAY not unique to any valPolRequest, …”

Change into:
“The valPolResponse MAY not be unique to any valPolRequest, …”

13. The abstract does not reflect accurately the content of the
document.
“certificate handling” is too vague.

Proposed abstract:

   SCVP allows a client to delegate certificate path construction and
   certificate path validation to a server. The path construction or
   validation (i.e. making sure that none of the certificates of the
   path is revoked) is made according to a validation policy which
   contains one or more trust anchors. It allows to simplify client
   implementations and to use a set of predefined validation policies.

14. Section 1.3

The text on validation policy is new. There is no concept of “mutually
agreed” validation policy between the client on the server. The server
supports a set of validation policies which may or may not fit the need
of the client.

Change the second sentence of section 1.3 which is:

“ In SCVP, a validation policy can be either mutually
   agreed between client and server, and subsequently referenced in
   request, or explicitly expressed in the request by passing all of
   the necessary parameters.”

into:

“ In SCVP, the validation policy to be used by the server can be either
fully referenced in the request by the client (and thus no additional
parameter is necessary), referenced in the request by the client with
additional parameters or supported by default by the server if the
client does not reference it.”

15. Section 1.3. The second paragraph needs to be reworded. Currently,
it is the following:

“ Policy definitions can be quite long and complex, and some policies
   may allow for the setting of a few parameters such as a set of
   trust anchors.  The request can therefore be simplified if these
   previously agreed policy dependent parameters are referenced in the
   request by a mutually agreed OBJECT IDENTIFIER (OID) or URL value.
   The referenced value indicates either a partial or full set of
   parameters. The client can therefore omit these agreed parameters
   from the request, only passing any parameters which are not
   specified by the previously agreed policy.  Therefore in the
   simplest form, with validation polices which define every parameter
   necessary, a SCVP request need only contain the certificate to be
   validated, the validation policy and any run-time parameters for
   the request”.

Proposed rewording:

“ Policy definitions can be quite long and complex, and some policies
   may allow for the setting of a few parameters.  The request can
   therefore be very simple if OBJECT IDENTIFIERS (OIDs) are used to
   specify both the algorithm to be used and all the associated
   parameters of the validation policy. The request can be more complex
   if the validation policy fixes many of the parameters but allows the
   client to specify some of them. When the validation policy defines
   every parameter necessary, a SCVP request needs only to contain the
   certificate to be validated, the referenced validation policy and any
   run-time parameters for the request. In its simplest form, a SCVP
   request contains the certificate to be validated and any run-time
   parameters for the request. In that case the server uses a default
   validation policy”.

16. Section 1.3. Paragraph 3.

The text is missing the fact that at least one validation policy must
be supported by the server. This is the default policy which is used
when the client omits to specify it.

The current text is the following:

  “SCVP server also publishes its default validation policy settings.
   The default policy can be requested for validation and the client
   can override any default value in the request if required.  The
   default values are also used when processing requests which
   reference a validation policy other than the default one that does
   not contain the full set of parameters necessary for validation and
   the client has also omitted the missing values in the request.

   Therefore a client can also simplify the request by omitting a
   parameter from a request if the default value published by the
   server is acceptable”.

Replace it with:

“ A SCVP server must support a default validation policy which will
   be used if the client does not specify any in its request. A server
   publishes the references of the validation policies it supports.
   When these policies have parameters that may be overridden, the
   default value for these parameters are communicated by the server as
   well. The client can simplify the request by omitting a parameter
   from a request if the default value published by the server for a
   given validation policy reference is acceptable. However if there is
   a desire to demonstrate to someone else that a specific validation
   policy with all its parameters has been used, it will need to ask the
   server for the inclusion of the full validation policy with all the
   parameters in the response”.

17. On top of page 7, the relationship between the validation policy
and the basic certification path algorithm is not explained. Then in
section 1.4 The concept of validation algorithm is introduced but its
relationship with the validation policy is not explained. This is
confusing.

Later on when observing the ASN.1 syntax it may be discovered that two
OIDs are being used:

  - one for the validation policy (ValidationPolRef) and
  - one for the validation algorithm (ValidationAlg).

This is overcomplicated and unnecessary.

An important simplification is obtained if, as the previous text
states, there is an OID to defined the validation policy and there may
be or may not be additional parameters.

We could then have:

valPolByOID::= SEQUENCE {
       valPolId              OBJECT IDENTIFIER,
       parameters            ANY DEFINED BY ValPolId OPTIONAL }

Specifying a path processing compliant with section 6.1 of RFC 3280
would be possible (notice however that the text from RFC 3280 is too
vague to support the case where a CRL is not signed by the CA).

It would be desirable to be able to communicate easily and in a
standard way the parameters that may be set in section 6.1 from RFC
3280. In addition, key usage should be added to that list.

The document should then define a bundle of all these previous useful
parameters and allow for the addition of other parameters.

It is thus proposed to define an OID for a validation policy compliant
with section 6.1 of RFC 3280 (some differences with section 6 from
3280bis, i.e. adding precision, may be expected)

It is thus proposed to modify the text starting from :

“ The inputs to the basic certification path processing algorithm
   used by SCVP are defined by [PKIX-1] in section 6.1.1 and comprise”
   up to the end of section 1.3 with the following:

“For clients able to specify the parameters of a validation policy, it
may be useful to define a standard data structure (using a bundle) able
to support the parameters of the basic certification path processing
algorithm defined by in section 6.1.1 from [PKIX-1] :

  - a set of Trust Anchors (by value or by reference),
  - the initial Certificate Policy set,
  - initial Certificate Policy mapping setting,
  - initial any-Policy setting,
  - initial explicit Certificate Policy setting.

as well as :

   - the usage of the key contained in the certificate (e.g., key
     encipherment, key agreement, signature)

This will be done using a bundle which encapsulates all these
parameters.

Other application-specific purposes parameters may be added”.

18. Section 1.4 is about a “Validation Algorithm”. Given what was said
before, the header of this section should be changed. If we make a
subsection 1.3.1 called “1.3.1. General” for encapsulating the previous
text, then we can introduce a new section 1.3.2 called:

“1.3.2. Validation policy according to section 6.1 of RFC 3280”

Some of the text present in the current section 1.4 has been used to
build the new text that is proposed below:

“1.3.2. Validation policy according to section 6.1 of RFC 3280

   SCVP defines a specific validation policy which implements the
   certification path validation algorithm as defined in section 6.1 of
   [PKIX-1]. This specific validation policy, called “rfc-3280 basic
   validation policy” uses the parameters defined in the bundle
   mentioned above.

   Note that this algorithm does not support in its full generality the
   algorithm described in section 6.2 of [PKIX-1] since, when more than
   one trust anchor is being defined, all the conditions that are
   specified apply to all trust anchors, whereas section 6.2 allows to
   have different conditions for every trust anchor.

   The rfc-3280 basic validation policy may be the default validation
   policy supported by the server, but does not need to”.

19. Section 2 “Protocol Overview”

In order to allow for interoperability and testing a common protocol
needs to be supported. It should be defined.

20. Section 3 “Validation Request”

The unsigned request form is not explained and there is a confusion for
the signed request which indeed authenticates the client and is thus
not anonymous. The current text is :

   “A signed
   request is used to authenticate the client to the server or to
   provide an anonymous client integrity over the request-response
   pair.”

It should be rephrased as:

   “An unsigned request provides an anonymous client integrity over
    the request since the hash of the request or the full request is
    incorporated in the response. A signed request is used to
    authenticate the client to the server”.

21. Page 13. Section 3.1.2 “checks”

The following sentence adds nothing and should be removed:

   “A server may still choose to
   perform revocation status checks when performing path construction,
   although this information cannot be returned to the client.”

22. Page 15. Section 3.1.3 “wantBack”

The text states:

     - Proof of revocation status for each certificate in the AC
        issuer certification path;

It would be important to refer the section of the RFC which explains
how to
check the “revocation status for each certificate in the AC issuer
certification path”.

23. Page 15. Section 3.1.3 “wantBack”

The text states:

   The client can also request a non-cached response to the request by
   including wantback id-swb-non-cached-resp in the request.

The default behavior should be the reverse: fresh information is
provided, unless the client accept cached information. The item should
be changed into:
id-swb-cached-resp

24. Page 15. Section 3.1.3 “wantBack”

The text states:

id-swb-pkc-all-valid-cert-paths OBJECT IDENTIFIER ::= { id-swb 13}

It should be mentioned that this item is only possible for DPD.

25. Page 16. Section 3.1.4 validationPolicy

The following sentence is talking of an agreement whereas such
agreement does not exist. Delete the sentence:

  “The client and server can optionally agree on a set of parameters
   which may fully or partially define a validation policy”.

26. Page 16. Section 3.1.4 validationPolicy
The text states:

   "If a partial set of parameters has been agreed upon,
   then the client supplies a reference to the policy plus whatever
   parameters are necessary to complete the request in this item.

This should be replaced with:

   “If the validation policy does not define all parameters necessary
   for processing an SCVP request, then the client need to supply these
   parameters”.

27. Page 16. Section 3.1.4 validationPolicy

   The syntax of the validationPolicy item is defined as:

   ValidationPolicy ::= SEQUENCE {
     validationPolRef          ValidationPolRef,
     validationAlg         [0] ValidationAlg OPTIONAL,
     userPolicySet         [1] SEQUENCE SIZE (1..MAX) OF OBJECT
                                 IDENTIFIER OPTIONAL,
     inhibitPolicyMapping  [2] BOOLEAN OPTIONAL,
     requireExplicitPolicy [3] BOOLEAN OPTIONAL,
     inhibitAnyPolicy      [4] BOOLEAN OPTIONAL,
     isCA                  [5] BOOLEAN OPTIONAL,
     trustAnchors          [6] TrustAnchors OPTIONAL,
     keyUsages             [7] SEQUENCE SIZE (1..MAX) OF KeyUsage
                                  OPTIONAL,
     extendedKeyUsages     [8] ExtKeyUsageSyntax OPTIONAL}

This structure is quite odd, because it only allows to pass additional
parameters as parameters of the validationAlg. Suppressing the
validationAlg item add adding validationParamExtensions would be a
simpler and cleaner way.

Each validation policies uses its own parameters.
We should have something like :

ValPolByOID  ::= SEQUENCE {
       valPolgId             OBJECT IDENTIFIER,
       parameters            ANY DEFINED BY valPolId OPTIONAL }

More details follow.

28. It is highly debatable if URIs should be supported or not to
reference a validation policy. URIs are not stable over time and thus
unless there are dereferenced and a hash value is computed over them,
it is insecure to use them. There is a discussion in the security
consideration section, but no warning and no pointer here. If we keep
them, we should warn the user.

If the WG should decides that they should be supported (and if the IESG
agrees) on page 17, the ASN.1 description should then be:

ValidationPolicy ::= CHOICE {
     valPolByOID         [0] ValPolByOID,
     valPolByURI         [1] ValPolByURI }

ValPolByOID  ::= SEQUENCE {
       valPolgId             OBJECT IDENTIFIER,
       parameters            ANY DEFINED BY valPolId OPTIONAL }

ValPolByURI ::= SEQUENCE {
     uri            IA5String,
     hashAlgo       OBJECT IDENTIFIER,
     hashValue      OCTET STRING}

29. It is proposed to define the following bundle:

ValidationParamBundle ::= SEQUENCE {
     certificatePolicySet      [0] SEQUENCE SIZE (1..MAX) OF OBJECT
                                   IDENTIFIER OPTIONAL,
     inhibitPolicyMapping      [1] BOOLEAN OPTIONAL,
     requireExplicitPolicy     [2] BOOLEAN OPTIONAL,
     inhibitAnyPolicy          [3] BOOLEAN OPTIONAL,
     isCA                      [4] BOOLEAN OPTIONAL,
     trustAnchors              [5] TrustAnchors OPTIONAL,
     keyUsages                 [6] SEQUENCE SIZE (1..MAX) OF KeyUsage
                                   OPTIONAL,
     extendedKeyUsages         [7] ExtKeyUsageSyntax OPTIONAL
     extensions                [8] EXPLICIT Extensions OPTIONAL }

Note that userPolicySet” is unclear and has been changed into
“certificatePolicySet”.

The text would need to be aligned with the new structure and, of course
the parameters of the rfc-3280 basic validation policy will simply
include the bundle above as its parameters.

It should also be mentioned somewhere in the document that the support
of the rfc-3280 basic validation policy is not mandatory for
conformance but, if supported then the bundle needs to be supported.

30. Page 17. Section 3.1.5 validationAlg should be deleted.

31. Page 17. Section 3.1.5.1 Default Validation Algorithm should be
deleted and replaced by a section later on the “rfc-3280 basic
validation policy”, which should have its OID defined under the scvp
tree for OIDs.

32. Page 17. Section 3.1.5.1. Some text of this section might be re-
sued to build a new section on the rfc-3280 basic validation policy.
Note that the last sentence at the bottom of page 17, should be
removed. This sentence is: “The default validation policy MUST use the
basic validation algorithm”. Any default validation policy can be used.

33. Page 17. Section 3.1.5.2 validationAlg (same title as 3.1.5 !)
should be as well deleted.

34. Page 20. Section 3.1.5.2.3 Name Validation Algorithm

This goal of this section seems to introduce an additional test to the
basic “rfc-3280 basic validation policy”. It would come naturally as an
extension of ValidationParamBundle, rather than as a parameter of the
validationAlgo which has been proposed to be removed. The text should
be modified accordingly.

35. Page 21. Section 3.1.5.2.3 Name Validation Algorithm

     NameValidationAlgParms ::= SEQUENCE {
       keyPurposeId      KeyPurposeId,
       validationNames   GeneralNames }

This construct is artificial since KeyPurposeId is about the Extended
Key Usage and has nothing to do with name validation.

It could indeed be interesting to test the Extended Key Usage extension
of a certificate, but this should be supported as an extension of
ValidationParamBundle. The text should be modified accordingly.

36. Page 22. Section 3.1.5.3 userPolicySet

userPolicySet should be changed everywhere into certificatePolicySet.

37. Page 22. Section 3.1.5.3 userPolicySet

The text has many sentences like:

   SCVP clients SHOULD support userPolicySet item in requests, and
   SCVP servers MUST support userPolicySet item in requests.

These requirements only apply for the rfc-3280 basic validation policy,
and this should be clearly mentioned.

38. Page 22. Section 3.1.5.4 inhibitPolicyMapping

The text states:

   By default the server allows policy mapping as
   part of certification path validation.

For simplicity, this should be the reverse. Replace with:

  “By default the server does not perform policy mapping as
   part of certification path validation. If the client wants the
   server to support policy mapping, allowPolicyMapping must be set
   to TRUE in the request”.

39. Page 24. Section 3.1.5.8 trustAnchors

The text states:

  “A certificate reference can be used to identify the
   trust anchor by certificate hash and optionally a distinguished
   name with serial number”.

This is not consistent with the ASN.1 definition of PKCReference which
is:

   PKCReference ::= CHOICE {
     cert                   [0] Certificate,
     pkcRef                 [1] ESSCertID }

Please correct.

40. Page 25. Section 3.1.6 responseRefHash

The text states:

   “By default, the server includes a hash
   of the request in the response.  If the client wants the server to
   include the full request in the response, responseRefHash is set to
   FALSE.”

The server shall always include a hash of the request in the response.
This is an easy way to allow to test the integrity of the request.
Since the full description of the validation policy may be much longer
a flag should be used to say that the full validation policy is not
returned unless requested. It is thus proposed to have instead the
following:

“3.1.6.1 fullRequestInResponse

   The fullRequestInResponse controls if the client wants the server
   to include the full request in the response. By default,
   fullRequestInResponse is set to FALSE. If the client wants back
   the full request then it must set this parameter to TRUE. The main
   reason a client would request the server to include the full request
   in the response is to archive the request-response exchange in a
   single object.  That is, the client wants to archive a single object
   which includes both request and response”.

41. Page 26. Section 3.1.6.2 responseValidationPolByRef

This item should be renamed: fullValPolInResponse

The text should be changed into:

“The fullValPolInResponse controls whether the response includes the
identifier of the validation policy with all the parameters that have
been used by the server, i.e. all the variable parameters independent
from the fact that there were specified by the client or defaulted if
not specified. By default, fullValPolInResponse is set to FALSE. If the
client wants the full validation policy to be included, then
fullValPolInResponse is set to TRUE. The main reason a client would
request the server to include validation policy to be included by value
is to archive the request-response exchange in a single object. That
is, the client wants to archive the CVResponse and have it include
every aspect of the validation policy.”

The ResponseFlags should be changed as follows:

   ResponseFlags ::= SEQUENCE {
     fullRequestInResponse      BOOLEAN DEFAULT FALSE,
     fullValPolInResponse       BOOLEAN DEFAULT FALSE,
     signResponse               BOOLEAN DEFAULT TRUE }

42. Page 28. Section 3.1.9 intermediateCerts. Minor.

Change:

   The optional intermediateCerts item helps the SCVP server create
   valid certification paths.

into:

   The optional intermediateCerts item may help the SCVP server to
create
   valid certification paths.

43. Page 29. Section 3.1.11. producedAt

Last sentence. Change:

   SCVP server SHOULD support the producedAt values in the request.

into:

   SCVP server MAY support the producedAt values in the request.

Reason: cached responses should not need to be implemented in order to
be compliant with the specification.

44. Page 32. Section 3.5 dhPublicKey

The text states:

  “For the server to compute the shared
   secret, it must lean the public values the client generates,
   therefore the client MUST include this in the request if it uses
   this mechanism to integrity protect the request-response pair.”

Replace:

“to integrity protect the request-response pair”

with :

“to authenticate and integrity protect the first response and
authenticate and integrity protect subsequent request-response pairs”.

45. Page 32. Section 3.6 SCVP Request Authentication

The text states:

  “It is a matter of local policy what validation policy is used by
   the server when validating requests”.

This sentence could be misinterpreted because the word “validating” is
being used. Change into:

   It is a matter of local policy what validation policy is used by
   the server when authentication requests”.

46. Page 35. Section 4. Validation Response

   The CVResponse is defined as follows:

     CVResponse ::= SEQUENCE {
       cvResponseVersion         cvResponseVersion        INTEGER,
       policyID                  INTEGER,
       producedAt                GeneralizedTime,
       ....

On the next page the test states:

  “The policy ID used by the SCVP server when it processed the request.
   See section 6.4 for details.”

In section 6.4 the text states:

“6.4 defaultPolicyID

   An integer that uniquely represents the version of the default
   validation policy as represented by the trustAnchors, …”

This is not understandable, over-engineering and very complicated.
Please delete this item.

47. Page 35. Section 4. Validation Response

   The CVResponse contains:

       requestRef            [1] RequestReference OPTIONAL,

Remove “OPTIONAL” since it is very beneficial to mandate this item
since it allows to make sure that the request has not be modified if
the response is integrity protected. The computation is fast and easy
and the hash value does not overload the response.

48. Page 38. Section 4.5 respValidationPolicy

The definition of this item is overcomplicated and not tailored to
support any kind of validation policy.

If the client does not specify the validation policy or if the client
specifies a validation policy which has default parameters, then the
full description of the validation policy shall be given back.

If the client specifies a validation policy which has no default
parameters, then the reference and parameters, if any, of the
validation policy are in the request.

The full description of the validation policy shall be given back in
any case, if the fullValPolInResponse Boolean in ResponseFlags is set.

respValidationPolicy :: = ValidationPolicy

49. Page 41. Section 4.6 requestRef

As stated earlier, requestRef should be mandatory and always be a hash
of the request.

In addition a fullRequest OPTIONAL parameter should be added as an
optional item for CVResponse.

The full description of the validation policy shall be given back in
any case, if the fullRequestInResponse Boolean in ResponseFlags is set.

Change the text and the syntax accordingly.

50. Page 41. Section 4.6 requestRef

The text states:

   “The requestRef item allows the client to associate a response with
   a request”

This is wrong. This does not protect against a replay.

Change with:

“When the response is authenticated, the requestRef item allows the
client to make sure that the request was not modified in transit”.

51. Page 41. Section 4.6 requestRef

The text states:

“ The requestNonce provides an alternative mechanism for
   matching requests and responses if the client has selected to
   include a full response.”

This is wrong. This is not an alternative for matching requests and
responses.

Replace with:

  “The requestNonce allows to protect against replay, even if time
synchronization is not good between the client and the server”.

52. Page 42. Section 4.6.1 requestHash

The text states:

“ The requestNonce provides an alternative mechanism for matching
requests and responses”.

This is wrong. See above. Delete.

53. Page 45. Section 4.10.4 replyChecks

ReplyCheck is defined as:

     ReplyCheck ::= SEQUENCE {
       check                      OBJECT IDENTIFIER,
       status                     INTEGER }

It should be defined as:

     ReplyCheck ::= SEQUENCE {
       check                      OBJECT IDENTIFIER,
       status                     INTEGER DEFAULT 0}

54. Page 46. Section 4.10.4 replyChecks

The text states

   “The status value for public key certification path building to a
   trusted root along with complete status checking, { id-stc 3 }, can
   be one of the following:

       0: Good
       1: Revoked
       2: Revocation Offline
       3: Revocation Unavailable

It is unclear to understand the benefits that a client can have from
the difference between “Revocation Offline” and “Revocation
Unavailable”. In addition, these wordings do not match the explanations
of what there are.

A much more important response is missing: suspended. Suspended is a
variation of revoked, but the client then knows it may attempt another
try later on.

It is thus suggested to change it into:

       0: Good
       1: Revoked
       2: Suspended
       3: Revocation info unavailable”

55. Page 46. Section 4.10.4 replyChecks

The same comment applies for the status value for AC issuer
certification path.

56. Page 48. Section 4.10.6 validationAlg
For reasons given before, delete validationAlg.

57. Page 48. Section 4.10.8 nextUpdate

If CRLs are used, should this field contain the value of the next
update field for the smallest value of all the CRLs ? What is the real
benefit of supporting this element besides added complexity ? It is
suggested to delete that item.

58. Page 49. Section 4.11 responseNonce

The text states:

“The responseNonce item contains an identifier to binds the request
to the response.”

This is incorrect. The nonce is to detect replay.

Change into:

“The responseNonce item contains a unique number which allows to detect
replay”.

59. Page 51. Section 5 Server Policy Request

The text states:

  “A SCVP client uses the valPolRequest item to request the list of
   validation policies supported by the SCVP server.”

This is not a correct description of what this request is doing. When
looking at the ASN.1 it is doing much more. So the question is whether
two requests should be provided or one. In the later case, it is
important to advertise correctly what the request is doing.

60. Page 52. Section 6 Validation Policy Response

The ASN.1 of the VPResponse is over-complicated.

The first three items are overengineering:

       vpResponseVersion          INTEGER,
       maxCVResponseVersion       INTEGER,
       maxVPResponseVersion       INTEGER,

Further more they are mandatory. Please delete.

61. Page 52. Section 6 Validation Policy Response

The ASN.1 of the VPResponse is over-complicated.

        defaultPolicyID            INTEGER,

This item does not make sense. When an OID references a validation
policy, there is no concept of versioning. Another version will simply
get another OID (hopefully in the same branch). Please delete.

62. Page 52. Section 6 Validation Policy Response

The ASN.1 of the VPResponse is over-complicated.

       validationPolices          SEQUENCE OF ValidationPolRef,
       validationAlgs             SEQUENCE OF OBJECT IDENTIFIER,

validationAlgs is unnecessary. Please delete.

validationPolicies (not validationPolices) is the main component. See
below for a full proposal for restructuring VPResponse.

63. Page 52. Section 6 Validation Policy Response

       authPolicies               SEQUENCE OF AuthPolicy,
       responseTypes              ResponseTypes,
       dhPublicKeyInfo            SEQUENCE OF DHPublicKeyInfo,

are elements which have nothing to do with the list of validation
policies, and they are mandatory ! Either group them in one OPTIONAL
item or define another command to get them.

64. Page 52. Section 6 Validation Policy Response

      defaultPolicyValues        ValidationPolValues,

This is simply the set of parameters which are related to the rfc-3280
basic validation policy. This set could be used by other validation
policies. Please delete.

65. Page 52. Section 6 Validation Policy Response

What follows is a sketch for a proposal for VPResponse.

    VPResponse ::= SEQUENCE {
       requestNonce               OCTET STRING      OPTIONAL
       thisUpdate                 GeneralizedTime,
       nextUpdate                 GeneralizedTime   OPTIONAL,
       validationPolicies         SEQUENCE OF ValidationPolicy,
       serverParams               ServerParams      OPTIONAL }

    ServerParams ::= SEQUENCE {
       responseTypes              ResponseTypes,
       authPolicies           [0] SEQUENCE OF AuthPolicy      OPTIONAL,
       dhPublicKeyInfo        [1] SEQUENCE OF DHPublicKeyInfo OPTIONAL,
       clockSkew              [2] INTEGER OPTIONAL }

Note: it is re-called that ValidationPolicy should be redefined as:

ValidationPolicy ::= CHOICE {
     valPolByOID         [0] ValPolByOID,
     valPolByURI         [1] ValPolByURI }

ValPolByOID  ::= SEQUENCE {
       valPolgId             OBJECT IDENTIFIER,
       parameters            ANY DEFINED BY valPolId OPTIONAL }

ValPolByURI ::= SEQUENCE {
     uri            IA5String,
     hashAlgo       OBJECT IDENTIFIER,
     hashValue      OCTET STRING}

66. Page 56. Section 7 SCVP Server Relay

This section is incomplete and lacking explanations. Please explain how
relaying is achieved.

67. Page 65. Section 9 Security Considerations

In the second paragraph, there is a discussion about the use of URIs to
reference validation policies.

Firstly, if URIs are going to stay, a pointer to the security
consideration section should be present in the main body of the
document.

Secondly, the text should mention the need for the ability to
dereference the URI and the need to compute a hash, while the main body
of the document should explain the computation of a hash on the content
of the URI.

68. Page 65. Section 9 Security Considerations

The text states:

  “It can also do this by using the Diffie-hellman keys to sign the
request”.

Replace “sign” by “authenticate”.

END OF COMMENTS

From: "Wen-Cheng Wang" <[email-masked]>
To: "alan" <[email-masked]>, "ietf-pkix " <[email-masked]>
Subject: Re: What's mean about "bis" in the 2510bis?
Date: Mon, 6 Dec 2004 16:05:11 +0800
Organization: Chunghwa Telecom
Sender: [email-masked]

In the following web pages, you can find more detail explanations
about the meaning of "bis":

http://www.groupstudy.com/archives/cisco/200107/msg01264.html

http://www.cs.columbia.edu/sip/faq/index.php?sid=231127&aktion=artikel&rubrik=001&id=8&lang=en

"bis" is the latin adverb for "two". That is why "bis" is used in ID
naming to indicate that it a revision of an existing RFC.

Wen-Cheng Wang

----- Original Message ----- 
From: "Paul Hoffman / VPNC" <[email-masked]>
To: "alan" <[email-masked]>; "ietf-pkix " <[email-masked]>
Sent: Monday, December 06, 2004 12:59 PM
Subject: Re: What's mean about "bis" in the 2510bis?

> 
> At 11:01 AM +0800 12/6/04, alan wrote:
> >       I usually found some "bis" in the IETF,such as 
> >draft-ietf-pkix-rfc2510bis.
> >       Who can tell me what's mean about "bis"?Thanks!
> 
>  From a future version of the Tao of the IETF:
> 
>     There are some informal rules for Internet Draft naming that have
>     evolved over the years.  Internet Drafts that revise existing RFCs
>     often have draft names with "bis" in them, meaning "the thing after
>     the RFC"; for example, a draft might be called
>     "draft-someone-rfc2345bis-00.txt".
> 
> --Paul Hoffman, Director
> --VPN Consortium
> 

Date: Sun, 5 Dec 2004 20:59:37 -0800
To: "alan" <[email-masked]>, "ietf-pkix " <[email-masked]>
From: Paul Hoffman / VPNC <[email-masked]>
Subject: Re: What's mean about "bis" in the 2510bis?
Sender: [email-masked]

At 11:01 AM +0800 12/6/04, alan wrote:
>       I usually found some "bis" in the IETF,such as 
>draft-ietf-pkix-rfc2510bis.
>       Who can tell me what's mean about "bis"?Thanks!

 From a future version of the Tao of the IETF:

    There are some informal rules for Internet Draft naming that have
    evolved over the years.  Internet Drafts that revise existing RFCs
    often have draft names with "bis" in them, meaning "the thing after
    the RFC"; for example, a draft might be called
    "draft-someone-rfc2345bis-00.txt".

--Paul Hoffman, Director
--VPN Consortium

Date: Mon, 06 Dec 2004 14:15:43 +1100
From: Andrew Sciberras <[email-masked]>
Organization: eB2Bcom
To: [email-masked]
CC: Sang s Lim <[email-masked]>, "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: Component Matching Performance
Sender: [email-masked]

Hi,

Sang s Lim wrote:

>Directory
>        - 100,000 entry DIT
>        - Each entry is a person entry with one userCertificate attribute
>        - Operations: Random searches on tbsCertificate.serialNumber 
>(serialNumber in userCertificate)
>        - Indexing: tbsCertificate.serialNumber
>
>
>  
>

I haven't used OpenLDAP or explored its Component Matching capabilities 
yet, so I'm going to take the content of the operation mentioned above 
literally.
The mention of 'tbsCertificate' is both surprising and confusing...  The 
userCertificate attribute within LDAP and X.500 does not have a syntax 
of Certificate as defined within RFC3280; it has a syntax of Certificate 
as defined with X.509. This is stated in both RFC2252 and Kurt's 
individual submission of "LDAP X.509 Certificate Schema" 
(draft-zeilenga-ldap-x509-00.txt).
Even though these definitions may be syntactically equivalent, an 
LDAP/X.500 userCertificate does not have a tbsCertificate component.

It is my opinion that the component tbsCertificate should not be used 
within an LDAP search for the userCertificate attribute and in doing so 
should result in zero entries being returned.

Regards,
Andrew Sciberras
eB2Bcom

>Sang Seok Lim
>
>IBM T.J Watson Research Center
>Enterprise Linux Group
>[email-masked]
>  
>

Date: Mon, 6 Dec 2004 11:01:23 +0800
From: "alan" <[email-masked]>
To: "ietf-pkix " <[email-masked]>
Subject: What's mean about "bis" in the 2510bis?
Sender: [email-masked]

Hi,

      I usually found some "bis" in the IETF,such as draft-ietf-pkix-rfc2510bis.
      Who can tell me what's mean about "bis"?Thanks!

alan,

Date: Mon, 06 Dec 2004 12:01:51 +1100
From: Andrew Sciberras <[email-masked]>
Organization: eB2Bcom
To: David Chadwick <[email-masked]>
CC: Steven Legg <[email-masked]>, Steve Hanna <[email-masked]>, Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

G'Day David,

David Chadwick wrote:

>>
>> Incidentally, yesterday a colleague of mine configured a third-party
>> LDAP client with no built-in knowledge of component matching to use
>> component matches in its filters. No re-coding was necessary. Any client
>> that is configured with LDAP filters in string format or LDAP URLs is
>> already able to use component matching or the X.509 matching rules.
>
>
> Could your colleague send us the string that he had to type in e.g. to 
> find a certificate containing a particular email address or key usage

What Steven was referring to was an activity that I conducted with the 
Calendra Directory Manager. One of the things that this application can 
do is provide user's with different view's to the directory based on who 
they are. The 'who' can be determined dynamically by the application 
based on an ldap search filter.
So, using your suggestion (i.e Email Address) suppose I want to group 
people with an email address that equals "[email-masked]". The email 
address in this case is the email address within the rfc822Name within a 
subjectAltName extension.

The search filter that I used is:

(userCertificate:componentFilterMatch:=item:{ component 
"toBeSigned.extensions.*.extnValue.content.(2.5.29.17).*.rfc822Name", 
rule caseIgnoreIA5Match, value "[email-masked]"})

A better example however is centered around the Mozilla Address book. In 
my address book I can configure a number of different instances of the 
same directory.  With Mozilla, your directory configuration has an 
Advanced setting where you can specify an ldap filter that will be added 
to any searches that you make on the directory.
So, I have a single View500 directory that contains information about 
people. In my Mozilla application I can create the following address 
book instances of the directory:

1.
Title "All Entries"
Filter: objectClass=*
Purpose: I will use this "address book" to attempt to match against 
every entry in the directory

2.
Title "Cert v3 People"
Filter: (userCertificate:componentFilterMatch:=item:{ component 
"toBeSigned.version",  rule integerMatch, value 2})
Purpose: Only search for people that have a Version 3 certificate.

3.
Title "Certificates with a KeyUsage Extension"
Filter: (userCertificate:componentFilterMatch:=item:{ component 
"toBeSigned.extensions.*.extnValue.content.(2.5.29.15)", rule 
presentMatch, value NULL})
Purpose: This is simply here to illustrate the usage of the presentMatch 
and how it can be applied to single out specific extensions.

4.
Title "Certificates of people from COMPANY"
Filter: (userCertificate:componentFilterMatch:=item:{ component 
"toBeSigned.subject.rdnSequence.*", rule rdnMatch, value "O=COMPANY"})
Purpose: To only search for people with certificates whose subject 
indicates that they belong to an Organization called COMPANY

These filters should work against an LDAP Directory that supports 
Component Matching (I've only used View500) with the current build of 
Mozilla. The filters above are simply 4 examples of, what is 
essentially, an infinite amount of filters that can be applied to any 
component of any ASN.1 type used as a syntax of an attribute.

Cheers,
Andrew Sciberras

> thanks
> David
>> Regards,
>> Steven

To: [email-masked]
Subject: Component Matching Performance
From: Sang s Lim <[email-masked]>
Date: Fri, 3 Dec 2004 21:11:34 -0500
Sender: [email-masked]

Attached is a preliminary performance numbers of Component Matching. We 
compared the performance of Component Matching and the existing 
certificateExactMatch implementation of OpenLDAP which utilizes openssl 
certificate decoder. We were able to use the DirectoryMark benchmarking 
tool for Component Matching because DirectoryMark clients naturally 
support component matching without modification.

Experimental platform
        - Server: IBM BladeCenter blade node with 2x2.4G HT Xeon, Linux 
Kernel 2.4.20
        - Client: IBM BladeCenter blade node with 2x2.4G HT Xeon, Windows 
2000
        - Network: 1Gbps Ethernet
 
Directory
        - 100,000 entry DIT
        - Each entry is a person entry with one userCertificate attribute
        - Operations: Random searches on tbsCertificate.serialNumber 
(serialNumber in userCertificate)
        - Indexing: tbsCertificate.serialNumber

Result (average of 3 runs)
        - Component Matching: 
                - Throughput: 3273.66 ops/sec
                - Max latency: 20ms
        - certificateExactMatch in OpenLDAP
                - Throughput: 3674.73 ops/sec
                - Max latency: 18ms
 
The performance numbers show that the overhead of Component Matching is 
around 10% which we attribute to the component filter parsing overhead. 
However, we expect that Component Matching performs on par with the custom 
openssl matching when the attribute aliasing mechanism is used in 
Component Matching because this will eliminate the additional component 
filter parsing steps.

Sang Seok Lim

IBM T.J Watson Research Center
Enterprise Linux Group
[email-masked]

Date: Fri, 03 Dec 2004 17:34:13 -0500
From: Steve Hanna <[email-masked]>
To: David Chadwick <[email-masked]>
CC: Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

David,

I'm talking about CertificateAssertion, not
CertificateExactAssertion. The former allows
matching by issuer, subject, subjectAltName,
and several other useful fields. The latter
only allows matching on issuer and serial
number. Of course, you must know all about
this if you invented them both. But I want
to be clear about what I was talking about.

With respect to your argument that all clients
support your schema without code changes, not
all clients do a full subtree search. Some just
retrieve the certificates directly from the user's
or CA's directory entry. Yes, you can work around
the problem by storing the certificates in both
the old and the new location but that has all
the consistency problems that have been described
elsewhere.

Thanks,

Steve

David Chadwick wrote:
> 
> 
> Steve Hanna wrote:
> 
>>
>> David,
>>
>> Thanks for providing some information on server
>> support for your schema and for component matching.
>> I would like to mention that component matching
>> is not the only server-side solution. X.509 and
>> draft-zeilenga-ldap-x509-00.txt (the successor
>> to RFC 2587) include a CertificateAssertion that
>> should be easy to implement on the server side.
> 
> 
> Steve
> 
> I believe that this matching rule and assertion was first provided by 
> myself in "Additional LDAP Schema for PKIs and PMIs" 
> <draft-pkix-ldap-schema-00.txt> in July 2000. And the exact match was 
> implemented shortly afterwards in OpenLDAP. So exact certificate 
> matching is not difficult. It is when you want to match on arbitrary 
> certificate contents that it gets difficult.
> 
> All LDAP clients that allow configuration of the attributes to be 
> searched for support attribute extraction
> 
> regards
> 
> David
> 
> 
>>
>> You say that "all clients can naturally support
>> [your schema] without any code change". This isn't
>> true. 
> 
> 
> Sorry, but it is. In your argument below you forget two things. Firstly 
> when searching for an entry you do NOT know the DN of the entry 
> (otherwise a full subtree search is not needed, and a pseudo-read 
> [search base entry only] is used). Thus is makes no difference where the 
> certificate is located with a full search. Secondly, by storing the 
> certificate in both places, which is specifically allowed for, then both 
> sets of clients can be supported ie. ones that know where to read, and 
> ones that dont.
> 
> 
> 
> 
>  >
> Any client that tries to retrieve certificates
> 
>> from an LDAP directory will need to look in a
>> different location. If the client doesn't know
>> which schema is in use (which will often happen
>> since clients are rarely configured with schema
>> information), it must look in both places.
>> Maybe you mean that clients don't need to change
>> if the certificates are stored in both locations,
>> but this is only a transitional situation.
>>
>> So I would say it's more accurate to say that
>> clients must change for your solution but need
>> not change for the CertificateAssertion or
>> component matching solutions. Could you tell me
>> about any clients that support your solution?
>> I believe it's true that there are many more
>> client applications than server applications
>> so it will be much more difficult to change
>> the clients than the servers.
>>
>> Thanks,
>>
>> Steve
>>
>> David Chadwick wrote:
>>
>>> Steve
>>>
>>> we have had the meeting at IETF 56 and the majority agreed that 
>>> component matching was the best long term solution to aim for. That 
>>> is on the record. But also on the record is the note that vendors 
>>> appear to be reluctant to support this, and that support for 
>>> attribute extraction is a short term pragmatic solution that is much 
>>> easier for suppliers and users to support. It does not add complexity 
>>> to clients, on the contrary it makes it easier for clients. 
>>> Consequently the ADs agreed that component matching should be 
>>> published as Information RFCs.
>>>
>>> Since that time (Spring 2003) suppliers have not moved that far (if 
>>> at all) towards supporting component matching. Only Steven Legg's 
>>> Australian company, which had supported component matching prior to 
>>> publication of the RFCs, and OpenLDAP which I believe can now support 
>>> it, have done anything in this direction. Attribute extraction on the 
>>> other hand has double that amount of supporting implementations, plus 
>>> all clients can naturally support it without any code change.
>>>
>>> So whilst we might all like the ideal today, pragmatically we need to 
>>> recognise that this is not the situation on the ground today. If it 
>>> were I would happily forget the attribute extraction IDs. My main 
>>> desire is that we need to provide LDAP support to X.509 users today. 
>>> We should recognise that it will be many years before the big LDAP 
>>> suppliers might eventually decide to support component matching. 
>>> After all, there are several very basic features of LDAP that some 
>>> large LDAP suppliers dont yet support, even though they have been 
>>> standardised for over 10 years. As several well known people have 
>>> already said, LDAP has not done a good job at supporting PKI. So why 
>>> believe things will miraculously change overnight with component 
>>> matching. Be realistic, it wont. Unless of course Stefan Santesson 
>>> can now stand up for his supplier and tell us when they will support 
>>> component matching. That would indeed be very encouraging to us all.
>>>
>>> thanks
>>>
>>> David
>>>
>>>
>>> Steve Hanna wrote:
>>>
>>>>
>>>> David Chadwick wrote:
>>>>  > what ever happened to the concept of let a thousand flowers bloom?
>>>>
>>>> Standards work is not about "let a thousand flowers bloom".
>>>> It's about agreeing on standards that will help systems
>>>> interoperate and work well together. From my analysis,
>>>> your proposals do not provide substantial benefit and
>>>> they do add substantial complexity. I don't think that
>>>> the Internet community will be well served by publishing
>>>> these documents. They will only increase confusion for
>>>> implementors and add complexity for directory clients,
>>>> which will now need to support several directory schemas.
>>>>
>>>> In a separate email, David wrote:
>>>>
>>>>> At no time to my knowledge was it suggested that this work be removed
>>>>> from the PKIX set of IDs, otherwise why would they have continued 
>>>>> to be
>>>>> published with PKIX IDs instead of individual IDs for more than a year
>>>>> after the meeting. And why would I have continued to report on their
>>>>> progress at PKIX meetings?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> At IETF 56, there was a discussion about whether to move
>>>> to your proposed schemas (at that time, an independent
>>>> submission) or stick with the current schema and use
>>>> component matching to solve the problem. I raised concerns
>>>> about your proposal at that meeting. As noted in the meeting
>>>> minutes, a straw poll favored component matching but it was
>>>> agreed to take this discussion to the mailing list. I never
>>>> saw any discussion on the mailing list.
>>>>
>>>> At IETF 57, it was explained that the question had been
>>>> decided in favor of your schema (with no discussion
>>>> on the email list). I sent an email to the PKIX list
>>>> complaining about this and reiterating my concerns about
>>>> your proposal. Sharon Boeyen sent email supporting my
>>>> concerns. Nobody sent email favoring the proposals.
>>>>
>>>> Now these documents are in Working Group Last Call.
>>>> I have seen several emails from experienced PKI and
>>>> directory folks raising concerns about your proposal
>>>> and little email supporting it. I think it's clear
>>>> there's no WG consensus in favor of your proposals.
>>>> I suspect there never was a consensus in favor of
>>>> them becoming WG drafts. If anything, the consensus
>>>> seems to be that these documents are not representative
>>>> of the IETF's future direction and should only be
>>>> published with an Experimental status and some sort
>>>> of warning.
>>>>
>>>> I'm sorry for any confusion caused by the status of
>>>> your documents as WG drafts. It seems clear to me that
>>>> they should never have received such a status since
>>>> there was never rough consensus in the PKIX WG about
>>>> taking them on as work items. However, it is better to
>>>> remove this confusion now by publishing them as
>>>> Experimental with a warning than to expand the confusion
>>>> by publishing them as Informational without a warning.
>>>>
>>>> Thanks,
>>>>
>>>> Steve
>>>>
>>>>
>>>>
>>>
>>
>>
>>
> 

Date: Fri, 03 Dec 2004 10:49:58 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Cc: Steve Hanna <[email-masked]>, Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked]
Sender: [email-masked]

At 08:46 AM 12/2/2004, David Chadwick wrote:
>I believe that this matching rule and assertion was first provided by myself in "Additional LDAP Schema for PKIs and PMIs" <draft-pkix-ldap-schema-00.txt> in July 2000. And the exact match was implemented shortly afterwards in OpenLDAP. So exact certificate matching is not difficult.

I note that one of your draft says:
   A couple of Internet Drafts [9,10] have been specified,
   but implementation of them is complex.

[9,10] respectively refer to draft-ietf-pkix-ldap-pki-schema
and draft-ietf-pkix-ldap-pmi-schema, which appear
to have replaced draft-ietf-pkix-ldap-schema.

This reflects another problem with these I-Ds, much
of the material doesn't appear to reflect the current
state of works in progress, as well as the current
state of works on the Standards Track.  Some updating
here would be useful.

Kurt 

Date: Fri, 03 Dec 2004 10:16:49 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: progression of Component Matching (Was: WG Last Call: Certificate Schema)
Cc: [email-masked]
Sender: [email-masked]

At 08:33 AM 12/2/2004, David Chadwick wrote:
>and that the latter [component matching] never gets past proposed standard. 

Given that we already (within a year of the publication of the
that proposed standard) have two independently developed
server implementations, and a number of independently developed
client implementations, and will likely be able to demonstrate
a high degree of interoperability between them, I have no doubt
that component matching will be progressed to Draft Standard
status once the base LDAP TS does (which, of course, is at
least a year out).

Kurt 

Date: Fri, 03 Dec 2004 08:48:16 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: draft-ietf-pkix-ldap-*: security considerations
Cc: [email-masked]
Sender: [email-masked]

At 08:05 AM 12/2/2004, David Chadwick wrote:

>Kurt
>
>data inconsistency could arise because of
>a)bad implementations and
>b) an attack.

Note that draft-ietf-pkix-ldap-pkc says:
>   If certificates are stored redundantly in person entries and in
>   certificate entries below the person entries, maintainers of     
>   repositories MUST make sure that the same certificates are stored in
>   the person entry and the respective certificate entries and keep this
>   consistency. 

I assume "maintainers" here refers to humans maintaining the
repository.  But even if this referred to automated "maintainers",
I would argue that inconsistencies are inherit in the approach.

>I dont believe RFCs address concerns of bad implementations.

Actually, RFCs often do need to concern themselves about bad
implementations.

>In the case of attack, the attributes may not match the stored certificate, so the "wrong" certificate or no certificate could be returned.

You are assuming the client is requesting the return of the
certificate.  The client may merely be matching components
of the certificate, but requesting the return of non-certificate
information.   The existing text does not appear to consider
this case.

>But since only the stored certificate is being requested (the attributes are only used to aid fitering), and this is digitally signed, then it cannot be tampered with without detection.  Providing the client checks that certificate that is returned is the correct one, then all we have is a denial of service attack.

I see no mention of this attack in the documents.

>And this can happen if an attacker modifies any LDAP server, including a component matching one. So the security concerns apply equally well to the component matching implementations, and to LDAP servers that dont support any certificate matching.

Maybe so, but regardless, this document needs to discuss security
issues that are applicable to it.  And, as I noted previously,
because of certain aspects of this particular approach (including
duplication of information), the manner in which these issues
might need to be addressed is not necessarily the same how those
issues are more generally addressed.

>But since this RFC does not address protocol issues,

The document cannot escape discussing relevant protocol issues.
And, I note, some of the issues have more to do with the
model aspects used in this approach than protocol.

>then I dont believe any additional security concerns need be added to it. The concerns should be applied to the base LDAP protocol spec "warning, if the LDAP server is tampered with, the information that is returned in the LDAP protocol may not be that which is required".
>
>regards
>
>David
>
>
>Kurt D. Zeilenga wrote:
>>The security considerations sections of these documents
>>are inadequate and seem to nothing more than echo
>>general security concerns.  Given the nature of the
>>information being stored, I would suspect there would
>>be some significant other considerations.  In particular,
>>I am surprised not to see any discussion (in the security
>>consideration section or elsewhere) on the impact of
>>data inconsistencies between user and certificate objects.
>>Kurt
>>
>
>-- 
>
>*****************************************************************
>
>David W. Chadwick, BSc PhD
>Professor of Information Systems Security
>IS Institute, University of Salford, Salford M5 4WT
>Tel: +44 161 295 5351  Fax +44 1484 532930
>Mobile: +44 77 96 44 7184
>Email: [email-masked]
>Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
>Research Web site: http://sec.isi.salford.ac.uk
>Entrust key validation string: MLJ9-DU5T-HV8J
>PGP Key ID is 0xBC238DE5
>
>*****************************************************************

Date: Fri, 03 Dec 2004 04:10:11 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: draft-ietf-pkix-ldap-* consistency issues
Cc: [email-masked]
Sender: [email-masked]

At 08:14 AM 12/2/2004, David Chadwick wrote:
>I agree that certificates should be stored in the person's entry if that is what clients require or expect. I do not see data redundancy as being a problem do you?

Yes.  Aside from consistency issues (which I will touch on in response to
one of your other posts), there are other concerns.  By duplicating the
data, you are creating separate points of access which must be properly
controlled.  Obviously, the burden (and a significant burden at that)
to duplicate the access controls would fall onto the directory administrator.
It is quite possible, due to aspects of current access facilities, that the
directory administrator will not be easily able to duplicate the access
controls.  For instance, to support value extraction, the administrator
needs to give entry creation rights to entities which previously only
had the right to create values of certificate attributes and, by doing
so, granting more access than desirable.  Or, because other entities
have permission to create entries subordinate to the person entries
(for instance, the person herself might be allowed to create subordinate
entries at will), some of which could contain certificates, these entities
can potentially (intentionally or unintentionally) spoof others into
believing that certificates of subordinate entries belong to superior
entries.

>Its not rocket science but standard database stuff.
>After all, most LDAP servers support single master or multiple master replication. So what is all the fuss about?

These are services provided by and managed by LDAP servers.  The value
extraction approach, by its very nature, is managed by LDAP clients or,
as the pkix-pkc-schema document suggests, managed by the maintainer of
the directory service.

Kurt 

Date: Fri, 03 Dec 2004 03:39:09 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: differences in procedures (Was: draft-ietf-pkix-ldap-*-schema WG LC comments)
Cc: [email-masked]
Sender: [email-masked]

At 09:04 AM 12/2/2004, David Chadwick wrote:
>Finally, once they are published as information RFCs, what is the difference between a WG or individual submission?  Is there a note to say that it is or is not the product of a working group?

It is general practice for the IESG to add a note to individual
submissions to the RFC Editor of this basic form:
   This RFC itself is not a candidate for any level of Internet
   Standard.  The IETF disclaims any knowledge of the fitness of this
   RFC for any purpose, and in particular notes that it has not had
   complete IETF review for such things as security, congestion control,
   or inappropriate interaction with deployed protocols.  The RFC Editor
   has chosen to publish this document at its discretion.

Additionally, where an individual submission proposes an alternative to
a standard track approach, the IESG commonly adds additional notes
regarding the applicability of the approaches.

>And since we are at the end of one procedure

These I-Ds are no where near the end of the IETF procedure.

>there is little point in switching horses to another procedure now,
>unless of course you would like to slow down publication (which of course you do)

If I truly wanted to delay publication (which I don't), I would
not have suggested the alternative procedure.  Keeping it in the
WG will be dead slow.

Switching to Individual Submission to RFC Editor procedure would
likely significantly speed up publication.   The IETF process
is much slower, especially in cases where there is significant
contention.

However, I do not recommend Individual Submission because it will
be faster, I recommend it because it is more appropriate given the
significant contention over technical issues.

Regards, Kurt

Date: Fri, 03 Dec 2004 03:12:09 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: draft-ietf-pkix-ldap-*-schema WG LC comments
Cc: [email-masked]
Sender: [email-masked]

At 09:04 AM 12/2/2004, David Chadwick wrote:
>Kurt D. Zeilenga wrote:
>>David,
>>We obviously have different recollections of the prior
>>conversations.  This may in part due to the fact that there
>>were many different conversations involving different
>>participants.  I recall reaching a general consensus (amongst
>>the participants) that these I-D were to progressed to the RFC
>>Editor on an Individual basis as either Informational or
>>Experimental.
>
>Kurt
>
>We obviously have different recollections here.  The IDs have always contained a status note saying they were from the PKIX working group along with a request to send email comments to the PKIX list.  I am sure the PKIX chairs would not have countenanced this 
>or WG time to present them, or the ID names they have had, if they were meant to be individual submissions.

I am sure you meant them to be WG I-Ds.  I am sure that at present
they, in terms of process, are regarded as WG I-D.  You'll note that
I framed my recommendations and comments with this in mind.

However, I doubt that the WG has paid them much mind.  But regardless,
what matters at this time is whether or not the WG believes at present
the document is technical sound and otherwise appropriate to publish.

>On the contrary, by making them WG drafts, we were meant to tease out all the issues that you are raising now during the last call.  So really it would have been more beneficial to everyone if you had said something earlier.

I think I have made evident over the years my general concerns regarding
this approach, and my position that it should not be ordained by the IETF.
Because of the nature of the concerns, no amount of teasing that will
resolve them.

I note that I do have some vague recollection of noting some process concerns
to the chairs in regards to these I-Ds, but I also recollect not wanting to
turn things into a process debate.

>And given that you were acting as a consultant on the project that actually implemented the extraction IDs, you cannot actually plead ignorance of them.

I don't believe I plead ignorance.  I can be regarded as being a consultant
to many projects, even projects which I do not believe are taking the right
approach.  I think I've been vocal regarding my concerns with the value
extraction approach, in the IETF, in the OpenLDAP Project, and in other
projects (such as your TERENA-funded project).

>Could it be that because you have only just recently implemented component matching in OpenLDAP that you are now happy for the attribute extraction IDs to be forgotten, but prior to this, you were happy to have them?

My concerns with the value extraction approach are long standing and
well known.

I will comment to remainder in a separate note.

Kurt 

Date: Fri, 03 Dec 2004 03:01:33 -0800
To: David Chadwick <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Cc: [email-masked]
Sender: [email-masked]

At 08:28 AM 12/2/2004, David Chadwick wrote:
>>In particular, how does this approach providing for matching
>>upon components of the subject (or other) DNs in the certificate?
>
>As you know, distinguished names only support exact matching.

You seem to have missed my point(s).

The purpose of value extraction is to allow the client to match
on components of the certificate.  My point is that is that
the approach fails to allow the client to match on all components
of the certificate.  It only allows the client to match on
extracted components of each of the certificates, and then only
on an separate basis.

(The separate basis part I raised in separate email.)

>Thus if the client does not know the DN of the subject, he would have to do a standard search for this first,

In my example, the client wasn't asking for the return of the subject DN,
it was asking for the return of the entry containing a subject DN
with contained certain components.

>and then use it to find the certificates containing this DN.

In my example, the client was interested in non-certificate
information in the entry representing the entity possessing the
certificate.

>The same for the issuer DN. Perhaps you are arguing for a DN substring matching rule or component matching rule to be added to X.520? 

As Component matching supports DNs, there is no reason to ask for
it.  My point is that the value extraction approach is an
incomplete and problematic solution to matching of components.

Date: Thu, 02 Dec 2004 17:04:15 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: "Kurt D. Zeilenga" <[email-masked]>
CC: [email-masked]
Subject: Re: draft-ietf-pkix-ldap-*-schema WG LC comments
Sender: [email-masked]

Kurt D. Zeilenga wrote:
> David,
> 
> We obviously have different recollections of the prior
> conversations.  This may in part due to the fact that there
> were many different conversations involving different
> participants.  I recall reaching a general consensus (amongst
> the participants) that these I-D were to progressed to the RFC
> Editor on an Individual basis as either Informational or
> Experimental.

Kurt

We obviously have different recollections here. The IDs have always 
contained a status note saying they were from the PKIX working group 
along with a request to send email comments to the PKIX list. I am sure 
the PKIX chairs would not have countenanced this or WG time to present 
them, or the ID names they have had, if they were meant to be individual 
submissions. On the contrary, by making them WG drafts, we were meant to 
tease out all the issues that you are raising now during the last call. 
So really it would have been more beneficial to everyone if you had said 
something earlier. And given that you were acting as a consultant on the 
project that actually implemented the extraction IDs, you cannot 
actually plead ignorance of them. Could it be that because you have only 
just recently implemented component matching in OpenLDAP that you are 
now happy for the attribute extraction IDs to be forgotten, but prior to 
this, you were happy to have them?

Finally, once they are published as information RFCs, what is the 
difference between a WG or individual submission? Is there a note to say 
that it is or is not the product of a working group? Or is the only 
difference in the procedure used to get publication? And since we are at 
the end of one procedure there is little point in switching horses to 
another procedure now, unless of course you would like to slow down 
publication (which of course you do)

regards

David

> 
> Anyways, the reason why I noted my understandings of the prior
> conversations was to lead into my comments regarding IESG notes,
> as well as to serve as a basis for my recommendation that you
> withdraw the I-Ds from WG consideration and take these directly
> to the RFC Editor.  I recommend this approach because I do not
> believe consensus exists to progress as products of this WG,
> or of the IETF.
> 
> Please note that I don't dispute that the documents are
> presently WG documents and that this is a WG LC.  I personally
> don't put any weight in these facts towards the issue of
> whether the WG should or should not progress these documents.
> 
> At 10:51 AM 11/29/2004, David Chadwick wrote:
> 
>>Your objections really do sound like those of someone who is frightened that the component matching approach will not be adopted and that the the current approach will kill it off.
> 
> 
> I believe that component matching will become widely implemented,
> regardless of the proposed extraction approach is published or not.
> However publishing these documents without appropriate caution (which
> I believe they currently do not) they offer an alternative approach
> to standard track approaches, and that these standard track approaches
> should be favored, may not only cause confusion in the community,
> but may lead to interoperability problems.
> 
> 
>>I hope this is not the case, because I would like to see component matching approach ubiquitously supported. However, many people need LDAP search support today for PKIs, and the current approach provides the simplest and quickest fix for this, though as we all agree, not the most elegant.
> 
> 
> The problem with value extraction is that the fix brings far more problems
> than it purports to resolve.  You have completely glossed over the complexity
> this approach pushes onto clients.   Dealing with multiple entries is simply
> not as simple as dealing with one entry.
> 
> 
>>regards
>>
>>David
>>
>>p.s your technical argument below is flawed. People are not the only entities that possess certificates, and so the object class person is not necessary nor required for the search.
> 
> 
> I fully realize that persons are not the only entity that might
> possess a certificate.  My point is that the object representing
> the entity is not returned by the certificate search.
> 
> 
>>The user is only interested in obtaining the certificate containing the subject name with a particular RDN, and the current approach supports this kind of search.
> 
> 
> There are a wide range of applications which need to acquir
> non-certificate information about the user based upon information
> they know about the user's certificate.
> 
> 
> 
>>Kurt D. Zeilenga wrote:
>>
>>>It was my understanding after previous discussions (involving
>>>the authors, chairs, ADs, myself, and others) that these I-Ds
>>>would be individually submitted to the RFC Editor for
>>>consideration.  I am a bit surprised that they are now being
>>>last called in PKIX WG as I was under the impression that the
>>>WG has already reached consensus that these I-Ds would not be
>>>progressed as products of the PKIX WG.
>>>If these had been submitted directly to the RFC Editor, I
>>>would have recommended to the IESG that an "IESG note" be
>>>added to each I-D that clearly stated the I-D was not a
>>>product of the IETF, provided an alternative to a standard
>>>track approach, and that the standard track approach
>>>should be favored by implementors and deployers.
>>>However, as these I-Ds have been submitted to the PKIX WG
>>>for consideration, the PXIX WG must reach consensus that the
>>>I-Ds are technical sound and appropriate for publication as
>>>a products of this WG.  I seriously doubt this WG will now
>>>reach consensus that these I-Ds should be published as
>>>products of the PKIX WG.
>>>I do not believe the value extraction approach to be sound as
>>>it doesn't actually address the key problem: matching against
>>>arbitrary component values of a certificate (or other complex
>>>structures).  For instance, say the application wanted to match
>>>all person objects containing a certificate whose subject DN
>>>contained an RDN containing an AVA with a common name of X.  This
>>>schema simply doesn't support that kind of matching because only
>>>select values of the certificate, some of which are themselves
>>>complex structures, have been extracted AND, even if they had
>>>been, the operation would not find the person object holding
>>>the certificate, but a certificate object.
>>>I believe the existing standard track approach more than
>>>adequately addresses application needs in this area, and that
>>>it can and will be implemented.  Not only are there two
>>>existing implementations today, one is open source (and available
>>>for reuse under non-restrictive terms).  While I cannot speak for
>>>the plans of other vendors, I can say that I have been contacted
>>>by a number of vendors who made it clear to me that they intend
>>>to put implementation of the standard track approach into their
>>>product plans.
>>>Hence, I oppose progression of the I-Ds as products of the PKIX
>>>WG (regardless of track).  I encourage the authors to withdraw
>>>the I-Ds from IETF consideration and to submit them directly to
>>>the RFC Editor for consideration.
>>>I note that I found a number of other issues in the I-Ds.  I will
>>>separately provide the WG with my review notes.
>>>Regards, Kurt
>>
>>-- 
>>
>>*****************************************************************
>>
>>David W. Chadwick, BSc PhD
>>Professor of Information Systems Security
>>IS Institute, University of Salford, Salford M5 4WT
>>Tel: +44 161 295 5351  Fax +44 1484 532930
>>Mobile: +44 77 96 44 7184
>>Email: [email-masked]
>>Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
>>Research Web site: http://sec.isi.salford.ac.uk
>>Entrust key validation string: MLJ9-DU5T-HV8J
>>PGP Key ID is 0xBC238DE5
>>
>>*****************************************************************
> 
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 02 Dec 2004 16:46:26 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: Steve Hanna <[email-masked]>
CC: Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

Steve Hanna wrote:
> 
> David,
> 
> Thanks for providing some information on server
> support for your schema and for component matching.
> I would like to mention that component matching
> is not the only server-side solution. X.509 and
> draft-zeilenga-ldap-x509-00.txt (the successor
> to RFC 2587) include a CertificateAssertion that
> should be easy to implement on the server side.

Steve

I believe that this matching rule and assertion was first provided by 
myself in "Additional LDAP Schema for PKIs and PMIs" 
<draft-pkix-ldap-schema-00.txt> in July 2000. And the exact match was 
implemented shortly afterwards in OpenLDAP. So exact certificate 
matching is not difficult. It is when you want to match on arbitrary 
certificate contents that it gets difficult.

All LDAP clients that allow configuration of the attributes to be 
searched for support attribute extraction

regards

David

> 
> You say that "all clients can naturally support
> [your schema] without any code change". This isn't
> true. 

Sorry, but it is. In your argument below you forget two things. Firstly 
when searching for an entry you do NOT know the DN of the entry 
(otherwise a full subtree search is not needed, and a pseudo-read 
[search base entry only] is used). Thus is makes no difference where the 
certificate is located with a full search. Secondly, by storing the 
certificate in both places, which is specifically allowed for, then both 
sets of clients can be supported ie. ones that know where to read, and 
ones that dont.

Any client that tries to retrieve certificates
> from an LDAP directory will need to look in a
> different location. If the client doesn't know
> which schema is in use (which will often happen
> since clients are rarely configured with schema
> information), it must look in both places.
> Maybe you mean that clients don't need to change
> if the certificates are stored in both locations,
> but this is only a transitional situation.
> 
> So I would say it's more accurate to say that
> clients must change for your solution but need
> not change for the CertificateAssertion or
> component matching solutions. Could you tell me
> about any clients that support your solution?
> I believe it's true that there are many more
> client applications than server applications
> so it will be much more difficult to change
> the clients than the servers.
> 
> Thanks,
> 
> Steve
> 
> David Chadwick wrote:
> 
>> Steve
>>
>> we have had the meeting at IETF 56 and the majority agreed that 
>> component matching was the best long term solution to aim for. That is 
>> on the record. But also on the record is the note that vendors appear 
>> to be reluctant to support this, and that support for attribute 
>> extraction is a short term pragmatic solution that is much easier for 
>> suppliers and users to support. It does not add complexity to clients, 
>> on the contrary it makes it easier for clients. Consequently the ADs 
>> agreed that component matching should be published as Information RFCs.
>>
>> Since that time (Spring 2003) suppliers have not moved that far (if at 
>> all) towards supporting component matching. Only Steven Legg's 
>> Australian company, which had supported component matching prior to 
>> publication of the RFCs, and OpenLDAP which I believe can now support 
>> it, have done anything in this direction. Attribute extraction on the 
>> other hand has double that amount of supporting implementations, plus 
>> all clients can naturally support it without any code change.
>>
>> So whilst we might all like the ideal today, pragmatically we need to 
>> recognise that this is not the situation on the ground today. If it 
>> were I would happily forget the attribute extraction IDs. My main 
>> desire is that we need to provide LDAP support to X.509 users today. 
>> We should recognise that it will be many years before the big LDAP 
>> suppliers might eventually decide to support component matching. After 
>> all, there are several very basic features of LDAP that some large 
>> LDAP suppliers dont yet support, even though they have been 
>> standardised for over 10 years. As several well known people have 
>> already said, LDAP has not done a good job at supporting PKI. So why 
>> believe things will miraculously change overnight with component 
>> matching. Be realistic, it wont. Unless of course Stefan Santesson can 
>> now stand up for his supplier and tell us when they will support 
>> component matching. That would indeed be very encouraging to us all.
>>
>> thanks
>>
>> David
>>
>>
>> Steve Hanna wrote:
>>
>>>
>>> David Chadwick wrote:
>>>  > what ever happened to the concept of let a thousand flowers bloom?
>>>
>>> Standards work is not about "let a thousand flowers bloom".
>>> It's about agreeing on standards that will help systems
>>> interoperate and work well together. From my analysis,
>>> your proposals do not provide substantial benefit and
>>> they do add substantial complexity. I don't think that
>>> the Internet community will be well served by publishing
>>> these documents. They will only increase confusion for
>>> implementors and add complexity for directory clients,
>>> which will now need to support several directory schemas.
>>>
>>> In a separate email, David wrote:
>>>
>>>> At no time to my knowledge was it suggested that this work be removed
>>>> from the PKIX set of IDs, otherwise why would they have continued to be
>>>> published with PKIX IDs instead of individual IDs for more than a year
>>>> after the meeting. And why would I have continued to report on their
>>>> progress at PKIX meetings?
>>>
>>>
>>>
>>>
>>> At IETF 56, there was a discussion about whether to move
>>> to your proposed schemas (at that time, an independent
>>> submission) or stick with the current schema and use
>>> component matching to solve the problem. I raised concerns
>>> about your proposal at that meeting. As noted in the meeting
>>> minutes, a straw poll favored component matching but it was
>>> agreed to take this discussion to the mailing list. I never
>>> saw any discussion on the mailing list.
>>>
>>> At IETF 57, it was explained that the question had been
>>> decided in favor of your schema (with no discussion
>>> on the email list). I sent an email to the PKIX list
>>> complaining about this and reiterating my concerns about
>>> your proposal. Sharon Boeyen sent email supporting my
>>> concerns. Nobody sent email favoring the proposals.
>>>
>>> Now these documents are in Working Group Last Call.
>>> I have seen several emails from experienced PKI and
>>> directory folks raising concerns about your proposal
>>> and little email supporting it. I think it's clear
>>> there's no WG consensus in favor of your proposals.
>>> I suspect there never was a consensus in favor of
>>> them becoming WG drafts. If anything, the consensus
>>> seems to be that these documents are not representative
>>> of the IETF's future direction and should only be
>>> published with an Experimental status and some sort
>>> of warning.
>>>
>>> I'm sorry for any confusion caused by the status of
>>> your documents as WG drafts. It seems clear to me that
>>> they should never have received such a status since
>>> there was never rough consensus in the PKIX WG about
>>> taking them on as work items. However, it is better to
>>> remove this confusion now by publishing them as
>>> Experimental with a warning than to expand the confusion
>>> by publishing them as Informational without a warning.
>>>
>>> Thanks,
>>>
>>> Steve
>>>
>>>
>>>
>>
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 02 Dec 2004 16:33:59 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: Stefan Santesson <[email-masked]>
CC: Steve Hanna <[email-masked]>, Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

Stefan Santesson wrote:
> David,
> 
> It seems that we all agree that these documents don't represent the
> desired future direction.
> 
> If this is the easy fix solution to overcome temporary shortcomings of
> current implementation of existing standards, then we shouldn't make
> this into a standard, or anything that looks like a standard or guidance
> on future direction.

Stefan

this was agreed at the IETF 56 meeting, which is why we agreed to 
downgrade it to informational. I am happy with experimental either, and 
even more happy to convert it to historical once MS and others support 
component matching. But we also have to consider that the majority of 
suppliers might choose to implement attribute extraction rather than 
component matching and that the latter never gets past proposed 
standard. After all, we technies are not always that good at predicting 
market trends are we?

regards

David

> 
> I lack the discussion and insight on the potential harm that may follow
> from diversity in applications where some decide to go the component
> matching way or do some other tweak to make use of current schema, while
> other implementations chooses the attribute extraction path and creation
> of separate entries for certificates.
> 
> I fear a great mess out of this diversity and it probably won't help us
> get to the target we all seems to agree on.
> 
> I regret not speaking up on this before, but a document can be
> challenged until it has left the WG, and the fact that a document has
> been processed as a WG document is not by itself a guarantee that it
> will be published as one.
> 
> 
> Stefan Santesson
> Microsoft Security Center of Excellence (SCOE)
>  
> 
>>-----Original Message-----
>>From: [email-masked]
> 
> [mailto:[email-masked]]
> 
>>On Behalf Of David Chadwick
>>Sent: den 30 november 2004 14:29
>>To: Steve Hanna
>>Cc: Tim Polk; [email-masked]; [email-masked]; [email-masked];
>>[email-masked]
>>Subject: Re: WG Last Call: Certificate Schema
>>
>>
>>Steve
>>
>>we have had the meeting at IETF 56 and the majority agreed that
>>component matching was the best long term solution to aim for. That is
>>on the record. But also on the record is the note that vendors appear
> 
> to
> 
>>be reluctant to support this, and that support for attribute
> 
> extraction
> 
>>is a short term pragmatic solution that is much easier for suppliers
> 
> and
> 
>>users to support. It does not add complexity to clients, on the
> 
> contrary
> 
>>it makes it easier for clients. Consequently the ADs agreed that
>>component matching should be published as Information RFCs.
>>
>>Since that time (Spring 2003) suppliers have not moved that far (if at
>>all) towards supporting component matching. Only Steven Legg's
>>Australian company, which had supported component matching prior to
>>publication of the RFCs, and OpenLDAP which I believe can now support
>>it, have done anything in this direction. Attribute extraction on the
>>other hand has double that amount of supporting implementations, plus
>>all clients can naturally support it without any code change.
>>
>>So whilst we might all like the ideal today, pragmatically we need to
>>recognise that this is not the situation on the ground today. If it
> 
> were
> 
>>I would happily forget the attribute extraction IDs. My main desire is
>>that we need to provide LDAP support to X.509 users today. We should
>>recognise that it will be many years before the big LDAP suppliers
> 
> might
> 
>>eventually decide to support component matching. After all, there are
>>several very basic features of LDAP that some large LDAP suppliers
> 
> dont
> 
>>yet support, even though they have been standardised for over 10
> 
> years.
> 
>>As several well known people have already said, LDAP has not done a
> 
> good
> 
>>job at supporting PKI. So why believe things will miraculously change
>>overnight with component matching. Be realistic, it wont. Unless of
>>course Stefan Santesson can now stand up for his supplier and tell us
>>when they will support component matching. That would indeed be very
>>encouraging to us all.
>>
>>thanks
>>
>>David
>>
>>
>>Steve Hanna wrote:
>>
>>>David Chadwick wrote:
>>> > what ever happened to the concept of let a thousand flowers
> 
> bloom?
> 
>>>Standards work is not about "let a thousand flowers bloom".
>>>It's about agreeing on standards that will help systems
>>>interoperate and work well together. From my analysis,
>>>your proposals do not provide substantial benefit and
>>>they do add substantial complexity. I don't think that
>>>the Internet community will be well served by publishing
>>>these documents. They will only increase confusion for
>>>implementors and add complexity for directory clients,
>>>which will now need to support several directory schemas.
>>>
>>>In a separate email, David wrote:
>>>
>>>
>>>>At no time to my knowledge was it suggested that this work be
> 
> removed
> 
>>>>from the PKIX set of IDs, otherwise why would they have continued
> 
> to be
> 
>>>>published with PKIX IDs instead of individual IDs for more than a
> 
> year
> 
>>>>after the meeting. And why would I have continued to report on
> 
> their
> 
>>>>progress at PKIX meetings?
>>>
>>>
>>>At IETF 56, there was a discussion about whether to move
>>>to your proposed schemas (at that time, an independent
>>>submission) or stick with the current schema and use
>>>component matching to solve the problem. I raised concerns
>>>about your proposal at that meeting. As noted in the meeting
>>>minutes, a straw poll favored component matching but it was
>>>agreed to take this discussion to the mailing list. I never
>>>saw any discussion on the mailing list.
>>>
>>>At IETF 57, it was explained that the question had been
>>>decided in favor of your schema (with no discussion
>>>on the email list). I sent an email to the PKIX list
>>>complaining about this and reiterating my concerns about
>>>your proposal. Sharon Boeyen sent email supporting my
>>>concerns. Nobody sent email favoring the proposals.
>>>
>>>Now these documents are in Working Group Last Call.
>>>I have seen several emails from experienced PKI and
>>>directory folks raising concerns about your proposal
>>>and little email supporting it. I think it's clear
>>>there's no WG consensus in favor of your proposals.
>>>I suspect there never was a consensus in favor of
>>>them becoming WG drafts. If anything, the consensus
>>>seems to be that these documents are not representative
>>>of the IETF's future direction and should only be
>>>published with an Experimental status and some sort
>>>of warning.
>>>
>>>I'm sorry for any confusion caused by the status of
>>>your documents as WG drafts. It seems clear to me that
>>>they should never have received such a status since
>>>there was never rough consensus in the PKIX WG about
>>>taking them on as work items. However, it is better to
>>>remove this confusion now by publishing them as
>>>Experimental with a warning than to expand the confusion
>>>by publishing them as Informational without a warning.
>>>
>>>Thanks,
>>>
>>>Steve
>>>
>>>
>>>
>>
>>--
>>
>>*****************************************************************
>>
>>David W. Chadwick, BSc PhD
>>Professor of Information Systems Security
>>IS Institute, University of Salford, Salford M5 4WT
>>Tel: +44 161 295 5351  Fax +44 1484 532930
>>Mobile: +44 77 96 44 7184
>>Email: [email-masked]
>>Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
>>Research Web site: http://sec.isi.salford.ac.uk
>>Entrust key validation string: MLJ9-DU5T-HV8J
>>PGP Key ID is 0xBC238DE5
>>
>>*****************************************************************
> 
> 
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 02 Dec 2004 16:28:55 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: "Kurt D. Zeilenga" <[email-masked]>
CC: Steve Hanna <[email-masked]>, Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

Kurt D. Zeilenga wrote:
> David,
> 
> While there may have been some in this WG that viewed the
> value extraction approach as a pragmatic solution to various
> specific issues, I believe there are also many, like myself,
> who have never considered the value extraction approach, in
> general, to be practical.  

Others take a different view. Take a look at a paper from a recent IEEE 
conference in Portugal this summer "Multi-level trust in e-government 
certification practice" by Amel Meddeb et al, National Digital 
Certification Agency, Tunisia (I can send you a copy if you need it). 
This proposes using the attribute extraction approach to search for 
certificates of a particular trust level.

noted in my previous
> response, I do not consider the value extraction approach
> as applied here to certificates and such to be pragmatic
> as it simply does not address requirements I am faced with.

It does solve all the ones that I and others have been faced with so 
far. Please give me a real use-case example that cant be solved with it 
(ie. not some esoteric dreamt up case that we know it cannot solve)

> 
> In particular, how does this approach providing for matching
> upon components of the subject (or other) DNs in the certificate?

As you know, distinguished names only support exact matching. Thus if 
the client does not know the DN of the subject, he would have to do a 
standard search for this first, and then use it to find the certificates 
containing this DN. The same for the issuer DN. Perhaps you are arguing 
for a DN substring matching rule or component matching rule to be added 
to X.520?

regards

David

-

Date: Thu, 02 Dec 2004 16:14:18 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: "Kurt D. Zeilenga" <[email-masked]>
CC: [email-masked]
Subject: Re: draft-ietf-pkix-ldap-* consistency issues
Sender: [email-masked]

Kurt

I agree that certificates should be stored in the person's entry if that 
is what clients require or expect. I do not see data redundancy as being 
a problem do you? Its not rocket science but standard database stuff. 
After all, most LDAP servers support single master or multiple master 
replication. So what is all the fuss about?

I think we should simply water down this text by removing the MUSTs and 
replace it with something like the following (note that people are not 
the only objects to have certificates)

Note. If certificates are stored redundantly in subject entries and in
certificate entries below the subject entries, these obviously should be
consistent.

regards

David

Kurt D. Zeilenga wrote:
> draft-ietf-pkix-ldap-pkc-schema-01 basically proposes to copy certificate
> information from the entries representing the entity which possess the
> certificate to a separate certificate entry.  I consider relocation not to
> be feasible option whatsoever as it will simply break some
> existing clients which use basic certificate matching, as well as
> existing and future clients which makes component matching with
> certificates.  However, the document actually reads as if relocation
> of the information is intended.
> 
> This text causes me concern:
> 
>>  If certificates are stored redundantly in person entries and in      
>>  certificate entries below the person entries, maintainers of
>>  repositories MUST make sure that the same certificates are stored in
>>  the person entry and the respective certificate entries and keep this
>>  consistency.  Alternatively, they MUST leave out any certificates in
>>  the person entry.
> 
> 
> Now, given that maintainers will be hard pressed to ensure
> consistency, this specification has stated that the standard
> track approach of storing certificates in the person entry
> is not to be followed.   This MUST will lead to breakage.
> 
> Instead, this document needs to needs to make it clear that
> certificates will be stored redundantly, there will be
> consistency issues, and then discuss how applications are
> to address these consistency issues.
> 
> Kurt
> 
> PS: I note that these MUSTs appear to apply to users, not to
> implementations... they likely should be downcased.
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 02 Dec 2004 16:05:26 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: "Kurt D. Zeilenga" <[email-masked]>
CC: [email-masked]
Subject: Re: draft-ietf-pkix-ldap-*: security considerations
Sender: [email-masked]

Kurt

data inconsistency could arise because of
a)bad implementations and
b) an attack.
I dont believe RFCs address concerns of bad implementations. In the case 
of attack, the attributes may not match the stored certificate, so the 
"wrong" certificate or no certificate could be returned. But since only 
the stored certificate is being requested (the attributes are only used 
to aid fitering), and this is digitally signed, then it cannot be 
tampered with without detection. Providing the client checks that 
certificate that is returned is the correct one, then all we have is a 
denial of service attack.  And this can happen if an attacker modifies 
any LDAP server, including a component matching one. So the security 
concerns apply equally well to the component matching implementations, 
and to LDAP servers that dont support any certificate matching.

But since this RFC does not address protocol issues, then I dont believe 
any additional security concerns need be added to it. The concerns 
should be applied to the base LDAP protocol spec "warning, if the LDAP 
server is tampered with, the information that is returned in the LDAP 
protocol may not be that which is required".

regards

David

Kurt D. Zeilenga wrote:
> The security considerations sections of these documents
> are inadequate and seem to nothing more than echo
> general security concerns.  Given the nature of the
> information being stored, I would suspect there would
> be some significant other considerations.  In particular,
> I am surprised not to see any discussion (in the security
> consideration section or elsewhere) on the impact of
> data inconsistencies between user and certificate objects.
> 
> Kurt
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 02 Dec 2004 15:54:48 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: Steven Legg <[email-masked]>
CC: Steve Hanna <[email-masked]>, Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

Steven Legg wrote:
> 
> 
> David,
> 
> David Chadwick wrote:
> 
>> Since that time (Spring 2003) suppliers have not moved that far (if at 
>> all) towards supporting component matching. Only Steven Legg's 
>> Australian company, which had supported component matching prior to 
>> publication of the RFCs, and OpenLDAP which I believe can now support 
>> it, have done anything in this direction. Attribute extraction on the 
>> other hand has double that amount of supporting implementations, plus 
>> all clients can naturally support it without any code change.
> 
> 
> So is that four client implementations that have support for adding and
> modifying entries with certificates according to the attribute extraction
> schema using any LDAP directory, or is that four client implementations
> that depend on the XPS server to do the attribute extraction for them ?
> Isn't there only one XPS(-like) server implementation ? I'm not sure you 
> are
> comparing like with like.

Steven

Peter listed the implementations in an earlier message (which I have now 
deleted) but I believe it was 3 of the former and 1 of the latter (which 
actually equates to a very large number of clients).

> 
> Incidentally, yesterday a colleague of mine configured a third-party
> LDAP client with no built-in knowledge of component matching to use
> component matches in its filters. No re-coding was necessary. Any client
> that is configured with LDAP filters in string format or LDAP URLs is
> already able to use component matching or the X.509 matching rules.

Could your colleague send us the string that he had to type in e.g. to 
find a certificate containing a particular email address or key usage

thanks

David

> Regards,
> Steven

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Date: Thu, 02 Dec 2004 15:48:39 +0000
From: David Chadwick <[email-masked]>
Organization: University of Salford
To: Jong-Hyuk <[email-masked]>
CC: [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

Jong-Hyuk wrote:
>>Since that time (Spring 2003) suppliers have not moved that far (if at
>>all) towards supporting component matching. Only Steven Legg's Australian
>>company, which had supported component matching prior to publication of
>>the RFCs, and OpenLDAP which I believe can now support it, have done
>>anything in this direction. Attribute extraction on the other hand has
>>double that amount of supporting implementations, plus all clients can
>>naturally support it without any code change.
> 
> 
> Clients can be considered to naturally support Component Matching if they
> accept search filters in a text form and they support extensibleMatch. It is
> observed that many clients fall into this category. For those clients who
> have search filters hard-coded and / or do not support extensibleMatch, the
> OpenLDAP implementation of Component Matching further supports attribute and
> matching rule aliases. In attribute aliasing, an alias attribute in the
> search filter is converted by the server into the predefined aliased
> component reference and the assertion value is used as the corresponding
> component assertion value. 

Jong,

This is a neat idea. Are you using the schema we have defined for this
attribute aliasing, or have you defined your own? If you are using the
schema we have defined in the 3 PKIX IDs, then this would be another
good reason for publishing the IDs as Informational. If you have defined
your own schema, then it will need to be published widely so that
clients that dont support extensible matching (the majority of them)
will know which attribute types to use. But I dont think it would be
helpful to define a different set of attributes to refer to the same set
of X.509 attribute components.

regards

David

>The matching rule alias is used in a similar way.
> The aliasing mechanism can also be considered as an optimization which
> eliminates the extra processing steps for ComponentFilter parsing. We will
> provide performance evaluation results of Component Matching to show that it
> can be implemented in LDAP servers without performance degradation and
> increase in complexity.
> - Jong-Hyuk
> 
> ------------------------
> Jong Hyuk Choi
> IBM Thomas J. Watson Research Center - Enterprise Linux Group
> P.O. Box 218, Yorktown Heights, NY 10598
> [email-masked]
> 
> 
> 

-- 

*****************************************************************

David W. Chadwick, BSc PhD
Professor of Information Systems Security
IS Institute, University of Salford, Salford M5 4WT
Tel: +44 161 295 5351  Fax +44 1484 532930
Mobile: +44 77 96 44 7184
Email: [email-masked]
Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
Research Web site: http://sec.isi.salford.ac.uk
Entrust key validation string: MLJ9-DU5T-HV8J
PGP Key ID is 0xBC238DE5

*****************************************************************

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 Comments
Date: Thu, 2 Dec 2004 18:46:55 -0500
From: "Seth Hitchings" <[email-masked]>
To: "Trevor Freeman" <[email-masked]>, <[email-masked]>
Sender: [email-masked]

This is a multi-part message in MIME format.

------=_NextPart_000_02F7_01C4D89F.4B83B920
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Thanks Trevor,

For item 4, I believe that support for DH should be optional for the server as well as the
client. If a server doesn't wish to support that form of integrity protection, it
shouldn't have to. Currently, the VPResponse requires support for DH.

Seth 

-----Original Message-----
From: Trevor Freeman [mailto:[email-masked]] 
Sent: Thursday, December 02, 2004 3:55 PM
To: Seth Hitchings; [email-masked]
Subject: RE: SCVP 16 Comments

Hi Seth

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Seth Hitchings
* Sent: Wednesday, December 01, 2004 9:29 AM
* To: [email-masked]
* Subject: SCVP 16 Comments
*
* Hi all,
*
* My company, CoreStreet Ltd, is currently developing an implementation of
* SCVP. We've recently updated our software to reflect the
* changes made in draft 16 and have found that there are many ambiguities in
* the specification, both in the ASN.1 module and in the
* descriptions of how various elements are meant to be used.
*
* Given the number of changes that will have to be made to draft 16, I
* wonder if it won't be necessary to permit another round of
* review before submitting the final draft to the RFC editors. I know that
* there is a lot of pressure for draft 17 to be the final
* draft and to get this process completed, but it is in all of our best
* interest that the final draft be as clear and usable as
* possible.
*
* I have sent most of my feedback on draft 16 directly to the editors, but I
* have a few questions that I'd like the entire list
* consider.
*
* 1) The 'check' for building a certification path to a trusted root has
* been removed, implying that an SCVP server can only returns
* paths that meet a local validation policy on the server. In a DPD
* environment, I believe that the client should be able to control
* whether the server performs validation. As such, I would like to see
id-
* stc-build-pkc-path and id-stc-build-aa-path restored in
* draft 17.
*
[TF] Fixed
* 2) The want back for all paths, id-swb-pkc-all-valid-cert-paths, should be
* changed to id-swb-pkc-all-cert-paths. The level of
* validation that is performed on the path is defined by the requested
* checks, not the want back. We don't have a separate want back
* for status checked certification paths.
[TF] OK
*
* 3) The new RespValidationPolicy contains the userFinalPolicySet,
* permittedSubtrees and excludedSubtrees items that result from
* validation. Each unique path that is validated may produce different
* values for these three items but only one value for each item
* may be returned because only one RespValidationPolicy is returned with
* each CVResponse. There are two ways that more than one path
* can be returned in a CVResponse: a single CVRequest can contain more than
* one query certificate, and multiple paths can be returned
* for each query certificate using the new 'want back'
id-swb-pkc-all-valid-
* cert-paths. There is no way for the validation algorithm
* output can be included as the specification is currently written.
[TF] the user final policy set is only for validating CA certificates and there have been
a number of off list comments to back out this feature from 17 which is want I plan to do.
*
* 4) Draft 16 requires SCVP servers to maintain a Diffie-Hellman public key
* for use in authenticated requests. Given that SCVP servers
* are not required to support AuthenticatedData requests and that, in
* general, authentication should be a matter of local server
* policy, I believe that the new DH functionality should be optional for
* SCVP servers.
[TF] The DH key role depends on the client and transport to the server.
The DH key was added to allow anonymous clients to also gain integrity over the
request/response pair where the client is not using a secure transport. Its use is
optional. 
*
* 5) The VPResponse contains a sequence of ValidationPolRef that enumerates
* the set of validation policies supported by the SCVP
* server. However, these validation policies are not defined by value in the
* VPResponse, they are merely listed by OID or URI. I
* believe that there is value in allowing a client to determine the actual
* policy values that are used in each server policy. As such,
* I believe that the type for the validationPolicies item in VPResponse
* should be 'SEQUENCE OF ValidationPolicy'.
[TF] ]The premise for the use of policy by reference is both client and server understand
the policy by is reference. What is the value in client learning the value for polices
references it otherwise doesn't know?
*
* Thanks. I'd be interested to hear thoughts on any of these issues,
* especially from other folks who are developing SCVP servers.
*
* Seth Hitchings
* CoreStreet, Ltd.

------=_NextPart_000_02F7_01C4D89F.4B83B920
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

------=_NextPart_000_02F7_01C4D89F.4B83B920--

Content-class: urn:content-classes:message
Subject: RE: SCVP 16 Comments
Date: Thu, 2 Dec 2004 12:55:04 -0800
From: "Trevor Freeman" <[email-masked]>
To: "Seth Hitchings" <[email-masked]>, <[email-masked]>
Sender: [email-masked]

Hi Seth

* -----Original Message-----
* From: [email-masked]
[mailto:[email-masked]]
* On Behalf Of Seth Hitchings
* Sent: Wednesday, December 01, 2004 9:29 AM
* To: [email-masked]
* Subject: SCVP 16 Comments
* 
* Hi all,
* 
* My company, CoreStreet Ltd, is currently developing an implementation
of
* SCVP. We've recently updated our software to reflect the
* changes made in draft 16 and have found that there are many
ambiguities in
* the specification, both in the ASN.1 module and in the
* descriptions of how various elements are meant to be used.
* 
* Given the number of changes that will have to be made to draft 16, I
* wonder if it won't be necessary to permit another round of
* review before submitting the final draft to the RFC editors. I know
that
* there is a lot of pressure for draft 17 to be the final
* draft and to get this process completed, but it is in all of our best
* interest that the final draft be as clear and usable as
* possible.
* 
* I have sent most of my feedback on draft 16 directly to the editors,
but I
* have a few questions that I'd like the entire list
* consider.
* 
* 1) The 'check' for building a certification path to a trusted root has
* been removed, implying that an SCVP server can only returns
* paths that meet a local validation policy on the server. In a DPD
* environment, I believe that the client should be able to control
* whether the server performs validation. As such, I would like to see
id-
* stc-build-pkc-path and id-stc-build-aa-path restored in
* draft 17.
* 
[TF] Fixed
* 2) The want back for all paths, id-swb-pkc-all-valid-cert-paths,
should be
* changed to id-swb-pkc-all-cert-paths. The level of
* validation that is performed on the path is defined by the requested
* checks, not the want back. We don't have a separate want back
* for status checked certification paths.
[TF] OK
* 
* 3) The new RespValidationPolicy contains the userFinalPolicySet,
* permittedSubtrees and excludedSubtrees items that result from
* validation. Each unique path that is validated may produce different
* values for these three items but only one value for each item
* may be returned because only one RespValidationPolicy is returned with
* each CVResponse. There are two ways that more than one path
* can be returned in a CVResponse: a single CVRequest can contain more
than
* one query certificate, and multiple paths can be returned
* for each query certificate using the new 'want back'
id-swb-pkc-all-valid-
* cert-paths. There is no way for the validation algorithm
* output can be included as the specification is currently written.
[TF] the user final policy set is only for validating CA certificates
and there have been a number of off list comments to back out this
feature from 17 which is want I plan to do.
* 
* 4) Draft 16 requires SCVP servers to maintain a Diffie-Hellman public
key
* for use in authenticated requests. Given that SCVP servers
* are not required to support AuthenticatedData requests and that, in
* general, authentication should be a matter of local server
* policy, I believe that the new DH functionality should be optional for
* SCVP servers.
[TF] The DH key role depends on the client and transport to the server.
The DH key was added to allow anonymous clients to also gain integrity
over the request/response pair where the client is not using a secure
transport. Its use is optional. 
* 
* 5) The VPResponse contains a sequence of ValidationPolRef that
enumerates
* the set of validation policies supported by the SCVP
* server. However, these validation policies are not defined by value in
the
* VPResponse, they are merely listed by OID or URI. I
* believe that there is value in allowing a client to determine the
actual
* policy values that are used in each server policy. As such,
* I believe that the type for the validationPolicies item in VPResponse
* should be 'SEQUENCE OF ValidationPolicy'.
[TF] ]The premise for the use of policy by reference is both client and
server understand the policy by is reference. What is the value in
client learning the value for polices references it otherwise doesn't
know?
* 
* Thanks. I'd be interested to hear thoughts on any of these issues,
* especially from other folks who are developing SCVP servers.
* 
* Seth Hitchings
* CoreStreet, Ltd.

Content-class: urn:content-classes:message
Subject: SCVP 16 comments deadline
Date: Thu, 2 Dec 2004 12:22:31 -0800
From: "Trevor Freeman" <[email-masked]>
To: <[email-masked]>
Sender: [email-masked]

This is a multi-part message in MIME format.

------_=_NextPart_001_01C4D8AC.A71FFE1E
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

The deadline communicated at the DC meeting for making comments on SCVP
16 was Nov 30th which has now passed. I have had only three people send
me comments to date. SCVP 17 will be closing very shortly so this is the
last reminder.

------_=_NextPart_001_01C4D8AC.A71FFE1E
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{font-family:Arial;
	color:windowtext;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:0pt 201.0pt 0pt 0pt;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>The deadline communicated at the DC meeting for =
making
comments on SCVP 16 was Nov 30<sup>th </sup>which has now passed. I have =
had
only three people send me comments to date. SCVP 17 will be closing very =
shortly
so this is the last reminder.</span></font></p>

</div>

</body>

</html>

------_=_NextPart_001_01C4D8AC.A71FFE1E--

Date: Thu, 02 Dec 2004 19:03:26 +0100
From: =?ISO-8859-1?Q?Gabriel_L=F3pez?= <[email-masked]>
To: Stephen Farrell <[email-masked]>
Cc: [email-masked]
Subject: Re: Attribute Certificates request and response protocol
Sender: [email-masked]

Stephen Farrell wrote:

>
>
> Hi,
>
> Once upon a time we did start work on such a thing [1]. To be
> honest, I can't even remember why we stopped - probably due
> to lack of interest;-)

    now I'm interesed :)

    If I'm right, an entity can request an AC to a service using the 
actual CMP draft specification, so, that's ok for me.

    Thanks and regards, Gabi.

>
> Regards,
> Stephen.
>
> [1] 
> http://www.netzmafia.de/rfc/internet-drafts/draft-ietf-pkix-laap-01.txt
>
> Gabriel López wrote:
>
>>
>>
>>    Dear all,
>>
>>    I'm looking for a transport protocol able to encapsulate an AC 
>> request and response messages.
>>    The idea es how an entity can requet an user's AC to another 
>> entity, instead to access directly to a LDAP repository.
>>    I have saw that CMP (draft-ietf-pkix-rfc2510bis-09.txt) can 
>> transport a x509v3PKCert object, which could be instantiated like a 
>> x509 certificate, AC, etc..
>>
>>    There is any other alternative to the use of  LDAP or CMP? 
>> TLS/SSL, ...?
>>  
>>     Thanks, Gabi.
>>  
>
>
>
>

-- 
Gabriel López Millán (http://pki.dif.um.es)
Dept. Ingeniería de la Información y las Comunicaciones
Facultad de Informática
Universidad de Murcia
Apartado 4021
30001 Murcia
Telf: +34-968-367645
fax: +34-968-364151

Date: Thu, 02 Dec 2004 09:01:44 -0800
To: [email-masked]
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

At 07:58 AM 11/30/2004, Kurt D. Zeilenga wrote:
>And, as I noted in my previous
>response, I do not consider the value extraction approach
>as applied here to certificates and such to be pragmatic
>as it simply does not address requirements I am faced with.

Here's another kind of search which the value extraction
approach does not address well:

A client wants to obtain the user information for each
user which possess both a certificate issued by CA A
and a certificate issued by CA B.  With value extraction,
the client must issue two search, one for certificates
of CA A and one for CA B, and then correlate the results
itself, and then fetch the users individually.  For 1M
users with certificates, with 1K having certificates
from both CAs, the client will have to obtain 2M
certificate objects to find the 1K certificates,
then will have to issue 1K searches to obtain
the user information (or fetch 1M user entries
to get the 1K user entries).

With component matching, this is done in one search
request.

Kurt

Date: Thu, 02 Dec 2004 13:47:33 +0000
From: Stephen Farrell <[email-masked]>
To: =?ISO-8859-1?Q?Gabriel_L=F3pez?= <[email-masked]>
Cc: [email-masked]
Subject: Re: Attribute Certificates request and response protocol
Sender: [email-masked]

Hi,

Once upon a time we did start work on such a thing [1]. To be
honest, I can't even remember why we stopped - probably due
to lack of interest;-)

Regards,
Stephen.

[1] http://www.netzmafia.de/rfc/internet-drafts/draft-ietf-pkix-laap-01.txt

Gabriel López wrote:

> 
> 
>    Dear all,
> 
>    I'm looking for a transport protocol able to encapsulate an AC 
> request and response messages.
>    The idea es how an entity can requet an user's AC to another entity, 
> instead to access directly to a LDAP repository.
>    I have saw that CMP (draft-ietf-pkix-rfc2510bis-09.txt) can transport 
> a x509v3PKCert object, which could be instantiated like a x509 
> certificate, AC, etc..
> 
>    There is any other alternative to the use of  LDAP or CMP? TLS/SSL, ...?
>  
>     Thanks, Gabi.
>  

From: "Jong-Hyuk" <[email-masked]>
To: <[email-masked]>, <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Date: Thu, 2 Dec 2004 00:28:45 -0500
Sender: [email-masked]

> Since that time (Spring 2003) suppliers have not moved that far (if at
> all) towards supporting component matching. Only Steven Legg's Australian
> company, which had supported component matching prior to publication of
> the RFCs, and OpenLDAP which I believe can now support it, have done
> anything in this direction. Attribute extraction on the other hand has
> double that amount of supporting implementations, plus all clients can
> naturally support it without any code change.

Clients can be considered to naturally support Component Matching if they
accept search filters in a text form and they support extensibleMatch. It is
observed that many clients fall into this category. For those clients who
have search filters hard-coded and / or do not support extensibleMatch, the
OpenLDAP implementation of Component Matching further supports attribute and
matching rule aliases. In attribute aliasing, an alias attribute in the
search filter is converted by the server into the predefined aliased
component reference and the assertion value is used as the corresponding
component assertion value. The matching rule alias is used in a similar way.
The aliasing mechanism can also be considered as an optimization which
eliminates the extra processing steps for ComponentFilter parsing. We will
provide performance evaluation results of Component Matching to show that it
can be implemented in LDAP servers without performance degradation and
increase in complexity.
- Jong-Hyuk

------------------------
Jong Hyuk Choi
IBM Thomas J. Watson Research Center - Enterprise Linux Group
P.O. Box 218, Yorktown Heights, NY 10598
[email-masked]

Content-class: urn:content-classes:message
Subject: SCVP 16 Comments
Date: Wed, 1 Dec 2004 12:29:14 -0500
From: "Seth Hitchings" <[email-masked]>
To: <[email-masked]>
Sender: [email-masked]

This is a multi-part message in MIME format.

------=_NextPart_000_0280_01C4D7A1.5E5EE3C0
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi all,

My company, CoreStreet Ltd, is currently developing an implementation of SCVP. We've recently updated our software to reflect the
changes made in draft 16 and have found that there are many ambiguities in the specification, both in the ASN.1 module and in the
descriptions of how various elements are meant to be used. 

Given the number of changes that will have to be made to draft 16, I wonder if it won't be necessary to permit another round of
review before submitting the final draft to the RFC editors. I know that there is a lot of pressure for draft 17 to be the final
draft and to get this process completed, but it is in all of our best interest that the final draft be as clear and usable as
possible.

I have sent most of my feedback on draft 16 directly to the editors, but I have a few questions that I'd like the entire list
consider.

1) The 'check' for building a certification path to a trusted root has been removed, implying that an SCVP server can only returns
paths that meet a local validation policy on the server. In a DPD environment, I believe that the client should be able to control
whether the server performs validation. As such, I would like to see id-stc-build-pkc-path and id-stc-build-aa-path restored in
draft 17. 

2) The want back for all paths, id-swb-pkc-all-valid-cert-paths, should be changed to id-swb-pkc-all-cert-paths. The level of
validation that is performed on the path is defined by the requested checks, not the want back. We don't have a separate want back
for status checked certification paths.

3) The new RespValidationPolicy contains the userFinalPolicySet, permittedSubtrees and excludedSubtrees items that result from
validation. Each unique path that is validated may produce different values for these three items but only one value for each item
may be returned because only one RespValidationPolicy is returned with each CVResponse. There are two ways that more than one path
can be returned in a CVResponse: a single CVRequest can contain more than one query certificate, and multiple paths can be returned
for each query certificate using the new 'want back' id-swb-pkc-all-valid-cert-paths. There is no way for the validation algorithm
output can be included as the specification is currently written.

4) Draft 16 requires SCVP servers to maintain a Diffie-Hellman public key for use in authenticated requests. Given that SCVP servers
are not required to support AuthenticatedData requests and that, in general, authentication should be a matter of local server
policy, I believe that the new DH functionality should be optional for SCVP servers.

5) The VPResponse contains a sequence of ValidationPolRef that enumerates the set of validation policies supported by the SCVP
server. However, these validation policies are not defined by value in the VPResponse, they are merely listed by OID or URI. I
believe that there is value in allowing a client to determine the actual policy values that are used in each server policy. As such,
I believe that the type for the validationPolicies item in VPResponse should be 'SEQUENCE OF ValidationPolicy'.

Thanks. I'd be interested to hear thoughts on any of these issues, especially from other folks who are developing SCVP servers.

Seth Hitchings
CoreStreet, Ltd.

------=_NextPart_000_0280_01C4D7A1.5E5EE3C0
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

------=_NextPart_000_0280_01C4D7A1.5E5EE3C0--

Date: Wed, 01 Dec 2004 08:57:57 -0800
To: Peter Gietz <[email-masked]>
From: "Kurt D. Zeilenga" <[email-masked]>
Subject: Re: WG Last Call: Certificate Schema
Cc: [email-masked]
Sender: [email-masked]

At 05:20 AM 12/1/2004, Peter Gietz wrote:
>Kurt,
>
>some more remarks from my side.
>
>Kurt D. Zeilenga wrote:
>
>>David,
>>
>>While there may have been some in this WG that viewed the
>>value extraction approach as a pragmatic solution to various
>>specific issues, I believe there are also many, like myself,
>>who have never considered the value extraction approach, in
>>general, to be practical.  And, as I noted in my previous
>>response, I do not consider the value extraction approach
>>as applied here to certificates and such to be pragmatic
>>as it simply does not address requirements I am faced with.
>> 
>One requirement addressed by value extraction is to return to the client only the certificate the client needs.

Which certificate is that?  Maybe what the client wants is all certificates of
the person which holds a certificate whose subject DN contains a CN of X.

This highlights one of the problems with this approach.  It seems to be designed
with a specific subset of PKI applications in mind.  The solution, IMO, is not as
broadly applicable as its being made out to be.

>This requirement is not addressed by Component Matching. Only in combination with the return value filter (RFC 3876), which defines an LDAP control that again has to be supported by Clients and Servers, such a behaviour could be implemented. I guess that vendor's support for this is even less than for component matching.

Well, given that it was published as an RFC in September 2004, I would
be surprised if it were widely implemented.  It is implemented in
OpenLDAP Software.

>>In particular, how does this approach providing for matching
>>upon components of the subject (or other) DNs in the certificate?
>Well in our implementation we created another objectclass for such data (cn,o,ou,c,dc,emailadress, etc.) and our certificate2LDIF converter stores all rdn values of the dn in these attributes.

Stores? or maintains?  Sounds to me that this is simply a certificate object
creation tool (to be used in conjunction with ldapadd(1) or the like).  Do you
have a tool which ensures these certificate objects are consistent with
information in the person objects?

Anyways, having an ou attribute in the certificate object doesn't meet all the
needs.  Some applications might want to match only on ou's of the person
(plus certificate information), others on ou's of in the subject DN of the
person, others on ou's in the issuers DN.  With only one ou in the certificate
object, all clients cannot be properly supported.  Applications require
flexibility.  And this is one of the key problems with this approach, it is
not flexible.

Clients can only match on the components which have been extracted, and then
only in a manner consistent with that extraction.  Clients cannot match on
arbitrary components of the certificate.  Clients cannot match on extracted
components of the certificates and arbitrary components of the person entry.

>Such an objectclass - let me call it "additional metadata objectclass" for now - could be specified in a separate document, as well as other extensions objectclasses for things like qualified certs etc.
>
>>As we understood long ago, it will take time for this to get on
>>the radar of LDAP server developers.  That seems to be happening
>>now.
>I hope this discussion about value extraction, will help to get it on their radar.
>
>>>Attribute extraction on the other hand has double that amount of supporting implementations, plus all clients can naturally support it without any code change.
>>>   
>>
>>How does an existing client designed to work with person objects
>>become aware of, and make use of, subordinate certificate objects
>>without being changed?
>>
>> 
>Well by sending a search filter and getting back a userCertificate attribute.

But the client happens to have a hard-coded scope of oneLevel as it was looking
for persons under a specific ou object.  Just changing the filter won't help here.

Even if the scope was configurable, changing it to subtree would bring into
scope not only certificates of the desired persons, but certificates of objects
subordinate to the person objects.  These may not be desirable.

>With the above mentioned additional metadata objectclass all items of the search filter can be found in the certificate entry.

While they might be found, the matching precise semantics are not preserved.
That is, depending on the precise filter specification undesirable entries
may be returned.  This will be bad for any client expecting the filter to
match one and only one entry (such as clients doing identity mapping).

>The client (provided it does not have things like "objectclass=inetorgperson" in its filter)

But it might do that.  Maybe the client is only interested in certificates assigned
to persons, and hence has a (objectClass=person) in the filter.

>doesn't even  note that the answer is from a server supporting our schema. Clients that can have their search filters configured could additionally make use of the x509schema attributes like x509keyUsage etc.

But you also need to adjust the scope.  And then the actual attributes of the person
the client is after may not be in certificate object.  So the client would have to
then go find the person object after finding the certificate object.  And the
client will have to weed out non-desirable certificate objects that might get
returned due to the expansion of scope and/or the less precise matching behavior.

>>>So whilst we might all like the ideal today, pragmatically we need to recognise that this is not the situation on the ground today.
>>>   
>>
>>Pragmatically, we have to realize that the so-called pragmatic
>>solution will introduce numerous problems which we could have
>>avoided if we would have stuck with the so-called elegant solution
>>we knew avoided these problems.
>> 
>The only "problem" I see with our solution is that, as Steve noted, the number of entries increases. With the scalability of LDAP servers  I don't see this as a real problem.

Scalability is the least of my worries here.  I am more worried about
interoperability, consistency issues, management issues, and security issues.

For instance, having duplicates makes it much harder to control access...
making it far more likely that information will be mistakenly disclosed.

There will be data inconsistencies, and I haven't thought through all the
problems that will cause.

And managing all these duplicates certainly will get messy.  It seems for this
approach to be deployed, one might have to change a number of existing clients
(clients which one might not have source to).

>>>If it were I would happily forget the attribute extraction IDs. My main desire is that we need to provide LDAP support to X.509 users today. We should recognise that it will be many years before the big LDAP suppliers might eventually decide to support component matching. After all, there are several very basic features of LDAP that some large LDAP suppliers dont yet support, even though they have been standardised for over 10 years.
>>>As several well known people have already said, LDAP has not done a good job at supporting PKI.
>>>  
>>
>>To the LDAP community, PKI is just another application of the
>>directory.  The LDAP community tends to focused on mechanisms
>>which support a wide range of applications (including PKI).
>>Component matching does this.
>>
>>I am not sure the LDAP community as a whole sees the danger
>>in moving to a value extraction approach generally.  I shutter
>>at the thought of having components of every complex value
>>extracted into new values, and them in term extracted into more
>>values.  I would hope it would be obvious that value extraction
>>is not a wise approach, and will lead to numerous other problems.
>>
>> 
>such as?

See above.

>I agree with you that component matching is generally a good solution. But I also see that a lot of LDAP deployments use similiar approaches than ours for solving the problem of establishing relations between values of different LDAP attributes (e.g. this telephone number belongs to this room number). I shutter if in future for any such case people each time start to define complex syntaxes. Putting such information into separate entries does not look too harmfull to me.  Of course the family of entries approach would make it look even less harmfull.

The family of entries approach failed to gain any traction in
the LDAP community for good reason, but that's another debate.

>BTW: hasn't "Keep it simple" not always been a rule at IETF?

Component matching and value matched control are far more simple
than value extraction approach.   Value extraction does nothing but
push the complexity of compound structures onto clients.  Component
matching and values matched control keeps the complexity in the
directory service.

I argue that implementation of XPS-like systems, especially ones that
deal with non-certificate matching issues, consistency issues, etc.,
and their deployment, is actually quite complex.

Kurt

>Cheers,
>
>Peter
>
>
>
>
>>>So why believe things will miraculously change overnight with component matching. Be realistic, it wont.
>>>   
>>
>>I don't believe I've ever said that we'd miraculously have wide
>>adoption of component matching overnight.  I expect it will be
>>years before we see that.
>>
>>However, I fear that if we are not careful in how we publish
>>the value extraction approach, we will be living with the
>>problems of value extraction long after we have broad server
>>support for component matching.   By noting, using appropriately
>>strong language, the standard track approach is to be favored,
>>we might be able to minimize this.  Of course, we'd likely
>>suffer regardless.
>>
>> 
>>
>>>Unless of course Stefan Santesson can now stand up for his supplier and tell us when they will support component matching. That would indeed be very encouraging to us all.
>>>
>>>thanks
>>>
>>>David
>>>
>>>
>>>Steve Hanna wrote:
>>>   
>>>
>>>>David Chadwick wrote:
>>>>     
>>>>
>>>>>what ever happened to the concept of let a thousand flowers bloom?
>>>>>       
>>>>Standards work is not about "let a thousand flowers bloom".
>>>>It's about agreeing on standards that will help systems
>>>>interoperate and work well together. From my analysis,
>>>>your proposals do not provide substantial benefit and
>>>>they do add substantial complexity. I don't think that
>>>>the Internet community will be well served by publishing
>>>>these documents. They will only increase confusion for
>>>>implementors and add complexity for directory clients,
>>>>which will now need to support several directory schemas.
>>>>In a separate email, David wrote:
>>>>
>>>>     
>>>>
>>>>>At no time to my knowledge was it suggested that this work be removed
>>>>>       
>>>>>
>>>>>from the PKIX set of IDs, otherwise why would they have continued to be
>>>>     
>>>>
>>>>>published with PKIX IDs instead of individual IDs for more than a year
>>>>>after the meeting. And why would I have continued to report on their
>>>>>progress at PKIX meetings?
>>>>>       
>>>>At IETF 56, there was a discussion about whether to move
>>>>to your proposed schemas (at that time, an independent
>>>>submission) or stick with the current schema and use
>>>>component matching to solve the problem. I raised concerns
>>>>about your proposal at that meeting. As noted in the meeting
>>>>minutes, a straw poll favored component matching but it was
>>>>agreed to take this discussion to the mailing list. I never
>>>>saw any discussion on the mailing list.
>>>>At IETF 57, it was explained that the question had been
>>>>decided in favor of your schema (with no discussion
>>>>on the email list). I sent an email to the PKIX list
>>>>complaining about this and reiterating my concerns about
>>>>your proposal. Sharon Boeyen sent email supporting my
>>>>concerns. Nobody sent email favoring the proposals.
>>>>Now these documents are in Working Group Last Call.
>>>>I have seen several emails from experienced PKI and
>>>>directory folks raising concerns about your proposal
>>>>and little email supporting it. I think it's clear
>>>>there's no WG consensus in favor of your proposals.
>>>>I suspect there never was a consensus in favor of
>>>>them becoming WG drafts. If anything, the consensus
>>>>seems to be that these documents are not representative
>>>>of the IETF's future direction and should only be
>>>>published with an Experimental status and some sort
>>>>of warning.
>>>>I'm sorry for any confusion caused by the status of
>>>>your documents as WG drafts. It seems clear to me that
>>>>they should never have received such a status since
>>>>there was never rough consensus in the PKIX WG about
>>>>taking them on as work items. However, it is better to
>>>>remove this confusion now by publishing them as
>>>>Experimental with a warning than to expand the confusion
>>>>by publishing them as Informational without a warning.
>>>>Thanks,
>>>>Steve
>>>>
>>>>     
>>>-- 
>>>*****************************************************************
>>>
>>>David W. Chadwick, BSc PhD
>>>Professor of Information Systems Security
>>>IS Institute, University of Salford, Salford M5 4WT
>>>Tel: +44 161 295 5351  Fax +44 1484 532930
>>>Mobile: +44 77 96 44 7184
>>>Email: [email-masked]
>>>Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
>>>Research Web site: http://sec.isi.salford.ac.uk
>>>Entrust key validation string: MLJ9-DU5T-HV8J
>>>PGP Key ID is 0xBC238DE5
>>>
>>>*****************************************************************
>>>   
>>
>>
>> 
>
>
>-- 
>_______________________________________________________________________
>Peter Gietz (CEO)
>DAASI International GmbH                phone: +49 7071 2970336
>Wilhelmstr. 106                         Fax:   +49 7071 295114  
>D-72074 Tübingen                        email: [email-masked]
>Germany                                 Web:   www.daasi.de
>
>Directory Applications for Advanced Security and Information Management
>_______________________________________________________________________

Date: Wed, 01 Dec 2004 17:37:15 +0100
From: =?ISO-8859-1?Q?Gabriel_L=F3pez?= <[email-masked]>
To: [email-masked]
Subject: Attribute Certificates request and response protocol
Sender: [email-masked]

    Dear all,

    I'm looking for a transport protocol able to encapsulate an AC 
request and response messages.
    The idea es how an entity can requet an user's AC to another entity, 
instead to access directly to a LDAP repository.
    I have saw that CMP (draft-ietf-pkix-rfc2510bis-09.txt) can 
transport a x509v3PKCert object, which could be instantiated like a x509 
certificate, AC, etc..

    There is any other alternative to the use of  LDAP or CMP? TLS/SSL, ...?

     Thanks, Gabi.

-- 
Gabriel López Millán (http://pki.dif.um.es)
Dept. Ingeniería de la Información y las Comunicaciones
Facultad de Informática
Universidad de Murcia
Apartado 4021
30001 Murcia
Telf: +34-968-367645
fax: +34-968-364151

Date: Wed, 01 Dec 2004 14:20:32 +0100
From: Peter Gietz <[email-masked]>
To: "Kurt D. Zeilenga" <[email-masked]>
Cc: David Chadwick <[email-masked]>, Steve Hanna <[email-masked]>, Tim Polk <[email-masked]>, [email-masked], [email-masked], [email-masked]
Subject: Re: WG Last Call: Certificate Schema
Sender: [email-masked]

Kurt,

some more remarks from my side.

Kurt D. Zeilenga wrote:

>David,
>
>While there may have been some in this WG that viewed the
>value extraction approach as a pragmatic solution to various
>specific issues, I believe there are also many, like myself,
>who have never considered the value extraction approach, in
>general, to be practical.  And, as I noted in my previous
>response, I do not consider the value extraction approach
>as applied here to certificates and such to be pragmatic
>as it simply does not address requirements I am faced with.
>  
>
One requirement addressed by value extraction is to return to the client 
only the certificate the client needs.
This requirement is not addressed by Component Matching. Only in 
combination with the return value filter (RFC 3876), which defines an 
LDAP control that again has to be supported by Clients and Servers, such 
a behaviour could be implemented. I guess that vendor's support for this 
is even less than for component matching.

>In particular, how does this approach providing for matching
>upon components of the subject (or other) DNs in the certificate?
>
>  
>
Well in our implementation we created another objectclass for such data 
(cn,o,ou,c,dc,emailadress, etc.) and our certificate2LDIF converter 
stores all rdn values of the dn in these attributes. Such an objectclass 
- let me call it "additional metadata objectclass" for now - could be 
specified in a separate document, as well as other extensions 
objectclasses for things like qualified certs etc.

>As we understood long ago, it will take time for this to get on
>the radar of LDAP server developers.  That seems to be happening
>now.
>
>  
>
I hope this discussion about value extraction, will help to get it on 
their radar.

>>Attribute extraction on the other hand has double that amount of supporting implementations, plus all clients can naturally support it without any code change.
>>    
>>
>
>How does an existing client designed to work with person objects
>become aware of, and make use of, subordinate certificate objects
>without being changed?
>
>  
>
Well by sending a search filter and getting back a userCertificate 
attribute. With the above mentioned additional metadata objectclass all 
items of the search filter can be found in the certificate entry. The 
client (provided it does not have things like 
"objectclass=inetorgperson" in its filter) doesn't even  note that the 
answer is from a server supporting our schema. Clients that can have 
their search filters configured could additionally make use of the 
x509schema attributes like x509keyUsage etc.

>>So whilst we might all like the ideal today, pragmatically we need to recognise that this is not the situation on the ground today.
>>    
>>
>
>Pragmatically, we have to realize that the so-called pragmatic
>solution will introduce numerous problems which we could have
>avoided if we would have stuck with the so-called elegant solution
>we knew avoided these problems.
>  
>
The only "problem" I see with our solution is that, as Steve noted, the 
number of entries increases. With the scalability of LDAP servers  I 
don't see this as a real problem.

>  
>
>>If it were I would happily forget the attribute extraction IDs. My main desire is that we need to provide LDAP support to X.509 users today. We should recognise that it will be many years before the big LDAP suppliers might eventually decide to support component matching. After all, there are several very basic features of LDAP that some large LDAP suppliers dont yet support, even though they have been standardised for over 10 years.
>>As several well known people have already said, LDAP has not done a good job at supporting PKI.
>>    
>>
>
>To the LDAP community, PKI is just another application of the
>directory.  The LDAP community tends to focused on mechanisms
>which support a wide range of applications (including PKI).
>Component matching does this.
>
>I am not sure the LDAP community as a whole sees the danger
>in moving to a value extraction approach generally.  I shutter
>at the thought of having components of every complex value
>extracted into new values, and them in term extracted into more
>values.  I would hope it would be obvious that value extraction
>is not a wise approach, and will lead to numerous other problems.
>
>  
>
such as?

I agree with you that component matching is generally a good solution. 
But I also see that a lot of LDAP deployments use similiar approaches 
than ours for solving the problem of establishing relations between 
values of different LDAP attributes (e.g. this telephone number belongs 
to this room number). I shutter if in future for any such case people 
each time start to define complex syntaxes. Putting such information 
into separate entries does not look too harmfull to me.  Of course the 
family of entries approach would make it look even less harmfull.

BTW: hasn't "Keep it simple" not always been a rule at IETF?

Cheers,

Peter

>>So why believe things will miraculously change overnight with component matching. Be realistic, it wont.
>>    
>>
>
>I don't believe I've ever said that we'd miraculously have wide
>adoption of component matching overnight.  I expect it will be
>years before we see that.
>
>However, I fear that if we are not careful in how we publish
>the value extraction approach, we will be living with the
>problems of value extraction long after we have broad server
>support for component matching.   By noting, using appropriately
>strong language, the standard track approach is to be favored,
>we might be able to minimize this.  Of course, we'd likely
>suffer regardless.
>
>  
>
>>Unless of course Stefan Santesson can now stand up for his supplier and tell us when they will support component matching. That would indeed be very encouraging to us all.
>>
>>thanks
>>
>>David
>>
>>
>>Steve Hanna wrote:
>>    
>>
>>>David Chadwick wrote:
>>>      
>>>
>>>>what ever happened to the concept of let a thousand flowers bloom?
>>>>        
>>>>
>>>Standards work is not about "let a thousand flowers bloom".
>>>It's about agreeing on standards that will help systems
>>>interoperate and work well together. From my analysis,
>>>your proposals do not provide substantial benefit and
>>>they do add substantial complexity. I don't think that
>>>the Internet community will be well served by publishing
>>>these documents. They will only increase confusion for
>>>implementors and add complexity for directory clients,
>>>which will now need to support several directory schemas.
>>>In a separate email, David wrote:
>>>
>>>      
>>>
>>>>At no time to my knowledge was it suggested that this work be removed
>>>>        
>>>>
>>>>from the PKIX set of IDs, otherwise why would they have continued to be
>>>      
>>>
>>>>published with PKIX IDs instead of individual IDs for more than a year
>>>>after the meeting. And why would I have continued to report on their
>>>>progress at PKIX meetings?
>>>>        
>>>>
>>>At IETF 56, there was a discussion about whether to move
>>>to your proposed schemas (at that time, an independent
>>>submission) or stick with the current schema and use
>>>component matching to solve the problem. I raised concerns
>>>about your proposal at that meeting. As noted in the meeting
>>>minutes, a straw poll favored component matching but it was
>>>agreed to take this discussion to the mailing list. I never
>>>saw any discussion on the mailing list.
>>>At IETF 57, it was explained that the question had been
>>>decided in favor of your schema (with no discussion
>>>on the email list). I sent an email to the PKIX list
>>>complaining about this and reiterating my concerns about
>>>your proposal. Sharon Boeyen sent email supporting my
>>>concerns. Nobody sent email favoring the proposals.
>>>Now these documents are in Working Group Last Call.
>>>I have seen several emails from experienced PKI and
>>>directory folks raising concerns about your proposal
>>>and little email supporting it. I think it's clear
>>>there's no WG consensus in favor of your proposals.
>>>I suspect there never was a consensus in favor of
>>>them becoming WG drafts. If anything, the consensus
>>>seems to be that these documents are not representative
>>>of the IETF's future direction and should only be
>>>published with an Experimental status and some sort
>>>of warning.
>>>I'm sorry for any confusion caused by the status of
>>>your documents as WG drafts. It seems clear to me that
>>>they should never have received such a status since
>>>there was never rough consensus in the PKIX WG about
>>>taking them on as work items. However, it is better to
>>>remove this confusion now by publishing them as
>>>Experimental with a warning than to expand the confusion
>>>by publishing them as Informational without a warning.
>>>Thanks,
>>>Steve
>>>
>>>      
>>>
>>-- 
>>
>>*****************************************************************
>>
>>David W. Chadwick, BSc PhD
>>Professor of Information Systems Security
>>IS Institute, University of Salford, Salford M5 4WT
>>Tel: +44 161 295 5351  Fax +44 1484 532930
>>Mobile: +44 77 96 44 7184
>>Email: [email-masked]
>>Home Page:  http://www.salford.ac.uk/its024/chadwick.htm
>>Research Web site: http://sec.isi.salford.ac.uk
>>Entrust key validation string: MLJ9-DU5T-HV8J
>>PGP Key ID is 0xBC238DE5
>>
>>*****************************************************************
>>    
>>
>
>
>  
>

-- 
_______________________________________________________________________
 
Peter Gietz (CEO)
DAASI International GmbH                phone: +49 7071 2970336
Wilhelmstr. 106                         Fax:   +49 7071 295114  
D-72074 Tübingen                        email: [email-masked]
Germany                                 Web:   www.daasi.de

Directory Applications for Advanced Security and Information Management
_______________________________________________________________________