Oracle Sun Crypto Accelerator 6000 Bootstrap Version 1.0.1 or 1.0.10, Firmware Version 1.1.7, 1.1.8, and 1.1.9 FIPS 140-2 Non-Proprietary Security Policy Level 3 Validation Document version 2.0 January 2013 Table of Contents 1 INTRODUCTION............................................................................................................3 1.1 PURPOSE...................................................................................................................3 1.2 REFERENCES............................................................................................................. 3 1.3 DOCUMENT ORGANIZATION.......................................................................................... 3 2 SUN CRYPTO ACCELERATOR 6000 .........................................................................4 2.1 OVERVIEW................................................................................................................. 4 2.2 MODULE INTERFACES .................................................................................................4 2.3 ROLES AND SERVICES.................................................................................................5 2.3.1 Crypto Officer Role.............................................................................................5 2.3.2 User Role.........................................................................................................11 2.3.3 Driver Role.......................................................................................................13 2.3.4 Admin Secure Channel & Authentication.........................................................15 2.3.5 Unauthenticated Services1..............................................................................16 2.4 PHYSICAL SECURITY................................................................................................. 17 2.5 CRYPTOGRAPHIC KEY MANAGEMENT...........................................................................18 2.5.1 Random Number Generator.............................................................................22 2.5.2 Key Zeroization................................................................................................23 2.6 EMI/EMC...............................................................................................................23 2.7 SELF-TESTS.............................................................................................................23 2.8 DESIGN ASSURANCE................................................................................................. 24 3 SECURE OPERATION................................................................................................25 3.1 CRYPTO OFFICER GUIDANCE..................................................................................... 25 3.1.1 Initialization.......................................................................................................25 3.1.2 Termination......................................................................................................26 3.2 USER GUIDANCE...................................................................................................... 26 4 ACRONYMS................................................................................................................27 5 BOARD PHOTOS.......................................................................................................28 © Copyright 2012 ORACLE Page 2 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. 1Introduction 1.1Purpose This is a non-proprietary Cryptographic Module Security Policy for the Sun Crypto Accelerator 6000 from Oracle. This security policy describes how the Sun Crypto Accelerator 6000 meets the security requirements of FIPS 140-2 and how to run the module in a secure FIPS 140-2 mode. This policy was prepared as part of the Level 3 FIPS 140-2 validation of the module. FIPS 140-2 (Federal Information Processing Standards Publication 140-2 — Security Requirements for Cryptographic Modules) details the U.S. Government requirements for cryptographic modules. More information about the FIPS 140-2 standard and validation program is available on the NIST website at http://csrc.nist.gov/groups/STM/cmvp/index.html . 1.2References This document deals only with operations and capabilities of the module in the technical terms of a FIPS 140-2 cryptographic module security policy. More information is available on the module from the following sources: Oracle website (http://www.oracle.com/) contains information on the •The full line of products from Oracle. NIST Validated Modules website •The (http://csrc.nist.gov/groups/STM/cmvp/index.html) contains contact information for answers to technical or sales-related questions for the module. 1.3Document Organization The Security Policy document is one document in a FIPS 140-2 Submission Package. In addition to this document, the Submission Package contains: §Oracle Vendor Evidence document §Finite State Machine §Other supporting documentation as additional references With the exception of this Non-Proprietary Security Policy, the FIPS 140-2 Validation Documentation is proprietary to Oracle and is releasable only under appropriate non-disclosure agreements. For access to these documents, please contact Oracle. © Copyright 2012 ORACLE Page 3 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. 2SUN CRYPTO ACCELERATOR 6000 2.1Overview The Sun Crypto Accelerator 6000 (SCA 6000) is an X8 PCI-Express card in low profile and short form factor and is designed to provide the highest level of security to customers. The Sun Crypto Accelerator 6000 is the next generation of the already FIPS 140-2 Level 3 validated product line by Oracle. The hardware version number of the module is: 375-3424, Revisions –02, –03, – 04, –05, and –06. The bootstrap version is 1.0.1 or 1.0.10, and the firmware version is 1.1.7, 1.1.8, or 1.1.9. Hardware Revisions –02 and –03 are shipped pre-loaded with bootstrap 1.0.1 1, while Revisions –04, –05, and –06 are shipped pre-loaded with bootstrap 1.0.10. In order to achieve such a high level of security, the Sun Crypto Accelerator 6000 product design, development, test and production has satisfied the requirements to ensure a secure product. Security has been the focus of the development team from the outset, and the Sun Crypto Accelerator 6000 product has been designed from the ground up to incorporate security in all design and development steps. The design team also took advantage of the experience gained from previous generations of the security product. The card enhances server system performance by offloading computer intensive cryptographic calculations (asymmetric and symmetric) from the server's CPU, accelerating both TLS processing. The SCA 6000 also provides a secure remote administration capability. It also provides local administration via a serial port directly connected to the card. There is also a USB port on the product to backup and restore keys directly to the product. 2.2Module Interfaces The cryptographic boundary of the Sun Crypto Accelerator 6000 is defined by the perimeter of the PCI-Express card itself. The local interfaces to the card through on-board serial and USB ports, LED indicators, jumper pins and physical presence push-button are excluded from the security requirements of FIPS 140- 2. The module is accessible only through well-defined interfaces, and these interfaces include a PCI-Express slot, RJ-11 Serial port, USB port, LEDs, and a jumper. It also has a physical presence push-button switch that is currently not used by the operational firmware. Since this push-button may be used in future versions of the firmware, it is tested during hardware diagnostics to verify that it functions correctly. All of these physical interfaces are separated into logical interfaces defined by FIPS 140-2, as described in the following table: Operators may upgrade the bootstrap firmware to version 1.0.10 if desired. 1 © Copyright 2012 ORACLE Page 4 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Module Physical Interface FIPS 140-2 Logical Interface PCI-E, USB Port, Serial Port Data Input/Output Interface PCI-E, Serial Port, Jumper Control Input Interface PCI-E, LEDs, Serial Port Status Output Interface PCI-E, USB Port, Serial Port Power Interface Table 1 – FIPS 140-2 Logical Interfaces 2.3Roles and Services The module supports identity based authentication. There are three main roles in the module (as required by FIPS 140-2) that operators may assume: a Crypto Officer role (or Security Officer role as defined in SCA 6000 documents), User role, and a Driver. There is also an additional set of unauthenticated services which are not security relevant to the Sun Crypto Accelerator 6000 card. All services listed below for each role are both FIPS and non-FIPS services. Services marked with a * indicate services that are available in non-FIPS mode only. 2.3.1Crypto Officer Role The CO (Crypto Officer) accesses the module using a command line interface (CLI) over the PCI-E port using the administration tool, scamgr, on the host machine, or using a serial hand-held device directly connected to card. The Crypto Officer role includes Device Crypto Officer and Keystore Crypto Officer roles. The Crypto Officer identifies him/herself with a login name and authenticates with a password and is able to configure the module. When scamgr is executing in interactive mode, a sub-shell style interface is supplied that allows the Crypto Officer to interact with the interface. Commands may be entered one at a time, and the output from the commands is sent to standard output device. There are 4 registers that execute the CO administration at the PCI-E interface level. There are 2 command buffers that perform data input from the card to the host machine and 2 command buffers that receive a response from the host machine. All administrative commands from the application level are sent encrypted with AES session keys using these 4 registers. To issue a command, the host driver uses these registers to define a command block on the host and generates an interrupt to the SCA 6000 firmware via the command bit of the SCA 6000 IRQ register. When the firmware has finished processing the command, it will notify the host via command complete bit of the Host IRQ register. The CO can also perform direct administration of the card using the serial port interface. The serial port interface supports a subset of the commands provided by the remote PCI-E interface and also provides several additional commands to support Financial Services (FS) activities. When performing keystore backup and restore the encrypted backup data file is stored on a USB mass storage device connected to the USB port rather than sent to the host for archiving to © Copyright 2012 ORACLE Page 5 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. disk. Information is also output in an abbreviated form to the serial port to support the use of a stateless handheld input device. This serial interface has a similar look and feel to that of scamgr, but is designed to work with hand-held serial devices or laptop serial connections. This interface provides most of the functionality that scamgr does, with the exception of the following tasks: - reset SCA 6000 hardware - zeroize SCA 6000 hardware - firmware upgrades - deletion of decimalization tables Administrative functions that are limited to the serial interface only are: - Entry of key components and User, CO passwords - Entry of decimalization tables - Control of financial services operating mode - Deletion of financial services keys Backup and restore of the key material will be done via the USB port. Descriptions of the services available to the Device Crypto Officer (DCO) and Keystore Crypto Officer (KCO) roles are provided in the table below. Service Description Input Output Backup Backup master key and Command, Status of command and encrypted (KCO) keystore (on local host or password and path keystore file over secure admin channel LDAP server)1 Status of command and encrypted keystore file using UWK. Command, Backup master key (on password and path USB3 port)1 (multiple KCO names and passwords required in multi- admin mode) Connect Begin admin session w/ Command Login Prompt (DCO & firmware KCO) Convert Convert keystore Command Status of command over secure admin (KCO) (local host to/from LDAP channel © Copyright 2012 ORACLE Page 6 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output server) Copy (KCO) Copy keystore Command and Status of command over secure admin keystore name channel Create Creates DCO accounts Command and Status of command over secure admin (DCO) user name channel Create Creates users and KCO Command and Status of command over secure admin (KCO) accounts user name channel Delete Command and Status of command over serial port Delete DCO accounts (DCO) user name Status of command over serial port Command and Delete Master Key label Status of command over serial port Command and Delete UWK 3 label Delete Delete users and CO Command and Status of command over serial port (KCO) user name accounts Status of command over serial port Command and label Status of command over serial port Delete Master Key Status of command over serial port Command and Delete Keystore label Status of command over serial port Delete FS MFK3 Status of command over serial port Command and label Delete FS KEKs and decimalization tables3 Command and Delete UWK 3 label Command and label Diagnostics Runs diagnostics for the Command Status of command over secure admin (DCO) card channel Disable Disable keystore creation Command Status of command over secure admin (DCO) channel Command Disable multiadmin mode Status of command over secure admin channel Command and Disable DCO as a DCO name Status of command over secure admin Multiadmin CO1 channel Disable Disable a user Command and Status of command over secure admin (KCO) user name channel Disable keystore Command Status of command over secure admin channel © Copyright 2012 ORACLE Page 7 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output Disable multiadmin mode Command Status of command over secure admin channel Disable KCO as a Command and Status of command over secure admin Multiadmin CO1 KCO name channel Enable Enable keystore creation Command Status of command over secure admin (DCO) channel Enable multiadmin mode Command Status of command over secure admin channel Enable DCO as a Command and Status of command over secure admin Multiadmin CO1 DCO name channel Enable Enable a user Command and Status of command over secure admin (KCO) user name channel Enable Keystore Command and Status of command over secure admin user name channel Enable multiadmin mode Command, M Status of command over secure admin value and timeout channel value Enable a MFK Status of command over Serial port Command Status of command over serial port Enable KCO as a Multiadmin CO1 Command and CO name Load Load new firmware2 Command and Status of command over secure admin (DCO)* path channel Load UWK component3 Status of command over serial port Command and UWK component Load Load FS MFK Command and Status of command over serial port (KCO)* component3 MFK component Status of command over serial port Command, Load a decimalization decimalization table3 table and label Status of command over serial port Command, KEK Status of command over serial port label, KEK Load KEK component*3 component Command and Load UWK component3 UWK component Lock (DCO) Lock Master Key Command Status of command over secure admin channel Lock (KCO) Lock Master Key Command Status of command over secure admin channel Lock Keystore Command Status of command over secure admin channel Logout Logout current session Command Exit command line © Copyright 2012 ORACLE Page 8 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output Exit Exit current session Command Status of command over secure admin channel Rekey Generate remote access Command Status of command over secure admin (DCO) key channel Rekey Generate new master key Command Status of command over secure admin (KCO) channel Reset Reset the hardware2 Command Hardware is reset (DCO) Rename Rename a keystore Command and Status of command over secure admin (KCO) new keystore channel name Set (DCO) Change password for Command and Options to change password or set DCO, set password select option password strength strength Command and M Status of command over secure admin Set minimum number of value channel DCO logins required (M) to authorize a multiadmin command1 Status of command over secure admin Command and channel Set multiadmin timeout1 timeout value Status of command over serial port Command and Set Financial Services mode value operating mode3 Set (KCO) Set audit level Command and Status of command over secure admin audit level channel Command and Options to change password or set Change password for select option password strength KCO, set password strength Status of command over secure admin Command and M channel Set minimum number of value KCO logins required (M) to authorize a multiadmin Status of command over secure admin command1 channel Command and Set multiadmin timeout1 timeout value Status of command over serial port Command and Set Financial Services mode value operating mode3 Show Show Domains Command List of host domains over secure admin (DCO) channel Show Keystores Command List of keystores over secure admin channel Command List of DCOs over secure admin channel Show DCOs System status over secure admin Command Show Status channel © Copyright 2012 ORACLE Page 9 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output Show Show Domains Command List of host domains over secure admin (KCO) channel Show Keystores Command List of keystores over secure admin channel Show KCOs Command List of KCOs over secure admin channel List of users over secure admin channel Show Users Command System status over secure admin channel Show Status Command Unlock Unlock keystore Command Status of command over secure admin (KCO) channel Zeroize Delete all keys and reset Command INIT led is off (DCO) board2 Restore Restore device Command, backup Status of command over secure admin (DCO) configuration data (on file and password channel local host or LDAP server)1 Command, backup Status of command file, UWK components, and Restore device password (multiple configuration data (on DCO names and USB3 port)1 passwords required in multi- admin mode) Restore Restore master key and Command, backup Status of command over secure admin (KCO) keystore (on local host or file, and password channel LDAP server)1 Command, backup Status of command Restore master key (on file, UWK USB3)1 components and password (multiple KCO names and passwords required in multi- admin mode) Approve/Re Approve/reject Command Status of command over secure admin ject (DCO & multiadmin command channel KCO) Cancel Cancel multiadmin Command Status of command over secure admin (DCO & command channel KCO) Command Status of command over serial port Cancel FS MFK, UWK and KEK entry3 Table 2 – Crypto Officer Services, Descriptions, Inputs and Outputs 1 These services require multi-admin authentication and authorization in multi-admin mode 2 These services are only available via the local host. © Copyright 2012 ORACLE Page 10 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. 3 These services are only available when using the direct (serial) interface. *When in FIPS-mode, these keys must not be DES/2DES keys. 2.3.2User Role The User role can perform cryptographic operations such as owning and accessing keying material within the key store. Users can also perform bulk encryption, asymmetric cryptographic functions, and object management services for cryptographic acceleration. Service descriptions and inputs/outputs are listed in the following tables: © Copyright 2012 ORACLE Page 11 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output TRIPLE-DES Raw TRIPLE-DES Plaintext data Ciphertext data Encryption encryption TRIPLE-DES Raw TRIPLE-DES Ciphertext data Plaintext data Decryption decryption AES Raw AES encryption Plaintext data Ciphertext data Encryption AES Raw AES decryption Ciphertext data Plaintext data Decryption HMAC-SHA- HMAC-SHA-1 Ciphertext data Hashed data 1 processing HMAC-SHA- HMAC-SHA-512 Ciphertext data Hashed data 512 processing MD5 HMAC* MD5 HMAC processing Ciphertext data Hashed data MD5* MD5 hashing Plaintext/ciphertext Perform MD5 hashing data SHA-1 SHA-1 hashing Plaintext/ciphertext Perform SHA-1 hashing data SHA-512 SHA-512 hashing Plaintext/ciphertext Perform SHA-512 hashing data Diagnostics Perform diagnostics on Command Blinking of LED the SCA 6000 card Display Display public key Command Displaying the public key and the public information key fingerprint used by the Cryptographic Accelerator 6000 board for securing administration sessions. Status Displays status of Command Output is a colon-separated list of the keystore information following pieces of information: device, internal function, keystore name, keystore serial number, and keystore reference count. You can use this command to determine the association between devices and keystores. Table 3a – User Services-Bulk Encryption, Descriptions, Inputs and Outputs Service Description Input Output DSA Sign DSA signing operation Plaintext/ciphertext data Digital Signature Verify DSA DSA verification operation Signed data Verify response signature ECDSA Sign ECDSA signing operation Plaintext/ciphertext data Digital Signature Verify ECDSA ECDSA verification operation Signed data Verify response Signature Access RNG Direct access to the RNG Random data Calls FIPS PRNG to use random data RNG SHA-1 RNG output processed by Random data Calls FIPS PRNG to use SHA-1 random data RSA encrypt RSA_PKCS#1 encrypt Plaintext data Ciphertext data © Copyright 2012 ORACLE Page 12 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output RSA decrypt RSA_PKCS#1 decrypt Ciphertext data Plaintext data RSA Sign RSA_PKCS#1 sign Plaintext/ciphertext data Digital Signature Verify RSA RSA_PKCS#1 verify Signed data Verify response signature Table 3b – User Services-Asymmetric Encryption, Descriptions, Inputs and Outputs Service Description Input Output Login User login User’s login information Login successful/failed Setpass User change password Command New password Enumerate key Enumerate user’s keys Command List of keys Retrieve key Retrieve a key Command Obtain user key Delete key Delete a key Command Key is deleted Create key Create a key Command New key Change key Change key attribute Command Updated key attribute attribute Generate DES Generate DES key Command New DES key key* Generate DES2 Generate DES 2-key Command New DES 2 key key* Generate DES3 Generate DES 3-key Command New DES 3 key key Generate AES Generate AES key Command New AES key key Generate RSA Generate RSA keypair Command New RSA keypair keypair Generate DSA Generate DSA keypair Command New DSA keypair keypair Generate ECDSA Generate ECDSA keypair Command New ECDSA keypair keypair Generate DH key Generate DH key Command New DH key Wrap Key Wrap an asymmetric key using Command Wrapped key the given key. Wrapping using RC2 is not allowed in FIPS mode. Unwrap Key Unwrap a wrapped key using Command Unwrapped key the given key. Unwrapping (encrypted with KTK in using RC2 is not allowed in FIPS mode) FIPS mode. Copy Object Copy a key object Command Copy of key Table 3c – User Services-Object Management, Descriptions, Inputs and Outputs * Services not allowed in FIPS mode 2.3.3Driver Role The Driver role authenticates with a login and password in the driver to authenticate its identity to the SCA 6000. The driver can perform similar services as the user role such as bulk encryption and asymmetric cryptographic function, but cannot perform object management services. Service Description Input Output TRIPLE-DES Raw TRIPLE-DES encryption Plaintext data Ciphertext data Encryption © Copyright 2012 ORACLE Page 13 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output TRIPLE-DES Raw TRIPLE-DES decryption Ciphertext data Plaintext data Decryption AES Encryption Raw AES encryption Plaintext data Ciphertext data AES Decryption Raw AES decryption Ciphertext data Plaintext data HMAC-SHA-1 HMAC-SHA-1 processing Ciphertext data Hashed data HMAC-SHA-512 HMAC-SHA-512 processing Ciphertext data Hashed data MD5 HMAC* MD5 HMAC processing Input data Signed data MD5* MD5 hashing Plaintext/ciphertext data Hashed data SHA-1 SHA-1 hashing Plaintext/ciphertext data Hashed data SHA-512 SHA-512 hashing Plaintext/ciphertext data Hashed data Load KTK Authenticate to card and Load Data structure Authentication and KTK Key Transport Key (KTK) containing encrypted decryption result Function KTK, driver username and password Diagnostics Perform diagnostics on the Command Blinking of LED SCA 6000 card Display Display public key information Command Displaying the public key and the public key fingerprint used by the Cryptographic Accelerator 6000 board for securing administration sessions. Status Displays status of keystore Command Output is a colon- information separated list of the following pieces of information: device, internal function, keystore name, keystore serial number, and keystore reference count. You can use this command to determine the association between devices and keystores. Reset Reset the SCA 6000 card and Command This function resets the initiates all the POSTs. SCA 6000 firmware Zeroize Zeroizing all CSPs Command All CSPs and Keys on the card are zeroized. The Cryptographic Accelerator 6000 is returned to its factory state. Table 4a – Driver Services-Bulk Encryption, Descriptions, Inputs and Outputs * Services not allowed in FIPS mode © Copyright 2012 ORACLE Page 14 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output DSA Sign DSA signing operation Plaintext/ciphertext data Digital Signature Verify DSA DSA verification operation Signed data Verify response signature ECDSA Sign ECDSA signing operation Plaintext/ciphertext data Digital Signature Verify ECDSA ECDSA verification operation Signed data Verify response Signature Access RNG Direct access to the RNG Random data Calls FIPS PRNG to use random data RNG SHA-1 RNG output processed by Random data Calls FIPS PRNG to use SHA-1 random data RSA encrypt RSA_PKCS#1 encrypt Plaintext data CipherText data RSA decrypt RSA_PKCS#1 decrypt Ciphertext data Plaintext data RSA Sign RSA_PKCS#1 sign Plaintext/ciphertext data Digital Signature Verify RSA RSA_PKCS#1 verify Signed data Verify response signature DH Key Derive DH shared secret generation DH public key values Shared secret Table 4b – Driver Services-Asymmetric cryptographic function, Descriptions, Inputs and Outputs 2.3.4Admin Secure Channel & Authentication The Crypto Officer authentication takes place within a secure admin channel using RSA for key establishment as specified in the TLS protocol. The algorithm used is always AES-128 bit session keys and the MAC algorithm is always HMAC-SHA-1. The public key exchange protocol begins with the Sun Crypto Accelerator 6000 providing a public RSA key to the host machine (where the admin application is running from) along with the hardware Ethernet address. A pre master secret is generated by the host machine, encrypted using the SCA 6000 public RSA key, and than sent to the firmware. At this point, both the host machine and the SCA 6000 derive the master secret, and the 2 AES keys, 2 Message Authentication Code (MAC) keys, and 2 Initialization Vectors (IVs). The MAC keys are 20-byte keys that will be used with HMAC-SHA-1. The SCA 6000 will verify the value using TLS. The host machine will compute its own verify on the messages and compare them to the SCA 6000 before this exchange is completed. A CO is identified using a username. When a command requiring multi-admin authentication is issued in multi-admin mode the card goes into a polling mode and waits for COs belonging to multi-admin group to login to the card. A separate secure session is established for each CO. Assuming the CO login and password are correct, one of following three things happens: •If the authenticated CO does not belong to the multi-admin group, no services can be invoked by that CO. The CO is given a message indicating © Copyright 2012 ORACLE Page 15 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. that the board is in the middle of authorizing a Multi-Admin command and the CO cannot administer the board. •If the CO belongs to the multi-admin group (and is not the initiator of the multi-admin command), the CO has the option to either authorize or reject the multi-admin command. In case the CO has authorized the command already a message indicating that the CO has already approved this is given. •If the initiating CO authenticates to the card, the CO has the option to cancel the ongoing multi-admin command. A total of M COs of the multi-admin group must login and authorize the command. If M COs do not authorize the command within the timeout period the multi-admin command is terminated. At the end of the command, control is transferred back to the initiating CO. The module allows multiple CO logins only in multi-admin mode. The module uses passwords to authenticate an operator in the Crypto Officer, User and Driver role. The following table shows the strength of authentication used by the module: Authentication Type Strength Password The SCA 6000 accepts 93 different characters for a password and the probability that a random access will succeed with a 6 digit password is 1 in 646,990,183,449 with repetition of characters. A failed login is accompanied by a 1 second delay allowing for no more than 60 attempts within one minute. The chance that any of these attempts will succeed within a one-minute time period is 1 in 10,783,169,724. Table 5 – Estimated Strength of Authentication Mechanisms 2.3.5Unauthenticated Services1 The module has unauthenticated services that provide no security relevant functionality, and these services are available to all roles, regardless of FIPS or non-FIPS configuration. None of the services listed below provides information related to CSPs. The LEDs on the rear of the module provide status information. Service Description Input Output Diagnostics Perform diagnostics on the Command Blinking of LED SCA 6000 card Display Display public key Command Displaying the public key and the public information key fingerprint used by the Crypto Acceleratocr 6000 board for securing administration sessions. Status Displays status of keystore Command Output is a colon-separated list of the information following pieces of information: device, internal function, keystore name, © Copyright 2012 ORACLE Page 16 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Service Description Input Output keystore serial number, and keystore reference count. You can use this command to determine the association between devices and keystores. Reset Reset the SCA 6000 card Command This function resets the SCA 6000 firmware and initiates all the POSTs. Zeroize Zeroizing all CSPs Command All CSPs and Keys on the card are zeroized. The Crypto Accelerator 6000 is returned to its factory state. Load Load firmware Firmware Status of load image Load bootstrap Bootstrap Status of load image Debug Services debugInfo Displays the registered None List of debug routines callable from the debug routines callable host. from vcadebug2 mexInfo Display all exception None Exception headers stored in FLASH headers currently on the card mexShow Displays segments (data Exception Information relating to a specific blocks) associated with an number and exception and segment exception segment number mexProcInfo Lists additional processes None List of processes in the process list added to the exception dump mexSegInfo Displays individual segment Exception List of segments in the segment list data for a given exception number mcfCfg Displays the core firmware None Contents of the card configuration configuration register registers mcfCsrs Displays the core firmware None Contents of the card control/status control/status registers registers cfgDump Displays the firmware None Firmware configuration data configuration data ksDump Displays high level None Information about on-card keystore information about the module keystore partDisplayAll Displays memory partition None Memory partition data data (if debug messages enabled) Table 6 – Unauthenticated Services 1. These services are only available to the root user on the host Solaris system 2. Vcadebug is a host application provided by Sun to invoke the firmware debug interface commands 2.4Physical Security The SCA 6000 card is a multi-chip embedded cryptographic module. The SCA 6000 card is completely enclosed in a hard epoxy coating with only specific 2 © Copyright 2012 ORACLE Page 17 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. interfaces providing access to the module. Components excluded from the cryptographic boundary are not covered in epoxy (see section 2.2). For hardware revision 06, the only area left uncovered by epoxy is used for power management circuitry and does not relate to the cryptographic operation of the card; therefore this area is excluded from this validation. The uncovered area can be seen in the last two photos in section 5. 2.5Cryptographic Key Management The implementations of the FIPS-approved algorithms have following FIPS algorithm certifications: •SHA-1 (cert. #1995) as per NIST’s FIPS PUB 180-1 •SHA-512 (cert #1996) •TRIPLE-DES CBC (cert. #435) as per NIST’s FIPS PUB 46-3 •AES (firmware cert. #2312) as per NIST’s FIPS PUB 197 •AES (hardware cert. #397) as per NIST’s FIPS PUB 197 •DSA (cert. #319) as per NIST’s FIPS PUB 186-2 •ECDSA (cert #377) •HMAC-SHA-1 (cert. #1427) as per NIST’s FIPS PUB 198 •HMAC-SHA-512 (cert #1428) •RNG (cert. #1155) as per NIST FIPS PUB 186-2 Appendix 3.1 •RSA (firmware cert. #1196) as per PKCS#1 v1.5 •RSA (hardware cert. #1195) as per PKCS#1 v1.5 The module provides following algorithms allowed for use in FIPS mode for key establishment. [Note: any keys larger than 160-bits (for example, AES 192-bit symmetric keys) only have 160 bits of entropy according to FIPS definitions. The FIPS-approved RNG takes a 160-bit value as a seed from a non-approved hardware RNG, and even though it may be called multiple times, the overall strength of a key can be at most 160 bits]. © Copyright 2012 ORACLE Page 18 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. •RSA Key Wrapping, 1024-2048 bit modulus sizes. This key transport methodology provides 80-112-bits of security strength •Diffie-Hellman, 1024-2048 modulus sizes. This key transport methodology provides 80-112-bits of security strength. •AES Key Wrapping, Cert. #2312, 128-256 bit key sizes. This key establishment methodology provides 128-160 bits of security strength. • •MD5 used internally for TLS only. •HMAC-MD5 used internally for TLS only The Sun Crypto Accelerator 6000 provides RSA encrypt/decrypt functions for the User Role. RSA encryption/decryption must be used only for performing key transport such as in TLS protocols in a FIPS mode of operation. The follow algorithms are not supported when the SCA 6000 card is operating in FIPS mode: •DES •MD5 (except when used internally for TLS) •HMAC-MD5 (except when used internally for TLS) •RC2 (ECB, CBC modes) The module supports the following critical security parameters listed below: Key Key type Generation Storage Use Factory Remote RSA 1024-bit Initiate the secure tunnel for the FIPS approved Plaintext read-only Access Key Public/Private first connection to the SCA 6000 PRNG EEPROM (DCO role) Keys card Authenticate the administration Remote Access RSA 1024-bit FIPS approved Plaintext in application with the SCA 6000, Key (RAK) Public/Private PRNG SDRAM Allows driver to send the KTK to (Driver role) Keys the device encrypted Key Transport Generated Plaintext in Wraps CSPs crossing the FIPS Key (KTK) outside the SDRAM AES Key 128-bit boundary b/w the SCA 6000 (Driver role) crypto firmware and the Solaris host boundary Encrypted using Master Keys FIPS approved AES Key 128-bit protection key in Encrypt keystore data (DCO and KCO) PRNG flash memory © Copyright 2012 ORACLE Page 19 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Key Key type Generation Storage Use RSA Public/Private Keypairs, DSA Public/Private User Keys (User Keypairs, ECDSA FIPS approved Plaintext in Performing Crypto functions role) Public/Private PRNG SDRAM Keypairs, DES/TRIPLE- DES and AES Keys* Session Keys FIPS approved Plaintext in Encrypts/decrypts admin AES Keys 128-bit (DCO and KCO) PRNG SDRAM commands and responses Generated Driver Password outside the Plaintext in Password Authenticate driver to module (Driver role) crypto EEPROM boundary User Password Plaintext in Password User entered Authenticate user to the module (User role) SDRAM Crypto Officer Crypto Officer Plaintext in Authenticate Crypto Officer to the Password (DCO Password entered SDRAM module and KCO) DES/TRIPLE- Generated Used during IPSec negotiations Driver DES keys and/or outside the Plaintext in to encrypt/decrypt and Keys(Driver role) HMAC-SHA-1 crypto SDRAM authenticate data packets key* boundary AES shares key FIPS approved Plaintext in Used to encrypt the key shares AES Key 128-bit (KCO role) PRNG SDRAM calculated from the backup data Shamir's secret Share values sharing calculated from Used to re-create the backup Key shares scheme Plaintext in the backup configuration data once M COs (KCO role) based on SDRAM configuration have been authenticated interpolation data of polynomials Protection key FIPS AES Key 128- Plaintext in (DCO and approved Encrypted data item in Flash bit EEPROM KCO) PRNG Crypto Master File officer AES Key 192- Plaintext in Encrypt/Decrypt Financial Key (KCO entered in bit SDRAM services keys role) component form Encrypted with the MFK and Crypto Key user- 2DES or officer Used to encrypt/decrypt Encrypting maintained. TRIPLE-DES entered in financial service keys for Key (KCO These keys are key* component import/export for other HSMs role) not persistently form stored in SCA 6000 device. © Copyright 2012 ORACLE Page 20 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Key Key type Generation Storage Use USB Generated Encrypted using Encrypt master key or device Wrapping Key AES 128, 192 outside the protection key in configuration during backup (UWK) (KCO or 256-bit crypto flash memory using USB port role) boundary FIPS Internal TLS AES-128, Plaintext in Establish secure connection to approved keys HMAC-SHA-1 SDRAM the SCA6000 card PRNG *When in FIPS-mode, these keys must not be DES/2DES keys. Table 7 – Description of the Keys used on the SCA 6000 A default Factory Remote Access Key (FRAK) is shipped with the SCA 6000 card from the factory. This Factory Remote Access Key is an RSA public/private keypair that is used to establish secure administration channels when the device is not initialized. The Factory Remote Access Public Key is used to encrypt the Key Transport Key and host machine driver login/password information, and sent down to the module. Once the driver is authenticated, the driver can send encrypted commands with the KTK securely to the module. Once the card has been initialized, the module generates a new Remote Access Keypair. The RAK is used to negotiate two AES session keys for a single secure tunnel encryption session that are used for Crypto Officer and card communication. These AES session keys will be negotiated at the time a Crypto Officer selects a keystore, and will terminate when the Crypto Officer terminates the session with the module. Each subsequent session will renegotiate new AES session keys, using the Remote Access Key. These CO session keys are generated by a key agreement using TLS master secret derivation TLS session. 32 bytes of a pre-master secret enter the module encrypted by the public Remote Access Key. There are two different CO session keys generated to create sessions; one session key to receive data and one session key to send out data. These keys are used to encrypt/decrypt admin commands and encrypt/decrypt responses from the administration application tool. The Remote Access Key also allows the host machine driver to send the Key Transport Key to the device encrypted with an RSA public key. RAKs are generated using a FIPS approved PRNG. The RSA private key is wrapped using the Master key and stored on the host file system. When the SCA 6000 card is operating in FIPS mode, the Key Transport Key is used when transporting passwords or User session keys crossing the FIPS boundary between the SCA 6000 firmware and the Solaris host. This transport key is created when the module is powered up. The KTK is generated outside the FIPS boundary and are input into the card at startup using the public Remote Access Key; the KTK is never output from the module. © Copyright 2012 ORACLE Page 21 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Master Keys on the module are used to wrap all User and Keystore Crypto Officer account information and keying material associated with the SCA 6000 device. When the system and the card powers-up, the Solaris host reads the Master Key wrapped data from an encrypted file on the host file system or from Centralized keystore on the LDAP server. This data is sent down to the SCA 6000 card in the wrapped form. When the module receives this encrypted data, the card unwraps the data using the Master Key. The unwrapped data is then used to populate the user account information, and user owned data stores holding User Keys. Master Keys are generated using a FIPS approved PRNG and are only output when they are backed up as part of the device backup command. The Crypto Officer session key encrypts the Master Key to be stored on the host machine’s file system. User Keys are used to perform cryptographic operations and are created on demand by the User. However, prior storage of a user application keying material within the SCA 6000 keystore, a number of steps must have already taken place: •SCA 6000 device must be initialized •A keystore must be created •A user account must be created within the keystore The creation of a SCA 6000 keystore establishes a name space for the creation of users within the keystore. The creation of a user account establishes data for enforcing ownership and access rights to the keying material based on password based authentication. The User Keys are generated using a FIPS approved RNG and are stored outside of the module encrypted with the Master Key. The Master File Key (MFK) and Key Encrypting Key (KEK) both are generated by multiple crypto officers entering individual key components which are XOR'ed together to form the finished key. For both types of keys, component entry may only happen through the serial interface. The purpose of the MFK is to act as a master encrypting key for any financial services CSPs which reside outside the cryptographic boundary (like the KEK). The purpose of the KEK is for key import and export between different HSM products. The KEK is stored outside the cryptographic boundary and is always encrypted using the MFK. 2.5.1Random Number Generator The SCA 6000 card uses the FIPS-approved RNG specified in FIPS 186-2 DSA- RNG using SHA-1 for generation of cryptographic keys. A non-approved hardware RNG is used for providing seeding material. As the non-approved RNG only supplies 160 bits of entropy to the approved DRBG, all keys generated by the SCA 6000 card will have an intrinsic security strength of at most 160 bits. © Copyright 2012 ORACLE Page 22 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. 2.5.2Key Zeroization There are three ways to zeroize all the keying material on the SCA 6000 card. In all cases, all keys, passwords and other CSPs are removed from within the cryptographic boundary: 1) A jumper located on the board will zeroize all keying material, and all updated firmware, taking the device back to factory state, when it is next powered up. The jumper must be subsequently removed to use the device again. 2) An operator with access to the root login on the host machine can present the correct commands to initiate a zeroization of all the keys on the SCA 6000 card taking the device back to the initial Factory Remote Access Key. This application can be performed when an operator is unauthenticated to the module. 3) The Device Crypto Officer can zeroize all the keys and updated Remote Access Key via a remote channel (protected under a session key generated using the Remote Access Key) after the operator has properly authenticated. 2.6EMI/EMC The module conforms to FCC Part 15 Class B requirements for home use. 2.7Self-Tests The SCA 6000 card performs self-tests to monitor the proper functioning of the module. Self-tests are run in both FIPS and non-FIPS modes of operation. These self-tests are divided into two categories, those run during power-up and those run upon certain conditions. If the power-up or conditional tests fail, the SCA 6000 card will enter an error state in which the “Status” led is illuminated red. Operator intervention is required to recover from the error state. The module consists of the following Power-up Tests for firmware algorithms: •Firmware AES CBC Known Answer Test •ECDSA P-curve Sign/Verify Known Answer Test •ECDSA K-curve Sign/Verify Known Answer Test •PRNG Known Answer Test •Firmware HMAC-SHA-1 Known Answer Test •Firmware HMAC-SHA512 Known Answer Test © Copyright 2012 ORACLE Page 23 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. •Firmware RSA Known Answer Test •CRC-32 Firmware Integrity Check •SHA-512 Known Answer Test The module consists of the following Power-up Tests for hardware algorithms: •TRIPLE-DES CBC Known Answer Test •Hardware AES CBC Known Answer Test •DSA Sign/Verify Known Answer Test •PRNG Known Answer Test •Hardware HMAC-SHA-1 Known Answer Test •Hardware RSA Known Answer Test The module consists of the following Conditional Tests: •Continuous Random Number Test for Approved RNG •Continuous Random Number Test for non-Approved RNG •RSA Pair-wise Consistency Check •Firmware Load Test for Main Firmware •Firmware Load Test for Bootstrap Firmware •DSA Pairwise Consistency Test •ECDSA Pairwise Consistency Test •Manual Key Entry Test 2.8Design Assurance Hardware builds are controlled by a build release process. Each hardware build is named, e.g: P0, P0.1, P1.0, P1.1, P2.0, etc. The hardware version is contained in a PROM part on the device which is accessible by software. © Copyright 2012 ORACLE Page 24 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. User documentation is versioned like source. Each release of the documentation is stored in a separate repository named by release number. Manual pages, and other miscellaneous documentation delivered with the software packages are stored and controlled in the software gates. The source code and firmware version control is done using Source Code Control System 3SECURE OPERATION The Oracle SCA 6000 meets Level 3 requirements for FIPS 140-2. The sections below describe how to place and keep the module in FIPS-approved mode of operation. 3.1Crypto Officer Guidance The Device Crypto-Officer is responsible for initialization of the module, configuration and management of the module, and termination of the module. Detailed information for the Device Crypto-Officer can be found in the Oracle SCA 6000 Installation and User Guide. The module should be checked regularly for signs of tamper-evidence (scratches, holes in the epoxy, etc.). 3.1.1Initialization The Device Crypto-Officer receives the module from Oracle via a secure delivery mechanism. The Device Crypto-Officer can either pick the module up directly from a Oracle facility, or the module can be shipped to the Device Crypto-Officer. Before the initial configuration of the module, there is no access control provided by the module. The Device Crypto-Officer must maintain control of the module and restrict any access to the module. The Device Crypto-Officer must follow the Oracle instructions for setting up the module. The Device Crypto Officer first installs the card, installs the host software packages and uses the administration interface from the host machine to configure the card. The Device Crypto Officer must ensure that the firmware running on the card is either 1.1.7, 1.1.8, or 1.1.9. If the firmware is not one of these versions, the Device Crypto Officer must install one of them onto the module.The Factory Remote Access Key is used to authenticate to the card and initiate a secure login. Once the card has been initialized with a keystore, the “INIT” led is lit. Additional steps include setting the access control password for users and configuring the module’s network settings. The Device Crypto Officer must ensure that passwords are at least 6 characters long and consist of only the following: numbers 0-9, 52 upper and lower case alphabetic characters, and 31 special characters. The Device Crypto Officer must also select FIPS mode during the SCA 6000 card configuration. The FIPS led indicator will be lit when the module is operating in a FIPS mode of operation. © Copyright 2012 ORACLE Page 25 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. After this process is complete, the Keystore Crypto-Officer is able to begin managing the module through the host machine’s scamgr application and can generate new Users. Additionally, while in a FIPS mode, the module only supports FIPS-approved algorithms (DSA, ECDSA, SHA-1, SHA-512, HMAC-SHA-1, HMAC-SHA-512, RSA, Triple-DES and AES) and algorithms permitted for use in a FIPS mode of operation (RSA encryption/decryption for key transport, Diffie-Hellman for key agreement, MD and HMAC-MD5 for use in TLS internally). Please see tables 3a, 3b, 3c, 4a and 4b for a complete listing of cryptographic services available in FIPS mode. 3.1.2Termination When a module’s usage has been completed, the module should be zeroized by the Device Crypto-Officer in order to wipe all sensitive data. The module should then be stored in a secure location. 3.2User Guidance The User is able to use the module as defined above in the description of the User role. The User must be careful not to provide session keys and secret keys to other parties. The User must also not provide the User password to anyone. The User must not use RSA and Diffie-Hellman modulus sizes smaller than 1024-bits in FIPS mode. © Copyright 2012 ORACLE Page 26 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. 4 ACRONYMS Term Definition AES Advanced Encryption Standard ANSI American National Standards Institute CBC Cipher Block Chaining CLI Command Line Interface CMVP Cryptographic Module Validation Program CO Crypto Officer CRC Cyclic Redundancy Checksum CSE Communications Security Establishment CSP Critical Security Parameter DES Data Encryption Standard DH Diffie-Hellman DSA Digital Signature Algorithm EDC Error Detection Code EMC Electromagnetic Compatibility EMI Electromagnetic Interference FCC Federal Communication Commission FIPS Federal Information Processing Standard FS Financial Services HMAC Hashing for Message Authentication Code IPSec Internet Protocol Security IRQ Interrupt Request Line KAT Known Answer Test KEK Key Encryption Key KTK Key Transport Key LAN Local Area Network LED Light Emitting Diode MAC Message Authentication Code MFK Master File Key NIST National Institute of Standards and Technology PCI Peripheral Component Interconnect PKCS Public Key Cryptographic Standard POST Power On Self Test PROM Programmable Read Only Memory RAK Remote Access Key RAM Random Access Memory RNG Random Number Generator ROM Read Only Memory RSA Rivest Shamir and Adleman SA Security Association SADB Security Association Database SHA Secure Hash Algorithm SSL Secure Socket Layer TLS Transport Layer Security UWK USB Wrapping Key Table 8 – Terms and Definitions © Copyright 2012 ORACLE Page 27 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. 5 BOARD PHOTOS -05 Revision Back -05 Revision Front © Copyright 2012 ORACLE Page 28 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice. Revision -06 Back Revision -06 Front For hardware revision 06, the only area left uncovered by epoxy is used for power management circuitry and does not relate to the cryptographic operation of the card; therefore this area is excluded from this validation. © Copyright 2012 ORACLE Page 29 of 29 This document may be freely reproduced and distributed whole and intact including this Copyright Notice.