FIPS 140-2 Non-Proprietary Security Policy Google Inc .

Transcription

FIPS 140-2 Non-Proprietary Security PolicyGoogle Inc.Titan Security Key, Chip BoundaryHardware version: H1B2Firmware version: 1.1Date: December 13th, 2018Prepared By:

IntroductionFederal Information Processing Standards Publication 140-2 — Security Requirements for CryptographicModules specifies requirements for cryptographic modules to be deployed in a Sensitive but Unclassifiedenvironment. The National Institute of Standards and Technology (NIST) and Communications SecurityEstablishment Canada (CSE) Cryptographic Module Validation Program (CMVP) run the FIPS 140 program.The NVLAP accredits independent testing labs to perform FIPS 140 testing; the CMVP validates modulesmeeting FIPS 140 validation. Validated is the term given to a module that is documented and testedagainst the FIPS 140 criteria.More information is available on the CMVP website About this DocumentThis non-proprietary Cryptographic Module Security Policy for Titan Security Key, Chip Boundary fromGoogle Inc. provides an overview of the product and a high-level description of how it meets the overallLevel 1 security requirements of FIPS 140-2.Titan Security Key, Chip Boundary may also be referred to as the “module” in this document.DisclaimerThe contents of this document are subject to revision without notice due to continued progress inmethodology, design, and manufacturing. Google Inc. shall have no liability for any errors or damages ofany kind resulting from the use of this document.NoticesThis document may be freely reproduced and distributed in its entirety without modification.Google Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 2 of 15

Table of ContentsIntroduction . 2Disclaimer . 2Notices . 21. Introduction . 51.1Scope. 51.2Overview . 52. Security Level . 53. Cryptographic Module Specification . 63.1Cryptographic Boundary . 64. Cryptographic Module Ports and Interfaces . 85. Roles, Services and Authentication . 95.1Roles. 95.1.1Crypto-Officer Role. 95.1.2User Role . 95.2Services . 95.3Authentication . 106. Physical Security . 107. Operational Environment . 108. Cryptographic Algorithms and Key Management . 118.1Cryptographic Algorithms . 118.1.1Allowed Algorithms . 118.1.2Non-Approved Algorithms. 118.2Cryptographic Key Management . 128.3Key Generation and Entropy . 138.4Zeroization . 139. Self-tests . 139.1Power-On Self-Tests . 149.2Conditional Self-Tests. 1410. Guidance and Secure Operation . 1411. Glossary . 15Google Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 3 of 15

List of TablesTable 1 – Security Level . 5Table 2 - Physical Port and Logical Interface Mapping . 8Table 3 - Approved Services and Role allocation . 9Table 4 - Non-Approved Services and Role allocation . 10Table 5 - Approved Algorithms . 11Table 6 - Allowed Algorithms . 11Table 7 - Non-Approved Algorithms . 11Table 8 – Approved Keys and CSPs Table . 12Table 9 - Approved Service to Key/CSP Mapping . 13Table 10 - Power-up Self-tests . 14Table 11 - Conditional Self-tests . 14Table 12 - Glossary of Terms . 15List of FiguresFigure 1 - Titan Security Key, Chip Boundary (Front). 6Figure 2 -Titan Security Key, Chip Boundary (Back). 6Figure 3 - Titan Security Key, Chip Boundary Block Diagram . 7Figure 4- Tamper Evidence and damage to the module . 10Google Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 4 of 15

1.Introduction1.1ScopeThis document describes the cryptographic module security policy for the Google Inc. Titan Security Key,Chip Boundary cryptographic module with firmware 1.1 (also referred to as the “module” hereafter). Itcontains specification of the security rules, under which the cryptographic module operates, including thesecurity rules derived from the requirements of the FIPS 140-2 standard.1.2OverviewThe cryptographic module is a USB 1.1/2.0 compliant Universal 2nd Factor (U2F) token, instantiated as asingle chip module, used for two-factor authentication. U2F standardizes how request and responsemessages are to be sent over the USB transport to the U2F key. The U2F protocol is based on a requestresponse mechanism, where a requester sends a request message to a U2F device, which always resultsin a response message being sent back from the U2F device to the requester.After registration, a user can use their Titan Security Key, Chip Boundary with an origin-specific key pairacross all Google online services. The Titan Security Key, Chip Boundary only performs two operations.U2F Register associates a key pair with an origin, google.com here, while U2F Authenticate, verifies thatsignature with the Titan Security Key, Chip Boundary to prove physical possession of the hardware secondfactor. Then, and only then, is the User able to authenticate to Google services.The chip runs a version of the Chrome Embedded Controller, Cr52, which manages all low-level resources,cryptographic algorithms, access control and the life cycle of all keys.2.Security LevelThe following table lists the level of validation for each area in FIPS 140-2:FIPS 140-2 Section TitleCryptographic Module SpecificationCryptographic Module Ports and InterfacesRoles, Services, and AuthenticationFinite State ModelPhysical SecurityOperational EnvironmentCryptographic Key ManagementElectromagnetic Interference / Electromagnetic CompatibilitySelf-TestsDesign AssuranceMitigation of Other AttacksOverall LevelValidation Level11113N/A1111N/A1Table 1 – Security LevelGoogle Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 5 of 15

