|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/ap.belleisle/INFOSEC/stds/ |
Upload File : |
<HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <META NAME="GENERATOR" CONTENT="Mozilla/4.02 [en] (Win95; U) [Netscape]"> <TITLE>Derived Test Requirements for FIPS 140-1 (Part 1 of 3)</TITLE> </HEAD> <BODY BACKGROUND="../yellow_p.gif"> <CENTER> <H2> National Institute of Standards and Technology</H2></CENTER> <HR SIZE=4 WIDTH=75%> <CENTER> <H1> Derived Test Requirements<BR> for FIPS PUB 140-1,<BR> <I>Security Requirements for Cryptographic Modules</I></H1></CENTER> <HR SIZE=4 WIDTH=20%> <H2><CENTER>PART 1<BR> <EM>(Sections 1-4)</EM></CENTER></H2> <CENTER><B>March 1995</B></CENTER> <CENTER><B>Final</B></CENTER> <CENTER>William N. Havener</CENTER> <CENTER>Roberta J. Medlock</CENTER> <CENTER>Lisa D. Mitchell</CENTER> <CENTER>Robert J. Walcott</CENTER> <H4> <A HREF="140test2.htm">Part 2 (sections 5-7)</A></H4> <H4> <A HREF="140test3.htm">Part 3 (sections 8-11)</A></H4> <H4> <A HREF="140testA.htm">Appendix A</A></H4> <HR SIZE=4 WIDTH=75%> <H1> INTRODUCTION</H1> Federal Information Processing Standards Publication (FIPS PUB) 140-1, <I>Security Requirements for Cryptographic Modules</I>, specifies the security requirements that are to be satisfied by a cryptographic module utilized within a security system protecting unclassified information within computer and telecommunications systems (including voice systems). The standard provides four increasing, qualitative levels of security: Level 1, Level 2, Level 3, and Level 4. These levels are intended to cover the wide range of potential applications and environments in which cryptographic modules may be employed. The security requirements cover eleven areas related to the secure design and implementation of a cryptographic module. These areas include the following: <P> <OL> <LI> <A HREF="#sec1">Cryptographic Module Design and Documentation</A></LI> <LI> <A HREF="#sec2">Module Interfaces</A></LI> <LI> <A HREF="#sec3">Roles and Services</A></LI> <LI> <A HREF="#sec4">Finite State Machine Model</A></LI> <LI> <A HREF="140test2.htm#sec5">Physical Security</A></LI> <LI> <A HREF="140test2.htm#sec6">Software Security</A></LI> <LI> <A HREF="140test2.htm#sec7">Operating System Security</A></LI> <LI> <A HREF="140test3.htm#sec8">Cryptographic Key Management</A></LI> <LI> <A HREF="140test3.htm#sec9">Cryptographic Algorithms</A></LI> <LI> <A HREF="140test3.htm#sec10">Electromagnetic Interference/Electromagnetic Compatibility (EMI/EMC)</A></LI> <LI> <A HREF="140test3.htm#sec11">Self Tests</A></LI> <LI> <A HREF="140testA.htm">Appendix A: A Cryptographic Module Security Policy</A></LI> </OL> <P> The National Institute of Standards and Technology (NIST) intends to establish a FIPS 140-1 validation program using the National Laboratory Accreditation Program (NVLAP) to accredit laboratories to perform testing of cryptographic modules for conformance to FIPS 140-1. Under the proposed process, NIST would issue validation certificates based on test reports produced by NVLAP-accredited laboratories. Organizations wishing to have validations performed would contract with the laboratories for the required services. <P> <H2> Purpose</H2> The purpose of this document is to describe the methods that will be used by accredited laboratories to test whether a cryptographic module conforms to the requirements of FIPS 140-1. It includes detailed procedures, inspections, and tests that the tester must follow, and the expected results that must be achieved for the cryptographic module to satisfy the FIPS 140-1 requirements. These detailed methods are intended to provide a high degree of objectivity during the testing process and to ensure consistency across the accredited testing laboratories. <P> This document also details the requirements for vendor information that must be provided as supplementary evidence to demonstrate conformance to FIPS 140-1 requirements. This document may be used by vendors as a guide in trying to determine if their cryptographic modules meet the security requirements of FIPS 140-1 before they apply to the laboratory for testing. <P> <H2> Document Organization</H2> This document includes eleven sections, corresponding to the eleven areas of security requirements of FIPS 140-1. <A HREF="140testA.htm">Appendix A</A> contains a discussion of security policies for cryptographic modules. <P> Within each section, the corresponding security requirements from FIPS 140-1 are divided into a set of <B>assertions</B> (i.e., statements that must be true for the module to satisfy the requirement of a given area at a given level). All of the assertions are either direct quotations from FIPS 140-1, or are directly derivable from these requirements. The assertions are denoted by the form <P> <CENTER><B>AS</B><<I>requirement_number</I>>.<<I>assertion_sequence_number</I>></CENTER> <P>where "<I>requirement_number</I>" is the number of the corresponding area specified in FIPS 140-1 (i.e., one through eleven), and "<I>sequence_number</I>" is a sequential identifier for assertions within a section. After the statement of each assertion, the security levels to which the assertion applies (i.e., Levels 1 through 4) are listed in parentheses. <P>* In the HTML version of the DTR, after each assertion there is a link to any relevant implementation guidance, from the FIPS 140-1 <A HREF="1401ig.htm">Implementation Guidance</A> document. <P> Following each assertion are a set of <B>requirements</B> levied on the <B>vendor</B>. These requirements describe the types of documentation or explicit information that the vendor must provide in order for the tester to determine conformance to the given assertion. These requirements are denoted by the form <P> <CENTER><B>VE</B><<I>requirement_number</I>>.<<I>assertion_sequence_number</I>>.<<I>sequence_number</I>></CENTER> <P>where "<I>requirement_number</I>" and "<I>assertion_sequence_number</I>" are identical to the corresponding assertion requirement number and sequence number, and "<I>sequence_number</I>" is a sequential identifier for vendor requirements within the assertion requirement. <P> Also following each assertion and the requirements levied on the vendor are a set of <B>requirements</B> levied on the <B>tester</B> of the cryptographic module. These requirements instruct the tester as to what he or she must do in order to test the cryptographic module with respect to the given assertion. These requirements are denoted by the form <P> <CENTER><B>TE</B><<I>requirement_number</I>>.<<I>assertion_sequence_number</I>>.<<I>sequence_number</I>></CENTER> <P>where "<I>requirement_number</I>" and "<I>assertion_sequence_number</I>" are identical to the corresponding assertion requirement number and sequence number, and "<I>sequence_number</I>" is a sequential identifier for tester requirements within the assertion requirement. <P> <HR SIZE=4 WIDTH=75%> <H2> <A NAME="sec1"></A>1. CRYPTOGRAPHIC MODULES</H2> <A NAME="as0101"></A><B>AS01.01: Documentation shall completely identify all hardware, software, and firmware components of the cryptographic module. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#1nonvalsub">1.1</A> , <A HREF="1401ig-2.htm#1reval">1.2</A> )</I> <BR><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010101"></A><B>VE01.01.01</B>: All components that implement cryptographic logic or processes shall be identified in the vendor documentation. Components to be listed shall include, as applicable, all of the following:</LI> <P> <OL> <LI> Integrated circuits, including processors, memory, and (semi-) custom integrated circuits</LI> <LI> Other active electronic circuit elements</LI> <LI> Power inputs and outputs, and internal power supplies or converters</LI> <LI> Physical structures, including circuit boards or other mounting surfaces, enclosures, and connectors</LI> <LI> Software and firmware modules</LI> <LI> Other component types used in the module</LI> </OL> <LI> <A NAME="ve010102"></A><B>VE01.01.02</B>: The above list of components shall be consistent with the information provided for all other assertions of this section.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010101"></A><B>TE01.01.01</B>: The tester shall verify that the documentation includes a master components list that is stated to include all hardware, software, and firmware components of the cryptographic module.</LI> <P> <LI> <A NAME="te010102"></A><B>TE01.01.02</B>: The tester shall verify that the master components list includes all occurrences of the following types of components when applicable, excluding only component types that are not used in the module:</LI> <P> <OL> <LI> Processors, including microprocessors, digital signal processors, custom processors, microcontrollers, or any other types of processors</LI> <LI> Read-only memory (ROM) integrated circuits for program executable code and data (this may include mask-programmed ROM, programmable ROM (PROM) such as ultraviolet, erasable PROM [EPROM] or electrically erasable PROM [EEPROM])</LI> <LI> Random-access memory (RAM) integrated circuits for temporary data storage</LI> <LI> Semi-custom, application-specific integrated circuits, such as gate arrays, programmable logic arrays, or other programmable logic devices</LI> <LI> Fully custom, application-specific, integrated circuits, including any custom cryptographic integrated circuits</LI> <LI> Other active electronic circuit elements (the vendor does not have to list passive circuit elements such as pull up/pull down resistors or bypass capacitors if they do not play a significant role in the security of the cryptographic module and are not at the cryptographic boundary)</LI> <LI> Power supply components, including power supply, voltage conversion modules (e.g., AC-to-DC or DC-to-DC modules), transformers, input power connectors, and output power connectors</LI> <LI> Circuit boards or other component mounting surfaces</LI> <LI> Enclosures, including any removable access doors or covers</LI> <LI> Physical connectors for devices outside the cryptographic module, or between any major independent submodules of the cryptographic module</LI> <LI> Software modules, defined as executable code or data that could be changed in the future or is readily accessible to programmers</LI> <LI> Firmware modules, defined as executable code or data that is unlikely to be changed (e.g., because it performs a standardized fixed function) and is not readily accessible to programmers</LI> <LI> Other component types used in the module</LI> </OL> <LI> <A NAME="te010103"></A><B>TE01.01.03</B>: The tester shall verify that the master components list is consistent with information provided for other assertions of this section, as defined below:</LI> <P> <OL> <LI> The specification of the cryptographic boundary under assertion AS01.02: Verify that all components inside the cryptographic boundary are included in the master components list, and that any components outside the cryptographic boundary are not listed as components of the cryptographic module.</LI> <LI> The specification of the processors and software/firmware under assertion AS01.03: Verify that the list of processors, software modules, and hardware modules in the master components list is the same as in the specifications under Assertion AS01.03.</LI> <LI> The specification of the physical configuration under assertion AS01.04: Verify that the list of physical structures in the master components list (such as circuit boards or other mounting surfaces, enclosures, and connectors) is the same as in the specifications under Assertion AS01.04.</LI> <LI> The specification of the block diagram under assertion AS01.05: Verify that any individual components called out in the block diagram (e.g., processors, application-specific integrated circuits, and large memory units) are also listed in the master components list.</LI> <LI> Any components which are to be excluded from the requirements of FIPS PUB 140-1 under the provisions of assertion AS01.06: Verify that components to be so excluded are still listed in the master components list.</LI> </OL> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0102"></A><B>AS01.02: Documentation shall completely specify the module's cryptographic boundary surrounding the components. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#1bound">1.3</A> ,<A HREF="1401ig-2.htm#1submodule">1.4</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010201"></A><B>VE01.02.01</B>: The vendor documentation shall specify the module's cryptographic boundary. The cryptographic boundary shall be an explicitly defined, contiguous perimeter that establishes the physical bounds of the cryptographic module. The perimeter definition shall define module components and connections (ports), and also module information flows, processing, and input/output signals.</LI> <P> <LI> <A NAME="ve010202"></A><B>VE01.02.02</B>: The cryptographic boundary shall include any hardware or software that inputs, processes, or outputs important security parameters that could lead to the compromise of sensitive information if not properly controlled.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010201"></A><B>TE01.02.01</B>: The tester shall verify that the documentation explicitly shows where the cryptographic boundary physical perimeter lies. This can be supplied via a listing of all significant components inside the cryptographic boundary plus all ports connected to equipment outside the cryptographic boundary. The documentation must also supply a listing of all significant information flows and processing to be performed inside the cryptographic boundary plus all information signals that are input and output to the exterior of the cryptographic boundary. Alternatively, a detailed functional block diagram showing the cryptographic boundary may be used to meet some or all of the above requirements for perimeter definition, as long as there is sufficient detail to provide the information required above. (Annotations on component lists or block diagrams provided for other purposes may also be used, if the cryptographic boundary is clearly identified.)</LI> <P> <LI> <A NAME="te010202"></A><B>TE01.02.02</B>: The tester shall verify that the vendor-provided documentation includes sufficient detail for components at the cryptographic boundary to precisely define the cryptographic boundary.</LI> <P> <LI> <A NAME="te010203"></A><B>TE01.02.03</B>: The tester shall verify that the cryptographic boundary is physically contiguous. This means that there must be no gaps that could allow uncontrolled input, output, or other access into the cryptographic module. (Physical protection and tamper protection are covered separately in requirements under section 4.5 of FIPS PUB 140-1.) The module design must also ensure that there are no uncontrolled interfaces into or out of the cryptographic module that could pass sensitive information.</LI> <P> <LI> <A NAME="te010204"></A><B>TE01.02.04</B>: The tester shall verify that the cryptographic boundary encompasses all components that are identified in the block diagram under assertion AS01.05 in this section as inputting, outputting, or processing plaintext, keys, authorization data, or other information that if misused or malfunctioned could lead to a compromise.</LI> <P> <LI> <A NAME="te010205"></A><B>TE01.02.05</B>: As a partial exception to the above requirements, the vendor is allowed to exclude certain components from the requirements of FIPS PUB 140-1 after satisfying the requirements under assertion AS01.06 in this section. The vendor may then treat such excluded components as effectively outside the cryptographic boundary of the module, in the sense that they will not be further analyzed. In that case, the tester shall verify that any interfaces or physical connections between such excluded components and the rest of the module cannot allow uncontrolled release of sensitive information outside the module.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0103"></A><B>AS01.03: If the cryptographic module contains software or firmware, the cryptographic boundary shall be defined such that it contains any processor which executes the code. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010301"></A><B>VE01.03.01</B>: For each processor in the module, the vendor shall identify, by major function, the software or firmware that are executed by the processor, and the memory devices that contain the executable code and data.</LI> <P> <LI> <A NAME="ve010302"></A><B>VE01.03.02</B>: For each processor, the vendor shall identify any hardware with which it interfaces.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010301"></A><B>TE01.03.01</B>: The tester shall verify that each processor identified under this assertion is contained in the master components list under assertion AS01.01 and in the cryptographic boundary defined under assertion AS01.02.</LI> <P> <LI> <A NAME="te010302"></A><B>TE01.03.02</B>: The tester shall verify that, for each processor, the vendor has identified the software or firmware code modules executed by that processor, the functions performed by that processor and its code, and the memory devices containing the executable code and data.</LI> <P> <LI> <A NAME="te010303"></A><B>TE01.03.03</B>: The tester shall verify that, for each processor, the vendor has identified any hardware with which it interfaces. This must include, as applicable, any hardware components that provide input data, control, or status signals to the processor and its software/firmware, and any hardware components that receive output data, control, or status signals from the processor and its software/firmware. Such hardware components may be within the cryptographic module, or may be user equipment outside the module such as input/output devices.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0104"></A><B>AS01.04: Documentation shall completely describe the physical configuration of the module. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010401"></A><B>VE01.04.01</B>: The vendor shall identify which of the three possible physical configurations the module has: single-chip module; multi-chip embedded module; or multi-chip, stand-alone module as defined in Section 4.5 of FIPS PUB 140-1.</LI> <P> <LI> <A NAME="ve010402"></A><B>VE01.04.02</B>: The vendor's documentation shall indicate the internal layout and assembly methods (e.g., fasteners and fittings) of the module, including drawings that are at least approximately to scale. The interior of integrated circuits need not be shown.</LI> <P> <LI> <A NAME="ve010403"></A><B>VE01.04.03</B>: The vendor's documentation shall describe the primary physical parameters of the module, including descriptions of the enclosure, access points, circuit boards, location of power supply, interconnection wiring runs, cooling arrangements, and any other significant parameters.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010401"></A><B>TE01.04.01</B>: The tester shall verify that the vendor identified that the cryptographic module is either a single-chip module, a multi-chip embedded module, or a multi-chip standalone module as defined in Section 4.5 of FIPS PUB 140-1.</LI> <P> <LI> <A NAME="te010402"></A><B>TE01.04.02</B>: The tester shall verify that the vendor's documentation shows the internal layout of the module, including the placement and approximate dimensions of major identifiable components of the module. This must include drawings that are at least approximately to scale. (These need not be blueprints. The vendor can use his own internal format if desired and if the information is detailed and accurate enough to meet the requirements of this section.)</LI> <P> <LI> <A NAME="te010403"></A><B>TE01.04.03</B>: The tester shall verify that the vendor's documentation indicates the major physical assemblies of the module and how they are assembled or inserted into the module.</LI> <P> <LI> <A NAME="te010404"></A><B>TE01.04.04</B>: The tester shall verify that the vendor's documentation describes the primary physical parameters of the module. This must include at least the following:</LI> <P> <OL> <LI> Enclosure shape and approximate dimensions, including any access doors or covers</LI> <LI> Circuit board(s) approximate dimensions, layout, and interconnections</LI> <LI> Location of power supply, power converters, and power inputs and outputs</LI> <LI> Interconnection wiring runs: routing and terminals</LI> <LI> Cooling arrangements, such as conduction plates, cooling air flow, heat exchanger, cooling fins, fans, or other arrangements for removing heat from the module</LI> </OL> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0105"></A><B>AS01.05: Documentation shall include a block diagram depicting all of the major hardware components of the module and their interconnections. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010501"></A><B>VE01.05.01</B>: The vendor documentation shall include a functional block diagram showing the hardware components and their interconnections. Components to be included in the block diagram shall include, as applicable:</LI> <P> <OL> <LI> Microprocessors</LI> <LI> Input/output buffers</LI> <LI> Plaintext/ciphertext buffers</LI> <LI> Control buffers</LI> <LI> Key storage</LI> <LI> Working memory</LI> <LI> Program memory</LI> <LI> Any other significant components used</LI> </OL> <LI> <A NAME="ve010502"></A><B>VE01.05.02</B>: The block diagram shall also include any (semi-) custom integrated circuits, such as predesigned cryptographic circuitry, gate arrays, or other programmable logic. Independent functions within such components shall be identified separately in the block diagram.</LI> <P> <LI> <A NAME="ve010503"></A><B>VE01.05.03</B>: The block diagram shall include the functions of major module components or subassemblies.</LI> <P> <LI> <A NAME="ve010504"></A><B>VE01.05.04</B>: The block diagram shall show interconnections among major components of the module and between the module and outside equipment.</LI> <P> <LI> <A NAME="ve010505"></A><B>VE01.05.05</B>: The block diagram shall show the cryptographic boundary of the module.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010501"></A><B>TE01.05.01</B>: The tester shall verify that the vendor has provided one or more block diagrams indicating major submodules of the cryptographic module. These shall include at least the following, as applicable to the vendor's design:</LI> <P> <OL> <LI> Microprocessors or any other processors listed in the master components list under assertion AS01.01 in this section</LI> <LI> Input/output buffer memory that stores or processes general input or output data other than plaintext/ciphertext message data or control information</LI> <LI> Plaintext/ciphertext buffer memory that stores or processes message data to be encrypted or decrypted</LI> <LI> Control buffer memory that stores or processes control and status information that is input into the module or output from the module</LI> <LI> Key storage for cryptovariables</LI> <LI> Working memory for processing information</LI> <LI> Program memory containing executable software or firmware code</LI> <LI> (Semi-) custom integrated circuits such as predesigned cryptographic circuitry, application-specific integrated circuits, gate arrays, programmable logic arrays, or other programmable logic devices. (These must be specified to the level of independent functions. If more than one function is performed by a given module, the functions shall be shown separately in the block diagram.)</LI> <LI> Any other significant components used</LI> </OL> <LI> <A NAME="te010502"></A><B>TE01.05.02</B>: The tester shall verify that the block diagram indicates the major functions performed by the components or subassemblies that are blocks in the diagram. These must include at least plaintext and ciphertext message processing and routing, cryptologic (algorithms and other cryptographic processing), memory buffering and storage, control logic, key handling, zeroization, alarms and protection, and power.</LI> <P> <LI> <A NAME="te010503"></A><B>TE01.05.03</B>: The tester shall verify that the block diagram indicates all significant interconnections and data flow among major components of the module, and between the module and outside equipment. In particular, each line on the block diagram indicating an interconnection must be labeled with the type of information it transmits.</LI> <P> <LI> <A NAME="te010504"></A><B>TE01.05.04</B>: The tester shall verify that the block diagram indicates the cryptographic boundary for the cryptographic module, as required under assertion AS01.02 in this section.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0106"></A><B>AS01.06: Documentation shall indicate any hardware, software, or firmware components of the module that are excluded from the security requirements of the standard and explain why these parts do not effect the security of the module. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#1submodule">1.4</A> , )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010601"></A><B>VE01.06.01</B>: All components that are to be excluded from the security requirements shall be explicitly listed in the vendor documentation.</LI> <P> <LI> <A NAME="ve010602"></A><B>VE01.06.02</B>: The rationale for excluding each of the components listed in response to requirement VE01.06.01 shall be provided in the vendor documentation. The vendor shall show that each such component, even if malfunctioning or misused, cannot cause a compromise under any reasonable conditions.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010601"></A><B>TE01.06.01</B>: The tester shall determine whether the vendor indicates that any components of the module are to be excluded from the requirements of FIPS PUB 140-1. If none are so listed, all components must meet the other requirements of this and all other sections.</LI> <P> <LI> <A NAME="te010602"></A><B>TE01.06.02</B>: If the vendor has indicated that certain components of the module are to be excluded from the requirements of FIPS PUB 140-1, the tester shall determine that a rationale for the exclusion is provided. The rationale must show that even if the component is misused or malfunctions, it could not cause a compromise via potential release of sensitive information. Some reasons that might be acceptable, if adequately supported by backup information and discussion, include:</LI> <P> <OL> <LI> The component does not process sensitive information and is not connected with sensitive areas of the rest of the module in any way that would allow inappropriate transfer of sensitive information (e.g., structural components or filter power circuitry)</LI> <LI> All information processed by the component is strictly for internal use of the module, and does not in any way impact the equipment to which the module is connected (e.g., internal housekeeping timing circuits that are reclocked before use by components that do contact outside equipment such as input/output devices)</LI> <LI> The component's inputs or outputs are compared against similar redundant information elsewhere in the module that would detect and protect against any malfunction which could otherwise have released sensitive information</LI> </OL> The tester shall determine the correctness of any rationale for exclusion such as the above. The burden of proof is on the vendor; if there is any uncertainty or ambiguity, the tester shall require the vendor to produce additional information as needed. <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0107"></A><B>AS01.07: Documentation shall completely specify the cryptographic module security policy, i.e., the security rules under which a module must operate. In particular, the security policy shall include the security rules derived from the security requirements of this standard and the security rules derived from any additional security requirements imposed by the manufacturer. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#1secpolicy">1.5</A> , <A HREF="1401ig-2.htm#4format">4.1</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve010701"></A><B>VE01.07.01</B>: The vendor shall provide a separate document, or section of a document, that specifies the security policy (i.e., the security rules under which a module must operate) enforced by the cryptographic module.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te010701"></A><B>TE01.07.01</B>: The tester shall review the security policy specification provided by the vendor. Specifically, he or she must determine that it identifies all roles, services, and security relevant data items of the cryptographic module, and specifies what access, if any, a user, performing a service within the context of a given role, has to each of the security relevant data items. The specification should be complete, and detailed enough to be able to answer the following question: "What access does operator X, performing service Y while in role Z have to security relevant data item K?" for every role, service, and security relevant data item contained in the cryptographic module.</LI> <P> <LI> <B>General</B>: The vendor is encouraged to include, or reference by page number or figure in documentation, any useful supporting information. This could include data sheets, user manuals, results of prior security analyses (in-house or with NSA), etc. Such supporting information would be particularly useful where it helps evaluate the module against specific tester requirements.</LI> <P> </UL> <HR SIZE=4 WIDTH=75%> <H2> <A NAME="sec2"></A>2. MODULE INTERFACES</H2> <A NAME="as0201"></A><B>AS02.01: The module shall be designed to restrict all information flow and physical access to the module to logical interfaces that define all entry and exit points to and from the module. The module interfaces shall be logically distinct from each other. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020101"></A><B>VE02.01.01</B>: The vendor documentation shall itemize the module information flows and access points by highlighting or annotating copies of the block diagram required in section 1, and providing any other documentation necessary to clearly specify the logical interfaces. For each input to the module or output from the module, the documentation shall specify the logical interface to which the input or output belongs, and the physical entry/exit point. The information provided under this requirement shall be consistent with component information provided for assertions AS01.01, AS01.02, and AS01.05 under section 1.</LI> <P> <LI> <A NAME="ve020102"></A><B>VE02.01.02</B>: The vendor design shall separate the module interfaces into logically isolated categories using at least the categories defined in assertion AS02.02 and (if applicable) AS02.03 in this section. If two or more interfaces share the same physical port, the vendor shall specify how the information from different interface categories is kept logically separate.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020101"></A><B>TE02.01.01</B>: The tester shall verify that the vendor documentation includes the following information:</LI> <P> <OL> <LI> A listing or diagram of all logical inputs to the module and outputs from the module</LI> <LI> A listing of all physical input (entry) and output (exit) ports of the module</LI> <LI> A mapping from the logical inputs/outputs to the physical input/output ports of the module</LI> <LI> A highlighted or annotated copy of the block diagram showing the logical input/output interfaces</LI> </OL> The tester shall compare the above information with the information provided under assertions AS01.01, AS01.04, and AS01.05 and verify that there are no inconsistencies in the description of components and physical layout for the input/output ports. (Note that separate pins within one connector may be considered separate ports.) <P> <LI> <A NAME="te020102"></A><B>TE02.01.02</B>: The tester shall verify from vendor documentation that the module interfaces are separate for the categories of interfaces specified in assertions AS02.02 and (if applicable) AS02.03 of this section. In particular, the tester shall verify that the information flows for the input, output, control, and status interfaces are not mingled by merging any of them into the same physical interface signal line at the same time. Note that a module interface may be physically distributed across more than one port, or two or more module interfaces may physically share one port as long as the information flows are kept logically separate. However, if two or more interfaces share the same physical port, the tester shall verify that the vendor describes a workable scheme for keeping separate the information flowing through the interfaces.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0202"></A><B>AS02.02: The module shall have at least the following four logical interfaces: (1, 2, 3, and 4)</B> <P><B> </B> <UL> <LI> Data input interface</LI> <LI> Data output interface</LI> <LI> Control input interface</LI> <LI> Status output interface</LI> </UL> <I>(Relevant Guidance: <A HREF="1401ig-2.htm#2hwlogint">2.5</A> , <A HREF="1401ig-3.htm#5tamplogint">5.2</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020201"></A><B>VE02.02.01</B>: The module shall have a data input interface that is defined in the vendor documentation, including:</LI> <P> <OL> <LI> Plaintext data</LI> <LI> Ciphertext data</LI> <LI> Cryptographic keys</LI> <LI> Other key management data</LI> <LI> Authentication data</LI> <LI> Status information</LI> <LI> Any other input data</LI> </OL> <LI> <A NAME="ve020202"></A><B>VE02.02.02</B>: The module shall have a data output interface that is defined in the vendor documentation including:</LI> <P> <OL> <LI> Plaintext data</LI> <LI> Ciphertext data</LI> <LI> Cryptographic keys</LI> <LI> Other key management data</LI> <LI> Authentication data</LI> <LI> Control information</LI> <LI> Any other output data</LI> </OL> <LI> <A NAME="ve020203"></A><B>VE02.02.03</B>: The module shall have a control input interface that is defined in the vendor documentation used to control operation of the module, including input commands, signals, data, and manual inputs.</LI> <P> <LI> <A NAME="ve020204"></A><B>VE02.02.04</B>: The module shall have a status output interface that is defined in the vendor documentation used to indicate or display the status of the module including output data, signals, indicators, and physical indicators.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020201"></A><B>TE02.02.01</B>: The tester shall verify from vendor documentation that the module has a data input interface that includes any of the following to be input or processed by the module:</LI> <P> <OL> <LI> Plaintext data that is to be encrypted or authenticated in the module.</LI> <LI> Ciphertext data that is to be decrypted in the module.</LI> <LI> Cryptographic keys that are input into and used by the module.</LI> <LI> Other key management data that is input into the module (depending on the module functions, this might include initialization vectors, counters, zeroization commands, split key information, or key accounting information). (Other key management requirements are covered in section 8.)</LI> <LI> Authentication data that is input into the module.</LI> <LI> Status information from outside the module (for example received from another module).</LI> <LI> Any other information that is input into the module for processing or storage except for control information which is covered separately in VE02.02.03 and TE02.02.03 below.</LI> <LI> Note that for security levels 1 and 2, the data input port or ports for cryptographic keys, authentication data, and other critical security parameters may be shared with other ports of the module. (Corresponding requirements for security levels 3 and 4 are covered separately under assertion AS02.13 in this section.)</LI> </OL> <LI> <A NAME="te020202"></A><B>TE02.02.02</B>: The tester shall verify from vendor documentation that the module has a data output interface that includes any of the following to be output by the module:</LI> <P> <OL> <LI> Plaintext data that has been decrypted by the module.</LI> <LI> Ciphertext data that has been encrypted by the module.</LI> <LI> Cryptographic keys that are generated within and output from the module.</LI> <LI> Other key management data that is output from the module (depending on the module functions, this might include initialization vectors, counters, zeroization commands, split key information, or key accounting information). (Other key management requirements are covered in section 8.)</LI> <LI> Authentication data that is output from the module.</LI> <LI> Control information sent outside the module (for example to be sent to another module).</LI> <LI> Any other information that is output from the module after processing or storage except for status information that is covered separately in VE02.02.04 and TE02.02.04 below.</LI> </OL> Note that for security levels 1 and 2, the data output port or ports for cryptographic keys, authentication data, and other critical security parameters may be shared with other ports of the module. (Corresponding requirements for security levels 3 and 4 are covered separately under assertion AS02.13 in this section.) <P> <LI> <A NAME="te020203"></A><B>TE02.02.03</B>: The tester shall verify from vendor documentation that the module has a control input interface that is used to enter information that controls the operation of the module (as opposed to input data which is processed or stored by the module as defined in VE02.02.01 and TE02.02.01 in this section), including any:</LI> <P> <OL> <LI> Input commands</LI> <LI> Input signals</LI> <LI> Input data</LI> <LI> Manual inputs (such as switches, buttons, and keyboards)</LI> </OL> <LI> <A NAME="te020204"></A><B>TE02.02.04</B>: The tester shall verify from vendor documentation that the module has a status output interface that is used to output information that indicates or displays the status of the module (as opposed to data output as defined in VE02.02.02 and TE02.02.02 in this section) including any:</LI> <P> <OL> <LI> Output data</LI> <LI> Output signals</LI> <LI> Output indicators</LI> <LI> Status codes</LI> <LI> Physical indicators (such as lights, LEDs, buzzers, and displays)</LI> </OL> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0203"></A><B>AS02.03: The module may include the following logical interfaces: (1, 2, 3, and 4)</B> <P><B> </B> <UL> <LI> <B>Power interface</B></LI> <LI> <B>Maintenance access interface</B></LI> <P><B> </B></UL> <I>(Relevant Guidance: <A HREF="1401ig-2.htm#2maintint">2.1</A> , )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020301"></A><B>VE02.03.01</B>: If the module accepts or provides external power, it shall have a power interface well defined in the vendor documentation that includes any entry or exit points for the power.</LI> <P> <LI> <A NAME="ve020302"></A><B>VE02.03.02</B>: If the module allows access for maintenance purposes, it shall have a maintenance access interface, well defined in the vendor documentation, that includes any of the following inputs, outputs, or accesses used to maintain, service, or repair the module:</LI> <P> <OL> <LI> Data</LI> <LI> Control information</LI> <LI> Status information</LI> <LI> All physical access paths</LI> </OL> Any data, control, or status information used to maintain, service, or repair the module shall enter and exit via the maintenance access interface. <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020301"></A><B>TE02.03.01</B>: The tester shall determine whether the module uses power from an external source or provides power to an external source. If either or both of these conditions are met, the tester shall verify from vendor documentation that the vendor documentation shows that a logically separate power interface is provided. Note that a power interface is not required when all power is provided or maintained internally to the module (e.g., battery power or solar power).</LI> <P> <LI> <A NAME="te020302"></A><B>TE02.03.02</B>: The tester shall determine whether the module allows access for maintenance purposes. If so, the tester shall verify from vendor documentation that the vendor documentation shows a logically separate maintenance interface is provided. The tester shall verify that documentation on the maintenance interface, if present, includes all of the following information that is used to maintain, service, or repair the module:</LI> <P> <OL> <LI> Data input into the module that may include test data to fill module storage with known data or to put the module into a known state.</LI> <LI> Data output from the module (for example: for checking against known correct data or for other correctness checks).</LI> <LI> Control information that puts the module into specific states required for maintenance.</LI> <LI> Status information that indicates the state of the module before, during, or after maintenance actions.</LI> <LI> All physical access paths including removable covers and doors used to gain physical access to the contents of the module.</LI> <LI> (Other requirements on the maintenance interface are covered separately under assertions AS02.05 through AS02.08 in this section. Some requirements relating to physical access are covered in section 5.)</LI> </OL> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0204"></A><B>AS02.04: All data output via the data output interface shall be inhibited whenever an error state exists and during self-tests. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020401"></A><B>VE02.04.01</B>: The vendor design shall ensure that all data output via the data output interface is inhibited whenever the module is in an error state, as documented in section 4, and the vendor documentation shall describe how this is done.</LI> <P> <LI> <A NAME="ve020402"></A><B>VE02.04.02</B>: The vendor design shall ensure that all data output via the data output interface is inhibited whenever the module is in a self-test condition, as documented in section 11, and the vendor documentation shall describe how this is done.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020401"></A><B>TE02.04.01</B>: The tester shall verify that the vendor documentation shows that all data output via the data output interface is inhibited whenever the module is in any error state. In particular, the tester shall verify from vendor documentation that once an error condition is detected and the error state is entered, all data output via the data output interface must be inhibited, unless and until error recovery, if any, is complete. (Some status output may be allowed to assist in determining the type of error, as long as it is clear that no potentially sensitive information could be released.) The tester shall also verify that the error states discussed in vendor documentation in response to this requirement are identical to those documented in the finite state machine model of section 4 (requirement VE04.00).</LI> <P> <LI> <A NAME="te020402"></A><B>TE02.04.02</B>: To the extent the module design and operating procedures allow, the tester shall put the module in each error state and verify that all data output via the data output interface is disallowed. (Limited status information that may be useful in determining the type of error is allowed as long as no potentially sensitive information is released.) The error state should be induced by at least the following actions, if applicable and practical: opening a tamper protected area, entering an incorrect key, reducing input voltage,and any other possible error-inducing actions.</LI> <P> <LI> <A NAME="te020403"></A><B>TE02.04.03</B>: The tester shall verify that the vendor documentation shows all data output is inhibited whenever the module is in any self-test condition. The tester shall also verify that the self-test conditions discussed in vendor documentation in response to this requirement are identical to those documented in the self tests of section 11 (requirements VE11.01.01 and TE11.01.01).</LI> <P> <LI> <A NAME="te020404"></A><B>TE02.04.04</B>: If the module design and operating procedures allow it, the tester shall put the module in a self-test state and verify that data output is disallowed.</LI> <P> <LI> <A NAME="te020405"></A><B>TE02.04.05</B>: The tester shall verify that the vendor documentation shows how the data output is to be inhibited, to ensure that the alarm or self-test indications can logically inhibit the data output interface, and that the data output lines are, in fact, inhibited under any reasonable conditions (for example: a logical switch connected to an alarm indicator line could open an output line).</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0205"></A><B>AS02.05: If a maintenance access interface is provided, any removable covers or doors defined as part of it shall be safeguarded using the appropriate physical security mechanisms of section 5. (1, 2, 3, and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#3maintzero">3.6</A>)</I> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020501"></A><B>VE02.05.01</B>: The vendor documentation shall specify how the design ensures that any removable covers or doors of a maintenance access interface meet the physical security requirements of section 5.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020501"></A><B>TE02.05.01</B>: The tester shall determine whether the vendor documentation states that a maintenance access interface is provided and any removable covers or doors are provided. If so, the tester shall refer to the evaluation of requirements in section 5 to ensure that all applicable physical security requirements of that section are met (requirements TE05.10.04, TE05.17.01, TE05.19.01, or TE05.20.04 as appropriate for the physical configuration and security level of module).</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0206"></A><B>AS02.06: If a maintenance access interface is provided, all access defined under assertion AS02.08 in this section, including physical modifications to the contents of the module, shall be restricted to the authorized maintenance role of section 3.1. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020601"></A><B>VE02.06.01</B>: The vendor documentation shall specify how the module design and maintenance accesses, if any, ensure that any maintenance actions or physical modifications are restricted to the maintenance role(s) defined under section 3.1.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020601"></A><B>TE02.06.01</B>: If vendor documentation states that a maintenance access interface is provided, the tester shall verify that the vendor documentation required under assertion AS02.08 in this section defines these actions in sufficient detail to allow the tester to determine whether the requirements of this assertion are met. The tester shall verify that the maintenance actions defined here are consistent with those defined in the maintenance role requirements of section 3.1 and shall also verify that the evaluation against section 3.1 shows that all applicable maintenance role requirements are met.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0207"></A><B>AS02.07: If a maintenance access interface is provided, all plaintext secret and private keys and other critical security parameters contained in the module shall be zeroized when accessing the maintenance interface. (1, 2, 3, and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#2zeroize">2.2</A> , <A HREF="1401ig-2.htm#3maintzero">3.6</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020701"></A><B>VE02.07.01</B>: The vendor shall ensure that all of the module's plaintext keys and other critical security parameters, as defined in section 2.1 of FIPS PUB 140-1, are actively zeroized when the maintenance interface is accessed. The vendor documentation shall show how this requirement is met.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020701"></A><B>TE02.07.01</B>: If vendor documentation states that a maintenance access interface is provided, the tester shall verify that the vendor documentation shows that all operational plaintext keys and other unprotected critical security parameters contained in the module are actively zeroized as defined in TE02.07.02 when accessing the maintenance interface. Critical security parameters are defined in section 2.1 of FIPS PUB 140-1 to consist of cryptographic keys, authentication data such as passwords and personal identification numbers, and any other security-related information that is in a plaintext or other unprotected form, and that, if disclosed or modified, could compromise the security of the module or the security of information handled by the module.</LI> <P> <LI> <A NAME="te020702"></A><B>TE02.07.02</B>: If the module has a maintenance access interface, the tester shall verify from vendor documentation that zeroization includes actively erasing keys and parameters by overwriting or otherwise altering them. Zeroization techniques may include overwriting memory, or shorting memory to ground if the vendor shows that this drains off all charge within a few seconds. However, just removing power to memory and allowing charge to slowly dissipate is not sufficient. If the module design and operating procedures allow it, the tester shall access the maintenance interface while the unit is powered up, and verify that all operational keys are zeroized (for example by attempting to encrypt or decrypt data and observing that these actions are not possible, by obtaining a report of active keys and observing that no normal keys are usable, etc.)</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0208"></A><B>AS02.08: If a maintenance access interface is provided, documentation shall include a complete specification of the set of authorized maintenance procedures for the module. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020801"></A><B>VE02.08.01</B>: Vendor documentation shall define in detail all procedures, if any, by which authorized maintenance actions for the module are performed. These procedures shall be consistent with documentation provided under other requirements of this and all other sections.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020801"></A><B>TE02.08.01</B>: If vendor documentation states that a maintenance access interface is provided, the tester shall verify that the vendor documentation specifies all maintenance actions that are authorized for the module in sufficient detail to allow evaluation of the requirements of other sections. In particular, the tester shall verify that the maintenance procedures defined here are consistent with the maintenance roles of section 3.1, the maintenance states of section 4, and any physical tamper protection of section 5.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0209"></A><B>AS02.09: Documentation shall include a complete specification describing each of the logical interfaces of the module. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve020901"></A><B>VE02.09.01</B>: Documentation shall include a complete specification describing each of the interfaces of the module, including any:</LI> <P> <OL> <LI> Physical or logical ports and their pin assignments</LI> <LI> Physical covers and doors or openings</LI> <LI> Manual or logical controls</LI> <LI> Physical or logical status indicators</LI> <LI> Physical, logical, and electrical characteristics, as applicable, of the above interfaces</LI> </OL> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te020901"></A><B>TE02.09.01</B>: The tester shall verify that vendor documentation specifies the required interfaces of the module in sufficient detail to allow evaluation of the requirements under section 4.2 of FIPS PUB 140-1. The tester shall verify that this documentation is consistent with, or combined with, the description of information flows required under assertions AS01.01 and AS02.01. The required interfaces and their associated documentation shall include:</LI> <P> <OL> <LI> Physical or logical input and output data ports, including pin assignments, physical locations within the module, a summary of the logical signals that flow through each port, and the timing sequence of data flows if two or more signals share the same physical interface.</LI> <LI> Physical covers, doors, or openings, including their physical location within the module and the components and functions that could be accessed or modified via each cover/door/opening.</LI> <LI> Manual or logical controls, including their physical location within the module and a summary of the control signals that are input via the control interface.</LI> <LI> Physical or logical status indicators, including their physical location within the module and a summary of the status indication signals that are output via the status interface.</LI> <LI> Physical, logical, and electrical characteristics, as applicable, of the above interfaces, including summaries of pin placements, signals carried on each port, voltage levels and their logical significance (e.g., what a low or high voltage signifies in terms of a logic "0", "1", or other meaning) and the timing of signals.</LI> <LI> Any other logical interfaces that the module possesses that are necessary for proper functioning of the module.</LI> </OL> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0210"></A><B>AS02.10: Documentation shall explicitly define and specify all physical and logical input and output data paths within the module. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve021001"></A><B>VE02.10.01</B>: The vendor documentation shall describe all physical and logical input and output data paths in sufficient detail to specify all major categories of information input, processed, and output by the module. All input data entering the module via the data input interface shall only pass through the input data path. All output data exiting the module via the data output interface shall only pass through the output data path.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te021001"></A><B>TE02.10.01</B>: The tester shall verify that the vendor documentation defines the physical and logical paths, for both input and output, to the level of detail required below. The data paths must be systematically itemized (for example: by highlighting or annotating copies of the block diagram or other information required under AS01.01, AS01.02, and AS01.05). The data paths must be defined in sufficient detail to completely specify which information passes through each port and to summarize the processing performed on the information by each module subsection between input and output.</LI> <P> <LI> <A NAME="te021002"></A><B>TE02.10.02</B>: The tester shall verify from vendor documentation that all input data, other than control information, enters the module only via the defined data input interface port or ports and then flows only through the defined input data path. The tester shall also verify from vendor documentation that all output data, other than status information, flows only through the defined output data path and then leaves the module only via the defined data output interface port or ports. The tester shall examine both logical information flows, concentrating on the processing performed upon data and the logical relationships between data, and physical data flows, concentrating on the physical location in the module of data paths and data processing. If the tester finds any potential conflicts that could lead to misrouting of sensitive data, clarifying information shall be requested from the vendor if necessary.</LI> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0211"></A><B>AS02.11: Two independent, internal actions shall be required in order to output data via any output interface through which plaintext cryptographic keys or other critical security parameters could be output. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve021101"></A><B>VE02.11.01</B>: If there is any possibility that the module design could allow plaintext cryptographic keys or other critical security parameters to be output on any ports, the design shall require two independent internal actions before output occurs at such ports. In this case, the vendor documentation shall define what these actions are and how they protect against inadvertent release of critical security parameters. This documentation shall include specification of the module functional areas (whether in hardware and/or software) in which the two independent actions are performed.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te021101"></A><B>TE02.11.01</B>: The tester shall determine from vendor documentation whether it is possible to output plaintext keys or other critical security parameters (as defined in section 2.1 of FIPS PUB 140-1). If so, the tester shall verify that the documentation specifies two independent internal actions that must take place before release of any data is allowed on any ports that could release critical security parameters. The independent actions must be logical or physical changes to two areas of the module that are sufficiently independent in function, and separated in location, that a malfunction to one area will not affect the proper functioning of the other area.</LI> <P> <LI> <A NAME="te021102"></A><B>TE02.11.02</B>: The tester shall verify that the dual internal actions specified in TE02.11.01 above, and the module areas which are exercised, are consistent with the module description required under assertions AS01.01 and AS01.05. If any software or firmware is executed in the process of outputting data , the tester shall examine the source code listings, if practical, to ensure that the software supports the requirement for two independent actions before data is output from the affected ports.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0212"></A><B>AS02.12: The output data path shall be logically disconnected from the circuitry and processes performing key generation, manual key entry, or key zeroization. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve021201"></A><B>VE02.12.01</B>: The vendor documentation shall show that the design of the module ensures logical separation of the output data path from processes performing generation, manual entry, and zeroization of cryptographic keys.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te021201"></A><B>TE02.12.01</B>: The tester shall verify that vendor documentation demonstrates that the output data path, as defined under AS02.10, is logically disconnected from processes performing key generation, manual key entry, and key zeroization. This requirement implies that the specified key processes cannot pass information to the output data path, and that the output data path cannot interfere in any way with the key processes. If the key and data paths are physically shared to any extent (which is allowed for levels 1 and 2), the tester shall verify that the vendor documentation shows how the module design enforces separation of the key and other output data under any reasonable conditions, including any checks, alarms, or shut-offs that enforce this separation. Such protective measures might include separation of key and output data processes in location (separate paths and ports for keys versus other data), or time (so that no output is allowed during key processing, for example), or the use of software isolation (header tags and checking, multilevel security isolation, etc.)</LI> <P> <LI> <A NAME="te021202"></A><B>TE02.12.02</B>: If it is practical, and the module design and operating procedures permit it, the tester shall record or observe data on the output data port or ports while performing possible key functions (such as generation, manual entry, and zeroization) and verify that no critical security parameters (as defined in section 2.1 of FIPS PUB 140-1) are released.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0213"></A><B>AS02.13: For security levels 3 and 4, data input and output ports used for plaintext cryptographic keys, plaintext authentication data, and other unprotected critical security parameters shall be physically separated from all other ports of the module. (3 and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#2pubkeyio">2.3</A> , <A HREF="1401ig-2.htm#2physport">2.4</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve021301"></A><B>VE02.13.01</B>: For security levels 3 and 4, if the module design requires use of unprotected critical security parameters, including plaintext cryptographic keys or plaintext authentication data, data ports for input or output of these parameters shall be physically separated from all other ports. The vendor documentation shall show how this is done.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te021301"></A><B>TE02.13.01</B>: For security levels 3 and 4, the tester shall determine from vendor documentation whether the module requires input or output of unprotected critical security parameters as defined in section 2.1 of FIPS PUB 140-1. If so, the tester shall verify, from vendor documentation and also by physical inspection of the ports on the module, that both the corresponding critical security parameter input and output ports are physically separate from all other ports. The tester shall also verify that only unprotected critical security parameters, including plaintext cryptographic keys or plaintext authentication data, enter or exit the module through these ports. The tester shall verify that any documentation on data paths provided by the vendor in connection with this requirement is consistent with, or contained in, documentation provided in connection with assertion AS02.10. (Note that separate pins within one connector may be considered separate ports.)</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0214"></A><B>AS02.14: For security levels 3 and 4, data input and output ports used for plaintext cryptographic keys, plaintext authentication data, and other unprotected critical security parameters shall allow for direct entry of these items. (3 and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve021401"></A><B>VE02.14.01</B>: For security levels 3 and 4, if the module design requires use of unprotected critical security parameters, including plaintext cryptographic keys or plaintext authentication data, data ports for input or output of these parameters shall be directly connected to the cryptographic boundary without passing through any processors, complex logic blocks, or module areas performing functions unrelated to key handling which are outside the cryptographic boundary. The vendor documentation shall show how this is done.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te021401"></A><B>TE02.14.01</B>: For security levels 3 and 4, the tester shall determine from vendor documentation whether the module requires input or output of unprotected critical security parameters as defined in section 2.1 of FIPS PUB 140-1. If so, the tester shall verify that the vendor documentation defines the path between the input or output ports and the cryptographic boundary. The tester shall then verify that the above security parameters pass directly between the input/output ports and the cryptographic boundary without unnecessarily passing through other module components. In particular, while outside the cryptographic boundary, the security parameters must not pass through any general-purpose processors that have functions other than handling security parameters, nor through any areas handling unrelated input or output functions. (Temporary display of manually entered encrypted keys is allowed as described under AS08.12.)</LI> <P> <LI> <B>General</B>: Documentation of input, output, control, or status interfaces must also include identification of any external input/output devices to be used with module, such as keypads, displays, smart cards, etc.</LI> <P> </UL> <HR SIZE=4 WIDTH=75%> <H2> <A NAME="sec3"></A>3. ROLES AND SERVICES</H2> <H3> Roles</H3> <A NAME="as0301"></A><B>AS03.01: Documentation shall provide a complete specification of all of the authorized roles supported by the module. (1, 2, 3, and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#3maint">3.1</A> , <A HREF="1401ig-2.htm#3delinserv">3.2</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030101"></A><B>VE03.01.01</B>: Vendor documentation shall specify each distinct authorized role, including its name, purpose, and the services that are performed in the role.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030101"></A><B>TE03.01.01</B>: The tester shall review the vendor documentation and verify that, for each defined role, the name, purpose, and available services for this role are specified. The roles that should be described are as follows:</LI> <P> <OL> <LI> Crypto-officer role (one or more)</LI> <LI> User role (one or more)</LI> <LI> Maintenance role (only if the module includes a maintenance interface)</LI> <LI> Other roles</LI> </OL> <LI> <A NAME="te030102"></A><B>TE03.01.02</B>: The tester shall assume each of the authorized roles described in the vendor documentation and verify that each of them can be assumed. Verification of the services that are designated for each role will be performed under AS03.07.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0302"></A><B>AS03.02: The cryptographic module shall, at a minimum, support the following authorized roles: (1, 2, 3, and 4)</B> <P><B> </B> <UL> <LI> <B>User role: The role assumed by an authorized user obtaining security services, performing cryptographic operations, or other authorized functions.</B></LI> <LI> <B>Crypto-officer role: The role assumed by an authorized crypto officer performing a set of cryptographic initialization or management functions (e.g., cryptographic key and parameter entry, cryptographic key cataloging, audit functions, and alarm resetting).</B></LI> </UL> <I>(Relevant Guidance: <A HREF="1401ig-2.htm#3delinserv">3.2</A> , )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030201"></A><B>VE03.02.01</B>: In the documentation required to satisfy VE03.01.01 above, the vendor shall include at least one user role and one crypto-officer role.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030201"></A><B>TE03.02.01</B>: The tester shall review the vendor documentation and verify that, in the specification of the authorized roles, at least one user role and at least one crypto-officer role are defined. These roles shall be specified by name, purpose, and allowed services. These roles shall be described as specified in AS03.02.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0303"></A><B>AS03.03: If a cryptographic module includes a maintenance access interface as specified in section 4.2, the module shall also support the maintenance role. (1, 2, 3, and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#3maintzero">3.6</A>)</I> <P><B> </B> <UL> <LI> <B>Maintenance role: The role assumed by an authorized maintenance person accessing the maintenance access interface and/or performing specific maintenance tests and obtaining interim results in order to maintain, service or repair the module.</B></LI> <P><B> </B></UL> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030301"></A><B>VE03.03.01</B>: If the module has a maintenance interface, the vendor documentation shall explicitly state a maintenance role is supported. The documentation shall completely specify the role by name, purpose, and allowed services. Note that the maintenance role involves accessing and running tests on the module while it is operational; it does not involve any physical maintenance. The maintenance is a role that can be assumed by an operator and recognized by the module.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030301"></A><B>TE03.03.01</B>: The tester shall check the specifications of the module interfaces to determine whether a maintenance interface is specified (see AS02.03). If so, the tester shall check the vendor documentation pertaining to the authorized roles and verify that the maintenance role is specified by name, purpose, and allowed services.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0304"></A><B>AS03.04: If the maintenance role is supported, a cryptographic module shall clear all plaintext secret and private keys and other critical security parameters when entering the maintenance role. A related assertion is AS02.07. (1, 2, 3, and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#3maintzero">3.6</A>)</I> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030401"></A><B>VE03.04.01</B>: The vendor shall ensure all of the module's plaintext secret and plaintext private keys and critical security parameters, as defined in section 2.1 of FIPS PUB 140-1, are actively zeroized when the maintenance role is entered. Note that the maintenance role is an active role (i.e., the module must still be powered up in order to assume the role). The vendor documentation shall specify how this requirement is met. Methods for zeroization could include, but not be limited to, software or firmware code or the automatic assertion of certain signals within the module.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030401"></A><B>TE03.04.01</B>: If vendor documentation states that a maintenance role is implemented in the module, the tester shall verify that the vendor documentation specifies the method by which plaintext secret and plaintext private keys and critical security parameters are zeroized when the maintenance role is entered. Critical security parameters are defined in section 2.1 of FIPS PUB 140-1 to consist of cryptographic keys, authentication data such as passwords and personal identification numbers (PINs) and any other security-related information that is in plaintext or otherwise unprotected form and that, if disclosed or modified, could compromise the security of the module or of information handled by the module.</LI> <P> <LI> <A NAME="te030402"></A><B>TE03.04.02</B>: If the module implements a maintenance role, the tester shall verify from vendor documentation that zeroization is performed as defined in TE02.07.02.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0305"></A><B>AS03.05: If the maintenance role is supported, a cryptographic module shall clear all maintenance keys and other critical security parameters when exiting the maintenance role. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030501"></A><B>VE03.05.01</B>: The vendor shall ensure all of the module's maintenance keys and other critical security parameters are actively zeroized when the maintenance role is exited. The vendor documentation shall specify how this requirement is met. Methods for zeroization could include, but not be limited to, software or firmware code or the automatic assertion of certain signals within the module.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030501"></A><B>TE03.05.01</B>: If vendor documentation states that a maintenance role is implemented in the module, the tester shall verify that the vendor documentation specifies the method by which maintenance keys and other critical security parameters are zeroized when the maintenance role is exited. Critical security parameters are defined in section 2.1 of FIPS PUB 140-1 to consist of cryptographic keys, authentication data such as passwords and personal identification numbers (PINs) and any other security-related information that is in plaintext or otherwise unprotected form and that, if disclosed or modified, could compromise the security of the module or of information handled by the module.</LI> <P> <LI> <A NAME="te030502"></A><B>TE03.05.02</B>: If the module implements a maintenance role, the tester shall verify from vendor documentation that zeroization is performed as defined in TE02.07.02.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0306"></A><B>AS03.06: If a module can support multiple concurrent operators, then the module shall internally maintain the separation of the authorized roles and services performed by each operator. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030601"></A><B>VE03.06.01</B>: The vendor documentation shall specify whether multiple concurrent operators are allowed. If so, the vendor shall describe the method by which separation of the authorized roles and services performed by each operator is achieved. The vendor documentation shall also describe any restrictions on concurrent operators (e.g., one operator in a maintenance role and another in a user role simultaneously is not allowed).</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030601"></A><B>TE03.06.01</B>: The tester shall review the vendor documentation and verify that the method is described by which the module enforces separation between the roles and services performed by concurrent operators.</LI> <P> <LI> <A NAME="te030602"></A><B>TE03.06.02</B>: The tester shall take on the identity of two independent operators: Operator1 and Operator2. The operators shall assume two different roles. The tester shall verify that only the services allocated to the role assumed by each operator can be performed in that role. The tester shall also attempt, for each operator, to access services that are unique to the role assumed by the other operator in order to verify that separation is maintained between the roles and services allowed in concurrent operators.</LI> <P> <LI> <A NAME="te030603"></A><B>TE03.06.03</B>: If the vendor documentation specifies any restrictions on concurrent operators, the tester shall attempt to violate the restrictions by attempting to concurrently assume restricted roles as independent operators and verify that the module enforces the restrictions by preventing the second operator from assuming the role.</LI> <P> </UL> <HR SIZE=4 WIDTH=35%> <H3> Services</H3> <A NAME="as0307"></A><B>AS03.07: Documentation shall provide a complete specification of each of the authorized services, operations, and functions that can be performed by the module. For each service, the service inputs, corresponding service outputs, and the authorized role or set of roles in which the service can be performed shall be specified. (1, 2, 3, and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#3delinserv">3.2</A> , <A HREF="1401ig-2.htm#3showstat">3.3</A> )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030701"></A><B>VE03.07.01</B>: The vendor documentation shall fully describe each service including its purpose and function. The possible services may include, but not be limited to, the following:</LI> <P> <OL> <LI> Cryptographic operations, such as:</LI> <P> <UL> <LI> Encryption</LI> <LI> Decryption</LI> <LI> Message integrity</LI> <LI> Digital signature generation</LI> <LI> Digital signature verification</LI> <LI> Other operations that require the use of cryptography</LI> </UL> <LI> Key management operations, such as:</LI> <P> <UL> <LI> Key and parameter entry</LI> <LI> Key generation</LI> <LI> Key output</LI> <LI> Key archiving</LI> <LI> Key zeroization</LI> <LI> Other key management functions</LI> </UL> <LI> Cryptographic management functions, such as:</LI> <P> <UL> <LI> Audit parameter entry and setting</LI> <LI> Alarm handling and resetting</LI> <LI> Other cryptographic management functions</LI> </UL> <LI> Performance of operator-selectable self tests, such as:</LI> <P> <UL> <LI> Cryptographic algorithm tests</LI> <LI> Software/firmware tests</LI> <LI> Critical functions tests</LI> <LI> Statistical random number generator tests</LI> <LI> Any additional tests that can be initiated by an operator</LI> </UL> <LI> "Show Status" that would indicate the following:</LI> <P> <UL> <LI> Active role(s)</LI> <LI> Cryptographic state of module (zeroized, tampered, loaded, initialized, etc.)</LI> <LI> If module is in error state, error code.</LI> <LI> If bypass capability exists, whether the bypass capability is enabled or disabled.</LI> </UL> <LI> Performance of maintenance tests</LI> <P> <LI> Cryptographic bypass</LI> <P> </OL> <LI> <A NAME="ve030702"></A><B>VE03.07.02</B>: The vendor documentation shall specify, for each service, the service inputs, corresponding service outputs, and the authorized role or roles in which the service can be performed. Service inputs shall consist of all data or control inputs to the module that initiate or obtain specific services, operations, or functions. Service outputs shall consist of all data and status outputs that result from services, operations or functions initiated or obtained by service inputs. The vendor may supply a matrix that displays the services that can be performed in each role.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030701"></A><B>TE03.07.01</B>: The tester shall check the vendor documentation and verify that the purpose and function of each service is described. The tester shall also check that the following information is specified for each service: service inputs, corresponding service outputs, and the authorized role or roles in which the service can be performed.</LI> <P> <LI> <A NAME="te030702"></A><B>TE03.07.02</B>: The tester shall check the vendor documentation and verify that, for the indicated roles, the listed services, at a minimum, may be allowed:</LI> <P> <OL> <LI> User role, such as:</LI> <P> <UL> <LI> Cryptographic operations (may be allowed to access a subset of those listed in VE03.07.01)</LI> <LI> Key management functions</LI> <LI> "Show Status"</LI> <LI> Performance of operator selectable self-tests</LI> <LI> Cryptographic bypass</LI> </UL> <LI> Crypto-officer role, such as:</LI> <P> <UL> <LI> Key management functions</LI> <LI> Cryptographic management functions</LI> <LI> "Show Status"</LI> <LI> Performance of operator selectable tests</LI> <LI> Cryptographic bypass</LI> </UL> <LI> Maintenance role, such as:</LI> <P> <UL> <LI> Subset of key management functions (for entry of maintenance keys)</LI> <LI> Cryptographic operations (may be allowed to access a subset of those listed in VE03.07.01)</LI> <LI> "Show Status"</LI> <LI> Performance of operator-selectable self-tests</LI> <LI> Performance of maintenance tests</LI> <LI> Cryptographic bypass</LI> </UL> </OL> <LI> <A NAME="te030703"></A><B>TE03.07.03</B>: The tester shall verify the accuracy of the vendor-supplied documentation. The tester shall perform the following tests for each role:</LI> <P> <OL> <LI> Perform each of the specified services for the role to verify that they have been implemented for that role.</LI> <LI> Enter each of the specified service inputs and observe that they result in the specified service outputs.</LI> <LI> Attempt to perform services that are not specified for the role to verify that they have not been implemented for that role.</LI> </OL> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0308"></A><B>AS03.08: A cryptographic module shall, at a minimum, provide the following services: (1, 2, 3, and 4)</B> <P><B> </B> <UL> <LI> <B>Show Status: Output the current status of the module</B></LI> <LI> <B>Self-test: Initiate and run the self-tests as specified in section 4.11.</B></LI> <P><B> </B></UL> <I>(Relevant Guidance: <A HREF="1401ig-2.htm#3showstat">3.3</A> , )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030801"></A><B>VE03.08.01</B>: The vendor documentation shall describe the output of the current status of the module and the initiation and running of user callable self-tests, along with other services as specified by VE03.07.01.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030801"></A><B>TE03.08.01</B>: The tester shall check the vendor documentation to verify that the "Show Status" status service and the user callable self-test initiation service are each allocated to at least one authorized role. The tester shall verify that these services are described as specified in AS.03.07.</LI> <P> <LI> <A NAME="te030802"></A><B>TE03.08.02</B>: Verification that the "Show Status" can be initiated for designated roles was performed under TE03.07.03. In addition, the tester shall verify that what the "Show Status" reports matches the vendor documentation.</LI> <P> <LI> <A NAME="te030803"></A><B>TE03.08.03</B>: Verification that the module provides for the initiation and running of self-tests as specified in section 4.11 was performed under TE03.07.03. If the module does not provide this service for at least one authorized role, this assertion fails.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0309"></A><B>AS03.09: A cryptographic module may optionally provide the following service: (1, 2, 3, and 4)</B> <P><B> </B> <UL> <LI> <B>Bypass: Activate or deactivate a bypass capability whereby services are provided without cryptographic processing (e.g., transferring plaintext through the module).</B></LI> <P><B> </B></UL> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve030901"></A><B>VE03.09.01</B>: If the module implements a bypass capability, the vendor documentation shall describe the bypass service as specified in AS03.09.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te030901"></A><B>TE03.09.01</B>: The tester shall determine whether the bypass capability is implemented by the module. If so, the tester shall check the vendor documentation to verify that the bypass capability is allocated to at least one authorized role. The tester shall verify that this service is described as specified in AS.03.09.</LI> <P> <LI> <A NAME="te030902"></A><B>TE03.09.02</B>: Verification that the bypass capability can be performed for designated roles was tested in TE03.07.03. If the bypass capability cannot be initiated by at least one role, this assertion fails.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0310"></A><B>AS03.10: If a cryptographic module implements a bypass capability, then: (1, 2, 3, and 4)</B> <P><B> </B> <UL> <LI> <B>In order to prevent the inadvertent bypass of data due to a single failure, two independent internal actions shall be implemented to activate the bypass capability.</B></LI> <P><B> </B> <LI> <B>The current status of the module (e.g., the response to a "Show Status" service request) shall indicate whether or not the bypass capability is activated.</B></LI> <P><B> </B></UL> <B>Note: Internal actions may be software actions or operator physical actions performed as a consequence of the request for a transition to a bypass state. The changing of an internal variable to a known value or the sensing of a keyboard toggle switch are examples of internal actions.</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031001"></A><B>VE03.10.01</B>: The finite state machine diagram and description documentation shall indicate, for all transitions into a bypass state, the two independent internal actions that are required to transition into that bypass state. In the vendor documentation for the "Show Status" service, the ability to output whether the bypass capability is enabled or disabled must be included.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031001"></A><B>TE03.10.01</B>: The tester shall review the finite state diagram and description to determine whether each transition into a bypass state shows two independent internal actions that must occur in order for the cryptographic module to transition into the bypass state.</LI> <P> <LI> <A NAME="te031002"></A><B>TE03.10.02</B>: The tester shall attempt to transition to each bypass state from each state that shows such a transition, and determine that it takes two internal actions to accomplish each such transition.</LI> <P> <LI> <A NAME="te031003"></A><B>TE03.10.03</B>: Tester verification of the vendor documentation for the "Show Status" service was performed under TE03.08.01 and TE03.08.02. If the bypass capability exists, then the results of the verification should indicate that a "Show Status" service request shows that the bypass capability is enabled or disabled; otherwise, this assertion fails.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0311"></A><B>AS03.11: Each service input shall result in a service output. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031101"></A><B>VE03.11.01</B>: The vendor documentation shall indicate service outputs for each service input.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031101"></A><B>TE03.11.01</B>: The validation of the specification of a service output for each service input is covered by TE03.07.01. The testing of the status inputs and outputs is covered by TE03.07.03. The results of the verification should indicate that each service input has a corresponding service output as documented by the vendor; otherwise, this assertion fails.</LI> <P> </UL> <HR SIZE=4 WIDTH=35%> <H3> OPERATOR AUTHENTICATION</H3> <H4> <U>General</U></H4> <A NAME="as0312"></A><B>AS03.12: For services that are used to initialize the access control information needed to implement the access control mechanisms, means such as procedural controls, or authentication and authorization information, factory-set or default, may be used to control access to the module. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031201"></A><B>VE03.12.01</B>: If means are provided to control access to the module before it has been initialized, the vendor shall document them in detail.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031201"></A><B>TE03.12.01</B>: The tester shall check the vendor documentation to determine what means, if any, are provided for access control prior to initialization of the module. If the module supports these means, the documentation should specifically describe the procedure by which the crypto-officer is authenticated upon accessing the module for the first time. No other role shall be allowed to access the module until the module has been initialized.</LI> <P> <LI> <A NAME="te031202"></A><B>TE03.12.02</B>: If access to the module before initialization is controlled, the tester shall make an error (e.g., enter an incorrect password) while assuming the crypto-officer role on an uninitialized module and shall verify that the module denies access to the role. The tester shall then successfully assume the crypto-officer role and verify that the required authentication complies with the documented procedures. The tester shall attempt to assume other roles before the module has been initialized and verify that the module denies access to the roles.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0313"></A><B>AS03.13: When a module is powered up after being powered off (e.g. power failure) or after repair or servicing, the results of previous authentications shall not be retained, i.e., the module shall re-authenticate the authorization of the operator to assume a desired role. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031301"></A><B>VE03.13.01</B>: The vendor documentation shall describe how the results of previous authentications are cleared when the module is powered down.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031301"></A><B>TE03.13.01</B>: The tester shall review the vendor documentation and verify that the clearing of previous authentications upon power down of the module is described clearly and correctly.</LI> <P> <LI> <A NAME="te031302"></A><B>TE03.13.02</B>: The tester shall authenticate himself/herself to the module by assuming one or more roles, power down the module, power up the module, and attempt to perform services in those roles. The module should deny access to the services and require that the tester be re-authenticated.</LI> <P> </UL> <HR SIZE=4 WIDTH=25%> <H4> <U>Role-Based Authentication</U></H4> <A NAME="as0314"></A><B>AS03.14: For role-based authentication, a cryptographic module shall authenticate that the operator is authorized to assume a specific role or set of roles. The module shall perform the following actions: (2)</B> <P><B> </B> <UL TYPE=CIRCLE> <LI> <B>Require that the operator explicitly or implicitly select one or more roles</B></LI> <LI> <B>Authenticate that the operator is authorized to assume the selected roles and corresponding services</B></LI> <P><B> </B></UL> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031401"></A><B>VE03.14.01</B>: The vendor shall document the mechanisms used to perform the implicit or explicit selection of a role or set of roles and the authentication of the authorization of the operator to assume the role(s). Note that role-based authentication is based only on the presentation of information that allows access to a role or set of roles. This information must be different for each role, but it is the same for everyone that wants to access the same role; two operators that want to assume the same role will present the same information to the module.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031401"></A><B>TE03.14.01</B>: The tester shall review the sections of the vendor documentation that describe how role-based authentication is performed. The tester shall check that the documentation specifies and describes the mechanisms used for the selection of a role or roles and the authentication of the authorization of the operator to assume a role. The documentation may specify and describe the usage of one or more of the following mechanisms:</LI> <P> <OL> <LI> Password</LI> <LI> Personal Identification Number (PIN)</LI> <LI> Cryptographic key or equivalent</LI> <LI> Possession of a physical key, token, or equivalent</LI> <LI> Biometrics (e.g., fingerprint, retina scan, keystroke dynamics)</LI> </OL> <LI> <A NAME="te031402"></A><B>TE03.14.02</B>: The tester shall assume the role and shall make some error (e.g., entry of an incorrect password) during the authentication procedure. The tester shall observe that the module denies access to the role.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0315"></A><B>AS03.15: For role-based authentication, a module may permit an operator to change roles, but the module shall authenticate the authorization of the operator to assume any role that was not previously authenticated. (2)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031501"></A><B>VE03.15.01</B>: The vendor shall document whether the module allows an operator to change roles. If so, the vendor documentation shall describe the ability of an operator to change roles and shall explicitly state that authentication of the operator for a new role is required.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031501"></A><B>TE03.15.01</B>: The tester shall check the vendor documentation to verify that the method by which an operator can change roles includes the authentication of the operator for a role not previously authenticated.</LI> <P> <LI> <A NAME="te031502"></A><B>TE03.15.02</B>: The tester shall perform the following tests:</LI> <P> <OL> <LI> Assume a role, attempt to change to another role that the operator is authorized to assume, and verify that the module requires authentication for the new role.</LI> <LI> Assume a role, attempt to change to another role that the operator is not authorized to assume, and verify that the module denies access.</LI> </OL> </UL> <HR SIZE=4 WIDTH=25%> <H4> <U>Identity-Based Authentication</U></H4> <A NAME="as0316"></A><B>AS03.16: For identity-based authentication, a cryptographic module shall authenticate the identity of an operator and verify that the identified operator is authorized to assume a specific role or set of roles. The module shall perform the following actions: (3 and 4)</B> <P><B> </B> <UL TYPE=CIRCLE> <LI> <B>Require that the operator be individually identified</B></LI> <LI> <B>Authenticate the specified identity of the operator</B></LI> <LI> <B>Require that the operator either implicitly or explicitly select one or more roles</B></LI> <LI> <B>Based on the authenticated identity, verify that the operator is authorized to perform the selected roles and corresponding services</B></LI> </UL> <I>(Relevant Guidance: <A HREF="1401ig-2.htm#3authmech">3.4</A> , )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031601"></A><B>VE03.16.01</B>: The vendor shall document the mechanisms used to perform the identification of the operator, the authentication of the operator's identity, the implicit or explicit selection of a role or set of roles, and the verification of the authorization of the operator to assume the role(s). Note that identity-based authentication takes into account the identity of the operator assuming a role. This applies not only between roles but within the same role; two operators that want to assume the same role will present different information to the module because their identities are different. If, for example, operators must enter a PIN when attempting to assume a role, each operator should have a different PIN because the PIN identifies the operator to the module.</LI> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031601"></A><B>TE03.16.01</B>: The tester shall review the sections of the vendor documentation that describe how identity-based authentication is performed. The tester shall check that the documentation specifies how the operator is uniquely identified, how that identity is authenticated, how the operator chooses a role, and how the authorization of the operator to assume a role is performed based on the authenticated identity. The documentation may specify and describe the usage of one or more of the following mechanisms:</LI> <P> <OL> <LI> Password</LI> <LI> Personal Identification Number (PIN)</LI> <LI> Cryptographic key or equivalent</LI> <LI> Possession of a physical key, token, or equivalent</LI> <LI> Biometrics (e.g., fingerprint, retina scan, keystroke dynamics)</LI> </OL> <LI> <A NAME="te031602"></A><B>TE03.16.02</B>: The tester shall make some error (e.g., entry of an incorrect password) during the authentication procedure and shall observe that the module does not allow the tester to proceed beyond the authentication procedure.</LI> <P> <LI> <A NAME="te031603"></A><B>TE03.16.03</B>: The tester shall successfully authenticate his/her identity to the module. When required to select one or more roles, the tester shall select roles not compatible with the authenticated identity and shall observe that authorization to assume the roles is denied.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0317"></A><B>AS03.17: For identity-based authentication, a module may permit an operator to change roles without re-authenticating the identity of the operator, but the module shall verify the authorization of the authenticated operator to perform the new role. (3 and 4)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031701"></A><B>VE03.17.01</B>: The vendor shall document whether the module allows an operator to change roles without re-authenticating his/her identity. If it does, the vendor documentation shall describe the ability of an operator to change roles and shall explicitly state that verification of the authentication of the operator for a new role is required.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031701"></A><B>TE03.17.01</B>: The tester shall check the vendor documentation to verify that the method by which an operator can change roles without re-authentication of the operator's identity includes the verification of the authorization of the operator for a role not previously authenticated.</LI> <P> <LI> <A NAME="te031702"></A><B>TE03.17.02</B>: The tester shall perform the following tests:</LI> <P> <OL> <LI> Assume a role, attempt to change to another role that the tester is authorized to assume, verify that the tester's identity does not have to be re-authenticated, and verify that the tester can access the services associated with the new role. The tester shall perform services in the new role that were not associated with the previous role in order to verify that the tester has assumed a different role.</LI> <LI> Assume a role, attempt to change to another role that the operator is not authorized to assume, and verify that the module denies access to the role based on the identity of the operator.</LI> </OL> </UL> <HR SIZE=4 WIDTH=35%> <H3> <U>Security Level 1</U></H3> <A NAME="as0318"></A><B>AS03.18: For Security Level 1, a cryptographic module is not required to employ anthentication mechanisms to control access to the module. A module optionally may employ either role-based or identity-based authentication mechanisms in order to verify the authorization of the operator to assume the desired roles and to request corresponding services. (1)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031801"></A><B>VE03.18.01</B>: The vendor shall explicitly document what type of authentication will be performed for the module. If the module does not require either role-based or identity-based authentication, the vendor documentation shall explicitly state this requirement. The vendor documentation shall describe the authentication mechanisms used as specified in VE03.14.01 and VE03.16.01.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031801"></A><B>TE03.18.01</B>: The tester shall review the vendor documentation to determine the following:</LI> <P> <OL> <LI> Type of authentication specified for the module (role-based, identity-based, or none)</LI> <LI> Specification and description of the authentication mechanisms</LI> </OL> <LI> <A NAME="te031802"></A><B>TE03.18.02</B>: For each role, the tester shall perform the documentation, verification, and test procedures specified in TE03.14.01-02 and TE03.15.01-02 for role-based authentication and TE03.16.01-03 and TE03.17.01-02 for identity-based authentication.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <H3> <U>Security Level 2</U></H3> <A NAME="as0319"></A><B>AS03.19: For Security Level 2, a cryptographic module shall at a minimum employ role-based authentication mechanisms in order to verify the authorization of the operator to assume the desired roles and to request corresponding services. A module optionally may employ identity-based mechanisms. (2)</B> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve031901"></A><B>VE03.19.01</B>: The vendor shall explicitly document whether either role-based or identity-based authentication is performed for the module. The vendor documentation shall describe the authentication mechanisms used as specified in VE03.14.01 and VE03.16.01.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te031901"></A><B>TE03.19.01</B>: The tester shall review the documentation to determine the following:</LI> <P> <OL> <LI> Type of authentication specified for the module (role-based or identity-based)</LI> <LI> Specification and description of the authentication mechanisms</LI> </OL> <LI> <A NAME="te031902"></A><B>TE03.19.02</B>: For each role, the tester shall perform the documentation verification and test procedures specified in TE03.14.01-02 and TE03.15.01-02 for role-based authentication and TE03.16.01-03 and TE03.17.01-02 for identity-based authentication.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <H3> <U>Security Levels 3 and 4</U></H3> <A NAME="as0320"></A><B>AS03.20: A cryptographic module shall employ identity-based (i.e., based on operator identification) authentication mechanisms in order to verify the authorization of the operator to assume the desired roles and to request corresponding services. Furthermore, plaintext authentication data (e.g., passwords and PINs), plaintext cryptographic key components, and other unprotected critical security parameters shall be entered via a port or ports that are physically separated from other ports, and that allow for direct entry (as required in section 2). Related assertions are AS02.13 and AS02.14. (3 and 4)</B> <P><I>(Relevant Guidance: <A HREF="1401ig-2.htm#3idreqs">3.5</A> , )</I> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve032001"></A><B>VE03.20.01</B>: The vendor documentation shall explicitly state that identity-based authentication is performed for the module. The vendor documentation shall also describe the authentication mechanisms used as specified in VE03.16.01.</LI> <P> <LI> <A NAME="ve032002"></A><B>VE03.20.02</B>: Requirements for vendor documentation addressing the entry of plaintext authentication data via dedicated, directly connected ports are covered under VE02.13.01 and VE02.14.01.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te032001"></A><B>TE03.20.01</B>: For each role, the tester shall perform the documentation verification and test procedures specified in TE03.16.01-03 and TE03.17.01-02 for identity-based authentication.</LI> <P> <LI> <A NAME="te032002"></A><B>TE03.20.02</B>: Tester verification of the entry of plaintext authentication data, plaintext cryptographic key components, and other unprotected critical security parameters via dedicated, directly connected ports was performed under TE02.13.01 and TE02.14.01. The results of the verification should indicate that physically separated ports are used for the entry of these items into the module; otherwise, this assertion fails.</LI> <P> </UL> <HR SIZE=4 WIDTH=75%> <H2> <A NAME="sec4"></A>4. FINITE STATE MACHINE MODEL</H2> <A NAME="as0401"></A><B>AS04.01: All cryptographic modules shall be designed using a finite state machine model that explicitly specifies every operational and error state of the module. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#4format">4.1</A> )</I> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040101"></A><B>TE04.01.01</B>: This assertion is tested by testing the following assertions.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0402"></A><B>AS04.02: Documentation shall identify and describe all states of the module and shall describe all of the corresponding state transitions. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#4format">4.1</A> )</I> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve040201"></A><B>VE04.02.01</B>: The vendor shall provide a description of the finite state machine model. This description shall contain the identification and description of all states of the module, and a description of all corresponding state transitions. The descriptions of the state transitions shall include internal module conditions, data inputs and control inputs that cause transitions from one state to another and internal module conditions, data outputs and status outputs resulting from transitions from one state to another.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040201"></A><B>TE04.02.01</B>: The tester shall verify that the vendor has provided a description of the finite state machine model. This description shall contain the identification and description of all states of the module, and a description of all corresponding state transitions.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0403"></A><B>AS04.03: The descriptions of the state transitions shall include the internal module conditions, data inputs and control inputs that cause transitions from one state to another, and shall include the internal module conditions, data outputs and status outputs resulting from transitions from one state to another. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#4format">4.1</A> )</I> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040301"></A><B>TE04.03.01</B>: The tester shall verify that the descriptions of the state transitions include the internal module conditions, data inputs and control inputs that cause transitions from one state to another, and the internal module conditions, data outputs and status outputs resulting from transitions from one state to another.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0404"></A><B>AS04.04: Documentation shall also include finite state diagrams in sufficient detail to assure the verification of conformance to FIPS PUB 140-1. (1, 2, 3, and 4)</B> <P><I>(Relevant Implementation Guidance: <A HREF="1401ig-2.htm#4format">4.1</A> )</I> <P><B> </B> <H4> <I>Required Vendor Information</I></H4> <UL> <LI> <A NAME="ve040401"></A><B>VE04.04.01</B>: The vendor shall provide finite state machine diagram(s) in sufficient detail to assure the verification of conformance to FIPS PUB 140-1.</LI> <P> </UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040401"></A><B>TE04.04.01</B>: The tester shall verify that the vendor has provided finite state machine diagram(s) in sufficient detail to assure the verification of conformance to FIPS PUB 140-1.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0405"></A><B>AS04.05: A cryptographic module shall be designed using the following types of states: (1, 2, 3, and 4)</B> <P><B> </B> <UL TYPE=CIRCLE> <LI> <B><U>Power on/off states</U>. States for primary, secondary, or backup power. These states may distinguish between power applied to different portions of the module.</B></LI> <LI> <B><U>Crypto officer states</U>. States in which the crypto officer functions are performed (e.g., cryptographic initialization and key management functions).</B></LI> <LI> <B><U>Key entry states</U>. States for entering cryptographic keys and other critical security parameters into the module, and for checking their validity.</B></LI> <LI> <B><U>User service states</U>. States in which authorized users obtain security services, perform cryptographic operations, or perform other authorized user functions.</B></LI> <LI> <B><U>Self test states</U>. States for performing self-tests on the module (see section 11, "Self Tests").</B></LI> <LI> <B><U>Error states</U>. States when the module has encountered an error (e.g., failed a self-test, attempting to encrypt while missing operational keys or other critical security parameters, or cryptographic errors). Error states may include "hard" errors which indicate an equipment malfunction and which may require maintenance, service or repair of the module, or error states may include recoverable "soft" errors which may require initialization or resetting of the module.</B></LI> <P><B> </B></UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040501"></A><B>TE04.05.01</B>: The tester shall verify that the finite state diagrams and the descriptions are consistent with the vendor documentation that describes the following:</LI> <P> <OL> <LI> Data input interface</LI> <LI> Data output interface</LI> <LI> Control input interface</LI> <LI> Status output interface</LI> <LI> Crypto officer role</LI> <LI> User role</LI> <LI> Other roles (if applicable)</LI> <LI> Key entry services</LI> <LI> Show status service</LI> <LI> Self-tests</LI> <LI> Other authorized services, operations, and functions (if applicable)</LI> <LI> Error states</LI> </OL> <LI> <A NAME="te040502"></A><B>TE04.05.02</B>: The tester shall verify that the operation of the module is consistent with the finite state diagrams and descriptions.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0406"></A><B>AS04.06: A cryptographic module may contain other types of states including the following: (1, 2, 3, and 4)</B> <P><B> </B> <UL TYPE=CIRCLE> <LI> <B><U>Un-initialized states</U>. States in which no operational security parameters are loaded into the module.</B></LI> <LI> <B><U>Idle states</U>. States in which the module is potentially operational, but is not currently providing security services or performing cryptographic functions. Cryptographic keys and security parameters are loaded, and the module is waiting for data or control inputs.</B></LI> <LI> <B><U>Safety states</U>. States in which the module is not currently operational, but cryptographic keys and parameters are loaded. These states are used to protect the module from unauthorized use during the temporary absence of the operator.</B></LI> <LI> <B><U>Bypass states</U>. States for providing services without cryptographic operations (e.g., transferring plaintext through the module).</B></LI> <LI> <B><U>Maintenance states</U>. States for maintaining and servicing a module, including maintenance testing.</B></LI> <P><B> </B></UL> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040601"></A><B>TE04.06.01</B>: The tester shall verify that the finite state diagrams and the descriptions are consistent with the vendor documentation that describes the following:</LI> <P> <OL> <LI> Bypass service (if applicable)</LI> <LI> Maintenance interface (if applicable)</LI> <LI> Maintenance role (if a maintenance interface is provided)</LI> <LI> Key generation services (if applicable)</LI> <LI> Key output services (if applicable)</LI> </OL> <LI> <A NAME="te040602"></A><B>TE04.06.02</B>: The tester shall verify that the operation of the module while in an un-initialized, idle, safety, bypass, or maintenance state is consistent with the finite state diagrams and descriptions.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0407"></A><B>AS04.07: All data output via the data output interface shall be inhibited during all error states. (1, 2, 3, and 4)</B> <P><B> Note: This assertion is similar to assertion AS02.04 under section 2, "Module Interfaces."</B> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040701"></A><B>TE04.07.01</B>: This assertion is tested under TE02.04.02.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0408"></A><B>AS04.08: All error states shall be able to be reset to an acceptable operational or initialization state except for those hard errors which require maintenance, service or repair of the module. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040801"></A><B>TE04.08.01</B>: From each error state that does not require maintenance or repair, the tester shall verify that the cryptographic module can be caused to transition to an acceptable operational or initialization state. This effort consists of two parts: first, the tester shall verify that the cryptographic module indicates when it is in such a state, and second, that the cryptographic module operates correctly in this target state. The tester shall report how the requirement was verified (i.e., by code examination or by exercising the module).</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0409"></A><B>AS04.09: If safety states are included in the module, then the safety states shall require an explicit authenticated action to return to a user/crypto service state. These states are equivalent to the "standby" mode of former Federal Standard 1027. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te040901"></A><B>TE04.09.01</B>: The tester shall attempt to issue all user and crypto-officer commands from each safety state to demonstrate that no operator commands can be issued until the module leaves the safety state.</LI> <P> <LI> <A NAME="te040902"></A><B>TE04.09.02</B>: For each defined safety state, the tester shall perform an explicit authentication action to exit the safety state. For each safety state, this explicit authentication action must be described in the vendor's operational documentation.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0410"></A><B>AS04.10: If a cryptographic module includes a maintenance access interface (see Section 2, "Module Interfaces"), then the module shall include maintenance states. (1, 2, 3, and 4)</B> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te041001"></A><B>TE04.10.01</B>: If the module includes a maintenance interface, then the tester shall make sure that the finite state machine model has at least one maintenance state defined. All such maintenance states must be contained in the finite state diagram(s) and described in the description of the finite state machine model.</LI> <P> </UL> <HR SIZE=4 WIDTH=15%> <P><A NAME="as0411"></A><B>AS04.11: All states of a cryptographic module shall be explicitly defined in sufficient detail to assure the verification of the conformance of the module to FIPS PUB 140-1. (1, 2, 3, and 4)</B> <P><B> Note: Refer back to the corresponding portions of requirement 1, "Cryptographic Module," and requirement 2, "Module Interface," for completeness.</B> <P><B> </B> <H4> <I>Required Test Procedures</I></H4> <UL> <LI> <A NAME="te041101"></A><B>TE04.11.01</B>: The tester shall review the descriptions of the states of the cryptographic module to determine if the descriptions clearly define disjoint states.</LI> <P> <LI> <A NAME="te041102"></A><B>TE04.11.02</B>: The tester shall exercise the cryptographic module, causing it to enter each of its major states. For each state that has a distinct indicator, the tester shall attempt to observe the indicator while the module is in the state. If the expected indicator is not observed, or two or more such indicators are observed at the same time (indicating that the module is in more than one state at one time), this test fails.</LI> <P> <LI> <A NAME="te041103"></A><B>TE04.11.03</B>: The tester shall verify that every state that is identified in the finite state diagram(s) is also identified and described in the description.</LI> <P> <LI> <A NAME="te041104"></A><B>TE04.11.04</B>: The tester shall verify that every state that is identified and described in description is also identified in the finite state diagram(s).</LI> <P> <LI> <A NAME="te041105"></A><B>TE04.11.05</B>: The tester shall verify that there exists a chain of transitions from an initial power on state to each other state in the model that is not an initial power on state.</LI> <P> <LI> <A NAME="te041106"></A><B>TE04.11.06</B>: The tester shall verify that there exists a chain of transitions from each nonpower off state to a power off state of the model.</LI> <P> <LI> Note: TE04.11.05 and TE04.11.06 imply that there may be more than one possible initial state and more than one possible final state.</LI> <P> <LI> <A NAME="te041107"></A><B>TE04.11.07</B>: The tester shall verify that the action of the finite state machine, as the result of all possible data and control inputs, is defined. An example of an acceptable inclusive statement is:</LI> <BR><I>"The action of the finite state machine as a result of all other combinations of data and control inputs is to place the finite state machine into the ERROR-3 state."</I> <P> <LI> <A NAME="te041108"></A><B>TE04.11.08</B>: The tester shall verify that all possible combinations of data and control nputs can be partitioned into disjoint sets, depending on the transition that would be taken in response to the input. This requirement guarantees that the finite state machine is deterministic; that is, for each possible pair of data and control inputs, the finite state machine must take one and only one transition.</LI> <P> </UL> <HR SIZE=4 WIDTH=75%> <P><A HREF="140test2.htm">Continue</A> to sections 5-7 of the DTR (part 2 of 3)... <P> </BODY> </HTML>