April 13, 1995 John Lowry Senior Member of the Technical Staff Bolt Beranek and Newman, Inc. 70 Fawcett St Cambridge, MA. 02138 email: jlowry@bbn.com (617) 873-2435 Direct (617) 873-4086 Fax Project: Location Independent Information Object Security (IOS) Bolt Beranek and Newman, Inc. (BBN), under contract to the Advanced Research Projects Agency (ARPA), has developed the Information Object Security (IOS) Tools. These tools use object identifiers which are registered as Computer Security Objects. ARPA has unlimited rights in the software containing the objects. BBN specified, created, and named the objects under contract to ARPA, and remains the primary point of contact on all questions regarding naming conflicts. The NIST Computer Security Objects Register (CSOR) assumes no responsibility pertaining to any inquiry regarding ownership or naming conflicts. The IOS software is publicly available and can be obtained on the Internet for anonymous ftp at ests.bbn.com. Object naming information ------------------------- IOS Confidentiality Component: 2.16.840.101.3.3.0.2 iosp (3) components (0) confidentialityComponent (2) id-ios-confidentialityComponent Object definition and description --------------------------------- The confidentiality component is one of several components defined by the Location Independent Information Object Security (IOS) project. The IOS components are used singly or in combination with others to achieve a variety of security services. This is a syntax that denotes an IOS confidentiality component. The confidentiality component is used to provide confidentiality and confidentiality-based access control for a list of components. This construct supports both symmetric and asymmetric algorithms and provides data integrity. ConfidentialityComponent ::= SEQUENCE { dataID DataID, referenceID ReferenceID, certComponentID [0] DataID OPTIONAL, dataConfAlgorithm AlgorithmIdentifier, list ConfidantList, encrypted ProtectedComponents } DataID ::= SEQUENCE { componentType OBJECT IDENTIFIER, time GeneralizedTime, random OCTET STRING SIZE (2..2), name EntityName, EntityName ::= SEQUENCE { formal Name OPTIONAL, informal OCTET STRING OPTIONAL} ReferenceID ::= SEQUENCE OF DataID ConfidantList ::= SEQUENCE OF Confidant Confidant ::= SEQUENCE { name EntityName, tokenAlgorithm AlgorithmIdentifier, said OCTET STRING OPTIONAL, token SEQUENCE { tokenOID OBJECT IDENTIFIER, tokenData ENCRYPTED ANY --DEFINED BY tokenOID--}} ProtectedComponents ::= ENCRYPTED ComponentList Object usage and rules ----------------------- Confidentiality components contain a DataID with the object identifier that defines the type of component. The DataID provides a unique identification for a component by the combination of the componentType, time, random, and name items. The random element distinguishes among components created at the same time by the same user, with the EntityName. The informal name field is provided for those users who do not have Names. Such users must take care to supply an informal name that they can be certain is unique, such as an RFC822 address. The confidentiality component holds information necessary for named entities to decrypt the referenced component. The contents of a token are encrypted and carried as an OCTET STRING. The referenceID lists the component(s) protected by this component. It is intended purely for convenience in searching for an encrypted item. The certComponentID is a pointer to a keyManagementComponent containing the certificates and revocation lists associated with the originator of this component. The dataConfAlgorithm specifies the algorithm used on the protected components. The ConfidantList is an array of entities identified by name. It provides a token containing cryptographic information necessary to reverse and evaluate the confidentiality service applied to the protected component. This list is intended for use with public-key or symmetric cryptographic systems. For symmetric systems the security association identifier is the initialization vector; for asymmetric systems it is available for any purpose required by the algorithm. Tokens containing a hash of the data are used to provide a higher level of integrity protection than encryption alone. Since some encryption algorithms "recover" at some point after a bit error, it is possible that the garbled material would not be apparent as an error in some decrypted objects, such as a picture.