3.Cryptographic Module Specification3.1Cryptographic BoundaryThe cryptographic boundary is the outer perimeter of the chip shown in the below figure. The device is asingle-chip module as defined by FIPS 140-2. The hardware version of the module is H1B2.Figure 1 - Titan Security Key, Chip Boundary (Front)Figure 2 -Titan Security Key, Chip Boundary (Back)Google Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 6 of 15

The logical boundary is depicted in the block diagram below:Figure 3 - Titan Security Key, Chip Boundary Block DiagramFigure – Haven gNubbyGoogle Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 7 of 15

4.Cryptographic Module Ports and InterfacesAll communication between the module and a host device is conducted in accordance with the U2Fprotocol. The U2F protocol is based on a request-response mechanism, where a requester sends a requestmessage to a U2F device, which always results in a response message being sent back from the U2F deviceto the requester. All request-response messages are framed in ISO7816-4:2005 APDU format. Thisspecifies how to transport the raw message and any error codes if the command failed.The physical logical interfaces of the module map to the physical pins on the module:Physical Port# of PinsFIPS 140-2 Logical InterfaceMappingDescriptionVDD5PowerSupply VoltageRST1Not usedReset SignalCLK2Not usedNot UsedGND11PowerGroundSPI Slave (SPS)4Not UsedSPI slave pinSPI Master (SPI)4Not UsedSPI master pinUSB4Data in, Data out, Control in,Status outConnected to GroundBOOTSTRAP (GPIO)1Not usedSet to Bootstrap module duringinitializationGPIO29Not usedNot usedNC13Not usedNot usedTable 2 - Physical Port and Logical Interface MappingNo two interfaces share the same physical port, each interface for data input, data output, control input,and status output has its own physically separate port.Google Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 8 of 15

5.Roles, Services and Authentication5.1RolesThe module does not provide any identification or authentication for any user that is accessing the device.Since the device does not provide any identification or authentication services, the level of access grantedto any functionality of the module is implicitly determined by the service calling the module; the deviceitself makes no determination about the role itself.The module supports two independent roles: The Crypto-Officer and the User.5.1.1 Crypto-Officer RoleThe only service allocated to the Crypto-Officer’s role is the device firmware update. By design, the roleof the Crypto-Officer is limited. They do not, for instance, have any special access to the device by defaultand a device firmware update overwrites the previous device image.5.1.2 User RoleThe User Role is the main operating role of the module. The module is designed as a complete hardwaresecond factor based on an origin-specific public key linked to a specific web domain (referred to as anorigin).The applications using a module as a second authentication factor are expected to utilize a capacitivetouch “proof-of-presence” from the user in order to acknowledge the activation of the U2F Authenticationfunctionality (which utilizes all the specified cryptographic algorithms). An individual module (and henceit’s User Role) is tied to the user account for a specific origin during a U2F Register event.The User Role is active so long as the token remains connected and powered.While it is possible to register a single fob with multiple origins, it is not possible for an origin to becomeconfused about which request to send the fob. Since the origin stores the public, non-secret key handleassociated with the account login information, it always sends the correct key handle index to the correctfob. When this key handle is sent to the fob, the User Role handles the request and activates the proofof-presence request for direct user confirmation.5.2ServicesThe module provides the following Approved services which utilize algorithms listed in Table 6 and 7:ServiceInitializationAttestationFIDO U2F: U2F RegisterFIDO U2F: U2F AuthenticateFIDO U2F: U2F VersionSigning: Unlock and Set PINSigning: Unlock and SignShow StatusFirmware UpdateOn-Demand able 3 - Approved Services and Role allocationGoogle Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 9 of 15

