You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
closes: elastic/kibana#250475
## Summary
Updates the Kibana FIPS documentation to include instructions for FIPS
140-3 compliance.
## Generative AI disclosure
1. Did you use a generative AI (GenAI) tool to assist in creating this
contribution?
- [x] Yes
- [ ] No
Tool(s) and model(s) used:
GitHub Copilot w/ Claude Sonnet 4.6
Copy file name to clipboardExpand all lines: deploy-manage/security/fips-kib.md
+20-10Lines changed: 20 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,33 +11,43 @@ products:
11
11
To run {{kib}} in FIPS mode, you must have the appropriate [subscription](https://www.elastic.co/subscriptions).
12
12
13
13
::::{important}
14
-
The Node bundled with {{kib}} is not configured for FIPS 140-2. You must configure a FIPS 140-2 compliant OpenSSL3 provider. Consult the Node.js documentation to learn how to configure your environment.
14
+
The Node bundled with {{kib}} is not configured by default to be a FIPS environment. You must configure a FIPS 140-2 or FIPS 140-3 compliant OpenSSL3 provider. Consult the Node.js documentation to learn how to configure your environment.
15
15
16
16
::::
17
17
18
18
19
-
For {{kib}}, adherence to FIPS 140-2 is ensured by:
19
+
For {{kib}}, adherence to FIPS 140-2 and FIPS 140-3 is ensured by:
20
20
21
-
* Using FIPSapproved / NISTrecommended cryptographic algorithms.
22
-
* Delegating the implementation of these cryptographic algorithms to a NIST validated cryptographic module (available via Node.js configured with an OpenSSL3 provider).
23
-
* Allowing the configuration of {{kib}} in a FIPS 140-2 compliant manner, as documented below.
21
+
* Using FIPS-approved and NIST-recommended cryptographic algorithms.
22
+
* Delegating the implementation of these cryptographic algorithms to a NIST-certified cryptographic module (available via Node.js configured with the proper OpenSSL3 provider).
23
+
* Allowing the configuration of {{kib}} in a FIPS 140-2 or FIPS 140-3 compliant manner, as documented below.
24
24
25
-
## Configuring {{kib}} for FIPS 140-2 [_configuring_kib_for_fips_140_2]
25
+
The specific FIPS standard applied (140-2 or 140-3) depends on the OpenSSL3 provider used to configure your Node.js environment.
26
26
27
-
Apart from setting `xpack.security.fipsMode.enabled` to `true` in your {{kib}} config, a number of security related settings need to be reviewed and configured in order to run {{kib}} successfully in a FIPS 140-2 compliant Node.js environment.
27
+
## Configuring {{kib}} for FIPS [_configuring_kib_for_fips]
28
+
29
+
The following settings need to be reviewed and configured to run {{kib}} successfully in a FIPS-compliant Node.js environment.
30
+
31
+
### Enable FIPS mode [_enable_fips_mode]
32
+
33
+
Set `xpack.security.fipsMode.enabled` to `true` in your {{kib}} configuration:
34
+
35
+
```yaml
36
+
xpack.security.fipsMode.enabled: true
37
+
```
28
38
29
39
### {{kib}} keystore [_kibana_keystore]
30
40
31
-
FIPS 140-2 (via NIST Special Publication 800-132) dictates that encryption keys should at least have an effective strength of 112 bits. As such, the {{kib}} keystore that stores the application’s secure settings needs to be password protected with a password that satisfies this requirement. This means that the password needs to be 14 bytes long which is equivalent to a 14 character ASCII encoded password, or a 7 character UTF-8 encoded password.
41
+
NIST Special Publication 800-132 (Recommendation for Password-Based Key Derivation: Part 1: Storage Applications) specifies a minimum security strength of 112 bits for password-protected key material, a requirement that applies in both FIPS 140-2 and FIPS 140-3 compliant environments. As such, the {{kib}} keystore password must be at least 14 bytes (112 bits) long. For single-byte ASCII characters, this means a minimum of 14 characters; for 2-byte UTF-8 characters (code points U+0080–U+07FF), a minimum of 7 characters.
32
42
33
43
For more information on how to set this password, refer to the [keystore documentation](/deploy-manage/security/secure-settings.md#change-password).
34
44
35
45
36
46
### TLS keystore and keys [_tls_keystore_and_keys]
37
47
38
-
Keystores can be used in a number of General TLS settings in order to conveniently store key and trust material. PKCS#12 keystores cannot be used in a FIPS 140-2 compliant Node.js environment. Avoid using these types of keystores. Your FIPS 140-2 provider may provide a compliant keystore implementation that can be used, or you can use PEMencoded files. To use PEMencoded key material, you can use the relevant `\*.key` and `*.certificate` configuration options, and for trust material you can use `*.certificate_authorities`.
48
+
Keystores can be used in a number of general TLS settings to store key and trust material. PKCS#12 keystores cannot be used in a FIPS 140-2 or FIPS 140-3 compliant Node.js environment. Avoid using these types of keystores. Your FIPS provider may offer a compliant keystore implementation, or you can use PEM-encoded files. To use PEM-encoded key material, use the relevant `*.key` and `*.certificate` configuration options; for trust material, use `*.certificate_authorities`.
39
49
40
-
As an example, avoid PKCS#12specific settings such as:
50
+
As an example, avoid PKCS#12-specific settings such as:
0 commit comments