📄 rfc2985.txt
字号:
attribute.
counterSignature ATTRIBUTE ::= {
WITH SYNTAX SignerInfo
ID pkcs-9-at-counterSignature
}
Countersignature values have the same meaning as SignerInfo values
for ordinary signatures (see Section 9 of [14] and Section 5.3 of
[3]), except that:
1. The authenticatedAttributes field must contain a messageDigest
attribute if it contains any other attributes, but need not contain a
contentType attribute, as there is no content type for
countersignatures; and
Nystrom & Kaliski Informational [Page 15]
RFC 2985 Selected Object Classes and Attribute Types November 2000
2. The input to the message-digesting process is the content octets
of the DER encoding of the signatureValue field of the SignerInfo
value with which the attribute is associated.
A countersignature attribute can have multiple attribute values.
Note 1 - The fact that a countersignature is computed on a signature
(encrypted digest) means that the countersigning process need not
know the original content input to the signing process. This has
advantages both in efficiency and in confidentiality.
Note 2 - A countersignature, since it has type SignerInfo, can itself
contain a countersignature attribute. Thus it is possible to
construct arbitrarily long series of countersignatures.
5.4 Attribute types for use with PKCS #10 certificate requests
5.4.1 Challenge password
The challengePassword attribute type specifies a password by which an
entity may request certificate revocation. The interpretation of
challenge passwords is intended to be specified by certificate
issuers etc; no particular interpretation is required.
challengePassword ATTRIBUTE ::= {
WITH SYNTAX DirectoryString {pkcs-9-ub-challengePassword}
EQUALITY MATCHING RULE caseExactMatch
SINGLE VALUE TRUE
ID pkcs-9-at-challengePassword
}
A challenge-password attribute must have a single attribute value.
ChallengePassword attribute values generated in accordance with this
version of this document SHOULD use the PrintableString encoding
whenever possible. If internationalization issues make this
impossible, the UTF8String alternative SHOULD be used. PKCS #9-
attribute processing systems MUST be able to recognize and process
all string types in DirectoryString values.
Note - Version 1.1 of this document defined challengePassword as
having the syntax CHOICE {PrintableString, T61String}, but did
contain a note explaining that this might be changed to a CHOICE of
different string types in the future See also Note 2 in section
5.2.3.
Nystrom & Kaliski Informational [Page 16]
RFC 2985 Selected Object Classes and Attribute Types November 2000
5.4.2 Extension request
The extensionRequest attribute type may be used to carry information
about certificate extensions the requester wishes to be included in a
certificate.
extensionRequest ATTRIBUTE ::= {
WITH SYNTAX ExtensionRequest
SINGLE VALUE TRUE
ID pkcs-9-at-extensionRequest
}
ExtensionRequest ::= Extensions
The Extensions type is imported from [10].
5.4.3 Extended-certificate attributes (deprecated)
The extendedCertificateAttributes attribute type specified a set of
attributes for a PKCS #6 [13] extended certificate in a PKCS #10
certification request (the value of the extended certificate-
attributes attribute would become the extension in the requested PKCS
#6 extended certificate). Since the status of PKCS #6 is historic
after the introduction of X.509 v3 certificates [10], the use of this
attribute is deprecated.
extendedCertificateAttributes ATTRIBUTE ::= {
WITH SYNTAX SET OF Attribute
SINGLE VALUE TRUE
ID pkcs-9-at-extendedCertificateAttributes
}
An extended certificate attributes attribute must have a single
attribute value (that value is a set, which itself may contain
multiple values, but there must be only one set).
5.5 Attributes for use in PKCS #12 "PFX" PDUs or PKCS #15 tokens
5.5.1 Friendly name
The friendlyName attribute type specifies a user-friendly name of the
object it belongs to. It is referenced in [17].
Nystrom & Kaliski Informational [Page 17]
RFC 2985 Selected Object Classes and Attribute Types November 2000
friendlyName ATTRIBUTE ::= {
WITH SYNTAX BMPString (SIZE(1..pkcs-9-ub-friendlyName))
EQUALITY MATCHING RULE caseIgnoreMatch
SINGLE VALUE TRUE
ID pkcs-9-at-friendlyName
}
As indicated, friendlyName attributes must have a single attribute
value.
5.5.2 Local key identifier
The localKeyId attribute type specifies an identifier for a
particular key. It is only to be used locally in applications. This
attribute is referenced in [17].
localKeyId ATTRIBUTE ::= {
WITH SYNTAX OCTET STRING
EQUALITY MATCHING RULE octetStringMatch
SINGLE VALUE TRUE
ID pkcs-9-at-localKeyId
}
As indicated, localKeyId attributes must have a single attribute
value. For two localKeyId values to match, their octet string
representation must be of equal length and corresponding octets
identical.
5.6 Attributes defined in S/MIME
S/MIME (c.f. [12]) defines some attributes and object identifiers in
the PKCS #9 object identifier tree. For completeness, they are
mentioned here.
5.6.1 Signing description
The signingDescription attribute is intended to provide a short
synopsis of a message that can be used to present a user with an
additional confirmation step before committing to a cryptographic
operation. In most cases, the replication of the "Subject:" line
from the header of a message should be sufficient and is recommended.
signingDescription ATTRIBUTE ::= {
WITH SYNTAX DirectoryString {pkcs-9-ub-signingDescription}
EQUALITY MATCHING RULE caseIgnoreMatch
SINGLE VALUE TRUE
ID pkcs-9-at-signingDescription
}
Nystrom & Kaliski Informational [Page 18]
RFC 2985 Selected Object Classes and Attribute Types November 2000
5.6.2 S/MIME capabilities
The syntax and semantics of the smimeCapabilities attribute is
defined in [12]. It is included here for the sake of completeness.
smimeCapabilities ATTRIBUTE ::= {
WITH SYNTAX SMIMECapabilities
SINGLE VALUE
ID pkcs-9-at-smimeCapabilities
}
SMIMECapabilities ::= SEQUENCE OF SMIMECapability
SMIMECapability ::= SEQUENCE {
algorithm ALGORITHM.&id ({SMIMEv3Algorithms}),
parameters ALGORITHM.&Type ({SMIMEv3Algorithms}{@algorithm})
}
SMIMEv3Algorithms ALGORITHM ::= {... -- See RFC 2633 -- }
6. Matching rules
This section defines matching rules used in the definition of
attributes in this document.
6.1 Case ignore match
The pkcs9CaseIgnoreMatch rule compares for equality a presented
string with an attribute value of type PKCS9String, without regard to
the case (upper or lower) of the strings (e.g. "Pkcs" and "PKCS"
match).
pkcs9CaseIgnoreMatch MATCHING-RULE ::= {
SYNTAX PKCS9String {pkcs9-ub-match}
ID id-mr-pkcs9CaseIgnoreMatch
}
The rule returns TRUE if the strings are the same length and
corresponding characters are identical except possibly with regard to
case.
Where the strings being matched are of different ASN.1 syntax, the
comparison proceeds as normal so long as the corresponding characters
are in both character sets. Otherwise matching fails.
Nystrom & Kaliski Informational [Page 19]
RFC 2985 Selected Object Classes and Attribute Types November 2000
6.2 Signing time match
The signingTimeMatch rule compares for equality a presented value
with an attribute value of type SigningTime.
signingTimeMatch MATCHING-RULE ::= {
SYNTAX SigningTime
ID pkcs-9-mr-signingTimeMatch
}
The rule returns TRUE if the attribute value represents the same time
as the presented value. If a time is specified with seconds (or
fractional seconds) absent, the number of seconds (fractional
seconds) is assumed to be zero.
Where the strings being matched are of different ASN.1 syntax, the
comparison proceeds as follows:
a) Convert both values to DER-encoded values of type GeneralizedTime,
coordinated universal time. If this is not possible the matching
fails.
b) Compare the strings for equality. The rule returns TRUE if and
only if the strings are of the same length and corresponding octets
are identical.
7. Security Considerations
Attributes of directory entries are used to provide descriptive
information about the real-world objects they represent, which can be
people, organizations or devices. Most countries have privacy laws
regarding the publication of information about people.
The challengePassword attribute should not be stored un-encrypted in
a directory.
Users of directory-aware applications making use of attributes
defined for use with the pkcsEntity object class should make sure
that the class's attributes are adequately protected, since they may
potentially be read by third parties. If a password-protected value
is stored (PKCS #8, #12 or #15), the directory should authenticate
the requester before delivering the value to prevent an off-line
password-search attack. Note that this potentially raises non-
repudiation issues since the directory itself can try a password
search to recover a private value, if stored this way.
Nystrom & Kaliski Informational [Page 20]
RFC 2985 Selected Object Classes and Attribute Types November 2000
8. Authors' Addresses
Magnus Nystrom
RSA Security
Box 10704
S-121 29 Stockholm
Sweden
EMail: magnus@rsasecurity.com
Burt Kaliski
RSA Security
20 Crosby Drive
Bedford, MA 01730 USA
EMail: bkaliski@rsasecurity.com
Nystrom & Kaliski Informational [Page 21]
RFC 2985 Selected Object Classes and Attribute Types November 2000
APPENDICES
A. ASN.1 module
This appendix includes all of the ASN.1 type and value definitions
contained in this document in the form of the ASN.1 module PKCS-9.
PKCS-9 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
pkcs-9(9) modules(0) pkcs-9(1)}
DEFINITIONS IMPLICIT TAGS ::=
BEGIN
-- EXPORTS All --
-- All types and values defined in this module is exported for use
-- in other ASN.1 modules.
IMPORTS
informationFramework, authenticationFramework,
selectedAttributeTypes, upperBounds , id-at
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
usefulDefinitions(0) 3}
ub-name
FROM UpperBounds upperBounds
OBJECT-CLASS, ATTRIBUTE, MATCHING-RULE, Attribute, top,
objectIdentifierMatch
FROM InformationFramework informationFramework
ALGORITHM, Extensions, Time
FROM AuthenticationFramework authenticationFramework
DirectoryString, octetStringMatch, caseIgnoreMatch, caseExactMatch,
generalizedTimeMatch, integerMatch, serialNumber
FROM SelectedAttributeTypes selectedAttributeTypes
ContentInfo, SignerInfo
FROM CryptographicMessageSyntax {iso(1) member-body(2) us(840)
rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) modules(0) cms(1)}
EncryptedPrivateKeyInfo
FROM PKCS-8 {iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs-8(8) modules(1) pkcs-8(1)}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -