| Standard | FIPS 140-3 |
|---|---|
| Overall level | 3 |
| Module type | Hardware |
| Embodiment | Multi-Chip Stand Alone |
| Status | Active |
| Sunset date | 8/27/2026 |
| Caveat | Interim validation. When operated in FIPS mode; The module generates cryptographic keys whose strengths are modified by available entropy. |
| Vendor | DocuSign, Inc. |
| Algorithm | ACVP Cert |
|---|---|
| AES-CBC | A4400 |
| AES-CBC | A4404 |
| AES-GCM | A4404 |
| ECDSA KeyGen (FIPS186-5) | A4404 |
| ECDSA SigGen (FIPS186-5) | A4404 |
| ECDSA SigVer (FIPS186-5) | A4404 |
| HMAC DRBG | A4400 |
| HMAC-SHA2-256 | A4400 |
| HMAC-SHA2-256 | A4404 |
| HMAC-SHA2-384 | A4400 |
| HMAC-SHA2-384 | A4404 |
| HMAC-SHA2-512 | A4400 |
| HMAC-SHA2-512 | A4404 |
| KAS-ECC-SSC Sp800-56Ar3 | A4404 |
| PBKDF | A4404 |
| RSA KeyGen (FIPS186-5) | A4400 |
| RSA SigGen (FIPS186-5) | A4400 |
| RSA SigGen (FIPS186-5) | A4400 |
| RSA SigGen (FIPS186-5) | A4404 |
| RSA SigVer (FIPS186-5) | A4400 |
| SHA2-256 | A4400 |
| SHA2-256 | A4404 |
| SHA2-384 | A4400 |
| SHA2-384 | A4404 |
| SHA2-512 | A4400 |
| SHA2-512 | A4404 |
| TLS v1.2 KDF RFC7627 | A4404 |
flowchart LR
%% Deterministic review-risk graph for DocuSign QSCD Appliance
%% Review prompts and evidence gaps, NOT vulnerability findings.
subgraph CMVP["CMVP-disclosed clues"]
C2["[low] Firmware update / recovery<br/>/ rollback (referenced in<br/>text)<br/><i>UPDATE<br/>Upgrade</i>"]
C3["[low] Self-test / status surface<br/>(referenced in text)<br/><i>Status Output</i>"]
C5["[low] Protocol / secure-channel<br/>references (may be KDF<br/>names, not a live channel)<br/><i>TLS<br/>HTTPS<br/>library named: openssl</i>"]
C6["[low] Operating system / runtime<br/>referenced (boundary<br/>membership not asserted)<br/><i>operating system<br/>application</i>"]
end
subgraph Inference["Derived inference"]
I2["Possible only, trusted<br/>code is reachable through<br/>update and recovery paths."]
I3["Possible only, some<br/>services may process input<br/>before, or without,<br/>operator authentication."]
I5["Possible only, a protocol<br/>is referenced, but whether<br/>it is a live channel or<br/>only a KDF/algorithm name<br/>is unconfirmed."]
I6["Possible only, a<br/>runtime/OS is referenced,<br/>but its membership in the<br/>cryptographic boundary is<br/>not established."]
end
subgraph Risk["Reviewer question"]
R2["Are update images<br/>authenticated before<br/>parsing, and are<br/>downgrade/rollback paths<br/>constrained?"]
R3["Can unauthenticated<br/>services leak state,<br/>consume resources, or<br/>transition security state?"]
R5["If a live TLS/SSH/IKE<br/>channel exists, could<br/>library CVEs apply, or is<br/>this only a<br/>KDF/documentation name?"]
R6["If the OS/runtime is<br/>in-boundary, could its<br/>CVEs be hidden by<br/>firmware-only versioning?"]
end
subgraph Evidence["Evidence needed to close"]
E2["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>update image format ·<br/>signature-before-parse<br/>proof · anti-rollback /<br/>downgrade policy"]
E3["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>pre-auth reachability<br/>matrix · rate limits and<br/>output redaction ·<br/>abuse-case tests"]
E5["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>library identity and<br/>version ·<br/>certificate-validation<br/>behaviour · protocol-CVE<br/>disposition"]
E6["confirm the disclosure<br/>itself (keyword hit,<br/>context unverified) ·<br/>runtime identity and<br/>config · kernel/runtime<br/>hardening profile ·<br/>patch/backport manifest"]
end
C2 --> I2 --> R2 --> E2
C3 --> I3 --> R3 --> E3
C5 --> I5 --> R5 --> E5
C6 --> I6 --> R6 --> E6
classDef clue fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
classDef infer fill:#fff7e6,stroke:#b98500,color:#6b4e00;
classDef risk fill:#fbe9e9,stroke:#b02a2a,color:#7a1f1f;
classDef evidence fill:#e6f4ea,stroke:#1e7d34,color:#14532d;
class C2,C3,C5,C6 clue;
class I2,I3,I5,I6 infer;
class R2,R3,R5,R6 risk;
class E2,E3,E5,E6 evidence;flowchart LR
%% Deterministic clue tier for DocuSign QSCD Appliance
%% confidence: high = structured record field; medium = structured but soft; low (dashed) = bare keyword hit, context unverified
subgraph CMVP["CMVP-disclosed clues (deterministic)"]
C2["[low] Firmware update / recovery / rollback (referenced in text)<br/><i>UPDATE<br/>Upgrade</i><br/>src: text:keyword"]
C3["[low] Self-test / status surface (referenced in text)<br/><i>Status Output</i><br/>src: text:keyword"]
C5["[low] Protocol / secure-channel references (may be KDF names, not a live channel)<br/><i>TLS<br/>HTTPS<br/>library named: openssl</i><br/>src: text:keyword"]
C6["[low] Operating system / runtime referenced (boundary membership not asserted)<br/><i>operating system<br/>application</i><br/>src: text:keyword"]
end
classDef clueHigh fill:#eef3f9,stroke:#2f6fb0,stroke-width:2px,color:#1f3a5f;
classDef clueMedium fill:#eef3f9,stroke:#6f7f91,color:#1f3a5f;
classDef clueLow fill:#f7f7f7,stroke:#999,stroke-dasharray:4 4,color:#444;
class C2,C3,C5,C6 clueLow;DocuSign QSCD Appliance Hardware version 2.0.0.0 Firmware version 1.2.0.7 FIPS 140-3 Non-Proprietary Security Policy Level 3 Validation August 2024 Document Version 1.7
| # | Section | Page |
|---|
| Item | Page |
|---|---|
| Table 1 – FIPS 140-3 Section Security Level | 7 |
| Table 2 – Terminology | 9 |
| Table 3 – Cryptographic Module Tested Configuration | 10 |
| Table 4 – QSCD Error States | 17 |
| Table 5 – Approved Algorithms | 19 |
| Table 6 – Non-Approved Algorithms Not Allowed in the Approved Mode of Operation | 20 |
| Table 7 – Set System Parameters command | 21 |
| Table 8 – Get Status command | 22 |
| Table 9 – Get System Parameters command | 22 |
| Table 10 – Authenticate command | 24 |
| Table 11 – Software Upload command | 24 |
| Table 12 – Ports and Interfaces | 26 |
| Table 13 – Roles, Service, Input and Output | 29 |
| Table 14 – Roles and Authentication | 31 |
| Table 15 – Approved Services | 34 |
| Table 16 – Physical Security Inspection Guidelines | 38 |
| Table 17 – EFP / EFT | 38 |
| Table 18 – SSPs | 42 |
| Table 19 – Non-Deterministic Random Number Generation Specification | 43 |
| Item | Page |
|---|---|
| Figure 1 – The Module’s Front and Rear View | 10 |
| Figure 2 – DocuSign QSCD Appliance Hardware Block Diagram | 11 |
| Figure 3 – DocuSign QSCD Secure Operational Environment | 12 |
| Figure 4 – DocuSign QSCD Appliance API Model | 15 |
| Figure 5 – QSCD States | 16 |
| Figure 6 – DocuSign QSCD Appliance in FIPS mode (Installed State) | 21 |
| Figure 7 – The Module’s Front View | 25 |
| Figure 8 – The Module’s Rear View | 25 |
| Figure 9 – QSCD Appliance Tamper Seal Location | 38 |
| Figure 10 – Safety Sticker | 49 |
| ISO/IEC 24759 Section 6 [Number Below] | FIPS 140-3 Section Title | Security Level |
|---|---|---|
| 1 | General | 3 |
| 2 | Cryptographic module specification | 3 |
| 3 | Cryptographic module interfaces | 3 |
| 4 | Roles, services and authentication | 3 |
| 5 | Software/Firmware security | 3 |
| 6 | Operational Environment | N/A |
| 7 | Physical security | 3 |
| 8 | Non-invasive security | N/A |
| 9 | Sensitive security parameters management | 3 |
| 10 | Self-Tests | 3 |
| 11 | Life-cycle assurance | 3 |
| 12 | Mitigation of other attacks | N/A |
This is a non-proprietary Cryptographic Module Security Policy for the DocuSign QSCD Appliance. This security policy describes how the DocuSign QSCD Appliance meets the security requirements of FIPS 140-3, and how to operate the appliance in a secure FIPS 140-3 compliant mode. This document was prepared as part of the FIPS 140-3 level 3 validation of the DocuSign QSCD Appliance. It fulfils the security policy requirements as specified in ISO/IEC 19790:2012, B.2.1 to B.2.12 and in NIST Special Publication 800-140B, CMVP Security Policy Requirements: CMVP Validation Authority Updates to ISO/IEC The following table lists the module’s FIPS 140-3 security level for each individual area.
FIPS 140-3 (Federal Information Processing Standards Publication 140-3 -- Security Requirements for Cryptographic Modules) details the requirements for cryptographic modules. More information on the National Institute of Standards and Technology (NIST) and the Canadian Centre for Cyber Security (CCCS) Cryptographic Module Validation Program (CMVP), the FIPS 140-3 validation process, and a list of validated cryptographic modules can be found on the CMVP website: http://csrc.nist.gov/groups/STM/cmvp/index.html. This document deals only with the operations and capabilities of DocuSign QSCD Appliance in the technical terms of a FIPS 140-3 cryptographic module security policy. Additional information about DocuSign QSCD Appliance and other DocuSign products is available at www.docusign.com. The DocuSign QSCD Appliance is also referred to in this document as the appliance, cryptographic module, or the module.
| Term | Meaning |
|---|---|
| API | Application Programming Interface |
| APT | Adaptive Proportion Test |
| CA | Certificate Authority |
| CAVP | Cryptographic Algorithm Validation Program |
| CC | Common Criteria |
| CKG | Cryptographic Key Generation |
| CMVP | Cryptographic Module Validation Program |
| CO | Crypto Officer |
| COC | Certificate of Compliance |
| COTS | Commercial Off The Shelf |
| CRC16 | Cyclic Redundancy Check (16 bit) |
| CSP | Critical Security Parameters |
| DTBS | Data To Be Signed |
| ECDHE | Ephemeral Elliptic Curve Diffie-Hellman |
| EDC | Error Detection Code |
| EFP | Environmental Failure Protection |
| EFT | Environmental Failure Testing |
| ESV | Entropy Source Validation |
| GCM | Galois Counter Mode |
| HMAC | Keyed-Hash Message Authentication Code |
| HSM | Hardware Security Module |
| IDP | Identity Provider |
| JSON | JavaScript Object Notation |
| JWT | JSON Web Token |
| KAT | Known Answer Test |
| KDF | Key Derivation Function |
| KTS | Key-Transport Scheme |
| LCD | Liquid Crystal Display |
| MAC | Message Authentication Code |
| NIC | Network Interface Controller |
| NTP | Network Time Protocol |
| PBKDF | Password-Based Key Derivation Function |
| PCB | Printed Circuit Board |
The following table prescribes a common understanding of the terms and abbreviations used throughout this document.
| Term | Meaning |
|---|---|
| PSP | Public Security Parameters |
| QSCD | Qualified Signature Creation Device |
| RCT | Repetition Count Test |
| REST | Representational state transfer |
| SAML | Security Assertion Markup Language |
| SCA | Signature Creation Application |
| SHS | Secure Hash Standard |
| SSA | Server Signing Application |
| SSD | Solid State Drive |
| SSP | Sensitive Security Parameter |
| SSS | Shamir Secret Sharing |
| TLS | Transport Layer Security |
| TSP | Trust Service Provider |
| Model | Hardware version | Firmware version | Distinguishing Features | ||
|---|---|---|---|---|---|
| DocuSign QSCD Appliance | 2.0.0.0 | 1.2.0.7 | Module type: hardware Embodiment: multi-chip standalone appliance The module is operating in FIPS compliant mode: • It is in the installed state • Only ECDHE_RSA_AES_GCM cipher suites are enabled |
The DocuSign QSCD Appliance is a digital signature product intended to be used as a Qualified Signature Creation Device (QSCD) in a secure operational environment. It is a highly secure, high capacity network attached HSM. The device consists of COTS hardware, tamper resistance hardware, a hardened operating system, an internal database and server software.
| • | RSA digital signatures and verification |
| • | AES encryption and decryption |
| • | Authenticated and encrypted communication with the appliance |
| • | REST protocol over HTTPS (HTTP over TLS 1.2) |
| • | Tamper-responsive enclosure |
| • | Secure backup capability Figure 1 – The Module’s Front and Rear View |
Table 3 – Cryptographic Module Tested Configuration
The cryptographic boundary, establishing a contiguous perimeter for the DocuSign QSCD Appliance, is defined as the components that are enclosed within the physical case of the module, save for the hot-swappable dual power supplies.
Power Control I Control
nput Output
CPU
The following figure shows the module’s hardware block diagram. Power Cryptographic Boundary AC Power Supply 1 Control Input AC Power Supply 2 FrontSide Bus PCIe Bus Ethernet 0 Ethernet Port DDR4 Bridge Memory Bus PCIe Bus Ethernet 1 Ethernet Port Data Input Data Output Control Input PCI Bus Status Output SSD Drive 0 Sata Interface USB Bus USB Port Bridge SSD Drive 1 Sata Interface Data Input Data Output RS232 USB Display IDQ6MC1 chip Processor Entropy source Status Output Tamper board Display Keys Control Input Micro-Switch Micro-Switch Figure 2 – DocuSign QSCD Appliance Hardware Block Diagram
| Certificate | |
|---|---|
| Certif SSA (Server Signing Application) | Certif |
SAML or JWT
Signature sent back to application
The module meets FCC requirements in 47 CFR Part 15 for personal computers and peripherals designated for home use (Class B). It is labeled in accordance with FCC requirements.
DocuSign QSCD Appliance is installed in a secure operational environment and interacts with other software components and services.
The following figures illustrates the secure environment architecture of a TSP (Trust Service Provider). Signing User SCA IDP SSA CA (Identity Provider) (Server Signing Application) (Certificate Authority) DocuSign QSCD Appliance Admin User Audit Log Server NTP Servers (Network Time Protocol) Technical Log Server Figure 3
SAML or JWT token. The DocuSign QSCD validates the SAML token and enables the signer to access his/her signature key.
The SSA is a Web Application that is deployed in the operational environment and enables the signer to perform digital signatures through a web interface. It is the application that interacts with the user while performing cryptographic operations, acting as a proxy between the user and the module, so some of the operations it performs are on behalf of the user. The SSA has the following characteristics:
The user then performs the following steps:
REST API Request
All commands to the DocuSign QSCD Appliance use the REST API, which is based on HTTPS (HTTP over TLS). The module’s REST API provides access to several categories of commands:
After a command is sent to the module, its input parameters are checked with improper or wrong parameters rejected with an error code returned. Correct commands are executed, with the reply sent back to the client over the secure channel. The request is based on the following parameters: • The operation’s name • Input parameters in JSON format The response is based on the following parameters: • Response return code (an integer) • Output parameters in JSON format Application Application Application DocuSign QSCD Appliance Appliance Setup Appliance Admin Users Admin Users Authentication Cryptography SSA Install Appliance Hardware Setting Create/Delete User Authenticate Digital Signature Create/Delete User Read/Write USB Token System Parameters AES Encryption Generate Key Pair Reset Tamper Trusted Anchors Sign/Encrypt Software Upgrade Backup/Restore Figure 4 – DocuSign QSCD Appliance API Model
DocuSign QSCD Appliance can be in one of the three following states:
| Error | Meaning |
|---|---|
| CryptoError | Failed cryptographic KAT |
| SSLError | Failed cryptographic KAT of the TLS library |
| TamperHWFailure | Failed to communicate with the tamper board |
| TamperCrcError | Failed to validate the tamper firmware CRC16 |
| TamperMismatch | The hash of the data in the tamper memory does not match the expected value or is not equal to the value stored in the QSCD appliance database |
| Tamper | A tamper event occurred |
| SWVerifyError | Failed to verify the firmware signature |
| DBError | Failed database connectivity check |
| CriticalError | Failed to execute any of the self-tests above |
While the QSCD is in Operational state, it can be in either FIPS or non-FIPS mode. The distinction between these two modes depends on the selected TLS cipher suite. When operating in FIPS mode the QSCD must use only the ECDHE_RSA_AES_GCM based cipher suites. Refer to section 2.12 for instructions how to check if the module is operating in FIPS compliant mode.
Failure in any of the power-up or the critical function tests results in entering error state. The QSCD appliance software terminates and the module does not provide any cryptographic services to the users. A corresponding message is written into the QSCD appliance log file. A short error message appears in the display in the front panel of the appliance that indicates the type of error. Table 4 – QSCD Error States For more information about each error, refer to section 10.
| CAVP Cert. Core Cryptographic Algorithms | Algorithm and Standard | Mode/Method | Description/ Key Size(s)/ Key Strength(s) | Use/Function |
|---|---|---|---|---|
| A4400 | AES FIPS 197 | CBC | AES / 128, 192, 256 bits / 128, 192, 256 bits | Data Encryption |
| Vendor affirmed | CKG1 SP 800-133 | DRBG Key / 256 bits / 256 bits | Key Generation | |
| A4400 | HMAC FIPS 198-1 | HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512 | HMAC / 256, 256, 256 bits / 256, 256, 256 bits | Message Authentication |
| A4400 | HMAC_DRBG SP 800-90A | HMAC-SHA-256 | HMAC / 256 bits / 256 bits | Deterministic Random Number Generation |
| A4400 | RSA FIPS 186-5 | Appendix A.1.6 Table B.1 (2-100) | RSA Key Generation/ 2048, 3072, 4096 bits / 112, 128, 128 bits | Key Generation |
| A4400 | RSA PKCS#1 v1.5 | SHA-256, SHA-384, SHA-512 | RSA-PKCS#1 2048, 3072, 4096 bits / 112, 128, 128 bits | Digital Signature Generation |
| A4400 | RSA PKCS#1 v2.1 | PSS-SHA-256, PSS-SHA-384, PSS-SHA-512 | RSA-PSS 2048, 3072, 4096 bits / 112, 128, 128 bits | Digital Signature Generation |
| A4400 | RSA PKCS#1 v1.5 | SHA-256, SHA-384, SHA-512 | RSA-PKCS#1 2048, 3072, 4096 bits / 112, 128, 128 bits | Digital Signature Verification |
| A4400 | SHS FIPS 180-4 | SHA-256, SHA-384, SHA-512 | SHA2 / None / 128, 192, 256 | Message Digest Hash for digital signature Generation |
| E10 | ESV SP 800-90B | N/A | Seeding/reseeding the DRBG |
The DocuSign QSCD Appliance supports a variety of cryptographic algorithms, and implements these algorithms based on the different cryptographic standards. The module supports the following approved algorithms: The unmodified output of the DRBG is used for symmetric key generation and as the seed for asymmetric key
| CAVP Cert. TLS (OpenSSL) Cryptographic Algorithms | Algorithm and Standard | Mode/Method | Description/ Key Size(s)/ Key Strength(s) | Use/Function |
|---|---|---|---|---|
| A4404 | AES FIPS 197 | CBC | AES / 128, 256 bits / 128, 256 bits | TLS Session Schema Session data encryption |
| A4404 | AES FIPS 197 | GCM1 | AES / 128, 192, 256 bits / 128, 192, 256 bits | TLS Session Schema Session data encryption |
| A4404 | CVL TLS 1.2 SP 800-135rev1 | SHA-256, SHA-384 | SHA2 / None / 128, 192 bits | TLS Key Derivation2 |
| A4404 | HMAC FIPS 198-1 | HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512 | HMAC / 256, 256, 256 bits / 256, 256, 256 bits | TLS Session Scheme |
| A4404 | SHS FIPS 180-4 | SHA-256, SHA-384, SHA-512 | SHA2 / None / 128, 192, 256 | TLS Session Schema |
| A4404 | Elliptic Curve FIPS 186-5 | Appendix A.2.2 | P-256, P-384, P-521 / 256, 384, 521 bits / 128, 192, 256 bits | Elliptic Curve Key Generation |
| A4404 | KAS-ECC-SSC Sp800-56Ar3 | ECC Ephemeral Unified Scheme | P-256, P-384, P-521 / 256, 384, 521 bits / 128, 192, 256 bits | Key Exchange3 |
| A4404 | PBKDF4 SP 800-132 | Option 1a | 256 bits | Password based key derivation |
| A4404 | RSA PKCS#1 v1.5 | SHA-256, SHA-384, SHA-512 | RSA-PKCS#1 / 2048, 3072, 4096 bits / 112, 128, 128 bits | Digital Signature Generation |
| A4404 | Elliptic Curve FIPS 186-5 | ECDSA | P-256, P-384, P-521 / 256, 384, 521 bits / 128, 192, 256 bits | Digital Signature Generation5 |
| A4404 | Elliptic Curve FIPS 186-5 | ECDSA | P-256, P-384, P-521 / 256, 384, 521 bits / 128, 192, 256 bits | Digital Signature Verification1 |
Table 5 – Approved Algorithms Implementation of AES-GCM complies to NIST SP 800-56Ar3 guidelines. IV is generated internally using the approved DRBG. A 64-bit counter is used, to assure that no two encryptions will use the same counter value. No parts of the TLS protocol, other than the KDF, have been tested by the CAVP and CMVP As per IG D.F Scenario 2 path (2), the CAVP testing is performed in which case it is split into (i) testing the computation of the shared secret, (ii) testing the key derivation function used in deriving the keying material as per SP800-135 Rev 1 The PBKDF algorithm parameters are: password length 32 bytes long, salt length 16 bytes long and the number of iterations is 2048. The resulting key material is only used for storage applications. This algorithm, mode, and key/moduli sizes have been CAVP-tested but are not used by any approved service of the module
| Algorithm/Function | Use/Function | ||
|---|---|---|---|
| RSA Key Transport (KTS) | Key establishment methodology using PKCS#1-v1.5 provides between 112 and 256 bits of encryption strength |
The module supports the following non-approved algorithms which are not allowed in the approved mode of operation: Table 6 – Non-Approved Algorithms Not Allowed in the Approved Mode of Operation
The appliance is delivered in the Factory Settings state. In this state it is not installed and does not contain any operational data. Once the CO starts performing the following operations to install and configure the Appliance to run, it is then operating in FIPS mode:
The generation of the Master Keys and optionally copying them onto the USB tokens are preliminary steps that must be performed prior to the installation of the module. These operations must be performed in a secure environment. In this step, a GUI based client application running on a PC connected to the module is used to send commands to the appliance to generate the Master Keys, split them into parts and store each part on a separate password protected USB token connected to the appliance. The QSCD Appliance Master keys are protected using M of N protection measure, which requires that a minimum number of agents (M) out of the total number of agents (N) work together to perform high-security tasks such as QSCD installation. The Master Keys are split into N parts, but during installation, only M out of N parts will be required to successfully build the Master Keys and install the appliance. The minimum number of N parts is 2 and the maximum is 9. The value of M has to be smaller or equal to N. After the Master Keys are generated they are split into N parts using SSS algorithm. The USB tokens are formatted, their password set and the key parts are written into them. Each USB token is given to a different CO (Appliance Administrator). Later, during installation, the Master Keys are built using M parts out of N using the SSS algorithm. For a complete list of the master keys refer to section 9.1.
| Command Header | PUT Content-Type: application/json | https://{QSCD}:9091/api/v1/sysparams/tls_mechanisms_mode |
|---|---|---|
| Header | Authorization: Bearer JWT ticket that was returned by the Authenticate command | |
| Body | { "value":"2" } | |
| Response | 204 No Content |
The appliance installation is performed by the Appliance Administrators using the GUI based client application. Installation commands are sent to the appliance over secure TLS 1.2 channel. As explained in 2.10.1, M out of N USB tokens with the split Master Keys are required for this operation. Each is password protected and belongs to a different CO. Thus, to complete the appliance installation, each CO must separately authenticate after inserting the token in their possession. During installation, the CO performs the following security related actions:
To set the module in FIPS mode, the CO has to set the appliance to use only the ECDH based TLS cipher suites (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 and TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384). Use the Set System Parameters command to set the value of the system parameter tls_mechanisms_mode to 2, meaning only the ECDH cipher suites are enabled. } Table 7 – Set System Parameters command
To verify if the module is operating in FIPS compliant mode, check the appliance display and call two REST API functions: Get Status and Get System Parameters.
Verify that the appliance display shows a message that it has been installed. Figure 6 – DocuSign QSCD Appliance in FIPS mode (Installed State)
| Command | GET | https://{QSCD}:9091/api/v1/appliance |
|---|---|---|
| Response | { "name": "QSCD", "device_id": "eef8ebc4-f64d-a76c-5c65-6c18eef7ee4b", "sw_version": "1.2.0.7", "hw_version": "2.0.0.0", "md_version": "1.2.0.0", "time": { "use_ntp": false, "ntp_server": "0.0.0.0", "time": "2023-07-12T10:06:28.5442185Z" }, "network": { "use_dhcp": false }, "status": "installed", "kind": "key_gen_sign_hsm", "install_mode": "hsm", "cluster_id": "awhyIQJ2MXk=", "cluster_description": "Description", "state": "ok", "state_text": "On", "database_id": "dfac0fec-6876-4d68-8468-e2e4167e03e6", "debug_log_level": 0 } |
| Command | GET | https://{QSCD}:9091/api/v1/sysparams/tls_mechanisms_mode |
|---|---|---|
| Response | { "kind": "tls_mechanisms_mode", "name": "TLS Mechanisms Mode", "description": "0 - All mechanisms are available 1 - RSA mechanisms only 2 - ECDH mechanism only", "category": "general", "value_type": "int_type", "value": 2, "modifiable": true, "min_value": 0, "max_value": 2, "display": true, "display_order": 8 } |
The Get Status command queries the appliance’s state. Verify the correct status (installed), hardware version (2.0.0.0) and software version (1.2.0.7). }, }, }
The Get System Parameters command queries the supported TLS cipher suites. In FIPS mode, only ECDH based cipher suites should be enabled (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 and TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384). Verify the that the value of the system parameter tls_mechanisms_mode is 2, meaning only the ECDH cipher suites are enabled. } Table 9 – Get System Parameters command
The appliance offers a backup operation so that in the case of a technical failure, it will be possible to restore all the information of the database to a new appliance. The backup operation does not contain any key material such as pre-generated RSA keys, but it does contain the following information from inside the appliance:
When an Appliance enters Tamper state, a blinking Tamper message appears on the appliance display. In this state, the appliance does not provide any service except the ability for the COs to perform the reset tamper operation. M out of N appliance administrators with the matching USB tokens are required to perform this process. Each administrator has to insert his/her USB token and supply its password. Warning: If you suspect the appliance has been tampered with, contact DocuSign Support via the following web page: https://support.docusign.com/en/contactSupport. The reset tamper operation should be performed only if you are sure that the tamper event occurred as part of a maintenance operation or a controlled operation.
| Command Header | POST Content-Type: application/json | https://{QSCD}: 9091/api/v1/auth |
|---|---|---|
| Body | { "login_name" : "{ApplianceAdministrator}", "password" : "{ApplianceAdministratorPassword}" } | |
| Response | { "id": "a053d06c-4b67-cc6a-c745-8677bf3ab6e6", "login_name": "appliance_administrator", "type": "appliance_admin", "valid_thru": "2022-11-30T16:09:04.6736587Z", "appl_name": "QSCD0004", "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX .... tsdUnoX2AoC55XGHGhei-CPbaNL2I2aC" } |
| Command Header | POST Content-Type: multipart/form-data | https://{QSCD}:9091/api/v1/software |
|---|---|---|
| Header | Authorization: Bearer JWT ticket that was returned by the Authenticate command | |
| Body | Contents of software upgrade file | |
| Response | { "id":"bd6a5aac-b704-6f93-f6d8-2e5e30908170", "upgrade_progress_info": "upgrading", "code": 0, "file_name": "UpgradeVer_1_0_0_9.dsp", "install_time": "2022-05-25T04:36:16.3383505Z" } |
Firmware upgrades are sent to customers through DocuSign support channels. Each software upgrade package is digitally signed using 3072-bit RSA private key controlled by DocuSign engineering corresponding to the public key FIRM-SIG. If the signature verification fails, the module returns an error code and the loaded software is discarded. Only CMVP validated versions are allowed to be uploaded. Firmware upgrade can be performed only by the appliance administrator. Two REST API function calls are needed to perform this operation: Authenticate and Software Upload. The Authenticate command is used to authenticate as the appliance administrator. It returns a JWT token that is later used to perform the Software Upload command. } } Table 10 – Authenticate command
The Software Upload command loads the signed upgrade package. After the software is loaded into the module by the CO, the signature is verified using FIRM-SIG, which is embedded in the module’s firmware. If the verification fails, the module returns an error code and the loaded software is discarded. }
| Logical Interface | Physical Port | Data that passes over port/interface | |
|---|---|---|---|
| Data Input Interface | Ethernet Network ports | Ciphertext data, ciphered cryptographic keys, device management data, device configuration data, ciphered authentication data, status information, and other key management data | |
| USB port for smartcard-based token1 | Cryptographic keys | ||
| Data Output Interface | Ethernet Network ports | Ciphertext data, ciphered cryptographic keys, device management data, device configuration data, ciphered authentication data, status information, and other key management data | |
| USB port for smartcard-based token2 | Cryptographic keys |
The module is steel, rack mountable box. The physical ports in the front of the module include on/off power button with power indicator, a display, display keys and a USB connector. On the back of the module, there are two power connectors and two network connections (Ethernet Interfaces using TCP/IP). The module is encased in a steel cover, with only the specified ports providing access to the module. All ports use standard connector interfaces. USB port Power switch and Display Display keys: power indicator Up, Down, Left, Right, Home, Back and OK Figure 7
| Logical Interface | Physical Port | Data that passes over port/interface | |
|---|---|---|---|
| Control Input Interface | Ethernet Network ports | Input commands, input data | |
| Display keys | Input commands | ||
| On/Off Power switch | Input commands | ||
| Power connectors | Input signals | ||
| Control Output Interface | Power connectors | Output signals | |
| Status Output Interface | Ethernet Network ports | Status output data | |
| LCD display | Status output data | ||
| LED indicators | Output indicators | ||
| Power Interface | Power connectors | Power |
Table 12 – Ports and Interfaces Commands sent through the network port are packaged using a REST format and sent to the appliance over the TLS-secured sockets on ports 443, 9091 and 9092 (only in the tamper state). The TLS protocol is based on server authentication (One-way TLS). The power connector has control input and control output signals between the external power supplies and the cryptographic boundary of the module. The signals only control the power mechanism of the module and are not inhibited whenever the module is in error state. Status and telemetry information is sent through the network ports to a cloud-based event monitoring system. This information can be used to collect performance figures, error reporting and to detect hardware, networking and performance issues as they occur. Additional status information is sent to an external audit log server. No CSPs or other sensitive information is sent to the external monitoring and audit systems.
The front of the module has several indicators and control buttons:
The module has two classes of roles: Crypto Officer (CO) and User. The module does not support role change, thus an operator that has been defined as a CO cannot change to the User role. The module does not include a maintenance interface, nor does it include a maintenance role.
There are three types of CO administrative sub-roles:
| Category | Role | Service | Input | Output | |
|---|---|---|---|---|---|
| TLS Session1 | CO, User, Anonymous | TLS Session establishment | QSCD and client random data, QSCD certificate | TLS session and ephemeral keys | |
| CO, User, Anonymous | Close TLS session | None | None | ||
| Appliance Setup | CO | Install appliance | Master keys | Success code | |
| CO | Write USB token | Master keys | Split Master Keys on USB token | ||
| CO | Read USB token | Split Master Keys from USB token | Master Keys in tamper memory | ||
| Anonymous | Reset tamper | Split Master Keys from USB token | Master Keys in tamper memory | ||
| CO | Restore factory | None | None | ||
| Appliance Administration | CO | Set time from NTP | NTP input | None | |
| CO | Monitoring | None | Status and audit log | ||
| CO | Update network setting | Input data | Success code | ||
| CO | Update time setting | Input data | Success code | ||
| CO | Set system parameters | Input data | Success code | ||
| CO | Manage Trusted Anchors | Input data | Success code | ||
| CO | Perform software upgrade | Signed software file | Success code | ||
| CO | Perform backup | None | Encrypted backup file | ||
| CO | Restore from backup | Encrypted backup file | Success code | ||
| CO | Get technical log | None | Log file | ||
| CO, Anonymous | Get appliance information | None | Appliance information | ||
| CO | Restart | None | None | ||
| CO | Shutdown | None | None | ||
| User Administration | CO | Create Administrator user | New Administrator User info | Success code | |
| CO | Delete Administrator user | User ID | Success code |
The user interacts with the QSCD via the SSA for the purpose of performing cryptographic operations such as digitally signing a document/data or performing AES encryption/decryption.
The following table provides a high-level summary of the approved services provided by the module. The TLS session service is used by all other QSCD services as it establishes the basic communication channel with the module, on which the REST API functions are sent.
| Category | Role | Service | Input | Output | |
|---|---|---|---|---|---|
| CO | Get users list | None | Users list | ||
| CO | Get user details | User ID | User information | ||
| CO | Change password | New password | Success code | ||
| CO | Unlock Administrator user | User ID | Success code | ||
| Authentication | CO, User | Authenticate | User ID, Authentication data | Success code | |
| Cryptographic Operations | User | Digital signature | Encrypted key blob, input buffer | Output buffer | |
| User | Encryption/Decryption | Encrypted key blob, input buffer | Output buffer | ||
| User, Anonymous | Get random | Required length of random data | Random data | ||
| SSA Administrator | CO | Create User | User information | Encrypted user blob | |
| CO | Delete User | User ID | Success code | ||
| CO | Generate User key pair/key | User ID | Encrypted key blob | ||
| CO | Delete User key pair/key | User ID | Success code | ||
| CO | Supply DTBS | User ID, input buffer | Success code | ||
| CO | Collect result | User ID | Output buffer |
Table 13 – Roles, Service, Input and Output
| Role | Authentication Method | Authentication Strength |
|---|---|---|
| CO | User ID/Password | The module enforces a minimum password length of six Unicode characters. Each character may be numeric (0-9) or alphanumeric (a-z, A-Z) or Unicode. Based on an alphanumeric set of characters there are 62 possible characters and the password is at minimum 8 characters long. Therefore, the probability of a random attempt to succeed is: 1 in (628) = 1 in 218,340,105,584,896. This is significantly less than 1 in 1,000,000. It takes the module approximately 1msec to process a login attempt, for a maximum of 1,000 login attempts in 1 second and 60,000 login attempts in 1 minute. Therefore, the probability of a random attempt to succeed during a minute is: 1 in (628 / 60,000) = 1 in (218,340,105,584,896 / 60,000) = 1 in 3,639,001,759. This too is significantly less than 1 in 100,000. |
| CO | SAML/JWT ticket protected by RSA 2048 bit key1 | The SAML token is based on a 2048-bit digital signature which has security strength of 112 bit. The probability that random access will succeed is 1 / (2112) which is far less than one in 1,000,000. The appliance cannot process more than 3000 SAML validations per second, thus the authentication provides a 1 in (2112 / (3000 x 60)) probability of a successful random attempt during a one-minute period. This is exponentially less than 1 in 100,000. |
Administrators use identity-based authentication with a user ID/password over the TLS session. After administrative user in all subsequent REST API commands. In this case, the JWT ticket is protected by AES 256 bit key (MK-JWT) and HMAC-SHA-256 algorithm. Users also use identity-based authentication indirectly by authenticating to an external Identity Provider (IDP) REST API commands. In this case the SAML/JWT ticket is protected by RSA private key whose public key is stored in the appliance trusted anchors (TRUSTED-ANCHORS). Each REST API command requires a specific administrator JWT or user SAML/JWT ticket. Thus, multiple concurrent operators are allowed, and each command is specifically tested to verify that the user is allowed to perform. The calculation is performed for the smallest supported RSA key size (2048 bit). When using larger RSA keys (3072 and 4096 bit), the probabilities are even smaller.
| Role | Authentication Method | Authentication Strength | |||
|---|---|---|---|---|---|
| CO | JWT ticket protected by AES-256 bit key | The JWT token is based on a HMAC-SHA-256 with AES 256 bit key which has security strength of 256 bit. The probability that random access will succeed is 1 / (2256) which is far less than one in 1,000,000. The appliance cannot process more than 10000 JWT validations per second, thus the authentication provides a 1 in (2256 / (10000 x 60)) probability of a successful random attempt during a one-minute period. This is exponentially less than 1 in 100,000. |
| Service | Description | Roles | Approved Security Functions | Keys and/or SSPs | Access rights to Keys and/or SSPs | Indicator |
|---|---|---|---|---|---|---|
| TLS session establishment | Open TLS connection between QSCD and client machine | CO, User, Anonymous | EC Key Generation FIPS 186-5 | 17 | G | |
| 20 | R,W,Z | |||||
| HMAC-DRBG | 18,19 | G | ||||
| HMAC-SHA-256 | 21,22,23 | R,W | ||||
| Close TLS session | Close TLS connection between QSCD and client machine | CO, User, Anonymous | HMAC-DRBG | 17,18,19 | Z | |
| Install appliance | Enter Operational state by installing the appliance; This service is available only when the appliance is in factory state | CO | SSS, HMAC-SHA-256 | 1,2,3,4,5, 6,7 | R,W | Message on front panel display |
| RSA Generate FIPS 186-5 | 13 | G | ||||
| Write USB token | Write key part into the USB token | CO | SSS, HMAC-SHA-256 | 1,2,3,4,5, 6,7 | R,W | Message on front panel display |
The following table shows for specific service, which role has access to it and which SSP and access type is used to provide the service. Refer to section 9.1 for the description of the SSPs used by each operation. The convention below applies to the following table when specifying the access permissions (types) that the service has for each SSP:
| Service | Description | Roles | Approved Security Functions | Keys and/or SSPs | Access rights to Keys and/or SSPs | Indicator |
|---|---|---|---|---|---|---|
| Read USB token | Read key part from the USB token | CO | SSS, HMAC-SHA-256 | 1,2,3,4,5, 6,7 | R,W | Message on front panel display |
| Reset tamper | Return to Operational state after Tamper event | CO | SSS, HMAC-SHA-256 | 1,2,3,4,5, 6,7,16 | R,W | Message on front panel display |
| Restore factory | Restore the appliance back to Factory State and erase all settings | CO | AES-CBC | 7 | E | Message on front panel display |
| All | Z | |||||
| Set time from NTP | Set module time using NTP protocol | Anonymous | ||||
| Monitoring | Send system status and audit log to external monitoring servers | CO | AES-CBC | 2 | E | |
| Sign PKCS#1 v1.5 | 13 | E | ||||
| Update network setting | Set network parameters for the Ethernet interfaces such as DHCP on/off, IP address, default gateway, DNS, routing table etc. | CO | AES-CBC | 3,7 | E | Message on front panel display |
| Update time setting | Set time or configure NTP server | CO | AES-CBC | 3,7 | E | |
| Set system parameters | Set system parameters like password policy, RSA key generation parameters, logging etc. | CO | AES-CBC | 3,7 | E | |
| Manage Trusted Anchors | Manage the Trusted Anchors which are used to validate SAML tickets | CO | AES-CBC | 3,7 | E | |
| 14 | R,W | |||||
| Perform software upgrade | Update the firmware | CO | AES-CBC | 7,9 | E | |
| Verify PKCS#1 v1.5, HMAC-SHA-256 | 12 | E | ||||
| Perform backup | Backup system parameters and other settings into encrypted file | CO | AES-CBC | 5,6,7 | E | |
| Restore from backup | Restore system parameters and other settings from backup file | CO | AES-CBC | 5,6,7 | E | |
| Get technical log | Get the module’s technical log files | CO | AES-CBC | 7 | E | |
| Get appliance information | Get general information such as network information, time, status, etc. | CO, Anonymous |
| Service | Description | Roles | Approved Security Functions | Keys and/or SSPs | Access rights to Keys and/or SSPs | Indicator |
|---|---|---|---|---|---|---|
| Restart | Perform hardware restart | CO | 7,17,18, 19,20 | Z | Message on front panel display | |
| Shutdown | Shutdown the module | CO | 7,17,18, 19,20 | Z | ||
| Create Administrator user | Create administrator user | CO | AES-CBC | 3,7 | E | |
| 10 | W | |||||
| Delete Administrator user | Delete administrator user | CO | AES-CBC | 7 | E | |
| 10 | Z | |||||
| Get users list | Get list of users | CO | AES-CBC | 3,7 | E | |
| Get user details | Get user details | CO | AES-CBC | 3,7 | E | |
| Change password | Change password of administrator user | CO | AES-CBC | 3,7 | E | |
| 10 | W | |||||
| Unlock Administrator user | CO | AES-CBC | 7 | E | ||
| Authenticate | Authenticate user using user ID/password or SAML ticket | CO, User | AES-CBC | 3,7 | E | |
| 10,14 | R | |||||
| Digital signature | Enable client applications to use RSA keys for digital signatures signing operations in PKCS#1 v1.5 or PSS schemas | User | AES-CBC | 1,3,4,7 | E | |
| Sign PKCS#1 v1.5, RSA-PSS | 8 | E | ||||
| Encryption/ Decryption | Enable client applications to use AES keys for data encryption/decryption in CBC mode | User | AES-CBC | 1,3,4,7,9 | E | |
| Get random | Get random data | Anonymous | HMAC-SHA-256 | 21,22,23 | R,W | |
| Create User | Create a user | CO | AES-CBC | 1,3,4,7 | E | |
| 8,9 | W | |||||
| Delete User | Delete a user | CO | AES-CBC | 7 | E | |
| Generate User key pair/key | Generate RSA key pair/AES key on behalf of the user | CO | AES-CBC | 1,3,4,7 | E | |
| FIPS 186-5 RSA key gen | 8,9 | W | ||||
| 11 | R,W,Z | |||||
| HMAC-SHA-256 | 21,22,23 | R,W | ||||
| Delete User key pair/key | Delete the user’s RSA key pair | CO | AES-CBC | 7 | E | |
| 8,9 | Z |
| Service | Description | Roles | Approved Security Functions | Keys and/or SSPs | Access rights to Keys and/or SSPs | Indicator |
|---|---|---|---|---|---|---|
| Supply DTBS | Supply data to be signed/encrypted | CO | AES-CBC | 4,7 | E | |
| Collect result | Collect the result of cryptographic operation | CO | AES-CBC | 3,7, 9 | E | |
| Sign PKCS#1 v1.5, RSA-PSS | 8 | E |
The module performs two software and firmware integrity tests:
This section is not applicable for FIPS 140-3 Level 3.
| Physical Security Mechanism | Recommended Frequency of Inspection/Test | Inspection/Test Guidance Details |
|---|---|---|
| Appliance enclosure | 1 year | • Inspect the appliance cover for any bent metal • Inspect the appliance external cover for any holes or drilling • Verify it is not possible to see the inner parts of the appliance and that the whole box is intact |
| Tamper-evident seal | 1 year | • Verify that the tamper evident seal at the back of the appliance is not damaged • Verify the seal serial number matches the registered number of that appliance |
| USB port | 1 year | • Verify no USB device is connected to the USB port |
| Network | 1 year | • Verify that no hardware is attached to the network interfaces of the Appliance except for the cables you expect to be attached |
The DocuSign QSCD Appliance is a multi-chip standalone appliance. It has been designed to meet all FIPS 140-3 Level 3 requirements. The module is encased within a steel box rigged with a tamper-evident seal (see photo in section 3) and tamper-responsive micro-switches. Only the specified physical interfaces permit access to the module. Any intrusion attempt cause power to instantly cut off, preventing access to any useful information by zeroizing all plaintext Critical Security Parameters (CSPs) including the appliance Master Keys stored in the tamper board. The seal, installed at the manufacturing stage, is placed over the screw that joins the top cover and the bottom enclosure. Both the seal and screw must be removed in order to open the cover of the module. If the screw is even partially removed the micro-switches are tripped and the tamper response is triggered. There are two micro-switches, which are connected to the tamper board. One micro-switch is used for tamper detection regardless if the power is on or off and triggers zeroization of the appliance Master keys. The other micro-switch is used for tamper detection while power is on and it immediately turns off the appliance and, in that way, stops all services and zeroizes all CSPs. Any attempt to restart the Appliance, automatically displays tamper alerts on the physical display. Only a Reset Tamper operation performed by an CO (Appliance Administrator) can set the QSCD Appliance back to an Operational state. During the Reset Tamper Operation, the COs must physically insert the M out of N USB tokens. All vents on the module are baffled to meet FIPS 140-3 physical security requirements for opacity and probing.
The CO should perform a scheduled inspection of the module to verify no physical tampering has occurred. listed in the following table.
| Physical Security Mechanism | Recommended Frequency of Inspection/Test | Inspection/Test Guidance Details | |
|---|---|---|---|
| Environment | 1 year | • Verify that there is no additional hardware or software component in the operational environment of the Appliance (such as a network sniffer, a router, etc.) that may compromise the security of the operational environment |
| Temperature or voltage measurement | EFP or EFT | Shutdown or Zeroisation | |
|---|---|---|---|
| Low Temperature | +5°C | EFP | Shutdown |
| High Temperature | +45°C | EFP | Shutdown |
| Low Voltage | 10.75V | EFT | Shutdown |
| High Voltage | 12.9V | EFT | Shutdown |
Table 16
No additional non-invasive mitigation techniques are employed by the module.
| SSP# Master Keys | SSP Name / Type | Strength (bits) | Security Function and Cert. Number | Gener- ation | Import / Export | Establish- ment | Storage | Zero- isation | Use / related keys |
|---|---|---|---|---|---|---|---|---|---|
| 1. | MK-EXT-KEK AES-256 bits | 256 | AES-CBC A4400 | Internal1 | External2 / NA | Tamper device memory (plaintext3) | Tamper event4 | Critical key for key value encryption of database keys | |
| 2. | MK-INT-KEK AES-256 bits | 256 | AES-CBC A4400 | Critical key for encryption of CSPs stored within the module | |||||
| 3. | MK-MAC AES-256 bits | 256 | HMAC- SHA-256 A4400 | Critical key for HMAC-SHA-256 of database records | |||||
| 4. | MK-JWS AES-256 bits | 256 | HMAC- SHA-256 A4400 | Critical key for HMAC-SHA-256 of user blobs | |||||
| 5. | MK-BKP-ENC AES-256 bits | 256 | AES-CBC A4400 | Critical key for encryption of backup file | |||||
| 6. | MK-BKP-MAC AES-256 bits | 256 | HMAC- SHA-256 A4400 | HMAC-256 of backup file |
The module protects SSPs against unauthorized disclosure, modification, and submission as follows:
The following table provides details on the SSPs used by the module. Generated inside the appliance during preliminary pre-installation procedure and split into N parts using SSS M out of N parts are recombined during installation using SSS and stored in tamper memory Stored in cleartext in tamper memory along with SHA256 hash for data integrity Any attempt to tamper the module results in tamper response, clearing the tamper memory
| SSP# | SSP Name / Type | Strength (bits) | Security Function and Cert. Number | Gener- ation | Import / Export | Establish- ment | Storage | Zero- isation | Use / related keys |
|---|---|---|---|---|---|---|---|---|---|
| 7. User Keys and CSPs | MK-JWT AES-256 bits | 256 | HMAC- SHA-256 A4400 | HMAC-SHA-256 of proof of Authenticating user | |||||
| 8. | USER-RSA-SIG RSA 2048, 3072, 4096 bits | 112, 128, 128 | PKCS#1 v1.5 Sign/ Verify PKCS#1 PSS Sign A4400 | Internal | Encrypted / Encrypted | User key blob (encrypted1) | NA2 | User signing keys | |
| 9. | USER-AES-KEY AES 128, 192, 256 bits | 128, 192, 256 | AES-CBC A4400 | User encryption keys | |||||
| 10. | ADMIN-PASS At least 8 alphanumeric characters long | External | Encrypted / NA | Disk (hashed3) | User deletion | User ID/Password Authentication | |||
| 11. Module SSPs | INTER-RSA-GEN | 112, 128, 128 | FIPS 186-5 RSA key gen A4400 | Internal | NA/NA | Memory | Key generation ended | Intermediate RSA key generation values | |
| 12. | FIRM-SIG RSA 3072 bits | 128 | PKCS#1 v1.5 Verify A4400 | External | NA/NA | Disk (plaintext4) | NA | RSA Public Key for validating the software and the upgrades file(s) | |
| 13. | AUDIT-LOG-KEY RSA 3072 bits | 128 | PKCS#1 v1.5 Sign A4400 | Internal | NA/NA | Disk (encrypted5) | NA | Audit log signature RSA private key | |
| 14. | TRUSTED- ANCHORS RSA 2048, 3072, 4096 bits | 112, 128, 128 | PKCS#1 v1.5 Verify A4400 | External | External / NA | Disk (plaintext6) | NA | Trusted PSPs (public keys and certificates) |
User blobs are encrypted (AES-CBC) using MK-EXT-KEK and HMACed (HMAC-SHA-256) using MK-JWS The module does not provide key storage for cryptographic keys used by an entity, therefore it cannot zeroize those keys Stored in the QSCD database with integrity (HMAC-SHA-256) using MK-MAC The RSA public key used for firmware signature validation and firmware update validation is hardcoded in plaintext in the signed module firmware Stored encrypted (AES-CBC) using MK-INT-KEK in a file on the module SSD drive Stored in QSCD database in plaintext with integrity (HMAC-SHA-256) using MK-MAC
| SSP# TLS Session Keys | SSP Name / Type | Strength (bits) | Security Function and Cert. Number | Gener- ation | Import / Export | Establish- ment | Storage | Zero- isation | Use / related keys |
|---|---|---|---|---|---|---|---|---|---|
| 15. | TLS-KEY RSA 2048, 3072, 4096 bits | 112 | PKCS#1 v1.5 Sign A4400 | External | NA / NA | Disk (encrypted1) | NA | Appliance’s TLS RSA private/public key pair | |
| 16. | TLS-KEY- TAMPER-STATE RSA 2048, 3072, 4096 bits | 112 | PKCS#1 v1.5 Sign A4400 | Appliance’s TLS RSA public/private key pair for tamper state | |||||
| 17. | SESSION- EXCHANGE Elliptic Curve, P-256, P-384, P-521 | 128, 192, 256 | ECDH A4404 | Internal | NA/NA | TLS 1.2 KDF | Memory (plaintext2) | End of session or power cycle | TLS session key for key exchange |
| 18. | SESSION-ENC 128, 256 bits | 128, 256 | AES-GCM A4404 | TLS session key for data encryption | |||||
| 19. | SESSION-HMAC 32 bytes secret key | 256 | HMAC- SHA-256 HMAC- SHA-384 A4404 | TLS session for HMAC data integrity | |||||
| 20. DRBG Keys | INTER-EC-GEN | 128, 192, 256 | FIPS 186-5 EC key gen A4404 | Internal | NA/NA | Memory | Key generation ended | Intermediate EC key generation values | |
| 21. | HMAC_DRBG RNG Input | HMAC- SHA-256 A4400 | Internal | NA/NA | Memory (plaintext) | Appliance service shutdown3 or power cycle | DRBG4 state (Key and V) | ||
| 22. | HMAC_DRBG RNG internal state | Internal | NA/NA | Memory (plaintext) | NA | Entropy input string | |||
| 23. | DRBG seed from hardware chip | Internal | NA/NA | Memory (plaintext) | NA | Entropy input |
Table 18 – SSPs Used for establishment of TLS sessions with users and stored encrypted (AES-CBC) in password protected PFX file on the module SSD drive Negotiated during the establishment of the TLS connection, stored in volatile RAM and destroyed when the session is terminated Upon shutdown, the HMAC_DRBG uninstantiate function zeroises the DRBG state DRBG Key of size 256 bits is based on a 512-bit random seed retrieved from an internal hardware entropy source (Quantis IDQ6MC1 chip)
| Entropy sources | Minimum number of bits of entropy | Details | |
|---|---|---|---|
| ESV (Cert. #10) | Produce 2-bit samples with estimated entropy of 1.760755 | A hardware-based entropy source ESV (Cert. #10) that meets the requirements of NIST SP 800-90B (Recommendation for the Entropy Sources Used for Random Bit Generation). The entropy source is based on Quantis IDQ6MC1 chip that generates entropy directly from a quantum process. The entropy source is used as a seed input to the HMAC_DRBG RNG. It generates a new seed every hour or when the reseed counter has reached the value of 100,000 requests. The module is compliant with the ESV (Cert. #E10) and is configured according to section “Configuration Settings” in the public use document1. The overall amount of generated entropy is 1.760755 bits per 2-bit sample and estimated amount of entropy per the sources output bit is.1.96 per 2-bit sample. | |
| HMAC_DRBG | A Deterministic Random Bit Generator (DRBG) based on HMAC_DRBG algorithm as defined in NIST SP 800-90A rev 1 (Recommendation for Random Number Generation Using Deterministic Random Bit Generators). The algorithm uses HMAC-SHA-256 as its hash algorithm. The output of this DRBG is used to generate random data for key generation (RSA, EC, AES keys), TLS session establishment, digital signature and more. |
Table 19
Split knowledge procedures for key import and export are used during pre-installation, installation and reset tamper. Those procedures use USB tokens on which the master keys are split using the Shamir Secret Sharing algorithm. Those procedures use M of N scheme. The Master Keys are split into N USB tokens where (2 ≤ N ≤ 9). Then, it is possible to reconstruct the Master Keys from any subset of M USB tokens where (2 ≤ M ≤ N). This means that the minimum is (N = M = 2) meaning the Master keys are split into two parts and must be constructed from the same two parts. The higher supported limit is (N = M = 9), meaning the Master keys are split into nine parts and must be constructed from the same nine parts. The SSS algorithm well-known and proven to provide the requirement that the knowledge of any (M – 1) components provides no information about the original CSP other than the length.
There are two types of user keys that are managed by the SSA:
The DocuSign QSCD Appliance monitors firmware operations through a set of self-tests to ensure proper operation in accordance with FIPS 140-3. All tests run automatically without operator intervention. The CO can initiate the power-up self-tests and the critical function tests by cycling the module’s power and starting the QSCD firmware. The module includes three types of self-tests: power-up self-tests, critical function tests and conditional tests. When the module is powering up and performing these tests, the display port shows the message “Starting…”. Upon successful power-up self-tests and critical function tests, all QSCD services are started and the display shows the message "Installed”. If an error occurred an appropriate error message is displayed, and the module enters the error state. The order in which the self-tests are performed makes sure that any test that relies on another function will be performed only after that function was tested successfully. For example, the firmware integrity test is being performed only after the relevant cryptographic functions were tested.
The power-up self-tests are performed immediately after the module power is turned on. They include low-level hardware tests and cryptographic algorithm tests.
When power is first applied to the module, the hardware performs a series of checks to ensure it is functioning properly. The motherboard of the appliance performs an initial hardware check which is aimed to test the hardware components of the system such as the CPU, memory, network interfaces, SSD Drive and dual power supply. If there is any problem the appliance would not start, and the display will show the message (loading…). This low-level test is being performed prior to loading of the appliance operating system and running the QSCD services.
The critical function tests are performed after the power-up self-tests.
Upon startup, the QSCD communicates with the tamper device to check if tamper event has occurred. Failure to communicate with the tamper board results in tamper hardware error (TamperHWFailure).
This test calculates the CRC16 of the tamper firmware. Failure to calculate the expected CRC value results in tamper CRC error (TamperCrcError).
This test is designed to identify several problems that are related to the value of the Master keys stored in the tamper memory, for example:
The DRBG tests are performed upon power-up and immediately following the cryptographic algorithm tests. Both the entropy source ESV (Cert. #10) and the HMAC_DRBG are tested. The entropy source ESV (Cert. #10) power-up test follows the NIST SP 800-90B guidelines and include:
As part of the DocuSign development procedures, all executable and shared object files of the firmware are digitally signed using 3072-bit RSA private key controlled by DocuSign engineering. The signature of each file is produced using PKCS#1 v1.5-SHA-256 algorithm. When the module starts, after the hardware tests, it performs the firmware integrity test. The module verifies the signatures using the corresponding RSA public key (FIRM-SIG) which is embedded in the module’s code. If the signature verification fails, the appliance does not start and a corresponding message (SWVerifyError) is displayed.
A database connectivity check validates that the database is alive and can respond to requests. In the case of failure, the appliance’s service will not start and thus will not provide service to clients. A corresponding message (DBError) is displayed.
As the various software subsystems are initialized, the return codes are checked for success to verify the subsystems were initialized successfully. In any case the above tests failed to execute a critical error message (CriticalError) is displayed.
Known Answer Tests (KATs) are run at power-up for all implementations of cryptographic algorithms used by the module. In a Known Answer Test, input values, values of keys and output values are all hardcoded, thus checking only the execution of the algorithm itself. If the execution of the algorithm yields a different output than the hardcoded expected ones, then the test fails and a corresponding error is displayed. Failure in the Core algorithm tests results in (CryptoError) and failure in the TLS library tests results in (SSLError). The following Core cryptographic algorithms are tested:
To ensure the correct operation of the RSA/EC key generation, each newly generated RSA/EC key pair is tested for pairwise consistency. The newly generated private key is used to sign test data, and the resulting signature is then verified by the corresponding public key.
The entropy source is a non-deterministic RNG seed that is generated by high quality internal hardware chip (Quantis IDQ6MC1 chip). The chip meets the requirements of NIST SP 800-90B standard. It produces 2-bit samples with estimated entropy of 1.760755. The seed is updated every hour or when reseed counter is reached. The 2-bit outputs of the entropy source are checked by continuous random tests (RCT and APT) as defined in NIST SP 800-90B:
A Deterministic Random Bit Generator (DRBG) based on HMAC_DRBG algorithm as defined in NIST SP 800-90A. The output of the HMAC_DRBG algorithm is also continuously checked for statistical errors by running the continuous random tests (RCT and APT) as defined in NIST SP 800-90B:
Module firmware can only be remotely upgraded from the management system with proper authentication to the module. However, in order to strictly control the loading of new firmware to the appliance, the new firmware must be digitally signed by DocuSign. The load of a firmware update takes place using RSA signatures. The successful load of this update would render the module non FIPS validated unless the update has also been validated.
Once a day, the module performs periodic self-tests, which include the power-up self-tests (except low-level hardware tests) and the critical function tests listed above.
The CO can initiate the self-tests on demand by requesting to restart the module by calling the restart REST API function.
At manufacturing both tamper device and tamper seal are assembled. The assembly of these components activates the tamper mechanism and tamper evidence of the module. The whole product is fully tested before delivery. The product is packaged and directly delivered to the customer. The product is in a Factory state when delivered to the customer. During delivery, the product is protected by a unique tamper seal on the case and the casing of the appliance. It is also enclosed in a special plastic package protected with four distinct tamper evident security stickers similar to the following: Figure 10
In addition to the module, the CO will also get an electronic DocuSign envelope from DocuSign Manufacturing. This envelope includes the following information about the DocuSign QSCD Appliance:
Installation of QSCD appliance should follow these general guidelines: The key features of the appliance are: • The Appliance should be installed as part of the organizational IT infrastructure.
Refer to section 2.10 for general instructions on installing the QSCD appliance. For detailed instructions refer to the QSCD admin guide.
A scheduled inspection of the module should be performed to verify no physical tampering has occurred (see 7.2).
The procedures required for the secure destruction of the module are described in a proprietary document, which will be provided upon request.
The DocuSign QSCD Appliance does not include any mechanisms to mitigate other attacks.