I have been selected as the General Area Review Team (Gen-ART)
reviewer for this draft (for background on Gen-ART, please see
http://www.alvestrand.no/ietf/gen/art/gen-art-FAQ.html).

Please wait for direction from your document shepherd
or AD before posting a new version of the draft.

Document: draft-ietf-pkix-scvp-31.txt
Reviewer: Spencer Dawkins
Review Date: 02 April 2007
IESG Telechat date: 05 April 2007

Summary: Basically ready for publication, with some questions about 2119 language and a couple of places where the text wasn't clear to me, but should be fixable with an RFC Editor note for anything that Russ agrees with.

Comments:

1.2  SCVP overview

  Untrusted SCVP servers can provide clients the certification paths.
  They can also provide clients the revocation information, such as
  CRLs and OCSP responses, that the clients need to validate the
  certification paths constructed by the SCVP server.  These services
  can be valuable to clients that do not include the protocols needed

Spencer (nit): I'm somewhat confused by "do not include" - is this saying clients "do not implement the protocols needed ..."? For some reason, this isn't as confusing in the first bullet below... perhaps because one is talking about protocols and the other is talking about software.

  to find and download intermediate certificates, CRLs, and OCSP
  responses.

  Trusted SCVP servers can perform certification path construction and
  validation for the client.  For a client that uses these services,
  the client inherently trusts the SCVP server as much as it would its
  own certification path validation software (if it contained such
  software).  There are two main reasons that a client may want to
  trust such an SCVP server:

    1. The client does not want to incur the overhead of including
       certification path validation software and running it for each
       certificate it receives.

    2. The client is in an organization or community that wants to
       centralize management of validation policies.  These policies
       might dictate that particular trust anchors are to be used and
       the types of policy checking that are to be performed during
       certification path validation.

1.3  SCVP Requirements

  SCVP meets the mandatory requirements documented in [RQMTS] for DPV
  and DPD.  When SCVP is used to support DPD, the same response is

Spencer: I'm somewhat confused by "the same response" - the same response as what, exactly?

  returned when a path is constructed, but some or all of the
  revocation information is unavailable.

3.1  cvRequestVersion

  The cvRequestVersion item defines the version of the SCVP CVRequest
  used in a request.  The subsequent response MUST use the same version
  number.  The value of the cvRequestVersion item MUST be one (1) for a
  client implementing this specification.  Future updates to this
  specification must specify other values if there are any changes to
  syntax or semantics.  However, new extensions may be defined without
  changing the version number.

  SCVP clients MUST support asserting this value and SCVP servers must
  be capable of processing this value.

Spencer: Hmmm. In most cases, this document has similar server language as MUST (2119).

3.2  query

  The query item specifies one or more certificates that are the
  subject of the request; the certificates can be either public key
  certificates [PKIX-1] or attribute certificates [PKIX-AC].  A query
  MUST contain a queriedCerts item as well as one checks, and one

Spencer (Nit): correct as written but confusing - s/as one checks/as one checks item/?

  validationPolicy item; a query MAY also contain wantBack,
  responseFlags, serverContextInfo, validationTime, intermediateCerts,
  revInfos, producedAt, and queryExtensions items.

3.2.2  checks

  Conforming client implementations MUST be able to assert at least one
  of the standard checks.  Conforming clients MAY be able to assert
  multiple checks.  Conforming clients need not support all of the
  checks defined in this section.

Spencer: I'm somewhat confused by "MUST/MAY be able to assert" - is "be able to" really a 2119 requirement? I would be more comfortable with "MUST support at least one of the standard checks" and "MAY assert multiple checks".

3.2.3  wantBack

  Conforming client implementations that support delegated path
  validation (DPV) as defined in [RQMTS] SHOULD be able to assert at
  least one wantBack.  Conforming client implementations that support
  delegated path discovery (DPD) as defined in [RQMTS] MUST be able to
  assert at least one wantBack.  Conforming clients MAY be able to
  assert multiple wantBacks.  Conforming clients need not support all
  of the wantBacks defined in this section.

Spencer: same concerns about 2119 requirements to "be able to" do something as expressed previously.

3.2.4  validationPolicy

  Conforming SCVP servers MUST be able to process a ValidationPolicy

Spencer: "MUST be able to"... please see previous note on 2119 language like this

  that contains any or all of the optional items.

  The validationAlg item specifies the validation algorithm.  The
  userPolicySet item provides an acceptable set of certificate
  policies.  The inhibitPolicyMapping item inhibits certificate policy
  mapping during certification path validation.  The
  requireExplicitPolicy item requires at least one valid certificate
  policy in the certificate policies extension.  The inhibitAnyPolicy
  item indicates whether the anyPolicy certificate policy OID is
  processed or ignored when evaluating certificate policy.  The
  trustAnchors item indicates the trust anchors that are acceptable to
  the client.  The keyUsages item indicates the technical usage of the
  public key that is to be confirmed by the server as acceptable.  The
  extendedKeyUsages item indicates the application-specific usage of
  the public key that is to be confirmed by the server as acceptable.
  The syntax and semantics of each of these items is discussed in the
  following sections.

3.2.4.1  validationPolRef

  Conforming SCVP client implementations MUST be able to specify a

Spencer: "MUST be able to"... please see previous note on 2119 language like this

  validation policy.  Conforming SCVP client implementations MAY be
  able to specify parameters for a validation policy.  Conforming SCVP
  server implementations MUST be able to process valPolId and MAY be
  able to process valPolParams.

3.2.4.4  inhibitPolicyMapping

  SCVP clients MAY support inhibiting policy mapping.  SCVP servers
  SHOULD support inhibiting policy mapping.

Spencer: Is there a reason why SCVP servers would not support inhibiting policy mapping ("Why is this SHOULD not a MUST")? I have this question for several of the SCVP server requirements, but won't flag each one...

3.2.5.2  responseValidationPolByRef

  SCVP clients and servers MUST support the default behavior.  SCVP

Spencer (Nit): just for clarity, could you say "the default behavior (X)"? I think "X" is "returning the validation policy by reference", but I can identify at least a couple of flavors of this...

  clients MAY support requesting and processing the validation policy
  by values.  SVCP server SHOULD support returning the validation
  policy by values.

3.2.9  revInfos

  Clients SHOULD be courteous to the SCVP server by separating CRLs and
  delta CRLs.  However, since the two share a common syntax, SCVP
  servers SHOULD accept delta CRLs even if they are identified as
  regular CRLs by the SCVP client.

Spencer: why isn't the server SHOULD a MUST?

3.6  responderName

  The optional responderName item is used by the client to indicate the
  identity of the SCVP server that the client expects to sign the SCVP
  response if the response is digitally signed.  The responderName item
  SHOULD only be included if:

Spencer: this doesn't seem like a 2119 SHOULD.

    1. the request is either unprotected or digitally signed (i.e., is
       not protected using a MAC); and
    2. the responseFlags item is either absent or present with the
       protectResponse set to TRUE.

4.9.3  replyValTime

  The information in the CertReply item MUST be formatted as if the
  server created this portion of the response at the time indicated in
  the validationTime item of the query.  However, if the server does
  not have appropriate historical information, the server MAY either
  return an error or return information for a later time.

Spencer: do you guys have deployed servers that exhibit both of these behaviors? If you could pick one, or even recommend "return information for a later time if available, or an error if no information is available", it would give client a better understanding of what's going on - the current specification allows you to return an error even if a later time is available, for instance.

4.9.5  replyWantBacks

  The octet string value for the proof of revocation status, { id-swb 2
  }, contains the RevInfoWantBack type.  The RevInfoWantBack type is a
  SEQUENCE of the RevocationInfos type and an optional CertBundle.  The
  syntax and semantics of the RevocationInfos type are described in
  section 3.2.9.  The CertBundle MUST be included if any certificates
  required to validate the revocation information were not returned in
  the id-swb-pkc-best-cert-path or id-swb-pkc-all- cert-paths want
  back.  The CertBundle MUST include all such certificates but there

Spencer: Mumble. isn't "want back" wantBack? I'm very confused by the trailing blank in the id name and am not entirely sure what the sentence actually says ... probably easily fixable by someone who understands the technology, just not by me.

  are no ordering requirements.

  The octet string value for returning all paths, { id-swb 12 },
  contains an ASN.1 type CertBundles, as defined below.  The syntax and
  semantics of the CertBundle type are described in section 3.2.8.
  Each CertBundle includes all the certificates in one path, starting

Spencer (Nit): s/starting/starting with/?

  the end certificate and ending with the certificate issued by the
  trust anchor.

  The octet string value for the proof of revocation status of the
  path's target certificate, { id-swb-13 }, contains the
  RevInfoWantBack type.  The RevInfoWantBack type is a SEQUENCE of the
  RevocationInfos type and an optional CertBundle.  The syntax and
  semantics of the RevocationInfos type are described in section 3.2.9.
  The CertBundle MUST be included if any certificates required to
  validate the revocation information were not returned in the id- swb-
  pkc-best-cert-path or id-swb-pkc-all-cert-paths want back.  The

Spencer: same comment on wantBack as above. There are more instances, but I'll stop flagging them.

  CertBundle MUST include all such certificates but there are no
  ordering requirements.

6  Validation Policy Response

  In response to a ValPolRequest, the SCVP server provides a
  ValPolResponse.  The ValPolResponse MAY not be unique to any

Spencer: this is probably a lower-case (non-2119) "may".

  ValPolRequest, so may be reused by the server in response to multiple
  ValPolRequests.  The ValPolResponse also has an indication of how
  frequently the ValPolResponse may be reissued.  The server MUST sign
  the response using its digital signature certificate.  When a
  ValPolResponse is encapsulated in a MIME body part, it MUST be
  carried in an application/scvp-vp-response MIME body part.

6.12  responseTypes

  responseTypes allows the server to publish the range of response
  types it supports.  Cached only means the server will only return
  cached responses to requests.  Non-cached only means the server will
  return a specific response to the request, i.e., containing the
  requestor's nonce.  Both means the server will return either,
  depending on the request.

Spencer (Nit): "both" means "either"? Perhaps the value could be called "either"? :-)

9  Security Considerations

  Clients MUST verify that the response matches their original request.
  Clients need to ensure that the server has performed the appropriate
  checks for the correct certificates under the requested validation
  policy for the specified validation time, and that the response
  includes the requested want backs and meets the client's freshness

Spencer (Nit): wantBacks?

  requirements.

  SCVP does not include any confidentiality mechanisms.  If
  confidentiality is needed, it can be achieved with a lower-layer
  security protocol.

Spencer: any recommendation here? If you could call out TLS, that might be helpful, for instance.



_______________________________________________
Gen-art mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/gen-art

Reply via email to