Network Working Group W. Nicolls Request for Comments: 3114 Forsythe Solutions Category: Informational May 2002 Implementing Company Classification Policy with the S/MIME Security Label Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2002). All Rights Reserved. Abstract This document discusses how company security policy for data classification can be mapped to the S/MIME security label. Actual policies from three companies provide worked examples. 1. Introduction Security labels are an optional security service for S/MIME. A security label is a set of security information regarding the sensitivity of the content that is protected by S/MIME encapsulation. A security label can be included in the signed attributes of any SignedData object. A security label attribute may be included in either the inner signature, outer signature, or both. The syntax and processing rules for security labels are described in RFC 2634 [ESS]. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to be interpreted as described in RFC 2119 [MUSTSHOULD]. 1.1 Information Classification Policies Information is an asset, but not all information has the same value for a business. Not all information needs to be protected as strongly as other information. Research and development plans, marketing strategies and manufacturing quality specifications developed and used by a company provide competitive advantage. This type of information needs Nicolls Informational [Page 1] RFC 3114 Implementing Company Classification Policy May 2002 stronger protective measures than other information, which if disclosed or modified, would cause moderate to severe damage to the company. Other types of information such as internal organization charts, employee lists and policies may need little or no protective measures based on value the organization places on it. A corporate information classification policy defines how its information assets are to be protected. It provides guidance to employees on how to classify information assets. It defines how to label and protect an asset based on its classification and state (e.g., facsimile, electronic transfer, storage, shipping, etc.). 1.2 Access Control and Security Labels "Access control" is a means of enforcing authorizations. There are a variety of access control methods that are based on different types of policies and rely on different security mechanisms. - Rule based access control is based on policies that can be algorithmically expressed. - Identity based access control is based on a policy which applies explicitly to an individual person or host entity, or to a defined group of such entities. Once identity has been authenticated, if the identity is verified to be on the access list, then access is granted. - Rank base access control is based on a policy of hierarchical positions in an organization. It is based on who you are in the company structure. A rank-based policy would define what information that the position of Partner or Senior Consultant could access. - Role based access control is based on a policy of roles in an organization. It may or may not be hierarchical. It is based on who you are in the company. The role-based policy would define what information that the role of Database Administrator, Network Administrator, Mailroom Clerk or Purchaser could access. Rule, rank and role-based access control methods can rely on a security label as the security mechanism to convey the sensitivity or classification of the information. When processing an S/MIME encapsulated message, the sensitivity information in the message's security label can be compared with the recipient's authorizations to determine if the recipient is allowed to access the protected content. Nicolls Informational [Page 2] RFC 3114 Implementing Company Classification Policy May 2002 An S/MIME security label may be included as a signed attribute in the inner (or only) signature or the outer signature. In the case of a triple-wrapped message as defined in RFC 2634, the inner signature would be used for access control decisions related to the plaintext original content, while the outer signature would be used for access control decisions related to the encrypted message. 1.3 User Authorizations Users need to be granted authorizations to access information that has been classified by an authority. The sending and receiving agents need to be able to securely determine the user's authorizations for access control processing. X.509 [X.509] and the Internet profile for X.509 certificates [CERTCRL] do not define the means to represent and convey authorizations in a certificate. X.501 [X.501] defines how to represent authorization in the form of a clearance attribute. The clearance attribute identifies the security policy in force to which a list of possible classifications and security categories relates. X.501 also notes two means for binding the clearance to a named entity: an Attribute Certificate and a Certificate extension field (e.g., within the subjectDirectoryAttribute extension). RFC 3281 [AC509] defines a profile of X.509 Attribute Certificate (AC) suitable for use with authorization information within Internet Protocols. One of the defined attributes is Clearance, which carries clearance (security labeling) information about the AC owner. The syntax for Clearance is imported from X.501. 2. Developed Examples 2.1 Classification Policies The following describes the information classification policies in effect at 3 companies. 2.1.1 Amoco Corporation The description for the Amoco information classification policy was taken from the Amoco Computer Security Guidelines. Amoco classifies its information assets based on confidentiality and integrity and defines 3 hierarchical classifications for each. The confidentiality Nicolls Informational [Page 3] RFC 3114 Implementing Company Classification Policy May 2002 and integrity polices are independent, so either or both may be applied to the information. Amoco also defines an availability classification for time critical information. HIGHLY CONFIDENTIAL - Information whose unauthorized disclosure will cause the company severe financial, legal or reputation damage. Examples: Certain acquisitions, bid economics, negotiation strategies. CONFIDENTIAL - Information whose unauthorized disclosure may cause the company financial, legal, or reputation damage. Examples: Employee Personnel & Payroll Files, some interpreted Exploration Data. GENERAL - Information that, because of its personal, technical, or business sensitivity is restricted for use within the company. Unless otherwise classified, all information within Amoco is in this category. MAXIMUM - Information whose unauthorized modification and destruction will cause the company severe financial, legal, or reputation damage. MEDIUM - Information whose unauthorized modification and destruction may cause the company financial, legal, or reputation damage. Examples: Electronic Funds, Transfer, Payroll, and Commercial Checks. MINIMUM - Although an error in this data would be of minimal consequence, this is still important company information and therefore will require some minimal controls to ensure a minimal level of assurance that the integrity of the data is maintained. This applies to all data that is not placed in one of the above classifications. Examples: Lease Production Data, Expense Data, Financial Data, and Exploration Data. CRITICAL - It is important to assess the availability requirements of data, applications and systems. A business decision will be required to determine the length of unavailability that can be tolerated prior to expending additional resources to ensure the information availability that is required. Information should be labeled "CRITICAL" if it is determined that special procedures should be used to ensure its availability. 2.1.2 Caterpillar, Inc. The description for the Caterpillar information classification policy is taken from the Caterpillar Information Protection Guidelines. Caterpillar classifies its information assets based on confidentiality and defines 4 hierarchical classifications. Nicolls Informational [Page 4] RFC 3114 Implementing Company Classification Policy May 2002 Caterpillar Confidential Red - Provides a significant competitive advantage. Disclosure would cause severe damage to operations. Relates to or describes a long-term strategy or critical business plans. Disclosure would cause regulatory or contractual liability. Disclosure would cause severe damage to our reputation or the public image. Disclosure would cause a severe loss of market share or the ability to be first to market. Disclosure would cause a loss of an important customer, shareholder, or business partner. Disclosure would cause a long-term or severe drop in stock value. Strong likelihood somebody is seeking to acquire this information. Caterpillar Confidential Yellow - Provides a competitive advantage. Disclosure could cause moderate damage to the company or an individual. Relates to or describes an important part of the operational direction of the company over time. Important technical or financial aspects of a product line or a business unit. Disclosure could cause a loss of Customer or Shareholder confidence. Disclosure could cause a temporary drop in stock value. A likelihood that somebody could seek to acquire this information. Caterpillar Confidential Green - Might provide a business advantage over those who do not have access to the same information. Might be useful to a competitor. Not easily identifiable by inspection of a product. Not generally known outside the company or available from public sources. Generally available internally. Little competitive interest. Caterpillar Public - Would not provide a business or competitive advantage. Routinely made available to interested members of the General Public. Little or no competitive interest. 2.1.3 Whirlpool Corporation The description for the Whirlpool information classification policy is taken from the Whirlpool Information Protection Policy. Whirlpool classifies its information assets based on confidentiality and defines 3 hierarchical classifications. The policy states that: "All information generated by or for Whirlpool, in whatever form, written, verbal, or electronic, is to be treated as WHIRLPOOL INTERNAL or WHIRLPOOL CONFIDENTIAL. Classification of information in either category depends on its value, the impact of unauthorized disclosure, legal requirements, and the manner in which it needs to be used by the company. Some WHIRLPOOL INTERNAL information may be authorized for public release." Nicolls Informational [Page 5] RFC 3114 Implementing Company Classification Policy May 2002 WHIRLPOOL CONFIDENTIAL - A subset of Whirlpool Internal information, the unauthorized disclosure or compromise of which would likely have an adverse impact on the company's competitive position, tarnish its reputation, or embarrass an individual. Examples: Customer, financial, pricing, or personnel data; merger/acquisition, product, or marketing plans; new product designs, proprietary processes and systems. WHIRLPOOL INTERNAL - All forms of proprietary information originated or owned by Whirlpool, or entrusted to it by others. Examples: Organization charts, policies, procedures, phone directories, some types of training materials. WHIRLPOOL PUBLIC - Information officially released by Whirlpool for widespread public disclosure. Example: Press releases, public marketing materials, employment advertising, annual reports, product brochures, the public web site, etc. The policy also states that privacy markings are allowable. Specifically: For WHIRLPOOL INTERNAL, additional markings or caveats are optional at the discretion of the information owner. For WHIRLPOOL CONFIDENTIAL, add additional marking or caveats as necessary to comply with regulatory or heightened security requirements. Examples: MAKE NO COPIES, THIRD PARTY CONFIDENTIAL, ATTORNEY-CLIENT PRIVILEGED DOCUMENT, DISTRIBUTION LIMITED TO ____, COVERED BY A NON-ANALYSIS AGREEMENT. 2.2 S/MIME Classification Label Organizational Examples RFC 2634 [ESS] defines the ESSSecurityLabel syntax and processing rules. This section builds upon those definitions to define detailed example policies. 2.2.1 Security Label Components The examples are detailed using the various components of the eSSSecurityLabel syntax. 2.2.1.1 Security Policy Identifier A security policy is a set of criteria for the provision of security services. The eSSSecurityLabel security-policy-identifier is used to identify the security policy in force to which the security label relates. It indicates the semantics of the other security label components. Nicolls Informational [Page 6] RFC 3114 Implementing Company Classification Policy May 2002 For the example policies, the following security policy object identifiers are defined: -- S/MIME Working Group Object Identifier Registry id-smime OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) 16 } -- S/MIME Test Security Policy Arc id-tsp OBJECT IDENTIFIER ::= { id-smime 7 } -- Test Security Policies id-tsp-TEST-Amoco OBJECT IDENTIFIER ::= { id-tsp 1 } id-tsp-TEST-Caterpillar OBJECT IDENTIFIER ::= { id-tsp 2 } id-tsp-TEST-Whirlpool OBJECT IDENTIFIER ::= { id-tsp 3 } 2.2.1.2 Security Classification The security classification values and meanings are defined by the governing company policies. The security-classification values defined are hierarchical and do not use integers 0 through 5. Amoco-SecurityClassification ::= INTEGER { amoco-general (6), amoco-confidential (7), amoco-highly-confidential (8) } Caterpillar-SecurityClassification ::= INTEGER { caterpillar-public (6), caterpillar-green (7), caterpillar-yellow (8), caterpillar-red (9) } Whirlpool-SecurityClassification ::= INTEGER { whirlpool-public (6), whirlpool-internal (7), whirlpool-confidential (8) } 2.2.1.3 Privacy Mark Privacy marks are specified the Whirlpool policy. The policy provides examples of possible markings but others can be defined by users as necessary (though no guidance is given). The Whirlpool policy provides the following examples: MAKE NO COPIES, THIRD PARTY CONFIDENTIAL, ATTORNEY-CLIENT PRIVILEGED DOCUMENT, DISTRIBUTION LIMITED TO ____, and COVERED BY A NON-ANALYSIS AGREEMENT. Nicolls Informational [Page 7] RFC 3114 Implementing Company Classification Policy May 2002 The Amoco policy does not identify any privacy marks but the classification labels defined for availability and integrity would be most appropriately displayed here. The CRITICAL, MAXIMUM, MEDIUM, and MINIMUM labels are examples of information classifications that are not used for access control. In general, the privacy marks should provide brief but clear direction to the user on how to handle the information. 2.2.1.4 Security Categories Security categories or caveats are not specified in any of the sample policies. However, they are used in at least 2 of the companies. Though the security categories are not defined formally in their security policies, once locally defined they are formal and are to be enforced. The security categories are defined when necessary to provide identifiable proprietary information more granular access control. A category can be based organizationally or by project (i.e., Legal Only or Project Vallor). 2.2.1.4.1 Syntax Security categories are represented in the RFC 2634 ESSSecurityLabel (to specify the sensitivity of labeled data) and X.501 Clearance attribute (to specify an entity's authorizations) using the following syntax. SecurityCategories ::= SET SIZE (1..ub-security-categories) OF SecurityCategory ub-security-categories INTEGER ::= 64 SecurityCategory ::= SEQUENCE { type [0] OBJECT IDENTIFIER value [1] ANY DEFINED BY type } -- defined by type One example of a SecurityCategory syntax is SecurityCategoryValues, as follows. When id-securityCategoryValues is present in the SecurityCategory type field, then the SecurityCategory value field could take the form of: SecurityCategoryValues ::= SEQUENCE OF UTF8String Nicolls Informational [Page 8] RFC 3114 Implementing Company Classification Policy May 2002 2.2.1.4.2 Use An organization will define a securityCategoryType OID representing the syntax for representing a security category value within their security policy. For the example security category syntax, a UTF8String is used to convey the security category value that applies to the labeled message. Access MUST be restricted to only those entities who are authorized to access every SecurityCategoryValue. Access is authorized if the ESSSecurityLabel SecurityCategoryValue EXACTLY matches the Clearance SecurityCategoryValue. 2.2.2 Attribute Owner Clearance The security clearance and category authorizations for the user are defined in the clearance attribute. 2.2.2.1 Amoco User Clearance: policyId: 1 2 840 113549 1 9 16 7 1 classList: amoco-general (6), amoco-confidential (7), amoco-highly-confidential (8) 2.2.2.2 Caterpillar User Clearance: policyId: 1 2 840 113549 1 9 16 7 2 classList: caterpillar-public (6), caterpillar-confidential-green (7), caterpillar-confidential-yellow (8), caterpillar-confidential-red (9) 2.2.2.3 Whirlpool User Clearance: policyId: 1 2 840 113549 1 9 16 7 3 classList: whirlpool-public (6), whirlpool-internal (7), whirlpool-confidential (8) Nicolls Informational [Page 9] RFC 3114 Implementing Company Classification Policy May 2002 2.2.3 Security Category Example This section includes an example RFC 2634 ESSSecurityLabel including the example Security Category syntax. This section also includes example X.501 Clearance attributes. One of the example Clearance attributes includes a set of authorizations that pass the access control check for the example ESSSecurityLabel. The other example Clearance attributes each include a set of authorizations that fail the access control check for the example ESSSecurityLabel. These examples use the id-tsp-TEST-Whirlpool OID defined in section 2.2.1.1. Assume that the security policy identified by id-tsp-TEST- Whirlpool defines one securityCategoryType OIDs as follows: id-tsp-TEST-Whirlpool-Categories OBJECT IDENTIFIER ::= { id-tsp 4 } Example ESSSecurityLabel: security-policy-identifier: id-tsp-3 security-classification: 8 privacy-mark: ATTORNEY-CLIENT PRIVILEGED INFORMATION security-categories: SEQUENCE OF SecurityCategory SecurityCategory #1 type: id-tsp-4 value: LAW DEPARTMENT USE ONLY Example Clearance Attribute #1 (passes access control check): Clearance: policyId: id-tsp-3 classList BIT STRING: Bits 6, 7, 8 are set to TRUE securityCategories: SEQUENCE OF SecurityCategory SecurityCategory #1 type: id-tsp-4 value: LAW DEPARTMENT USE ONLY Example Clearance Attribute #2 (fails access control check because SecurityCategoryValues do not match): Clearance: policyId: id-tsp-3 classList BIT STRING: Bits 6, 7, 8 are set to TRUE securityCategories: SEQUENCE OF SecurityCategory Nicolls Informational [Page 10] RFC 3114 Implementing Company Classification Policy May 2002 SecurityCategory #1: type: id-tsp-4 value: HUMAN RESOURCES USE ONLY 2.2.4 Additional ESSSecurityLabel Processing Guidance An implementation issue can be the mapping of the security label values to displayable characters. This is an issue for users who want to develop and retire their own classifications and categories on a regular basis and when the values are encoded in non-human readable form. Applications should provide a means for the enterprise to manage these changes. The practice of hard coding the mapping into the applications is discouraged. This issue is viewed as local issue for the application vendor, as the solution does not need to be interoperable between vendors. An approach is the use of a Security Policy Information File (SPIF) [ISO15816]. A SPIF is a construct that conveys domain-specific security policy information. It is a signed object to protect it from unauthorized changes and to authenticate the source of the policy information. It contains critical display information such as the text string for security classifications and security categories to be displayed to the user, as well as additional security policy information. Another implementation issue can be obtaining the recipient's certificate when sending a signed-only message with a security label. Normally the recipient's certificate is only needed when sending an encrypted message. Applications will need to be able to retrieve the recipient's certificate so that the recipient's clearance information is available for the access control check. 3. Security Considerations All security considerations from RFC 2630 [CMS] and RFC 2634 [ESS] apply to applications that use procedures described in this document. Nicolls Informational [Page 11] RFC 3114 Implementing Company Classification Policy May 2002 References [AC509] Farrell, S. and R. Housley, "An Internet Attribute Certificate Profile for Authorization", RFC 3281, April 2002. [CERTCRL] Housley, R., Polk, W., Ford, W. and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, April 2002. [CMS] Housley, R., "Cryptographic Message Syntax", RFC 2630, June 1999. [ESS] Hoffman, P., Editor, "Enhanced Security Services for S/MIME", RFC 2634, June 1999. [MUSTSHOULD] Bradner, S., "Key Words for Use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [X.501] "ITU-T Recommendation X.501: Information Technology - Open Systems Interconnection - The Directory: Models", 1993. [X.509] "ITU-T Recommendation X.509 (1997 E): Information Technology - Open Systems Interconnection - The Directory: Authentication Framework", June 1997. [ISO15816] "Information Technology - Security Techniques - Security Information Objects for Access Control", ISO/IEC FDIS 15816:2000. Acknowledgements I would like to thank Russ Housley for helping me through the process of developing this document, John Pawling for his technical assistance and guidance, and Dan Quealy for his security policy expertise. I would like to thank Ernst & Young LLP and Telenisus for supporting the development of this document while I was employed there. I would also like to thank the good people at Amoco (bp), Caterpillar and Whirlpool who allowed me to use their policies as the real examples that make this document possible. Caterpillar and Whirlpool were each asked if they would like to provide contacts in regards to their security policies, but declined the offer. Nicolls Informational [Page 12] RFC 3114 Implementing Company Classification Policy May 2002 Author's Address Weston Nicolls Forsythe Solutions 7500 Frontage Rd Skokie, IL 60077 Phone: (847) 763-2370 EMail: wnicolls@forsythesolutions.com Nicolls Informational [Page 13] RFC 3114 Implementing Company Classification Policy May 2002 Full Copyright Statement Copyright (C) The Internet Society (2002). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Nicolls Informational [Page 14]