In your previous mail you wrote:
> Minor issues:
> - IMHO a transition paragraph is needed at the end of the Introduction
> in order to introduce technical dependencies:
> * clearance attribute is in fact from 3281bis (this is obvious when
> one reads the ASN.1 module appendix but it should be mentioned as
> soon as possible)
I agree that's why it's in the last sentence of the 1st paragraph in the
intro ;)
=> well, I missed it (:-).
> * the processings augment the RFC 5280 section 6 (so the text is
> understable only with this section in mind)
It says this in section 4.1 and 5.1, but we could move something to the
intro to explain that we're augmenting the 5280/3281bis processing
rules. How about:
This document augments the certification path validation rules for PKCs
in [RFC5280] and ACs in [RFC3281bis].
=> fine
> The whole idea is to prepare a first reader (IMHO it is a problem when
> a document needs to be read more than once to get a good idea about
> what it specifies :-).
>
> - another issue is the multiple values in a Clearance attribute.
> The Clearance attribute syntax of section 2 is in fact for an
> AttributeValue type and doesn't include multiple values (only
> multiple SecurityCategory). Of course the Attribute in AC can
> contains multiple values, so the text often uses the term "value"
> in a very ambiguous way.
We restrict the number of times clearance can be included in a
certificate to one or zero. We also restrict it to be single valued.
=> this is what I understood but there are some places in the document
where the term value is used about the clearance AttributeValue type,
for instance inside AuthorityClearanceConstraints.
Are you referring to the Authority Clearance Constraint extension that
can include multiple values?
=> an extension can contain only one value embedded inside an OBJECT
STRING, and it is forbidden (RFC 5280 4.2) to have multiple extensions
with the same OID. So IMHO extensions and multiple values are exclusive.
> - 3 page 6: I don't understand this statement:
> "In
> addition, each Clearance attribute in the SEQUENCE must not contain
> more than one value."
> perhaps SEQUENCE should be sequence (of AuthorityClearanceConstraints)?
SEQUENCE refers to the ASN.1 construct for the extension. We didn't
capitalize sequence previously so we'll switch it to lower case. Note
the must ought to be MUST.
=> but a AuthorityClearanceConstraints contains clearances, no clearance
attributes, so what does mean the more than one value?
> - 4.1.1.2 page 8: can't understand:
> If any of the Clearance attributes in the permitted-clearances
> contains more than one value
This check makes sure there is only one value in permitted-clearances.
=> the permitted-value is either all-clearances or a
AuthorityClearanceConstraints, so there is no Clearance attributes
in it, nor a value...
> - 4.1.1.5.1 page 9:
> in "If the permitted-clearances has special value of all-clearances,
exit
> with success." what about the effective-clearance (unchanged?)
There's no need to set this value as it's the special case where it
matches all.
=> the output is both the effective-clearance (with the - everywhere,
including in 4.1.1.6) and success/failure, so all exists must specify
both.
> - 8 page 15: what is id-TBSL?
It stands for To Be Supplied Later. I guess now would be a good time ;)
I need to get an OID from Russ we'll add this in the next version.
=> until you'll get one IMHO a comment should explain this
(only TBD is recognized :-).
To fix my main concern about the term "value", as ASN.1 is not LISP (:-)
I propose to typecheck all types where the term is used and to keep
it when the type can contain a value (typically contain an attribute),
remove it if it can't or replace it by SecurityCategory (or other?)
if it is what you'd like to mean.
[email protected]
PS: occurences of value:
Abstract
The Authority Clearance Constraints certificate extension values in a
Trust Anchor (TA), CA public key certificates, and an Attribute
Authority (AA) public key certificate in a public key certification
path constrain the effective Clearance of the subject.
=> correct
1
Organizations that have implemented a security policy can issue
certificates that include an indication of the clearance values held
by the subject.
=> correct
1
Some organizations have multiple TAs, CAs, and/or AAs and these
organizations may wish to indicate to relying parties which clearance
values from a particular TA, CA, or AA should be accepted.
=> correct
1
a security policy has been defined for Amoco with three security
classification values (HIGHLY CONFIDENTIAL, CONFIDENTIAL, and
=> correct
1
Cross-certified domains can also make use of the Authority Clearance
Constraints certificate extension to indicate which clearance values
should be acceptable to relying parties.
=> correct
2
If the Clearance attribute
is present, it must contain a single value.
=> correct
2
SecurityCategory ::= SEQUENCE {
type [0]
TYPE-IDENTIFIER.&id({SupportedSecurityCategories}),
value [1]
EXPLICIT TYPE-IDENTIFIER.&Type
({supportedsecuritycategorie...@type})
}
=> correct
2
- classlist identifies the security classifications. Six basic
values are defined in bit positions 0 through 5 and more may be
defined by an organizational security policy.
=> correct
3
The syntax for Authority Clearance Constraints certificate extension
contains Clearance values that the CA or the AA asserts.
=> correct but IMHO misleading. I propose to remove the word values.
3
In
addition, each Clearance attribute in the SEQUENCE must not contain
more than one value.
=> incorrect (no attribute, lower case SEQUENCE, upper case must,
no multiple values).
4
When
processing begins, permitted-clearances is initialized to the user
input value or special value all-clearances if Authority Clearance
Constraints user input is not provided.
=> correct
4
When processing the end PKC, the value in the Clearance attribute in
the end PKC is intersected with the permitted-clearances state
variable.
=> correct (note it is a case the value can be multiple)
4.1.1.2
If user input includes AuthorityClearanceConstraints, set the
permitted-clearances to the input value, otherwise,, set the
permitted-clearances to special value all-clearances.
=> correct
4.1.1.2
If any of the Clearance attributes in the permitted-clearances
contains more than one value, set effective-clearance to an empty
list, set error code to "multiple values in input", and exit with
failure.
=> incorrect (no attribute, no multiple value)
4.1.1.5.1
Examine effective-clearance and verify that it does not contain more
than one value. If effective-clearance contains more than one value,
set effective-clearance to an empty list, set error code to "multiple
values", and exit with failure.
=> correct (the effective-clearance contains Clearance attribute)
but ambiguous: the effective-clearance is a list so it can have more
than one element (even there is no operation described in the document
which allows more than one element, IMHO it will be far better to
make effective-clearance a Clearance attribute or the special value
no-clearance (in place of empty list)).
4.1.1.5.1
If the permitted-clearances has special value of all-clearances, exit
with success.
=> correct
4.1.1.5.1
Assign those classList bits in effective-clearance a value of one (1)
that have a value of one (1) both in effective-clearance and in the
clearance structure in permitted-clearances associated with policyID
X. Assign all other classList bits in effective-clearance a value of
zero (0).
If none of the classList bits have a value of one (1) in effective-
clearance, set effective-clearance to an empty list and exit with
success.
=> correct
5
When processing begins, permitted-clearances
is initialized to user input or special value all-clearances if
Authority Clearance Constraints user input is not provided.
=> correct
5
When processing the AC, the value in the Clearance attribute in the
AC is intersected with the permitted-clearances state variable.
=> correct (possible multiple values)
6
If any of the Clearance attributes in the
AuthorityClearanceConstraints extension contains more than one value,
set effective-clearance to an empty list, set error code to "multiple
values", and exit with failure.
=> incorrect (no attribute, etc)
6
If the AuthorityClearanceConstraints certificate extension is not
present in the PKC, no action is taken, and the permitted-clearances
value is unchanged.
=> correct
6
If the AuthorityClearanceConstraints certificate extension is present
in the PKC and permitted-clearances contains the all-clearances
special value, then assign permitted-clearances the value of the
temp-clearances.
=> correct
6
If the AuthorityClearanceConstraints certificate extension is present
in the PKC and permitted-clearances does not contain the all-
clearances special value, take the intersection of temp-clearances
and permitted-clearances by repeating the following steps for each
clearance in the permitted-clearances state variable:
=> correct
6
-- For every classList bit, assign the classList bit a value of
one (1) for the policyID in permitted-clearances state
variable if the bit is one (1) in both the permitted-
clearances state variable and the temp-clearances for that
policyID; otherwise assign the bit a value of zero (0).
=> correct
7
2. If there is an element in SET B with the same Type OID and value
as in the element in SET A, carry out the following steps:
a) Add an element containing the Type OID and the value to the
SET temp-set.
b) Delete all elements with the same Type OID and the same
value from the SET B.
=> correct (securityCategories)
7
4. Perform Type OID specific intersection of the value in the
element in SET A with the values in the applicable elements in
SET B with the same Type OID.
=> correct (securityCategories)
7
5. If the intersection is not empty, add and element containing the
Type OID and intersection result as value to temp-set.
=> correct (BTW and element -> an element)
8
SecurityCategory ::= SEQUENCE {
type [0] OID id-TBSL,
value [1] BIT STRING
}
Note that Type specific intersection of two values for this Type will
be simply setting the bits that are set in both values. If the
resulting intersection has none of the bits set, the intersection is
considered empty.
=> correct
A
-- value [1]
=> correct
BTW the permitted-clearances type is loose, IMHO it is the sum of
AuthorityClearanceConstraints considered as a list of clearances
and the special value all-clearances. As it is not a certificate
extension, "set the permitted-clearances to AuthorityClearanceConstraints
certificate extension" is at least a short-cut (:-).
Regards
[email protected]
_______________________________________________
Gen-art mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/gen-art