The module provides the following non-Approved services which utilize algorithms listed in Table 8:ServiceUserPIN Encryption/DecryptionXCrypto OfficerTable 4 - Non-Approved Services and Role allocation5.3AuthenticationThere is no operator authentication; assumption of role is implicit by the used service(s).6.Physical SecurityThe module is a single-chip cryptographic module which meets the requirements for opacity and tamperevidence. The module is encased in removal-resistant IC packaging material which cannot be removed orpenetrated without causing serious damage to the module (i.e. the module will not function). The physicalsecurity mechanism is a hard, opaque packaging.The module hardness testing was performed at a single ambient temperature of 72 F. No assurance isprovided for Level 3 hardness conformance at any other temperatures.Figure 4- Tamper Evidence and damage to the module7.Operational EnvironmentThe module does not provide a general-purpose operating system.Google Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 10 of 15

8.Cryptographic Algorithms and Key Management8.1Cryptographic AlgorithmsThe module implements the following approved algorithms in the firmware:CAVP Cert #AlgorithmSizesStandardMode/MethodUse4630AES128-, 192-,256-bitsSP 800-38AFIPS 197CBC, ECBEncryption, Decryption,Decryption4630CMAC128 bit keylengthSP 800-38BCMACAuthenticationVendorAffirmedCKGN/ASP 800-133N/ASymmetric keys and seed forasymmetric key pair generation11391290 (CVL)ECDSAP-256FIPS 186-4Digital Signature Services30653794HMACSHS256-bits256-bitsFIPS 198-1FIPS 180-4Signature GenerationComponent, Key PairGeneration, SignatureGeneration, SignatureVerification, Public 6SP 80090Arev1HMAC DRBGGeneration, AuthenticationDigital Signature Generation,Digital Signature Verification,non-Digital SignatureApplicationsRandom Bit GenerationTable 5 - Approved Algorithms8.1.1 Allowed AlgorithmsThe module implements the following allowed cryptographic algorithms:AlgorithmUseNDRNGEC Diffie-HellmanUsed only to seed the Approved DRBGkey agreement, key establishment methodology provides 128 bits ofencryption strengthTable 6 - Allowed Algorithms8.1.2 Non-Approved AlgorithmsThe following non-approved usages are only associated with the legacy PIN encryption/decryption servicein Table 4.AlgorithmUseKBKDF (non-conformant)AES 128-bits (ECB mode) (non-conformant)Key-Based Key Derivation FunctionEncryption and DecryptionTable 7 - Non-Approved AlgorithmsGoogle Inc. 2018Version 1.2Public Material – May be reproduced only in its original entirety (without revision).Page 11 of 15

8.2Cryptographic Key ManagementKeys are generated in the module and loaded during initialization and cannot be changed withoutzeroizing any keys already loaded into the token. These keys are stored in the module in plain text butcannot be read or exported outside of the token once they have been entered by the Crypto Officer. Onlya single set of keys can be loaded in the token for each configuration slot at one time.The following list of approved keys and CSPs is used by the module. They are generated or inserted asspecified and stored within the module as necessary.Keys andCSPsDescriptionAlgorithmand Key SizePer originasymmetric keypairUsed to encryptthe origin’s keyhandleP-256 ECDSA keypairDeviceattestationkey pairPer-bootCMAC keyAttests to theauthenticity ofthe devicePin-check keyP-256 ECDSA keypairHost-fobsession keypairEC DH keyexchangebetween hostand fobP-256 EC DH keypairIndex keypair(s)Used to signarbitrarymessagesV and KeyvaluesP-256 ECDSA keypairOrigin-specifickey pairOrigin-indexobfuscationkeyDRBG State128-bit AES key128-bit, CMACkey128-bitGenerationInput / OutputMethodZeroiationStorageInternallygenerated byDRBGInternallygenerated byDRBGNever exits themoduleVolatilememorySessionterminationNever exits themoduleVolatilememoryPower cycleInternallygenerated byDRBGInternallygenerated byDRBGInternallygenerated byDRBGPublic key exits inplaintextVolatilememoryPower cycleNever exits themoduleVolatilememoryPower cyclePublic key exits inplaintextVolatilememoryPower cycleInternallygenerated byDRBGLoaded at thefactory;Internallygeneratedusing NDRNGPublic key exits inplaintextVolatilememoryPower cycleNever exits themoduleVolatilememoryUninstantiation,Power cycleTable 8 – Approved Keys and CSPs TableThe module implements the following access control policy on keys and CSPs in the module shown in thefollowing table. The Access Policy is noted by R Read, W Write and X Execute.

This non-proprietary Cryptographic Module Security Policy for Titan Security Key, Chip Boundary from Google Inc. provides an overview of the product and a high-level description of how it meets the overall Level 1 security requirements of FIPS 140-2. Titan Security Key, Chip Boundary